4

我正在创建一个独立的 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。

4

2 回答 2

10

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

于 2013-04-06T20:10:38.677 回答
0

我有同样的问题。我使用的是 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

我没试过,但值得一试。

于 2014-02-20T22:31:04.713 回答