How to translate pygtk; glade; gtk.Builder() application? -
this first trial in translating pygtk glade; have created rockdome.mo file on next dir:./locale/ar/lc_messages/rockdome.mo
def apply_locale(self , lang): domain = "rockdome" local_path = basefolder+"/locale" # basefolder current dir lang = gettext.translation('rockdome', local_path , languages=['%s'%lang]) lang.install() _ = lang.gettext print _("close") # output اغلاق right standard arabic translation!! but application still appear in default scheme lamnguage en; missing ??
after searching in pygtk , buider tutoial; found 2 methods tell gtk & builder how bring text : first here :
module in (gettext, gtk.glade): module.bindtextdomain(app_name, locale_dir) module.textdomain(app_name) which fail.
the sec here
self.builder.set_translation_domain('rockdome') print self.builder.get_translation_domain() # output "rockdome" which fail !!, application still untranslated !!
n.b: guess builder needs know location local path search in not in default paths copied ./local/ar/lc_messages/rockdome.mo /usr/share/locale/ar/lc_messages/rockdome.mo failed.
you changing lang object within scope of function. have homecoming set properly.
you need phone call function this: my_lang = apply_locale(lang) or set lang property of class.
def apply_locale(self , lang): domain = "rockdome" local_path = basefolder+"/locale" # basefolder current dir lang = gettext.translation('rockdome', local_path , languages=['%s'%lang]) lang.install() _ = lang.gettext homecoming lang # here homecoming value , set object passed function. your utilize of variable name here confusing. changing argument different type of object, might want differentiate between two.
gtk interface-builder locale pygtk glade
No comments:
Post a Comment