1.新建项目,创建
image2.文件名字我是使用的系统的Localizable
image3.设置支持的语言版本
image[图片上传中...(02181497-6E15-419F-A674-5D3A1A883934.png-986780-1513850483670-0)]
4.目前为止,就实现了跟随系统语言来切换app里边的内容
设置语言资源:分别在两个语言文件里边设置key:value
,key
必须相同,然后value
分别对应版本语言
使用方法:self.label.text = NSLocalizedString(@"xxx", nil);
5.进阶需求,童鞋们想实现进app之后,设置默认语言,如果是当前本地语言之外的语言,就设置语言为英文的话,请看下边思路!
首先
在didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法中判断当前系统语言
NSArray *languages = [NSLocale preferredLanguages];
//判断当前系统语言
NSString *language = [languages objectAtIndex:0];
if ([language hasPrefix:@"zh-Hans"]) {
//我这里的需求是,如果不是中文,则APP语言都显示成英文,
//先把它存在NSUserDefaults中
[[NSUserDefaults standardUserDefaults] setObject:@"zh-Hans" forKey:@"appLanguage"];
} else{
//en.lproj 是英文资源包的文件名字
[[NSUserDefaults standardUserDefaults] setObject:@"en" forKey:@"appLanguage"];
}
可以看下资源包名字,就明白了
image在pch中,写上这个
#define WWNSLocalizedString(Context) [NSString stringWithFormat:@"%@", [[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"]] ofType:@"lproj"]] localizedStringForKey:(Context) value:nil table:nil]]
这行代码意思获取首页userdefault中设置的语言类型,然后根据类型去获取语言资源包,然后使用相应的资源
调用的时候就这么用就OK啦
self.label.text = WWNSLocalizedString(@"xxx");
效果图:中文简体语言下
image非中文简体下
image
网友评论