Me encantaría decir que como vivimos en un mundo globalizado e integrado; por eso contamos con un ERP diseñado para dar soporte a múltiples idiomas. La realidad es que Odoo brinda soporte a múltiples idiomas porque es un software creado en Belgica; y dado que Bélgica cuenta con tres idiomas "oficiales" (entre los que no se cuenta el balón); Odoo fue desde el inicio un software con características multi-idiomas. Si Odoo hubiese sido un software francés o alemán, no iba a contar en el core con soporte multi-idiomas. Pero bueno... el mundo es así.
Bien, que sucede entonces? Muchas veces necesitamos tener contenido multi-idioma. Por ejemplo; descripciones de producto en múltiples idiomas (porque tenemos proveedores en Asia y clientes en Latinoamérica). O contenidos del website; tenemos visitas europeas, o americanas. Si el negocio de su cliente es global (y no es dentro de una incubadora como sucede la mayoría de las veces en Argentina) usted va a necesitar tener soporte a múltiples idiomas.
Como se habilitan los diferentes idiomas en Odoo? Primero es habilitar los diferentes idiomas que se necesitan en el menú de Ajustes > Idiomas
Ahí puede habilitar los idiomas con los que va a trabajar el sistema (quiere hacer su vida más interesante, habilite el albano y diviértase con la reacción sorprendida de los usuarios). Y por ejemplo, ingrese las traducciones en los campos que tienen habilitada la traducción (tienen en el widget dos letras pequeñas identificando el idioma del contenido de dicho campo).
Y si usted clickea en las dos letras que idican el idioma del contenido, podrá ingresar el contenido traducido en cada uno de los idiomas habilitados en el sisema:
Como actualizar los contenidods en diferentes idiomas usando xmlrpc
Se lo hace utilizando el contexto. A la llamada de xmlrpc se le agrega en el contexto el idioma con el cual desea que se realice la operación. Por ejemplo para el idioma español argentino:
{'context': {'lang': 'en_US'}}
Supongamos que queremos leer la traducción en inglés americano (en_US) del nombre de un artículo, podríamos hacerlo mediante las siguientes sentencias. Para ello tenemos un ejemplo en el cual tenemos un sistema origen con contenido de los templates de producto en tres idiomas, y actualizamos el sistema destino en cada uno de ellos:
fields = ['name','description_sale','default_code','description_ecommerce']
langs = ['en_US','es_ES','es_AR']
for lang in langs:
prod_data = models_src.execute_kw(dbname_src,uid_src,pwd_src,product.template',\
'read',\
[[producto],fields]],{'context': 'lang': lang})
vals = {'name': prod_data[0].get('name')}
return_id = models_dest.execute_kw(dbname_dest,uid_dest,pwd_dest,'product.template', \
'write', [[prod_id],[vals]])
odeld