我错误地从项目信息中删除了项目的本地化。故事板和相关语言都被删除了。
我从以前的文件中取回了故事板,但是当我想添加新的本地化时,弹出一个窗口并要求我“选择文件和参考语言以创建英语本地化”并且根本没有资源文件。
如何添加回本地化?
我错误地从项目信息中删除了项目的本地化。故事板和相关语言都被删除了。
我从以前的文件中取回了故事板,但是当我想添加新的本地化时,弹出一个窗口并要求我“选择文件和参考语言以创建英语本地化”并且根本没有资源文件。
如何添加回本地化?
当您删除本地化时,有时您会遇到无法在 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”本地化并重新添加了它。现在一切都如我所愿。
我不得不解决同样的问题,并找到了一个解决方案:
您需要在查找器中找到您的 *.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”本地化中看到,您可以添加更多本地化和所有其他本地化内容。
在 xcode 6 中,执行以下操作:
使用命令行,在项目目录之外的某处创建以下目录/文件结构:
/en.lproj/InfoPlist.strings
/en.lproj/Localizable.strings
在 Xcode 中,打开您的项目并选择 File>Add Files to ProjectName 以添加最近创建的 en.lproj 目录。
这是一个老话题,但是在遇到这个问题之后,然后尝试了解决方案(并且让它无法正常工作),我想我会详细说明 DID 的工作原理。
像原始海报一样,我不小心删除了所有本地化,并且在 Xcode 中没有明显的追索权——在 Info 下的项目设置中,它只是说“这个项目尚未本地化”,当我点击下面的加号按钮时,提供了一份空白的资源文件列表。
我遵循@Cameron 的指南,但发现带有 Localizable.strings 文件的语言文件夹已经存在于 Finder 中,但没有被 Xcode 确认。我无法决定如何继续,但我碰巧看到一条关于将文件添加到 Xcode 的无关评论,所以我尝试添加现有的 en.lproj 文件夹及其 Localizable.strings 文件。
这很有效,并且作为开发语言的英语列表也出现在 Info 下。
希望这会帮助遇到同样问题的任何人!
我遵循了@user2070775 回复的类似方法。
Firstyl 当您删除Storyboard
并Launchscreen
以编程方式使用您自己的创建或代码时,在本地化中您可能会在以下空白屏幕中看到类似的内容。
然后首先你应该知道语言代码,例如使用法语本地化它的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
并运行该项目。
只需在 finder 中创建一个文件夹“Base.lproj”,然后将要本地化的 Xib 粘贴到其中,然后将此文件夹添加到您的项目中。现在您可以毫无问题地添加其他语言。