我的应用程序使用Localizable.strings
文件和NSLocalizedString macro
以意大利文和英文本地化本地化应用程序。我也启用了base localization
。在模拟器和装有iOS 8的设备上一切正常,但在iOS 9上,应用程序始终是英文的,即使在iPhone设置中默认选择意大利语言的设备上也是如此。 iOS 9是否改变了本地化的东西?ios 9 + Xcode 7
这里的Xcode的截图本地化设置
1
用于测试的设备和
在此先感谢
我的应用程序使用Localizable.strings
文件和NSLocalizedString macro
以意大利文和英文本地化本地化应用程序。我也启用了base localization
。在模拟器和装有iOS 8的设备上一切正常,但在iOS 9上,应用程序始终是英文的,即使在iPhone设置中默认选择意大利语言的设备上也是如此。 iOS 9是否改变了本地化的东西?ios 9 + Xcode 7
这里的Xcode的截图本地化设置
1
用于测试的设备和
在此先感谢
解决, “问题” 是关键info.plist文件中的“本地化本地开发区域”。它被设置到意大利,所以当应用程序运行在默认为意大利语的设备上时,它显示了字符串的基本本地化版本(英文版)。 将值更改为美国解决了该问题。
我遇到了同样的问题。但是我把价值改变成'Unite States'并没有帮助。我的第二语言是中国传统。 –
但是,如果我将iOS设备的“区域”设置更改为“统一国家”,则可以在我的应用程序中看到中文。为什么“区域”设置很重要? –
您的基本字符串文件是英文还是中文? – lorenzoliveto
我找到了解决方法。 此问题的根本原因是Apple在iOS 9中更改了“语言标识符”,请参阅this。
由于NSLocalizedString()
(及其变体)访问NSUserDefaults
中的"AppleLanguages"
键以确定用户对优选语言的设置。我强迫NSLocalizedString
使用特定语言,一旦我发现其语言标识为新格式,在旧版iOS中将其标记为其旧语言标识符。换句话说,我做了一个映射关键值"AppleLanguages"
。
要做到这一点,请参考:How to force NSLocalizedString to use a specific language
我认为苹果在兼容性做了一个非常糟糕的工作!
注意,我无法找到一个方法来添加本地化的资源与代码‘ZH-TW’,我只能添加‘ZH’,‘ZH-汉特’或只有“zh-Hant-TW”。不知道它是否是苹果的错误。 –
我有另一种解决方案,只需删除info.plist中的'Localizations'键即可。 它适用于我的情况。
这对我有用。 Project-Info-Localization和info.plist-本地化在我的情况下是不同的。 – Minsu
你有什么建议,应该是什么问题? 该应用程序今天上午被批准并从App Store下载,仅显示英文版本的内容 – lorenzoliveto
@lorenzoliveto您能展示两件事:Xcode项目本地化的屏幕截图以及您的测试的设备语言+区域设备设置为? – wakachamo
我添加了问题的截图。 – lorenzoliveto