在 Swing 应用程序中实现多语言支持的不同方法有哪些?
您是否将 ResourceBundle 与属性文件一起使用并在每一帧中实现它?它对你有用吗?如果您使用某种 GUI 编辑器怎么办?还有其他办法吗?
在工作中,我们使用 Matisse4MyEclipse,每次保存屏幕时都会重新生成代码,因此仅使用 Externalize Strings 在这里是行不通的。一种方法是将其定义为每个组件的自定义属性,这很烦人。另一种方法是在 matisse 生成代码后再次检查多语言组件及其属性,这也是一种痛苦。
最佳答案
那么,您必须使用 ResourceBundle
。但是,如果您要设置组件文本属性,请使用 RB.getString()
的文本而不是人类可读的文本。然后,如果 Matisse 重新生成形式,则捆绑 key 将保留并且本地化将起作用。示例:
我将使用 Matisse 页面中的这张图片:
(来源:myeclipseide.com)。
在那里你可以看到属性文本。有值“我的新标签”。您可以使用 rb.getString("myNewLabel.my.message")
代替它,其中 rb
是 ResourceBundle
。唯一的问题应该是过于智能的属性编辑器不利于您。我从不使用任何所见即所得的编辑器(个人喜好,我总是手工设计 UI)。
关于java - 如何在Java/Swing应用中实现多语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/902031/