Struts 1 学习笔记-5-1(Struts中I18N的简单测试)

来源:互联网 发布:手机淘宝店铺流量 编辑:程序博客网 时间:2024/05/21 18:30

Struts的I18N需要理解以下几个问题:

1.理解Locale对象是由语言和国家组成的
2.理解basename的概念
3.资源属性文件名的命名规则?什么是缺省的资源属性文件?缺省的资源属性文件有什么作用?
4.如何创建支持中文的资源属性文件?(通过native2ascii工具),如何使用native2ascii:
      *native2ascii工具的位置:JAVA_HOME/bin/
      具体使用方法:native2ascii 输入文件 输出文件  例:native2ascii a.properties b.properties

一.本人编写的I18N简单测试程序,I18NSample.java:

package com.codedestiny.i18n;

import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;

public class I18NSample {

    
public static void main(String[] args) {
        
        
//取得缺省的Locale
        Locale defaultLocale = Locale.getDefault();
        
        System.out.println(
"language=" + defaultLocale.getLanguage());
        System.out.println(
"country=" + defaultLocale.getCountry());
        
        
//通过语言和国家代码创建,语言代码是小写字母,国家代码是大写字母
        Locale currentLocale = new Locale("zh""CN");
        
        
//一个ResourceBundle是由basename和locale组成,资源文件是由basename的名称决定的
        
//如果将资源文件放到其它的包中采用包的完整路径+basename,来定位ResourceBundle
        ResourceBundle rb = ResourceBundle.getBundle("MessagesBundle", currentLocale);
        
        
//        System.out.println(rb.getString("v1"));
//        System.out.println(rb.getString("v2"));
        
        
//消息文本的格式化处理
        MessageFormat mf = new MessageFormat(rb.getString("v1"));
        System.out.println(mf.format(
new Object[]{"Mike"}));
    }

}

 

二.MessageBundle.properties(注意名字要与ResourceBundle.getBundle( )方法中的参数名一致):

v1=Hello,{0}
v2=Good Bye

三.MessageBundle_zh_CN.properties(汉字需要转换成ISO-8859-1格式):

v1=/u4f60/u597d/uff0c{0}
v2=/u518d/u89c1

四.包图:


五.测试效果截图:


 

原创粉丝点击