viernes, 20 de junio de 2008

Bloquear partes de un upgrade

1 comentarios
 

De vez en cuando es necesario configurar de forma distinta, para un cliente en concreto, partes genéricas de la aplicación. Por ejemplo, en clientes donde no se use la gestión de recursos, puede ser necesario deshabilitar el action correspondiente en el portal_actions. Pero ese cambio desaparecería al realizarse el próximo import del step "Actions Provideers". Para evitarlo se ha incluido, en la versión 08.06.01, un nuevo atributo "block_import", que permite marcar qué acciones deseamos que se importen de nuevo y cuales deseamos mantener sin cambios.


El mismo concepto se ha aplicado a los portal_layouts. Cuando queremos bloquear las actualizaciones de un layout concret, podemos añadir al mismo una Property "block_import", de tipo Boolean, con valor True

Leer más...
lunes, 16 de junio de 2008

Gestionar Traducciones en KMKey

0 comentarios
 

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

Leer más...