国际化就是指设计一个应用程序,该程序可以应用于不同的语言和地区,而不需要改变源程序。其实,就是让你的软件可以有各种语言的版本,比如在网站上提供一个语言选单,不同地区的用户可以选择自己的区域便可以查看不同的页面;或者在软件安装过程中选择不同语言包,让软件显示为自己的语言。这些还只是停留在标签显示的层面,也就是一些显示给用户的文本,但是还需要考虑的一些方面就是象时间、日期、数字、温度、电话、邮编等,都是不同的地区有不同的表现方式的。
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)。
分享到:
相关推荐
Java 实现国际化是一种重要的软件开发技术,特别是在构建多语言支持的应用程序时。国际化(i18n)使得软件能够适应不同国家和地区的语言环境,包括中文和英文。在这个主题中,我们将深入探讨如何使用Java和JSP进行...
Java语言的国际化编程是一个复杂的主题,它涉及到软件在不同语言和文化环境下运行的能力。国际化不仅仅是语言的翻译,还包括货币、日期、时间、数字等本地化信息的处理。一个设计良好的国际化应用程序能够支持多种...
首先,Java中的国际化主要依赖于`java.util.Locale`类,它代表了特定的语言环境,包括语言、国家和地区。例如,`Locale.CHINA`表示简体中文环境,`Locale.US`则代表美国英语环境。开发者可以通过`ResourceBundle`类...
Java Web 国际化(i18n)是指在开发Web应用程序时,考虑到全球不同地区用户的语言、文化习俗和格式需求,使其能够适应多种语言和地域环境。这一过程包括软件的本地化和国际化两个方面。本地化是指针对特定国家或地区...
Java作为一种广泛使用的编程语言,提供了强大的国际化支持。本篇将深入探讨Java中实现国际化的必备工具以及相关的编码转换问题。 一、Java中的国际化 1. **资源绑定文件(Properties文件)** 在Java中,我们通常...
Java国际化组件是Java开发中一个重要的功能模块,它允许开发者为不同地区的用户创建多语言支持的应用程序。在Java中,国际化通常通过使用Resource Bundle和Java的Locale类来实现。资源库(Resource Bundle)包含了...
Java实现国际化是一个重要的技术主题,尤其对于开发面向全球用户的软件来说。这个过程涉及到将应用程序的文本、日期格式、数字格式等本地化,以便适应不同国家和地区的语言与文化习惯。在Java中,这一功能主要通过...
Java程序的国际化(Internationalization,通常简写为i18n)是使软件能够适应不同语言和文化背景的重要过程。这个教程源码旨在帮助开发者理解并掌握如何在Java应用程序中实现这一功能。以下是对Java程序国际化关键...
Java作为广泛使用的编程语言之一,提供了强大的国际化支持。国际化,通常指软件能够支持多种语言和地区的不同习惯,例如货币、日期时间格式等。Java的国际化官方指南提供了详细的资源和API,帮助开发者为应用程序...
用Java写的一个国际化语言配置模块,可实现简单的国际化配置。
Java国际化(i18n)是Java平台为支持全球不同地区的用户和语言而设计的一种机制。i18n这个名字来源于“internationalization”这个单词,其中'i'是第9个字母,'n'是第14个字母,所以18代表了两者之间的字母数。Java的...
Java程序的国际化(i18n)是为了使软件能够适应不同地区的语言和文化习惯,它涉及到日期、时间、数字格式、货币符号、排序规则、文本方向等多方面的处理。本教程将详细介绍Java如何实现这一功能,并提供源码供学习者...
Java国际化编程,简称i18n(取"internationalization"一词中第18个字母i作为缩写),是Java平台提供的一种强大的功能,旨在帮助开发者创建能够适应不同语言和地区需求的应用程序。Java的国际化设计使得软件能够在...
Java国际化(i18n,Internationalization)是为了支持不同地区的语言和文化差异,提供了一种灵活的方式来管理和显示应用程序的文本、日期、数字和其他文化敏感的信息。Java提供了完整的API来处理国际化问题,主要...
在Java开发中,实现国际化(i18n)是一项重要的任务,它允许应用程序根据用户的语言和地区提供相应的本地化内容。本篇文章将详细讲解如何利用Java技术,特别是Struts框架,来实现这一功能。 首先,我们需要了解Java...
Java 国际化(i18n)是开发支持多种语言和文化环境的应用程序的关键技术。这个过程涉及创建可适应不同地区和语言的资源,如文本、日期、时间和数字格式,以便用户能根据他们的本地设置体验到定制化的界面。下面我们...
在Java应用程序中,为了支持不同地区的用户,我们需要提供多语言支持,这就涉及到了国际化和本地化。propedit正是帮助开发者管理和编辑这些资源的一个工具,它使得创建和维护.properties文件变得更为便捷。 ....
本文将详细介绍如何使用Java语言的国际化(Internationalization, I18N)和本地化(Localization, L10N)特性来实现一个多语言的应用程序。通过具体实例,我们将了解如何定义多种语言的文本资源,并利用Java内置的`...
本篇将详细探讨基于Java语言的微服务通用国际化模块设计源码的相关知识点。 首先,微服务架构是一种将单一应用程序作为一套小型服务开发的方法,每项服务运行在其独立的进程中,并通过轻量级的机制(通常是HTTP资源...
标题提到的"JAVA国际化文件生成工具"是一种辅助开发者创建和管理这些多语言资源文件的工具。这种工具可能提供以下功能: 1. **资源文件创建**:自动生成基础的`.properties`文件结构,这些文件通常命名为`messages_...