<div dir="ltr">Amb Tkinter existeix Tkinter.StringVar() que permet aquestes coses.<div><br></div><div>Hauries de buscar el seu homònim a pyqt</div></div><div class="gmail_extra"><br><div class="gmail_quote">El dia 19 setembre de 2014 11:44, Oscar Castell Marcos <span dir="ltr"><<a href="mailto:ocastell@mac.com" target="_blank">ocastell@mac.com</a>></span> ha escrit:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Buenas,<br>
<br>
tinc un noi de treball de recerca de 2n de BAT que està fent una aplicació en PyQt però no utilitza l'entorn de programació Qt ja que utilitza una sèrie de mòduls externs (opencv) que no en són compatibles.<br>
<br>
El cas és que estem a la fase de localització i internacionalització i fem les traduccions amb el gettext. Tot funciona correctament:<br>
<br>
1.- El llenguatge s'escull en carregar l'aplicació segons les variables d'entorn.<br>
2.- S'ha ficat un argument opcional al executar el programa per escollir la llengua.<br>
<br>
Això tot va bé.<br>
<br>
Ara m'ha plantejat de poder canviar la llengua directament dins de la interfície d'usuari. Hem ficat una comboBox amb les opcions de llengua i carreguem, sense cap problema, les opcions de llengua segons l'item selecionat. Ara bé, la UI no es tradueix. Hem provat d'actualitzar la UI amb repaint, update i altres opcions però la UI no es refresca i queda amb la traducció ...<br>
<br>
Hi ha algú que tingui experiència en aquestes traduccions amb gettext, pyqt ... on-the-fly ... si és aixi i ens proposa una solució estarem molt agraïts.<br>
<br>
records,<br>
<br>
O. Castell<br>
<br>
PD: adjunto la part de codi que invoca el canvi d'idioma amb gettext i l'update del UI.<br>
<br>
def change_combo_idioma(self,<u></u>llengua):<br>
#<br>
# Internacionalització: llenguatge per defecte es_CA (Català)<br>
#<br>
self.language=str(llengua.<u></u>toUtf8()).decode("utf-8")<br>
if self.language == 'Castellà'.decode("utf-8"):<br>
lang0 = gettext.translation('movmind', 'idiomes', languages=['es_ES'], fallback=True)<br>
elif self.language == 'Anglés'.decode("utf-8"):<br>
lang0 = gettext.translation('movmind', 'idiomes', languages=['en_EN'], fallback=True)<br>
elif self.language == 'Francés'.decode("utf-8"):<br>
lang0 = gettext.translation('movmind', 'idiomes', languages=['fr_EN'], fallback=True)<br>
elif self.language == 'Alemany'.decode("utf-8"):<br>
lang0 = gettext.translation('movmind', 'idiomes', languages=['de_DE'], fallback=True)<br>
elif self.language == 'Català'.decode("utf-8"):<br>
lang0 = gettext.translation('movmind', 'idiomes', languages=['ca_ES'], fallback=True)<br>
else:<br>
lang0 = gettext.translation('movmind', 'idiomes', languages=['ca_ES'], fallback=True)<br>
lang0.install()<br>
print "Language", self.language<br>
self.update()<br>
return<br>
<br>
______________________________<u></u>_________________<br>
Linux mailing list<br>
<a href="mailto:Linux@llistes.softcatala.org" target="_blank">Linux@llistes.softcatala.org</a><br>
<a href="http://llistes.softcatala.org/mailman/listinfo/linux" target="_blank">http://llistes.softcatala.org/<u></u>mailman/listinfo/linux</a><br>
</blockquote></div><br></div>