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