4

我尝试使用 LocaleInfo 类和 getCurrentLocale() 方法获取客户端上的当前语言环境。但是,无论我在客户端计算机上有什么区域和语言环境设置,它总是返回值默认语言环境。

Date 类 toLocaleString() 方法返回特定于区域设置的字符串,但 LocaleInfo 似乎无法获取系统区域设置。

4

3 回答 3

6

要让您的 GWT 应用程序自动检测您的语言环境,只需将您的基本 index.html 文件(包含“nocache.js”脚本的文件)重命名为 index.jsp 并将以下行添加到该部分:

<meta name="gwt:property" content="locale=<%=request.getLocale()%>">
于 2012-06-08T16:05:11.560 回答
3

GWT 的语言环境不会自动从系统/浏览器设置中获取。根据GET 语言环境文档,可以通过以下两种方式之一设置运行时使用的语言环境:

  1. locale通过在应用程序的 URL 中指定请求参数。IEhttp://www.myapplication.com/?locale=es
  2. 通过在主机页面中包含gwt:property元标记:

    <meta name="gwt:property" content="locale=es" />

    这是生产应用的首选方法。您的主机页面可以通过多种方式确定用户的语言环境,包括但不限于允许用户配置本地或根据Accept-Language请求标头检测他们的首选语言环境。

于 2012-04-11T16:24:03.817 回答
2

在 JavaScript 中准确获取用户的语言环境几乎是不可能的,因此 GWT 甚至没有尝试 [1]。
LocaleInfo返回有关您在应用程序中编译的语言环境中选择的语言环境的信息;也就是说,您<extend-property name="locale" ... />*.gwt.xml.

请参阅https://developers.google.com/web-toolkit/doc/latest/DevGuideI18nLocale

[1] 好吧,在最近的版本中,它确实尝试(使用浏览器的编译时语言环境),但只选择其中一个编译的语言环境,因此不会改变LocaleInfo.

于 2012-04-12T07:39:36.393 回答