【问题标题】:How to internationalize all UI lables in java如何国际化Java中的所有UI标签
【发布时间】:2013-11-26 07:33:46
【问题描述】:

我需要将我的软件国际化为法语。我做了以下代码。

ResourceBundle bundle = ResourceBundle.getBundle("basic", new Locale("en", "US"));
lblUsername.setText(bundle.getString("username"));
lblPassword.setText(bundle.getString("password"));
btnLogin.setText(bundle.getString("login"));

这是我的登录表单。我的属性文件没问题,这正在登录 UI 上工作。登录系统后,我需要根据登录表单上选择的语言更改所有 UI 的所有 UI 标签。谁能给我一个解决方案。

提前致谢!

【问题讨论】:

  • 好吧,将选定的语言存储在某个变量中,并在其他类中使用此变量来加载相应的包。
  • 我没听懂你..请你解释一下..
  • 你在使用 jsf 吗?还是桌面应用?

标签: java internationalization


【解决方案1】:

不要像这样对语言环境进行硬编码:

 ResourceBundle bundle = ResourceBundle.getBundle("basic", new Locale("en", "US"));

从 jsf/spring 或您使用的任何框架中获取 Locale 实例。为您的应用程序支持的所有语言环境提供 *.properties 文件。

同时检查: https://codereview.stackexchange.com/questions/13251/java-best-way-to-work-with-locales-in-swing-with-change-at-runntime

Java Swing - switch locale dynamically at runtime

Changing locale at runtime in Swing

Swing Internationalization - How to update language at runtime

【讨论】:

    【解决方案2】:

    您需要存储在登录表单上选择的语言的区域设置,然后在登录后生成 UI 时使用它。所以不要使用

    ResourceBundle.getBundle("basic", new Locale("en", "US")); 
    

    然后你会使用

    ResourceBundle.getBundle("basic", classWhereTheLocaleIsStores.getLocale());
    

    【讨论】:

      【解决方案3】:

      所以如果是桌面应用,则需要存储选择的语言环境,并在加载应用程序之前,设置语言环境以选择正确的属性,例如:

      ResourceBundle bundle = ResourceBundle.getBundle("baseNameOfyouProperties",
                          localeSelectedBYUser);
      

      上面的答案解释相同,重要的是你保存选择的语言环境。

      【讨论】:

      • 我需要在登录后更改所有 UI 的所有标签。例如,当我登录系统时,它会出现 MainMenu UI。我还需要更改主菜单 UI 标签。
      • 因此您需要知道何时何地加载其余组件,并执行相同操作,创建一个方法来保存语言环境并使用该语言环境重新加载所有部分。我不知道更改语言环境系统是否会改变用户界面...但是看看安全时间..但我不相信这行得通..java.com/en/download/help/locale.xml
      • 看看这篇文章,如果你正在使用swing,可能会对你有所帮助。stackoverflow.com/questions/11298080/…
      猜你喜欢
      • 2010-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      相关资源
      最近更新 更多