Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Eclipse外部化字符串-如何获得语言XYZ中的字符串?_Java_Eclipse_String_Locale - Fatal编程技术网

Java 使用Eclipse外部化字符串-如何获得语言XYZ中的字符串?

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

在我们的EclipseRCP应用程序中,所有字符串都是外部化的,并以两种语言表示,这很好。 例如,我得到一个Messages.java,如下所示:

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。在德语属性中添加英语翻译不是解决方案,那么为什么要在德语版本中显示英语?我需要一些英语字符串作为工具提示(或者更具体地说:它是指定的;)