1.国际化和本地化的差别
简单说,国际化是一个应用程序国际兼容性设计的过程,比如:
1.以用户母语处理文本输入和输出;
2.处理不同的日期、时间以及数字格式;
3.利用适当的历法和时区处理数据;
国际化是一项你和开发者通过利用系统提供的API来实现的活动,并在代码上做一些补充和修改,从而让应用的中文版、阿拉伯语版本和英文版一样好。
相比之下,本地化仅仅是把应用的用户界面和资源翻译成不同的语言,这是你可以也应该交给别人做的工作,除非你能精通app应该支持的每种语言。
2.开始实现应用的本地化
(1)新建一个项目
(2)添加本地化文件,右键点击项目,选择
File>New File
(3)命名:此处很重要,请将本地化文件命名为:Localizable。
Localizable.strings是iOS用来本地化文本默认的文件名称。请抑制以其他内容给它命名的冲动,否则以后你每次引用本地化字符串的
时候要一次次输入.strings 文件名。
(4)添加你需要的语言,系统默认的是English,点击添加你需要的语言。
(5)添加后,点击新建的本地化文件,在右侧点击localize(箭头所指),然后添加需要的语言。
(6)添加完毕后,如下图所示。点击Localizable.strings,在base和simplified中分别写入你需要语言的对应字符。
你需要添加所有的文本--当前硬编码在app中的文本。你需要遵从一个特定但简单的格式,类似于字典:
“key” = “value”;
比如下面我给的key分别是“hello”,“world”。在base和 simplified分别写入需要语言的对应翻译。英文的文件为“hello”和“world”,中文的为“你好”和“世界”。
Key/content对也可以包含格式化字符串:
"Yesterday you sold %d apps"
=
"Yesterday you sold %d apps";
_salesCountLabel.text = [NSString stringWithFormat:@"Yesterday you sold %d apps", 10];
(7)使用,如果用的是代码编程,可使用 NSLocalizedString (
@"key" , nil ); key对应的是所需要的key,后面的参数为nil是因为我们的本地化文件文件名是 Localizable。
(8)如果,用的是storyboard的开发,可使用以下方法进行本地化
首先,找到对应控件的Object ID
然后在main.strings中修改对应的文字即可
最后要注意一点:本地化的测试都必须用真机测试!!