JFace对话框按钮翻译

时间:2013-04-06 17:42:39

标签: java swt jface

我正在创建一个独立的SWT / JFace应用程序。

我以前使用普通的旧SWT MessageBox:

int style = SWT.APPLICATION_MODAL | SWT.YES | SWT.NO;
MessageBox messageBox = new MessageBox (getShell(), style);
messageBox.setText ("Question");
messageBox.setMessage ("So?");
boolean result = messageBox.open() == SWT.YES;

我尝试切换到JFace MessageDialog

boolean result = MessageDialog.openQuestion(getShell(), "Question", "So?");

我遇到的问题是在SWT中,Yes和No按钮标签是用我的语言翻译的,而在JFace中并非如此。有什么想法吗?

我引用的jar是swt 3.8.0,jface 3.8.0,jface依赖项core.commands 3.6.1和equinox.common 3.6.100。

2 个答案:

答案 0 :(得分:10)

在SWT的MessageBox类中,标签由OS设置。对于JFace,您必须提供自己的翻译文件。您可以使用您的语言here获得一个。当然,您也可以自己提供。这个link解释了如何使用资源包进行翻译。您可以在org / eclipse / jface / messages.properties下找到原始翻译文件。您必须将自己的翻译文件(messages_ [语言代码] .properties)添加到项目中的同一包路径中。请注意,资源包与OSGi包没有任何共同之处。

答案 1 :(得分:0)

我遇到了同样的问题。我正在使用SWT的Messagebox。由于操作系统必须处理翻译,我通过更改控制面板中的区域设置来测试它,但它没有帮助。 我们必须切换OS语言才能实现这一目标。对于Windows 7用户,必须升级到Windows终极软件包。 这就是你如何做到的。 http://answers.microsoft.com/en-us/windows/forum/windows_7-desktop/how-to-change-system-language-of-windows-7-home/d58fb37b-cb02-41c8-986f-22582fd35a12

我没试过,但值得一试。