GWT动态国际化

0dd*_*b1t 3 gwt internationalization

在我的应用程序(GWT(EXT_GWT)+ Spring)中,我需要设置用户(登录后)他的母语,而不是获取参数.例如:用户填写登录信息并在登录表单中传递,然后以准备工作的形式重定向(此表单必须使用本机用户语言.我从db获取的区域设置).我的语言文件是在.properties文件中编写的,并在module.gwt.xml配置中枚举.

所以问题是 - 我如何设置语言?也许有会话或邮政参数?但我不明白GWT在加载页面之前如何选择所需的语言环境.在加载页面之前在gwt设置区域设置的一些方法?

谢谢!

Bra*_*iNI 5

我想,在收到来自db的用户区域设置信息之后,你应该将他重定向到url,例如(如果他来自俄罗斯):

http://www.example.org/myapp.html?locale=ru
Run Code Online (Sandbox Code Playgroud)

例如,您可以保存应用程序已在会话中本地化的boolen标志并执行以下步骤:

  • 获取当前区域设置 LocaleInfo.getCurrentLocale().getLocaleName();
  • 将其与用户的区域设置值进行比较
  • 如果它不同,请使用基本网址 GWT.getModuleBaseURL()
  • 构建基于与先前基本网址新的URL ?locale=locale_value上结束
  • make localize flag为true并将其保存到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);
        }
      }     
    }
Run Code Online (Sandbox Code Playgroud)

更多信息在GWT中的本地化你可以在这里找到国际化GWT应用程序,在这里国际化GWT应用程序 认为它会帮助你!

  • 使用Location.createUrlBuilder()可以更好地构造URL. (2认同)