【问题标题】:Weird hidden characters in exported XLIFF file导出的 XLIFF 文件中出现奇怪的隐藏字符
【发布时间】:2016-02-22 16:19:50
【问题描述】:

每当我尝试'Export For Internationalization'时,导出的文件都包含一个奇怪的隐藏字符,使得 XLIFF 编辑器无法解析它。问题似乎出在原始的 .string 文件中,不知何故,奇怪的字符被插入到这些文件中。我已经删除了这个奇怪的字符,但每当我导出它时,它仍然会潜入xliff 文件中。我尝试清理和重建项目,重新启动 Xcode ......这些似乎都不起作用。

Xcode 是否以某种方式使用了包含坏字符的“坏”.strings 文件的缓存版本?

使用 Xcode

如果我尝试Editor > Export For Localization 我明白了:

/usr/bin/xmllint exited with status 1


使用终端

当我像这样从终端运行它时:

xcodebuild -exportLocalizations -localizationPath /Users/Kymer/Downloads/Wolf -project Wolf.xcodeproj -exportLanguage fr

我收到以下错误:

parser error : attributes construct error
parser error : Couldn't find end of Start Tag trans-unit
parser error : PCDATA invalid Char value 19
parser error : PCDATA invalid Char value 19
parser error : Opening and ending tag mismatch
parser error : invalid character in attribute value
parser error : attributes construct error
parser error : Couldn't find end of Start Tag
parser error : PCDATA invalid Char value

/Uxcodebuild: error: /usr/bin/xmllint exited with status 1

在这两种情况下,导出的 xliff 文件在使用 Sublime Text 检查时都包含奇怪的隐藏字符:

如果我手动删除坏字符,则 xliff 编辑器完全可以读取文件,但这当然不是一个好的长期解决方案。

【问题讨论】:

    标签: ios xcode internationalization xliff


    【解决方案1】:

    我发现了问题:当导出到 XLIFF 文件时,Xcode 不会查看您的 .string 文件,它都是从项目本身生成的(即,它查看所有 NSLocalizedString 调用和您的故事板)。这是有道理的。我在我的一个代码文件中发现了奇怪的隐藏字符。从源文件中删除它修复了导出问题。

    最简单的 XLIFF 工作流程

    我还将提及这一点以供将来参考:向您的项目添加新语言的最简单方法是首先使用命令行:

    cd 到您的项目并运行:

    xcodebuild -exportLocalizations -localizationPath <path>  -project <projectname>.xcodeproj -exportLanguage <language code>
    

    这将创建一个新的 XLIFF 文件,并将在文件中正确设置目标语言(源语言将是您的基本语言)。翻译人员现在可以轻松添加所有必要的翻译。之后,您可以将翻译后的 XLIFF 文件导入回 Xcode(选择目标和Editor &gt; Import localizations)。然后 Xcode 将生成所有必要的 .string 文件。

    更新现有语言:如果您添加新的 UI 元素并想要更新现有的本地化语言,您可以简单地导出现有的本地化语言(选择目标和Editor &gt; Export for localization)。该 XLIFF 文件将包含所有以前的翻译以及新的字符串。翻译人员只需填写“空白”行。没有必要亲自接触.string 文件,因为手动管理它很痛苦(尤其是使用疯狂的 Storyboard ID)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      相关资源
      最近更新 更多