【发布时间】:2014-11-06 18:01:21
【问题描述】:
根据 Grails 的 internationalization doc,i18n 由以下任一方式完成:
- 在请求中设置
Accept-Language标头;或 - 添加
lang查询字符串参数
我选择前者,因为它更符合 HTTP,坦率地说,我只是不喜欢将它添加为查询参数。
但是我首先要如何设置Accept-Language?!?
我希望我的应用的语言环境由请求的 TLD 确定。因此,对http://myapp.example.com 的请求将返回我的应用程序的en_US 版本,因为*.com 传统上与英语/美国相关联。如果请求了http://myapp.example.fr,那么Grails 应该返回我的应用程序的fr_FR 版本。等等。
所以我真正的问题是:
如何将请求的 URL/TLD 映射到 Grails 可以在服务器上设置的变量,然后注入 GSP,以便客户端请求始终具有与给定 URL 匹配的 Accept-Language 标头/TLD?
更新
我想在这里确认浏览器/Grails 的行为:假设当用户配置他们的浏览器时,浏览器会相应地调整 Accept-Language 标头是否安全?如果是这样,我是否也可以假设如果Accept-Language 未发送,并且lang 未指定为查询参数,那么Grails 默认使用en_US?
【问题讨论】:
标签: grails internationalization http-accept-language