在我的应用程序(GWT(EXT_GWT) + Spring)中,我需要设置用户(登录后)他的母语,而不需要获取参数。例如:用户在登录表单中填写他的登录名和密码,然后在准备工作表单中重定向(此表单必须使用本地用户语言。我从 db 获得的区域设置)。我的语言文件写在 .properties 文件中,并在 module.gwt.xml 配置中枚举。
所以问题是 - 我如何设置语言?也许使用 session 或发布参数?但我不明白 GWT 在加载页面之前如何选择所需的语言环境。在页面加载之前在 gwt 设置语言环境的一些方法?
谢谢!
最佳答案
我认为,从 db 收到用户区域信息后,您应该将他重定向到 url,例如(如果他来自俄罗斯):
http://www.example.org/myapp.html?locale=ru
例如,您可以在 session 中保存应用本地化的 bool 标志并执行以下步骤:
- 获取当前语言环境
LocaleInfo.getCurrentLocale().getLocaleName();
- 将其与用户的区域设置值进行比较
- 如果不同,则使用
GWT.getModuleBaseURL()
获取基本 url
- 基于之前的基本 url 构造新的 url,并以
?locale=locale_value
结尾 - 使本地化标志为真并保存到 session 中;
- 使用
Window.Location.replace(newUrl)
重定向到新网址
例如 localizeApp 方法可能如下所示:
void localizeApp(User user) {
if (!localized) {
String currentLocale = LocaleInfo.getCurrentLocale().getLocaleName();
if (!locale.equals(user.getLocale)) {
String url = GWT.getModuleBaseURL();
String newUrl = url + "?locale="+currentLocale;
localized = true; //and save to session here
Window.Location.replace(newUrl);
}
}
}
您可以在此处找到有关 GWT 本地化的更多信息 Internationalizing a GWT Application在这里Internationalizing a GWT Application 认为它会帮助你!
关于GWT 动态国际化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9062977/