返回首页

Java如何国际化

90 2024-01-18 20:04 admin

一、Java如何国际化

建立消息资源文件.

在消息资源文件中。分别写入各国语言。需要统一编码。在jdk的安装目录有个编码工具

用到jstl的国际化标签。写入消息资源文件中的key

如果用struts框架的话。struts有个<html:message key=>的标签可以做到

我说了这些不知道你能否听懂。呵呵!

二、国际化,如何利用java代码实现?

Locale local = Locale.US;

// System.out.println(local.getCountry() + ::

// + local.getDisplayCountry());

// System.out.println(local.getLanguage() + ::

// + local.getDisplayLanguage());

// Locale[] locales = Locale.getAvailableLocales();

//

// for (Locale i : locales) {

// System.out.print(i.getCountry() + :: + i.getDisplayCountry()

// + :====: );

// System.out.println(i.getLanguage() + :: + i.getDisplayLanguage());

// }

//资源包的位置且在,MyResource_zh_CN.properties\MyResource_en_US.properties这个文件中要有test.userName=aaaa

String userName = ResourceBundle.getBundle(

com.jpioneer.i18n.MyResource,local).getString(test.userName);

System.out.println(userName);

String errors = ResourceBundle.getBundle(

com.jpioneer.i18n.MyResource,local).getString(errors.required);

System.out.println(errors);

String formatErrors = MessageFormat.format(errors, UserName);

System.out.println(formatErrors);

三、java国际化怎么实现

以下分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页面中,即可直接使用来调用ResourceBundle资源文件中的内容