在我們的應用中,難免會遇到國際化的問題,eclipse rcp給我們提供了很好的方案,甚至可以在后期批處理完成,但如果是其它插件未提供我們需要的語言版呢?我們可以如何為它們提供語言包呢?
一個簡單的例子,你用messagedialog打開對話框時,按鈕一般時:ok,cancel, yes, no,在一個中文系統中顯得不太地道,當前,該類在構造時給了我們改正的機會,即可以在構造時傳入你需要顯示的字符,如:
messagedialog dialog = new messagedialog(parent, title, null,message, question, new string[] {"確定","取消"}, 0);
但對于一個國際化的系統,這樣并不合適,如果今后需要日語版/法語版呢?是否還得改代碼呢?
其它,eclipse能很好的通過語言包來解決這樣的問題,我們只需為指定插件創建你需要的語言包,即可以使應用使用當前locale的語言。我們以為jface創建中文語言包為例來說說這個過程:
1、創建一個fragment project
2、注意在第三步的時候,選擇你要為哪個插件創建語言包(紅色標出),并選定要示的版本。

3、項目結構如下:

其中,messages_zh_cn.properties是將jface的messages.properties部分譯成中文后再用native2ascii生成的文件。messages.properties可以按自己的要求翻譯。
下面是我的文件的一部分,我只譯了其中的幾個lable:
ok=確定
cancel=取消
yes=是(&y)
yestoall=全部(&a)
skip=s&kip
stop=&stop
abort=&abort
retry=&retry
ignore=&ignore
proceed=&proceed
open=&open
close=關閉(&c)
經轉換后的樣子:
ok=/u786e/u5b9a
cancel=/u53d6/u6d88
yes=/u662f(&y)
yestoall=/u5168/u90e8(&a)
skip=s&kip
stop=&stop
abort=&abort
retry=&retry
ignore=&ignore
proceed=&proceed
open=&open
close=/u5173/u95ed(&c)
4、將該項目導出為可部署的包(可通過導出向導)。
5、將該包放到你自己的rcp插件搜索目錄(如plugins目錄)中即可。
6、這時,你在中文系統中運行rcp應用,相應的對話框label就變成了你譯成的label
7、需要做其它語言的版本,過程一樣。
|
新聞熱點
疑難解答