我尝试使用LocaleInfo类和方法getCurrentLocale()获取客户端上的当前语言环境。但是,无论我在客户端计算机上使用哪种区域和区域设置,它始终返回值默认语言环境。
Date类toLocaleString()方法返回特定于语言环境的字符串,但LocaleInfo似乎无法获取系统Locale。
答案 0 :(得分:6)
要使您的GWT应用程序自动检测您的语言环境,只需将您的基本index.html文件(包含“nocache.js”脚本的文件)重命名为index.jsp,并将以下行添加到该部分:
<meta name="gwt:property" content="locale=<%=request.getLocale()%>">
答案 1 :(得分:3)
GWT的语言环境不会自动从系统/浏览器设置中获取。根据{{3}},运行时使用的语言环境可以通过以下两种方式之一设置:
locale
请求参数。即http://www.myapplication.com/?locale=es
在主页中加入gwt:property
元标记:
<meta name="gwt:property" content="locale=es" />
这是生产应用程序的首选方法。您的主机页面可以通过多种方式确定用户的区域设置,包括但不限于允许用户根据the GET locale documentation配置本地或检测其首选区域设置。
答案 2 :(得分:2)
在JavaScript中准确获取用户的区域设置几乎是不可能的,因此GWT甚至不会尝试[1]。
LocaleInfo
会返回您<extend-property name="locale" ... />
中使用*.gwt.xml
添加的区域设置之一。
请参阅https://developers.google.com/web-toolkit/doc/latest/DevGuideI18nLocale
[1]好吧,在最近的版本中它确实尝试(使用浏览器的编译时语言环境),但只选择其中一个已编译的语言环境,这样就不会改变任何东西对LocaleInfo
的行为。