首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java中的国际化

Java中的国际化

国际化,就是项目能够让所有的国家的语言都能够支持。Java既然作为一个跨平台的语言就必然要在各种不同的语言环境中使用。而为了解决这个问题Java给我们提供了一个工具类ResourceBundle,帮助我们实现Java的国际化, 核心的思想就是, 对不同的语言提供一个不同的资源文件。

Java实现国际化的步骤:

1.编写要实现国际化的主程序。

2.定义资源文件,注意资源文件的定义要符合一定的规范。

规范如下:如果我们将缺省的资源文件的文件名取名为message.properties, 那么相应的其他语言的资源文件名就是message_语言代码_国家代码.properties。例如:我们的语言汉语的语言代码是zh, 国家代码是CN, 所以简体中文的资源文件名就是:message_zh_CN.properties, 英语的语言代码是en, 美国的国家代码是US, 所以美国英语的资源文件就是:message_en_US.properties。

3.根据软件的使用环境取得相应的资源文件。

4.在取得的资源文件中取得key对应的值。

具体代码示例如下:

import java.text.MessageFormat;

import java.util.Date;

import java.util.Locale;

import java.util.ResourceBundle;

/**

*演示Java的国际化

*

*/

public class ParamFormat {

/**

* @param args

*/

public static void main(String[] args) {

//测试缺省的资源文件

testCustom();

//测试美国英语的资源文件

testDefault();

}

public static void testDefault() {

//获得缺省的系统区域

Locale locale = Locale.getDefault();

//获得资源文件

ResourceBundle rb = ResourceBundle.getBundle("message", locale);

//获得相应的key值

String greeting = rb.getString("greeting");

String userInfo = rb.getString("userinfo");

String name= "liky";

int age = 18;

Date birth = new Date();

//格式化参数,注意是一个Object的数组,这意味着可以将任何类型的对象来格式化模板.

Object[] params = ;

//格式化参数,返回格式后的字符串

String result = MessageFormat.format(userInfo, params);

}

public static void testCustom() {

//设置定制的语言国家代码

Locale locale = new Locale("en_US");

//获得资源文件

ResourceBundle rb = ResourceBundle.getBundle("message", locale);

//获得相应的key值

String greeting = rb.getString("greeting");

String userInfo = rb.getString("userinfo");

String name= "liky";

int age = 18;

Date birth = new Date();

//格式化参数,注意是一个Object的数组,这意味着可以将任何类型的对象来格式化模板.

Object[] params = ;

//格式化参数,返回格式后的字符串

String result = MessageFormat.format(userInfo, params);

}

}

缺省的资源文件message.properties(这里使用native2ascii将中文转化成了ISO-8859-1编码.)

greeting=/u6B22/u8FCE/u60A8/u7684/u5230/u6765,

userinfo=/u59D3/u540D/:, /u5E74/u9F84/:, /u751F/u65E5/:.

美国英语的资源文件message_en_US.properties

greeting=Welcome my boy,

userinfo=name:, age:, birthday:.

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190816A0MAA700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券