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

Ste*_*lla 26 xcode localization ios

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

我从之前的文件中找回了故事板,但是当我想添加一个新的本地化时,弹出一个窗口并要求我" 选择文件和参考语言来创建英语本地化 ",并且根本没有资源文件.

如何添加本地化?

Cam*_*mer 47

添加本地化

当您删除本地化时,有时您可能会遇到无法在Xcode中添加任何本地化的情况.转到命令行并在项目中的某处创建一个带有lproj扩展名的ISO 639-1双字母语言缩写文件夹.

创建一个空的语言文件夹

例如:

${SRCROOT}/Resources/Translations/nb.lproj
Run Code Online (Sandbox Code Playgroud)

要么

${SRCROOT}/Resources/Translations/en.lproj
Run Code Online (Sandbox Code Playgroud)

将语言文件重新添加到项目中

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

没有复选框

如果添加的文件(如故事板)旁边没有复选框,表示该语言本地化的一部分,则可能需要通过另一种语言对其进行四舍五入.为此,请在项目中添加新语言.它应该提示您将现有的本地化文件复制到新语言.然后删除损坏的本地化并重新添加.

我的例子

作为一个具体示例,我将nb.lproj目录中的storyboard添加到项目中.挪威语Bokmål出现在项目中,但故事板检查器中语言的复选框不允许我添加它.我在项目中创建了nb_NO,它促使我复制了故事板.然后故事板检查了该复选框.我删除了'nb'本地化并重新添加了它.现在一切都是我想要的方式.

  • 完美的工作!为什么这不是公认的答案?啊,这是你自己的答案.不要忘记标记是否被接受;) (2认同)

小智 5

我不得不解决同样的问题,并找到了一个解决方案:

您需要在 finder 中找到您的 *.xcodeproj 文件并将其作为容器打开(ctrl+单击它,您将在上下文菜单中看到它)

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

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

有一段你需要添加。在这个文件中搜索这个/* End PBXSourcesBuildPhase section */(它在缺少本地化段落之前的段落)并在之后添加如下内容:

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

你必须先做一些改变。查看27548D921611B0BE008EA1CD本地化文件(或一些xib文件,或其他可本地化文件...)的长号,其ID,如果项目中没有,只需将一些Localizable.string文件添加到项目中,重新打开(或刷新)这个project.pbxpro,找到这个Localizable.string你应该会找到这样的东西:

275490591611B0BE008EA1CD /* Localizable.strings in Resources */

这就是您需要在本地化段落中替换的内容

您还需要对路径参数和源树进行正确的设置。这两个在 xcode 的文件检查器中是可读的。

“sourceTree”参数是位置 - 主要是它相对于组 sourceTree = "<group>";

路径是从组到文件的相对路径(如果你不知道,尝试在不同的项目中制作一些本地化文件并查看project.pbxpro,这一切都有效)

在此之后,您可以保存 project.pbxpro,您应该在 xcode 信息部分中看到“en”本地化,您可以添加更多本地化和所有其他本地化内容。

  • 试过了,但它损坏了我的 pbxproj。即使从 git 恢复后,列表仍然是空的。有任何想法吗? (2认同)