在运行时更改java swing中的语言

Din*_*ran 0 java swing internationalization i18n-gem

我想知道这是否可以在java中我想重新加载一个swing应用程序,以便我可以设置区域设置.我正在使用超过5种语言的swing应用项目,我已经为每种语言创建了属性文件.每当用户从菜单中选择一种新语言时,我的应用程序必须重新启动才能更改所选语言.我完全陷入困境,如何使用我加载的vm参数和新语言重启我的swing应用程序.

这里的参考是与我期望的具有相同要求的网站. http://teravoice.com/

加载网页后,选择下载jnlp的链接,一旦打开应用程序,请使用任何名称登录,然后在文件菜单中找到12种语言的子菜单"语言".当我点击一种新语言时,应用程序将使用新语言和用户数据(即vm选项)重新启动.

谢谢.

mKo*_*bel 6

通过使用ResourceBundle和Locale,这两种方式很简单

1)Locale从Native OS获取Locale.getDefault()

ResourceBundle rb = ResourceBundle.getBundle(
       "com.MyPackage.Properties", Locale.getDefault());

frameTitle = (rb.getString("MyFrame.Title")); //myFrame.setTitle("frameTitle");
trayTitle = (rb.getString("MyFrame.TrayTitle"));
exitTitle = (rb.getString("MyFrame.Exit"));
newInfoTitle = (rb.getString("MyFrame.NewInfo"));
sendTitle = (rb.getString("MyFrame.Send"));
Run Code Online (Sandbox Code Playgroud)

2)在运行时设置Locale,通过ItemJComboBox中选择,然后你必须刷新(更好的是创建分离的方法,void或类)所有JComponents或方法,所有更改必须在Event Dispatch Thread上完成

3)关于I18的一些例子

4)我是IDE用户,对于Locale我使用内置编辑器来处理属性File,