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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With