我的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中的语言更改为希腊语(除非我从下拉列表中选择所需的语言环境,否则语言环境不会更改)。
此问题的任何解决方案?
答案 0 :(得分:1)
您必须使用<f:view/>
标记及其locale
属性,该属性应绑定到SessionScoped
bean变量(或另一个范围,如果您只想要应用程序的特定部分用不同的语言)。这将基于该区域设置值呈现当前视图。