grails 2.5获取错误的语言环境资源包

时间:2015-12-15 16:57:31

标签: grails

在我们的grails-app / i18n中我们有:

messages.properties
messages_en_US.properties

我们都在英国。服务器在英国。我们的笔记本电脑和电脑就像英国一样。什么都没有。

我们假设我们有一个带标签的gsp,例如:

  ${message(code: 'wibble.label', default: 'Bal. Cash'")}

在我们的messages.properties中,我们有

wibble.label = Bal. Cash

在我们的messages_en_US.properties中,我们有:

wibble.label = Bal. After

当我们将这个部署到我们的服务器上,然后点击我们的英国Windows 8笔记本电脑或带有我们的英国Mac游戏机时,我们会看到“Bal.After”作为标签。由于一些非常集市的原因,它错误地查找了美国当地人。

文件清楚地说明它首先看lang和本地的比赛,然后lang,然后什么都没有。

所以应该这样做:

  1. 查找messages_en_GB.properties
  2. 查找messages_en.properties
  3. 查找messages.properties
  4. 它没有做到这一点,它只适用于美国版本。

    在我们的笔记本电脑上本地运行服务器时也是如此。

    如果我在命令行上输入& lang = en_GB,我们会得到正确的。

    有什么想法吗?

    我也尝试过创建一个messages_en.properties,但仍然得错了。

    我们实际上希望我们的美国客户有不同的标签等,但这意味着我们的英国客户必须拥有相同的标签。

    更新

    找到这个网站:http://www.localeplanet.com/support/browser.html 返回本地。

    在Chrome中,在英国系统上,操作系统设置为英国,浏览器语言设置为英语(不是英语美国),它返回:

    navigator.browserLanguage: undefined
    navigator.language: en-US
    

    IE获得以下内容:

    navigator.browserLanguage: en-US
    navigator.language: en-GB
    

    所以IE工作,但没有人使用它。

    Safari提供与chrome相同的功能。

    如果我们使用开发者工具,看看Chrome发送了什么,我们会看到:

    Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Encoding:gzip, deflate, sdch
    Accept-Language:en-US,en;q=0.8,es;q=0.6
    

    你去了,Chrome被硬编码为使用en-US。好悲伤!

0 个答案:

没有答案