国际化开发常用知识点

ops/2024/9/24 15:30:37/

目录

概述

语言和国家/地区代表

货币代码(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

英语

cn

日语

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


http://www.ppmy.cn/ops/115336.html

相关文章

webView2 隐藏滚动条

参考:wenview2隐藏滚动条 查看该链接内容,得知其主要是通过css修改body的overflow 属性为:hide. 这里贴出原链接的解决方案: private void WebView2_NavigationCompleted(object sender, CoreWebView2NavigationCompletedEventAr…

面经 | ES6

ES6 ES6set vs weakSetmap vs weakMapPromise创建三个状态 ES6 set vs weakSet 都是集合,只不过weakSet里面只能存引用类型的变量。weakSet相对set的好处就是,可以避免内存泄漏。因为weakSet中的成员,如果在外部消失了,会自动消…

MySQL—视图详解

基本介绍 视图概念:视图是一种虚拟存在的数据表,这个虚拟的表并不在数据库中实际存在。 本质:将一条 SELECT 查询语句的结果封装到了一个虚拟表中,所以在创建视图的时候,工作重心要放在这条 SELECT 查询语句上。 作…

企业如何做可视化数据看板

在当今快速发展的商业环境中,数据无疑是企业决策的重要依据。而数据的有效展示,尤其是通过可视化数据看板,将直接影响企业的业务表现和决策效率。数聚股份将从多年的从业经验来告知企业如何构建高效的可视化数据看板,为决策提供有…

Spring Security 详解:保护Java应用的强大盾牌

在Java企业级开发中,安全性始终是一个至关重要的考虑因素。Spring Security作为Spring框架的一个重要子项目,提供了一个功能强大、可高度定制的身份验证和访问控制框架,帮助开发者轻松实现应用程序的安全性管理。本文将详细介绍Spring Securi…

iPhone 16 开始支持全新的 JPEG XL 格式

iPhone对互联网世界的再定义一直让人惊叹。特立独行的mov视频格式,m4a音频格式都处处透着自己的野望。 现在,新的iPhone 16 加入了对下一代图像编码标准 JPEG XL 的支持。这又多了一个换机的理由。 注意:JPEG XL 于 2022 年标准化&#xff…

C语言编译四大阶段

目录 一、引言 二、预处理阶段 三、编译阶段 四、汇编阶段 五、链接阶段 六、总结 本文将详细介绍C语言编译的四个阶段,包括预处理、编译、汇编和链接。通过学习这些阶段,读者可以更好地理解C语言程序的编译过程,提高编程效率。 一、引…

Centos7.9在K8s安装生产级别的分布式存储Rook+Ceph

1.介绍 在k8s云原生平台中,存储是除了网络之外的另一个核心,因为他涉及到了数据的保存,以及容灾等一系列的问题,做生产级别的应用,一定要具有多节点分布式,灾备及时恢复,数据平滑迁移等多种特性…