Skip to Content
Screenshot: Website builder without extra AI credits

AI Translation

licenseOPL-1 Version16.0, 18.0, 19.0 Community Enterprise packageWebsite.AI authorEquitania Software GmbH supportsupport@equitania.de

Translate websites, products & messages with your own AI provider!

Screenshot: Website builder without extra AI credits

AI Translation replaces Odoo's built-in Google Translate integration with a language model of your choice. The familiar "Translate" link on every message stays exactly where it is — but the translation now comes from LangDock (EU data centers), OpenAI, Anthropic, or a local model on your own hardware. Each message is translated once per language and cached, your API key is stored encrypted, and with a local provider no message ever leaves your network.

The module optionally also serves the AI translation in the website builder and the text editor — requests Odoo otherwise sends to its own paid AI service. The builder’s translation panel then names the provider and model doing the work.

Only with ownERP

The help for this module is findable — for people and for AI

Three help pages in German and English, shipped inside the module. With Help Docs installed you search them in full text — and an AI assistant reads the same content through a machine-readable module card.

A person searches
Overview & Setup
Overview & Setup
This module replaces Odoo's Google-based message translation with an AI translation using a provider of your choice. The "Translate" link on messages in Discuss and in the chatter of …
Reasoning Models & Translation
message: only the actual answer is taken over, never the chain of thought. That matters because such chains regularly contain restated user input and statements the model itself …
An assistant asks
eq.helper.doc.get_capability_card(
  "eq_ai_translate")
Returns the models, fields, methods and permission rules of AI Translation in a form an assistant can act on — instead of guessing them from screenshots.
“Which service translates instead of Google Translate?” — answered from the module card, not from training data.

Full-text search and module card come from Help Docs (eq_helper). This module ships the content — no extra configuration.

Features

Screenshot: One click, one translation

One click, one translation

The "Translate" link on messages in Discuss and in the chatter of quotations, orders and invoices works as before — including automatic source-language detection and a "Translated from" note in the user's own language.

  • Formatting, links and emojis are preserved
  • Each message is translated once per language, then served from cache — one API call instead of many

Your provider, your rules

Pick the translation engine under Settings › Artificial Intelligence: Melious.ai (sovereign EU hosting, the default), LangDock (EU/US), IONOS, OpenAI, Anthropic, OpenRouter, Mammouth, LiteLLM — or Ollama and LM Studio running on your own servers. Model and region are configured on the same page, no code required.

  • 11 provider options, from sovereign EU hosting to fully local
  • Built-in connection test: checks key and model with one request and reports the exact cause on failure
  • Free model choice, e.g. gemma-4-31b or gpt-4o-mini for low cost per translation
Screenshot: Website builder without extra AI credits
Screenshot: Website builder without extra AI credits

GDPR without compromise

Choose where your message content is processed: LangDock with region EU keeps data in European data centers; Ollama or LM Studio keep it entirely inside your network. The settings page states plainly which provider processes data where.

  • EU region for European data residency
  • Fully local operation possible — no cloud account needed

Encrypted API key

The provider key is stored Fernet-encrypted in the database and is never displayed again after saving. Only administrators can manage it; a stored-key indicator and a "Clear API Key" button keep the state visible at all times.

  • Encryption key can live outside the database (environment variable)
  • Existing plain-text keys are encrypted automatically on update
Screenshot: Website builder without extra AI credits

Website builder without extra AI credits

Odoo sends the page translation in the website builder and the "Translate with AI" toolbar item to its own paid AI service. Switch that over to your configured provider — one checkbox in the settings. The builder’s translation panel then names the provider and model doing the work, so nobody has to guess.

  • No AI credits consumed — the content goes to the provider you already pay for
  • Switch it off and Odoo’s own service stays in charge; the editor keeps working either way
Screenshot: Website builder without extra AI credits

Overview instead of guesswork

An overview under Settings › Technical › Translations shows, per content item and language, how many text fragments are already translated: as a list with a percentage, and as a matrix that puts content and languages side by side. Four states are visible at a glance: not translated, partially translated, fully translated, and no translatable text. The overview’s action menu queues translation for several items at once — either fill in what is missing or discard everything and translate again. The runs work in the background and block no session; each job carries its outcome when it finishes, or the plain-text reason if it failed.

  • Website pages, blog posts and products are already registered as content types; further models can be added without programming
  • Filterable and groupable by language, state and content type — the overview opens filtered to "not fully translated" by default

