我有一个关于JOptionPane.showConfirmDialog
. 我得到的按钮是和Yes
,但我想知道是否可以将这三个按钮本地化为我的语言?我意识到我可以与我自己创建一个确认对话,但我想知道这是否也可能。No
Cancel
JButtons
提前致谢。
我有一个关于JOptionPane.showConfirmDialog
. 我得到的按钮是和Yes
,但我想知道是否可以将这三个按钮本地化为我的语言?我意识到我可以与我自己创建一个确认对话,但我想知道这是否也可能。No
Cancel
JButtons
提前致谢。
简单的方法是使用所需的语言环境设置 JOptionPane,如下所示:
Locale locale = new Locale("pt","BR");
JOptionPane.setDefaultLocale(locale);
如果您有一个处理来自 ResourceBundle 的所有消息的单例类,那么您只需在语言环境初始化中设置一次。例如:
public void setLocale(Locale locale) {
if (_bundle == null || !locale.equals(_locale)) {
_locale = locale;
_bundle = ResourceBundle.getBundle("resources.i18n.MessagesBundle", locale);
JOptionPane.setDefaultLocale(_locale);
_logger.info("Got new resource bundle for language-country: " + _locale.getLanguage() + "-" +
locale.getCountry());
}
}
干杯!
这就够了:
UIManager.put("OptionPane.yesButtonText", "Ya");
ETC
Swing PLAF 资源包提供了大多数使用语言的标准对话框的所有本地化消息,包括德语,您可以在 JDK 源中找到它们。参见例如英文消息:
非英语语言的字符串值由相邻的捆绑文件提供。
如果是一种很少使用的语言,您只需为所需语言再创建一个文件并将其放置在类路径的任何位置,就可以向这些系列中的任何一个再添加一个包。.java 和 .properties 格式的捆绑包同样工作良好,尽管 .java 格式可能对 Unicode 更友好...
com.sun
尽管直接将内容添加到包中可能会违反 Java 许可证,但请记住这一点可能会很好。所以为了安全起见,将你的额外资源移动到你自己的包中并像这样注册它可能是明智的UIManager
:
UIManager.getDefaults().addResourceBundle("mypackage.swing.plaf.basic.resources.basic");