app 国际化

1. 应用程序名称的国际化

* 案例: 微信、微博等案例

- "微信"、"WeChat"

- "微博"、"Weibo"

 

* 演示步骤:

1> 选中项目, 添加对中文、英文的支持。选中项目在Localization下选择Language。

2> 在 info.plist 中添加一个Bundle Display Name 的项, 然后查看对应的原生的键的名称.

3> 在 Supporting Files 下面添加一个 InfoPlist.strings 的文件

4> 选中 InfoPlist.strings, 点击右侧的 Localize 按钮, 然后点击 Localize

5> 然后勾选 English、Chinese, 在 InfoPlist.strings 下会出现多个文件。

6> 在每个文件中编写对应的键值对, 如下:

English:

"CFBundleDisplayName" = "WeChat";

Chinese:

"CFBundleDisplayName" = "微信";

7> 这时, 直接切换模拟器(或真机)的语言(中文、英文)的时候, 应用程序名字会自动发生变化。

 

 

 

 

2. storyboard 文件中, 控件的国际化(这个必须在真机上调试, 在模拟器上调试是有问题的)

1> 布局一个登录界面

2> 默认的文字都用中文

3> 布局好了以后, 选中该 storyboard 文件, 在右侧的工具箱中, 选择"文件审查器", localization, 勾选中文、英文。

4> 然后会出现多个 storyboard 文件, 在对应的文件中修改语言则可。

• 注意, 这个在模拟器上运行有问题, 需要在真机上运行。

 

 

 

 

3. 演示弹出的 UIAlertView 的国际化(Localizable.strings也依赖系统的语言)

* 思路: 通过配置多个不同的.strings文件, 来指定在不同情况下的显示不同的语言

1> 创建一个名字为Localizable.strings的文件

2> 选中该文件, 在右侧的"文件审查器"中, 点击 Localize 按钮, 勾选中文、英文。

3> 在对应的中文、英文文件中, 添加一些需要国际化的键值对

4> 在代码中通过NSLocalizedString(@"key", nil);的方式获取对应的键值.这个方法内部会根据系统的语言, 去读取对应的键值。

 

 

4. 实现类似"新浪微博"、"微信"切换语言的效果(点击切换语言后立刻切换, 无需设置手机的语言)

* 思路:

1> 自定义多个不同的.strings 文件

- language_CN.strings

- language_EN.strings

 

2> 通过下面的代码手动加载对应的.strings 文件

NSLocalizedStringFromTable(<#key#>, @"language_CN", nil);

NSLocalizedStringFromTable(<#key#>, @"language_EN", nil);

 

3> 放两个按钮, 点击中问按钮, 读取中文的strings 文件, 点击英文读取英文的 strings 文件, 然后当前使用的是哪种语言, 就把这种语言保存到"偏好设置中", 下次 viewDidLoad 的时候直接读取偏好设置中的语言配置。

posted @ 2015-12-16 23:32  不会凉的黄花菜  阅读(546)  评论(0编辑  收藏  举报