Traduir un lloc web a deu, vint o quaranta llengües es fa ràpidament amb una sola IA. La pregunta més difícil és si es pot confiar en el resultat. Un únic model de llenguatge s’inventa de tant en tant paraules, tradueix també els noms de producte o canvia una xifra, i no se n’adona. Per això hem escrit per a Odoo 19 un mòdul en què diverses IA i serveis de traducció treballen sobre el mateix text, es valoren mútuament els resultats de manera anònima i es posen d’acord en la formulació que sona alhora exacta i natural. El que no és unívoc el decideix una persona.
El mòdul es diu ai_translation_consensus i està disponible a GitHub com a programari lliure sota la llicència AGPL-3:
github.com/Alex0176/odoo-ai-translation-consensus
Contingut d'aquesta entrada
La idea: contrast en lloc de confiança
El mòdul sap fer dues coses:
- Traduir: completar les traduccions que falten (o obsoletes) de cada camp traduïble d’Odoo, és a dir, articles de blog, pàgines web, menús, productes i tota la resta que Odoo desa en diversos idiomes. Les IA no veuen només la frase aïllada, sinó els blocs veïns i un fragment de tota la pàgina. Així, les paraules soltes s’entenen en el context correcte.
- Revisió de textos: comprovar el text en la seva pròpia llengua i proposar millors formulacions o correccions. L’original sempre és un dels candidats. Si guanya l’original, no es canvia res.
El nucli és la comprovació mútua. Qualsevol IA és bona jutjant textos aliens, encara que ella mateixa s’equivoqui de tant en tant. El mòdul ho aprofita: diversos proveïdors escriuen una versió cadascun, i després aquests mateixos proveïdors valoren totes les versions sense saber de qui provenen. Un proveïdor no valora la seva pròpia versió.
Així sorgeix una proposta
- Traduir. Cada traductor escriu una versió en paral·lel.
- Comprovacions fixes. Sense IA es controla si les etiquetes HTML, les entitats, els marcadors de posició com
%so{}, les xifres i els enllaços han quedat sense canvis. Una versió que ho incompleixi no pot guanyar mai, per fluida que soni. - Valorar. Les altres versions es barregen i s’anonimitzen. Cada revisor atorga a cadascuna una nota d’exactitud i una de naturalitat (de l’1 al 10), indica una favorita i pot proposar una millora.
- Posar-se d’acord. El rang d’una versió és 0,5 × nota mitjana + 5 × proporció de vots de favorita. Compta com a acord si la millor versió té almenys un 60 % dels vots de favorita i una nota mitjana d’almenys 7,0.
- Segona ronda. Sense acord, les millors versions, juntament amb les propostes de millora dels revisors, tornen a la valoració.
- Persona. Si tampoc llavors queda clar, la proposta espera una decisió.
Si només hi ha serveis de traducció purs sense funció de revisió (per exemple DeepL), un resultat només es considera acordat si almenys dos serveis han lliurat exactament el mateix text. En la revisió de textos, els resultats han de continuar sent clarament semblants a l’original (semblança d’almenys 0,6, mateixes xifres). Els models petits gratuïts de tant en tant responen un lot amb textos desplaçats o aliens. Aquestes respostes es descarten en lloc de sotmetre’s a votació. Un glossari fixa els noms de marca i els termes fixos.
Proveïdors: amb i sense clau
Els serveis gratuïts i de pagament poden participar en la mateixa votació. El mòdul inclou configuracions per defecte per a molts proveïdors; totes estan desactivades després de la instal·lació.
| Tipus | Tradueix | Comprova / corregeix | Exemples |
|---|---|---|---|
| Interfície compatible amb OpenAI | sí | sí | OpenAI, Mistral, DeepSeek, xAI, Groq, Together, OpenRouter, Cerebras, Qwen, Moonshot, GitHub Models, Hugging Face, Ollama, LM Studio, vLLM, llama.cpp |
| Compatible amb OpenAI sense clau | sí | sí | Ollama al servidor propi, Pollinations |
| Anthropic | sí | sí | Claude |
| Google Gemini, Cohere | sí | sí | |
| Ordre local | sí | sí | claude -p o qualsevol programa que llegeixi de stdin i en retorni la resposta |
| Serveis de traducció | sí | no | DeepL, Google Translate, Azure Translator, LibreTranslate, MyMemory, Lingva |
S’introdueix la clau (o el nom d’una variable d’entorn que la conté), es prem Prova la connexió i s’activa el proveïdor. Els noms de model de les configuracions per defecte són punts de partida; qui els utilitzi els hauria de contrastar amb la llista actual del proveïdor. Amb dos o més proveïdors hi ha una autèntica comprovació mútua; amb només un, ningú no revisa la seva feina. L’assistent ho adverteix.
Un lloc web sencer d’un cop
Un assistent d’inici (menú Traducció amb IA → Comença aquí) explica els passos i crea la primera regla. Si el mòdul website està instal·lat, el mòdul pont ai_translation_consensus_website s’hi afegeix automàticament. Amplia l’abast amb «Un lloc web sencer amb tot el que hi ha»: se selecciona el lloc web i es deixa que se’n proposin els continguts. El mòdul examina tots els models amb camps traduïbles que pertanyen al lloc web (pàgines, menús, blogs, productes, esdeveniments, fòrums, cursos i més) i proposa una regla per tipus de contingut, amb les llengües del lloc web com a destinació.
- El que no està instal·lat (fòrums, cursos, galeries) no apareix i s’incorporarà més endavant, tan bon punt s’instal·li.
- Els models de botiga només es proposen si el lloc web té una botiga. Només es recullen els registres publicats.
- El mòdul deliberadament no ofereix contactes, empreses, proveïdors de pagament, tarifes, mètodes d’enviament, programes de fidelització ni filtres de snippets.
- Els noms d’adreça de les pàgines (
seo_name) no es tradueixen. - Els tipus no desitjats es poden eliminar abans de crear.
Crear i cercar no costa res: la regla només enumera quins textos necessiten feina. Només en processar-los es crida els proveïdors i s’originen costos.
Tauler, costos i inici automàtic
El tauler mostra, per regla, quants textos estan acabats, esperen una confirmació o una persona, estan en cua o han fallat. A això s’hi afegeixen el desglossament per llengua i proveïdor, els costos fins ara i els que encara s’esperen, el temps restant estimat i l’interruptor del processament planificat.
Les xifres d’aquesta il·lustració són dades d’exemple i no diuen res sobre els costos reals.
- Els costos es calculen a partir del que els proveïdors comuniquen realment: tokens (OpenAI, Anthropic, Gemini, Cohere) o caràcters (DeepL, Google, Azure). Els tokens es mostren sempre; els diners, només si heu introduït el preu per milió de tokens (o de caràcters) del proveïdor. Les configuracions per defecte no contenen preus, perquè canvien. Els serveis que no comuniquen tokens s’estimen a partir de la longitud del text i es marquen com a estimació.
- Previsió: cost mitjà i temps de treball per text multiplicats pel nombre de textos en cua. És una estimació que millora amb els primers lots.
- Inici automàtic: les regles amb l’opció Inicia’t sol quan un registre canviï només cerquen, a cada execució de l’acció planificada, els registres que han canviat des de l’última cerca. Amb l’acció planificada activada, un lloc web editat es torna a traduir, doncs, sense cap intervenció.
- Avís de finalització: quan es resol l'últim text pendent d'una regla, apareix una sola vegada el missatge «Tots els idiomes traduïts» (en la revisió, «Tots els textos revisats») al canal AI Translation.
Validació per persones
Per defecte, el mòdul no escriu res als vostres registres sense el vostre consentiment. Cada proposta mostra les versions, qui les ha escrit, les notes i les observacions dels revisors. Podeu acceptar la proposta, triar una altra versió, escriure'n una de pròpia o rebutjar-la.
El text i els noms dels proveïdors d'aquesta il·lustració són totalment inventats, només per mostrar la vista.
Qui confia en una regla pot activar Acceptar l'acord automàticament. Les propostes sense acord continuen esperant una persona, fins i tot aleshores. En acceptar, el mòdul torna a comprovar si el text d'origen ha canviat entretant, revisa de nou les comprovacions de marcatge i escriu sense seguiment i sense notificar els seguidors.
Seguretat i protecció de dades
- Tot està desactivat després de la instal·lació. El proveïdor i l'acció planificada estan desactivats. Sense la vostra intervenció no s'envia res.
- Els textos surten del vostre servidor en cas que hi participi un servei allotjat. Una regla es pot marcar com a Confidencial; aleshores només veuen el text els proveïdors marcats com a executats en infraestructura pròpia.
- Les claus es troben en un camp que només veuen els administradors o en una variable d'entorn a la qual només es refereix el nom. En els missatges d'error s'emmascaren i s'envien en capçaleres. Excepció: la clau opcional de MyMemory només es pot passar allà com a paràmetre de consulta.
- L'ordre local executa un programa i, per això, està bloquejada fins que el paràmetre del sistema
ai_translation_consensus.allow_commands'estableixi aTrue. L'ordre es crida sense shell i s'executa en un directori temporal buit. - Injecció de prompts: les tasques marquen el text com a dades. Les instruccions dins del text traduït no es compleixen, i un resultat que vulneri etiquetes o marcadors de posició es descarta.
- Els serveis gratuïts tenen límits. Pollinations permet de manera anònima una resposta cada 45 segons. L'opció de proveïdor
min_intervalrespecta l'interval, i es tenen en compte les respostes «Torneu-ho a provar més tard».
Instal·lació
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
Calen Odoo 19 i el paquet de Python requests. S'inclou una traducció a l'alemany. El mòdul pont ai_translation_consensus_website s'instal·la automàticament si website és present. Després de la instal·lació cal reiniciar el servei d'Odoo, perquè el mòdul conté codi Python. Qui treballi amb un sistema en producció instal·la primer el mòdul en una còpia de la base de dades.
Els primers passos: obriu el menú Traducció amb IA → Proveïdors, proveu i activeu els serveis, després Comença aquí i creeu la primera regla. Amb Cercar textos es generen les propostes, amb Processar un lot es crida els proveïdors. Comenceu amb una regla petita, per exemple una sola entrada de blog i dos idiomes, i reviseu el resultat i el cost abans d'encuar una web sencera.
límits
- La qualitat depèn dels models que activeu. La contrarevisió redueix els errors de models individuals, però no ofereix cap garantia. Per a textos crítics des del punt de vista legal o de seguretat, el mòdul no substitueix un parlant nadiu.
- Els costos creixen ràpidament. Un text costa una crida per traductor, una crida de revisió per revisor i, amb votació dividida, una segona ronda. El context de la pàgina augmenta l'entrada de cada crida. Una regla amb 45 idiomes de destinació multiplica el nombre de textos. Limiteu les execucions amb Registres per cerca, Propostes noves per cerca i Propostes per execució de cron, i afegiu models econòmics o locals com a revisors.
- Només camps amb
translate=True. El text amb format es processa per blocs (el mecanisme de termes d'Odoo). - Els preus i els noms dels models canvien. Els valors predefinits no són una llista de preus mantinguda.
- Creat per a Odoo 19.0 Community. Les altres versions no són compatibles.
Preguntes freqüents
Es tradueix o se sobreescriu alguna cosa sense el meu consentiment?
No, mentre no activeu Acceptar l'acord automàticament. Fins i tot aleshores només s'escriuen les propostes amb acord. Els proveïdors i l'acció planificada estan desactivats després de la instal·lació.
Necessito claus per als proveïdors de pagament?
Només per als proveïdors que en demanen. Amb Pollinations, MyMemory o un model executat en local (per exemple Ollama) funciona sense. Els serveis gratuïts sovint són limitats i lents; per a una web sencera, normalment només serveixen com a complement.
Quant costa una traducció?
Depèn del proveïdor, del model, de la longitud del text i del nombre d'idiomes; per això el mòdul no fixa xifres. El tauler mostra el consum i els costos tan bon punt hàgiu introduït els preus, i estima el cost restant dels textos encuats.
Puc mantenir els textos confidencials?
Sí, amb l'opció de regla Confidencial. Aleshores només treballen els proveïdors marcats com a executats en la vostra pròpia infraestructura, per exemple un Ollama local.
Això substitueix la traducció pròpia d'Odoo?
No. El mòdul utilitza el multilingüisme d'Odoo i escriu en les mateixes traduccions que, altrament, mantindríeu a mà.
Sota quina llicència es troba?
Sota l’AGPL-3. Els errors i les millores són benvinguts com a issue al repositori de GitHub .
Suport de Biricon IT Services
Donem suport a instal·lacions d'Odoo per a petites i mitjanes empreses: des de la implantació, passant per les adaptacions i les migracions, fins a l'operació diària. Si voleu tenir la vostra web d'Odoo en diversos idiomes, reforçar les traduccions amb IA o portar un mòdul amb seguretat a la vostra instància de producció, us ajudarem amb molt de gust. Altres desenvolupaments propis: Arxivar una empresa amb els seus usuaris del portal, Números de document amb prefix, any i comptador i Firmenbuch i verificació d’adreces per a clients austríacs.
Poseu-vos en contacte amb nosaltres
Data: 3 de novembre de 2026. Versió del mòdul 19.0.1.0.0. Les il·lustracions mostren dades d'exemple inventades.