如何在java中国际化所有UI标签

如何在java中国际化所有UI标签,java,internationalization,Java,Internationalization,我需要将我的软件国际化为法语。我执行了以下代码 ResourceBundle bundle = ResourceBundle.getBundle("basic", new Locale("en", "US")); lblUsername.setText(bundle.getString("username")); lblPassword.setText(bundle.getString("password")); btnLogin.setText(bundle.getString("login"

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

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标签。谁能给我一个解决办法吗


提前谢谢

不要像这样硬编码区域设置:

 ResourceBundle bundle = ResourceBundle.getBundle("basic", new Locale("en", "US"));
从jsf/spring或您使用的任何框架中获取
Locale
实例。为应用程序支持的所有区域设置提供*.properties文件

同时检查:


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

ResourceBundle.getBundle("basic", new Locale("en", "US")); 
然后你会使用

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

因此,如果是桌面应用程序,则需要存储选定的区域设置,并在加载应用程序之前,将区域设置设置为选择正确的属性,例如:

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

上面的答案也解释了同样的问题,重要的是保存所选的语言环境。

好吧,将所选语言存储在某个变量中,并在其他类中使用此变量加载相应的捆绑包。我没有得到您的答案。。请你再解释一下……你在使用jsf吗?或者是桌面应用程序?我需要在登录后更改所有UI的所有标签。例如,当我登录到系统时,它会显示Main菜单UI。我还需要更改主菜单UI标签。因此,您需要知道何时何地加载其余的组件,并执行相同的操作,创建一个保存区域设置的方法,然后使用此区域设置重新加载所有部分。我不知道更改区域设置系统是否会改变用户界面…但请注意安全时间..但我不相信这是有效的。。如果你正在使用swing,看看这篇文章可能会对你有所帮助。