zoukankan      html  css  js  c++  java
  • 【Java学习笔记】本地化

    作者:gnuhpc
    出处:http://www.cnblogs.com/gnuhpc/

    先介绍几个术语:

    • i18n: 就是internationalization, 国际化,由于首字母"i"和末尾字母"n"间有18个字符,所以简称i18n. internationalization指为了使应用程序能适应不同的语言和地区间的变化而不作系统性的变化所采取的设计措施。
    • l10n: 就是localization, 本地化,由于首字母"l"和末尾字母"n"间有10个字母,所以简称l10n. localization指为了使应用软件能够在某一特定语言环境或地区使用而加入本地特殊化部件和翻译后文本的过程。
    • locale: 简单来说是指语言和区域进行特殊组合的一个标志。

    1.文字的本地化

    import java.util.ResourceBundle;
    import java.util.Locale;
    public class I18nDemo1 {
        static public void main(String arg[]) {
            Locale loc;
            ResourceBundle bundle;
            /* File: Demo1_en_US.properties */
            loc = new Locale("en","US");
            bundle = ResourceBundle.getBundle("Demo1 ",loc);
            System.out.println(bundle.getString("greeting"));
            System.out.println(bundle.getString("question"));
            System.out.println(bundle.getString("farewell"));
            System.out.println("--------------------------");
            /* File: Demo1_en_US_TX.properties */
            loc = new Locale("en","US","TX ");
            bundle = ResourceBundle.getBundle("Demo1 ",loc);
            System.out.println(bundle.getString("greeting"));
            System.out.println(bundle.getString("question"));
            System.out.println(bundle.getString("farewell"));
        }
    }

    而本地化配置文件如下:

    Demo1_en_US.properties:

    greeting = Hello.
    farewell = Goodbye.
    question = Are you ready?

    Demo1_en_US_TX.properties:

    greeting = Howdy.
    farewell = S'long.
    question = Is your gun loaded?

    国际化资源文件的命名规范规定资源名称采用以下的方式进行命名:<资源名>_<语言代码>_<国家/地区代码>.properties
    其中,语言代码和国家/地区代码都是可选的。

    2.数字的本地化:

    import java.util.Locale;
    import java.util.Date;
    import java.text.NumberFormat;
    import java.text.DateFormat;
    public class I18nDemo2 {
        static public void main(String arg[]) {
            I18nDemo2 demo = new I18nDemo2();
            demo.showLoc(new Locale("en","US"));
            System.out.println("-----------");
            demo.showLoc(new Locale("fr","FR"));
            System.out.println("-----------");
            demo.showLoc(new Locale("de","DE"));
        }
        public void showLoc(Locale loc) {
            NumberFormat nfmt;
            DateFormat dfmt;
            System.out.println(loc);
            nfmt = NumberFormat.getNumberInstance(loc);
            System.out.println(nfmt.format(123456));
            System.out.println(nfmt.format(123456.78));
            nfmt = NumberFormat.getCurrencyInstance(loc);
            System.out.println(nfmt.format(123456.78));
            nfmt = NumberFormat.getPercentInstance(loc);
            System.out.println(nfmt.format(.78));
            dfmt = DateFormat.getDateInstance(DateFormat.DEFAULT,loc);
            System.out.println(dfmt.format(new Date()));
        }
    }

    3.看看到底支持什么本地化:

    import java.util.Locale;
    import java.text.NumberFormat;
    public class I18nDemo3 {
        static public void main(String arg[]) {
            Locale loc[] = NumberFormat.getAvailableLocales();
            for(int i=0; i<loc.length; i++)
                System.out.println(loc[i]);
        }
    }

    作者:gnuhpc
    出处:http://www.cnblogs.com/gnuhpc/

  • 相关阅读:
    deleteCustomer
    python入门day07——可变不可变类型、数字类型、字符串类型.md
    python入门day06——流程控制之if判断、while循环、for循环
    python入门day05——基本运算符、逻辑运算符
    python入门day04——基本数据类型、输入输出、基本运算符
    python入门day03——变量、内存管理:垃圾回收机制(GC)、常量
    python入门day03——python介绍、运行程序步骤
    python入门day02——计算机硬件、操作系统、编程语言
    python入门day01——01 计算机硬件组成与工作原理
    python入门作业day04 基本数据类型应用
  • 原文地址:https://www.cnblogs.com/gnuhpc/p/2822276.html
Copyright © 2011-2022 走看看