簡體   English   中英

Java ResourceBundle更改為默認語言

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM