升级iOs 9 + Xcode 7

时间:2015-09-22 07:31:40

标签: ios localization ios9 xcode7

我使用Localizable.strings文件和NSLocalizedString macro以意大利语和英语对我的应用进行了本地化。我也启用了base localization。在iOS 8的模拟器和设备上一切正常,但在iOS 9上,应用程序始终使用英语,即使在iPhone设置中选择默认意大利语的设备上也是如此。 iOS 9是否会通过本地化进行改变?

以下是Xcode本地化设置的屏幕截图 http://i.imgur.com/xc20yjj.png 1

用于测试的设备 http://i.imgur.com/QCjn52u.png

提前致谢

3 个答案:

答案 0 :(得分:9)

解决了问题"是关键的"本地化原生开发区域"在info.plist文件中。它被设置为意大利,所以当应用程序在默认为意大利语的设备中运行时,它显示了字符串的基本本地化版本(英文版)。 将价值改为美国解决了这个问题。

答案 1 :(得分:2)

我有另一个解决方案,只需删除info.plist中的“Localizations”键。 它适用于我的情况。

答案 2 :(得分:1)

我找到了解决方法。 这个问题的根本原因是Apple改变了语言标识符"在iOS 9中,请参阅this

由于NSLocalizedString()(及其变体)访问"AppleLanguages"中的NSUserDefaults密钥,以确定用户对首选语言的设置。一旦我发现他们的语言ID是新格式,我强迫NSLocalizedString使用特定语言作为旧iOS版本中的旧语言标识符。换句话说,我制作了"AppleLanguages"键值的映射。

要执行此操作,请参阅:How to force NSLocalizedString to use a specific language

我认为Apple在兼容性方面做得非常糟糕!!