[英]Java ResourceBundle changing to default language
我已經用Java創建了以下ResourceBundle ,它從正確的MessegesBundle_en_GB.properties文件讀取:
ResourceBundle labels =
ResourceBundle.getBundle("MessegesBundle",new Locale( "en", "GB"));
labels.getString("Test");
但是,當我嘗試使用另一種語言(蘇格蘭蓋爾語)時,它只是默認返回到en_GB
ResourceBundle labels =
ResourceBundle.getBundle("MessegesBundle",new Locale( "gd", "GB"));
system.out.println(labels.getLocale()); // returns en-GB
labels.getString("Test");
從Locale.getAvailableLocales();
可用的語言環境列表Locale.getAvailableLocales();
和“ gd”沒有出現。
這是否意味着我不能將ResourceBundle
用於I18N,還是可以添加Gaelic或強制ResourceBundle
使用正確的屬性文件?
謝謝
getAvailableLocales()
返回的語言環境不是很重要,因為您可以按照自己的方式創建新的new Locale( "gd", "GB")
: new Locale( "gd", "GB")
。
如Locale java docs所述,locale的主要目的是識別資源:資源包,數字格式等。標識Locale
的字符串甚至在創建時都不會得到驗證。
我的猜測是您在類路徑中沒有MessegesBundle_gd_GB.properties資源。
服務器需要安裝該字符集語言來加載它,我想您可以在為頁面提供服務時“強制”使用它,但是您需要從用戶那里獲取特定信息作為分配該頁面語言的請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.