java国际化解决方案.docx
- 文档编号:10031795
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:11
- 大小:18.61KB
java国际化解决方案.docx
《java国际化解决方案.docx》由会员分享,可在线阅读,更多相关《java国际化解决方案.docx(11页珍藏版)》请在冰点文库上搜索。
java国际化解决方案
java,国际化解决方案
篇一:
javaweb项目国际化显示
项目国际化显示
一.学习使用i18n
1、合格的国际化软件
软件实现国际化,需具备以下两个特征:
1)、对于程序中固定使用的文本元素,例如菜单栏、导航条等中使用的文本元素、或错误提示信息,状态信息等,需要根据来访者的地区和国家,选择不同语言的文本为之服务。
2)、对于程序动态产生的数据,例如(日期,货币等),软件应能根据当前所在的国家或地区的文化习惯进行显示。
2、固定文本元素的国际化
对于软件中的菜单栏、导航条、错误提示信息,状态信息等这些固定不变的文本信息,可以把它们写在一个properties文件中,并根据不同的国家编写不同的properties文件。
这一组properties文件称之为一个资源包。
3.使用方式
、创建资源包和资源文件
一个资源包中的每个资源文件都必须拥有共同的基名。
除了基名,每个资源文件的名称中还必须有标识其本地信息的附加部分。
例如:
一个资源包的基名是“myproperties”,则与中文、英文环境相对应的资源文件名则为:
"myproperties_""myproperties_"
每个资源包都应有一个默认资源文件,这个文件不带有标识本地信息的附加部分。
若ResourceBundle对象在资源包中找不到与用户匹配的资源文件,它将选择该资源包中与用户最相近的资源文件,如果再找不到,则使用默认资源文件。
例如:
、资源文件的书写格式
资源文件的内容通常采用"关键字=值"的形式,软件根据关键字检索值显示在页面上。
一个资源包中的所有资源文件的关键字必须相同,值则为相应国家的文字。
并且资源文件中采用的是properties格式文件,所以文件中的所有字符都必须是ASCII字码,属性(properties)文件是不能保存中文的,对于像中文这样的非ACSII字符,须先进行编码。
例如:
国际化的中文环境的properties文件(内容中中文使用unicode编码显示)
国际化的英文环境的properties文件
提示:
java提供了一个native2ascII工具用于将中文字符进行编码处理,native2ascII
的用法
、编程实现固定文本的国际化
在JavaAPI中提供了一个ResourceBundle类用于描述一个资源包,并且ResourceBundle类提供了相应的方法getBundle,这个方法可以根据来访者的国家地区自动获取与之对应的资源文件予以显示。
ResourceBundle类提供了一个静态方法getBundle,该方法用于装载资源文件,并创建ResourceBundle实例:
1LocalecurrentLocale=();
2ResourceBundlemyResources=(basename,currentLocale);
basename为资源包基名(且必须为完整路径)。
如果与该locale对象匹配的资源包子类找不到。
一般情况下,则选用默认资源文件予以显示。
加载资源文件后,程序就可以调用ResourceBundle实例对象的getString方法获取指定的资源信息名称所对应的值。
、使用java代码在后台进行处理
Stringvalue=(“key");
范例:
根据国家地区自动获取与之对应的资源文件1package;
2
3import;
4import;
5/**
6*@ClassName:
I18NTest
7*@Description:
编程实现固定文本的国际化
8*@author:
孤傲苍狼
9*@date:
XX-8-29下午9:
34:
05
10*
11*/
12publicclassI18NTest{
13
14publicstaticvoidmain(String[]args){15//资源包基名(包名+myproperties)
16
Stringbasename="";17//设置语言环境
18Localecn=;//中文
19Localeus=;//英文
20//根据基名和语言环境加载对应的语言资源文件
21ResourceBundlemyResourcesCN=
(basename,cn);//加载
myproperties_
22ResourceBundlemyResourcesUS=
(basename,us);//加载
myproperties_
23
24//加载资源文件后,程序就可以调用ResourceBundle实例对象的getString方法获取指定的资源信息名称所对应的值。
25//Stringvalue=(“key");
26StringusernameCN=("username");27StringpasswordCN=("password");28
29StringusernameUS=("username");30StringpasswordUS=("password");31
(usernameCN+"--"+passwordCN);
(usernameUS+"--"+passwordUS);
34}
35}
、在WEB应用中实现固定文本的国际化
如下所示:
1 pageEncoding="UTF-8"%>
2
3
4
5国际化(i18n)测试
6
7 8//加载i18n资源文件,()获取访问用户所在的国家地区
9ResourceBundlemyResourcesBundle=
("",());
10%>
11
12
13:
14:
15 =" >">
16
17
18
同样一个页面,在不同语言环境的浏览器下显示出了不同的语言文字效果,这样就实现了固定文本的国际化。
IE浏览器切换使用语言:
工具→Internet选项
4、在WEB应用中使用国际化标签库实现固定文本的国际化
1 pageEncoding="UTF-8"%>
2
34
5
6
7国际化(i18n)测试
8
9 10//加载i18n资源文件,()获取访问用户所在的国家地区
篇二:
Java程序的国际化和本地化介绍
本文尝试用一个简单的例
行本地化有多么简单。
子来演示在书写Java应用程序时候,
怎样使之符合国际化标准,然后对其进
当一个软件产品需要在全球
的要求就是UI上的信息上能用本
求远远不止于此,本文只是涉及
提供了对不同国家和
比C/C++来的优越。
范围应用的时候,得考虑在不同的地
地化语言来显示,当然一个优秀的全
了国际化和本地化的关于界面显示语
不同语言文字的内部支持,由于先天
域和语言环境下面的使用情况,最简单
球化软件产品关于国际化和本地化的要
言的一小部分。
Java语言内核基于
的原因,Java对于国际化的支持远远要
在开始具体介绍之前,需要先介绍几个术语:
i18n:
就是internationali
i18n.internationalization指
取的设计措施。
zation,国际化,由于首字母"i"和末
为了使应用程序能适应不同的语言和
尾字母"n"间有18个字符,所以简称
地区间的变化而不作系统性的变化所采
l10n:
就是localization,本地化,由于首字
localization指为了使应用软件能够在某一特定语
过程。
母"l"和末尾字母"n"间有10个字母,所以简称l10n.
言环境或地区使用而加入本地特殊化部件和翻译后文本的
locale:
简单来说是指语言和区域进行特殊组合的一个标志。
(来自:
小龙文档网:
java,国际化解决方案)我们的例子,显示一个有一个按钮和一个菜单
文文字的或者中文文字的界面。
注:
因为仅仅作为
是一个Button一样,而不是通常意义上的菜单条。
的Dialog窗,在不改动程序的前提下使应用程能够显示英
演示用,我们的菜单栏也作为一个部件加入对话框,好象
通常我们的程序是这样的:
import*;
import*;import*;publicclassi18nDemo{publicstaticvoidmain(
Stringargs[])throwsException{
JDialogdialog=newJDialog();JButtonbtOK=newJButton();JMenuBarmenuBar=newJMenuBar();JMenumenuFile=newJMenu();JMenuItemmenuExit=newJMenuItem();
("OK");("File");("Exit");("i18nDemo");
(menuFile);(menuExit);().
setLayout(newFlowLayout());
().add(btOK);().add(menuBar);(200,100);(true);();(0);}}我们通过修改程序来达到i1
.Java里面的资源文件叫做Resou
PropertyResourceBundle,我们
推荐阅读。
当一个程序需要一些
面将需要的本地化资源装入。
8n的要求:
将那些和界面显示有关系
rceBundle,它分成两种,一种是List
这里使用ListResourceBundle,关于P
Locale相关的资源,例如字符串资源
的资源单独提取出来到资源文件里面
ResourceBundle,另一种是
ropertyREsourceBundle请参阅文后的
的时候,它可以从resourcebundle里
需要注意的是:
为了能够正确显示中文字符,使用"MSSong",不然界面有中文字符的时候会出现
程序里的部件需要选择指定字体,例如在显示中文的时候没有意义的方框。
请看修改过的程序和资源文件。
import*;import*;import*;
publicclassi18nDemo{publicstaticvoidmain(Stringargs[])t
hrowsException{
ResourceBundleres;if( //usecurrentlocaleat
machinetogettheresourcebund
le.
res=("Res");}else{res=
Bundle("Res",newLocale(args[0],
args[1]));
}JDialogdialog=newJDialog();JButtonbtOK=newJButton();JMenuBarmenuBar=newJMenuBar();JMenumenuFile=newJMenu();JMenuItemmenuExit=newJMenuItem();Fontfont=newFont(("Font
Name"),,12);
(("OKText"));(
String("FileMenuText"));
(("FileExitMenuText"));
(
tring("DialogTitle"));
(font);(font);(font);(menuFile);(menuExit);().
setLayout(newFlowLayout());
().add(btOK);().add(menuBar);(200,100);(true);();(0);}}
import*;publicclassRes_en_USextends.ListResourceBundle{
staticfinalObject[][]contents=newS
tring[][]{
{"OKText","OK"},{"FontName","Dialoginput"},{"FileMenuText","File"},{"FileExitMenuText","Exit"},{"DialogTitle","DemoDialog"}};publicObject[][]getContents(){returncontents;}}
篇三:
java国际化
JAVA国际化的实现的国际化由两部分组成:
(1)页面国际化处理
(2)JAVA类的源代码处理
一、给如下资源文件添加需要国际化的内容
1、
ApplicationResources_zh_中文ApplicationResources_en_英文
2、
ApplicationResources_zh_中文
ApplicationResources_en_英文
二、在文件中作如下配置
parameter=""/>
parameter=""
key='globaluititle'/>
parameter=""key='menutitle'/> parameter="">
三、写Constants类里写处理资源文件及国际化的方法,主要用于在JAVA源代码中处理国际化问题
该类如下:
publicclassConstants{
publicstaticMessageResourcesMESSAGE=
("Reseveinfo");
publicstaticMessageResourcesMESSAGE_UITITLE_RES=MessageResources
.getMessageResources("");
publicstaticMessageResourcesMESSAGE_GLOBAL_RES=MessageResources
.getMessageResources("");
publicstaticMessageResourcesMESSAGE_MENU_RES=
MessageResources
.getMessageResources("");
publicstaticMessageResourcesMESSAGE_APP_RES=
MessageResources
.getMessageResources("");
publicstaticString[]disposeLanguage(Localelocale){
String[]pagesign=newString[6];
pagesign[0]=MESSAGE_APP_(locale,"");
pagesign[1]=MESSAGE_APP_(locale,"");
pagesign[2]=MESSAGE_APP_(locale,"");
pagesign[3]=MESSAGE_APP_(locale,"");
pagesign[4]=MESSAGE_APP_(locale,"");
pagesign[5]=MESSAGE_APP_(locale,"");
returnpagesign;
}
//处理语言国际化
publicstaticStringdisposeLanguageApp(Localelocale,Stringstr,Object[]args){
StringretStr="";
if(locale==null||(str))
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 国际化 解决方案