Foros del Web » Programando para Internet » Python »

Glade, Gtk3 y Gettext

Estas en el tema de Glade, Gtk3 y Gettext en el foro de Python en Foros del Web. Hola. Estoy escribiendo una aplicación en GTK3 para Ubuntu. Para traducirla, antes tenía experiencia usando el archivo glade, pero ahora, no sirve. Antes se hacía: ...
  #1 (permalink)  
Antiguo 12/03/2012, 12:15
 
Fecha de Ingreso: enero-2010
Ubicación: Madrid/España
Mensajes: 89
Antigüedad: 14 años, 11 meses
Puntos: 3
Glade, Gtk3 y Gettext

Hola. Estoy escribiendo una aplicación en GTK3 para Ubuntu. Para traducirla, antes tenía experiencia usando el archivo glade, pero ahora, no sirve. Antes se hacía:
Código Python:
Ver original
  1. gtk.glade.textdomain(APP)
  2. gtk.glade.bindtextdomain(APP, DIR)
Pero ahora, gtk3 se importa con
Código Python:
Ver original
  1. from gi.repository import Gtk
y no contiene ningún módulo glade. Además, lo estoy haciendo todo con Gtk.Builder().
He estado buscando, y nada.
Gracias
  #2 (permalink)  
Antiguo 12/03/2012, 12:44
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Glade, Gtk3 y Gettext

Puedes usar glade pero antes tienes que convertirlo.

Esto resolverá tu duda.
  #3 (permalink)  
Antiguo 12/03/2012, 13:17
 
Fecha de Ingreso: enero-2010
Ubicación: Madrid/España
Mensajes: 89
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Glade, Gtk3 y Gettext

Creo que no me he explicado bien. Mi aplicación funciona perfectamente con GTK+3, usando PyGi. Pero el problema que tengo es al traducir: no se cómo hacer para que el archivo Glade no tenga problemas al buscar las traducciones
  #4 (permalink)  
Antiguo 12/03/2012, 13:55
 
Fecha de Ingreso: enero-2010
Ubicación: Madrid/España
Mensajes: 89
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Glade, Gtk3 y Gettext

Creo que aquí puede que haya algo, pero con poner el translation domain creo que no sirve:
http://developer.gnome.org/gtk/2.24/...slation-domain
  #5 (permalink)  
Antiguo 12/03/2012, 20:18
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Glade, Gtk3 y Gettext

Dado que tus datos son vagos, ni siquiera se cuales son los valores de APP o DIR. Tratare de contestar lo mas acertado posible.

Existe un método set_translation_domain(domain) que esta disponible en tu instancia de Gtk.Builder.

Estoy casi seguro que ese método hará el trabajo.
  #6 (permalink)  
Antiguo 14/03/2012, 13:20
 
Fecha de Ingreso: enero-2010
Ubicación: Madrid/España
Mensajes: 89
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Glade, Gtk3 y Gettext

Entre otro código, actualmente tengo para la traducción:

Código Python:
Ver original
  1. # For translations:
  2. APP="pimagizer"
  3. DIR="/usr/share/pimagizer/i18n"
  4. # Esto permite traducir los textos escritos en el .py (no en glade)
  5. gettext.textdomain(APP)
  6. gettext.bindtextdomain(APP, DIR)
  7. # Y con esto podemos marcar las cadenas a traducir de la forma _("cadena")
  8. _ = gettext.gettext
  9. # End translations
Aparte, para que carge las traducciones del archivo XML con la interfaz, tengo esto (que lo he añadido con lo último que me has dicho)
Código Python:
Ver original
  1. self.builder = Gtk.Builder()
  2. self.builder.add_from_file("/usr/share/pimagizer/pimagizer.glade")
  3. # Y las siguientes 2 lineas permiten traducir los textos del Glade
  4. self.builder.set_translation_domain(APP)

Y con esto, las traducciones no van. Ahora lo traduzco con esto:
Código Python:
Ver original
  1. self.label6 = self.builder.get_object("label6") # "Click on image to change"        
  2. self.label6.set_text(_(self.label6.get_text()))
y aunque sirve, no es lo ideal.

Etiquetas: debian, gettext, glade, gtk, gtk3, linux, ubuntu
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:15.