Localizable.strings困境

时间:2010-10-25 20:05:55

标签: iphone svn encoding ios localizable.strings

我的Localizable.strings文件已被破坏,我不知道如何恢复它。

如果我将其作为纯文本文件打开,则以我在此无法复制的奇怪字符开头。

如果我将文件保留为应用程序版本。如果我进行任何更改,则无法正确解释值,或者在编译时遇到错误。

Localizable.strings: Conversion of string failed. The string is empty.
Command /Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copystrings failed with exit code 1

我怀疑这是一个编码问题,但我不知道它是如何发生的(也许SVN应该受到指责?)以及如何解决它。任何提示都会更受欢迎。

7 个答案:

答案 0 :(得分:6)

我遇到与您自己非常相似的同一文件的问题。对我来说发生的事情是Xcode不知道正确的文件格式化。我经常在重新安排项目时得到这个,然后删除并重新将此文件添加到Xcode项目中。当我重新添加文件时,它的编码设置为类似西方罗马的东西,除了ASCII之外似乎无法呈现任何东西。

以下是解决问题的方法:

  • 在Xcode中,选择Groups& Files面板中的Localizable.stings文件。

  • 对该文件进行获取信息。

  • 在信息面板上,选择常规标签。

  • 在该标签中,转到文件编码并更改其值。

最后一步是诀窍所在,因为你现在必须猜测正确的编码。我发现对于大多数欧洲语言来说,“Unicode(UTF-8)”都有效。对于亚洲语言,我发现“Unicode(UTF-16/32)”是值得尝试的。

答案 1 :(得分:3)

我刚刚犯了这个错误,因为我忘记了分号。我花了一段时间来搞清楚。看起来像一个非常模糊的编译错误,但修复很简单。

答案 2 :(得分:2)

确保在File-Get Info中选择了UTF-16。如果将其设置为none或UTF-8作为编码,则需要更改它。如果你的角色之间有空格,那么你选择将文件“重新解释”为UTF-16。如果文件中有奇怪的字符,则需要将其删除。

答案 3 :(得分:2)

执行UTF-8问题,如果存在某些语法问题,有时您仍需检查内容。

使用以下正则表达式逐行验证您的文本,如果有任何行不匹配,则必定存在问题。

“(?+)”

<强> = “(+。?)”;

答案 4 :(得分:1)

您可以使用plutil命令行工具。如果没有选项或-lint选项,它会检查作为参数给出的文件的语法。它会更准确地告诉您错误的位置。

答案 5 :(得分:0)

如果缺少引号或文件不正确,就会发生这种情况。通常,由于我的语言文件是由另一个团队成员完成的,因此他往往会忘记引用或其他内容。通常XCode在该行上显示错误,有时它不会只是抛出“损坏的数据”错误。

仔细检查所有字符串是否在引号中正确关闭

答案 6 :(得分:0)

在Xcode中打开文件。

在Project Navigator中右键单击它。

选择打开为 - &gt; ASCII属性列表