最近开发了一个项目要实现本地化功能,从网上找了一些资料,参考了一些别人的方法。
(1)、在InfoPlish.strings(english)文件中加入;
CFBundleDisplayName ="localizable";
其中“ localizable”为英文应用程序名称.
(2)、同理在InfoPlish.strings(chinese)文件中加入:
CFBundleDisplayName ="本地化";
其中“本地化”为中文名称,
注意:CFBundleDisplayName加不加双引号都行
(1)、在InfoPlish.strings(english)文件中加入本地化内容;
CFBundleDisplayName ="localizable"; //这个是应用名称
"label"="qingfeng zhang";
"buttonTitle" = "this is a button";
"buttonBg" = "buttonBg_01";
"imageName" = "1004.jpg"; //这个是将图片名称进行本地化
(2)、同理在InfoPlish.strings(chinese)文件中加入对应的本地化内容:
CFBundleDisplayName ="本地化"; //这个是应用名称
"label"="张清锋";
"buttonTitle" = "这是个按扭";
"buttonBg" = "buttonBg_02";
"imageName" = "1005.jpg"; //这个是将图片名称进行本地化
(3)、读取本地化字符串有两种方法分别为:
NSLocalizedString(<#key#>, <#comment#>)
NSLocalizedStringFromTable(<#key#>, <#comment#>)
如果你的strings文件名称不是“Localizable.strings”而是自定义的话,如infoPlist.strings,那么你就得使用NSLocalizedStringFromTable(<#key#>, <#comment#>)来读取本地化字符串:取值方法如下:
NSLocalizedString(@"label", nil);
NSLocalizedStringFromTable(@"label", @"InfoPlist", nil);
(4)、给控件进行赋值,这里用的取值方法是
NSLocalizedStringFromTable(<#key#>, <#comment#>):
self.label.text = NSLocalizedStringFromTable(@"label", @"InfoPlist", nil);
[self.button setTitle:NSLocalizedStringFromTable(@"buttonTitle",@"InfoPlist", nil)
forState:UIControlStateNormal];
[self.button setBackgroundImage:[UIImage imageNamed:NSLocalizedStringFromTable(@"buttonBg", @"InfoPlist", nil)]
forState:UIControlStateNormal];
运行结果如下图
3、本地化图片,通过上面的方法可以看出,我们是通过本地化图片的名称进行取值,而实现显示不同的图片。下面讲解下图片的本地化操作。
(1)、选中你要本地化的图片,打开属性栏,如下图:
(5)、现在将对应的图片添加到zh-Hans.lproj文件中,图片名称需一样才行。
(6)、回到Xcode,选中你刚才本地化的图片,打开属性栏。选中本地化的语言就行了
(8)、在程序中取值按正常方法取值就行了。
self.imageVIew.image = [UIImage imageNamed:@"1004.jpg"];
(9)、运行结果可下图
4.本地化其他文件
本地化其他文件和本地化图片第二种方法类似,先在Localization中添加语言,然后把对应版本拷贝到en.lproj和zh-Hans.lproj文件夹中,最后引用就行了。