Rcp国际化可以根据需要来实现,下面根据项目的需要,将Rcp国际化的实现记录下来,实现步骤如下:
首先要说明的是,需要实现国际化的地方有两部分,一个是Eclipse本身提供的UI界面的国际化,其次是自己定制的插件的UI的国际化,这两部分需要分别对待来实现。
一、Eclipse本身提供的UI的国际化,这部分实现比较简单,只需在网上下载相应的多语言包,然后安装就可以
1、下载语言包,这里要根据使用的Eclipse版本来下载,我使用的是Eclipse3.6.1,对应的版本是Helios版,下载地址:http://www.eclipse.org/babel/downloads.php
2、安装语言包,其实也就是一个插件,像安装插件一样安装就可以了,安装完后重启Eclipse,这时可以看到Eclipse已经被汉化成中文的了,接下来在Eclipse运行配置项中自动加入必须的的插件,将语言包加进来,这样Rcp应用中的Eclipse的内置ui界面就可以自动被国际化了,如图:
二、自定制的插件界面的国际化,这部分稍微麻烦点,需要手工添加用于国际化的资源文件,以及增加一个内容提供的类
1、增加资源文件resource_en_US.properties(英文)、resource_zh_CN.properties(中文),在resource_zh_CN.properties文件中填写翻译好的键值,这里直接填写中文就可以了
2、增加内容提供类,内容很简单,需要注意的是,两个资源文件一定要跟该类放在同一个目录下,否则ResourceBundle.getBundle会找不到:
三、在运行配置的“自变量”一栏里设置如下-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl zh_CN ${target.nl} -consoleLog,在这里根据设置是中文(zh_CN)还是英文(en_US),Eclipse运行环境在启动时会自动根据这里的参数来初始化Locale,这样Locale.getDefault()就能获得相应的Locale了,然后通过ResourceBundle.getBundle("HiGVBuilder.diagram.language.resource",locale)方法,将该Locale传过去并获得ResourceBundle就可以了,这里主要是针对自定制的插件而获得的ResourceBundle
总结:
其实上述的的实现还可以通过以段项目(feature)的方式来实现的,段项目就是通过建立一个段项目的插件项目,然后在该插件中增加相应的资源文件等,也就是也单独的插件机制来实现,这样便于统一管理,就像Eclipse本身内置UI界面的汉化一样,只需将相应的插件加进去就可以了。