0

我正确设置了 es(西班牙语)、en(英语)和 ca(加泰罗尼亚语)的本地化。西班牙语和英语是主要的,而次要的就像 es-xx 和 en-xx。加泰罗尼亚语是具有 es-ca 代码的辅助语言。问题是,如果我使用 en-us 启动应用程序,则会调用 en.lproj 资源,因为 en-us 不存在。到目前为止都很好,但是,如果我删除加泰罗尼亚语本地化,应该做同样的事情并加载主要的,es。但是,不加载它并加载默认值(en)。我错过了什么?谢谢你

4

1 回答 1

1

我不确定您是否以正确的方式建模问题。

删除加泰罗尼亚语的问题(不确定为什么要删除本地化)是否会回到西班牙语正确?我假设巴塞罗那和说加泰罗尼亚语的人也会说西班牙语,但改变这些用户的语言感觉不对。

在我的应用程序中,我提供英语(英国、美国)、法语、日语和西班牙语。在启动时,我得到用户的首选语言环境并使用 NSDictionary 将它们映射到最合适的匹配项,如果没有找到匹配项,我会回退到美国英语。例如,如果你住在南非,最接近的英语是英国英语,但如果你住在菲律宾,美国英语更合适。

不幸的是,加泰罗尼亚语用户将退回到英语,但在下一个版本中,我将让用户从支持的语言列表中指定他们的首选语言,以便他们将来可以退回到西班牙语。

尝试使用 NSDictionary 将用户的区域设置映射到您应用的可用语言,看看它是否能解决您的问题。希望这可以帮助!

于 2012-09-07T01:19:07.573 回答