> ## Content Index
> Fetch the complete content index at: https://openerpspain.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Campos multi-idioma en OpenERP
- URL: https://openerpspain.com/campos-multi-idioma-en-openerp/
- Published: 2011-05-10T21:25:00.000Z
- Updated: 2026-08-12T19:42:17.000Z
- Description: Llevo una temporada conectándome al canal de IRC de OpenERP (irc://irc.freenode.net/#openobject [irc://irc.freenode.net/#openobject.]), es interesante porque siempre hay dudas nuevas para el que esté aprendiendo a programar en OpenERP, puedes ver como otros programadores solucionan los mismos proble
- Author: Nacho
- Tags: Planet Blog, OpenERP, Desarrollo

Hace un par de días, un programador compartió un problema que tenía en el chat. En el caso de tener un campo al que se le quiere añadir un sufijo que pero al mismo tiempo tiene otro campo, y ambos campos están definidos como traducibles… ¿como puedes hacer para combinar los dos campos en todos los idiomas disponibles?  

## Funcionamiento de los campos multi idioma

En primer lugar, debemos saber que cuando llamamos a uno de los métodos del *orm* en el *context*, estamos pasando la información del idioma. Por otro lado, tenemos que tener en cuenta que los idiomas disponibles en nuestra instancia de OpenERP se encuentran en *‘res.lang’*.

De esta manera, cuando hacemos una operación sobre un campo que tiene habilitada la traducción, si le pasamos en el *context* la información del idioma sólo realizará la operación sobre ese idioma, y si no, automáticamente realizará la operación sobre el primer idioma (por defecto en\_US).

Asimismo, para hacer una operación sobre todos los idiomas en un campo, tendremos que realizar esa operación tantas veces como idiomas tengamos disponibles en *‘res.lang’.* Pasando de igual manera, en cada iteración el idioma en el *context* para realizar la operación.

En el siguiente código de ejemplo lo que hago es cambiar el nombre de un producto por nombre-nombre en todos los idiomas, por ejemplo, en mi instalación de OpenERP tengo un producto con el nombre en español ‘prueba’ y en inglés ‘test’, después de pasar este código cambia el nombre en español por ‘prueba-prueba’ y en inglés ‘test-test’.

 lang\_obj \= self.pool.get('res.lang')  
user\_obj \= self.pool.get('res.user')  
product\_obj \= self.pool.get('product.obj') 

if context is None:  
context \= {}

\# obtengo el idioma del context  
previous\_lang \= context.get('lang')

\# recorro todos los idiomas  
lang\_ids \= lang\_obj.search(cr, uid,\[\])  
for lang in lang\_obj.browse(cr,uid,lang\_ids):

\# guardo el idioma en el context  
context\['lang'\] \= lang.code

\# obtengo en producto, pasando el nuevo context para que me devuelva en nombre en el idioma pasado  
for product in product\_obj.browse(cr,uid,ids, context):  
\# escribo el producto con los cambios, pasando el nuevo context para que escriba el nombre en el idioma pasado  
product\_obj.write(cr, uid, product.id, {'name':product.name+'-'+product.name}, context)

context\['lang'\] \= previous\_lang

Por último, encuentra más información sobre este módulo en el siguiente enlace**:** [http://angelmoya.es/openerp/campos-multi-idioma-en-openerp/](http://angelmoya.es/openerp/campos-multi-idioma-en-openerp/?ref=openerpspain.com)

Finalmente, para más información sobre OpenERP visita nuestra web haciendo un [clic aquí](https://openerpspain.com/modulos-openerp-para-seguir-costes-e-ingresos-comprometidos-en-proyectos/).

![Campos multi idioma](https://openerpspain.com/content/images/2026/08/logo-40.png)