有的时候产品里需要涉及到多语言,所以需要国际化的设置,现在就记录一下,首先如果要国际化需要到PROJECT下选择info里的Localizations,点击+号,这样可以增加国际化的语言版本
设置好了以后,你的InfoPlist.strings下面就会多出来2个文件
之后,你就可以在这里设置一些相关的信息
例如,程序名称
//Simplified:
CFBundleDisplayName="中文app";
//English:
CFBundleDisplayName="en-app";
在模拟器切换语言的方法是:设置-通用-多语言环境-语言
本地化内容:
New File… -->Resource-->Strings File,很多教程说文件的名字必须是Localizable.strings否则无法识别,其实并不是,这里我们用另一个方法,把名字设置成MyLocalization.strings
然后在对应的MyLocalization.strings的中英文环境里设置想要的字段,用NSLocalizedStringFromTable方法取出想要的文字
//china
"key" = "中文内容";
//en
"key" = "en";
UILabel *label = [[UILabel alloc] init];
label.frame = CGRectMake(20, 40, 250, 60);
label.text = NSLocalizedStringFromTable (@"key",@"MyLocalization", nil);
[self.view addSubview:label];
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(20, 100, 250, 60)];
//判断当前语言类型
NSArray *languages = [NSLocale preferredLanguages];
//得到语言类型
NSString *currentLanguage = [languages objectAtIndex:0];
if([currentLanguage isEqualToString:@"en"])
{
view.backgroundColor = [UIColor yellowColor];
}else{
view.backgroundColor = [UIColor redColor];
}
[self.view addSubview:view];
如果想要不同的语言环境对应不同的图片也是可以设置的,大致如之前我们所设置,添加语言环境,会看到
如果想换那个图片,只需要右键点击,showFinder,进去替换成名字一样的图片就可以了啊,哈哈~~
源码:国际化demo