我删除了Xcode中的本地化,然后我不能添加任何本地化

我错误地从项目的信息中删除了项目的本地化版本。 故事板和相关语言都被删除。

我从前面的文件中找回了故事板,但是当我想添加一个新的本地化时,popup一个窗口并要求我“ select文件和参考语言来创build英文本地化 ”,根本没有资源文件。

我如何添加本地化?

添加一个本地化

当你删除你的本地化有时你可以得到这种情况,你不能在Xcode中添加任何本地化。 转到命令行并在项目中的某个位置创build一个带有lproj扩展名的ISO 639-1双字母语言缩写文件夹。

创build一个空的语言文件夹

例如:

${SRCROOT}/Resources/Translations/nb.lproj 

要么

 ${SRCROOT}/Resources/Translations/en.lproj 

重新添加语言文件到项目

在文件夹中创build一个名为Localizable.strings的空文件并将此文件添加到您的项目中。 不要添加.lproj文件夹,只是内容。 然后,当你回到项目文件,你会看到本地化的语言。 现在,当你添加了这个,你应该看到你的项目中的本地化。

没有checkbox

如果添加的文件(如故事板)没有旁边的checkbox,表明该语言是本地化语言的一部分,则可能需要通过另一种语言进行循环访问。 要做到这一点,在项目中添加一种新的语言。 它应该提示您将现有的本地化文件复制到新的语言。 然后删除已损坏的本地化并重新添加它。

我的例子

作为一个具体的例子,我添加了nb.lproj目录中的故事板到项目中。 挪威的Bokmål出现在该项目中,但故事板检查员中的语言checkbox不会让我添加它。 我在项目中创build了nb_NO,它促使我复制故事板。 然后故事板上的checkbox被选中。 我删除了'NB'本地化,并重新添加它。 现在一切都是我想要的。

我必须解决同样的问题,并find一个解决scheme:

你需要find你的* .xcodeproj文件,并打开它作为容器(Ctrl +点击它,你会看到它在上下文菜单中)

在这里你可以看到project.pbxproj文件,在Xcode中打开它。 它的大(但仍然可读的文件)。 (在开始之前,最好在保存点上做一些副本)

现在它的任务是将缺less的语言添加到这个文件,并完成(U可以在本地化的其他项目上尝试)。

有段你需要添加。 在这个文件中search这个/* End PBXSourcesBuildPhase section */ (在本地化段落丢失之前的段落)并且在之后添加如下内容:

 /* Begin PBXVariantGroup section */ 27548D921611B0BE008EA1CD /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( 27548D941611B0BE008EA1CD /* en */, ); name = Localizable.strings; path = ../Code; sourceTree = "<group>"; }; /* End PBXVariantGroup section */ 

你必须先做一些改变。 看看长号码27548D921611B0BE008EA1CD ,其本地化文件(或一些xib文件,或其他本地化的文件…)的ID,如果你没有任何在procject,只需添加一些Localizable.string文件的项目,重新打开(或刷新)这个project.pbxpro,并find这个Localizable.string你应该find这样的东西:

275490591611B0BE008EA1CD /* Localizable.strings in Resources */

这就是你在本地化段落中需要replace的地方

你也需要在path参数和sourceTree上做正确的设置。 这两个文件在xcode中的fileinspector中是可读的。

“sourceTree”参数是Location – 主要是相对于组sourceTree = "<group>";

path是从组到文件的相对path(如果您不知道,请尝试在不同的项目中创build一些本地化文件,并查看project.pbxpro,这些工作是什么)

在此之后,您可以保存project.pbxpro,你应该看到在Xcode信息部分“EN”本地化,你可以添加更多的本地化和所有其他本地化的东西。

在xcode 6中,执行以下操作:

  1. 使用命令行,在项目目录之外的某个位置创build以下目录/文件结构:

    • /en.lproj/InfoPlist.strings

    • /en.lproj/Localizable.strings

  2. 在Xcode中,打开你的项目,selectFile> Add Files to ProjectName来添加最近创build的en.lproj目录。

  3. 之后,您将在本地化列表中看到英文。

这是一个老话题,但在遇到这个问题之后,然后尝试解决scheme(并且让它不能正确工作),我想我会详细介绍DID的工作原理。

就像原来的海报一样,我不小心删除了所有的本地化版本,并且在Xcode中没有任何明显的依据 – 在Info下的项目设置中,它简单的说“这个项目还没有本地化”,当我点击下面的加号button时,介绍了一个空白的资源文件列表。

我跟着@卡梅伦的指南,但发现有Localizable.strings文件的语言文件夹已经在Finder中,但没有被Xcode确认。 我无法决定如何继续,但碰巧看到一个关于添加文件到Xcode的无关的评论,所以我尝试添加现有的en.lproj文件夹和它的Localizable.strings文件。

这工作,以及作为开发语言的英语上市也出现在信息。

希望这会帮助任何遇到同样问题的人!

只需在Finder中创build一个文件夹“Base.lproj”,然后将希望本地化的Xib粘贴到其中,然后将此文件夹添加到您的项目中。 现在,您可以添加其他语言而没有问题。