JSF 2 - 多语言支持问题

时间:2013-07-18 10:28:26

标签: jsf-2 localization multilingual faces-config

我的faces-config.xml文件的一部分是:

<locale-config>
    <default-locale>el</default-locale>
    <supported-locale>en</supported-locale>
</locale-config>
<resource-bundle>
    <base-name>com.application.model.resources.Labels</base-name>
    <var>labels</var>
</resource-bundle>

我在相应的包/文件夹中也有文件Labels_el.properties和Labels_en.properties。

问题在于:

火狐

当我启动应用程序时,所有文本都是希腊语(默认语言环境)。每当我点击commandButton或commandLink时,所有文本都会以英语更改。但是,该地区仍然在希腊语(el)。

应用程序以希腊语正确启动,在页面导航期间,语言保持不变。我有一个下拉列表,我可以在其中更改区域设置。当我将语言环境更改为英语(en)时,页面将正确刷新。之后,当我单击commandButton或commandLink时,语言环境的值仍为英语,但文本再次更改为希腊语。

因此,问题是在页面导航期间,Firefox中的语言更改为英语,Chrome中的语言更改为希腊语(除非我从下拉列表中选择所需的语言环境,否则语言环境不会更改)。

此问题的任何解决方案?

1 个答案:

答案 0 :(得分:1)

您必须使用<f:view/>标记及其locale属性,该属性应绑定到SessionScoped bean变量(或另一个范围,如果您只想要应用程序的特定部分用不同的语言)。这将基于该区域设置值呈现当前视图。