`
kungstriving
  • 浏览: 131417 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java语言的国际化

    博客分类:
  • Java
阅读更多

国际化就是指设计一个应用程序,该程序可以应用于不同的语言和地区,而不需要改变源程序。其实,就是让你的软件可以有各种语言的版本,比如在网站上提供一个语言选单,不同地区的用户可以选择自己的区域便可以查看不同的页面;或者在软件安装过程中选择不同语言包,让软件显示为自己的语言。这些还只是停留在标签显示的层面,也就是一些显示给用户的文本,但是还需要考虑的一些方面就是象时间、日期、数字、温度、电话、邮编等,都是不同的地区有不同的表现方式的。

Java语言中专门有处理国际化的机制,对于上面所提到的这两种问题都有很好的解决方案。

首先,对于固定的消息(Message--这里的消息指的是一些提示信息,比如button上的OK,在中文中换成“确定”这种的,它的信息不是根据软件的运行而动态变化的)可以采用资源配置文件的方式来进行,比如可以准备两个配置文件English.properties和Chinese.properties,文件中采用名值对的方式标识消息,例如:buttonok=OK 和 buttonok=确定 ,在这样的文件中可以定义整个系统的所有需要显示的消息。有了这样的文件,系统需要哪种语言装载哪种配置文件即可。而Java语言已经提供了针对这种方式的专门的实现

第一步,先创建配置文件,Java规定这种配置文件的名字格式为MessageBundle_language_region.properties,第一个字段可以更改为任意字符串,第二个字段为该配置文件所规定的语言,比如en、zh等,第三个为地区标识,比如US、CN等。可以使用Locale.getAvailableLocales();该方法获得系统所支持的所有语言和地区。配置文件的内容

MessageBundle_en_US.properties

 

greetings = Hello
    farewell = Goodbye
    inquiry = How are you?

 

MessageBundle_zh_CN.properties

 

greetings = 你好
    farewell = 再见
    inquiry = 你好吗?

 

第二步,定义Locale变量,Java的ResouceBundle类用该变量来获得不同的配置文件

Locale usa = new Locale("en", "US");

Locale china = new Locale("zh", "CN");

第三步,ResourceBundle类,专门用来装载不同语言的配置文件,并获得各个key对应的value值

ResouceBundle messages = ResourceBundle.getBundle("MessagesBundle",currentLocale);

第一个参数是你的所有的配置文件的开头第一个字符串(所有的其他配置文件也要有相同的开头字符串),第二个参数为你所要求的不同的地区表示。例如

ResourceBundle.getBundle("MessagesBundle",usa); 将获得配置文件  MessageBundle_en_US.properties

ResourceBundle.getBundle("MessagesBundle",china); 将获得配置文件MessageBundle_zh_CN.properties

 

第四步,使用方法。在需要配置文件中的字符信息的时候,message.getString("greetings");便可以

 

需要注意的是,Java内部使用unicode进行编码,所以在用上面的方法进行国际化时候需要注意,中文的配置文件在编写完成后需要使用JDK 自带的native2ascii.exe进行转化,使用Eclipse的朋友可以使用PropertyEditor这个插件,更新地址是:http://propedit.sourceforge.jp/eclipse/ 。

 

其次,对于非固定message的信息的国际化,比如日期的显示方式(Date)各个国家地区都不一样。而Java提供了Format类,对应的Date可以使用DateFormat类,具体的使用方法如下

DateFormat dateFormatter = DateFormat.getDateInstance(DateFormat.DEFAULT, currentLocale);
    Date today = new Date();
    String dateOut = dateFormatter.format(today);

 

注意第一行,获得DateFormat实例采用了DEFAULT模式,DateFormat提供了

DEFAULT

SHORT

MEDIUM

LONG

FULL

五种内置的方式,当然你也可以自定义(具体使用可以参考http://java.sun.com/docs/books/tutorial/i18n/format/dateFormat.html),然后第二个参数给出了地区,不同的地区会有不同的显示风格。

这样便可以实现日期显示的国际化,同样对于Time、Number等的显示也都可以用类似 的方法进行国际化(参考 http://java.sun.com/docs/books/tutorial/i18n/format/index.html)。

1
0
分享到:
评论

相关推荐

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

    Java 实现国际化是一种重要的软件开发技术,特别是在构建多语言支持的应用程序时。国际化(i18n)使得软件能够适应不同国家和地区的语言环境,包括中文和英文。在这个主题中,我们将深入探讨如何使用Java和JSP进行...

    java国际化&时间处理

    首先,Java中的国际化主要依赖于`java.util.Locale`类,它代表了特定的语言环境,包括语言、国家和地区。例如,`Locale.CHINA`表示简体中文环境,`Locale.US`则代表美国英语环境。开发者可以通过`ResourceBundle`类...

    国际化 必备工具 java编写

    Java作为一种广泛使用的编程语言,提供了强大的国际化支持。本篇将深入探讨Java中实现国际化的必备工具以及相关的编码转换问题。 一、Java中的国际化 1. **资源绑定文件(Properties文件)** 在Java中,我们通常...

    java国际化组件

    Java国际化组件是Java开发中一个重要的功能模块,它允许开发者为不同地区的用户创建多语言支持的应用程序。在Java中,国际化通常通过使用Resource Bundle和Java的Locale类来实现。资源库(Resource Bundle)包含了...

    java实现国际化

    Java实现国际化是一个重要的技术主题,尤其对于开发面向全球用户的软件来说。这个过程涉及到将应用程序的文本、日期格式、数字格式等本地化,以便适应不同国家和地区的语言与文化习惯。在Java中,这一功能主要通过...

    Java程序国际化教程源码下载

    Java程序的国际化(Internationalization,通常简写为i18n)是使软件能够适应不同语言和文化背景的重要过程。这个教程源码旨在帮助开发者理解并掌握如何在Java应用程序中实现这一功能。以下是对Java程序国际化关键...

    基于Java语言的国际化demo设计源码

    该项目是一个基于Java语言的国际化demo设计源码,包含120个文件,其中包括81个XML配置文件、11个Java源文件、11个class文件、10个properties文件、3个Markdown文件,以及若干个IDEA项目配置文件、Git忽略文件和项目...

    java国际化官方指南

    Java作为广泛使用的编程语言之一,提供了强大的国际化支持。国际化,通常指软件能够支持多种语言和地区的不同习惯,例如货币、日期时间格式等。Java的国际化官方指南提供了详细的资源和API,帮助开发者为应用程序...

    Java国际化配置

    用Java写的一个国际化语言配置模块,可实现简单的国际化配置。

    java国际化i18n

    Java国际化(i18n)是Java平台为支持全球不同地区的用户和语言而设计的一种机制。i18n这个名字来源于“internationalization”这个单词,其中'i'是第9个字母,'n'是第14个字母,所以18代表了两者之间的字母数。Java的...

    Java 程序国际化教程+源码

    Java程序的国际化(i18n)是为了使软件能够适应不同地区的语言和文化习惯,它涉及到日期、时间、数字格式、货币符号、排序规则、文本方向等多方面的处理。本教程将详细介绍Java如何实现这一功能,并提供源码供学习者...

    Java国际化编程及其实现.rar

    Java国际化编程,简称i18n(取"internationalization"一词中第18个字母i作为缩写),是Java平台提供的一种强大的功能,旨在帮助开发者创建能够适应不同语言和地区需求的应用程序。Java的国际化设计使得软件能够在...

    java国际化实现框架底层源码

    Java国际化(i18n,Internationalization)是为了支持不同地区的语言和文化差异,提供了一种灵活的方式来管理和显示应用程序的文本、日期、数字和其他文化敏感的信息。Java提供了完整的API来处理国际化问题,主要...

    java实现国际化源码

    在Java开发中,实现国际化(i18n)是一项重要的任务,它允许应用程序根据用户的语言和地区提供相应的本地化内容。本篇文章将详细讲解如何利用Java技术,特别是Struts框架,来实现这一功能。 首先,我们需要了解Java...

    JAVA_国际化程序实现

    Java 国际化(i18n)是开发支持多种语言和文化环境的应用程序的关键技术。这个过程涉及创建可适应不同地区和语言的资源,如文本、日期、时间和数字格式,以便用户能根据他们的本地设置体验到定制化的界面。下面我们...

    Java国际化的工具 propedit

    在Java应用程序中,为了支持不同地区的用户,我们需要提供多语言支持,这就涉及到了国际化和本地化。propedit正是帮助开发者管理和编辑这些资源的一个工具,它使得创建和维护.properties文件变得更为便捷。 ....

    JAVA国际化文件生成工具

    标题提到的"JAVA国际化文件生成工具"是一种辅助开发者创建和管理这些多语言资源文件的工具。这种工具可能提供以下功能: 1. **资源文件创建**:自动生成基础的`.properties`文件结构,这些文件通常命名为`messages_...

    java web 国际化

    Java Web国际化是一种功能,它允许Web应用程序适应不同国家或地区的用户习惯,使得应用程序能够在多种语言环境下正确地显示信息。随着互联网的普及,Web应用程序可能会被世界各地的用户访问,因此支持国际化对于提供...

    java国际化.ppt

    Java 国际化(i18n)是开发支持多语言的应用程序的关键步骤,使得软件能够适应不同国家和地区用户的需求。以下将详细讲解Java中实现国际化涉及的主要知识点: 1. **软件国际化的意义**: - 提高软件的全球适用性,...

Global site tag (gtag.js) - Google Analytics