Como sobrescribir las traducciones de Plone en 5 minutos

Advertencia

Esta entrada ha sido escrita desde hace más de un año. Por favor, lee el articulo manteniendo en cuenta su antigüedad.

Una manera cómoda y sencilla para modificar una traducción en el Plone sin perder demasiado tiempo

Hace un par de días Giorgio Borelli, plonista italiano, publicó un articulo en el blog de OpenAbstract sobre las traducciones de Plone, un tema que interesa mucho también a los plonistas de habla hispana, así que os pongo aquí una traducción de su entrada con la esperanza de que le sea útil en sus proyectos.

 

Danilo


 En algunas instalaciones de Plone y por diferentes razones, tenemos la necesidad de cambiar las traducciones. A un cliente no le gusta la palabra Descripción, a otros no les gusta Entrar, otra veces la traducciones en el idioma desado no están todavia disponibles para la versión liberada de un paquete.

Así que tenemos la necesidad de un método claro y rápido para sobrescribir las traducciones de sólo algunas partes de Plone sin tener que intervenir directamente en en paquete que les incluye.

Crear parches o sobrascribir los scripts y los templates para estos trabajos no son seguramente las soluciones mejores y la solución que hemos adoptado hasta ahora ha sido la de incluir las traducciones en un paquete creado appositamente por un cliente asegurándose de que este venía cargado en Zope después de todos los demás paquetes.

De esta manera hemos resuelto el problema, pero hay una pequeña y molesta obligación que tener en cuenta: recordarse dónde incluir el paquete con las traducciones.

Afortunadamente desde la versión 4.2.2 de plone.recipe.zope2instance, liberada en Julio, es posible configurar un directorio que contiene las traducciones adicionales que queremos incluir.

Entonce podemos añadir esta configuración en nuestro buildout:

...
[instance] 
recipe = plone.recipe.zope2instance 
locales = ${buildout:directory}/locales 
...

Crear el directorio locales en la carpeta del buildout y construir en su interior la clásica estructura de una carpeta de contiene traducciones:

es  
  - LC_MESSAGES    
    - plone.po    
    - otro.paquete.po 
it  
  - LC_MESSAGES    
    - plone.po    
    - altro.pacchetto.po 
en  
    - LC_MESSAGES    
    - plone.po  
...

los ficheros .po deben contener el header correcto para la traducción y sólo los mensajes que queremos sobrescribir, por ejemplo:

msgid ""
msgstr ""
"Project-Id-Version: Plone\n"
"POT-Creation-Date: 2012-09-08 19:30+0000\n"
"PO-Revision-Date: 2012-09-08 13:00+0100\n"
"Last-Translator: Giorgio Borelli <...>\n"
"Language-Team: Abstract\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n!=1\n"
"Language-Code: it\n"
"Language-Name: Italiano\n"
"Preferred-Encodings: utf-8 latin1\n"
"Domain: plone\n"
"X-Is-Fallback-For: it-ch it-it\n"

#. Default: "You are here:"
#: plone.app.layout/plone/app/layout/viewlets/path_bar.pt:6
msgid "you_are_here"
msgstr "Ecco dove ti trovi:"

Referencias y más información: