GWT - 如何确定要设置和/或获取客户国家/地区的语言?

时间:2016-02-26 18:27:00

标签: java servlets gwt

我想知道当客户访问我的网站时使用什么语言,但我无法做到这一点。大多数解决方案似乎有点过时,例如ClientLocation

确定使用哪种语言以及如何使用GWT进行操作的最佳方法是什么?

我知道我可以从servlet获取客户端IP,但如果我这样做,我不确定如何实际找到用户。

1 个答案:

答案 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