`

JAVA国际化语言切换

    博客分类:
  • java
 
阅读更多
Java国际化

我们使用java.lang.Locale来构造Java国际化的情境。

java.lang.Locale代表特定的地理、政治和文化。需要Locale来执行其任务的操作叫语言环境敏感的操作。

构造一个系统默认的Locale

Locale defaultLocale = Locale.getDefault();
获得此Java虚拟机当前线程默认的语言环境值

获取当前Java虚拟机线程默认的国家和语言信息
String country = defaultLocale.getCountry();//返回国家地区代码
String language = defaultLocale.getLanguage();//返回国家的语言
String displayCountry = defaultLocale.getDisplayCountry();//返回适合向用户显示的国家信息
String displayLanaguage = defaultLocale.getDisplayLanaguage();//返回适合向用户展示的语言信息
String displayName = defaultLocale.getDisplayName();//返回适合向用户展示的语言环境名

加入当前Java虚拟机线程所处的操作系统的区域语言设置为“中文(简体,中国)”,则上边的运行结果依次将会是:
    CN
    zh
    中国
    中文
    中文(中国)
根据国家地区和语言构造一个Locale(语言环境)

Locale currentLocale = new Locale(“zh”, ”CN”);
构造方法为:Locale(String language, String country);

使用ResouceBundle读取国际化资源文件

ResourceBundle资源包包含特定语言环境的对象。使用其可以加载并读取语言环境资源。
1.         轻松的本地化或者翻译成不同的语言
2.         一次处理多个语言环境
3.         以后可以轻松的进行修改,一遍支持更多的语言环境。

当程序需要特定于语言环境的对象时,它使用getBundle()方法加载ResourceBundle类
ResourceBundle rb = ResourceBundle.getBundle(“res.MessageBundle”, currentLocale);
其中,res.MessageBundle代表的是我们在src下建立了一个res文件夹,而res文件夹下有一个名为MessageBundle.properteis的资源文件。我们允许在此建立多个国际化资源文件:MessageBundle_zh_CN.properties;MessageBundle_en_US.properteis;其中MessageBundle就是要在构造ResourceBundle时使用的字符串,这个名字合法即可,不需要特定约束。后边的名字一定要遵循规则,resourceName_language_country.properteis;
然后我们使用rb.getString(key);就可以获取资源文件中的Key对应的value.
使用Struts1.x实现国际化自动切换

查看Struts源码就可以发现,语言环境信息就存放在session中,通过this.setLocale(request, locale);
所以要实现国际化就要在页面上点击超链接经过Action的时候改变会话中Locale(语言环境)的值。在Action中:

[java:showcolumns] view plaincopy
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
//接受客户端传过来的语言请求信息 
String language = request.getParameter(“myLanguage”); 
 
//定义语言地区信息 
Locale currentLocale = null; 
 
//根据不同的请求创建不同的语言环境信息 
if (“zh”.equals(language)) { 
    currentLocale = new Locale(“zh”, “CN”); 
} else if (“en”.equals(language)) { 
    currentLocale = new Locale(“en”, “US”); 

 
//…… 
//将session中的信息更改掉  
this.setLocale(request, currentLocale); 
 
//当然,在页面显示资源文件信息的时候采用如下这种方式: 
 
//<bean:message key=”key” /> 

分享到:
评论

相关推荐

    java 实现国际化 中英文语言切换

    java实现国际化中英文语言切换 java语言切换JSP国际化 java实现国际化中英文语言切换 java语言切换JSP国际化

    spring boot国际化 i18n

    自己整理的sping boot国际化,切换中英文页面,切换时,将当前语言类型保存到session中,保证跳转页面时,语言类型沿用上个页面的语言类型

    Qt实现多语言的切换

    Qt实现国际化,能切换程序的语言

    Struts2国际化(可选择语言)

    自己做的一个简单的国际化例子,Struts2框架,myEclipse.

    一个利用struts做的简单国际化

    4、了解利用struts默认将locale放到session中的特性,完成采用编程的方式切换语言设置,设置语言到session中的,key为Globals.LOCALE_KEY,value为当前设置的语言. * 参见:ChangeLanguageAction.java 5、消息文本...

    JavaWeb国际化实例

    为了实现语言种类切换在网上找了好久的资料,此实例是整合网上的资料通过自己精简生成的实例,调整积分方便下载

    Spring国际化

    Spring和其它的框架一样,也提供了国际化功能,它是通过MessageSource接口来实现的 ApplicationContext接口继承了MessageSource 。 MessageSource接口方法

    sji18n:用于国际化(i18n)的简单Java api支持-开源

    用于国际化(i18n)的简单Java api支持。 功能:可插入的本地化加载,在部署时重新映射资源,用于日志记录和应用程序消息的不同语言环境,动态语言环境切换,一次运行中的多个语言环境。

    Struts2帮助```````

    二、 Java国际化 35 三、 Struts2国际化 35 1、 Action级别 35 2、 Package级别 36 3、 Application级别 36 四、 资源文件中的参数处理 37 五、 国际化-动态语言切换 37 09 自定义拦截器 38 10 类型转换 38 Struts2...

    java web开发技术大全

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和...

    Struts2 学习笔记

    二、 Java国际化 35 三、 Struts2国际化 35 1、 Action级别 35 2、 Package级别 36 3、 Application级别 36 四、 资源文件中的参数处理 37 五、 国际化-动态语言切换 37 09 自定义拦截器 38 10 类型转换 38 Struts2...

    java web技术开发大全(最全最新)

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和...

    java餐桌点餐系统源码-rct1985.github.io:rct1985.github.io

    应用名国际化 , 手工法 XCode工程建立完毕 新建文件InfoPlist.strings, 游戏在文件类型 导航栏里选中这个文件, 在右侧工具栏里 Localize 增加相应语言, (一种语言对应一个文件夹), 相应目录下就复制了一份同名文件 ...

    响应式表格控件(DESTINY Grid) 1.1.9.zip

    更改了国际化处理的加载方式,修改为使用lang参数配置,同一页面多语言可以共存。2.完善大量事件,追加事件参数,详情请参阅示例及参考文档。3.自定义修改每页显示条数,配置参数支持下拉选择、输入、原样显示,请...

    xmljava系统源码-SLPlat:SLPlat基于开源项目ibase4j调整而得的,专注于本科院校实践类课程的教学与考试服务的平台。该平台

    基于session的国际化提示信息,职责链模式的本地语言拦截器,Shiro登录、URL权限管理。会话管理,强制结束会话。 缓存和Session:注解redis缓存数据;shiro实现redis分布式session同步,重启服务会话不丢失。 多系统...

    源码基于JSP的内容管理系统(hibernate3+struts2+spring2).rar

    同时,Struts2还支持国际化,可以方便地实现多语言切换。Spring2作为一个轻量级的容器框架,负责管理对象的生命周期和依赖关系。它采用了IoC(控制反转)和AOP(面向切面编程)的理念,使得各个模块之间的耦合度降低...

    [开源]用SWT/JFace实现的放大镜软件jZoomer v1.2.0(附源码)

    ·版本升级为1.02 &lt;br&gt;20080616 1. Bug修正: ·暂未修正无法通过修改配置文件切换语言的Bug 2. 功能添加: ·添加使用手册英文版v1.0 ·如需软件显示语言自动随系统语言切换,只需将...

    toad for oracle 11

    通过直观的图形化界面,用户可以完成数据库计划的比较和同步,实现表空间、控制文件和Redo 日志管理的管理,以及安全管理、批处理任务调度和国际语言(NLS)参数的修改和设置。 DBA 模块还提供了 Oracle 输入/...

Global site tag (gtag.js) - Google Analytics