2013-11-26 50 views
1

我需要將我的軟件國際化爲法語。我做了以下代碼。如何在java中國際化所有UI標籤

ResourceBundle bundle = ResourceBundle.getBundle("basic", new Locale("en", "US")); 
lblUsername.setText(bundle.getString("username")); 
lblPassword.setText(bundle.getString("password")); 
btnLogin.setText(bundle.getString("login")); 

這是我的登錄表單。我的屬性文件是好的,這是在登錄界面上工作。登錄系統後,我需要根據登錄表單上選定的語言更改所有UI的所有UI標籤。任何人都可以給我一個解決方案。

在此先感謝!

+0

好吧,將選定的語言存儲在某個變量中,並在其他類中使用此變量來加載相應的包。 –

+0

我沒有找到你..請你能解釋一下.. – user2999888

+0

你在使用jsf嗎?或者是桌面應用程序? – ZaoTaoBao

回答

1

不要硬編碼的語言環境是這樣的:

ResourceBundle bundle = ResourceBundle.getBundle("basic", new Locale("en", "US")); 

獲取從JSF /春天或任何框架您使用Locale實例。爲您的應用程序支持的所有語言環境提供* .properties文件。

檢查也: https://codereview.stackexchange.com/questions/13251/java-best-way-to-work-with-locales-in-swing-with-change-at-runntime

Java Swing - switch locale dynamically at runtime

Changing locale at runtime in Swing

Swing Internationalization - How to update language at runtime

1

你需要存儲在登錄屏幕上選擇,然後利用它的語言的語言環境當你登錄後生成你的用戶界面。因此,而不是使用

ResourceBundle.getBundle("basic", new Locale("en", "US")); 

你那麼會使用

ResourceBundle.getBundle("basic", classWhereTheLocaleIsStores.getLocale()); 
0

所以如果是一個桌面應用程序,你需要存儲的區域選擇,並加載應用程序之前,設置區域設置選擇權性質,例如:

ResourceBundle bundle = ResourceBundle.getBundle("baseNameOfyouProperties", 
        localeSelectedBYUser); 

上面的答案解釋相同,重要的是您保存選定的語言環境。

+0

我需要在登錄後更改所有UI的所有標籤。作爲例子當我登錄到系統時,它顯示MainMenu UI。我還需要更改主菜單UI標籤。 – user2999888

+0

因此,您需要知道何時何地加載其餘組件,並且執行相同操作,創建一個方法來保存區域設置,並使用此區域設置重新加載所有區域。我不知道是否改變語言環境系統這改變了用戶界面...但看看安全的時間..但我不相信這個工程.. http://www.java.com/en/download /help/locale.xml – ZaoTaoBao

+0

看看這篇文章,也許可以幫助你,如果你正在與swing.http://stackoverflow.com/questions/11298080/java-best-way-to-work-with-locales-在搖擺-與變化-AT-runntime – ZaoTaoBao