我需要将我的软件国际化为法语。我做了以下代码。
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标签。任何人都可以给我一个解决方案。
提前致谢!
答案 0 :(得分:1)
不要像这样硬编码语言环境:
ResourceBundle bundle = ResourceBundle.getBundle("basic", new Locale("en", "US"));
从jsf / spring或您使用的任何框架获取Locale
实例。为应用程序支持的所有语言环境提供* .properties文件。
Java Swing - switch locale dynamically at runtime
Changing locale at runtime in Swing
Swing Internationalization - How to update language at runtime
答案 1 :(得分:1)
您需要存储在登录表单上选择的语言的区域设置,然后在登录后生成UI时使用它。所以不要使用
ResourceBundle.getBundle("basic", new Locale("en", "US"));
然后你会用
ResourceBundle.getBundle("basic", classWhereTheLocaleIsStores.getLocale());
答案 2 :(得分:0)
因此,如果是桌面应用程序,则需要存储所选的区域设置,并在加载应用程序之前,将区域设置设置为选择正确的属性,例如:
ResourceBundle bundle = ResourceBundle.getBundle("baseNameOfyouProperties",
localeSelectedBYUser);
上面的答案解释相同,重要的是你保存所选的语言环境。