我已经找到了解决方法。这个问题的根本原因是Apple在iOS 9中更改了“语言标识符”,请参阅this。 由于NSLocalizedString()(及其变体)访问NSUserDefaults中的"AppleLanguages"键以确定用户对首选语言的设置。我强迫NSLocalizedString使用特定的语言,当我发现他们的语言ID是新格式时,在旧的iOS版本中将其标记为旧的语言标识符。换句话说,我对"AppleLanguages"键值进行了Map。 为此,请参阅:How to force NSLocalizedString to use a specific language 我认为苹果在兼容性方面做得非常糟糕!!
4条答案
按热度按时间yrwegjxp1#
解决了,“问题”是info.plist文件中的关键字“本地化本地开发区域”。它被设置为意大利,因此当应用程序在默认使用意大利语的设备上运行时,它会显示字符串的Base本地化版本(英语版本)。将值更改为美国解决了这个问题。
p1tboqfb2#
我有另一个解决方案,只需删除info.plist中的“Localizations”键。它适用于我的情况。
zz2j4svz3#
我已经找到了解决方法。这个问题的根本原因是Apple在iOS 9中更改了“语言标识符”,请参阅this。
由于
NSLocalizedString()
(及其变体)访问NSUserDefaults
中的"AppleLanguages"
键以确定用户对首选语言的设置。我强迫NSLocalizedString
使用特定的语言,当我发现他们的语言ID是新格式时,在旧的iOS版本中将其标记为旧的语言标识符。换句话说,我对"AppleLanguages"
键值进行了Map。为此,请参阅:How to force NSLocalizedString to use a specific language
我认为苹果在兼容性方面做得非常糟糕!!
j2qf4p5b4#
所以我发现你已经添加了你想让应用支持的语言。你必须手动选择它进行本地化。