28

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

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

如何添加回本地化?

4

6 回答 6

49

添加回本地化

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

创建一个空的语言文件夹

例如:

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

或者

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

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

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

没有复选框

如果添加的文件(如情节提要)旁边没有复选框,表明这是该语言本地化的一部分,您可能需要通过另一种语言来回往返。为此,请在项目中添加一种新语言。它应该提示您将现有的本地化文件复制到新语言。然后删除损坏的本地化并重新添加。

我的例子

作为一个具体的例子,我将 nb.lproj 目录中的故事板添加到项目中。挪威语 Bokmål 出现在项目中,但情节提要检查器中的语言复选框不允许我添加它。我在项目中创建了 nb_NO,它提示我复制故事板。然后故事板选中了该复选框。我删除了“nb”本地化并重新添加了它。现在一切都如我所愿。

于 2013-09-21T07:37:38.933 回答
5

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

您需要在查找器中找到您的 *.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 */

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

275490591611B0BE008EA1CD /* Localizable.strings in Resources */

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

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

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

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

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

于 2013-04-09T13:51:07.590 回答
4

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

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

    • /en.lproj/InfoPlist.strings

    • /en.lproj/Localizable.strings

  2. 在 Xcode 中,打开您的项目并选择 File>Add Files to ProjectName 以添加最近创建的 en.lproj 目录。

  3. 之后,您将在 Localizations 列表中看到英语。
于 2017-01-17T17:06:53.967 回答
1

这是一个老话题,但是在遇到这个问题之后,然后尝试了解决方案(并且让它无法正常工作),我想我会详细说明 DID 的工作原理。

像原始海报一样,我不小心删除了所有本地化,并且在 Xcode 中没有明显的追索权——在 Info 下的项目设置中,它只是说“这个项目尚未本地化”,当我点击下面的加号按钮时,提供了一份空白的资源文件列表。

我遵循@Cameron 的指南,但发现带有 Localizable.strings 文件的语言文件夹已经存在于 Finder 中,但没有被 Xcode 确认。我无法决定如何继续,但我碰巧看到一条关于将文件添加到 Xcode 的无关评论,所以我尝试添加现有的 en.lproj 文件夹及其 Localizable.strings 文件。

这很有效,并且作为开发语言的英语列表也出现在 Info 下。

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

于 2016-01-05T19:41:56.080 回答
1

我遵循了@user2070775 回复的类似方法。

Firstyl 当您删除StoryboardLaunchscreen以编程方式使用您自己的创建或代码时,在本地化中您可能会在以下空白屏幕中看到类似的内容。

在此处输入图像描述

然后首先你应该知道语言代码,例如使用法语本地化它的fr

使用 Project Navigator 中的项目文件夹,您必须添加New Group -> {LANGUAGE_CODE}.lproj. 然后你应该添加New File -> Strings File -> Localizable.strings. 在@user2070775 答案中,还InfoPlist.strings添加了文件,所以我现在也添加了。

在 Localizable.strings 文件中,您可以将<KEY> = <VALUE>字符串对添加到本地化。

我们的一对是"this-is-key" = "and-this-is-value-for-spesific-language-on-localizable-string";现在。

提示:在键值对中,当我没有放置分号时,XCode 会针对这种情况给出错误。

到现在为止,下面的项目方案,一定是你的成果。

在此处输入图像描述

在此处输入图像描述此外,当您查看 or etc. 时,Project -> Info -> Localizations必须French添加如下图所示的语言。

测试

基本上你可以得到你做了什么的结果在此处输入图像描述

其余部分可以从模拟器中设置。您必须更改模拟器语言,因为这个答案正确的是法语。

再次转到Settings -> General -> Language & Region -> French并运行该项目。

于 2018-02-20T07:17:50.453 回答
1

只需在 finder 中创建一个文件夹“Base.lproj”,然后将要本地化的 Xib 粘贴到其中,然后将此文件夹添加到您的项目中。现在您可以毫无问题地添加其他语言。

于 2017-03-21T06:28:45.233 回答