zoukankan      html  css  js  c++  java
  • [Eclipse]国际化你的应用程序(下)

    在本文的上篇里,介绍了使用Eclipse的国际化工具对程序中的字符串进行外向化处理(Extenalize),可以看出步骤是十分简单的。实在是很喜欢Eclipse这样的工具,它可以为你做很多事情,干净漂亮,但绝不会在未经你同意的情况下做任何动作,所谓“利器”也!

    现在说说在资源中含有参数的情况怎样处理。比如在对话框中要显示信息:“帐户目前还有 900 元,截止日期为 2004-9-1,谢谢!”,因为中间的数字和日期是动态的,所以不能直接放在资源文件中。但是请放心,大可不必为这条信息指定三个资源(被数字和日期分开的三个字符串),可以在资源文件(.properties)中指定资源为这个样子:

    my.resource.key=帐户目前还有 {0} 元,截止日期为 {1},谢谢!

    其中{0}和{1}表示将替换为动态的值,然后在程序里写:

    Float amount = ...;
    Date dt = ...;
    String msg=MessageFormat.format(Messages.getString("my.resource.key"), new Object[]{amount,dt});

    这样,msg变量里就是动态生成的提示信息了。你很可能希望对日期进行格式化处理,要实现这个功能也很简单,只要稍微修改一下资源,如下:

    帐户目前还有 {0} 元,截止日期为 {1,date,yyyy-MM-dd},谢谢!

    确实简单吧,不知道你用没用过这个写法,我是在PPP项目中才第一次使用的,所以赶紧介绍一下了,呵呵。

    接下来的问题是编码,资源文件写为英文是没有问题的,可以正常显示,但汉字是不能直接写在资源文件里的,要转换为unicode才可以。jdk本身提供了native2ascii工具,可以实现这个功能,但用命令行总是不太方便,虽然也有人很喜欢使用命令行的感觉……如果你愿意Eclipse为你服务,大可以使用我下面介绍的两个插件,利用它们,你根本不需要显式转换编码这一步了。

    第一个是Properties Editor,好象是日本人写的,安装后它会与扩展名为.properties的文件相关联,使用它打开资源文件,可以在本地语言与unicode视图之间切换,一般情况下编辑本地语言就可以了,保存时会自动转换为unicode。当需要查找某个资源(值)并修改时这个编辑器非常方便,例如想把资源里所有“你好”改为“您好”,如果面对的是一堆unicode码还真是头疼。安装这个插件需要2.1.1版本以上的Eclipse。

    另一个我们在项目中经常使用的插件叫……我还真不知道它全名叫什么,在我这里的打包文件名是“29 Localization Editor”,它是一个非常方便的国际化翻译工具。用它打开扩展名为.properties的文件后,可以新建key,或者新建语言,你要做的只是在表格中把尚未翻译成新语言的资源值填下而已,可以选择只显示未翻译的条目或是全部条目。不过很对不起,我还没找到网上的下载地址,如果需要请和我联系吧。



    图1 Localization Editor使用界面

    好了,关于Eclipse的国际化先介绍到这里了。如果你的应用程序是Eclipse插件,还可以更进一步:把资源文件打成语言包。关于这种方式(Fragment)的介绍,以后有时间再写吧。

  • 相关阅读:
    [转] egg(28)--mongoose使用聚合管道
    [转] mongoose的populate
    [转]express常用中间件
    [转] SuperAgent使用文档
    [转] node爬虫之gbk网页中文乱码解决方案
    [转] js日期对象Date对象方法 时间方法
    [转] Nodejs学习笔记(十四)— Mongoose介绍和入门
    [转] 深入理解vue 一些底层原理
    [转] Nginx之八 URL重写(rewrite)配置
    随笔
  • 原文地址:https://www.cnblogs.com/bjzhanghao/p/36011.html
Copyright © 2011-2022 走看看