我想知道当客户访问我的网站时使用什么语言,但我无法做到这一点。大多数解决方案似乎有点过时,例如ClientLocation
确定使用哪种语言以及如何使用GWT进行操作的最佳方法是什么?
我知道我可以从servlet获取客户端IP,但如果我这样做,我不确定如何实际找到用户。
答案 0 :(得分:0)
最好的方法是从浏览器中发现要使用的区域设置。您应该关注documentation,并使用此属性:
<set-configuration-property name="locale.searchorder" value="queryparam,cookie,meta,useragent"/>
您可以在the module definition中查看i18n可设置的所有属性。默认情况下,GWT使用此代码来确定useragent语言环境,您可以使用新的属性提供程序更改它,或使用服务器端发现:
var language = navigator.browserLanguage ? navigator.browserLanguage : navigator.language;
if (language) {
var parts = language.split(/[-_]/);
if (parts.length > 1) {
parts[1] = parts[1].toUpperCase();
}
locale = parts.join(\"_\");
}
如果要发现用户的国家/地区,可以从servlet使用GeoIP数据库。这种数据库具有从IP到国家/州/城市的映射。它通常易于使用并集成到应用程序中。请参阅示例Maxmind GeoIP Database。