Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JFace dialog button translation

Tags:

java

swt

jface

I am creating a standalone SWT/JFace application.

I used to use plain old 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;

I try to switch to JFace MessageDialog

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

The problem I have is that in SWT, the Yes and No button labels are translated in my language, while in JFace it is not the case. Any idea?

My referenced jars are swt 3.8.0, jface 3.8.0, and jface dependencies core.commands 3.6.1 and equinox.common 3.6.100.

like image 557
Steph Avatar asked Dec 27 '22 06:12

Steph


1 Answers

In the MessageBox class of SWT the labels are set by the OS. For JFace you have to provide your own translation file. You can get one for your language here. Of course you can also provide it on your own. This link explains how to use resource bundles for translation. You find the original translation file under org/eclipse/jface/messages.properties . You have to add your own translation file (messages_[language code].properties) to the same package path in your project. Note that resource bundles have nothing in common with OSGi bundles.

like image 86
Tobias Willig Avatar answered Dec 31 '22 11:12

Tobias Willig