在Swing应用程序中实现多语言支持的不同方式是什么?
您是否将ResourceBundle与属性文件一起使用并在每个框架中实现它?它对您有用吗?如果使用某种GUI编辑器怎么办?还有其他办法吗?
在工作中,我们使用Matisse4MyEclipse,并且每次保存屏幕时都会重新生成代码,因此仅使用外部化字符串在这里行不通。一种方法是将其定义为每个组件的自定义属性,这很烦人。另一种方法是在matisse生成的代码之后再次遍历多语言组件及其属性,这也很麻烦。
最佳答案
好吧,您必须使用ResourceBundle
。但是,如果要设置componet text属性,请使用RB.getString()
代替人类可读的文本。然后,如果Matisse重新生成,则捆绑密钥将保留下来,并且本地化将起作用。例:
我将使用Matisse页面中的这张图片:
(来源:myeclipseide.com)。
在那里,您可以看到属性文本。有值“我的新标签”。替代此方法,您可以使用rb.getString("myNewLabel.my.message")
,其中rb
是ResourceBundle
。唯一的问题应该是过于智能的属性编辑器不利于您。我从不使用任何所见即所得的编辑器(个人喜好,我总是手工进行UI设计)。