Ios 当语言不存在时,本地化如何默认?[解释]

Ios 当语言不存在时,本地化如何默认?[解释],ios,objective-c,localization,nslocalizedstring,Ios,Objective C,Localization,Nslocalizedstring,更新:解决方案 你支持英语和西班牙语 如果设置应用程序中的语言列表为葡萄牙语、西班牙语、英语,则会向用户显示西班牙语。如果列表是葡萄牙语、英语、西班牙语,那么将向用户显示英语 有关更多信息,请检查已接受的答案 原创帖子 我正在本地化Ray Wenderlich开发的应用程序 到目前为止,一切进展顺利,但我发现当设备配置不受支持时,应用程序默认使用错误的语言 例如,我支持英语和西班牙语。但是,当在设备设置为葡萄牙语的情况下运行应用程序时,会加载来自西班牙语(最后一种有效语言)的本地化 一般来说,

更新:解决方案

你支持英语和西班牙语

如果设置应用程序中的语言列表为葡萄牙语、西班牙语、英语,则会向用户显示西班牙语。如果列表是葡萄牙语、英语、西班牙语,那么将向用户显示英语

有关更多信息,请检查已接受的答案


原创帖子

我正在本地化Ray Wenderlich开发的应用程序

到目前为止,一切进展顺利,但我发现当设备配置不受支持时,应用程序默认使用错误的语言

例如,我支持英语和西班牙语。但是,当在设备设置为葡萄牙语的情况下运行应用程序时,会加载来自西班牙语(最后一种有效语言)的本地化

一般来说,检查“CfBundledDevelopmentRegion”的想法似乎是最常见的建议。虽然设置为“en”,但应用程序似乎并不在意。尝试将其设置为en_US,但没有结果

根据官方文档,当没有找到字符串键时,应该返回键本身,这将非常好,因为我的键是英文字符串。但这似乎也没有发生

有谁知道这是怎么处理的,或者我该如何处理


提前感谢。

更新:

对不起,我理解错了这个问题

因此,是的,当找不到字符串键时,应该返回键本身! 绝对是这样!如果用英语设置字符串,如:

NSLocalizedString(@"Hello",@"");
如果您没有
葡萄牙语
文件,将返回
Hello

原创帖子:

在目标的
Info.plist
文件中强制使用的默认开发区域的语言


更新:

对不起,我理解错了这个问题

因此,是的,当找不到字符串键时,应该返回键本身! 绝对是这样!如果用英语设置字符串,如:

NSLocalizedString(@"Hello",@"");
如果您没有
葡萄牙语
文件,将返回
Hello

原创帖子:

在目标的
Info.plist
文件中强制使用的默认开发区域的语言


显示的语言基于您支持的地区以及用户在“设置”应用程序中选择的语言顺序

运行设置应用程序,然后转到常规、国际和语言。从语言列表的顶部开始,然后向下移动,直到语言与应用程序支持的语言之一匹配为止。这就是它的工作原理

你支持英语和西班牙语


如果设置应用程序中的语言列表为葡萄牙语、西班牙语、英语,则会向用户显示西班牙语。如果列表为葡萄牙语、英语、西班牙语,则将向用户显示英语。

显示的语言基于您支持的地区以及用户在“设置”应用程序中选择的语言顺序

运行设置应用程序,然后转到常规、国际和语言。从语言列表的顶部开始,然后向下移动,直到语言与应用程序支持的语言之一匹配为止。这就是它的工作原理

你支持英语和西班牙语


如果设置应用程序中的语言列表为葡萄牙语、西班牙语、英语,则会向用户显示西班牙语。如果列表是葡萄牙语、英语、西班牙语,那么将向用户显示英语。

是的,这就是我在所有地方看到的。“CfBundledDevelopmentRegion”是完全相同的配置。无论我将其设置为en或en_US(选择“美国”),它都不会改变行为。嗨,Mateo,再次感谢您的回复。你绝对是,这是苹果文档中详细描述的预期行为。然而,不知何故,我设法避免了它。如果设备配置的语言文件丢失,则不会加载密钥,而是使用其他语言文件。@maddy回答正确!这与设置页面中的语言顺序有关。是的,这就是我到处都能看到的。“CfBundledDevelopmentRegion”是完全相同的配置。无论我将其设置为en或en_US(选择“美国”),它都不会改变行为。嗨,Mateo,再次感谢您的回复。你绝对是,这是苹果文档中详细描述的预期行为。然而,不知何故,我设法避免了它。如果设备配置的语言文件丢失,则不会加载密钥,而是使用其他语言文件。@maddy回答正确!这与设置页面中的语言顺序有关。非常感谢!这就是我要找的!如果你问我的话,这有点奇怪,但至少现在我知道它为什么会这样工作了。再次感谢!现在我想起来了,应该可以强制使用特定的语言作为默认语言,对吗?非常感谢!这就是我要找的!如果你问我的话,这有点奇怪,但至少现在我知道它为什么会这样工作了。再次感谢!现在我想起来了,应该可以强制一种特定的语言作为默认语言,对吗?