【问题标题】:JFace dialog button translationJFace 对话框按钮翻译
【发布时间】:2013-04-06 17:42:38
【问题描述】:

我正在创建一个独立的 SWT/JFace 应用程序。

我曾经使用普通的旧 SWT MessageBox:

int style = SWT.APPLICATION_MODAL | SWT.YES | SWT.NO;
MessageBox messageBox = new MessageBox (getShell(), style);
messageBox.setText ("Question");
messageBox.setMessage ("So?");
boolean result = messageBox.open() == SWT.YES;

我尝试切换到 JFace MessageDialog

boolean result = MessageDialog.openQuestion(getShell(), "Question", "So?");

我遇到的问题是,在 SWT 中,Yes 和 No 按钮标签被翻译成我的语言,而在 JFace 中却不是这样。有什么想法吗?

我引用的 jar 是 swt 3.8.0、jface 3.8.0 和 jface 依赖项 core.commands 3.6.1 和 equinox.common 3.6.100。

【问题讨论】:

    标签: java swt jface


    【解决方案1】:

    在 SWT 的 MessageBox 类中,标签由操作系统设置。对于 JFace,您必须提供自己的翻译文件。你可以得到一个你的语言here。当然你也可以自己提供。这个link 解释了如何使用资源包进行翻译。您可以在 org/eclipse/jface/messages.properties 下找到原始翻译文件。您必须将自己的翻译文件(messages_[语言代码].properties)添加到项目中的相同包路径中。请注意,资源包与 OSGi 包没有任何共同之处。

    【讨论】:

    • 在您提供的 babel 链接中,我挖掘了不同的 jar,终于找到了我要找的东西:org.eclipse.jface.nl_fr_3.7.0。它不是 3.8,但我认为 3.8 只是 3.7 的错误修复。我将它添加到我的类路径中,它就像一个魅力。谢谢。
    【解决方案2】:

    我遇到了同样的问题。我使用的是 SWT 的 Messagebox。由于操作系统必须处理翻译,我通过更改控制面板中的区域设置对其进行了测试,但没有帮助。 我们必须切换操作系统语言来实现这一点。对于 Windows 7 用户,必须升级到 Windows 终极包。 这就是你如何做到的。 http://answers.microsoft.com/en-us/windows/forum/windows_7-desktop/how-to-change-system-language-of-windows-7-home/d58fb37b-cb02-41c8-986f-22582fd35a12

    我没试过,但值得一试。

    【讨论】:

      猜你喜欢
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      相关资源
      最近更新 更多