您的位置:首页 > 运维架构 > Shell

shell数组、文件列表处理和后几行删除汇总

2012-06-14 01:05 351 查看
首先来讲java已经对国际化提供了很好的支持了,struts也正是对java的底层进行一些封装、在java的基础上构建起来的。首先看看下面的例子:

1)

package com.test.i18n;

import java.util.Locale;

public class I18NTest1 {
/**
* @author: wh;
* date: 2011-3-15
*/
public static void main(String[] args) {

/**
* Locale类说明:Locale 对象表示了特定的地理、政治和文化地区。
*
* 需要 Locale 来执行其任务的操作称为语言环境敏感的 操作,
*
* 它使用 Locale 为用户量身定制信息。例如,显示一个数值就是语言环境敏感的操作,
*
* 应该根据用户的国家、地区或文化的风俗/传统来格式化该数值。
* */

/**
*
*  Locale这个类提供了静态方法getAvailableLocales(),该方法返回所有已安装语言环境的数组
*
*  getDisplayCountry(),返回适合向用户显示的语言环境国家名。
*
*  getCountry(),返回此语言环境的国家/地区代码,将为空字符串或大写的 ISO 3166 两字母代码。
*
* */

Locale [] locales = Locale.getAvailableLocales();

for(Locale locale: locales){
System.out.println(locale.getDisplayCountry()+"-->"+locale.getCountry());
}
}
}

 
  上面的结果输出了: java国家名称以及国家对应的编码,当然不是所有的国家,只是世界上的一些大的国家,一些很小的国家没有提供支持。

    输出:

日本 : JP
秘鲁 : PE
 :
日本 : JP
巴拿马 : PA
波斯尼亚和黑山共和国 : BA
 :
危地马拉 : GT
阿拉伯联合酋长国 : AE
挪威 : NO
阿尔巴尼亚 : AL
 :
伊拉克 : IQ
也门 : YE
 :
葡萄牙 : PT
塞浦路斯 : CY
卡塔尔 : QA
马其顿王国 : MK

 ……

2)

package com.test.i18n;

import java.util.Locale;

public class I18NTest2 {
/**
* @author: wh;
* date: 2011-3-15
*/
public static void main(String[] args) {

Locale [] locales = Locale.getAvailableLocales();

for(Locale locale: locales){

System.out.println(locale.getDisplayLanguage()+" : "+locale.getLanguage());
}
}
}

  
上例输出了当前JDK的安装环境所支持的语言以及语言编码。

输出为:

日文 : ja
西班牙文 : es
英文 : en
日文 : ja
西班牙文 : es
塞尔维亚文 : sr
马其顿文 : mk
西班牙文 : es
阿拉伯文 : ar
挪威文 : no
阿尔巴尼亚文 : sq
保加利亚文 : bg
阿拉伯文 : ar
阿拉伯文 : ar
匈牙利文 : hu
葡萄牙文 : pt
希腊文 : el
阿拉伯文 : ar
马其顿文 : mk
瑞典文 : sv
德文 : de
英文 : en
芬兰文 : fi
冰岛文 : is
捷克文 : cs
英文 : en
斯洛文尼亚文 : sl

3) 下面我们看这个例子,本例说明了java如何实现国际化:  首先在src目录下新建两个文件: 文件名的书写是有规范的只能是baseName_language_country.properties.  创建2个文件。如下:

i18nfile_en_US.properties 内容为:who=I am American!

i18nfile_zh_CN.properties 内容为:who=\u6211\u662f\u4e2d\u56fd\u4eba

package com.test.i18n;
import java.util.Locale;
import java.util.ResourceBundle;
public class I18NTest3 {
/**
* @author: wh;
* date: 2011-3-15
*/
public static void main(String[] args) {

Locale locale = Locale.getDefault();

ResourceBundle bundle = ResourceBundle.getBundle("i18nfile", locale);

String value  = bundle.getString("who");

System.out.println(value);

}
}

 

   上面例子输出:我是中国人 ,getDefault(),获得此Java 虚拟机实例的当前默认语言环境值。因此是中文的。

    如果要返回一个美国的locale实例只需将locale.getDefault()改变成为Locale.US.

  那样会输出:I am American!

  另外我们有的时候并不是把配置文件给写死的,比如像struts这样的配置:

  struts.messages.current.file=Arquivo {0} {1} {2} {3}

  我们也可以这样做到下面我们把刚刚上面的两个配置文件改为:

  who=\u6211\u662f\u4e2d\u56fd\u4eba {0}

  who=I am American {0}!

  要完成这个功能需要java.text.MessageFormat这个类,这个类提供了一个静态的format方法。

  4)
package com.test.i18n;
import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;
public class I18NTest4 {
/**
* @author: wh;
* date: 2011-3-15
*/
public static void main(String[] args) {

Locale locale = Locale.getDefault();

ResourceBundle bundle = ResourceBundle.getBundle("i18nfile", locale);

String value  = bundle.getString("who");

String format = MessageFormat.format(value, new Object[]{",我自豪!"});

System.out.println(format);

}
}


 上例输出:我是中国人 ,我自豪!,通过上面我们将参数动态设置进去了,完成。struts也就是在java提供的这种机制上提供的国际化。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: