Problemas con localizaciónal vuelo
"J. David Ibáñez"
jdavid en itaapy.com
Vie Dic 12 11:41:59 CET 2003
Santi Camps wrote:
>>Necesito adaptar un programa a varias lenguas (es un programita
>>hecho con cherrypy). Estoy probando el ejemplo de la documentación [1]
>>y sólo me reconoce el primer lenguaje elegido. Aunque cambie de
>>instancia, sigue mostrando los mensajes en el mismo idioma.
>>
>>¿Alguien lo ha probado?
>>
>>¿El módulo de localización que estaba desarrollando Juan David tenía
>>aplicación sólo en ZOPE o se puede usar en otros entornos?
>>
>>
>>
Además del modulo gettext de la libreria estandar, tal vez te
interese echarle un vistazo a "itools.i18n", es un paquete Python,
nada de Zope. En particular el modulo "itools.i18n.accept" es
para negociación de idioma.
>Yo uso otra sintaxis del mismo módulo y funciona perfectamente. Si te
>sirve:
>
>t = gettext.GNUTranslations('fichero.po')
>print t.gettext("frase a traducir")
>
>
>
>
Añadiendo la negociación de idioma:
import gettext
from itools.i18n import accept
# Construir el objeto accept_language adecuadamente, con la
# cabecera Accept-Language del protocolo HTTP, por ejemplo.
accept_language = accept.AcceptLanguage('es')
# Lista con los idiomas de la aplicación e idioma por defecto
available_languages = ['en', 'es', 'fr']
default_language = 'en'
# Negociación de idioma
language = accept_language.select_language(available_languages)
if language is None:
language = default_language
# Acción
t = gettext.GNUTranslations('%s.po' % language)
print t.gettext("frase a traducir")
>Los productos de localización de Zope lo que hacen es aplicar el uso de
>este módulo (el gettext) a los objetos zope.
>
>
>
Hacen otras cosas también, una de ellas es la negociación de idiomas.
--
J. David Ibáñez
Founder and CTO of Itaapy <http://www.itaapy.com>
Creator of Localizer <http://www.localizer.org>
Lead developer of IKAARO <http://www.ikaaro.org>
Más información sobre la lista de distribución Python-es