JFace对话框按钮翻译

Ste*_*eph 4 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;
Run Code Online (Sandbox Code Playgroud)

我尝试切换到JFace MessageDialog

boolean result = MessageDialog.openQuestion(getShell(), "Question", "So?");
Run Code Online (Sandbox Code Playgroud)

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

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

Tob*_*lig 10

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