【问题标题】:What is the recommended method to i18n XSL files in a java struts project?java struts项目中i18n XSL文件的推荐方法是什么?
【发布时间】:2014-12-04 13:59:43
【问题描述】:

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

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

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

提前致谢

第二次进入

通过深入研究代码,我发现 PDF 是通过 Apache FOP 生成的。我将尝试使this tutorial 适应我正在从事的项目。

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

【问题讨论】:

    标签: xml jakarta-ee internationalization apache-fop


    【解决方案1】:

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

    由于用于 Java 的 Apache FOP API 使用 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')" />

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-05
      • 1970-01-01
      • 2012-02-27
      • 1970-01-01
      • 2015-04-25
      • 2015-07-18
      • 2015-12-10
      • 1970-01-01
      相关资源
      最近更新 更多