Java / JSF i18n长文本(术语,常见问题)

时间:2011-06-21 09:40:02

标签: java jsf localization internationalization seam

在大多数情况下,我只是在页面的某处组合了很多短文本字符串。但在某些情况下,我只有一个包含长静态文本的页面,如术语或常见问题解答。

现在,只需将段落放在资源包中或构建切换到terms_en.xhtml等等。

在JSF中处理长文本的最佳/默认方式是什么?

1 个答案:

答案 0 :(得分:2)

通常有两种方法:

  1. 无论多长时间将文本放入资源文件中。我相信你不想这样做,因为它很麻烦,资源文件变得难以维护。
  2. 创建静态文件(即HTML页面或简单文本文件)并在运行时加载它们。对于HTML文件,您可以轻松地使用例如iframe嵌入它们。您只需要读取正确的文件,但名称可以由后端控制器根据UIViewRoot Locale构建。对于静态文本文件,您的方法会有所不同:只需在后端按需加载它们并询问内容。
  3. 就个人而言,我更喜欢使用简单文本文件的第二种方法。如果您不需要任何“丰富”功能,例如给定单词或段落的不同样式,则可以非常容易地实现。 事实上,iframe方式也很容易处理,我不买这个想法的唯一原因是这个iframe的东西意味着两个请求而不是一个。

    顺便说一句。实际上你可以在后端加载HTML并正确显示,但你必须记住不要逃避标签:

    <h:outputText escape="false" value="#{someController.faq}" />
    

    请确保这不是最终用户可能输入的内容,因为您最终会遇到XSS漏洞。