2012-02-10 79 views
2

在Swing中,如果我想設置組件使用的默認語言環境,我可以撥打JComponent.setDefaultLocale()。我想在SWT/JFace中做同樣的事情,所以我的JFace對話框使用我選擇的語言環境來顯示OK/Cancel按鈕等等。我可以調用SWT/JFace API中的等效方法嗎?等同於JComponent.setDefaultLocale()的SWT/JFace?

我知道我可以打電話給Locale.setDefault(),但我想避免這種情況,因爲應用程序的其他部分需要將此作爲系統默認區域設置,而不是我選擇的區域設置。

回答

3

從我在源代碼中看到的東西 - 特別是其中值爲IDialogConstants.OK_LABEL和類似常量的地方 - JFace完全依賴於默認語言環境(Locale.getDefault())。直接使用SWT,例如org.eclipse.swt.widgets.MessageBox,甚至會忽略Java默認語言環境並在系統的語言環境中顯示對話框。所以似乎沒有SWT/JFace相當於JComponent.setDefaultLocale()

1

據我所知,你應該能夠使用您所選擇的使用區域:

  • 的SWT-nl.jar庫(要包含在類路徑)
  • 設置用戶。語言庫,像這樣java命令... -Duser.language = FR MainApp

請檢查以下載正確的SWT-NL包,您的需求,不同的可...

HTH jerome

+0

設置'user.language'確實有效,但它似乎是因爲它改變了默認的語言環境設置...如果我打印'Locale.getDefault()'我得到'fr_US',而不是'en_US ' – 2012-02-15 16:48:26