根据不同的国家配置不同的资源文件(资源文件有时也称为属性文件,后缀为.properties),所有的资源文件以键值对的形式出现。

Locale类

ResourceBundle类

//=================================================
// File Name : Locale_demo
//------------------------------------------------------------------------------
// Author : Common import java.util.ResourceBundle;; //主类
//Function : Locale_demo
public class Locale_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
ResourceBundle rb = ResourceBundle.getBundle("Message"); //找到资源文件
System.out.println("内容:"+rb.getString("info")); //从资源文件中取得内容
} }

根据Locale所选择的国家不同,输出不同国家的“你好”。

在属性文件中不能直接写入中文,读出来也是乱码,因此要变成Unicode编码

//=================================================
// File Name : Locale_demo
//------------------------------------------------------------------------------
// Author : Common import java.util.Locale;
import java.util.ResourceBundle; //主类
//Function : Locale_demo
public class Locale_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根 Locale zhLoc = new Locale("zh","CN"); //表示中国地区
Locale enLoc = new Locale("en","US"); //表示美国地区
Locale frLoc = new Locale("fr","FR"); //表示法国地区 ResourceBundle zhrb = ResourceBundle.getBundle("Message", zhLoc); //找到中文的属性文件
ResourceBundle enrb = ResourceBundle.getBundle("Message",enLoc); //找到英文的属性文件
ResourceBundle frrb = ResourceBundle.getBundle("Message",frLoc); //找到法语的属性文件 System.out.println("中文:"+zhrb.getString("info"));
System.out.println("英文:"+enrb.getString("info"));
System.out.println("法语:"+frrb.getString("info"));
} }

使用MessageFormat格式化动态文本

所有资源内容都是个固定的,但是输出的消息中如果包含一些动态文本,则必须使用占位符清楚地表示出动态文本的位置,占位符使用“{编号}”的格式出现。

//=================================================
// File Name : Locale_demo
//------------------------------------------------------------------------------
// Author : Common import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle; //类名:A
//属性:
//方法: //主类
//Function : Locale_demo
public class Locale_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
// ResourceBundle rb = ResourceBundle.getBundle("Message"); //找到资源文件
// System.out.println("内容:"+rb.getString("info")); //从资源文件中取得内容 Locale zhLoc = new Locale("zh","CN"); //表示中国地区
Locale enLoc = new Locale("en","US"); //表示美国地区
Locale frLoc = new Locale("fr","FR"); //表示法国地区 ResourceBundle zhrb = ResourceBundle.getBundle("Message", zhLoc); //找到中文的属性文件
ResourceBundle enrb = ResourceBundle.getBundle("Message",enLoc); //找到英文的属性文件
ResourceBundle frrb = ResourceBundle.getBundle("Message",frLoc); //找到法语的属性文件 System.out.println("中文:"+zhrb.getString("info"));
System.out.println("英文:"+enrb.getString("info"));
System.out.println("法语:"+frrb.getString("info")); //依次读取各个属性文件的内容,通过键值读取,此时的键值名称为“info_1”
String str1 = zhrb.getString("info_1");
String str2 = enrb.getString("info_1");
String str3 = frrb.getString("info_1");
System.out.println("中文:"+MessageFormat.format(str1,"张三"));
System.out.println("英文:"+MessageFormat.format(str2,"zhangsan"));
System.out.println("法语:"+MessageFormat.format(str3,"zhangsan"));
} }

 properties文件,文件名Message_zh_CN.properties

info = \u4F60\u597D
info_1 = \u4F60\u597D\uFF0C{0}\uFF01

Java国际化程序的更多相关文章

  1. Java学习之国际化程序

    国际化程序就是把程序的语言根据用户使用的语言显示,各个国家的用户都可以看懂 实现方法就是把输出文字都写在配置文件里,然后根据用户系统语言选择不同的语言输出 package com.gh; import ...

  2. 菜鸡的Java笔记 国际化程序实现原理

    国际化程序实现原理 Lnternationalization        1. Locale 类的使用        2.国家化程序的实现,资源读取                所谓的国际化的程序 ...

  3. [刘阳Java]_Java程序员的成长路线_第3讲

    按照Java从业人员的职位晋升来说,Java程序成长路线大致如下 Java程序员 JavaEE初级软件工程师 JavaEE中级软件工程师 JavaEE高级软件工程师 Java架构师 按照职业发展方向, ...

  4. Java 国际化 语言切换

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

  5. java——国际化详解

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

  6. Java 国际化

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

  7. 制作Java安装程序

    这个工具利用 ANT 来制作在 Windows, MacOS X, Unix 平台上可执行的文件,比如 exe,zip,jar.ROXES ANT Tasks 基于 GPL 发布. http://ww ...

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

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

  9. (转)JAVA国际化

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

随机推荐

  1. zabbix 监控java程序

    http://www.tuicool.com/articles/IRnM7f http://transcoder.baidu.com/from=1012852q/bd_page_type=1/ssid ...

  2. zoj1492 最大团

    Maximum Clique Time Limit: 10 Seconds      Memory Limit: 32768 KB Given a graph G(V, E), a clique is ...

  3. cygwin-安装断点续传

    本文转载http://blog.chinaunix.net/uid-20178959-id-1731456.html 本文主要介绍正常下载安装(http://www.cnblogs.com/hwagg ...

  4. json2form实例

    <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...

  5. Input path does not exist: file:/.......

    注意看是file不存在并不是hdfs,好奇怪,突然明白应该是路径不对,必须加上hdfs://hostname:port/file. 我为什么饭这样的错误是因为前一阵谢了HDFS的曹组,谢了全局File ...

  6. jquery使用历经

    1.动态绑定 当要绑定事件时忽然没有效果了,这种情况出现在通过给通过js拼出来的button绑定的事件,后来查了资料,可以用live事件委托,或者用on,因为是给button绑定事件所以还可以直接写在 ...

  7. 【poj3264】 Balanced Lineup

    http://poj.org/problem?id=3264 (题目链接) 题意 给出序列,求区间最大值-最小值 Solution 无修改,询问较多,ST表水一发. ST算法(Sparse Table ...

  8. 洛谷P1889 士兵站队

    题目描述 在一个划分成网格的操场上, n个士兵散乱地站在网格点上.由整数 坐标 (x,y) 表示.士兵们可以沿网格边上.下左右移动一步,但在同时刻任一网格点上只能有名士兵.按照军官的命令,们要整齐地列 ...

  9. bzoj1124[POI2008]枪战maf

    这代码快写死我了.....死人最多随便推推结论.死人最少,每个环可以单独考虑,每个环上挂着的每棵树也可以分别考虑.tarjan找出所有环,对环上每个点,求出选它和不选它时以它为根的树的最大独立集(就是 ...

  10. Adding New Functions to MySQL(User-Defined Function Interface UDF、Native Function)

    catalog . How to Add New Functions to MySQL . Features of the User-Defined Function Interface . User ...