国际化
- 国际化 (i18n): i18n internationalization,网站可能提供翻译成访问者的语言或国籍的不同版本的内容
- 本地化 (i10n): 向网站增加资源,使其适应特定的天文或文化区域,例如将网站翻译为中文
- 区域设置:通常为语言符号后跟一个由下划线分隔的国家符号。例如 ”en_US”
获取区域
// 获取以后国家和语言
Locale locale = request.getLocale();
<!– more –>
获取区域设置
// 获取该区域设置的国家
public String getCountry() {return baseLocale.getRegion();
}
// 获取该区域设置的国家名称
public final String getDisplayCountry() {return getDisplayCountry(getDefault(Category.DISPLAY));
}
// 获取该区域设置的语言代码
public String getLanguage() {return baseLocale.getLanguage();
}
// 获取该区域设置的语言名称
public final String getDisplayLanguage() {return getDisplayLanguage(getDefault(Category.DISPLAY));
}
// 返回该区域设置的国家的三个字母缩写
public String getISO3Country() throws MissingResourceException {String country3 = getISO3Code(baseLocale.getRegion(), LocaleISOData.isoCountryTable);
if (country3 == null) {throw new MissingResourceException("Couldn't find 3-letter country code for "+ baseLocale.getRegion(),"FormatData_"+ toString(),"ShortCountry");
}
return country3;
}
// 返回该区域设置的语言的三个字母缩写
public String getISO3Language() throws MissingResourceException {String lang = baseLocale.getLanguage();
if (lang.length() == 3) {return lang;}
String language3 = getISO3Code(lang, LocaleISOData.isoLanguageTable);
if (language3 == null) {throw new MissingResourceException("Couldn't find 3-letter language code for "+ lang,"FormatData_"+ toString(),"ShortLanguage");
}
return language3;
}
工夫国际化
工夫格式化 DateFormat
货币国际化
数字、货币格式化 NumberFormat
字符串国际化
字符串格式化 MessageFormat
String str = "Date: {0},Salary: {1}";
Locale locale = Locale.CHINA;
Date date = new Date();
double sa1 = 12345.12;
MessageFormat.format(str,date,sa1);
国际化配置
native2ascii 命令在 jdk 下 能够查看 ascii 码
Locale locale = Locale.CHINA;
ResourceBundle bundle = ResourceBundle.getBundle("i18n",locale);
在配置文件中 i18n.properties i18n_en_US.properties i18n_zh_CN.properties
依据 locale 来找不同的配置文件
https://zhhll.icu/2021/javaweb/ 根底 /11. 国际化 /
本文由 mdnice 多平台公布