Sunday, 15 February 2015

How to translate pygtk; glade; gtk.Builder() application? -



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 ??

edit

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