ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

浅析Java中的国际化

2022-05-02 04:31:06  阅读:166  来源: 互联网

标签:国际化 Java 语言 Locale ResourceBundle 格式化 浅析 String


Internationalization 软件国际化,通俗的讲就是企业开发的软件可以在多个不同的语言环境下方便使用,通常也被简称为i18n,因为Internationalization 中间有18个单词,通理的还有K8S之类的简称。
Java中对于软件国际化的支持主要是通过Locale类来实现的。Locale类有一个很重要的构造器:
Locale(String language, String country)
从参数可以看出,构造一个代表特定语言环境的Locale需要传入语言和国家编码,前者的定义来自于IANA的定义,具体查找某个国家的语言可以在 IANA SUBTAG LANGUAGE 中查找,Type: language 是语言编码,Type: region 是国家编码。Java中默认给我们提供了很多示例:
如:
TAIWAN 中国台湾地区 CHINA 中国大陆地区 US 美国地区

如何为应用设置默认使用的语言环境呢?Java给我们提供了一个API,即
Locale.setDefault(Locale newLoce)
有了代表某个地区的Locale类,那么它如何和我们日常开发的软件结合起来使用呢?这里就引申出了另外一个类 ResourceBundle,ResourceBundle可以和一个Locale相关联,用来表示特定地区的资源。
使用方式如下:baseName代表的是Resource Bundle的基础名称,如图中的 exception。

ResourceBundle bundle = ResourceBundle.getBundle("exception");
在项目开发中通常会将这种信息资源定义为一个properties文件,实际上就是通过简单的key=value对实现键值对映射。
除了上面的两个类之外,通常还一起搭配使用的还有MessageFormat类,它是用来做信息格式化的。它也会关联一个Locale对象,通过在待格式化的字符串中留下{0}、{1}等占位符,然后通过
format(String value, Object...arguments) 进行格式化即可。

标签:国际化,Java,语言,Locale,ResourceBundle,格式化,浅析,String
来源: https://www.cnblogs.com/lee199/p/16214964.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有