Traducir un sitio web a dez, vinte ou corenta idiomas faise rápido cunha soa IA. O difícil é a pregunta de se se pode confiar no resultado. Un só modelo de linguaxe inventa ás veces palabras, traduce tamén os nomes de produtos ou modifica un número, e el mesmo non se decata. Por iso escribimos para Odoo 19 un módulo no que varias IA e servizos de tradución traballan sobre o mesmo texto, avalían mutuamente os seus resultados de forma anónima e se poñen de acordo na formulación que soa á vez exacta e natural. O que non é unívoco queda para que unha persoa decida.
O módulo chámase ai_translation_consensus e está dispoñible como software libre baixo a licenza AGPL-3 en GitHub:
github.com/Alex0176/odoo-ai-translation-consensus
Contido desta publicación
A idea: contraverificación en vez de confianza
O módulo pode facer dúas cousas:
- Traducir: completar as traducións que faltan (ou obsoletas) de calquera campo traducible de Odoo, é dicir, publicacións de blog, páxinas web, menús, produtos e todo o demais que Odoo garda en varios idiomas. As IA non ven só a frase individual, senón os bloques veciños e un extracto da páxina enteira. Así as palabras individuais enténdense no contexto correcto.
- Revisar textos: comprobar o texto no seu propio idioma e propor formulacións mellores ou correccións. O orixinal é sempre un dos candidatos. Se gaña o orixinal, non se cambia nada.
O núcleo é a verificación mutua. Toda IA é boa xulgando textos alleos, aínda que ela mesma se equivoque ás veces. O módulo aproveita isto: varios provedores escriben cada un unha versión, e os mesmos provedores avalían despois todas as versións sen saber de quen proceden. Un provedor non avalía a súa propia versión.
Así nace unha proposta
- Traducir. Cada tradutor escribe unha versión en paralelo.
- Comprobacións fixas. Sen IA, compróbase se as etiquetas HTML, as entidades, os marcadores de posición como
%sou{}, os números e as ligazóns permaneceron sen cambios. Unha versión que o incumpra nunca pode gañar, por moi fluída que soe. - Avaliar. As demais versións mestúranse e anonimízanse. Cada revisor dá a cada unha unha nota de exactitude e de naturalidade (de 1 a 10), nomea un favorito e pode propor unha mellora.
- Acordar. O rango dunha versión é 0,5 × nota media + 5 × proporción de votos de favorito. Considérase acordo cando a mellor versión ten polo menos o 60 % dos votos de favorito e unha nota media de polo menos 7,0.
- Segunda rolda. Sen acordo, as mellores versións, xunto coas propostas de mellora dos revisores, volven á avaliación unha vez máis.
- Persoa. Se tampouco así se aclara, a proposta agarda unha decisión.
Se só hai servizos de tradución puros sen función de revisión (por exemplo DeepL), un resultado só se considera acordado se polo menos dous servizos entregaron exactamente o mesmo texto. Na revisión de textos, os resultados deben seguir sendo recoñecibelmente semellantes ao orixinal (semellanza de polo menos 0,6, mesmos números). Os modelos pequenos e gratuítos responden ás veces a un lote con textos desprazados ou alleos. Esas respostas descártanse en vez de votarse. Un glosario fixa nomes de marcas e termos fixos.
Provedores: con chave e sen chave
Os servizos gratuítos e os de pago poden estar na mesma votación. O módulo inclúe predefinicións para moitos provedores; todos están desactivados despois da instalación.
| Tipo | Traduce | Revisa / corrixe | Exemplos |
|---|---|---|---|
| Interface compatible con OpenAI | si | si | OpenAI, Mistral, DeepSeek, xAI, Groq, Together, OpenRouter, Cerebras, Qwen, Moonshot, GitHub Models, Hugging Face, Ollama, LM Studio, vLLM, llama.cpp |
| Compatible con OpenAI sen chave | si | si | Ollama no propio servidor, Pollinations |
| Anthropic | si | si | Claude |
| Google Gemini, Cohere | si | si | |
| Comando local | si | si | claude -p ou calquera programa que lea de stdin e escriba a resposta |
| Servizos de tradución | si | non | DeepL, Google Translate, Azure Translator, LibreTranslate, MyMemory, Lingva |
Introdúcese a chave (ou o nome dunha variable de contorno que a conteña), prémese Probar a conexión e actívase o provedor. Os nomes de modelo das predefinicións son puntos de partida; quen os use debería contrastalos coa lista actual do provedor. Con dous ou máis provedores hai unha verdadeira contraverificación; cun só, ninguén revisa o seu traballo. O asistente avisa diso.
Un sitio web enteiro dunha vez
Un asistente de inicio (menú Tradución con IA → Comezar aquí) explica os pasos e crea a primeira regra. Se o módulo website está instalado, o módulo ponte ai_translation_consensus_website vén automaticamente. Engade o alcance “Un sitio web enteiro con todo o que hai nel”: escóllese o sitio web e déixanse propor os contidos. O módulo examina todos os modelos con campos traducibles que pertencen ao sitio web (páxinas, menús, blogs, produtos, eventos, foros, cursos e máis) e propón unha regra por tipo de contido, cos idiomas do sitio web como destino.
- O que non está instalado (foros, cursos, galerías) non aparece e incorpórase máis tarde, en canto se instale.
- Os modelos da tenda só se propoñen se o sitio web ten tenda. Só se recollen rexistros publicados.
- Contactos, empresas, provedores de pagamento, listas de prezos, modos de entrega, programas de fidelidade e filtros de snippets non os ofrece o módulo deliberadamente.
- Os nomes de enderezo das páxinas (
seo_name) non se traducen. - Os tipos non desexados pódense retirar antes de crear.
Crear e buscar non custan nada: a regra só enumera que textos precisan traballo. Só ao procesar se chama aos provedores e xorden custos.
Panel, custos e arranque automático
O panel amosa por regra cantos textos están rematados, agardan unha confirmación ou unha persoa, están en cola ou fallaron. A isto engádense o desglose por idioma e provedor, os custos ata agora e os que aínda se esperan, o tempo restante estimado e o interruptor do procesamento planificado.
Os números desta ilustración son datos de exemplo e non din nada sobre os custos reais.
- Os custos calcúlanse a partir do que os provedores comunican realmente: tokens (OpenAI, Anthropic, Gemini, Cohere) ou caracteres (DeepL, Google, Azure). Os tokens móstranse sempre; o diñeiro só se vostede introduciu no provedor o prezo por millón de tokens (ou de caracteres). As predefinicións non conteñen prezos, porque estes cambian. Os servizos que non comunican tokens estímanse a partir da lonxitude do texto e márcanse como estimación.
- Previsión: custos medios e tempo de traballo por texto multiplicados polo número de textos en cola. Trátase dunha estimación que mellora cos primeiros lotes.
- Arranque automático: as regras coa opción Iniciar por si mesmas cando cambie un rexistro buscan en cada execución da acción planificada só rexistros modificados desde a última busca. Coa acción planificada activada, unha páxina web editada tradúcese de novo, polo tanto, sen ningún paso manual.
- Aviso de remate: Cando se completa o último texto aberto dunha regra, aparece unha soa vez a mensaxe «Todos os idiomas traducidos» (na revisión, «Todos os textos revisados») na canle AI Translation.
Aprobación por persoas
De forma predeterminada, o módulo non escribe nada nos seus rexistros sen o seu consentimento. Cada proposta amosa as versións, quen as escribiu, as notas e os comentarios dos revisores. Pode aceptar a proposta, escoller outra versión, escribir unha formulación propia ou rexeitala.
O texto e os nomes dos provedores nesta imaxe son totalmente inventados para amosar a vista.
Quen confía nunha regra pode activar Aceptar automaticamente o acordo. As propostas sen acordo agardan igualmente por unha persoa. Ao aceptar, o módulo comproba de novo se o texto de orixe cambiou entrementres, volve executar as comprobacións de marcado e escribe sen seguimento e sen notificar os seguidores.
Seguridade e protección de datos
- Todo está desactivado despois da instalación. Os provedores e a acción planificada están desactivados. Sen a súa intervención non se envía nada.
- Os textos saen do seu servidor en canto participa un servizo aloxado. Unha regra pode marcarse como Confidencial; entón só ven o texto os provedores marcados como executados na súa propia infraestrutura.
- As claves están nun campo que só ven os administradores ou nunha variable de contorno á que só remite o nome. Nas mensaxes de erro enmascáranse e envíanse en cabeceiras. Excepción: a clave opcional de MyMemory só pode transmitirse alí como parámetro de consulta.
- O comando local executa un programa e por iso está bloqueado ata que o parámetro do sistema
ai_translation_consensus.allow_commandse estableza enTrue. O comando invócase sen shell e execútase nun directorio temporal baleiro. - Inxección de prompts: As solicitudes marcan o texto como datos. As instrucións contidas no texto traducido non se seguen, e descártase un resultado que viole etiquetas ou marcadores de posición.
- Os servizos gratuítos teñen límites. Pollinations permite de forma anónima unha resposta cada 45 segundos. A opción de provedor
min_intervalrespecta o intervalo, e as respostas «Ténteo de novo máis tarde» tómanse en conta.
Instalación
git clone https://github.com/Alex0176/odoo-ai-translation-consensus.git
ln -s /pfad/odoo-ai-translation-consensus/ai_translation_consensus /pfad/addons/
ln -s /pfad/odoo-ai-translation-consensus/ai_translation_consensus_website /pfad/addons/
odoo-bin -c odoo.conf -d <datenbank> -i ai_translation_consensus --stop-after-init
Requírense Odoo 19 e o paquete de Python requests. Inclúese unha tradución ao alemán. O módulo ponte ai_translation_consensus_website instálase automaticamente se website está presente. Despois da instalación hai que reiniciar o servizo de Odoo, porque o módulo contén código Python. Quen opere un sistema produtivo instala primeiro o módulo nunha copia da base de datos.
Os primeiros pasos: abrir o menú Tradución con IA → Provedores, probar e activar os servizos, despois Comezar aquí e crear a primeira regra. Con Buscar textos xéranse as propostas, con Procesar un lote chámase aos provedores. Comece cunha regra pequena, por exemplo unha soa entrada de blog e dous idiomas, e revise o resultado e os custos antes de poñer en cola unha páxina web enteira.
Límites
- A calidade depende dos modelos que active. A contraverificación reduce os erros de modelos individuais, pero non dá garantía. Para textos de relevancia legal ou de seguridade, o módulo non substitúe a un falante nativo.
- Os custos medran rapidamente. Un texto custa unha chamada por tradutor, unha chamada de revisión por revisor e, se a votación está dividida, unha segunda rolda. O contexto da páxina aumenta a entrada de cada chamada. Unha regra con 45 idiomas de destino multiplica o número de textos. Limite as execucións con Rexistros por busca, Novas propostas por busca e Propostas por execución de cron, e engada modelos económicos ou locais como revisores.
- Só campos con
translate=True. O texto con formato procésase por bloques (o mecanismo de termos de Odoo). - Os prezos e os nomes dos modelos cambian. Os valores predeterminados non son unha lista de prezos actualizada.
- Construído para Odoo 19.0 Community. Non se admiten outras versións.
Preguntas frecuentes
Tradúcese ou sobrescríbese algo sen o meu consentimento?
Non, mentres non active Aceptar automaticamente o acordo. Mesmo entón só se escriben propostas con acordo. Os provedores e a acción planificada están desactivados despois da instalación.
Necesito claves para os provedores de pago?
Só para os provedores que as esixen. Con Pollinations, MyMemory ou un modelo operado localmente (por exemplo Ollama) funciona sen elas. Os servizos gratuítos adoitan ser limitados e lentos; para unha páxina web enteira normalmente só serven como complemento.
Canto custa unha tradución?
Depende do provedor, do modelo, da lonxitude do texto e do número de idiomas, por iso o módulo non indica cifras fixas. O panel amosa o consumo e os custos en canto introduza os prezos, e estima o custo restante dos textos postos en cola.
Podo manter os textos confidenciais?
Si, coa opción de regra Confidencial. Entón só traballan os provedores marcados como executados na súa propia infraestrutura, por exemplo un Ollama local.
Substitúe isto a tradución propia de Odoo?
Non. O módulo usa o multilingüismo de Odoo e escribe nas mesmas traducións que, doutro modo, mantería a man.
Baixo que licenza está?
Baixo a AGPL-3. Os erros e as melloras son benvidos como issue no repositorio de GitHub .
Apoio de Biricon IT Services
Atendemos instalacións de Odoo para pequenas e medianas empresas: desde a implantación, pasando por adaptacións e migracións, ata a operación continua. Se quere operar a súa páxina web de Odoo en varios idiomas, reforzar as traducións con IA ou levar un módulo con seguridade á súa instancia produtiva, axudarémolo encantados. Outros desenvolvementos propios: Arquivar unha empresa xunto cos seus usuarios do portal, Números de documento con prefixo, ano e contador e Firmenbuch e verificación de enderezos para clientes austríacos.
Data: 3 de novembro de 2026. Versión do módulo 19.0.1.0.0. As imaxes amosan datos de exemplo inventados.