Iphone 向现有Xcode项目本地化添加新语言

Iphone 向现有Xcode项目本地化添加新语言,iphone,cocoa,xcode,localization,Iphone,Cocoa,Xcode,Localization,我正在开发一个现有的Xcode 3.2.2通用iPhone操作系统项目,该项目已经本地化为4种语言(EN、IT、DE和FR)。我们现在正在向这个项目中添加一种新的语言(JA) 每个现有的.lproj文件夹(en.lproj,it.lproj,de.lproj和fr.lproj)有近60个文件,包括PNG、HTMLs和Localizable.strings文件。这些文件中的每一个都显示为Xcode中的组和文件中的本地化组。它们散布在树上 如果我右键单击Xcode中的其中一个组(比如,Localiz

我正在开发一个现有的Xcode 3.2.2通用iPhone操作系统项目,该项目已经本地化为4种语言(EN、IT、DE和FR)。我们现在正在向这个项目中添加一种新的语言(JA)

每个现有的
.lproj
文件夹(
en.lproj
it.lproj
de.lproj
fr.lproj
)有近60个文件,包括PNG、HTMLs和Localizable.strings文件。这些文件中的每一个都显示为Xcode中的组和文件中的本地化组。它们散布在树上

如果我右键单击Xcode中的其中一个组(比如,
Localizable.strings
),获取信息,单击“添加本地化”并键入“
ja
”——正如Xcode文档所建议的那样,不会发生任何事情。从我读到的,这可能是因为这些文件夹的命名方式。如果它们被命名为
English.lproj
意大利语.lproj
,这应该是可行的

因此,要将新的语言本地化文件导入现有组,我必须:

  • 右键单击本地化的组文件
  • 选择“添加现有文件”
  • ja.lproj
    文件夹中选择相应的文件
  • 我将获得一个新的
    ja.lproj
    文件夹,其中包含60个本地化文件,我希望将它们导入到项目中,而不需要在组和树中搜索每个文件并执行这些步骤。。。对于这60个文件中的每一个


    可能吗?有没有正确(或更好)的方法将新语言导入到这个Xcode项目中?

    邮件列表文章基本上总结了这个问题:Xcode希望找到名称为“English.lproj”、“意大利语.lproj”等的语言包。如果您更改这些名称,Xcode将失去将它们作为语言包处理的能力,然后您必须使用您描述的方法添加文件。您将它们添加到项目中的方式没有问题,这就是Xcode的工作方式。

    我找到了一个简单的解决方案。右键单击任何多语言资源文件并选择|添加|现有文件…|后,您可以立即选择要添加的所有文件。选择编码后,xCode将自动将所有文件添加到它们应该位于的资源下。我希望这对你有用。

    这就是我发现有效的方法:

  • 单击添加本地化
  • 用本地化文件替换新.lproj文件夹中的所有文件
  • 删除本地化,选择“保留文件”
  • 完成了

  • 在Xcode 7+中,它非常简单:

  • 选择localizable.strings文件并点击“Localize…”:
  • 下一个窗口将询问您是否希望当前的localizable.strings文件应为默认语言,在我的情况下,英语应为默认语言,因此我选择了“Base”

  • 从导航栏中选择您的项目,再次选择您的项目,切换到“信息”,然后点击本地化标题下方的“+”按钮:

  • 现在只需选择要翻译的语言并仅标记Localizable.strings文件:
  • 现在,它将被添加到Localizble.strings文件中,并且将根据用户的操作系统语言显示给用户的实际字符串(只要您的应用程序中都有NSLocalizedString):

  • 那么您知道为什么所有示例代码都使用“en.lproj”吗?我一次将所有文件拖到xcode中,批量添加了一堆文件,它将每个文件放在正确的位置,但它们都在resources文件夹中,也许我误解了这个问题……不知道
    en.lproj
    并不一定是错误的,但苹果公司普遍鼓励使用
    English.lproj
    等。据我所知,情况正好相反是Xcode中尚未修复的遗留代码。苹果现在推荐
    en.lproj
    :不管怎样,我接受你的答案,因为似乎没有其他方法可以导入这些文件-即使我使用的是传统的
    lproj
    格式。当然,这些文件应该放在一个单独的资源文件夹中,例如匈牙利的hu.proj等。问题是如何在一个数据库中添加新的语言已经有许多本地化文件(不仅仅是.strings)的项目。这仍然适用吗?如果我理解正确,通过使用这个简单的方法,你可以避免很多问题,包括你所拥有的。