在我们的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,然后什么都没有。
所以应该这样做:
它没有做到这一点,它只适用于美国版本。
在我们的笔记本电脑上本地运行服务器时也是如此。
如果我在命令行上输入& 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。好悲伤!