java国际化怎么实现

各位大神,java国际化实现语言切换,建立两个中英文的配置文件,怎么做才能实现,我用的是netbeans

以下分3点进行讲述

1、我们使用java.lang.Locale来实现java国际化。
java.lang.Locale代表特定的地理、政治和文化。需要Locale来执行其任务的操作叫语言环境敏感的操作。
构造一个系统默认的Locale:
Locale defaultLocale = Locale.getDefault();
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);

2、使用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。

3、实际应用距离:struts
在jsp页面中,即可直接使用<s:text name="key"/>来调用ResourceBundle资源文件中的内容
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-09
//public Locale(String language)
Locale locale = new Locale(System.getProperty("user.language"));
if(locale.equals(Locale.CHINESE))
System.out.println("中文");
else if(locale.equals(Locale.ENGLISH))
System.out.println("英文");本回答被网友采纳
第2个回答  2012-10-09
ResourceBundle bundle ;
bundle=ResourceBundle.getBundle("mess");
System.out.println(bundle.getString("hello"));

在java程序根目录下,建好 mess_zh_CN.properties和 mess_en_US.properties文件,添加 hello=Hi,world 和 hello=你好,世界 就OK了。运行时就会按你的系统语言来显示了。追问

那请问,我用的是netbeans,找不到编写properties的资源编辑器,能不能告诉我这编辑器在哪里,或者用什么插件

追答

properties文件,实际上就是文本文件啊。是key=value 对。
比如说
mess_en_US.properties 内容:
hello=Hello,World
title=Hello Application

如果是中文或日本等,需要把字符用native2ascii工具,把文件进行转换。或者netbeans也有插件,直接可以在文件中转换。

第3个回答  2012-10-09
struts 有对国际化的实现配置,你也可以自己写配置文件。追问

自己写的话,在哪里写啊,自己写的这个资源文件是什么类型,放哪里

追答

java推荐用 XX.properties配置文件,比如lan_Zh_CN.properties里面放你程序的所有中文提示,lan_fr.properties里面放你策划年供需的所有法文提示(和上面的所有中文提示一一对应的),然后在程序里自己实现调用,就是用户在选择不同语言时,读取对应配置文件的提示。

自己实现调用:你可以写一个程序刚启动时,读取所有配置文件,并分别放到对应语种的集合里,程序在接收到不通语言请求时,返回对应语言提示。

本回答被提问者采纳
相似回答