Xcode 导出本地化 xliff 格式

Xcode export for localization xliff format

当我点击 Editor > Export for localization 获取我的 .xliff 文件时,出现了一些格式错误,我不知道如何修复。

Xcode 正在将 \n 转换为文字新行。

这里是Xcode生成的.xliff文件的例子,注意<trans-unit>标签和<source>标签的区别。

有谁知道如何解决这个问题以获得正确的输出?我需要 <source> 标签是一个包含 \n 字符的字符串。我可以手动修复每个问题,但我有超过 1000 个字符串遇到这个问题,我无法为每种语言修复 1000 个字符串。

如果您需要有关此问题的更多详细信息,请添加评论。

如果您的 XLIFF 文件看起来像我见过的许多 XLIFF 文件,其中几乎所有行都以标记结尾,您可以搜索正则表达式 ([^>])\n 并将其替换为 \n。或者 ([^>])\r\n,如果您的文件由于某种原因包含 Windows 换行符。

这是一个可以为您解决问题的解决方法。最好的解决方案是摆脱硬编码的换行符。作为一名译者,我猜不出目标语言中的换行符应该放在哪里:是在固定数量的字符之后,还是取决于目标语言文本的布局宽度,即取决于所使用的字体?从英语到其他语言的翻译通常比原始字符串长一点,因此翻译者可能不得不插入比英语字符串包含的换行符更多的换行符。如果您在布局列中限制了 space,您真的应该创建一个方法来确定在哪里换行,而不是将这个负担加在翻译器上:当您必须为每个目标修复布局时,它会返回给您语言。