Gestionar Traducciones en KMKey

KMKey está desarrollado sobre CPS y Zope 2.9.4, con lo que gestiona las traducciones por dos vías distintas: la incorporada por CPS, usando Localizer al estilo Zope 2, y la incorporada por Five al estilo Zope 3. Es importante tener claro qué partes del programa usan cada uno de los tipos de traducción:

  1. En general, todo lo que forma parte del código python o TAL se traduce con el sistema de Zope 3, mediante un extractor capaz de localizar las cadenas e incorporarlas en el directorio Producto/locales/idioma/LC_MESSAGES.

  2. Las cadenas propias de la configuración via ZMI, como nombres de TABs o Actions, de menús, de campos, etc, se traducen mediante el antiguo sistema de Zope 2. En este caso se carece de extractor, y las cadenas deben ir introduciéndose manualmente en el i18n/default.pot

Para extraer las cadenas a traducir necesitaremos una instancia de Zope 3, perferentemente superior o igual a 3.4.0. Por ejemplo:

wget http://www.zope.org/Products/Zope3/3.4.0c1/Zope-3.4.0c1.tgz

tar xzf Zope-3.4.0c1.tgz

cd Zope-3.4.0c1

./configure –prefix=/usr/local/zope340c1

make

make install

/usr/local/zope340c1/bin/mkzopeinstance -d /usr/local/z3instance

Ahora ya podemos realizar la extracción de cadenas de KMKey y traducirlas. Por ejemplo:

cd Products/KMKeyDefault

/usr/local/z3instance/bin/i18nextract -p . -o locales -d kmkeydefault

/usr/local/z3instance/bin/i18nmergeall -l locales

cd locales/es/LC_MESSAGES/

poedit kmkeydefault.po

Para ver en funcionamiento las nuevas traducciones, recordemos siempre que debemos regenerar los ficheros .mo:

python2.4 ../KMKeyCore/utils/generate_mo_files.py

Para incluir traducciones de Zope 2, deberemos editar manualmente el i18n/default.pot, y añadir las nuevas entradas, sin traducción. Después debemos mezclar con cada uno de los idiomas y traducir.

msgmerge -o es.po -s es.po default.pot

poedit es.po

Para que este tipo de traducciones sean visibles desde la aplicación, es necesario realizar el import del step Localizer desde el ZMI portal_setup. pestaña imports

Etiquetas: