导出的XLIFF文件中出现奇怪的隐藏字符

时间:2016-02-22 16:19:50

标签: ios xcode internationalization xliff

每当我尝试'导出国际化' 时,导出的文件都包含一个奇怪的隐藏字符,使其无法用于XLIFF编辑器。问题似乎出现在原始.string文件中,不知何故,这些文件中插入了奇怪的字符。我已经删除了这个奇怪的角色但是每当我导出它时仍会潜入xliff文件。我尝试清理并重建项目,重新启动Xcode ......这些似乎都没有用。

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

使用Xcode

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

/usr/bin/xmllint exited with status 1

Xcode message after exporting for localization


使用终端

当我从终端运行它时:

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检查时包含奇怪的隐藏字符:

Screenshot of 'hidden' character in Sublime Text

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

1 个答案:

答案 0 :(得分:0)

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

最简单的XLIFF工作流程

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

cd到您的项目并运行:

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

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

更新现有语言:如果您添加新的UI元素并想要更新现有的本地化语言,则只需导出现有的本地化(选择目标和Editor > Export for localization)即可。该XLIFF文件将包含所有以前的翻译以及新字符串。翻译员只需填写“空白”字样即可。线。没有必要亲自触摸.string文件,因为手动管理是一种痛苦(特别是使用疯狂的故事板ID)。