目录
概述
开发一个支持多国语言的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 |
改变系统默认的本地化设置:
Java |
货币代码(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 |
Joda-Money 是一个用于处理货币和金额的开源Java库。
maven依赖
Java |