//
// GDLocalizableController.h
// guide-book
//
// Created by why on 7/16/14.
// Copyright (c) 2014 why. All rights reserved.
//
# import <foundation foundation.h= "" >
@interface GDLocalizableController : NSObject
+(NSBundle *)bundle; //获取当前资源文件
+( void )initUserLanguage; //初始化语言文件
+(NSString *)userLanguage; //获取应用当前语言
+( void )setUserlanguage:(NSString *)language; //设置当前语言
@end
//
// GDLocalizableController.m
// guide-book
//
// Created by why on 7/16/14.
// Copyright (c) 2014 why. All rights reserved.
//
# import GDLocalizableController.h
@implementation GDLocalizableController
static NSBundle *bundle = nil;
+ ( NSBundle * )bundle{
return bundle;
}
+( void )initUserLanguage{
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
NSString *string = [def valueForKey: @userLanguage ];
if (string.length == 0 ){
//获取系统当前语言版本
NSArray* languages = [def objectForKey: @AppleLanguages ];
NSString *current = [languages objectAtIndex: 0 ];
string = current;
[def setValue:current forKey: @userLanguage ];
[def synchronize]; //持久化,不加的话不会保存
}
//获取文件路径
NSString *path = [[NSBundle mainBundle] pathForResource:string ofType: @lproj ];
bundle = [NSBundle bundleWithPath:path]; //生成bundle
}
+(NSString *)userLanguage{
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
NSString *language = [def valueForKey: @userLanguage ];
return language;
}
+( void )setUserlanguage:(NSString *)language{
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
//1.第一步改变bundle的值
NSString *path = [[NSBundle mainBundle] pathForResource:language ofType: @lproj ];
bundle = [NSBundle bundleWithPath:path];
//2.持久化
[def setValue:language forKey: @userLanguage ];
[def synchronize];
}
@end </foundation>
|