- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我们的 iOS 项目具有从 Xcode 中创建的“西类牙语”(es.lproj) 和“西类牙语(拉丁美洲)”(es-419.lproj) 的本地化字符串。
但是,在 iPhone(美国,最新的 iOS 7)上,西类牙语的语言选项只有“Español”和“Español(墨西哥)”,没有“拉丁美洲”。当您选择“Español(墨西哥)”时,它会使用我们应用中的“西类牙语”字符串,而不是人们所期望的“西类牙语(拉丁美洲)”字符串。
在进一步调查中,[[NSBundle mainBundle] preferredLocalizations]
返回 @[@"es"]
。即使 [[NSBundle mainBundle] localizations]
返回一个包含“es”和“es-419”的数组。
但是,[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"]
返回一个包含“es-MX”的数组。
然后是下面的表达式:
[NSBundle preferredLocalizationsFromArray:@[@"es-419", @"es"]
forPreferences:@[@"es-MX"]]
返回 @[@"es"]
。
为什么 Xcode 会为我们提供“西类牙语(拉丁美洲)”本地化,而当您在手机上实际选择唯一的拉丁美洲西类牙语选项时却没有使用它?
最佳答案
这在 iOS 9 和 10 中已经改变,应该可以正常工作。但是,如果您的本地化不存在于您的项目中,它将选择 Base 本地化(如果存在)。只有一个基地可用;如果您的用户选择“es-MX”作为他的电话语言,而您只有“es”,它将选择来自基本本地化的字符串,而不是来自“es”基本西类牙语翻译的字符串。
关于ios - "Español (México)"语言设置使用 "Spanish"字符串而不是 "Spanish (Latin America)"字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23550623/
我是一名优秀的程序员,十分优秀!