Java程式國際化的簡單實作
國際化(I18N)是指為了使應用程式能适應不同的語言和地區間的變化而不作系統性的改變所采取的設計措施。一個優秀的全球化軟體産品的國際化應該包括以下幾個方面[4]:
¨ Messages
¨ Labels on GUI components
¨ Online help
¨ Sounds
¨ Colors
¨ Graphics
¨ Icons
¨ Dates
¨ Times
¨ Numbers
¨ Currencies
¨ Measurements
¨ Phone numbers
¨ Honorifics and personal titles
¨ Postal addresses
¨ Page layouts
下面通過一個簡單的例子來示範Java對國際化的支援[3]。
檔案清單:
ResourceBundleTest.java //根據不同的語言地區設定(英/中),顯示相應的内容(英/中)
LocalStrings_en_US.properties //英文内容
LocalStrings_zh_CN.properties //中文内容
ResourceBundleTest.java程式識别作業系統不同語言[1]不同地區[2]設定,顯示相應的内容,如果當現作業系統為英文環境(en_US),則顯示“google”;如果當現作業系統為中文環境(zh_CN),則顯示“谷歌”。如果需要擴充對其它語言的支援,隻要增加相應的屬性檔案即可,(如日文環境,增加LocalStrings_ja_JP.properties檔案和相應的内容),不需要改動ResourceBundleTest.java程式。
附件:
ResourceBundleTest.java
//
import java.io.UnsupportedEncodingException;
import java.util.Locale;
import java.util.ResourceBundle;
public class ResourceBundleTest {
public static void main(String args[]) {
//LocalStrings 為peoperties檔案的檔案名稱,得到目前環境的LocalStrings_xx_XX.properties檔案對應的ResourceBundle對像。
ResourceBundle rb = ResourceBundle.getBundle("LocalStrings");
// System.out.println("Locale:"+Locale.getDefault().toString());
//得到properties檔案裡的title值
String title = rb.getString("title");
try {
System.out.println(new String(title.getBytes("8859_1")));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}