在 java struts 项目中 i18n XSL 文件的推荐方法是什么?



我目前正在开发 i18n 应用程序。在这个应用程序中,我们使用 Struts 和 JSTL 库来外部化硬编码文本。

此应用程序中的大部分文本都是外部化的,但某些 XSL(用于生成 PDF(除外。我想将这些 XSL 中的所有硬编码文本外部化到我已经创建的捆绑包中。我的约束之一:所有可翻译的文本都必须在几个属性文件中重新组合。

是否可以使用类似 FMT 标签系统的东西?或者有一些默认或推荐的Java/XML机制?还是我应该创建一个用作资源的资源的 bean,以便能够在捆绑包中找到文本?

提前致谢

第二次入境

通过深入了解代码,我发现PDF是通过Apache FOP生成的。我将尝试使本教程适应我正在从事的项目。

如果有人有更多想法,特别是关于如何使用资源包而不是那个 Lang.xml 文件。

我最终决定使用 FOP API 的一些内置功能。

由于 Apache FOP API for Java 使用 Sax,我可以将 java 对象传递给解析的 XSL。我只需要有这样一行:transformer.setParameter("translater", new MyTranslater());之前才能使用我的转换器(MyTranslater有一个名为getTranslattedText(String key)的方法,该方法能够在密钥在其中的情况下从捆绑包中检索一些文本(。

然后我不得不添加两件事:

  • XSL 文件的第一个标记中的相应命名空间xmlns:i18n="java:com.mypackage.of.MyTranslater"
  • 通过在文档的第一行添加<xsl:param name="translater" />的参数

最后,要使用我的转换参数,我只需要写: <xsl:value-of select="i18n:getTranslattedText($translater, 'one.random.key')" />

相关内容

最新更新