Translate products where they are, not where the settings are

Select the rows in the product list, open the action menu, choose "Translate with AI" — a dialog asks for the target languages and the texts, and the run joins the queue. Name, internal note, sales, purchase and stock descriptions go through in one pass instead of record by record.

  • The dialog is bound to no model: one checkbox on a content type puts the same entry into the list of partners, quotation texts or any other registered model — no programming
  • A large catalogue costs nothing when idle: for products the hourly check is switched off, and rows appear only for what someone actually asked to translate
  • Limits are stated, not hit: an oversized selection, a record without translatable text or a missing write permission is reported straight away instead of becoming a row of failed jobs

Frequently Asked Questions

Which Odoo editions are supported?

Odoo Community and Enterprise, version 19.0.

What are the dependencies?

The Odoo modules Discuss (mail), AI Foundation (eq_ai_base) and ownERP-Helper (eq_helper) — Odoo installs those by itself. In addition, one Python package has to be installed on the server: see the next two entries.

Does the module need additional Python packages?

Yes — eq-chatbot-core, which talks to the AI providers. Odoo installs module dependencies by itself, but never a Python package: your administrator installs that one once on the server. Without it the module cannot be installed.

How is that package installed?

Self-hosted (own server, Docker): install it into the same Python environment Odoo runs in and restart the service — pip install eq-chatbot-core. In a Docker setup, add the same line to your image so it survives a container rebuild.

Odoo.sh: add eq-chatbot-core to a requirements.txt in your repository — either in the branch root or in the folder that contains your addons. Odoo.sh installs it on the next build; a pip install typed into the shell would be lost with the one after. The installation shows up in the build log (~/logs/pip.log).

The package is published on PyPI and needs no license key of its own.

Does it work without an external AI provider?

Yes. With Ollama or LM Studio the translation runs on your own hardware — no API key, no cloud account, no data leaving your network.

Is it GDPR-compliant?

You decide: LangDock with region EU processes messages in European data centers; a local provider keeps them in-house. The privacy notice in the settings names the data location for every option.

How is my API key protected?

It is stored Fernet-encrypted, is never shown again after saving, and only administrators can change or remove it. The encryption key can be kept outside the database via an environment variable.

What happens to Google Translate?

The module replaces the Google Translate integration in the settings. You no longer need a Google Cloud account or Google API key.

Does this cover every AI feature in Odoo?

No, and we say so plainly. Covered are the message translation in Discuss, the page translation in the website builder and the "Translate with AI" editor item. Three features stay with Odoo’s own service because Odoo calls it directly in server code, where no module can intervene: placeholder texts in the website configurator, job descriptions in Recruitment and the CRM business card scanner.

Can product texts be translated too?

Yes. Products ship as a registered content type, and the product list carries a "Translate with AI" entry in its action menu — covering name, internal note, sales, purchase and stock descriptions. Any other model with translatable fields is enabled the same way: register it as a content type and tick "Offer in the action menu". One run covers up to 2000 combinations of record and language.

Do you provide support?

Yes — via support@equitania.de and the support portal support.equitania.de.

Will it keep working after Odoo updates?

Yes, within Odoo 19.x. Major version upgrades are delivered as a new module version.

More solutions from Equitania · Weitere Lösungen von Equitania

Support · Kontakt

We are happy to support you · Wir unterstützen Sie gerne.

Equitania Software GmbH ownERP
Equitania Software GmbH
Weiherstraße 13
75173 Pforzheim
Deutschland · Germany
Telefon: +49 7231 16 604 0
Telefax: +49 7231 16 604 200
Homepage: www.equitania.de · www.ownerp.com · odoo2fast.report
Support: support.equitania.de
E-Mail: support@equitania.de

EN · All information on this page is provided for product description purposes only and is not legally binding. It constitutes neither a guarantee of quality nor an assurance of any particular scope of functions, fitness for a particular purpose or specific results; only the contractual agreements and the scope of delivery of the version actually installed are authoritative. Screenshots show example configurations. Product and company names mentioned are trademarks or registered trademarks of their respective owners; naming them implies neither affiliation with nor endorsement by those owners. This description was written with AI assistance and was reviewed and approved before publication; the German version prevails.