问题是
首先,我们使用.lproj文件夹(例如fr.lproj,en.lproj,es.lproj等)实施本地化。
后来,根据一位审阅者(内部审阅者而不是来自苹果公司的某人)的请求,我们已切换到基于iso-639-2的语言代码。
因此,将文件夹更改为fra.lproj,eng.lproj,spa.lproj等,并添加了项目引用以使用新文件。删除旧文件。
重命名文件夹后,所做的更改和在localizable.strings文件中添加的新字符串在应用程序中均不受影响。
经过一些研究,我们发现每种语言的两个文件夹都包含在应用程序中
而ios5使用的是fr.lproj文件夹内容,而不是fra.lproj文件夹内容。我们在IOS 4中运行了相同的应用程序,并且该应用程序的工作原理与本地更新类似。
请帮助我确定在iOS 5中优先使用iso-639-2语言代码的方法。
谢谢
最佳答案
从Apple's documentation:
在Mac OS X捆绑软件的Resources目录(或iOS应用程序捆绑软件的顶级目录)中,您可以创建一个或多个特定于语言的项目子目录,以存储特定于语言和地区的资源。每个目录的名称基于所需本地化的语言和区域,后跟.lproj扩展名。要指定语言和地区,请使用以下格式:
language_region.lproj
目录名称的语言部分是一个两个字母的代码,符合ISO 639约定。区域部分也是一个两个字母的代码,但符合用于指定特定区域的ISO 3166约定
(强调我的)。我不确定为什么它可能在您的其他项目中起作用,但是根据文档,本地化目录的名称必须遵循ISO 639-1(两个字母的代码)。
关于objective-c - NSLocalizedString,bundle和IOS5的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9390591/