基于equinox构建支持多语言的bundle

基于equinox构建支持多语言的bundle

ID:34754159

大小:51.69 KB

页数:3页

时间:2019-03-10

基于equinox构建支持多语言的bundle_第1页
基于equinox构建支持多语言的bundle_第2页
基于equinox构建支持多语言的bundle_第3页
资源描述:

《基于equinox构建支持多语言的bundle》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于Equinox构建支持多语言的Bundle对于一个OSGi的Bundle项目而言,多语言支持与JAVA的原理基本相似,就是将程序中用到的字符串配置在properties文件中。然后每种语言及地区提供一个单独的properties文件声明它的字符串资源。本文以Equinox的OSGi实现为例,描述如何让您的Bundle程序支持多语言:1.对插件描述文件,如plugin.xml,MANIFEST.MF文件,多语言支持的作法如下:a)在插件的根目录下创建plugin.properties文件,用于存放默认的字符串资源。如:Bundle

2、-Name=u56fdu9645u5316u6f14u793au63d2u4ef6sampleContentTypeName=u6f14u793au5185u5bb9u7c7bu578b在此properties文件中,名称代表字符串资源名,右边的值代表字符串内容。注意:若字符串的内容不是ASCII编码的,则需要将字符串转化为UNICODE编码。b)在MANIFEST.MF文件中加入一行:Bundle-Localization:plugin表示国际化字符串资源都存放在以plugin开头的资源文件中。c)添加其

3、它语言及地区的字符串资源文件,文件名的格式为:plugin_[语言代码]_[国家及地区代码].properties如:plugin_zh_CN.properties表示中国中文plugin_en_US.properties表示美国英文等。d)在plugin.xml文件或MANIFEST.MF文件中,若要使用在plugin*.properties文件中定义好的字符串,就使用%资源名来指代,如:Manifest-Version:1.0Bundle-ManifestVersion:2Bundle-Name:%Bundle-NameBund

4、le-SymbolicName:org.sample.eclipse.i18n;singleton:=true……..2.对于插件中的程序用到的字符串资源,多语言支持的方法如下:a)在MANIFEST.MF中添加依赖插件org.eclipse.osgi。b)在某一包中创建文件messages.properties,如在org.sample.eclipse.i18n包中添加messages.properties文件:SAMPLE_START_I18N=u5f00u59cbi18nSAMPLE_STOP_I18N=u7ed3u6

5、75fi18nSAMPLE_HELLO_I18N=u60a8u597di18n用于定义字符串资源。c)继承添加其它语言及国家对应的字符串资源文件,文件名格式与上述的一样,即:messages_[语言代码]_[国家及地区代码].properties如:messages_zh_CN.properties表示中国中文messages_en_US.properties表示美国英文等。a)在同包下创建Messages.java类文件,该类必须继承自org.eclipse.osgi.util.NLS类,并且需要在该类中定义与messages

6、.properties文件中定义的字符串资源相对应的字符串常量,还要在加载此类时调用NLS.initializeMessages方法,如下代码所示:packageorg.sample.eclipse.i18n;importorg.eclipse.osgi.util.NLS;publicclassMessagesextendsNLS{privatestaticfinalStringBUNDLE_NAME="org.sample.eclipse.i18n.messages";//$NON-NLS-1$publicstaticString

7、SAMPLE_START_I18N;publicstaticStringSAMPLE_STOP_I18N;publicstaticStringSAMPLE_HELLO_I18N;static{//initializeresourcebundleNLS.initializeMessages(BUNDLE_NAME,Messages.class);}privateMessages(){}}注意:在NLS.initializeMessages方法中,会根据程序当前系统参数中所设置的语言及国家代码,找到对应的字符串资源文件加载并将里面定义的

8、值赋给对应的类常量中,此方法的第一个参数表示字符串资源文件的名称(含包名),第二个参数表示相对应的类的类对象。b)在程序中,若需要使用字符串内容,则直接调用此类的字符串常量即可,如下代码所示:….System.out.println(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。