2012-07-19 27 views
13

Acabo de crear un módulo OpenERP personalizado, digamos /addons/the_meaning_of_life. Ahora quiero traducirlo a otro idioma. Ahora se supone que tengo una carpeta i18n que contiene un .pot y .po archivos. ¿Cómo puedo generar estos? Sería bueno tener una guía paso a paso.¿Cómo traducir un módulo OpenERP?

Respuesta

15

Ok aquí lo que puede hacer es:

  1. instalar su deseo lang en su base de datos.
  2. Una vez que haya terminado con el desarrollo de su módulo, instale el módulo en el servidor de prueba y luego vaya al siguiente asistente Setting(or Configuration) > Translation> Import/Export/Export Translation. A continuación, elija el módulo the_meaning_of_life y desee lang. y exportarlo en formato .po.
  3. Guarde ese archivo po y luego agregue la traducción que desea en el archivo po. Luego puede importar ese archivo po en la base de datos o agregarlo en su módulo bajo la carpeta /addons/the_meaning_of_life/i18n y está disponible con su módulo.
  4. (sólo para los nuevos módulos), es necesario tener también el archivo "pot" en la misma carpeta i18n, si aún no lo tienes puedes generar uno repitiendo el paso 2, pero sin elegir cualquier idioma. Esta es la forma de poner a disposición la traducción de algunos idiomas en su módulo, pero si desea utilizar el servicio de traducción Launchpad, marque el siguiente url, esto lo guiará usando .pot, pero para eso necesita un proyecto en lp claramente.

Esperanza este le responderá, Regards

+0

Eso lo hizo, gracias. Algunas observaciones: el archivo .po descargado era ANSI, así que tuve que guardarlo como UTF-8. Luego copié el archivo, 'pt.po', en la carpeta i18n y reinicié el servidor. Las traducciones cargadas en el servidor se reinician. –

+0

@DReispt sí, es la manera perfecta, solo tiene que guardarlo en UTF-8 –

6

Aquí es un script bash que puedo usar para esto:

$ cat oerp-i18n-module 
#!/bin/bash 
# 
# usage: 
# ./oerp-i18n-module <databasename> <module name> 
# 
# the script will create or update PO files for en, fr, de and es. You 
# will need to update the translations (and don't forget bzr add + 
# commit) 

dirname=$(find src -name $1 | egrep -v '(src/stable)|(src/server)') 
install -d ${dirname}/i18n 
for lang in en fr de es 
do 
    python src/server/openerp-server -c config/instance_debug.ini \ 
       --log-level=error --i18n-export=${lang}.po -l ${lang} \ 
       -d $1 --modules=$2 > /dev/null 2>&1 
    if [ -f ${dirname}/i18n/${lang}.po ] 
    then 
     echo merge new translations in ${dirname}/i18n/${lang}.po 
     msgmerge -vU --backup=simple ${dirname}/i18n/${lang}.po ${lang}.po 
     rm ${lang}.po 
    else 
     echo put file in ${dirname}/i18n/${lang}.po 
     mv ${lang}.po ${dirname}/i18n/ 
    fi 
done 

Esperanza esto ayuda (puede que tenga que modificar algunos caminos que son específicos a mi diseño de ramas bzr).

+0

Eso es útil para trabajos pesados. Gracias por compartir. –

-2

Instale su idioma deseado en su db.

Una vez que haya terminado con el desarrollo de su módulo, instale el módulo en el servidor de prueba y luego vaya a la siguiente Configuración del asistente (o Configuración)> Traducción> Importar/Exportar/Exportar traducción. Luego elige el módulo the_meaning_of_life y desea lang. y exportarlo en formato .po.

Guarde ese archivo po y luego agregue la traducción que desea en el archivo po. Luego puede importar de nuevo ese archivo po en la base de datos o agregarlo en su módulo bajo la carpeta/addons/the_meaning_of_life/i18n y está disponible con su módulo.

, debe tener también el archivo "pot" en la misma carpeta i18n, si aún no lo tiene, puede generar uno repitiendo el paso 2 pero sin elegir ningún idioma. Esta es la forma en que puede hacer disponible la traducción de algunos lang en su módulo, pero si desea utilizar el servicio de traducción Launchpad, luego consulte la siguiente URL, esto lo guiará usando .pot, pero para eso necesita un proyecto en lp claramente.

Cuestiones relacionadas