Rol*_*olf 1 xslt localization xsl-fo internationalization tmx
我有一个 XSLT 样式表,可将 XML 数据转换为 XSL-FO(然后使用 Apache FOP 将其呈现为 PDF)。
现在,我需要将输出本地化为几种不同的语言。例如,XSLT 生成的表的列标题需要本地化。下面是生成带有列标题“Date”、“Name”和“Something”的表标题的 XSLT 的简化片段:
...
<fo:table>
<fo:table-header>
<fo:table-row>
<fo:table-cell>
<fo:block>Date</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>Name</fo:block>
</fo:table-cell>
<fo:table-cell>
</fo:block>Something</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-header>
</fo:table-body>
<xsl:apply-templates select="item"/>
</fo:table-body>
</fo:table>
...
Run Code Online (Sandbox Code Playgroud)
我们已经在系统的其他部分使用TMX文件进行国际化,因此这似乎是一种自然的方法。下面是一个 TMX 文件的简化示例,其中包含两个语言的几个字符串:
<tmx version="1.4b">
<body>
<tu tuid="DATE">
<tuv xml:lang="en"><seg>Date</seg></tuv>
<tuv xml:lang="sv"><seg>Datum</seg></tuv>
</tu>
<tu tuid="NAME">
<tuv xml:lang="en"><seg>Name</seg></tuv>
<tuv xml:lang="sv"><seg>Namn</seg></tuv>
</tu>
</body>
</tmx>
Run Code Online (Sandbox Code Playgroud)
因此,基本上我想用 TMX 文件中的字符串引用(使用tuid属性)替换 XSLT 中的硬编码列标题,以便相同的 XSLT 可以生成不同语言的输出。
但我似乎找不到任何有关如何将 TMX 文件与 XSLT 结合使用的资源。示例或指向一些好的教程的指针将不胜感激。
XSLT 中的文本可以通过从 XML 文档读取翻译后的字符串来本地化。数字也可以本地化。
XML 文档可以包含一种语言,每种语言都有一个 XML 文档,或者包含所有语言的单个 XML 文档。以下示例中的 XML 格式遵循 Microsoft .NET 资源 (.resx) 文件(每种语言一个文件)或所有语言的单个 TMX(翻译记忆库交换)文档。然而,只要用于读取文本的 XPath 一致,就可以使用任何格式。
这两个选项都使用 XPath ' document' 函数来读取包含已翻译字符串的 XML。为 XSLT 中使用的每个字符串定义参数。使用参数而不是变量允许在转换 XSLT 时覆盖值。用于xsl:value-of显示翻译后的文本。处理转换时,传递语言代码(例如“fr”)和所需语言的资源 XML 文档的 URL。
请参阅我关于“如何本地化 XSLT ”的文章,获取完整的功能示例,网址为:http://www.codeproject.com/Articles/338731/LocalizeXSLT。
| 归档时间: |
|
| 查看次数: |
2605 次 |
| 最近记录: |