Java:国际化
2017-01-03 22:15
393 查看
Java的国际化:
资源文件的命名可以有如下三种形式:
baseName _ language _country.properties
baseName _language.properties
baseName.properties
其中baseName是资源文件的基本名,用户可以自由定义。而language和country都不可随意变化,必须是Java所支持的语言和国家。
Java代码:
资源文件【放在src下】
lan.properties
lan_zh_CN.properties
自由
你好,杰克,我是安迪
lan_ja_JP.properties
じゆう
よろしくお願いします,{0},私は{1}です
lan_en_US.properties
运行结果:
资源文件的命名可以有如下三种形式:
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:自由
相关文章推荐
- Spring Cloud Config
- java的IO流----将多个拆分的子文件合并为一个目标文件
- 利用 Spring MVC 上传多文件到指定目录 spring upload files
- JAVA中this用法小结
- java 学习阶段
- Spring MVC 的请求追踪及原理推导
- 深入理解Java虚拟机1~内存区域与内存溢出
- spring拾遗(三)——用map接收请求参数的问题解决
- JAVA中静态代码块及对象的初始化顺序
- Java开发代码性能优化
- 一些java基础
- java进行异常处理时的注意事项
- spring编程式事务管理的环境搭建及实例
- JavaWeb学习篇之----容器Response详解(有关response setCharacterEncoding和setContentType)详细对比说明
- 【转】JSch - Java实现的SFTP(文件下载详解篇)
- 玩转spring boot——快速开始
- 玩转spring boot——开篇
- 史上最精炼Java基础知识点总结
- springBoot与MyBatis整合示例
- 【Spring】Spring Framework Reference Documentation中文版5