这是我第一次尝试翻译pygtk
和glade
;我已在以下目录创建了Rockdome.mo文件:./locale/ar/LC_MESSAGES/Rockdome.mo
def apply_locale(self , lang):
domain = "Rockdome"
local_path = basefolder+"/locale" # basefolder is the current dir
lang = gettext.translation('Rockdome', local_path , languages=['%s'%lang])
lang.install()
_ = lang.gettext
print _("Close") # the output is اغلاق which is correct arabic translation!!
但是应用程序仍然以默认系统语言 EN
显示;我错过了什么?
编辑
在搜索 pygtk 和 buider 教程后,我找到了两种方法来告诉 gtk
和 builder
如何带来文本:
第一种方法来自 这里 :
for module in (gettext, gtk.glade):
module.bindtextdomain(APP_NAME, LOCALE_DIR)
module.textdomain(APP_NAME)
失败了。
从这里开始的第二个
self.builder.set_translation_domain('Rockdome')
print self.builder.get_translation_domain() # the output is "Rockdome"
同样失败!!,应用程序仍未翻译!!
N.B: 我猜
builder
需要知道我的本地路径位置以在其中搜索而不是默认路径, 因此我将./local/ar/LC_MESSAGES/Rockdome.mo
复制到/usr/share/locale/ar/LC_MESSAGES/Rockdome.mo
也失败了。
lang
,目前你只是在函数中改变它。 - The_Cthulhu_Kid