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