4

スタンドアロンの 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 では [はい] ボタンと [いいえ] ボタンのラベルが自分の言語に翻訳されているのに対し、JFace では翻訳されていないことです。何か案が?

私が参照した jar は、swt 3.8.0、jface 3.8.0、および jface 依存関係の core.commands 3.6.1 と equinox.common 3.6.100 です。

4

2 に答える 2

10

SWT の MessageBox クラスでは、ラベルは OS によって設定されます。JFace の場合、独自の翻訳ファイルを提供する必要があります。ここであなたの言語用のものを入手できます。もちろん、自分で用意することもできます。このリンクでは、翻訳にリソース バンドルを使用する方法について説明しています。元の翻訳ファイルは org/eclipse/jface/messages.properties にあります。独自の翻訳ファイル (messages_[言語コード].properties) をプロジェクトの同じパッケージ パスに追加する必要があります。リソース バンドルは、OSGi バンドルと共通点がないことに注意してください。

于 2013-04-06T20:10:38.677 に答える