關於java1.8中的語言國際化ResourceBundle的使用
阿新 • • 發佈:2019-01-09
獲取 oca 提高 文件格式 clas system ase str 參數綁定 比如你要寫一個軟件,既要支持中文顯示和操作,也要支持英文顯示和操作。如何解決?
方法1,單獨寫兩套軟件;方法2,一套軟件,兩套配置,對其中所有要顯示的字段都做兩份描述,一份中文,一份英文,程序啟動的時候,根據操作語言選擇中文還是英文的描述。
java就提供了方法2這樣的api功能,ResourceBundle,簡化了開發過程,提高開發效率。
使用起來也很方便,創建多個配置文件,然後在程序中根據用戶選擇使用哪套配置即可。
方法1,單獨寫兩套軟件;方法2,一套軟件,兩套配置,對其中所有要顯示的字段都做兩份描述,一份中文,一份英文,程序啟動的時候,根據操作語言選擇中文還是英文的描述。
java就提供了方法2這樣的api功能,ResourceBundle,簡化了開發過程,提高開發效率。
使用起來也很方便,創建多個配置文件,然後在程序中根據用戶選擇使用哪套配置即可。
- 弄清楚路徑問題
我們創建Message_zh_CN.properties文件和Message_en_CA.properties,這兩個文件放在項目的src路徑下,這兩個文件格式默認是ISO-8859-1。文件名只要符合 xxx_xxx_xxx.properties格式即可,前面的部分可以替換。
Message_en_CA.properties文件中的內容,其中{0}{1}{0}是參數綁定的用法,後面示例可以看到,這樣子就可以動態綁定需要的內容。
info= hello{0}{1}{0}
Message_zh_CN.properties
info= \u4f60\u597d\uff01{0}{1}{0}
- 代碼調用
package baseAPI; import java.util.ResourceBundle; import java.text.MessageFormat; import java.util.Locale; public class useResourceBundle { public static void main(String[] args) { //配置需要讀取的配置文件Message_en_CA.properties Locale zhLoc = new Locale("en","CA"); ResourceBundle rb = ResourceBundle.getBundle("Message",zhLoc); //通過getString方式獲取字段值 System.out.println("內容:"+rb.getString("info")); String str1="內容:"+rb.getString("info"); //此處使用了之前配置文件的{0}{1} System.out.println(MessageFormat.format(str1, " one","two")); //Message_zh_CN.properties Locale zhLoc1 = new Locale("zh","CN"); rb = ResourceBundle.getBundle("Message",zhLoc1); System.out.println("內容:"+rb.getString("info")); str1="內容:"+rb.getString("info"); System.out.println(MessageFormat.format(str1, "一","二")); } }
關於java1.8中的語言國際化ResourceBundle的使用