【发布时间】:2015-05-22 14:42:30
【问题描述】:
Xcode 现在以 XLIFF 格式导出本地化文件,这很棒。有时我仍然想处理老式的字符串文件,因为它们在早期版本的 Xcode 中很常见。 是否有转换工具可以从单个 XLIFF 文档中提取单独的字符串文件?所有信息都包含在类似XML的XLIFF文档中,所以应该有一个提取例程?!
感谢您的帮助!
【问题讨论】:
标签: xcode string localization localizable.strings xliff
Xcode 现在以 XLIFF 格式导出本地化文件,这很棒。有时我仍然想处理老式的字符串文件,因为它们在早期版本的 Xcode 中很常见。 是否有转换工具可以从单个 XLIFF 文档中提取单独的字符串文件?所有信息都包含在类似XML的XLIFF文档中,所以应该有一个提取例程?!
感谢您的帮助!
【问题讨论】:
标签: xcode string localization localizable.strings xliff
由于 XLIFF 是一种 XML 格式,您可以使用 XSLT 将 XLIFF 转换为 .strings 格式:
<xsl:output method="text"/>
<xsl:template match="//trans-unit">
/* <xsl:value-of select="note"></xsl:value-of> */
"<xsl:value-of select="@id"></xsl:value-of>" = "<xsl:value-of select="source"></xsl:value-of>"
</xsl:template>
这可能需要一些额外的微调,例如对于没有注释的 trans-unit 元素和多行字符串,但对于您的 XLIFF 来说可能已经足够了。
【讨论】:
$ xml sel -T -t -m "//_:trans-unit" -o "/* " -v "../../@original" -o " */" -n -o "/* " -v "_:note" -o " */" -n -o "\"" -v "_:source" -o "\" = \"" -v "_:target" -o "\";" -n -n $XL
您可以使用ibtool 以 .strings 格式而不是 XLIFF 格式导出可本地化的文本。我不相信您可以直接进行 XLIFF -> .strings 转换,但您可以让 ibtool 从您的 .xib 或 .storyboard 文件生成 .strings 文件。
【讨论】:
翻译 XLIFF 后,您可以导入这些翻译。此时 XCode 应该在相关的 .lproj 目录中为您创建单独的 .strings 文件。
【讨论】: