我正在创建一个独立的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中,“是”和“否”按钮标签被翻译成我的语言,而在JFace中情况并非如此。有什么想法吗?
我引用的jars是equinox.common 3.8.0、jface 3.8.0以及jface依赖jars 3.6.1和jface 3.6.100。
发布于 2013-04-07 04:10:39
在SWT的MessageBox类中,标签由操作系统设置。对于JFace,您必须提供自己的翻译文件。您可以为您的语言here获取一个。当然,您也可以自己提供它。这个link解释了如何使用资源包进行翻译。您可以在org/eclipse/jface/messages.properties下找到原始转换文件。您必须将自己的转换文件(messages_language code.properties)添加到项目中相同的包路径中。请注意,资源包与OSGi包没有任何共同之处。
发布于 2014-02-21 06:31:05
我也有同样的问题,我使用的是SWT的Messagebox。由于操作系统必须负责翻译,所以我通过更改控制面板中的区域设置对其进行了测试,但没有任何帮助。为了实现这一点,我们必须切换操作系统语言。对于Windows7用户来说,必须升级到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。
我还没试过,但值得一试。
https://stackoverflow.com/questions/15854066
复制相似问题