iOS 国际化
2016-11-30 本文已影响76人
Mossion
1.app名称国际化
在项目里“PROJECT”->"Info"-“Localizations”添加想要的语言。
![](https://img.haomeiwen.com/i1237905/da73630dcbc9aa6e.png)
生成一个InfoPlist.strings文件,并选中想要添加的语言。
![](https://img.haomeiwen.com/i1237905/fd5f060f390a5bee.png)
选中InfoPlist.strings,在右侧点击Localize... 并选上要添加的语言。base是默认的语言。
![](https://img.haomeiwen.com/i1237905/b52405d0d7b5d111.png)
![](https://img.haomeiwen.com/i1237905/50938954baafff4a.png)
打开InfoPlist.strings,在InfoPlinst.string(English)中添加
![](https://img.haomeiwen.com/i1237905/380758ace51de508.png)
在InfoPlist.strings(Simplified)中添加
![](https://img.haomeiwen.com/i1237905/1832a7922db91158.png)
最后,在Info.plist中,加上“Application has localized display name”,并设置为YES
![](https://img.haomeiwen.com/i1237905/99803133893f9c23.png)
这样,去切换本机语言的时候,就能看到app名称的变化了。
![](https://img.haomeiwen.com/i1237905/46bd304f47c29012.png)
![](https://img.haomeiwen.com/i1237905/7dc362b165df4d22.png)
在InfoPlist.strings(base)里也设置CFBundleDisplayName="Location"; 则设置成其他语言比如如遇时,也是显示 Location。
2.文本国际化
和名称国际化一样,先创建一个Localizable.strings。
在Localizable.strings(English)中这是一个key=value的值。比如:
![](https://img.haomeiwen.com/i1237905/24657d674cdf583b.png)
在文本中就要使用
NSLocalizedString(key, comment);
即是通过key值去Localizable.strings中查找value值;comment可以为空,是一个备注值。
比如之前设置button的title是这样子的:
[button setTitle:@"buttonTitle" forState:UIControlStateNormal];
现在,则是要这个样子:
[button setTitle:NSLocalizedString(@"buttonTitle", nil) forState:UIControlStateNormal];
最后得到的按钮的title就是
![](https://img.haomeiwen.com/i1237905/d3d2496d56a893b7.png)
结束~