Localization PyGTK-从右向左语言的本地化(BiDi)

Localization PyGTK-从右向左语言的本地化(BiDi),localization,gtk,pygtk,arabic,hebrew,Localization,Gtk,Pygtk,Arabic,Hebrew,(几乎?)网上所有关于PyGTK本地化的材料都在讨论gettext的用法,即如何正确显示翻译后的字符串 但这还不够。。。有些语言(希伯来语、阿拉伯语等)是从右向左书写的,因此,小部件应该“交换”。包装“开始”应位于最右侧,并继续向左 我假设locale.setlocale(locale.LC_ALL')应该可以解决这个问题。 但是,它不起作用(在希伯来文Windows7机器上) 下面是一个示例代码,它尝试将区域设置更改为希伯来语,并显示2个按钮,但它们仍然是从左到右的: import gtk i

(几乎?)网上所有关于PyGTK本地化的材料都在讨论
gettext
的用法,即如何正确显示翻译后的字符串

但这还不够。。。有些语言(希伯来语、阿拉伯语等)是从右向左书写的,因此,小部件应该“交换”。包装“开始”应位于最右侧,并继续向左

我假设
locale.setlocale(locale.LC_ALL')
应该可以解决这个问题。 但是,它不起作用(在希伯来文Windows7机器上)

下面是一个示例代码,它尝试将区域设置更改为希伯来语,并显示2个按钮,但它们仍然是从左到右的:

import gtk
import locale

locale.setlocale(locale.LC_ALL, 'Hebrew_Israel.1255')
print locale.setlocale(locale.LC_ALL)

window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.connect("destroy", lambda w: gtk.main_quit())

box1 = gtk.HBox(False, 0)
window.add(box1)

button1 = gtk.Button("first")
box1.pack_start(button1, True, True, 0)

button2 = gtk.Button("second")
box1.pack_start(button2, True, True, 0)

window.show_all()
gtk.main()
(gtk.TEXT\u DIR\u RTL)


这为不调用
set\u direction

的小部件设置了默认方向,使用PySide做这件事是多么容易(在QT世界中找到解决方案是多么容易…)
QtGui.QApplication.setLayoutDirection(QtCore.QT.LayoutDirection.RightToLeft)
box1.set\u direction(gtk.TEXT\u RTL)
适用于这个简单的示例。但该属性似乎没有在嵌套容器中继承。嗯……即使使用
gtk.Builder
,它也能很好地工作,因为它目前忽略了字符串翻译的我的
get_translation\u域
。谢谢