GWT 动态国际化

标签 gwt internationalization

在我的应用程序(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/

相关文章:

java - SmartGWT 替代品

java - 如何在 GWT 应用程序中发送电子邮件

python - 使用 python gae、babel 和 i18n 进行国际化。无法输出正确的字符串

javascript - Yii 提交按钮 i18n

javascript - Vaadin自定义JS组件刷新率

java - GWT 2.6 控制台警告

带有异步 servlet 3.0 的 GWT requestbuilder

html - 为什么 Chrome 会错误地确定页面使用不同的语言并提供翻译?

Angular 客户端语言切换

c++ - 如何翻译 GTK+ 应用程序?