Pular para o conteúdo

Campos Tradução em Odoo: Guia Completo para Configurar e Usar

Descubra como o Odoo gere campos traduzíveis no seu modelo de dados e como tirar partido deles para internacionalizar processos na sua empresa
6 de março de 2026 por
Campos Tradução em Odoo: Guia Completo para Configurar e Usar
Dasolo
| Nenhum comentário ainda

Muitas empresas usam Odoo em ambientes multilingues: equipas de vendas em França, armazéns na Alemanha, clientes em Espanha. Para que uma mesma ficha de produto ou modelo de e‑mail apareça corretamente em cada idioma, o Odoo oferece os chamados campos traduzidos — campos capazes de armazenar valores distintos conforme a língua do utilizador.


Um campo traduzido guarda uma versão do texto por idioma ativo. Assim, a mesma linha da base de dados pode apresentar «Cadeira» a um utilizador em português e «Chair» a outro em inglês — sem criar registos duplicados. É uma única fonte de verdade com várias representações linguísticas.

Este conteúdo mostra os princípios do funcionamento dos campos traduzidos no ORM do Odoo, explica como os criar e gerir e dá exemplos reais onde esta funcionalidade traz benefícios operacionais e de experiência do utilizador.

O que são campos traduzidos no Odoo


Na prática, um campo traduzido é um campo de texto no modelo de dados do Odoo que pode conter um valor diferente para cada idioma activo. Para o utilizador, a tradução é transparente: o sistema mostra automaticamente o texto na língua que estiver definida no seu contexto.


Que tipos de campo suportam tradução

  • Char: texto curto de uma só linha, útil para nomes de produto, títulos e etiquetas curtas
  • Text: blocos de texto mais longos, apropriados para descrições ou notas internas
  • Html: conteúdo enriquecido com marcação HTML, usado em páginas web, e‑mails e modelos de comunicação

Campos numéricos, datas, relações Many2one e booleanos não são traduzíveis — a tradução aplica‑se apenas a conteúdos legíveis por pessoas.


Como aparece na interface

Quando um campo é traduzível, surge um ícone de bandeira junto ao campo em modo edição. Ao clicar, abre‑se um diálogo onde se podem ver e editar os valores para cada língua ativa, centralizando todas as traduções num único lugar.


Em modo de leitura, o utilizador vê simplesmente o texto na sua língua. Se não existir tradução para essa língua, o Odoo recorre ao idioma base da base de dados (normalmente inglês) em vez de deixar o campo vazio.

Como funcionam os campos traduzidos


Perceber como isto funciona por dentro ajuda a decidir quando usar tradução e como operacionalizar a manutenção de conteúdos em várias línguas.


O parâmetro translate=True

Na camada técnica do ORM, activa‑se a tradução acrescentando o argumento translate=True à definição do campo. É uma configuração simples mas com efeitos amplos no comportamento do campo.

Exemplo mínimo em Python para um campo char personalizado:

Com apenas esse parâmetro, o Odoo passa a armazenar e devolver versões do campo conforme a língua activa no contexto — uma solução limpa e integrada no framework.


Onde as traduções são gravadas

O mecanismo de armazenamento evoluiu conforme as versões do Odoo:

  • Até Odoo 15: as traduções estavam numa tabela dedicada ir.translation, cada valor traduzido era uma linha ligada ao modelo, ao campo, ao id do registo e ao código de língua.
  • Odoo 16 em diante: as traduções passaram a ser armazenadas na própria tabela do modelo, normalmente numa coluna JSONB que guarda um objecto com pares idioma→valor, por exemplo {"pt_PT":"Base de apoio","en_US":"Laptop Stand"}.

A mudança para JSONB trouxe ganhos de desempenho significativos: evita junções pesadas e torna as consultas muito mais rápidas em modelos com muitos registos.


Como o contexto de língua influencia operações

Ao ler um campo traduzido, o Odoo procura o valor correspondente ao idioma activo no contexto. Em integrações ou chamadas API, controla‑se o idioma passando o código no contexto para garantir que se obtém a versão esperada:

Exemplo de chamada via API com contexto de língua:

Isto é essencial em integrações: sempre especifique o idioma no contexto para ler ou escrever a tradução correta.


translate com função (callable)

O parâmetro translate também pode aceitar uma função. Um uso comum é marcar labels estáticas (por exemplo, opções de selection) com translate=_ para que entrem no fluxo normal de exportação e tradução de cadeias de caracteres do módulo — trata‑se de tradução de strings estáticas, diferente das traduções por registo.


