Ios Xcode项目本地化为葡萄牙语(巴西),为什么还要显示英语?

Ios Xcode项目本地化为葡萄牙语(巴西),为什么还要显示英语?,ios,xcode,cocoa,localization,Ios,Xcode,Cocoa,Localization,我的Xcode项目被本地化为“葡萄牙语(巴西)”,然后我尝试在设备和模拟器上将语言设置为“葡萄牙语”和“葡萄牙语(葡萄牙)”,但界面仍然显示英语,怎么了 其他本地化语言运行良好,只有巴西无法运行。我想知道巴西人民会选择什么语言设置?我问了一些程序员,在Xcode中,他们只是本地化为“葡萄牙语”,跳过“葡萄牙语(巴西)”。不知道为什么苹果会在iOS和Xcode之间产生如此大的差异 我发现,对于名称中有括号的语言,如果你把它拼出来就不起作用了 对于葡萄牙语(巴西),您必须使用pt BR e、 g.~

我的Xcode项目被本地化为“葡萄牙语(巴西)”,然后我尝试在设备和模拟器上将语言设置为“葡萄牙语”和“葡萄牙语(葡萄牙)”,但界面仍然显示英语,怎么了


其他本地化语言运行良好,只有巴西无法运行。我想知道巴西人民会选择什么语言设置?

我问了一些程序员,在Xcode中,他们只是本地化为“葡萄牙语”,跳过“葡萄牙语(巴西)”。不知道为什么苹果会在iOS和Xcode之间产生如此大的差异

我发现,对于名称中有括号的语言,如果你把它拼出来就不起作用了

对于葡萄牙语(巴西),您必须使用pt BR

e、 g.~AppleLanguages(“pt BR”)

就像中文(繁体)和中文(简体)一样,您必须使用 ~AppleLanguages(“zh Hant”)和~AppleLanguages(“zh Hans”)


这对我有用

在我看来,这些语言似乎颠倒了它们的位置。
当我使用“pt”时,它适用于巴西葡萄牙语,但不适用于葡萄牙葡萄牙语。解决方法是在我们的翻译中复制“pt”和“pt BR”。奇怪的虫子

今天我遇到了同样的问题,现在我能够使我的项目正常工作了。我认为这是因为xCode为我们提供了选择葡萄牙巴西的选项

实际上,苹果文档中的这句话帮助了我:

脚本或方言的语言ID使用子标签,如在pt pt中,pt是葡萄牙语的代码,pt是葡萄牙语的代码。例如,在巴西使用pt作为葡萄牙语的语言ID,在葡萄牙使用pt作为葡萄牙语的语言ID

对于巴西葡萄牙语,只选择葡萄牙语(pt),而不选择巴西葡萄牙语。对于葡萄牙语,您可以选择葡萄牙语(pt)。它会起作用的


谢谢。

手机上没有“葡萄牙语”选项并不重要,只有“葡萄牙语(巴西)”和“葡萄牙语(葡萄牙)”选项。本地化规范是一个层次结构。预期的方法是首先实现最一般的方面(例如:葡萄牙语),然后根据需要添加基于区域、国家、脚本等的附加差异


一些参考资料:

我知道这是个愚蠢的问题,但需要问一下。你确实用葡萄牙语添加了新字符串,对吗?你不只是复制一个新的文件或类似的东西,你使用xcode添加语言和文件,然后自己修改文件?是的,我成功地本地化为法语和德语。我不知道为什么巴西会失败。我不确定这一点,因为我从未进行过特定国家的本地化,但使用葡萄牙语(巴西)而不是葡萄牙语有什么特别的原因吗?葡萄牙语(巴西)和葡萄牙语(葡萄牙)是不同的语言。葡萄牙语(巴西)不是葡萄牙语,至少对计算机来说不是,如果iOS想要葡萄牙语,它不会使用巴西变体。通常,您希望首先使用最不特定的语言进行本地化,例如葡萄牙语。如果iOS想要巴西葡萄牙语,但找不到它,它将使用“普通”葡萄牙语。我想为巴西人本地化,所以我在xcode中选择葡萄牙语(巴西),但iOS设置中没有“葡萄牙语(巴西)”。。我试过“葡萄牙语”和“葡萄牙语(葡萄牙)”,但它能显示英语。巴西葡萄牙语和葡萄牙语很不一样。虽然它们相互理解,但至少与美国英语和英国英语一样明显。