为什么我的文件不进入"en.lproj"而是进入Xcode中"Make file Localizable"之后的新"English.lproj"?

ope*_*rog 4 iphone xcode localization ipad ios

这有点令人困惑:

首先我使用了genstrings,它在en.lproj文件夹中创建了一个Localizable.strings文件(也存在于文件系统中).

然后我有一个我想要本地化的JSON文件,所以我打开了该文件的信息窗格并选择"Make File Localizable".Xcode然后在文件系统上创建了一个English.lproj文件夹,并且还创建了一个这样的组.然后它将我的文件移到那里.

所以现在我最终得到了en.lprojEnglish.lproj基本相同的东西:英文的东西.

我对这种情况不满意.可以/我应该做些什么吗?我该如何解决这个问题?

此外,有人可以指出使用"English.lproj"与"en.lproj"之间的区别是什么?我敢打赌,有有差别.

mem*_*ons 9

这是一个Xcode错误.只需将English.lproj文件en.lproj夹中的所有内容移动到文件夹 我没有使用Xcode 4.1进行检查,但是如果删除English.lproj文件夹,以前版本的Xcode将不允许您添加新的本地化,因此不要删除它.

你可以手动编辑你的项目文件,以避免这个帖子提出的问题,但我从来没有真正发现这样做是值得的.

一些背景 - 在Max OS X 10.4之前使用了遗留(但更易于读取)的名称,如"英语","西班牙语"等,但Apple国际化文档声明这些值现已弃用:

除了ISO语言指示符之外,bundle例程还识别几个遗留语言指示符.这些指示符允许您通过用户可读的名称指定语言,而不是使用两个或三个字符的代码.指定者包括英语,法语,德语,日语,中文,西班牙语,意大利语,瑞典语和葡萄牙语等名称.尽管这些名称仍然由NSBundle类和Core Foundation软件包功能识别和处理,但不推荐使用它们,并且不保证在未来版本的Mac OS X或iPhone OS中支持它们.请改用"语言指定"和"区域指定"中描述的代码.