1.国际化和本地化的差别
![](https://img-blog.csdn.net/20150410143026626?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGlhbnpoaXBvNTkyOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(8)如果,用的是storyboard的开发,可使用以下方法进行本地化
简单说,国际化是一个应用程序国际兼容性设计的过程,比如:
1.以用户母语处理文本输入和输出;
2.处理不同的日期、时间以及数字格式;
3.利用适当的历法和时区处理数据;
国际化是一项你和开发者通过利用系统提供的API来实现的活动,并在代码上做一些补充和修改,从而让应用的中文版、阿拉伯语版本和英文版一样好。
相比之下,本地化仅仅是把应用的用户界面和资源翻译成不同的语言,这是你可以也应该交给别人做的工作,除非你能精通app应该支持的每种语言。
2.开始实现应用的本地化
(1)新建一个项目
![图片](https://i-blog.csdnimg.cn/blog_migrate/10fa4b685cac4d9498127ee5b0bc7b37.jpeg)
(2)添加本地化文件,右键点击项目,选择 File>New File
![图片](https://i-blog.csdnimg.cn/blog_migrate/77ab7be799edd1d538f35a4be4c5d9e0.jpeg)
(3)命名:此处很重要,请将本地化文件命名为:Localizable。 Localizable.strings是iOS用来本地化文本默认的文件名称。请抑制以其他内容给它命名的冲动,否则以后你每次引用本地化字符串的 时候要一次次输入.strings 文件名。
![图片](https://i-blog.csdnimg.cn/blog_migrate/0642505eb655698a318d49f6b3e7f50e.jpeg)
(4)添加你需要的语言,系统默认的是English,点击添加你需要的语言。
![图片](https://i-blog.csdnimg.cn/blog_migrate/9f7b67396c04cfa5be0200efe84bdab0.jpeg)
(5)添加后,点击新建的本地化文件,在右侧点击localize(箭头所指),然后添加需要的语言。
(6)添加完毕后,如下图所示。点击Localizable.strings,在base和simplified中分别写入你需要语言的对应字符。
(7)使用,如果用的是代码编程,可使用 NSLocalizedString ( @"key" , nil ); key对应的是所需要的key,后面的参数为nil是因为我们的本地化文件文件名是 Localizable。
2.开始实现应用的本地化
(1)新建一个项目
![图片](https://i-blog.csdnimg.cn/blog_migrate/10fa4b685cac4d9498127ee5b0bc7b37.jpeg)
(2)添加本地化文件,右键点击项目,选择 File>New File
![图片](https://i-blog.csdnimg.cn/blog_migrate/77ab7be799edd1d538f35a4be4c5d9e0.jpeg)
(3)命名:此处很重要,请将本地化文件命名为:Localizable。 Localizable.strings是iOS用来本地化文本默认的文件名称。请抑制以其他内容给它命名的冲动,否则以后你每次引用本地化字符串的 时候要一次次输入.strings 文件名。
![图片](https://i-blog.csdnimg.cn/blog_migrate/0642505eb655698a318d49f6b3e7f50e.jpeg)
(4)添加你需要的语言,系统默认的是English,点击添加你需要的语言。
![图片](https://i-blog.csdnimg.cn/blog_migrate/9f7b67396c04cfa5be0200efe84bdab0.jpeg)
(5)添加后,点击新建的本地化文件,在右侧点击localize(箭头所指),然后添加需要的语言。
![图片](https://i-blog.csdnimg.cn/blog_migrate/797f955fb74676173f94f4569ca0d2af.jpeg)
(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];
“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];
![图片](https://i-blog.csdnimg.cn/blog_migrate/002f01f7ac4a852eb6763609c915c213.jpeg)
(7)使用,如果用的是代码编程,可使用 NSLocalizedString ( @"key" , nil ); key对应的是所需要的key,后面的参数为nil是因为我们的本地化文件文件名是 Localizable。
(8)如果,用的是storyboard的开发,可使用以下方法进行本地化
首先,找到对应控件的Object ID
![图片](https://i-blog.csdnimg.cn/blog_migrate/08f6353fda5d1fb42e8bd953aebdb558.jpeg)
然后在main.strings中修改对应的文字即可
![](https://img-blog.csdn.net/20150410143056191?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGlhbnpoaXBvNTkyOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
最后要注意一点:本地化的测试都必须用真机测试!!
![图片](https://i-blog.csdnimg.cn/blog_migrate/08f6353fda5d1fb42e8bd953aebdb558.jpeg)
然后在main.strings中修改对应的文字即可
最后要注意一点:本地化的测试都必须用真机测试!!