國際化 是指在軟體設計階段就預先考慮不同地區、語言與文化的需求,將所有與語言、國家/地區、文化相關的元素從程式碼中抽離,使應用程式無需重新編譯即可適應各地區環境。Java 作為跨平台語言,內建完善的國際化支援,是開發全球化產品的關鍵技術。
雖然有人認為國內專案無需國際化,但若採用 MVC 模式 開發 Web 專案,我們早已在實踐「關注點分離」:功能邏輯、視圖顯示、資料存取分層管理。將此思想延伸至 Java SE 桌面應用,同樣能獲得易維護、易分工的架構優勢。Android 開發中透過 strings.xml 管理多語言資源,正是同一原理的體現。
.properties)Properties 物件此處略過基本視窗建立細節,重點放在國際化相關邏輯。
.properties 檔案本質上是鍵值對集合,類似 Map 結構。範例建立 En.properties(英文資源):
title = english
button = my_button
logo = bin/QQ.gif
在建構子或初始化方法中讀取屬性檔:
Properties prop; // 宣告屬性集合
/** 建構子:載入 properties */
public International() {
prop = new Properties();
FileInputStream fis = null;
try {
fis = new FileInputStream("src/en.properties");
prop.load(fis); // 載入鍵值對
fis.close(); // 關閉串流
} catch (Exception e) {
e.printStackTrace();
}
}
完成上述步驟後,prop 物件已備妥,下一步(下篇文章)將示範如何在 UI 元件中套用這些國際化資源。