java国际化作用_java开发中国际化

1 静态文本的国际化,就是比如页面中中文显示用户名就是用户名,用于显示就是 username。

其中静态文件命名遵循:基础名_语言简称_国家简称.properties

需要使用的类是

1)import java.util.Locale;  //本地化

2)import java.util.ResourceBundle;  //资源加载

对于如何查找语言简称、国家简称可以通过internate选项找到语言。如下图所示

2aa24946cf23c1e018b13c8203da416c.png

c01b52e786c2d73099eca352eda8666e.png

例子如下:

新建两个properties文件存储对应的要国际化的值

69b2622245b8590760a74fb13080544a.png

msg_zh_CN.properties 文件内容如下

4eed2c5f9bcfff2eb2d6338160140181.png

msg_en_US.properties 文件内容如下

ad406b5f94782409b82e3faf72567f2b.png

测试代码如下

String baseName = "com.huitong.test.bundle.msg";

ResourceBundle bundle=ResourceBundle.getBundle(baseName, Locale.CHINA);

System.out.println(bundle.getString("username"));

2 动态内容的国际化:主要包含数字国际化、货币国际化、日期国际化

主要的类对象是:NumberFormat、SimpleDateFormat

2.1 货币国际化,代码如下

2.1.1)将数字货币格式化成字符串

Locale locale =Locale.CHINA;double number = 200;//货币国际化

NumberFormat currencyInstance =NumberFormat.getCurrencyInstance(locale);

String result=currencyInstance.format(number );

System.out.println(result);

2.1.2)将字符串格式化成数字,代码如下

Locale locale =Locale.CHINA;String strNumber= "¥200.00";//货币国际化

NumberFormat currencyInstance =NumberFormat.getCurrencyInstance(locale);

Number result;//String result = currencyInstance.format(dnumber );

try{

result=currencyInstance.parse(strNumber);

System.out.println(result.doubleValue());

}catch(ParseException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

2.2 数字国际化

将数字货币格式化成字符串

2.2.1)数字格式化成字符串

Locale locale =Locale.CHINA;//数字国际化

NumberFormat numberInstance =NumberFormat.getNumberInstance(locale);double num=2000000.15;

String strnum=numberInstance.format(num);

System.out.println(strnum);

结果:2,000,000.15

2.2.2)将字符串格式化成数字

Locale locale =Locale.CHINA;//数字国际化

NumberFormat numberInstance =NumberFormat.getNumberInstance(locale);//double num=2000000.15;

String strnum = "2,000,000.15";try{

Number result=numberInstance.parse(strnum);

System.out.println(result.doubleValue());

}catch(ParseException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

结果:2000000.15

2.3 日期国际化有两种方法可以做

2.3.1)使用DateFormat,产生的格式是固定的,有DateFormat.FULL, DateFormat.LONG, DateFormat.MEDIUM, DateFormat.SHORT

int dateStyle =DateFormat.MEDIUM;int timeStyle =DateFormat.FULL;

Locale aLocale=Locale.CHINA;

DateFormat dateTimeInstance=DateFormat.getDateTimeInstance(dateStyle , timeStyle , aLocale );

String result= dateTimeInstance.format(newDate());

System.out.println(result);

结果:2017-4-11 上午08时51分28秒 CST

2.3.2)使用SimpleDateFormat 进行格式化,可以产生指定格式的形式,比较有自主性

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

System.out.println(simpleDateFormat.format(new Date()));

结果:2017-04-11 08:55:20

其中可以使用的格式如下:

LetterDate or Time ComponentPresentationExamples

G

Era designator

AD

y

Year

1996; 96

Y

Week year

2009; 09

M

Month in year (context sensitive)

July; Jul; 07

L

Month in year (standalone form)

July; Jul; 07

w

Week in year

27

W

Week in month

2

D

Day in year

189

d

Day in month

10

F

Day of week in month

2

E

Day name in week

Tuesday; Tue

u

Day number of week (1 = Monday, ..., 7 = Sunday)

1

a

Am/pm marker

PM

H

Hour in day (0-23)

0

k

Hour in day (1-24)

24

K

Hour in am/pm (0-11)

0

h

Hour in am/pm (1-12)

12

m

Minute in hour

30

s

Second in minute

55

S

Millisecond

978

z

Time zone

Pacific Standard Time; PST; GMT-08:00

X

Time zone

-08; -0800; -08:00

3 国际化标签

引入国际化标签:

主要的5个标签

//设置本地化对象,为浏览器请求的locale

//设置工具类

//获取工具类中的数据,key 就是 properties 文件中的key

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值