【JavaWeb】i18n国际化

注:本文章基于尚硅谷JavaWeb相关视频及资料进行编写,代码简单,较容易理解,若有问题或者源码资料获取可以在评论区留言或者联系作者!



一、初识I18N国际化

什么是I18N国际化:
国际化(Internationalization)指的是同一个 网站可以支持多种不同的语言,以方便不同的国家,不同语种的用户访问,一个相同的网站,而不同的人访问的时候可以根据用户所在的区域显示不同的语言文字,而网站的布局样式不发生改变;
国家化三要素:

(1)Locale对象:表示不同的时区、位置、语言;例如zh_CN表示中文中国,en_US表示英文美国

(2)国际化配置文件命名规则:
basename+_+local.properties;例如i18n_zh_CN.properties

(3)ResourcceBundle资源包:
Resources.getBundle():返回一个ResourcesBundle类
根据给定的baseName和Local读取相应的配置文件,得到文字信息;
ResourceBundle.getString(key):得到你想要的不同国家的语言信息;


二、I18N的基本使用方法

  1. 在文件中创建两个不同的propertice文件;
    在这里插入图片描述
    (2)分别在propertice文件中进行语言配置;
    在i18n_zh_CN.properties中:
    在这里插入图片描述
    在i18n_en_US.properties中:
    在这里插入图片描述
    (3)编写测试类:
@Test
public void testI18n(){
    
    
	//得到我们需要的Local对象
	Locale locale =LOcale.US;
	ResourceBundle bundle=ResourceBundle.getBundle("i18n",locale);
	System.out.println("username"+bundle.getString("username"));
	System.out.println("password"+bundle.getString("password"));
	System.out.println("sex"+bundle.getString("sex"));
	System.out.println("age"+bundle.getString("age"));
	}

(4)运行结果如下所示:
在这里插入图片描述


三、通过其它方式实现国际化

(1)通过请求头实现国际化

Local local=request.getLocal

(2)通过语言类型实现国际化
用户点击不同的语言类型,实现语言类型转换;
将用户选择的语言类型参数携带在请求中,后台程序根据参数选择国际化类型;

Local local =null;
String country=request.getParameter("country");
if("cn".equals(country)){
    
    
	locale=Locale.CHINA;
	else if("usa".equals(country)){
    
    
 locale=Locale.US;
	}else{
    
    
	locale=request.getLocale();
}

}

如果感觉内容写的还不错的话,一键三连不迷路!!!!
后面将会更新更多学习内容,一起学习吧!!!!!!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47418550/article/details/124689002