• 国际化(i18n)学习


    一 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的、符合来访者阅读习惯的页面或数据。
      国际化(internationalization)又称为 i18n(读法为i 18 n,据说是因为internationalization(国际化)这个单词从i到n之间有18个英文字母,i18n的名字由此而来)
     1、对于程序中固定使用的文本元素,例如菜单栏、导航条等中使用的文本元素、或错误提示信息,状态信息等,需要根据来访者的地区和国家,选择不同语言的文本为之服务。
      2、对于程序动态产生的数据,例如(日期,货币等),软件应能根据当前所在的国家或地区的文化习惯进行显示。

    资源文件的内容通常采用"关键字=值"的形式,软件根据关键字检索值显示在页面上。一个资源包中的所有资源文件的关键字必须相同,值则为相应国家的文字。
    并且资源文件中采用的是properties格式文件,所以文件中的所有字符都必须是ASCII字码,属性(properties)文件是不能保存中文的,对于像中文这样的非ACSII字符,须先进行编码。
     java提供了一个native2ascII工具用于将中文字符进行编码处理,native2ascII的用法如下所示:

    二 编程实现固定文本的国际化

    package i18n;
    
    import java.util.Locale;
    import java.util.ResourceBundle;
    /**
     * 
    * @ClassName: ForI18N 
    * @Description: TODO(这里用一句话描述这个类的作用) 
    * @author penny
    * @date 2017年11月21日 下午10:46:58 
    *
     */
    public class ForI18N {
    	public static void main(String[] args) {
    		Locale cn = Locale.CHINESE;
    		Locale en = Locale.US;
    		
    		ResourceBundle enrb=ResourceBundle.getBundle("i18n.my", en);
    		ResourceBundle cnrb=ResourceBundle.getBundle("i18n.my",cn);
    		
    		System.out.println(cnrb.getString("user"));
    		System.out.println(enrb.getString("user"));
    	}
    }
    
    





  • 相关阅读:
    Codeforces Round #657 (Div. 2) 题解
    洛谷 P2765 魔术球问题 (最小路径覆盖 or 贪心)
    洛谷 P2472 蜥蜴 (最大流)
    Codeforces Round #665 (Div. 2) 题解
    洛谷 P1231 教辅的组成 (三分图匹配,裂点)
    USACO5.4 奶牛的电信Telecowmunication (最小割,割边转割点)
    有关网络流的一些板子题
    洛谷 p2756 飞行员配对方案问题(最大流,二分图匹配)
    JSON.toJSONString中序列化空字符串遇到的坑
    关于mysql自动备份的小方法
  • 原文地址:https://www.cnblogs.com/humi/p/7872625.html
Copyright © 2020-2023  润新知