【问题标题】:I18n how to have a default language for my Web application?I18n 如何为我的 Web 应用程序设置默认语言?
【发布时间】:2015-04-26 06:40:35
【问题描述】:

我想为讲英语和法语的用户提供英语和法语语言,并为所有其他要求其他语言的用户提供英语。 我的 faces-config.xml:

<application>
<locale-config>
  <default-locale>en</default-locale>
  <supported-locale>en</supported-locale>
  <supported-locale>fr</supported-locale>
</locale-config>
<resource-bundle>
  <base-name>fr.testi18n.messages</base-name>
  <var>msg</var>
</resource-bundle>

我有 3 个名为 messages.properties 和 messages_en.properties(带有英文消息)和 messages_fr.properties(带有法语消息)的资源文件。 用户可以使用&lt;h:selectOneMenu&gt; 选择他们的语言,并且选定的语言环境在会话范围的支持bean 中注册。所有视图都有一个 locale 属性,其值来自支持 bean。当他们选择法语或英语时,没关系:显示正确的消息,但当他们选择中文(zh)时,消息是法语而不是英语。

为了测试,我什至删除了&lt;supported-locale&gt;fr&lt;/supported-locale&gt;这一行,消息仍然是法语! 我是法国人,但我在浏览器 (Chrome) 的配置中将法语放在了最后一个位置。

我的错误可能是什么?

【问题讨论】:

    标签: jsf-2 internationalization


    【解决方案1】:

    所选语言环境已在会话范围支持 bean 中注册。

    我猜当您选择中文时,您不会更改会话变量以设置默认本地,因此如果最后更改是法语,那么本地将保持法语,因为您的托管 bean 是@SessionScoped

    否则,如果你使用ajax更改本地,则需要更新(渲染)整个表单。

    有关更多信息,请参阅此问答:<default-locale> does not seem to work, instead the <supported-locale> is being used

    【讨论】:

    • 当用户选择中文时,我更改了托管bean中的语言环境变量,并更改了viewRoot的语言环境。我不使用 Ajax。
    • 我刚刚阅读了你给我的很好的参考资料,但它没有帮助。唯一可行的方法是当用户选择中文时在我的代码中明确选择英文(所以我终于有了解决问题的方法)。否则我不明白为什么当用户选择中文时选择法语而不是英语(即使用户在选择中文之前选择了英语)。在我的浏览器请求中有“Accept-Language:en-US,en;q=0.8,fr;q=0.6”。另一件奇怪的事情:即使我在 faces-config.xml 中删除了 fr,也会使用法语资源。
    • @user1643352 但是为什么你有这个:&lt;supported-locale&gt;en&lt;/supported-locale&gt; 只是删除它这不是绝对必需的,请与文件一起使用它messages_en.properties
    • 的用途是什么?我的应用程序支持法语和英语。它没有这个 en 吗?我不确定你是否理解。如果我删除它,为什么我会得到我想要的:英语作为默认语言(如果用户不会说法语)?
    • @user1643352 我的意思是这样的:&lt;locale-config&gt; &lt;default-locale&gt;en&lt;/default-locale&gt; &lt;supported-locale&gt;fr&lt;/supported-locale&gt; &lt;/locale-config&gt; 当使用 default-locale 时,这隐含意味着您的应用程序支持英语,并将其设为默认语言
    猜你喜欢
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多