RCP的国际化

  Eclipse国际化的问题,Eclipse-RCP项目做做国际化的时候,存在两个层面,一个是控件上的中文,另一个是Plugin.xml中的中文信息,控件上的中文,没有什么可说的,用一个类,加一个资源文件就可以了~主要的问题是Plugin.xml中的中文信息;
    根据各大网站和资料的中描述,Plugin.xml中中文信息用一下方法处理:
    1.在Plugin.xml同目录下新建plugin.properties;
    2.将Plugin.xml文件中中文部分替换成%xxxx;
    不知道这样的办法是不是在Eclipse3.3以前的版本中有用,反正我在Eclipse3.3中,这招没有用,PDE可以解析到%XXX的内容,但是启动应用程序以后没有任何效果,所有修改的地方都显示为%XXX了~
   解决办法就是:
请在插件的 MANIFEST.MF 文件后面添加上 Bundle-Localization: plugin 和一个回车应该可以解决你的问题。

    各个控件上的中文使用:ResourceBoundle
                          NLS
   
    NLS它好像与操作系统语言有关系,可以这样设置:
      在Run Configurations的Arguments的Program arguments如下设置
      -os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl en_US ${target.nl}


    ResourceBoundle例子:
  
public class CustomString {
	private static final String BUNDLE_NAME = "helloworld.resource.custom";
	private static ResourceBundle rb = null;

	//根据位置初始化一个资源包对象。
	public static void setLocale(Locale locale) {
		try {
			rb = ResourceBundle.getBundle(BUNDLE_NAME, locale);
		} catch (Exception e) {
			rb = ResourceBundle.getBundle(BUNDLE_NAME, Locale.ENGLISH);
		}
	}

	//用指定的语言返回一个给定键的值。
	public static String getString(String key) {
		try {
			String keyValue = new String(rb.getString(key).getBytes(
					"ISO-8859-1"), "UTF-8");
			return keyValue;
		} catch (Exception e) {
			return key;
		}
	}

}
   

在Application的start方法中加入
[code	/*	Locale chloc = new Locale("zh", "CN");// 指定中文环境
		Locale enloc = new Locale("en", "US");// 指定英文环境

		CustomString.setLocale(enloc);*/="java"]



参考资料:http://www.ibm.com/developerworks/cn/opensource/os-eclipse-globalrcp/index.html?ca=dat-cn-0727

你可能感兴趣的:(eclipse,xml,OS,IBM,OpenSource)