Traducciones .po: entender el orden de carga en Odoo - coopdevs/handbook GitHub Wiki
:warning: ATENCIÓ |
---|
Aquest handbook està descontinuat. La nova adreça és: https://handbook.coopdevs.org/ca/home |
El código que muestra la jerarquía de carga de los .po está en odoo/addons/base/models/ir_translation.py
En comentarios podemos ver las diferentes jerarquías:
- Step 1: for sub-languages, load base language first (e.g. es_CL.po is loaded over es.po)
- i18n_extra folder is for additional translations handle manually (eg: for l10n_be)
- Step 2: then load the main translation file, possibly overriding the terms coming from the base language
En resumen:
- los strings/cadenas no traducidos (msgstr "") dentro del .po se ignoran y se buscan traducciones en el siguiente nivel de .po
- si por ejemplo tenemos "ca_ES" como idioma activo en nuestro odoo, el orden de mayor a menor prioridad de búsqueda de cadenas es:
i18n/ca_ES.po -> i18n_extra/ca.po -> i18n/ca.po
Ejemplo: si ca_ES.po contiene una cadena vacía, se coge la cadena de ca.po :
pero si ca_ES.po contiene la misma cadena también traducida, entonces esta tendrá prioridad frente a la de ca.po :
Hay que apuntar que a la hora de recargar traducciones, se deberá marcar el checkbox de sobrescribir las cadenas/condiciones existentes:
Esta forma de cargar las traducciones de Odoo es útil para no tener que rellenar el 100% de las cadenas dentro de un .po que contenga solo variaciones para alguna traducción genérica, ejemplo, aquí vemos algunas modificaciones para la variante mexicana(es_MX.po) de odoo sobre la genérica española "es.po" :