[英]Getting OS language in java
我在這里遇到了一個問題。
我是法國人,正在使用英文版的Windows XP。 因此,我將區域選項設置為法語,但仍然具有英語UI。
我正在開發一個小型Java SE應用程序,並決定使用資源包將其國際化。
要顯示正確的語言,我使用此函數創建包:
private static ResourceBundle bundle = ResourceBundle
.getBundle("locale.Strings", Locale.getDefault());
但是Locale.getDefault()函數返回區域設置(意思是:法語),而不是系統UI語言。 因此,我的UI在英語環境中默認為法語。 好吧,那不是我所期待的......
有誰知道恢復系統UI語言的獨立於平台的方式? 提前致謝 !
編輯:修復本地到區域設置,謝謝。
這是Windows中的錯誤配置。 Locale#getDefault()
返回系統區域設置,而不是日期/時間格式化區域或位置。
在下面的Windows XP特定屏幕截圖中,您可以將區域選項和語言設置為法語或任何您喜歡的。 “ 高級”菜單中的下拉列表實際上設置了系統區域設置,在您的情況下應設置為英語。
不可否認,這在Windows XP中得到了很好的解釋,Windows 7做得更好一些:
我沒有辦法嘗試(因為我傾向於避免微軟制造的任何東西),但看看這些:
需要Java 7:
Locale uiLocale = Locale.getDefault(Locale.Category.DISPLAY);
無論如何,這應該用於獲取翻譯(從Java 7開始)。
如果這不是很有幫助,我會嘗試:
System.out.println(System.getenv("LC_MESSAGES"));
System.out.println(System.getenv("LANG"));
System.out.println(System.getenv("LANGUAGE"));
但是,在這種情況下,我希望與默認的Locale有一些相似之處......
由於你的建議,我嘗試了一些事情,這是我的觀察:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.