首页 > struts学习笔记三-国际化

struts学习笔记三-国际化

在程序设计领域,人们把能够在无需改写有关代码的前提下,让开发出来的应用程序能够支持多种语言和数据格式的技术称为国际化技术。

国际化简称为 i18n,根据internationalization简化而来。

本地化简称为l10n,根据localization简化而来,与国际化对应。

struts2框架从一开始就是用java内建的国际化来实现国际化。

在程序中一个特定的语言由三部分组成,语言、国家、变体,一般的系统变体会很少考虑。语言就是指汉语、英语等,国家指中国、美国、英国等,这两部分组合起来就是一个标准语言,比如中国汉语,美国英语,英国英语,日本日语等,美国日语这种组合方式也是可以的,但是没人会这样做,没有任何实际意义。程序中为各种语言和国家定义了简称,在国际标准ISO中,中文简体是zh,中国是CN,暂且不考虑中国的其他语言形式。

要实现struts国际化,最主要的就是配置properties文件和struts.xml。

下面以login,username,userpassword为例,如果系统呈现中文,那么这三个字就是"登录","用户名","密码",呈现美式英语就是"Login","User Name","User Password",在程序中,需要将这些信息放入一个properties文件中,分别是message_zh_CN.properties,message_en_US.properties,格式:自定义部分_语言简写_国家简写.properties。

                              message_zh_CN.properties

 

login 登录
username用户名
password密码

                                 message_en_US.properties

login  Login
usernameUser Name
passwordUser Password

注:打开中文properties文件源代码会看到,编码是字节形式存在的,因为中文是特殊字符,而java内部是使用Unicode存储的,所以这里会发声转换。

在文件名命中,message是自定义的,然后再struts.xml中需要配置这些文件,在xml增加下面常量

1 

这样就配置了两个properties的头部文件,置于后面部分是不用配置的,页面显示时会选择一个message开头的文件,在后面会做解释。

在页面使用验证国际化效果,jsp页面代码:

               //显示结果为"登录",struts通过ActionSupport类的getText方法寻找属性文件中的login
                                  //显示结果为"用户名",相当于上一句。

//显示"用户名"

//key专门去寻找配置的属性,

 

实现国际化Action类必须继承ActionSupport获得struts内建的国际化支持,通过ActionSupport的方法getText(String key)可以获得对应的国际化信息。如果使用默认的国际化,服务器在哪里就会使用哪里的语言,在美国就会使用美国英语,在中国就会是简体中文。

另一种常用的方式是由用户指定,比如某网站有中英文可以选择,点击中文,那么将使用message_zh_CN.properties中的配置,点击英文将启用message_en_US.properties中的配置,这样就能做到中英文切换,达到国际化的效果。

转载于:https://www.cnblogs.com/CHSelf/p/3526063.html

更多相关:

  • protobuf的数据类型,有最简单的那种数据类型,就是一个文件中,定义了一个message 可以在一个文件中定义两个message,两个message之间是没有关联的可以在一个文件中,定义两个message,其中一个是简单的,他作为了另个一的字段 message SearchResponse {repeated Result re...

  • @Ignore 用法很简单, 如果你的测试用例还没有准备好而不想被执行, 又不想删掉或注释掉, 可以使用 @Ignore 标注来忽略测试。 方法一旦用 @Ignore 注解了将不会被执行. 如果一个类用 @Ignore 注解了 他下面的所有测试方法将不会被执行. 看个应用 Create a Class Create a java...

  • ue4商城资源 Car Configurator Template 汽车配置器模板 ue4商城资源 Car Configurator Template 汽车配置器模板 Unreal Engine虚幻游戏引擎素材资源 Unreal Engine Marketplace –Car Configurator Template 4...

  • 一直在尝试一些写代码方便,阅读代码也很方便的工具,因为使用的是Mac,所以阅读源码上面sourceInsight就没办法用了。 从vscode – sublime – clion 想要可配置性强一点,软件轻一点,也能提供足够的便捷操作,不论是写代码还是快速索引源码,都希望在检索上面节省足够的时间。 vscode 和 sublime...

  • 每日杂事缠身,让自己在不断得烦扰之后终于有了自己的清静时光来熟悉一下我的工具,每次熟悉源码都需要先在windows端改好,拖到linux端,再编译。出现问题,还得重新回到windows端,这个过程太耗费时间。 vim作为唯一能够和windos 下的source insight一争高低的linux端的源码阅读器,只要将它短时间内合理利用...

  • 使用ubuntu(18.04) 作为软路由器连接互联网 背景: 最近要用ubuntu机器作为中继路由,需要配置一下,但是内网外网网上找了一圈,五花八门的,照着做没有一个靠谱的,遇到的问题也没有任何说明,遂写一篇教程以记录一下 功能说明: 简单来说,就是用其他机器的网络上互联网, 比如可以用其他机器的wifi上网等等场景 示意...

  • Spring-Boot 攻略 day01 spring-boot 一. 基本配置加运行 1. 导入配置文件(pom.xml 文件中) org.springframework.bootspring-boot-starter-parent