Browser 为什么GWT忽略浏览器区域设置?
Browser 为什么GWT忽略浏览器区域设置?,browser,gwt,Browser,Gwt,GWT从locale属性或locale查询字符串获取locale。如果两者都未指定,则使用“默认”(即en_US)区域设置 为什么它不能从浏览器设置中获取它 似乎唯一的解决方案是用类似JSP的东西替换静态html启动页面,该JSP读取浏览器区域设置并使用查询字符串设置区域设置或重定向。必须有比这更好的解决方案,或者简单地对区域设置进行硬编码,当然?如果将可用语言列表放入*.gwt.xml文件中,默认情况下将切换到列出的第一种语言 <!-- Slovenian in Slovenia --&
GWT
从locale属性或locale查询字符串获取locale。如果两者都未指定,则使用“默认”(即en_US
)区域设置
为什么它不能从浏览器设置中获取它
似乎唯一的解决方案是用类似JSP的东西替换静态html启动页面,该JSP读取浏览器区域设置并使用查询字符串设置区域设置或重定向。必须有比这更好的解决方案,或者简单地对区域设置进行硬编码,当然?如果将可用语言列表放入*.gwt.xml文件中,默认情况下将切换到列出的第一种语言
<!-- Slovenian in Slovenia -->
<extend-property name="locale" values="sl"/>
<!-- English language, independent of country -->
<extend-property name="locale" values="en"/>
您也可以将此开关置于*.gwt.xml文件中
<set-configuration-property name="locale.useragent" value="Y"/>
这将根据在浏览器中选择的语言添加语言选择。您还可以通过设置
<set-configuration-property name="locale.searchorder" value="queryparam,cookie,meta,useragent"/>
但请注意,在IE中,这不起作用-您应该根据IE发送的“接受语言”标题开发服务器端语言选择。如果您的输入页面是JSP,您可以检查请求的
接受语言
标题以动态设置区域设置。您可以使用cookie保存并发送此值,但为此,您必须首先添加*.gwt.xml
<set-configuration-property name="locale.cookie" value="yourCookieName"/>
<set-configuration-property name="locale.searchorder" value="queryparam,cookie,meta,useragent"/>
请注意,“
queryparam
”在这里具有最大的优先级,允许使用http
查询设置新的区域设置,并忽略cookie上的值。将此项添加到*.gwt.xml文件中以查看效果
请检查以下行以了解更多信息
这对我有效,我希望对你也有效
我的问题是,我没有在.gwt.xml模块描述符中声明任何区域设置值。在这种情况下,只使用默认语言环境。GWT这样做是因为任何不同的受支持语言环境都意味着新的编译迭代/置换。因此,只使用声明的区域设置
下面是一个例子:
第一行和第二行设置了可用/支持的地区(在我的示例中,英语来自美国,西班牙语没有特定的国家)。第三行设置在未检测到任何人的情况下的默认区域设置(必须在扩展属性
行中声明默认值后设置此默认声明)。第四行通过浏览器发送的HTTP Headers Accept Language(可能是默认启用的,根本不需要设置)启用区域设置检测。最后一行设置不同检测机制尝试检测区域设置的顺序:
我在这里添加了en_AU作为唯一的扩展属性,它仍然默认为“default”。需要使用locale查询参数或标记才能将其实际发送到en_AU。我无法想象仅仅是“恩”会有什么不同,但即使是这样,也无济于事。我不想伤害我们。