在前兩節了解了程式國際化的基本内容,并能夠實作對相關功能的使用後,現在讓我們一起來實操一個程式,使其完成國際化。
【本節目标】
通過閱讀本節内容,你将整合之前所學,依靠預設的資源檔案,使用Locale進行自動調用,或使用ResourceBundle指定一個資源檔案,完整完成對一個程式的國際化改造。
實作國際化程式開發
現在國際化程式的實作前期準備已經全部完成了,也就是說依靠資源檔案、Locale、ResourceBundle類就可以實作國際化的處理操作,那麼下面來進行國際化的程式實作(核心關鍵:讀取資源資訊)。
1、在CLASSPATH下建立:cn.mldn.message.Messages_zh_CN.properties(中文資源);
info=歡迎您的通路!
2、在CLASSPATH下建立:cn.mldn.message.Messages_en_US.properties(英文資源);
info=Welcome !
現在加上沒有預設區域的資源檔案,一共定義了三個資源:

三個資源檔案
3、通過程式進行指定區域的資源資訊加載
import java.util.ResourceBundle;
public class JavaAPIDemo {
public static void main(String[] args) throws Exception {
ResourceBundle resource = ResourceBundle.getBundle("cn.mldn.message.Messages");
String val = resource.getString("info");
System.out.println(val); //歡迎您的通路!
}
}
此時在利用ResourceBundle類讀取資源的時候并沒有設定一個明确的Locale對象,但是發現“Messages_zh_CN”檔案起作用了,因為這個方法裡面預設加載的就是目前本地的Locale的資源:
public static final ResourceBundle getBundle(String baseName) {
Class<?> caller = Reflection.getCallerClass();
return getBundleImpl(baseName, Locale.getDefault(),
caller,getDefaultControl(caller,baseName));
}
4、如果現在有需要也可以修改目前的Locale環境,則可以使用ResourceBundle類中的如下方法:
擷取ResourceBundle:
public static final ResourceBundle getBundle(String baseName, Locale locale);
import java.util.Locale;
import java.util.ResourceBundle;
public class JavaAPIDemo {
public static void main(String[] args) throws Exception {
Locale loc=new Locale("en","US");
ResourceBundle resource = ResourceBundle.getBundle("cn.mldn.message.Messages",loc);
String val = resource.getString("info");
System.out.println(val); //Welcome !
}
}
如果現在有指定區域的資源檔案存在的時候,那麼沒有設定區域的資源檔案的資訊将不會被讀取。
資源檔案讀取順序:讀取指定區域的資源檔案>預設的本地資源>公共的資源(沒有區域設定)。
想學習更多的Java的課程嗎?從小白到大神,從入門到精通,更多精彩不容錯過!免費為您提供更多的學習資源。
本内容視訊來源于
阿裡雲大學 下一篇:教你借助占位符定制資源内容 | 帶你學《Java語言進階特性》之三十 更多Java面向對象程式設計文章檢視此處