java - 如何在Java/Swing应用中实现多语言?

标签 java swing internationalization multilingual

在 Swing 应用程序中实现多语言支持的不同方法有哪些?

您是否将 ResourceBundle 与属性文件一起使用并在每一帧中实现它?它对你有用吗?如果您使用某种 GUI 编辑器怎么办?还有其他办法吗?

在工作中,我们使用 Matisse4MyEclipse,每次保存屏幕时都会重新生成代码,因此仅使用 Externalize Strings 在这里是行不通的。一种方法是将其定义为每个组件的自定义属性,这很烦人。另一种方法是在 matisse 生成代码后再次检查多语言组件及其属性,这也是一种痛苦。

最佳答案

那么,您必须使用 ResourceBundle。但是,如果您要设置组件文本属性,请使用 RB.getString() 的文本而不是人类可读的文本。然后,如果 Matisse 重新生成形式,则捆绑 key 将保留并且本地化将起作用。示例:

我将使用 Matisse 页面中的这张图片:
Illustration
(来源:myeclipseide.com)

在那里你可以看到属性文本。有值“我的新标签”。您可以使用 rb.getString("myNewLabel.my.message") 代替它,其中 rbResourceBundle。唯一的问题应该是过于智能的属性编辑器不利于您。我从不使用任何所见即所得的编辑器(个人喜好,我总是手工设计 UI)。

关于java - 如何在Java/Swing应用中实现多语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/902031/

相关文章:

java - 为什么在对象和 vector 之间进行选择时,Java 的多态性无法捕捉到正确的方法?

Java 套接字服务器显示空白窗口

java - C3P0 和 Java Swing 应用程序

Java邮件编码非英文字符

unit-testing - 在单元测试中使用 webapp2 i18n

Java多线程赛车模拟问题

java - 使 ServletContextListener 具有 Spring 意识

java - 不循环 for 循环 - Java (android)

java - 从 Swing 元素更新嵌入式 JavaFX TableView 时堆栈溢出

spring - 如何在 Spring Framework 3 中翻译 Controller 内的文本?