<JAVA学习笔记一>——程序的国际化
2016-05-18 08:29
851 查看
程序国际化:
今天所讲的主题是,程序的国际化。即同一套程序代码可以在各个语言环境下使用。
所使用到的几个类:
Locale
ResourceBundle
MessageFormat
下面将一一讲解:
Locale:
Locale:Locale对象将根据不同地区显示不同的语言
构造方法:
Locale(String language);
Locale(String language,String country);
通过静态方法创建Locale,需在静态方法中调用;
Locale.getDefault()方法获取本地国家代码;
示例代码:
ResourceBundle:
此类表示对一个资源文件的读取操作,读取时不需要加文件的额后缀名。并且对每一个国家的语言都要新建一个属性文件,并以.properties为后缀名。在中文环境下,注意编码的问题。
常用方法:
getBundle(String baseName);
getBundle(String baseName,Locale locale);
getString(String key);
示例代码:
结果显示:
处理动态文本时:
如果想要打印 XXX,欢迎你!进行动态文本的处理,必须使用java.MessageFormat类完成,它是java.text.Format的子类。
结果显示:
到这里哪,就结束了,如果大家有什么建议,一定要多多交流哦!
今天所讲的主题是,程序的国际化。即同一套程序代码可以在各个语言环境下使用。
所使用到的几个类:
Locale
ResourceBundle
MessageFormat
下面将一一讲解:
Locale:
Locale:Locale对象将根据不同地区显示不同的语言
构造方法:
Locale(String language);
Locale(String language,String country);
通过静态方法创建Locale,需在静态方法中调用;
Locale.getDefault()方法获取本地国家代码;
示例代码:
package com.xiaofeng; import java.util.Locale; import java.util.Scanner; public class Local { public static void main(String[] args) { Scanner input = new Scanner(System.in); // 第一种创建方式:Locale.CHINA获取中文语言环境 Locale locale = Locale.CHINA; System.out.println(locale.getCountry()); System.out.println("欢迎使用本产品!"); System.out.println("请输入用户名:"); String username = input.next(); System.out.println("请输入密码:"); String password = input.next(); if("abc".equals(username) && "123".equals(password)){ System.out.println("登陆成功!!!"); } } }
ResourceBundle:
此类表示对一个资源文件的读取操作,读取时不需要加文件的额后缀名。并且对每一个国家的语言都要新建一个属性文件,并以.properties为后缀名。在中文环境下,注意编码的问题。
常用方法:
getBundle(String baseName);
getBundle(String baseName,Locale locale);
getString(String key);
示例代码:
package com.xiaofeng; import java.util.Locale; import java.util.ResourceBundle; import java.util.Scanner; public class Local { public static void main(String[] args) { Scanner input = new Scanner(System.in); // 第一种初始化方式:Locale.CHINA获取中文语言环境 Locale locale = Locale.CHINA; // 第二种创建方式 Locale locale2 = new Locale("en", "US"); // 绑定相应的配置文件:第一个参数:文件的基本名字 第二个参数:Locale对象 ResourceBundle rb = ResourceBundle.getBundle("com.xiaofeng.info",locale2); System.out.println(rb.getString("Welcome")); System.out.println(rb.getString("input.username")); String username = input.next(); System.out.println(rb.getString("input.password")); String password = input.next(); if ("abc".equals(username) && "123".equals(password)) { System.out.println(rb.getString("info")); } } }
结果显示:
处理动态文本时:
如果想要打印 XXX,欢迎你!进行动态文本的处理,必须使用java.MessageFormat类完成,它是java.text.Format的子类。
package com.xiaofeng; import java.text.MessageFormat; import java.util.Locale; import java.util.ResourceBundle; import java.util.Scanner; public class Local { public static void main(String[] args) { Scanner input = new Scanner(System.in); // 第一种初始化方式:Locale.CHINA获取中文语言环境 Locale locale = Locale.CHINA; // 第二种创建方式 Locale locale2 = new Locale("en", "US"); // 绑定相应的配置文件:第一个参数:文件的基本名字 第二个参数:Locale对象 ResourceBundle rb = ResourceBundle.getBundle("com.xiaofeng.info",locale2); System.out.println(rb.getString("Welcome")); System.out.println(rb.getString("input.username")); String username = input.next(); System.out.println(rb.getString("input.password")); String password = input.next(); if ("abc".equals(username) && "123".equals(password)) { // 第一个参数为模式 :就是有占位符那句话当做一个模式 第二个参数:一个可变数组,需动态处理的文本 String info = MessageFormat.format(rb.getString("info"), "abc"); System.out.println(info); } } }
结果显示:
到这里哪,就结束了,如果大家有什么建议,一定要多多交流哦!
相关文章推荐
- JavaWeb(jsp)连接mysql数据库
- 安卓_java环境变量配置error
- eclipse常用开发插件
- jfinal 报异常:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getJspConfigDescriptor
- springmvc配置文件
- IBM开发者社区:用 Eclipse 开发 Android 应用程序
- 如何使用eclipse开发android
- Java Native Interface例程
- 解决java.lang.UnsupportedClassVersionError
- Java中的接口
- 【JAVA】三 【设计模式】一 JAVA 单例 枚举
- 基于Spring可扩展Schema提供自定义配置支持
- SpringMVC Controller 介绍
- Java中的匿名内部类总结
- Spring-android源码初探
- Java中的抽象类
- SSH整合教程(struts2+spring3+hibernate3)(含登陆示例)
- eclipse+android开发环境
- SpringMVC的各种参数绑定方式
- MyEclipse+Mysql (二)