我正在研究RTL对专有UI框架(对于桌面应用程序)的支持,我想知道:是否有关于如何更改窗口小部件呈现的指导原则?
我正在寻找一系列的东西,比如:
解决方法
通常布局应该是水平翻转的镜像.除了你已经提到的控件之外,显然应该镜像单选按钮,组合框(也就是下拉菜单),旋转(或上下,取决于术语).最小化,最大化和关闭按钮的窗口装饰或窗口控制盒应位于相对侧.关于窗口标题的问题.
按钮的顺序也应该改变,所以如果你有[确定] [取消] [帮助],在RTL语言中,它将是[帮助] [取消] [确定].弹出消息中的图标应位于另一侧.
按钮的顺序也应该改变,所以如果你有[确定] [取消] [帮助],在RTL语言中,它将是[帮助] [取消] [确定].弹出消息中的图标应位于另一侧.
您可能想知道Microsoft如何在其MFC框架中实现RTL支持:它们只是更改了坐标,因此当您移动到左侧时,0指向屏幕的右上角,x坐标会增加.这有一些副作用,可以在分割器控制中观察到 – 它完全按照预期的方式工作(将其拖动到左侧放大窗口的左侧部分).
回到控件:LTR语言中显然左对齐的文本框应该在RTL语言中正确对齐,依此类推.
什么是不太明显的,一些位图也应该翻转.特别让我感到惊讶的是,当本地化为阿拉伯语,乌尔都语或波斯语时,应该翻转问号图标(通常显示确认对话框或作为帮助按钮的图标),因为它们使用的是Reversed Question Mark(⸮).我不确定希伯来语.
请记住,出于文化原因需要对某些位图进行本地化(例如,其中一些位图可能不合适).此外,在将本地化为阿拉伯语(和类似语言)时,或多或少地要求使用所谓的Eastern Arabic numerals,但将它们用于希伯来语并不是一个好主意.可以想象,如果你有一些很好的子弹点(包含数字)图像,并且应用程序(或框架)需要翻译成阿拉伯语,这些图像至少需要是可本地化的(可以替换).