[pyar] Sacando los strings a traducir de los templates de Jinja

Facundo Batista facundobatista en gmail.com
Mie Jun 11 23:13:22 ART 2014


Buenas!

Estoy en el proceso de internacionalizar CDPedia, y parte de eso
implica tener templates con strings que necesitan estar en diferentes
idiomas.

*Creo* que estoy levantando Jinja y toda la bola de la manera
correcta, lo único que me falta es generar el .mo correspondiente para
que funcione.

Pero con lo que me trabé es al generar el .pot desde el template.

O sea, me está costando hacer "algo" que tome como fuente los .html
que son los templates, que adentro tienen "{% trans %}Foobar{%
endtrans %}", o que tienen "{{ gettext('Foobar') }}" y que me deje el
.pot correspondiente.

Probé varias cosas con xgettext, no pude. Luego, leyendo, ví que lo
que "se recomienda" usar es pybabel, pero no me anda, miren:

$ pybabel -v extract -o locale/core.pot src/web/templates/
writing PO template file to locale/core.pot
Traceback (most recent call last):
  File "/usr/bin/pybabel", line 9, in <module>
    load_entry_point('Babel==1.3', 'console_scripts', 'pybabel')()
  File "/usr/lib/python2.7/dist-packages/babel/messages/frontend.py",
line 1151, in main
    return CommandLineInterface().run(sys.argv)
  File "/usr/lib/python2.7/dist-packages/babel/messages/frontend.py",
line 665, in run
    return getattr(self, cmdname)(args[1:])
  File "/usr/lib/python2.7/dist-packages/babel/messages/frontend.py",
line 947, in extract
    sort_by_file=options.sort_by_file)
  File "/usr/lib/python2.7/dist-packages/babel/messages/pofile.py",
line 427, in write_po
    messages = list(catalog)
  File "/usr/lib/python2.7/dist-packages/babel/messages/catalog.py",
line 552, in __iter__
    for name, value in self.mime_headers:
  File "/usr/lib/python2.7/dist-packages/babel/messages/catalog.py",
line 337, in _get_mime_headers
    locale='en')))
  File "/usr/lib/python2.7/dist-packages/babel/dates.py", line 609, in
format_datetime
    locale = Locale.parse(locale)
  File "/usr/lib/python2.7/dist-packages/babel/core.py", line 313, in parse
    raise UnknownLocaleError(input_id)
babel.core.UnknownLocaleError: unknown locale 'en'

No tengo idea de por qué explota ahí... ¿ustedes?

Gracias! Slds.

-- 
.    Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/
Twitter: @facundobatista


More information about the pyar mailing list