涉及国外的项目怎么办?带你把项目国际化

各位小伙伴

今天我们来分享的就是

项目的国际化

那么我们开始吧!

国际化的概念

在我们开发 javaWEB 项目的时候,项目可能涉及到在国外部署或者应用,也有可能会有国外的用户对项目进行访问 ,那么在这种项目中,为客户展现的页面或者操作的信息就需要使用不同的语言,这就是我们所说的项目国际化

( Internationalization 简称: i18n ).

国际化的原理

国际化的核心基础,就是我们在 http 请求的时候,在 request 里面存在一个locale 对象来标识用户浏览器的习惯语言,我们可以通过浏览器的语言设置来查看用户的浏览器习惯语言.

比如:

语言设置为简体中文 locale = zh_CN

语言设置为美式英文 locale = en_US

对于我们在控制台输出的信息 ,后台代码往前台页面输出的提示信息,页面显示信息,我们都可以用一个代号来标识,当我们需要根据不同语言显示的时候,我们将这个代号在不同语言中对应的值显示.

map_CN 对象 Map  

map_US 对象 Map

springMVC 国际化的实现

制作国际化资源文件(properties)

需要显示多少种语言,就必须提前制作好每个语言对应的国际化资源文件

国际化资源文件的有个统一的命名规范:baseName+locale标识

比如:

i18n_zh_CN 

代表中文资源文件

i18n_en_US 

代表英文文资源文件

现在我们就把来做两个简单的资源文件

注意:

汉字在properties文件中是以Unicode编码的形式存在的

国际化资源文件制作好以后,在 springmvc 的配置文件中进行国际化配置


引入spring标签,将需要国际化的信息用标签显示

这是我们的在 java 后台获取对应 key 的 value 值,jsp 页面会通过 spring 提供国际化标签来转会 key 对应的 value

下面我们来测试一下效果(设置浏览器语言的过程就不演示了),浏览器语言这是中文(简体),就是显示汉语界面,设置英语(美式).就是出现英语.

当然在实际的项目中,我们看到一些网站上会有一些按钮,点击就可以切换网页的显示语言.下面我们来做一下.

切换网站语言

需求:

不需要更改浏览器的语言设置,在页面设置一个链接来更改展现的语言

根据上面的学习,我们知道国际化主要是根据 http 请求里面的 locale 对象来获取浏览器设置的语言,再通过页面来设置页面使用哪种语言,我们需要设置一个全局变量 (session) 来保存我们链接跳转需要的语言

每个 handler 都要获取 session 里面的语言设置  ---- 拦截器

SpringMVC 实现此种需求的原理

首先:

springmvc 默认了一个国际化解析器 (LocaleResolve) ,当我们从 http 请求的头文件中获取 locale 信息,就调用这个默认的解析起来解析国际化资源

对于此种需求,springmvc 支持装备一个拦截器,来动态的修改 locale 信息,然后在拦截器里面将 locale 信息存入 session

在页面添加两个链接附带 locale 信息.

回顾一下操作步骤:

配置sessionLocaleReslover

配置这个拦截器 ,拦截带有locale信息的参数

在 url 请求中添加 locale 信息,处理对应的国际化信息请求

其他不变,jsp 和 java 的显示内容步骤不变

看一下页面效果:

好了,我们的项目国际化就完成了,总体来说,国际化就是一个体力活,你想支持几种语言你就做几个 properties 文件,当然你要是针对几种语言开发几套项目,我只能说土豪,我们做朋友吧!

友情提示

难度不算太大

但是实现起来

需要很大的耐心

有时间就给自己的项目

做个国际化吧!

拜拜!

你可能感兴趣的:(涉及国外的项目怎么办?带你把项目国际化)