国际化和本地化
软件的全球化意味国际化和本地化。
国际化:(Internationalization:l18N):使 程序在做任何修改的情况下 就可以在不同 的 国家或地区和不同的语言环境下,按照当地的语言和格式习惯显示字符。
本地化(Localization:L10N):一个国际化的程序,当它运行在本地机器上时 。能够根据本地机器的语言和地区设置显示相应的 字符,这个过程叫本地化。
-----资料--------------------------------------------------------------------------
Java 程序的国际化思想是将程序中的提示信息、错误信息等放在资源文件,为不同的国家/语言编写对应的资料文件。资源文件由很多key-value 对组成,key保持不变,value 随国家/语言的不同而不同。这些资源文件属同一个资源系列,使用共同的基名(base name)。通过在基本后面添加ISO-639标准的语言代码,添加ISO-3166标准的国家和地区代码来进行区分。比如规定基名为ApplicationResources,可以定义:
ApplicationResources_en.properties:所有英文语言的资源
ApplicationResources_zh.properties:所有中文语言的资源
【Struts2|Struts国际化】常用的ISO-639言语代码有zh(汉语) en(英语) fr(法语) de(德语)等;
均有两个小写字母组成。
常用的ISO-3166标准的国家和地区码有CN(中国大陆),US(美国)GB(英国)TW(中国台湾)HK(中国香港)等,均由两个大写字母组成。
注意:语言代码位于国家和地区代码的前面,位置不能颠倒;国家和地区代码不能单独使用,而语言代码可以。
------------------------------------------------------------------------
针对一个例子:
---问题---------------------------------------
1.针对英国用户显示英文界面和英文验证信息
2.针对中国香港用户显示中国香港界面和英文验证信息
3.针对中国大陆用户显示中国大陆界面和英文验证信息
----分析-----------------------------------------------------------------------------------------
(1)在struts.xml中指定资源文件的基名及存储的路径
(2)按照需求创建对应的三个资源文件,用来存放相应的资源
(3)实现JSP页面信息的国际化显示(以注册页面为例)
(4)实现验证错误信息的国际化显示
--
1.在struts.xml中指定资源文件的基名及存储路径;
通过“struts.custom.i18n.resources”属性基名:message;
如果要进行国际化必须要指定“utf-8”
2.按照要求创建对应的三个资源文件
根据设置的路径下存放:
文章图片
(3)实现JSP页面国际化显示
- 锐客网
页面信息的国际化实现 页面的非表单内容 :页面的标题,各级标题
页面表 表单提示文本 ,文本框提示文字 key="key"
单内容label="%{getText('repassword')}"
表单按钮文字提交,重置按钮文字value ="https://www.it610.com/article/%{getText('submit')}"
4.验证框架的配置文件,通过
true
106
6
user.password==repassword
^(\d{3,4}-){0,1}(\d{7,8})$
电话号码格式不正确
true
42
---资料-------------------------------------------------------------
资料文件中被保存的字符串资源,通过时7位的ASCII码字符。对于中文字符 ,需要转换成相应的Uicode编码,其格式为"\uXXXX"
资源文件的范围:
1.前面提到的是资源文件是全局资源文件。所有的Action类都可以访问.
2.包范围资源文件。命名方法:package_language_country.properties
处于该包及子包下的action,才可以访问该文件.
3.Action范围资源文件 命名格式:ActionName_languge_country.properties。
ActionName : cn.jbit.action.RegisterAction 可以在cn.jbit.tion 的Action访问。
4.在查找 源文件指定key的内容时,系统会首先查看当前包下的Action范围资源文件,如果没有找到,将沿着当前包往上逐级查找基名为package的资源文件。一直到最顶级包。如果还是没有找到,将从常量"struts.custom.il8n.resoures"指定全局资源文件中查找。
推荐阅读
- 前端|AJAX学习笔记
- 基于Amazon ECS Fargate构建Apache Superset
- Apache Atlas 数据血缘
- 面向未来,我们来聊一聊什么是现代化数据架构
- Amazon DynamoDB 在智能湖仓架构中的实践