本地化,即使APP能够适应用户不同语言的需求,下面介绍如何使应用本地化。
一、准备工作
1.创建项目工程
创建好的工程结构如图:
2.搭建界面
在StoryBoard中搭建好界面,这里简单起见,只用一个UILabel作演示,在控制器中创建输出口。
3.硬编码展示
在视图控制器中添加代码
self.labelTest.text = @”This is a Demo”;
硬编码效果:
二、本地化
1.创建strings文件
注意:Localizable.strings是iOS用来本地化文本默认的文件名称,避免使用其他文件名,否则每次调用本地化方法的时候都要手动指定本地化文件。
创建好的文件:
2.设置语言
以同时支持英语和简体中文为例
选择语言后选中弹窗里的所有需要本地化的文件,点击Finish。
3.创建多语言本地化文件
选中刚才创建的Localizable.strings文件—>打开file inspector—>在弹窗中下来选中English然后确定。这时候可以看到file inspector中的localization多了多选列表,选中目标语言,English和Chinese(Simplified)。
选中后再来看Localizable.strings文件,多了两个子文件,这两个文件就是设置本地化内容的文件。
4.自定义本地化信息
分别在Localizable.strings(English)文件和Localizable.strings(Simplified)文件中输入大面内容:
下面介绍刚刚输入的内容。内容的格式是”key”=”value”的格式,等号左边是关键字,用来查找对应的值。可以看到两个文件中key是一样的,值不同。这个值就是要在不同语言中显示的内容。
5.代替硬编码
一切工作都准备就绪,下面只要改一下开头的那句代码,就能实现本地化。
将self.labelTest.text = @”This is a Demo”用下面代码替换:
self.labelTest.text = NSLocalizedString(@"demoString", nil);
这是一定宏定义的方法,具体可以点进去看。第一个参数是刚才在本地化文件中设置的key,第二个参数通常用来备注,实际方法中并不会用到它,这里设置成nil即可。
在真机或模拟器中运行程序,加入你的设备当前语言是English,那么和之前的运行结果一致。这个时候你在设置中把语言切换成简体中文再打开app,surprise!
扩展–国际化APP名
创建名为InfoPlist.strings本地化文件,同前面介绍的一致。在InfoPlist.strings(English)文件中添加代码:
"CFBundleDisplayName" = "EnglishName";
在InfoPlist.strings(Simplified)文件中添加代码:
"CFBundleDisplayName" = "中文名";
这样在不同的语言环境下,APP就会显示不同的名字了。
关于ios本地化的介绍就是这些!