42、Java国际化
简介
国际化的英文单词是Internationalization,有时检测I18N,类似于I18N还有L10N,是Location本地化的简写。
Java或计划主要通过如下三个类实现
1、java.util.ResourceBoundle:用于加载国家和语言资源包
2、java.utl.Local:用于封装特定的国家/区域、语言环境
3、java.text.MessageFormat:用于格式化带占位的字符串
资源文件的命名方式
1、baseName_language_country.properties
2、baseName_language.properties
3、baseName.properties
其中baseName是资源文件的基本名称,用户可以随意指定;而language和country是不可以随意变化,必须是java所支持的语言和国家。
获取Java支持的国家和语言
通过Locale的getAvailableLocales可以获取所有Java支持的国家和语言
Locale[] localeArr=Locale.getAvailableLocales();
for (Locale locale : localeArr) { System.out.println(locale.getCountry()
+" "+locale.getDisplayCountry()
+" "+locale.getLanguage()
+" "+locale.getDisplayLanguage()
+" "+locale.getDisplayName()
);
}
编写properties文件
第一个文件:message_en_US.properties.该文件内容为:
hello=WelCome You!
第二个文件:message.properties
hello=你好!
【注意】对于properties文件,该文件只能存储西欧字符,其它非西欧字符需要已Unicode编码方式保存。在java中提过了一个native2ascii工具来处理。该工具位于JDK/bin下。使用如下
native2ascii 资源源文件 目的资源文件

打开message_zh_CN.properties文件内容如下:

获取properties中的值
package action; import java.util.Locale;
import java.util.ResourceBundle; public class Test2 { @org.junit.Test
public void test(){
ResourceBundle bundle=ResourceBundle.getBundle("message", Locale.getDefault());
String hello=bundle.getString("hello");
}
}
MessageFormat处理占位符的字符串
如果properties文件中字符串需要外界传入参数,则需要使用到占位符,不如某个消息为:
欢迎【caoyc】用户登录,当前时间:2016-06-15 16:03
上面的caoyc和时间都需要外界传入参数,所以在properties中需要这样设计
msg=欢迎【{0}】用户登录,当前时间:{1}
Java代码:
package action; import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle; public class Test2 { @org.junit.Test
public void test(){
ResourceBundle bundle=ResourceBundle.getBundle("message", Locale.getDefault());
String msg=bundle.getString("msg");
MessageFormat.format(msg, "caoyc",new Date());
}
}
通过MessageFormat.format方式对msg进行传值,该方法包含一个可变参数
42、Java国际化的更多相关文章
- Java国际化(i18n)
Java国际化(i18n) 最近在做一个网站国际化的功能.用Java做开发,使用spring+velocity. Java提供了对i18n的支持,spring对其做了集成,可以很方便的配置.主要思想就 ...
- Java 国际化 语言切换
Java国际化 我们使用java.lang.Locale来构造Java国际化的情境. java.lang.Locale代表特定的地理.政治和文化.需要Locale来执行其任务的操作叫语言环境敏感的 ...
- java——国际化详解
深入理解Java国际化 假设我们正在开发一个支持多国语言的Web应用程序,要求系统能够根据客户端的系统的语言类型返回对应的界面:英文的操作系统返回英文界面,而中文的操作系统则返回中文界面--这便是典型 ...
- Java国际化号码验证方法,国内手机号正则表达式
Java国际化号码验证方法,国内手机号正则表达式 中国电信号段 133.149.153.173.177.180.181.189.199 中国联通号段 130.131.132.145.155.156.1 ...
- Java 国际化
国际化英文单词为:Internationalization,又称I18N,I为因为单词的第一个字母,18为这个单词的长度,而N代表这个单词的最后一个字母.国际化又称本地化(Localization,L ...
- (转)JAVA国际化
转:http://www.cnblogs.com/jjtech/archive/2011/02/14/1954291.html 国际化英文单词为:Internationalization,又称I18N ...
- java国际化
import java.util.Locale; import org.junit.Test; /** * 使用指定的国际化文件 */ public class Demo { @Test public ...
- Java 国际化标准程序实现
国际化程序实现 所谓的国家化应用指的就是根据当前的语言环境读取指定的语言资源文件. 如果要想实现国际化的操作,那么首先要解决的问题就是如何读取资源文件的问题:所谓的资源文件 就是指文件后缀名称为:&q ...
- java国际化之时区问题处理
原文:https://moon-walker.iteye.com/blog/2396035 在国际化的项目中需要处理的日期时间问题主要有两点: 1.日期时间的国际化格式问题处理: 2.日期时间的时区问 ...
随机推荐
- Xamarin XAML语言教程模板视图TemplatedView(二)
Xamarin XAML语言教程模板视图TemplatedView(二) (2)打开MainPage.xaml文件,编写代码,将构建的控件模板应用于中TemplatedView.代码如下: <? ...
- 【POJ 2409】Let it Bead
http://poj.org/problem?id=2409 Burnside引理:设\(G\)是\(X\)的置换群,而\(\mathcal{C}\)是\(X\)中一个满足下面条件的着色集合:对于\( ...
- CSS 笔记——选择器
1. 选择器 (1)类型选择器(标签选择器) 基本语法 E { sRules } 使用说明 类型选择器.以文档对象(Element)类型作为选择器. 选择面较大,适合做某种标签元素外观的常规设置. 代 ...
- 【状压dp】送餐员
[odevs2800]送餐员 题目描述 Description 有一个送外卖的,他手上有n份订单,他要把n份东西,分别送达n个不同的客户的手上.n个不同的客户分别在1~n个编号的城市中.送外卖的从0号 ...
- 【构造】AtCoder Regular Contest 079 D - Decrease (Contestant ver.)
从n个t变化到n个t-1,恰好要n步,并且其中每一步的max值都>=t,所以把50个49当成最终局面,从这里开始,根据输入的K计算初始局面即可. #include<cstdio> # ...
- java面试笔试总结(一)--亲生经历的面试题
说明:本文只是自己的一些心得体会,答案也是自己写的,正确与否,还需考证 java笔试题 1java笔试题1 启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程2打印6,7 ...
- Team Queue(POJ 2259)
题意:有若干个团体,每个团体有若干个元素,他们按次序来排队,如果队列中已经有同一团体的元素在,则可以插队到它后面,模拟这个过程 思路:用map存下元素与团体的关系,并开2个队列,一个存整体队伍的排列( ...
- 百度首席科学家 Andrew Ng谈深度学习的挑战和未来(转载)
转载:http://www.csdn.net/article/2014-07-10/2820600 人工智能被认为是下一个互联网大事件,当下,谷歌.微软.百度等知名的高科技公司争相投入资源,占领深度学 ...
- 使 PHP 写的网站看上去像 asp 页面
# 使 PHP 代码看上去像 asp 页面 更改Apache 的httpd.conf中AddType application/x-httpd-php .php .phtml改为 AddType app ...
- 谷歌地图聚合点使用(GoogleMaps MarkerCluster)
我们有时候需要观察地图 不同地方数据的所在范围和分布密集情况,热力图和聚合点的使用无疑是最好的选择. 1.首先说说百度地图,只做国内的地图可以使用百度地图的海量点和热力图还是蛮好用的. a.海量点的最 ...