国际化

  • 国际化(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多平台公布