java国际化,2个主要类:java.util.Locale , java.util.ResourceBundle
import java.util.Locale;
import java.util.ResourceBundle;
public class I18NTest { public static void main(String[] args) { Locale defaultLocale = Locale.getDefault(); System.out.println("defalut country = " + defaultLocale.getCountry()); System.out.println("defalut language = " + defaultLocale.getLanguage()); defaultLocale = new Locale("en", "US"); defaultLocale = new Locale("zh", "CN"); ResourceBundle rb = ResourceBundle.getBundle("MessageBundle" , defaultLocale); String k1 = rb.getString("k1"); System.out.println(k1); String k2 = rb.getString("k2"); System.out.println(k2); } } properties文件 MessageBundle_zh_CN.properties k1=\u4f60\u597d k2=\u518d\u89c1 MessageBundle_en_US.properties k1=hello k2=bye 若要在properties文件中加参数{0} {1} {2} .... ,可使用类:java.text.MessageForamt public static void main(String[] args) { Locale defaultLocale = Locale.getDefault(); defaultLocale = new Locale("en", "US"); defaultLocale = new Locale("zh", "CN"); ResourceBundle rb = ResourceBundle.getBundle("MessageBundle" , defaultLocale); String k1 = rb.getString("k1"); System.out.println(k1); MessageFormat mf = new MessageFormat(k1); String result = mf.format(new Object[]{"Tom"}); System.out.println(result); } MessageBundle_zh_CN.properties k1=\u4f60\u597d ,{0}