当前位置:编程学习 > JAVA >>

JAVA程序设计题————Java国际化

利用JAVA的国际化,编写一个中、英文界面可切换的登录界面。
追问:你好,谢谢你的回答!您能帮我设计好代码吗?

答案:java里有几个类是Locale(由国家和语言对组成),ResouseBundle(是由基本名称和Locale组成),MessageFormat(用来处理需要动态加入内容的信息)

1, Locale的用法(特别详细的可参加java的api文档)

Locale defaultLocale = Locale.getDefault()(取得系统设置的语言)

String country = defaultLocale.getCountry();

String language = defaultLocale .getLanguage();

2,ResouseBuddle的用法(用来绑定国际化属性文件)

ResouseBuddle rb = new ResouseBuddle(“basename”,locale对象);

rb.getString("属性名")

3,MessageFormat mf = new MessageFormat(rb.getString("属性名"));

mf.format(new Object[]{"动态需要加入的东西"})

国际化文件,文件名是由“basename_语言_国家.properties”,文件内容是属性值对的形式,例如:k1 = value 或者 k2 = value2 {0}(这个中括号里面放个数字是表示这部分内容是要动态加入的),还有除了英文的所有国际化文件都要是unicode形式的,java的提供了转换成unicode的工具,在java的bin目录下,名字叫native2ascii.exe,将不是unicode的形式转换,名字是basename_语言_国家.properties。要支持多少种语言,就要有多少个相应的国际化文件,而且还有一个特殊的basename.properties文件,当需要的国际化文件没有找到时就用这个特殊的国际化文件。国际化文件的默认路径是根路径,如果放在其他路径下,我们访问时需要特殊处理,比如放在根路径下的src文件下,那么访问时需要加上“。”定向,那么就是.src.国际化文件。

import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;

public class I18nSample {

public static void main(String[] args) {

Locale defaultLocale = Locale.getDefault();
System.out.println("default country=" + defaultLocale.getCountry());
System.out.println("default language=" + defaultLocale.getLanguage());

//Locale currentLocale = new Locale("en", "US");
//Locale currentLocale = new Locale("zh", "CN");

Locale currentLocale = new Locale("ja", "JP");

ResourceBundle rb = ResourceBundle.getBundle("res.MessagesBundle", currentLocale);
System.out.println(rb.getString("k1"));
System.out.println(rb.getString("k2"));


}
}

看看资源文件 这个是英文的

k1=hello
k2=good bye

在来看看汉语的

k1=\u4f60\u597d,{0}
k2=\u518d\u89c1

那么在你的系统用过是用的汉语的那么 上面的那个程序输出地就是 你好 再见

如果是英文 那么就是hello good bye 当然还有个缺省的 你也可以用成 英语的

大致就是这样的 你可以去我空间看看 里面有详解

neng

上一个:如何学习JAVA,并求个简单JAVA游戏代码
下一个:JAVA网络即时通讯系统即时聊天系统java聊天室系统论文

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,