java使用指定的国际化文件

java代码:

import java.util.Locale;

import org.junit.Test;

/**
 * 使用指定的国际化文件
 */
public class Demo {

    @Test
    public void testName1() throws Exception {

        // 指定国际化为中国中文
        Locale locale = new Locale("zh", "CN");

        /*
         * getBundle的第一个参数(baseName):
         *         |- 默认路径为classpath路径。
         *         |- 如果传参'myres',就会去找src的下以myres开头的properties文件; 如:src/myres(*).properties
         *         |- 如果传参'demos/java/util/locale/myres',则去找src下路径为'demos/java/util/locale'的文件夹下的myres(*).properties文件。
         * 
         * getBundle的第二个参数(locale):
         *         |- 指定了使用哪种国际化语言。
         *             |- 如果指定了使用国际化语言new Locale("zh", "CN");,则去找myres_zh_CN.properties文件
         *             |- 如果指定了使用国际化语言new Locale("en", "US");,则去找myres_en_US.properties文件
         *             |- 如果上面两个文件找不到,则去找myres.properties文件(默认使用)。
         */
        java.util.ResourceBundle resourceBundle = java.util.ResourceBundle.getBundle("demos/java/util/locale/myres",
                locale);

        System.out.println(resourceBundle.getString("aaa"));
        System.out.println(resourceBundle.getString("bbb"));
        /*
         * 打印结果
         * ----------
         * 很好 
         * 谢谢
         */
    }

    @Test
    public void testName2() throws Exception {

        Locale locale = new Locale("en", "US");

        java.util.ResourceBundle resourceBundle = java.util.ResourceBundle.getBundle("demos/java/util/locale/myres",
                locale);

        System.out.println(resourceBundle.getString("aaa"));
        System.out.println(resourceBundle.getString("bbb"));
        /*
         * 打印结果
         * -------------
         * good 
         * thanks
         */
    }
}

国际化文件路径(src/demos/java/util/locale):

myres.properties

aaa=good 
bbb=thanks

myres_en_US.properties

aaa=good 
bbb=thanks

myres_zh_CN.properties

aaa=\u5F88\u597D 
bbb=\u8C22\u8C22

 

posted @ 2018-01-09 17:35  迷失之路  阅读(374)  评论(0编辑  收藏  举报