Java国际化程序
根据不同的国家配置不同的资源文件(资源文件有时也称为属性文件,后缀为.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国际化程序的更多相关文章
- Java学习之国际化程序
国际化程序就是把程序的语言根据用户使用的语言显示,各个国家的用户都可以看懂 实现方法就是把输出文字都写在配置文件里,然后根据用户系统语言选择不同的语言输出 package com.gh; import ...
- 菜鸡的Java笔记 国际化程序实现原理
国际化程序实现原理 Lnternationalization 1. Locale 类的使用 2.国家化程序的实现,资源读取 所谓的国际化的程序 ...
- [刘阳Java]_Java程序员的成长路线_第3讲
按照Java从业人员的职位晋升来说,Java程序成长路线大致如下 Java程序员 JavaEE初级软件工程师 JavaEE中级软件工程师 JavaEE高级软件工程师 Java架构师 按照职业发展方向, ...
- Java 国际化 语言切换
Java国际化 我们使用java.lang.Locale来构造Java国际化的情境. java.lang.Locale代表特定的地理.政治和文化.需要Locale来执行其任务的操作叫语言环境敏感的 ...
- java——国际化详解
深入理解Java国际化 假设我们正在开发一个支持多国语言的Web应用程序,要求系统能够根据客户端的系统的语言类型返回对应的界面:英文的操作系统返回英文界面,而中文的操作系统则返回中文界面--这便是典型 ...
- Java 国际化
国际化英文单词为:Internationalization,又称I18N,I为因为单词的第一个字母,18为这个单词的长度,而N代表这个单词的最后一个字母.国际化又称本地化(Localization,L ...
- 制作Java安装程序
这个工具利用 ANT 来制作在 Windows, MacOS X, Unix 平台上可执行的文件,比如 exe,zip,jar.ROXES ANT Tasks 基于 GPL 发布. http://ww ...
- Java 国际化标准程序实现
国际化程序实现 所谓的国家化应用指的就是根据当前的语言环境读取指定的语言资源文件. 如果要想实现国际化的操作,那么首先要解决的问题就是如何读取资源文件的问题:所谓的资源文件 就是指文件后缀名称为:&q ...
- (转)JAVA国际化
转:http://www.cnblogs.com/jjtech/archive/2011/02/14/1954291.html 国际化英文单词为:Internationalization,又称I18N ...
随机推荐
- 【HDU 1007】Quoit Design
http://acm.hdu.edu.cn/showproblem.php?pid=1007 最近欧式距离模板题. 用分治大法(分治的函数名用cdq纯属个人习惯_(:з」∠)_) 一开始狂M. 后来判 ...
- Jetty应用服务器的安装详解
Jetty是一个开源的Servlet容器和应用服务器,它极度轻量级.高便携性.功能强大.灵活和扩展性好,而且支持各种技术如SPDY.WebSocket.OSGi.JMX.JNDI和JAAS.Jetty ...
- 微信扫码支付 php
仔细看了一遍官方的那幅流程图,我来简化理解一下(注意:我这里针对的是扫码支付模式一,模式二没什么说的)网站后台生成二维码,当然是跟据前台传来的参数有条件的生成买家扫描二维码,扫描过程中,微信后台系统回 ...
- js闭包详解
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 闭包的特性 闭包有三个特性: 1.函数嵌套函数 2.函数内部可以引用外部的参数和变量 3.参数 ...
- wordpress模板各文件函数解析
修改主题时发现好多WordPress主题函数都不了解,因此网上摘抄了一份放在自己博客上,便于以后好找. 在WordPress中如何按你的意愿显示页面,关键看你是否了解WordPress主题模板页面.这 ...
- TreeMap按照value进行排序
TreeMap底层是根据红黑树的数据结构构建的,默认是根据key的自然排序来组织(比如integer的大小,String的字典排序).所以,TreeMap只能根据key来排序,是不能根据value来排 ...
- 【HDU 2063】过山车(二分图匹配)
n个女生,m个男生.如果女生i愿意让男生j作为parner,那就建边i->j+n,和j+n->i.然后用匈牙利算法算出最大匹配. 要注意N和M都要开2倍. #include <cst ...
- iOS 蓝牙开发(四)BabyBluetooth蓝牙库介绍(转)
转载自:http://www.cocoachina.com/ios/20151106/14072.html 原文作者:刘彦玮 BabyBluetooth 是一个最简单易用的蓝牙库,基于CoreBlue ...
- Python 编辑器 tips
1. IDLE界面美化 注意IDLE是可以设置语法高亮的:(美化参考 http://www.linuxidc.com/Linux/2012-07/66129.htm) windows 用户,直接打开 ...
- POJ 2457 Part Acquisition
第一反应是BFS,比较直观,但是输出路径写的不是很熟练,此外,习惯不好,“==”写成了“=”,所以常量一定放前面! #include <cstdio> #include <queue ...