本文共 1597 字,大约阅读时间需要 5 分钟。
- 所谓字符串本地化,就是指App内的字符串在不同的语言环境下显示不同的内容。
- 比如,"主页"这个字符串在中文语言环境下显示“主页”,在英语环境下显示“home”。下面就开始进行字符串本地化。
- 其实字符本地化和App名称本地化过程如出一辙,只是创建的文件名成不一样(连同后缀一起,文件名必须是Localizable.strings),其他步骤完全相同。
- 为了能够让大家彻底了解,此处还是会把步骤一一贴出来。
1、准备操作流程
1.1 创建
- 和应用名称本地化一样,首先需要command + N,选择iOS -> Resource -> Strings File
![1213778-20180729221301655-2120631059.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729221301655-2120631059.png)
1.2 命名要求
- 文件名必须命名为Localizable
- 备注:因本人电脑取消隐藏文件后缀名,所以会自动补全.strings后缀名。
![1213778-20180729221318223-1284389030.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729221318223-1284389030.png)
1.3 创建结果
- 文件创建成功,查看Xcode左侧导航列表,发现多了一个名为Localizable.strings的文件,如下图:
![1213778-20180729221329801-155512099.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729221329801-155512099.png)
1.4 选择需要本地化的语言
- 选中Localizable.strings文件,在Xcode的File inspection中点击Localize,目的是选择我们需要本地化的语言(和本地化App名称同理),如下图:
![1213778-20180729221406617-838372855.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729221406617-838372855.png)
- 依次选择English->Localize,如下图:
![1213778-20180729221418393-520245737.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729221418393-520245737.png)
1.5 选择我们需要本地化的语言
- 然后勾选French、Chinese(zh-Hans)、Chinese(zh-Hant)、Korean,如下图:
![1213778-20180729221654261-1385463185.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729221654261-1385463185.png)
- 然后我们发现Xcode右侧的File inspection变成了下图的样式:
![1213778-20180729221907881-688303691.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729221907881-688303691.png)
1.6 配置结果
- 此时,Xcode左侧的Localizable.stirings左侧多了一个箭头,展开后,如下图所示:
![1213778-20180729221708741-333043039.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729221708741-333043039.png)
2、开始国际化
3、国际化结果
- 不同语言环境下运行效果,如下图:
英语环境下:
![1213778-20180729222730181-2057036195.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729222730181-2057036195.png)
法语环境下:
![1213778-20180729222735022-694745649.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729222735022-694745649.png)
简体中文环境下:
![1213778-20180729222740988-1517113406.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729222740988-1517113406.png)
繁体中文环境下:
![1213778-20180729222744762-1599270947.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729222744762-1599270947.png)
韩语环境下:
![1213778-20180729222749207-747641771.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729222749207-747641771.png)
- 如此一来,我们就实现了代码中字符串的本地化。
4、技巧
- 其实,我们不需要给Localizable.strings(English)文件添加Key-Value。
- 原因如下:系统根据某个key去获取对应的字符串时,如果没有找到,那么就会以key作为value返回。
- 所以如果我们在Localizable.strings(English)文件中没有添加 click = "hit";那么在english环境下btn最终显示的title会是click.
- 切换语言无需在模拟器中设置,只需要在Xcode中进行如下设置: Edit->Scheme->Run->Arguments Passed On Launch ->-AppleLanguages (语言代码)。
- 例如,我们模拟器此时虽然是韩语,如果通过上述步骤设置为zh-Hans,那么语言环境将会变为汉语,如下图:
![1213778-20180729223340279-1316285269.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729223340279-1316285269.png)
![1213778-20180729223354425-1173682502.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729223354425-1173682502.png)
- 运行效果:
![1213778-20180729223401765-1121102639.png](https://images2018.cnblogs.com/blog/1213778/201807/1213778-20180729223401765-1121102639.png)
- 如此一来,切换语言变得更加简单,无需在模拟器的设置中进行繁琐的语言切换。
转载于:https://www.cnblogs.com/CH520/p/9388017.html