shell数组、文件列表处理和后几行删除汇总
2012-06-14 01:05
351 查看
首先来讲java已经对国际化提供了很好的支持了,struts也正是对java的底层进行一些封装、在java的基础上构建起来的。首先看看下面的例子:
1)
上面的结果输出了: java国家名称以及国家对应的编码,当然不是所有的国家,只是世界上的一些大的国家,一些很小的国家没有提供支持。
输出:
日本 : JP
秘鲁 : PE
:
日本 : JP
巴拿马 : PA
波斯尼亚和黑山共和国 : BA
:
危地马拉 : GT
阿拉伯联合酋长国 : AE
挪威 : NO
阿尔巴尼亚 : AL
:
伊拉克 : IQ
也门 : YE
:
葡萄牙 : PT
塞浦路斯 : CY
卡塔尔 : QA
马其顿王国 : MK
……
2)
上例输出了当前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
上面例子输出:我是中国人 ,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)
上例输出:我是中国人 ,我自豪!,通过上面我们将参数动态设置进去了,完成。struts也就是在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提供的这种机制上提供的国际化。
相关文章推荐
- shell处理—文件汇总到一个文件里,用sqlldr装入数据库这些文件数据都少一个字段而字段内容为这个文件的名字
- shell脚本汇总 2 删除创建时间超过32天的文件
- shell文件操作汇总
- 删除VS最近打开文件和项目列表
- ruby处理字符串数组的添加和删除,每增加一个服务类型,则增加一个相应的值。
- 数组,字符串处理,mktemp命令,install命令,bash的环境配置文件,程序包编译
- shell浅谈之十一别名、列表及数组
- 删除 Visual Studio 最近打开文件和项目列表
- Shell编写脚本,检测备份文件数并且删除旧的文件
- [Shell和批处理]_[枚举指定目录下的文件并处理]
- Glusterfs文件系统删除文件异常原因及处理方案
- 【Linux】Shell学习笔记之二——文件和目录管理(创建、删除、复制、查看)
- xcode8删除文件后的警告处理
- 项目文件必须在引用列表中包含.net framework 程序集“WindowsBase,PresentationCore,PresentationFramework”。错误处理!
- linux删除文件未释放空间问题处理
- JS数组方法汇总 array数组元素的添加和删除
- shell 删除指定目录下过时的文件或目录
- java实现ftp连接、登陆、上传、下载、删除文件、获取目录、文件列表
- R文件无法自动生成之处理办法汇总
- Oracle回滚表空间数据文件误删除处理