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