为不同的语言本地化xsl

时间:2014-10-22 10:23:23

标签: java xml spring xslt

我有一些静态xsl将动态xml转换为html以响应浏览器。其余的网页使用Spring MVC进行查看。因此可以使用我的语言编写的Spring的messages.properties文件对它们进行本地化。但我不知道如何使用相同的方法本地化静态xsl中的文本节点。更具体如下。

在Spring的网页上,我可以

<title><spring:message code="title.MyTitle"/></title>

在我的静态xsl中,我有

<xsl:stylesheet ........
<xsl:output method="html"/>
<xsl:template match="/">
.....
    <title>My Title</title>

我想要这样的东西

<xsl:stylesheet ........
<xsl:output method="html"/>
<xsl:template match="/">
.....
    <title><spring:message code="title.MyTitle"/></title>

当然以上不起作用。但我希望我可以在messages.properties中保留所有标题和标签,以便在语言之间轻松更改。我怎样才能做到这一点?请帮忙。

1 个答案:

答案 0 :(得分:1)

Jirka Kosek有一种在http://www.xml.com/pub/a/2003/11/05/xslt.html进行l10n查找的技巧。我以为他用XSLT制作了一个完整的l10n系统,但我现在无法找到它。

另外,如果您的属性文件是文本而不是Java也理解的XML属性文件格式,那么通用技术将是:

  1. 使用unparsed-text()获取属性文件的文本
  2. 在行尾标记(不在/之前的那些,即
  3. 创建一个变量,其中包含每个字符串的元素,其中键位于属性值中,文本是元素的文本内容
  4. 到目前为止所做的一切都是模仿XML属性文件格式。

    1. 创建一个与元素匹配的键,并使用属性值作为查找
    2. 创建一个函数,将字符串作为参数并对键进行查找,使用字符串作为第二个参数,变量作为第三个