双向语言是可以根据上下文从右到左或从左到右书写的语言。整个平台都支持双向文本。缺省情况下,Eclipse 认为希伯莱语、阿拉伯语、波斯语和乌尔都语是双向语言。
工作台的方向是通过下列其中一种方法确定的(按优先顺序排列):
在 JFace 中,可以通过调用 org.eclipse.jface.Window#getDefaultOrientation() 来确定方向。独立 JFace 应用程序必须通过调用 org.eclipse.jface.Window#setDefaultOrientation() 来设置缺省方向,否则它将假定缺省值为 SWT.NONE。当运行工作台时,缺省方向是自动设置的。org.eclipse.jface.Window 的所有子类都将继承此缺省方向。
视图和编辑器将继承它们的父代的窗口方向。对话框在创建或配置它们的 shell 时,应该通过调用 super.getShellStyle() 以使用超类的 shell 样式来继承方向。
图 1 - 资源透视图从右到左方向的屏幕快照
在许多情况下,图标在从右到左方式下没有任何意义。特别是,任何与编辑相关的图标均有此问题。为了能够查找段中的图像,请在图标路径中使用 $nl$,并在运行时使用 org.eclipse.core.runtime.FileLocator 类来查找图标。
例如
String iconPath = "$nl$/icons/myicon.gif"; URL url = FileLocator.find( Platform.getBundle(MyPluginId), new Path(iconPath), null); Image Descriptor descriptor = ImageDescriptor.createFromURL(url);
如果图标引用是在 plugin.xml 文件中进行的,请确保路径包含 $nl$ 前缀,查询处理将自动执行。如果您定义了涉及图标的扩展点,则务必以相同的方式来装入图像。
没有固定的或快速的规则来确定在从右到左的语言中需要覆盖的图标。通常,您应该侧重于那些通过水平箭头暗示文本方向的图标。