国际化开发常用知识点

目录

概述

语言和国家/地区代表

货币代码(ISO 4217)

工具类

消息中文本的格式

时间和时区

参考


概述

开发一个支持多国语言的Web应用系统,需要考虑国际化(Internationalization,简称i18n)问题。

语言和国家/地区代表

"国际化信息"也称为"本地化信息"。本地化信息包含"语言类型"和"国家/地区类型"。

国家代码(ISO 3166-1

国际标准化组织的ISO 3166-1国际标准是ISO 3166的第一部分,有ISO标准国家代码。

Alpha-2 代码– 代表国家/地区名称的双字母代码,建议用作通用代码

Alpha-3 代码– 代表国家/地区名称的三个字母的代码,通常与国家/地区名称更密切相关

https://zh.wikipedia.org/wiki/ISO_3166-1

示例

国家/地区代码

代码

中国大陆

CN

中国台湾

TW

中国香港

HK

美国

US

印尼

ID

语言代码(ISO 639

ISO 639 是为语言分类的设计的一套标准代码。每种语言都被分配了两个字母(639-1)或三个字母(639-2 和 639-3)的小写代码。

https://zh.wikipedia.org/zh-cn/ISO_639-1%E4%BB%A3%E7%A0%81%E5%88%97%E8%A1%A8

示例

语言

代码

中文

zh

英语

en

日语

ja

韩国

ko

印尼

id

Locale

java.util.Locale表示语言和国家/地区信息的本地化类,它是创建国际化应用的基础。

  • 语言代码通常是 ISO 639 标准的两个字母缩写,如 "en" 代表英语。
  • 国家代码通常是 ISO 3166 标准的两个字母缩写,如 "US" 代表美国。

Python
Locale locale = new Locale("zh", "CN");
Locale locale1 = new Locale("zh");
Locale china = Locale.CHINA;
Locale chinese = Locale.CHINESE;
//
获取本地系统默认的本地化对象
Locale defaultLocale = Locale.getDefault();

改变系统默认的本地化设置:

Java
java -Duser.language=en -Duser.region=US
或者
Locale.setDefault(new Locale("en", "US"));

货币代码(ISO 4217

ISO 4217是国际标准化组织(ISO)发布的一项标准,它定义了用于表示货币的字母代码和数字代码,并提供了有关各个货币与其小单位之间关系的信息。

小单位分数

有时需要用货币的小单位来表示价值。当这种情况发生时,有必要知道有关货币与其小单位之间存在的十进制关系。

国家

货币代码

小单位分数d

货币符号

中国

CNY

2

¥

日本

JPY

0

¥

印尼

IDR

2

Rp

更多国家情况

https://www.six-group.com/dam/download/financial-information/data-center/iso-currrency/lists/list-one.xml


code:

Java
Locale locale = new Locale("id", "ID");
NumberFormat currencyInstance = NumberFormat.getCurrencyInstance(locale);
Currency currency = currencyInstance.getCurrency();
System.out.println(currency.getDisplayName());    //
印度尼西亚盾
System.out.println(currency.getSymbol());         // IDR
System.out.println(currency.getDefaultFractionDigits()); // 2

locale = new Locale("ja", "JP");
currencyInstance = NumberFormat.getCurrencyInstance(locale);
currency = currencyInstance.getCurrency();
System.out.println(currency.getDisplayName());    // 日元
System.out.println(currency.getSymbol());         // JPY
System.out.println(currency.getDefaultFractionDigits()); // 0

Joda-Money 是一个用于处理货币和金额的开源Java库。

maven依赖

Java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值