Hi all,

I'm using Tkinter for the first time in a small project where
multi-language functionality is necessary. I'm using gettext for
handling it together with StringVar.

Is there a mechanism that saves me from having to make a call to the
set() function for each StringVart involved?

Here below some code to better explain me.

Thank you very much.
slY


def set_language(lang):
    current_lang = gettext.translation("translation",
localedir="locale", languages=[lang])
    current_lang.install()
    my_string_var1.set(msg1)
    my_string_var2.set(msg2)
    my_string_var3.set(msg3)
    ...


msg1 = _("lorem")
msg2 = _(".ipsum")
msg3 = _("dolor")
...

my_string_var1 = tk.StringVar()
my_string_var2 = tk.StringVar()
my_string_var3 = tk.StringVar()

my_string_var1.set(msg1)
my_string_var2.set(msg2)
my_string_var3.set(msg3)
...


Button(left, image=eng_img, borderwidth=0, command=lambda :
set_language("en")).grid(row=0, column=1)
Button(left, image=fra_img, borderwidth=0, command=lambda :
set_language("es")).grid(row=1, column=1)
Button(left, image=ita_img, borderwidth=0, command=lambda :
set_language("de")).grid(row=2, column=1)

msg1_label = Label(right, textvariable=my_string_var1).grid(row=0, column=1)
msg2_label = Label(right, textvariable=my_string_var2).grid(row=1, column=1)
msg3_label = Label(right, textvariable=my_string_var3).grid(row=2, column=1)
...
_______________________________________________
Tkinter-discuss mailing list
Tkinter-discuss@python.org
https://mail.python.org/mailman/listinfo/tkinter-discuss

Reply via email to