0

我的 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。

问题是这样的:

火狐

当我启动应用程序时,所有文本都是希腊语(默认语言环境)。每当我单击命令按钮或命令链接时,所有文本都会以英语更改。但是,语言环境仍然是希腊语 (el)。

铬合金

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

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

这个问题有什么解决办法吗?

4

1 回答 1

1

您必须使用<f:view/>带有属性的标记,该locale属性应该绑定到一个SessionScopedbean 变量(或另一个范围,如果您只希望应用程序的特定部分使用不同的语言)。这将基于该语言环境值呈现当前视图。

于 2013-07-18T11:58:50.110 回答