Comportamento de fallback

Se não existir tradução para o idioma activo, o Odoo não retorna vazio: usa o valor do idioma base da base de dados. Esse fallback evita lacunas visíveis para os utilizadores em ambientes parcialmente traduzidos.

Cenários empresariais práticos


Os campos traduzidos resolvem necessidades concretas em empresas multilingues. Abaixo estão cenários práticos onde fazem diferença real.


1. E‑commerce: nomes e descrições multilíngues

Numa loja online criada com Odoo, os clientes esperam ver produtos no seu idioma. Campos como name e description em product.template são traduzíveis por defeito, permitindo gerir um único catálogo com textos localizados — sem duplicar produtos nem complicar gestão de stocks e preços.

O resultado é simples: o mesmo produto mostra nomes e descrições diferentes conforme o visitante, enquanto lógica comercial e inventário permanecem unificados.


2. Modelos de e‑mail em empresas internacionais

Os templates de e‑mail utilizam campos Html traduzíveis. Assim, ao enviar uma confirmação de encomenda para um cliente alemão, o corpo do e‑mail pode sair automaticamente em alemão, desde que a tradução exista.


Isto elimina a necessidade de criar templates separados por língua ou lógica condicional complexa no envio de comunicações.


3. Conteúdos de website e blog

Páginas do website em Odoo usam Html traduzível para o conteúdo. Quando activa várias línguas, os editores mantêm versões alternativas do mesmo URL sem recorrer a plugins externos — cada idioma tem o seu texto próprio.


Do ponto de vista SEO, isso permite também ter meta‑title e meta‑description distintos por idioma, melhorando a indexação local em diferentes países.


4. Labels de selection para equipas internacionais

Em campos Selection definidos em código Python, as opções podem ser marcadas para tradução. Um menu com estados como «Em Andamento», «Em Espera», «Concluído» aparece na língua do utilizador, facilitando o uso em equipas multinacionais.


Isto é especialmente útil em áreas como RH, gestão de projetos e operações, onde colaboradores em vários países usam os mesmos registos mas em línguas distintas.


5. Campos personalizados em relatórios multilingues

Se tiver campos personalizados para categorizações internas (categorias de serviço, níveis de risco), torná‑los traduzíveis garante que relatórios e dashboards mostram as etiquetas corretas para cada utilizador, evitando misturas de línguas.


Sem tradução nesses campos, um utilizador francês pode ver etiquetas em inglês nos seus relatórios, o que prejudica a clareza e a adoção do sistema.

Criar ou ativar campos traduzidos


Existem várias formas de activar a tradução: diretamente em código Python, via API para campos criados no Studio, ou usando as ferramentas de exportação/importação do Odoo.


Via Python (recomendado para desenvolvedores)

O método mais limpo é definir o campo no modelo Python com translate=True — é o padrão em guias técnicas e garante controlo total sobre o comportamento.


Exemplo típico em módulo personalizado:

Basta acrescentar translate=True: a interface, o armazenamento e o fallback ficam gestionados automaticamente pelo framework.


Campos criados no Odoo Studio

O Odoo Studio não expõe a opção translate no painel de criação de campos. Por isso, campos Char ou Text criados por Studio não são traduzíveis por defeito.


No entanto, pode ativar‑se a tradução num campo do Studio após a sua criação via API XML‑RPC, atualizando o registo correspondente em ir.model.fields.


Exemplo de fluxo para localizar o campo e alterar o atributo translate via API:

Esta abordagem é útil para equipas que personalizam o sistema sem aceder ao código‑fonte, usando scripts ou automações para ajustar propriedades dos campos.


Gerir traduções: exportar e importar

O fluxo de tradução no Odoo é directo e adequado tanto para pequenos ajustes como para trabalhos em larga escala:


  1. Exporte as cadeias a traduzir em Settings > Translations > Export Translation para obter um ficheiro .po ou .csv com as entradas por traduzir.
  2. Traduza o ficheiro ou entregue‑o a um tradutor profissional.
  3. Importe em Settings > Translations > Import Translation para carregar as traduções de volta no sistema.

Para traduções de registo (nomes de produto, por exemplo), também pode editar diretamente a partir do ícone de bandeira no formulário — prático para volumes reduzidos.


Traduzir via API

Ao escrever ou atualizar um campo traduzível via XML‑RPC, inclua o idioma no contexto para indicar qual versão está a ser alterada:


Exemplo de escrita da tradução em francês para o nome de um produto:

