我删除了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中,执行以下操作:
-
使用命令行,在项目目录之外的某个位置创build以下目录/文件结构:
-
/en.lproj/InfoPlist.strings
-
/en.lproj/Localizable.strings
-
-
在Xcode中,打开你的项目,selectFile> Add Files to ProjectName来添加最近创build的en.lproj目录。
- 之后,您将在本地化列表中看到英文。
这是一个老话题,但在遇到这个问题之后,然后尝试解决scheme(并且让它不能正确工作),我想我会详细介绍DID的工作原理。
就像原来的海报一样,我不小心删除了所有的本地化版本,并且在Xcode中没有任何明显的依据 – 在Info下的项目设置中,它简单的说“这个项目还没有本地化”,当我点击下面的加号button时,介绍了一个空白的资源文件列表。
我跟着@卡梅伦的指南,但发现有Localizable.strings文件的语言文件夹已经在Finder中,但没有被Xcode确认。 我无法决定如何继续,但碰巧看到一个关于添加文件到Xcode的无关的评论,所以我尝试添加现有的en.lproj文件夹和它的Localizable.strings文件。
这工作,以及作为开发语言的英语上市也出现在信息。
希望这会帮助任何遇到同样问题的人!
只需在Finder中创build一个文件夹“Base.lproj”,然后将希望本地化的Xib粘贴到其中,然后将此文件夹添加到您的项目中。 现在,您可以添加其他语言而没有问题。