我为es(西班牙语),en(英语)和ca(加泰罗尼亚语)正确设置了本地化。西班牙语和英语是主要的,而辅助语言则是es-xx和en-xx。加泰罗尼亚语是具有es-ca代码的次要语言。 问题是,如果我使用en-us启动应用程序,则会调用en.lproj资源,因为en-us不存在。好到这一点,但是,如果我删除加泰罗尼亚语本地化,应该做同样的,并加载主要的,es。但是,不加载它并加载默认值(en)。我错过了什么?谢谢
答案 0 :(得分:1)
我不确定你是以正确的方式对问题进行建模。
删除加泰罗尼亚语的问题(不确定为什么要删除本地化)是否会回归西班牙语?我认为在巴塞罗那和加泰罗尼亚语说话的人也说西班牙语,但是改变那些用户的语言感觉不对。
在我的应用程序中,我提供英语(包括英国,美国),法语,日语和西班牙语。在启动时,我获得用户首选的语言环境,并使用NSDictionary将它们映射到最合适的匹配项,如果找不到匹配项,我将回退到美国英语。例如,如果你住在南非,最接近的英语是英国英语,但如果你住在菲律宾,美国英语更合适。
不幸的是,加泰罗尼亚语用户将回归英语,但在下一个版本中,我将允许用户从支持的语言列表中指定他们的首选语言,以便将来可以回退到西班牙语。
尝试使用NSDictionary将用户的区域设置映射到应用的可用语言,看看它是否能解决您的问题。希望这有帮助!