博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
8.国际化
阅读量:6834 次
发布时间:2019-06-26

本文共 3328 字,大约阅读时间需要 11 分钟。

1.国际化:是开发支持多语言和数据格式的应用程序技术

2.本地化:这是将国际化应用程序改成支持特定语言区域(locale)的技术

 

1.语言区域

java.util.Locale类表示一个语言区域

public Locale(java.lang.String language)

public Locale(java.lang.String language,java.lang.String country)

public Locale(java.lang.String language,java.lang.String country,java.lang.String variant)

 

Locale locale = new Locale("en","CA");

Locale locale = Locale.CANADA._FRENCH;

Locale locale = Locale.getDefaule();

 

2.国际化SpringMVC应用程序

1.将文本元件隔离成属性文件

2.选择和读取正确的属性文件

 

2.1 将文本文件格里成属性文件

每个文件都包含KEY/VALUE,并且KEY唯一

KEY始终是字符串,VALUE可以是字符串,也可以是任意对象

 

java.util.ResourceBundle类

它能使你轻松地选择和读取特定于用户语言区域的属性,以及查找值

命名方式:

基准名_语言码_国家码

MyResources_en_US.properties

 

2.2 选择和读取正确的属性文件

public static ResourceBundle getBundle(java.lang.String baseName);

public static ResourceBundle getBundle(java.lang.String baseName,Locale locale);

 

ResourceBundle rb = ResourceBundle.getBundle("MyResources",Locale.US);

 

利用ResourceBundle类的getString()方法传入一个key

public java.lang.String getString(java.lang.String key);

 

在SpringMVC,不直接使用ResourceBundle,而是利用messageSource bean告诉SpringMVC

将要将属性文件保存在哪里

1.使用ReloadableResourceBundleMessageSource在应用程序目录下搜索这些属性文件

1     
3
4

2.而使用ResourceBundleMessageSource时,属性文件则必须放在类路径,WEB-INF/class下

1 1     
3 3
4 4

 

3.告诉SpringMVC使用哪个语言区域

指定使用哪个语言区域

 1 <bean id="localResolver" class="org.springframework.web.servlet.i81n.AcceptHeaderLocaleResolver'> 2 </bean> 

 

4.使用message标签

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>

 

5.范例

1 
2
12 13
14
15 16
17 18
19
20 21
23
24
25
26 27
29 30
31
32
33
34
35
36
37
38 39
41
42
43
/WEB-INF/resource/messages
44
/WEB-INF/resource/labels
45
46
47
48 49
51
52 53 54
messageSource:实现国际化
localeResolver:利用localeResolver Bean利用AcceptHeaderLocaleResolver类实现消息的本地化
1 <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> 2 <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 4  5  6  7 <spring:message code="page.productform.title"/> 8  9 10 11 12 
13 Current Locale : ${pageContext.response.locale}14
15 accept-language header: ${header["accept-language"]}16 17
18
19
20

21

:22
23
24

25

26

: 27
28

29

30

: 31
32

33

34 ">36 ">38

39
40
41
42 43

 

为了测试国际化,修改浏览器accept-language标签

Tools>Internet Options>General(tab)>Languages>Languages Preference中修改

 

转载于:https://www.cnblogs.com/sharpest/p/5317853.html

你可能感兴趣的文章
Git命令
查看>>
CentOS 6.9 安装最新版本 git
查看>>
[LeetCode] 41. First Missing Positive
查看>>
深入理解react
查看>>
浅谈JavaScript的浅拷贝与深拷贝
查看>>
【挥舞JS】前端MVC,JS模板替换实现原理
查看>>
Java程序员干货学习笔记—Spring结合MyBatis实现数据库读写分离
查看>>
阿里如何将“高峰前扩容、高峰后缩容”的梦想照进现实?
查看>>
CentOS 6/7 配置 sendEmail 发送邮件
查看>>
Docker镜像的目录存储讲解
查看>>
关于SAP UI5数据绑定我的一些原创内容
查看>>
深度感知+深度学习,伯克利的机器人面对陌生目标也能成功取物
查看>>
通俗易懂Vuex源码导读0-全局介绍
查看>>
带入gRPC:分布式链路追踪 gRPC-Opentracing-Zipkin
查看>>
mvvm框架--san.js 学习笔记(一)
查看>>
如何优化基于Jupyter的分析/挖掘测试项目
查看>>
Python小白学习之路
查看>>
分布式系统关注点——初识「高可用」
查看>>
解读Vue.use()源码
查看>>
webpack学习笔记(1)-模块化
查看>>