2013-04-06 92 views
4

我正在創建一個獨立的SWT/JFace應用程序。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中則不是這樣。任何想法?

我引用的罐子SWT 3.8.0,3.8.0的JFace,和JFace依賴core.commands 3.6.1和equinox.common 3.6.100。

回答

10

在SWT的MessageBox類中,標籤由OS設置。對於JFace你必須提供你自己的翻譯文件。你可以得到一個你的語言here。當然你也可以自己提供。這個link解釋瞭如何使用資源包進行翻譯。您可以在org/eclipse/jface/messages.properties下找到原始翻譯文件。你有你自己的翻譯文件(messages_ [語言代碼]的.properties)添加到同一包路徑在您的項目。請注意,資源包與OSGi包沒有任何共同之處。

+1

在您提供的通天鏈接,我挖成不同的罐子,終於找到了我一直在尋找:org.eclipse.jface.nl_fr_3.7.0。它不是3.8,但我認爲3.8只是3.7的錯誤修復。我將它添加到我的類路徑中,並且它像一個魅力。謝謝。 – Steph 2013-04-07 10:14:47

0

我有同樣的疑難問題,使用SWT的消息框。由於操作系統必須處理翻譯,因此我通過更改控制面板中的區域設置對其進行了測試,並沒有幫助。 我們必須切換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

我還沒有嘗試過,但值得一試。