Ao escrever com o contexto de língua, altera‑se apenas essa tradução específica — as outras línguas ficam intactas. É a forma recomendada de sincronizar conteúdos de sistemas externos com o Odoo.

Boas práticas


Algumas práticas simples tornam o uso de campos traduzidos muito mais previsível e fácil de manter.


Defina primeiro o valor na língua base

Comece por assegurar que o texto no idioma base está correto e completo. As outras traduções dependem desse conteúdo inicial; se alterar o texto base mais tarde, as traduções não são atualizadas automaticamente e podem ficar desalinhadas.


Só traduza o que precisa de ser traduzido

Nem todos os campos de texto exigem tradução. Códigos internos, identificadores técnicos ou campos usados apenas por equipas que falam uma só língua não beneficiam de translate=True. Evite marcar em excesso para reduzir trabalho de manutenção.


Use exportação/importação para trabalhos volumosos

Para catálogos grandes (centenas ou milhares de produtos), editar traduções uma a uma é inviável. Exporte as strings, traduza em lote e reimporte para poupar tempo e reduzir erros.


Passe o contexto de língua em todas as chamadas API

Quando ler ou gravar via API, seja explícito e inclua 'lang': 'xx_XX' no contexto. Caso contrário, poderá estar a gravar no idioma do utilizador conectado por defeito, causando sobrescritas indesejadas.


Mantenha um processo de revisão quando o conteúdo fonte mudar

Se atualizar o texto no idioma base, implemente um fluxo que notifique tradutores para rever e atualizar as traduções. Sem isso, as versões ficam desincronizadas e perdem qualidade.

Erros frequentes a evitar


Mesmo consultores experientes cometem estes erros ao integrar ou configurar Odoo. Evitá‑los desde o início reduz tempo de depuração e retrabalho.


Esquecer de definir o contexto de língua em escritas via API

Este é o erro mais frequente em integrações: gravar um nome de produto sem contexto faz com que o valor seja escrito no idioma padrão do utilizador que está a executar a operação — e isto pode sobrepor a tradução que pretendia atualizar. Seja explícito quanto ao idioma em todas as escritas.


Pressupor que traduções aparecem em pesquisas por defeito

Pesquisar por um texto traduzível devolve resultados na língua activa. Se um produto tem só a versão em inglês e o utilizador está em francês, a pesquisa por «Support pour ordinateur portable» não encontrará o registo até haver tradução. Garanta que as traduções críticas estão presentes para que pesquisas funcionem entre idiomas.


Misturar campos traduzíveis e não traduzíveis em relatórios

Relatórios que combinam campos traduzidos e não traduzidos podem ficar incoerentes: algumas etiquetas aparecem no idioma do utilizador, outras ficam no idioma base. Reveja os campos usados nos seus relatórios e decida quais precisam de tradução.


Cuidado com campos calculados que usam textos traduzidos

Campos calculados que concatenam várias traduções são avaliados no idioma activo no momento da execução — o resultado não é armazenado por língua automaticamente. Se precisa de versões calculadas por idioma, implemente a lógica para gerar e armazenar essas variações por língua.


Remover um idioma sem limpar traduções

Ao desativar um idioma, os valores correspondentes podem permanecer na base de dados, dependendo da versão do Odoo. Não é normalmente problemático, mas pode acumular lixo. Faça uma verificação e limpeza quando remover línguas em produção.

Resumo


Os campos traduzidos são uma funcionalidade prática e essencial do Odoo para empresas que operam em mais do que um idioma. Um único parâmetro, translate=True, permite gerir conteúdos localizados para catálogos, templates de e‑mail, páginas web e campos personalizados sem duplicar registos.


O importante é usar a tradução de forma ponderada: ative‑a onde traz valor, trate traduções em lote quando houver volume e seja explícito sobre o idioma em todas as chamadas API para evitar erros.


Se estiver a montar uma loja multilingue, a implementar Odoo para equipas internacionais ou a desenvolver um módulo, dominar os campos traduzidos ajuda a criar soluções mais limpas e amigáveis para o utilizador.

A trabalhar num projeto Odoo multilingue e precisa de ajuda com configuração de campos ou fluxos de tradução? Fale com a equipa Dasolo Ajudamos a configurar campos traduzidos, workflows de tradução e integrações para que tudo funcione corretamente.

Campos Tradução em Odoo: Guia Completo para Configurar e Usar
Dasolo 6 de março de 2026
Compartilhar esta publicação
Iniciar sessão para deixar um comentário