Java的国际化:

资源文件的命名可以有如下三种形式:
baseName _ language _country.properties
baseName _language.properties
baseName.properties
其中baseName是资源文件的基本名,用户可以自由定义。而language和country都不可随意变化,必须是Java所支持的语言和国家。

Java代码:

package org.ah.action;

import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle; public class Test {
public static void main(String[] args) {
// 通过共名访问资源文件,系统会自动匹配当前语言(例如:zh CN)
ResourceBundle rb = ResourceBundle.getBundle("lan");
// 取值
String str1 = rb.getString("msg1");
System.out.println(str1);
// 取值传参,使用MessageFormat.format设置参数数组
String str2 = MessageFormat.format(rb.getString("msg2"), new String[] {
"杰克", "安迪" });
System.out.println(str2); // 强改国籍
Locale locale2 = new Locale("ja", "JP");
printMsg1(locale2); Locale locale3 = new Locale("en", "US");
printMsg1(locale3); // 强改到不存在的国家资源文件,显示当前国家语言
Locale locale4 = new Locale("ko", "KA");
printMsg1(locale4);
// 如果当前国家语言不存在,使用无后缀的资源文件(lan.properties),可以把zh_CN删了再试试
} private static void printMsg1(Locale locale) {
ResourceBundle rb = ResourceBundle.getBundle("lan", locale);
String str = rb.getString("msg1");
System.out.println(locale.toString() + ":" + str);
}
}

资源文件【放在src下】

lan.properties

msg1=freedom
msg2=hello,{0},I'm{1}

lan_zh_CN.properties

自由
你好,杰克,我是安迪

msg1=\u81EA\u7531
msg2=\u4F60\u597D\uFF0C{0},\u6211\u662F{1}

lan_ja_JP.properties

じゆう

よろしくお願いします,{0},私は{1}です

msg1=\u3058\u3086\u3046
msg2=\u304A\u306F\u3088\u3046\u3054\u3056\u3044\u307E\u3059,{0},\u79C1\u306F{1}\u3067\u3059

lan_en_US.properties

msg1=color
msg2=hello,{0},I'm{1}

运行结果:

自由
你好,杰克,我是安迪
ja_JP:じゆう
en_US:color
ko_KA:自由

  

Java:国际化的更多相关文章

  1. Java国际化(i18n)

    Java国际化(i18n) 最近在做一个网站国际化的功能.用Java做开发,使用spring+velocity. Java提供了对i18n的支持,spring对其做了集成,可以很方便的配置.主要思想就 ...

  2. Java 国际化 语言切换

      Java国际化 我们使用java.lang.Locale来构造Java国际化的情境. java.lang.Locale代表特定的地理.政治和文化.需要Locale来执行其任务的操作叫语言环境敏感的 ...

  3. java——国际化详解

    深入理解Java国际化 假设我们正在开发一个支持多国语言的Web应用程序,要求系统能够根据客户端的系统的语言类型返回对应的界面:英文的操作系统返回英文界面,而中文的操作系统则返回中文界面--这便是典型 ...

  4. Java国际化号码验证方法,国内手机号正则表达式

    Java国际化号码验证方法,国内手机号正则表达式 中国电信号段 133.149.153.173.177.180.181.189.199 中国联通号段 130.131.132.145.155.156.1 ...

  5. Java 国际化

    国际化英文单词为:Internationalization,又称I18N,I为因为单词的第一个字母,18为这个单词的长度,而N代表这个单词的最后一个字母.国际化又称本地化(Localization,L ...

  6. (转)JAVA国际化

    转:http://www.cnblogs.com/jjtech/archive/2011/02/14/1954291.html 国际化英文单词为:Internationalization,又称I18N ...

  7. java国际化

    import java.util.Locale; import org.junit.Test; /** * 使用指定的国际化文件 */ public class Demo { @Test public ...

  8. 42、Java国际化

    简介 国际化的英文单词是Internationalization,有时检测I18N,类似于I18N还有L10N,是Location本地化的简写. Java或计划主要通过如下三个类实现 1.java.u ...

  9. Java 国际化标准程序实现

    国际化程序实现 所谓的国家化应用指的就是根据当前的语言环境读取指定的语言资源文件. 如果要想实现国际化的操作,那么首先要解决的问题就是如何读取资源文件的问题:所谓的资源文件 就是指文件后缀名称为:&q ...

  10. java国际化之时区问题处理

    原文:https://moon-walker.iteye.com/blog/2396035 在国际化的项目中需要处理的日期时间问题主要有两点: 1.日期时间的国际化格式问题处理: 2.日期时间的时区问 ...

随机推荐

  1. Android添加快捷方式

    private void addShortcutToDesktop() { Intent shortcut = new Intent("com.android.launcher.action ...

  2. 通过全局getApp获取全局实例获取数据

    学习是每一个人都要面对的铁一般的事实,不进则退.学习同样讲究途径和方法,面对知识这个巨人,我们永远不会有成年的那一刻,但我们可以让自己毕生尽可能地吸取更多有价值的信息,好让自己人生充满各种“意义”存在 ...

  3. android 7.0变化

    一.加强版的低电耗模式 条件:1未插电源:2屏幕关闭:(N与6.0的区别就在于N在手机非静止时也可进入低电耗模式) 作用过程及方式:1充电状态:2屏幕关闭一定时间:进入一级低电限制:关闭网络,推迟CP ...

  4. HTML5视频Video 音频Audio

    视频协议 视频格式 Flash HTML5 HTTP flv HTTP f4v HTTP mp4 HTTP m3u8 HTTP webm HTTP ogg RTMP flv RTMP f4v RTMP ...

  5. Hadoop安装及配置

    一.系统及软件环境 1.操作系统 CentOS release 6.5 (Final) 内核版本:2.6.32-431.el6.x86_64 master.fansik.com:192.168.83. ...

  6. js代码实现下拉菜单

    效果 js代码: <script type="text/javascript"> function ShowSub(li) {//函数定义 var subMenu = ...

  7. java return

    return语句的作用: 1.返回一个值,可以是任意类型的 2.使程序返回到操作系统,或者说是代表"已经做完,离开此方法" ---------------------------- ...

  8. js/css在html文档中的引用外部文件方式对比

    包含css样式表和js脚本的最好方式是使用外部文件,因为css/js和html标记文档可以清晰地分离. css的外部引用写在<head></head>中: <head&g ...

  9. Struts2 之 对xwork的理解

    对象的生命周期的管理是面向对象编程亘古不变的话题,从syntax的角度,面向对象的高级编程语言都是以“对象”为核心,而对象之间的继承关系.嵌套引用关系构成的对象树结构为我们进行对象级别的逻辑操作提供了 ...

  10. js 循环切换图片

    function changeLot(){ var minIndex = 1; var maxIndex = 100; var curIndex = 10; var src = $("ul ...