【问题标题】:GWT - How to determine which language to set and/or get client country/location?GWT - 如何确定设置和/或获取客户国家/地区的语言?
【发布时间】:2016-02-26 18:26:59
【问题描述】:

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

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

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

【问题讨论】:

    标签: java servlets gwt


    【解决方案1】:

    最好的方法是从浏览器中发现要使用的语言环境。您应该关注documentation,并使用此属性:

    <set-configuration-property name="locale.searchorder" value="queryparam,cookie,meta,useragent"/>
    

    您可以在the module definition 中查看 i18n 的所有可设置属性。默认情况下,GWT 使用此代码来确定用户代理语言环境,您可以使用新的属性提供程序更改它,或者使用服务器端发现:

    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

    【讨论】:

    • 在 Java 代码方面有什么变化可以告诉我吗?我已经在我的 client.gwt.xml 中设置了配置属性,我正在获取 LocalInfo.getCurrentLocale(),但我似乎无法获得国家代码或更重要的语言之类的东西..
    • 它似乎确实有效,例如如果我设置了属性回退但我找不到任何给我浏览器设置的语言的东西:/
    猜你喜欢
    • 1970-01-01
    • 2021-01-04
    • 2020-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 2023-03-21
    • 1970-01-01
    相关资源
    最近更新 更多