实上,Java语言不可能支持所有国家和语言,如需要获取Java语言所支持的语言和国家,可调用Locale类的getAvailableLocale方法获取,该方法返回一个Locale数组,该数组里包含了Java所支持的语言和国家.

Java程序的国际化主要通过如下三个类完成

java.util.ResourceBundle:用于加载一个国家,语言资源包

java.util.Locale:用于封装一个特定的国家/区域,语言环境

java.text.MessageFormat:用于格式化带占位符的字符串

下面的程序简单地示范了如何获取Java所支持的国家和语言

@Test
public void test1(){
//返回java所支持的全部国家和语言的数组
Locale[] localeList=Locale.getAvailableLocales();
//遍历数组的每个元素,依次获取所支持的国家和语言
for (int i=;i<localeList.length;i++)
{
//打印出所支持的国家和语言
System.out.println(localeList[i].getDisplayCountry()+"="+localeList[i].getCountry()+" "+localeList[i].getDisplayLanguage()+"="+localeList[i].getLanguage());
}
}

结果:

日本=JP 日文=ja
秘鲁=PE 西班牙文=es
= 英文=en
日本=JP 日文=ja
巴拿马=PA 西班牙文=es
波斯尼亚和黑山共和国=BA 塞尔维亚文=sr
= 马其顿文=mk
危地马拉=GT 西班牙文=es
阿拉伯联合酋长国=AE 阿拉伯文=ar
挪威=NO 挪威文=no
阿尔巴尼亚=AL 阿尔巴尼亚文=sq

这只列举了一部分

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

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

@Test
public void test2(){
//构造一个默认的Local
Locale defaultLocale = Locale.getDefault(); //获得此Java虚拟机当前线程默认的语言环境值
//获取当前Java虚拟机线程默认的国家和语言信息 String country = defaultLocale.getCountry();//返回国家地区代码 String language = defaultLocale.getLanguage();//返回国家的语言 String displayCountry = defaultLocale.getDisplayCountry();//返回适合向用户显示的国家信息 String displayLanaguage = defaultLocale.getDisplayLanguage();//返回适合向用户展示的语言信息 String displayName = defaultLocale.getDisplayName();//返回适合向用户展示的语言环境名 System.out.println(country+" "+language+" "+displayCountry+" "+displayName); }

结果:

CN zh 中国 中文 (中国)

构造方法为: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.

Java语言国际化的更多相关文章

  1. java语言国际化--ResouceBundle、struts

    一.Java国际化 我们使用java.lang.Locale来构造Java国际化的情境. java.lang.Locale代表特定的地理.政治和文化.需要Locale来执行其任务的操作叫语言环境敏感的 ...

  2. Java同步和异步过程中消息语言国际化处理策略

    在Java后端做消息内容的语言国际化处理时可以通过Spring中MessageSource接口的来实现,但是MessageSource接口需要用到Locale对象, 而Locale类又是根据前端传过来 ...

  3. Java的国际化(i18n)

    http://blog.csdn.net/csuliky/article/details/4225800 1. Java国际化简介 Java既然作为一个跨平台的语言就必然要在各种不同的语言环境中使用, ...

  4. JAVA实现国际化

    1 Java国际化的思路 Java程序的国际化的思路是将程序中的标签.提示等信息放在资源文件中,程序需要支持哪些国家.语言环境,就对应提供相应的资源文件.资源文件是key-value对,每个资源文件中 ...

  5. 瘋耔java语言笔记

    一◐ java概述                                                                                        1.1 ...

  6. Java:国际化

    Java的国际化: 资源文件的命名可以有如下三种形式:baseName _ language _country.properties baseName _language.properties bas ...

  7. Java语言中几个常用的包

    Java采用包结构来组织和管理类和接口文件.本文介绍Java语言类库中几个常用的包,因为这几个包在软件开发与应用中经常需要用到,其中有些包是必要的.若是离开它,还真不能做事情了. 第一个包:java. ...

  8. JavaWeb之多语言国际化

    这周打算把国际化.JDBC和XML学习一下,从下周就开始学习三大框架,再坚持一个半月吧就能入门JavaWeb了,上周周末两天过的真是生不如死,两天坐在家里,醒来就写博客,原本在公司也自己操作了一遍,其 ...

  9. Java程序国际化学习代码一

    Java程序国际化初识 1.基本思路 Java程序的国际化的思路是将程序中的标签.提示等信息放在资源文件中,程序需要支持哪些国家.语言环境,就对应提供相应的资源文件.资源文件是key-value对,每 ...

随机推荐

  1. document对象相关的几个常用的方法

    方法  描述 var newP=createElement("p"); 创建了一个p标签,p也可替换为div,span等 var oldTxt=createTextNode(&qu ...

  2. 仿qq的条目抽屉动画效果_ViewDragHelper

    GitHub地址: https://github.com/OOOOOldZhu/DrawerItemView import android.content.Context; import androi ...

  3. Dynamic Programming - leetcode [动态规划]

    115. Distinct Subsequences 96. Unique Binary Search Trees 120. Triangle 123. Best Time to Buy and Se ...

  4. checkbox:全选与反全选

    $(document).ready(function () { //全选checkbox $("#selectAll").click(function () { var check ...

  5. maven GroupId 和ArtifactId的含义

    GroupID是项目组织唯一的标识符,实际对应Java的包的结构,是main目录里java的目录结构. ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称.

  6. JavaScript 属性类型(数据属性 访问器属性)

    ECMA-2把对象定义为:“无序属性的集合,其属性可以包含基本值.对象或者函数.” 严格来说,这就相当于说对象是一组没有特定顺序的值.对象的属性或方法都有一个名字,而每个名字映射到一个值.我们可以把E ...

  7. hive-1.2.1安装步骤

    一.Hive安装和配置 1.先决条件 已经安装好hadoop-2.4.1,hbase-1.0.0. 2.下载Hive安装包 当前Hive可到apache官网下载,选择的是hive-1.2.1.运行: ...

  8. springMVC servlet 静态资源加载

    问题描述 新手使用SpringMVC时市场会遇到静态资源无法加载在问题,如下图所示 问题原因 出现这种问题一般是在web.xml中的对spring的DispatcherServlet采用了如下配置,即 ...

  9. 【.NET】加密和解密(.NET)

    类名:Security using System; using System.Security.Cryptography; using System.IO; using System.Text; na ...

  10. IOC(控制反转)

    一.容器与Bean 在Spring中,那些组成你应用程序的主体(backbone)及由Spring IoC容器所管理的对象,被称之为bean. 简单地讲,bean就是由Spring容器初始化.装配及管 ...