【问题标题】:Using Eclipse externalized Strings - how to get a String in language XYZ?使用 Eclipse 外部化字符串 - 如何获取 XYZ 语言的字符串?
【发布时间】:2014-01-24 22:43:52
【问题描述】:

在我们的 Eclipse RCP 应用程序中,所有字符串都被外部化并以 2 种语言呈现,效果很好。 例如。我有一个像这样的 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_de.properties 和 messages_en.properties。

它工作正常,用英文启动应用程序显示英文字符串,用德语显示德语字符串。

现在我需要在德语版本中获取一些英文字符串。 如何实现?

(一种尝试是更改 JVM 的 Locale,获取字符串并将其改回,但这将是一个非常糟糕的解决方案)

【问题讨论】:

  • 你不能用与message_en.properties文件中相同的键将英文字符串添加到message_de.properties吗?
  • 他们有相同的键。所以在英语属性中有 key1 = englishTrans,在德语中有 key1 = GermanTrans。在德语属性中添加英文翻译不是解决方案
  • 那你为什么要在德语版本中显示英文?
  • 我需要一些英文字符串作为工具提示(或更具体:已指定;))

标签: java eclipse string locale


【解决方案1】:

您不必将所有消息都放入特定语言的属性文件中。 NLS 也将在 messages.properties 文件中查找。您可以将仅英语的消息放在那里,而不要将任何内容放在特定于语言的属性中。

除此之外,NLS 不支持查找当前语言环境以外的任何内容。您可以制作自己的课程版本来做您想做的事,NLS 不是很大。

Eclipse e4 RCP 确实支持更灵活的翻译系统。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 2012-07-23
    • 2020-04-10
    • 2013-09-21
    • 1970-01-01
    相关资源
    最近更新 更多