Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7258668
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68080
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:48:10

下载本文示例代码
  在我们的应用中,难免会遇到国际化的问题,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、需要做其它语言的版本,过程一样。   在我们的应用中,难免会遇到国际化的问题,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、需要做其它语言的版本,过程一样。 下载本文示例代码


为Eclipse plug-in(插件)创建语言包为Eclipse plug-in(插件)创建语言包为Eclipse plug-in(插件)创建语言包为Eclipse plug-in(插件)创建语言包为Eclipse plug-in(插件)创建语言包为Eclipse plug-in(插件)创建语言包为Eclipse plug-in(插件)创建语言包为Eclipse plug-in(插件)创建语言包为Eclipse plug-in(插件)创建语言包为Eclipse plug-in(插件)创建语言包为Eclipse plug-in(插件)创建语言包为Eclipse plug-in(插件)创建语言包为Eclipse plug-in(插件)创建语言包为Eclipse plug-in(插件)创建语言包为Eclipse plug-in(插件)创建语言包
阅读(1361) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~