JSF中的消息包

时间:2012-04-12 18:59:48

标签: jsf internationalization

我正在使用JSF,我想使用消息包,所以我在下面添加了XML配置。现在我想知道是否有人可以写一些使用它们时的经验。最佳做法是在页面上包含一个包含所有翻译的大属性文件,如果是这样,您如何命名您的密钥。如果没有,那么我猜你有多个资源文件,你如何构建它们 - 它们提供消息的页面的哪个部分? - 以及任何命名实践?

我知道这可能是主观的,但无论如何它对我来说都是有价值的见解。

<application>
    <resource-bundle>
        <base-name>com.myapp.blah</base-name>
        <var>msgs</var>
    </resource-bundle>
</application>

1 个答案:

答案 0 :(得分:4)

我建议你从单一文件方法开始,每种语言一种方法。如果它在一个你根本无法管理的水平上增长,那么就会有数千条线,而不是你可以将它分开。

然后,您可以使用以下模板对您的网页进行国际化:

<f:view locale="#{userBean.userLocale}">

您可以启用一个选择组件来保留用户可以切换的语言:

FacesContext.getCurrentInstance().getViewRoot().setLocale(locale);

并在faces-config.xml中:

    <application>        
        <locale-config>            
            <default-locale>pt-br</default-locale>
            <supported-locale>en</supported-locale>            
        </locale-config>

        <resource-bundle>
            <base-name>com.myapp.blah.ApplicationResources</base-name>
            <var>msg</var>
        </resource-bundle>
...

然后每种语言都有一个文件:

ApplicationResources.properties
ApplicationResources_en.properties
ApplicationResources_pt_BR.properties