【Java】【SPringMVC】国际化实现

本文介绍国际化(i18n)、本地化(l10n)、全球化(g11n)及多语言化(m17n)的概念,并详细讲解如何在软件中实现这些功能,包括设置本地语言环境、配置资源文件以及使用ResourceBundle工具类进行绑定。

首先,介绍一下国际化英文为Internationalization,由于太长了,所以它又称为i18n(英文单词 internationalization的首末字符i和n,18为中间的字符数)。

除了i18n还有l10n(localization),g11n(globalization),还有m17n(multilingualization)

  • i18n支持多种语言,但是同一时间只能是英文和一种选定的语言,例如英文+中文、英文+德文、英文+韩文等等;
  • l10n(localization),支持2种语言,英文和另外一种语言(例如中文);
  • g11n(globalization),简单的理解可以认为g11n = i18n + L10n。
  • m17n(multilingualization)可以在同一时间支持多种语言,例如你可以在一个页面里看到中文、英文、德文和韩文。

国际化的实现只需要三步:

1、设置本地的语言环境:Locale 类

Locale  locale = new Locale("zh", "CN");
Locale locale1 = Locale.US;
Locale locale2 = Locale.getDefault();

这三种方式都可以设置,locale2是自动获取当前的系统语言环境

2、配置国际化资源文件: 划重点

首先资源文件 BaseName[_language][_country][_variant].properties 

先讲解一下资源文件的加载顺序,这个顺序一定要了解!

baseName _ 指定的language _ 指定的country_ 指定的variant

baseName _ 指定的language _ 指定的country

baseName _ 指定的language

baseName _默认的language _默认的country_默认的variant

baseName _默认的language _默认的country

baseName_默认的language

baseName

什么意思?就是首先加载指定的资源文件,再加载当前语言环境默认的资源文件,再加载顶级的资源文件。

3、通过ResourceBundle工具类绑定资源文件

ResourceBundle res = ResourceBundle.getBundle("com.zuobar.locale.error.localeStrings", locale);

最后你就可以使用了!怎么用?

String zuobar = res.getString("zuobar");

号外!资源化文件可以使用通配符{0}, 怎么使用呢?

String info = MessageFormat.format(info, userName);

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值