• java中的国际化


        最近单位里的一个项目使用了国际化,这玩意儿以前实习的时候搞过,后来时间久了就慢慢淡忘了,现在赶紧翻起资料重新理解下。

        关于国际化的思路大致是这样子的,你把要根据不同语言环境显示为不同语言的信息用一个叫资源文件的存储起来,为了方便查找,采用了属性文件的Key-Value进行存放,然后程序根据语言环境到响应的资源文件中查找对应的信息,进行显示。

        这就涉及到以下两个类:

    • java.util.Locale
    • java.util.ResourceBundle

        不多说,上代码:

        public class I18NTest {
        public static void main(String[] args) {
            Locale locale = Locale.getDefault();
            System.out.println(locale.getDisplayCountry() + "->"
                    + locale.getCountry());
            String basename = "cn/abc/i18n/message";
            ResourceBundle resourceBundle = ResourceBundle.getBundle(basename,
                    locale);
            System.out.println(resourceBundle.getString("hello"));
            System.out.println(MessageFormat.format(
                    resourceBundle.getString("greet"), "孟子", new Date()));
        }
    }

    资源文件为:message_en_US.properties和message_zh_CN.properties

    message_en_US.properties的内容很简单;

        hello=Hello

    message_zh_CN.properties的内容则采用了JDK自带的native2ascii将中文转化ascii编码:

         hello=u60a8u597d
        greet={0},u60a8u597duff01u73b0u5728u662f{1}.

  • 相关阅读:
    Network(树形dp)洛谷2899
    2590 树的统计
    LCT 最小生成树
    几种贪心小结
    snmp
    div页面跳转
    2017.11.2总结,回顾及成果
    2017.11.1知识总结及回顾
    check,form,单选框与复选框总结
    HTML空格字符
  • 原文地址:https://www.cnblogs.com/306b/p/3383226.html
Copyright © 2020-2023  润新知