JavaWeb之国际化

国际化

  • 国际化(i18n): i18n internationalization,网站能够提供翻译成访问者的语言或国籍的不同版本的内容
  • 本地化(i10n): 向网站添加资源,使其适应特定的地理或文化区域,例如将网站翻译为中文
  • 区域设置:通常为语言符号后跟一个由下划线分隔的国家符号。例如"en_US"

获取区域

复制代码
//获取当前国家和语言
Locale locale = request.getLocale();

获取区域设置

复制代码
// 获取该区域设置的国家
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多平台发布

相关推荐
霸道流氓气质10 小时前
Spring AI 多模态开发指南:图片理解与语音合成
java·人工智能·spring
en.en..10 小时前
Linux mmap 内存映射深度解析:基于帧缓冲 /dev/fb0
java·服务器·前端
洋不写bug10 小时前
链表补充练习,双链表的模拟实现
java·数据结构·链表·双链表·底层实现
后台模板学习10 小时前
用 IM 即时聊天项目一次讲清消息去重算法的踩坑与解决方案
java·数据库·spring
秋名RG10 小时前
2026/6/15 系统故障复盘与整改方案
java·架构
今天要早睡_10 小时前
C++ 核心语法速过:命名空间、引用、函数重载与 nullptr 深度解析
android·java·c++
南讯股份Nascent10 小时前
2026年CRM技术选型观察:当“数据打通“成为第一需求,电商CRM的架构价值在哪里
java·大数据·用户运营
心易行者10 小时前
Python自动化测试7步落地法:用python在线运行省掉90%环境配置时间
java·开发语言·人工智能·python·log4j·ai编程
霸道流氓气质11 小时前
Spring AI 技术细节:VectorStore 多库统一抽象
java·人工智能·spring
今天AI了吗11 小时前
Codex 配置自定义 AI API 完整指南:从零到一接入你的专属模型
java·人工智能·python·数据分析·embedding