Java 使用Eclipse外部化字符串-如何获得语言XYZ中的字符串?
在我们的EclipseRCP应用程序中,所有字符串都是外部化的,并以两种语言表示,这很好。 例如,我得到一个Messages.java,如下所示:Java 使用Eclipse外部化字符串-如何获得语言XYZ中的字符串?,java,eclipse,string,locale,Java,Eclipse,String,Locale,在我们的EclipseRCP应用程序中,所有字符串都是外部化的,并以两种语言表示,这很好。 例如,我得到一个Messages.java,如下所示: public class Messages extends NLS { private static final String BUNDLE_NAME = "abc.fixedcolumns.messages"; //$NON-NLS-1$ public static String additionalReq; st
public class Messages extends NLS
{
private static final String BUNDLE_NAME =
"abc.fixedcolumns.messages"; //$NON-NLS-1$
public static String additionalReq;
static
{
// initialize resource bundle
NLS.initializeMessages( BUNDLE_NAME, Messages.class );
}
private Messages()
{
super();
}
具有匹配的messages\u de.properties和messages\u en.properties
它工作正常,启动应用程序时,英语显示英语字符串,德语显示德语字符串
现在我需要一些德语版本的英语字符串。
如何做到这一点
(一次尝试是更改JVM的区域设置,获取字符串并将其更改回来,但这将是一个非常糟糕的解决方案)您不必将所有消息都放在特定于语言的属性文件中<代码>NLS也将在
messages.properties
文件中查找。您可以将纯英语消息放在那里,而不将任何内容放在特定于语言的属性中
除此之外,NLS
不支持查找除当前区域设置以外的任何内容。您可以制作自己版本的类来做您想做的事情,NLS
不是很大
Eclipse
e4
RCP确实支持更灵活的翻译系统。您不能使用与message\u en.properties
文件中相同的键将英文字符串添加到message\u de.properties
中吗?它们具有相同的键。因此,在英语属性中有key1=englishTrans,在德语属性中有key1=germantans。在德语属性中添加英语翻译不是解决方案,那么为什么要在德语版本中显示英语?我需要一些英语字符串作为工具提示(或者更具体地说:它是指定的;)