RCP 国际化

本文介绍如何在Eclipse RCP应用中实现国际化功能。通过创建资源文件并利用NLS类进行绑定,实现了根据不同地区加载相应语言资源的能力。文章提供了完整的代码示例。

原文地址:http://jjxliu306.iteye.com/blog/1882002


Eclipse体系已对国际化功能封装的很不错了,因此在RCP中处理国际化很方便,下面借用jjxliu306的一个例子来展示如何在RCP中使用国际化。

 

1. 首先创建一个RCP应用工程。


注意将工程设置为RCP工程。


 

 为方便测试,选择Hello RCP。


2. 创建资源文件 ,文件名任意,文件的格式:资源名_地区.properties 。 RCP的国际化NLS在绑定属性资源文件时会根据地区来确定应该加载哪个.properties文件,在找不到匹配资源文件时将使用默认资源文件:资源名.properties文件。

 

如图 :

 

这里创建了三个文件,方便对应英国地区,大陆区域与默认。

三个文件中的内容如下:

 message_en   : test_info    =    this is english

message_zh_CN    : test_info    =    这个是中文的

message   :   test_info    =    默认的

 

3. 下面我们创建访问资源文件的类,Eclipse中采用NLS类来实现国际化,因此我们需要继承NLS类来实现资源文件访问类。

代码如下:

/**
 * 国际化的信息类 
 * @author Administrator
 *
 */
public class Message extends NLS {
    //要加载的资源文件的名称 
    //注意:这里的 “message” 对应我们要绑定的文件名称。
    private  static final String MESSAGE_BUNDLE = "message" ;

    static{
        //绑定资源文件
        initializeMessages(MESSAGE_BUNDLE, Message.class);
    }
    
    //这里的名称要和属性文件中一样 并且定义为static 供外部程序调用
    public static  String test_info ;
}


 

4.到这一步后我们的国际化功能已实现的差不多了,下面通过一个视图来测试此资源文件访问类。

代码如下:

package rcp_localization;

import org.eclipse.swt.SWT;

public class TestViewPart extends ViewPart {
	public TestViewPart() {
	}
	public static final String ID = "RCP_Localization.testView";

	private Text info;

	@Override
	public void createPartControl(Composite parent) {
		info = new Text(parent, SWT.MULTI | SWT.H_SCROLL | SWT.BORDER);

		// 这里调用了国际化的信息
		info.setText(Message.test_info);
	}

	@Override
	public void setFocus() {
		info.setFocus();
	}
}

 

5.在透视图中将此视图显示出来:

package rcp_localization;

import org.eclipse.ui.IFolderLayout;
import org.eclipse.ui.IPageLayout;
import org.eclipse.ui.IPerspectiveFactory;

public class Perspective implements IPerspectiveFactory {
	final static String FOLDER_ID_TEST = "test";

	public void createInitialLayout(IPageLayout layout) {

		layout.setEditorAreaVisible(false);

		final IFolderLayout testFolder = layout.createFolder(FOLDER_ID_TEST,
				IPageLayout.RIGHT, 0.8f, IPageLayout.ID_EDITOR_AREA);
		
		testFolder.addView(TestViewPart.ID);
	}
}




 

 以上运行结果是在中文的运行环境中得到的,即资源文件调用类Message调用的是message_zh_CN.properties文件中的信息。


我们也可修改运行环境为英文:

在Eclipse中设置RCP工程启动参数


 选择 Run Configurations ,选择后出现:



 

选中右侧的 arguments ,



 将 ${target.nl} 替换为 "en" (英语环境),

 

点击 run 运行,



 

 

从图中可见,此次运行加载的文件是message_en.properties

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值