CFBundleAllowMixedLocalizations 开启系统预定义的本地化功能

转自 http://42.96.169.71/blog/2012/12/23/cfbundleallowmixedlocalizations-kai-qi-xi-tong-yu-ding-yi-de-ben-di-hua-gong-neng/

在 iOS 应用程序中,很多控件都集成了本地化功能,比如,在 UIWebView 中的网页里面选择一个文本框,然后键盘上面会出现,前一项,后一项按钮。 这些按钮就会被系统根据当前设备的语言环境,进行本地化。 但这些控件是否对特定的语言环境进行本地化,还取决于你应用的配置。 iOS 默认只对你应用支持的语言进行本地化。 比如,每个应用的 Info.plist 中都有一个 CFBundleDevelopmentRegion 键, 而在默认情况下,它的值是 en。 换句话说就是你的应用仅支持英文环境。 这时,不管你应用所处的设备是怎样的语言环境,那么系统都只会按照英文进行本地化。还是以刚才 UIWebView 的例子来说,这时键盘上面会显示 “Previous”, “Next” 这些英文按钮。

在中文语言环境下 UIWebView 仍然显示英文按钮:

如果你需要系统帮你进行更多的本地化,那么有两种方法。 一种就是指明你应用支持的语言, 可以通过建立 *.lproj 来添加新的语言支持。 但是如果你想对所有的语言都进行本地化,那么这种方法就很麻烦了。 所以 iOS 提供了另外一种方式, CFBundleAllowMixedLocalizations。 我们只需要在项目的 Info.plist 文件中将这个键的值设置为 true。 顾名思义,这个键允许混合形式的本地化。 也就是说,当你设置了这个键之后,不管你的应用是否支持当前设备的语言环境,iOS 系统都会尽可能都根据当前的语言进行本地化。

可以通过在 Info.plist 编辑器中添加这个选项来设置:

应用了这个键之后,在中文语言环境下 UIWebView 的效果如下:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值