轉(zhuǎn)載地址:http://www.cnblogs.com/bjzhanghao/archive/2004/08/23/36011.html
在本文的上篇里,介紹了使用Eclipse的國際化工具對程序中的字符串進行外向化處理(Extenalize),可以看出步驟是十分簡單的。實在是很喜歡Eclipse這樣的工具,它可以為你做很多事情,干凈漂亮,但絕不會在未經(jīng)你同意的情況下做任何動作,所謂“利器”也!
現(xiàn)在說說在資源中含有參數(shù)的情況怎樣處理。比如在對話框中要顯示信息:“帳戶目前還有 900 元,截止日期為 2004-9-1,謝謝!”,因為中間的數(shù)字和日期是動態(tài)的,所以不能直接放在資源文件中。但是請放心,大可不必為這條信息指定三個資源(被數(shù)字和日期分開的三個字符串),可以在資源文件(.properties)中指定資源為這個樣子:
my.resource.key=帳戶目前還有 {0} 元,截止日期為 {1},謝謝!
其中{0}和{1}表示將替換為動態(tài)的值,然后在程序里寫:
Float amount=
;
Date dt=
;
String msg=MessageFormat.format(Messages.getString("my.resource.key"), new Object[]{amount,dt});
這樣,msg變量里就是動態(tài)生成的提示信息了。你很可能希望對日期進行格式化處理,要實現(xiàn)這個功能也很簡單,只要稍微修改一下資源,如下:
帳戶目前還有 {0} 元,截止日期為 {1,date,yyyy-MM-dd},謝謝!
確實簡單吧,不知道你用沒用過這個寫法,我是在PPP項目中才第一次使用的,所以趕緊介紹一下了,呵呵。
接下來的問題是編碼,資源文件寫為英文是沒有問題的,可以正常顯示,但漢字是不能直接寫在資源文件里的,要轉(zhuǎn)換為unicode才可以。jdk本身提供了native2ascii工具,可以實現(xiàn)這個功能,但用命令行總是不太方便,雖然也有人很喜歡使用命令行的感覺……如果你愿意Eclipse為你服務(wù),大可以使用我下面介紹的兩個插件,利用它們,你根本不需要顯式轉(zhuǎn)換編碼這一步了。
第一個是Properties Editor,好象是日本人寫的,安裝后它會與擴展名為.properties的文件相關(guān)聯(lián),使用它打開資源文件,可以在本地語言與unicode視圖之間切換,一般情況下編輯本地語言就可以了,保存時會自動轉(zhuǎn)換為unicode。當需要查找某個資源(值)并修改時這個編輯器非常方便,例如想把資源里所有“你好”改為“您好”,如果面對的是一堆unicode碼還真是頭疼。安裝這個插件需要2.1.1版本以上的Eclipse。
另一個我們在項目中經(jīng)常使用的插件叫……我還真不知道它全名叫什么,在我這里的打包文件名是“29 Localization Editor”,它是一個非常方便的國際化翻譯工具。用它打開擴展名為.properties的文件后,可以新建key,或者新建語言,你要做的只是在表格中把尚未翻譯成新語言的資源值填下而已,可以選擇只顯示未翻譯的條目或是全部條目。不過很對不起,我還沒找到網(wǎng)上的下載地址,如果需要請和我聯(lián)系吧。

圖1 Localization Editor使用界面
好了,關(guān)于Eclipse的國際化先介紹到這里了。如果你的應(yīng)用程序是Eclipse插件,還可以更進一步:把資源文件打成語言包。關(guān)于這種方式(Fragment)的介紹,以后有時間再寫吧。