插件国际化

插件国际化

 

转自:http://dev.yesky.com/330/2555830.shtml

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值