I18n 與 Res


I18n 物件可透過資源檔案的 baseName 與 locale 參數取得到與之相對應的 Res 對象,Res 物件提供了 API 用來取得國際化資料。

以下給出特定使用步驟:


  • l建立i18n_en_US.properties、 i18n_zh_CN.properties  資源文件, i18n  即為資源檔案的baseName,可以是任何名稱,在此範例中使用”i18n」以 baseName
  •  i18n_en_US.properties 檔案新增下列內容:msg=Hello {0}, today is{1}.
  • i18n_zh_CN.properties 檔案中新增下列內容:msg=你好{ 0}, 今天是{1}.
  • 在 YourJFinalConfig 中使用 me.setI18nDefaultBaseName("i18n")設定資源檔案預設 baseName

#特別注意
,java  國際化規格要求 properties 檔案的編輯需要使用專用的編輯器,否則會出亂碼,常用的有 Properties Editor,這裡可以下載:http://www. oschina.net/p/properties+editor




以下是基於上述步驟以後的程式碼範例:


// 透過locale參數en_US得到對應的Res物件
Res resEn = I18n.use("en_US");
// 直接取得資料
String msgEn = resEn.get("msg");
// 取得資料並取得資料並取得資料並使用參數格式化
String msgEnFormat = resEn.format("msg", "james", new Date());
 
// 透過locale參數zh_CN得到對應的Res物件
Res resZh = I18n.use("zh_CN");
// 直接取得資料
String msgZh = resZh.get("msg");
// 取得資料並使用參數格式化

String msgZhFormatat = resZh.format("msg", "詹波", new Date());
 

// 另外,I18n也可以載入未使用me.setI18nDefaultBaseName()配置的資源文件,唯一的不同是
// 需要指定baseName參數,以下範例需要先建立otherRes_en_US.properties檔案 Res otherRes = I18n.use("otherRes", "en_US");  otherRes.get("msg");##### ###################