DE · AT · CHAnleitung

Übersetzungen in Odoo pflegen: Sprachen und Begriffe

Aktualisiert:

Gilt für: Odoo 20.0; Community und Enterprise; Odoo Online, Odoo.sh, On-Premise; Apps Website, Einstellungen; Serveroption nur On-Premise/Odoo.sh; Dialoge Community 20.0

Kurz gesagt

Sprachen installieren Sie in Odoo 20.0 in der App Einstellungen im Abschnitt Sprachen; jeder Benutzer wählt seine Sprache selbst im Profil. Website-Inhalte übersetzen Sie im Editor über Bearbeiten ‣ Übersetzen, Produktnamen und andere Feldwerte am Datensatz. Eigene Begriffe ändern Sie über Export und Import der Übersetzungen einer App; nach dem öffentlichen Community-Quellcode 20.0 trifft dieser Weg nur die gespeicherten Einträge an Datensätzen und überspringt die Beschriftungen, die Odoo aus dem Programmcode der Module liest, und die offizielle Dokumentation weist diese Grenze für Enterprise, Odoo Online und Odoo.sh nicht aus.

Das Wichtigste

  • Sprachen installieren: Einstellungen ‣ Sprachen; eine Sprache der Website zusätzlich unter Website ‣ Konfiguration ‣ Einstellungen freigeben.
  • Der Website-Editor zeigt übersetzten Text grün und noch nicht übersetzten gelb.
  • Export und Import von Übersetzungen liegen unter Einstellungen ‣ Übersetzungen und brauchen den Entwicklermodus; nach dem öffentlichen Community-Quellcode 20.0 schreibt der Import nur gespeicherte Übersetzungen, deren externe Kennung in der Datei zu einem Datensatz passt (Referenzen `model:` und `model_terms:`), und überspringt Einträge aus dem Programmcode (`code:addons/…`), die Odoo bei jedem Lauf aus den Übersetzungsdateien des Moduls liest; für Enterprise, Odoo Online und Odoo.sh weist die offizielle Dokumentation diese Grenze nicht aus.
  • Ein Modulupdate lädt die Übersetzungen aller installierten Sprachen und ergänzt neue Begriffe; vorhandene Einträge ersetzt dabei nur die Serveroption --i18n-overwrite. Für ein Upgrade auf eine neue Version sagt die Dokumentation keine unveränderte Übernahme Ihrer Einträge zu und verlangt, gespeicherte Übersetzungen zu prüfen.
  • Das Kontrollkästchen Bisherige Übersetzungen ändern ersetzt eigene Bezeichnungen durch die offiziellen oder durch den Inhalt der Datei; im Community-Zweig 20.0 ist es voreingestellt und nur in der Gruppe der technischen Funktionen sichtbar.
  • Eine Änderung am Ausgangstext trennt die Übersetzung vom Abschnitt; dieser muss neu übersetzt werden.

Was Sie vorab brauchen

  • Die Version, für die die Menüwege gelten: Odoo 20.0. Nach den Release Notes von Odoo S.A. ist Version 20 seit September 2026 die aktuelle Version; der Hinweis des Plans nennt noch 19.0.
  • Zugriff auf die App Einstellungen für Sprachen und Benutzer; für den Weg über Export und Import zusätzlich den Entwicklermodus, den die Dokumentation für den Export ausdrücklich verlangt (Entwicklermodus in Odoo).
  • Für Website-Inhalte die App Website und das Recht, die Website zu bearbeiten.
  • Eine Liste der Begriffe, die Sie anders nennen wollen. Prüfen Sie dabei, welche Wörter Ihre Branche verwendet, und ändern Sie nur diese: Ein geänderter Eintrag gilt für den Ausgangstext in dem Modul, dessen Übersetzung Sie bearbeitet haben, und nur, wenn er zu einem Datensatz gehört (Referenzen model: und model_terms: in der PO-Datei); Beschriftungen aus dem Programmcode erreicht der Import nach dem öffentlichen Community-Quellcode 20.0 nicht; für Enterprise, Odoo Online und Odoo.sh weist die offizielle Dokumentation diese Grenze nicht aus. Der Import ordnet jede Zeile über Modul und Name ihrer externen Kennung einem Datensatz und Feld zu und schreibt nur dort (öffentlicher Community-Quellcode 20.0, translate.py); eine gleichlautende Zeile an einem anderen Datensatz, etwa in einer anderen App, trägt eine eigene externe Kennung und bleibt deshalb unberührt.
  • Für die Serveroption --i18n-overwrite einen Weg auf die Kommandozeile des Servers, also eine eigene Installation oder Odoo.sh; Odoo Online bedienen Sie im Browser ohne lokale Installation und pflegen Übersetzungen dort über die Oberfläche.

Wie Odoo drei Sorten Text trennt

Die Bezeichnungen der Programmoberfläche sind Teil der Module. Der Ausgangstext dieser Begriffe ist Englisch; die deutschen Wörter stehen in Übersetzungsdateien neben dem Modul und werden geladen, wenn eine Sprache installiert wird. Bei jeder Installation oder Aktualisierung eines Moduls lädt Odoo die Übersetzungen zusätzlich für alle bereits installierten Sprachen (Dokumentation 20.0, Translating Modules). Für diese Schicht ist der Weg über die Übersetzungsdatei vorgesehen (Schritt 6); für Beschriftungen, die im Programmcode stehen, etwa in Python- oder JavaScript-Dateien, liest Odoo die Fassung bei jedem Lauf direkt aus der Übersetzungsdatei des Moduls, und im Community-Zweig 20.0 überspringt der Import einer PO-Datei über die Oberfläche solche Einträge (öffentlicher Quellcode translate.py, Branch 20.0).

Übersetzbare Feldwerte wie Produktnamen oder Bezeichnungen an Kontakten liegen dagegen am Datensatz und tragen je Sprache einen eigenen Wert. Website-Texte wiederum hängen an der Seite und werden im Frontend-Editor gepflegt. Die drei Schichten haben getrennte Werkzeuge; ein Begriff aus dem Modul und Ihr Produktname folgen deshalb unterschiedlichen Wegen. Der Import ordnet jede Zeile über Modul und Name ihrer externen Kennung einem Datensatz und Feld zu und schreibt nur dort; eine Änderung am Modulbegriff erreicht deshalb die Einträge, deren Kennung zum exportierten Modul gehört, und nicht einen gleichlautenden Ausgangstext an einem Datensatz einer anderen App (öffentlicher Community-Quellcode 20.0, translate.py).

Schritt für Schritt: Sprachen und Begriffe pflegen

Schritt 1: Sprache installieren

Öffnen Sie die App Einstellungen und im Abschnitt Sprachen den Eintrag Sprachen hinzufügen (Dokumentation 20.0). Im Dialog wählen Sie eine oder mehrere Sprachen und fügen sie hinzu. Die Sprachenliste erreichen Sie über Sprachen verwalten; dort aktiviert oder aktualisiert die Schaltfläche in jeder Zeile eine Sprache. Diese Liste steht im Community-Zweig 20.0 nur Benutzern der Gruppe der technischen Funktionen offen, die der Entwicklermodus freischaltet (Quellcode base_setup und base, Branch 20.0); den Eintrag Sprachen hinzufügen sehen alle Benutzer.

Achten Sie auf das Kontrollkästchen Bisherige Übersetzungen ändern (Overwrite Existing Terms). Ist es gesetzt, werden Ihre selbst geänderten Begriffe durch die offiziellen Übersetzungen ersetzt; im Modell base.language.install des Community-Zweigs 20.0 ist es voreingestellt, seine Feldbeschreibung nennt dieselbe Folge, und im Dialog sehen es nur Benutzer der Gruppe der technischen Funktionen. Für Enterprise, Odoo Online und Odoo.sh belegt der öffentliche Quellcode weder Voreinstellung noch Sichtbarkeit des Kästchens; prüfen Sie das dort vor dem Hinzufügen. Die Einstellung wirkt auf die Übersetzungen, die an Datensätzen gespeichert sind, also auf Einträge mit einer externen Kennung; Beschriftungen aus dem Programmcode bleiben davon unberührt, denn nach dem öffentlichen Community-Quellcode 20.0 liest Odoo sie aus den Übersetzungsdateien des Moduls. Im Zweifel nehmen Sie das Kästchen heraus.

Ergebnis: Die Sprache steht in der Liste, und im Profil jedes Benutzers ist sie auswählbar.

Schritt 2: Sprache je Benutzer festlegen

Benutzer wählen ihre Sprache selbst über das Profil oben rechts. Als Administrator ändern Sie sie unter Einstellungen ‣ Benutzer & Unternehmen ‣ Benutzer im Reiter Präferenzen im Feld Sprache. Nach der Dokumentation erhalten Benutzer E-Mails und Dokumente in der gewählten Sprache; Datensätze bleiben, wie sie sind. Wie Sie Benutzer und Rechte daneben vergeben, steht unter Benutzer anlegen und Zugriffsgruppen.

Ergebnis: Die Oberfläche des angemeldeten Benutzers erscheint in der gewählten Sprache.

Schritt 3: Sprache für die Website freigeben

Eine im Backend installierte Sprache erscheint nicht automatisch auf der Website. Öffnen Sie Website ‣ Konfiguration ‣ Einstellungen, installieren Sie fehlende Sprachen über Neue Sprachen installieren und tragen Sie sie im Feld Sprachen ein; anschließend speichern. Im Feld Standard legen Sie fest, welche Sprache die Website verwendet, wenn die Browsersprache des Besuchers nicht verfügbar ist (Dokumentation 20.0).

Ergebnis: Der Sprachumschalter erscheint in Kopf- und Fußzeile, und Besucher können zwischen den Sprachen wechseln. Adressen bekommen je Sprache einen Sprachanteil wie /fr/; die Struktur dahinter bleibt gleich. Für mehrere Websites mit eigenen Domains gilt ein eigener Ablauf (Mehrere Websites in einer Odoo-Datenbank).

Schritt 4: Website-Seite übersetzen

Wechseln Sie auf der Website über den Sprachumschalter in die Zielsprache und klicken Sie oben rechts auf Bearbeiten, in einer übersetzten Sprache auf Übersetzen. In diesem Modus lässt sich nur übersetzbarer Text ändern; alle übrigen Änderungen am Layout machen Sie in der Standardsprache (Dokumentation 20.0). Grün hinterlegter Text gilt als übersetzt, gelber noch nicht: Wählen Sie die Stelle aus und schreiben Sie Ihre Fassung darüber, zum Schluss speichern.

Zwei Sonderfälle: Bild-Alt-Text und Titel übersetzen Sie im Übersetzungsmodus über das Bild. Schlagwörter für Suchmaschinen tragen Sie je Sprache unter Website ‣ Site ‣ SEO optimieren ein; wie das mit den übrigen Sichtbarkeitsmaßnahmen zusammenspielt, steht unter Odoo-Website in Google sichtbar machen.

Ergebnis: Die Seite zeigt in der Zielsprache Ihren Text, und der Abschnitt ist im Übersetzungsmodus grün.

Schritt 5: Feldwerte wie Produktnamen übersetzen

Die Dokumentation nennt, dass sich manche Elemente auch aus dem Backend übersetzen lassen, zum Beispiel Produktnamen. Wie das im Community-Zweig 20.0 aussieht, zeigt der Web-Client: Hat die Datenbank mehrere Sprachen, trägt ein übersetzbares Feld eine kleine Schaltfläche mit dem Sprachcode, die den Übersetzungsdialog öffnet (Quellcode des Web-Clients, Branch 20.0). Bei einem ungespeicherten Datensatz ist diese Schaltfläche inaktiv; speichern Sie ihn zuerst. Für Enterprise, Odoo Online und Odoo.sh weist die offizielle Dokumentation Schaltfläche und Dialog nicht aus; prüfen Sie dort an einem eigenen Datensatz, ob das Feld die Schaltfläche zeigt und ob sie bei einem ungespeicherten Datensatz anspricht.

Ergebnis: Der Produktname erscheint je nach Sprache der Benutzerin oder des Benutzers unterschiedlich; ein Sprachwechsel in der Oberfläche zeigt denselben Datensatz mit dem anderen Wert.

Schritt 6: Eigene Begriffe über Export und Import ändern

  1. Schalten Sie den Entwicklermodus ein. Das Menü Übersetzungen der App Einstellungen gehört zur Gruppe der technischen Funktionen (Quellcode base, Branch 20.0); die Dokumentation verlangt den Modus für den Export.
  2. Öffnen Sie Einstellungen ‣ Übersetzungen ‣ Importieren/Exportieren ‣ Übersetzung exportieren (Dokumentation 20.0, Translating Modules). Wählen Sie im Feld Sprache Ihre Zielsprache oder Neue Sprache (leere Übersetzungsvorlage) für die englischen Ausgangsbegriffe, im Feld Dateiformat PO-Datei, im Feld Exporttyp Modul und unter Zu exportierende Apps die App, deren Begriffe Sie ändern wollen. Bleibt die Sprachwahl auf der leeren Vorlage, enthält die Datei nur die Ausgangsbegriffe.
  3. Öffnen Sie die Datei in einem Texteditor. Jeder Eintrag besteht aus dem englischen Ausgangsbegriff (msgid) und der deutschen Fassung (msgstr):
Zeile in der PO-Datei Bedeutung
msgid "Sales Order" der Ausgangsbegriff aus dem Modul sale
msgstr "Verkaufsauftrag" die deutsche Fassung, die Odoo 20.0 mitliefert
msgstr "Auftrag" Ihre Fassung, wenn Sie den Begriff kürzer wollen
  1. Ändern Sie nur die msgstr-Zeilen solcher Einträge, die zu einem Datensatz gehören; Sie erkennen sie an der Zeile darüber: model: steht für einen gespeicherten Feldwert, model_terms: für einen Textabschnitt eines Datensatzes, etwa in einer Ansicht. Einträge mit code:addons/… stammen aus dem Programmcode; Odoo liest sie bei jedem Lauf aus der Übersetzungsdatei des Moduls, und im Community-Zweig 20.0 überspringt der Import sie (öffentlicher Quellcode translate.py, Branch 20.0); für Enterprise, Odoo Online und Odoo.sh weist die offizielle Dokumentation diese Grenze nicht aus. Alles andere lassen Sie stehen. Prüfen Sie danach mit der Suchfunktion des Editors, dass Sie die Anführungszeichen nicht beschädigt haben.
  2. Importieren Sie die Datei über Einstellungen ‣ Übersetzungen ‣ Importieren/Exportieren ‣ Übersetzung importieren. Der Dialog fragt eine Sprachbezeichnung und einen Code ab (ISO-Sprach- und Ländercode, z. B. en_US); beide müssen zur Sprache der Datei passen (Felder des Modells base.language.import, Community-Zweig 20.0). Nach dem öffentlichen Community-Quellcode 20.0 wird nur geschrieben, wo die externe Kennung eines Eintrags zu einem Datensatz der Datenbank passt; alles andere übergeht der Import, und für Enterprise, Odoo Online und Odoo.sh weist die offizielle Dokumentation diese Grenze nicht aus. Ist Bisherige Übersetzungen ändern gesetzt, ersetzt Ihre Fassung den bisherigen Eintrag; im Community-Zweig 20.0 ist das Kästchen voreingestellt, und nur Benutzer der Gruppe der technischen Funktionen sehen es. Ein Datensatz mit noupdate (vom Modul als nicht zu aktualisieren gekennzeichnet) bleibt auch mit gesetztem Kästchen ausgenommen.

Ergebnis: Der geänderte Begriff steht in der Oberfläche, sofern sein Eintrag zu einem Datensatz gehört und das Kästchen Bisherige Übersetzungen ändern gesetzt war; einen vorhandenen Eintrag an einem Datensatz mit noupdate ersetzt der Import auch dann nicht (Community-Zweig 20.0). Er trifft die Einträge des Moduls, aus dem Sie exportiert haben: Der Import löst jede Zeile über Modul und Name ihrer externen Kennung zu einem Datensatz und Feld auf und schreibt nur dort; ein gleichlautender Ausgangstext an einem Datensatz einer anderen App trägt eine andere externe Kennung und behält seine Übersetzung (öffentlicher Community-Quellcode 20.0, translate.py). Beschriftungen aus dem Programmcode haben Sie mit diesem Weg nicht geändert; sie stehen in der Übersetzungsdatei des Moduls (letzter Abschnitt).

Modulupdate und Versionsupgrade: die Pflege-Routine

Die Tabelle trennt, wo ein Text liegt, was ein Modulupdate damit macht und was für ein Upgrade auf eine neue Version belegt ist.

Text Wo er liegt Was ein Modulupdate damit macht Was für ein Versionsupgrade belegt ist
Begriffe der Module (Oberfläche) Übersetzungsdateien der Module; Feld- und Ansichtstexte zusätzlich als gespeicherte Übersetzung am Datensatz Neue Begriffe kommen hinzu; Odoo lädt die Übersetzungen aller installierten Sprachen; vorhandene Einträge ersetzt dabei nur --i18n-overwrite, und Beschriftungen aus dem Programmcode liest Odoo im Community-Zweig 20.0 aus der Moduldatei Die Module der neuen Version bringen ihre Übersetzungsdateien mit; die Upgrade-Anleitung führt gespeicherte Übersetzungen in der Prüfliste und verlangt, die aufgewertete Datenbank vor der Produktion zu testen
Ihre eigenen Begriffe (geänderte msgstr-Zeilen) gespeicherte Übersetzung am Datensatz; Einträge aus dem Programmcode daneben in der Übersetzungsdatei des Moduls Bleiben stehen, solange nichts überschreibt: ersetzt werden sie durch --i18n-overwrite oder durch das gesetzte Kontrollkästchen beim Import oder beim Sprachinstallieren (im Community-Zweig 20.0 nur in der Gruppe der technischen Funktionen sichtbar); Datensätze mit noupdate bleiben ausgenommen Keine Zusage der Dokumentation für eine unveränderte Übernahme; prüfen Sie Ihre Fassungen im Testlauf und halten Sie die PO-Datei für einen erneuten Import bereit
Feldwerte wie Produktnamen Datensatz mit übersetzbarem Feld Ein Modulupdate lädt die Übersetzungsdateien der Module, und Werte, deren externe Kennung in einer solchen Datei steht, kann es mit gesetzter Überschreiboption ersetzen (Datensätze mit noupdate bleiben ausgenommen). Werte an selbst angelegten Datensätzen ohne externe Kennung stehen in keiner Moduldatei und bleiben Liegen als Daten der Datenbank, die aufgewertet wird; die Prüfliste verlangt, Datensätze im Testlauf zu kontrollieren
Website-Inhalte Seite und Ansicht der Website Website-Texte liegen als Übersetzungen an Ansichten, und die Übersetzungsdatei eines Moduls führt sie als model_terms:ir.ui.view,arch_db:…; ein Modulupdate kann sie deshalb mit gesetzter Überschreiboption ersetzen (Datensätze mit noupdate bleiben ausgenommen). Für Ihre Änderungen bleibt der Frontend-Editor der Weg Die Anleitung für angepasste Datenbanken nennt angepasste Website-Seiten und Übersetzungen als Bestandteile der Produktionsdatenbank; die Prüfliste verlangt, die Website-Seiten im Testlauf zu kontrollieren
Zuordnung Ausgangstext zu Übersetzung am jeweiligen Text Bricht ab, wenn Sie den Ausgangstext ändern; der Abschnitt muss neu übersetzt werden Gleich: Jede Änderung des Ausgangstexts trennt die Übersetzung, unabhängig von der Version

Für den Alltag ergibt das eine kurze Routine:

  1. Exportieren Sie Ihre Begriffe als PO-Datei, bevor Sie eine Sprache installieren, ein Modul aktualisieren oder ein Upgrade anstoßen; die Datei ist Ihre Sicherung. Ein erneuter Import stellt daraus nur die Einträge wieder her, die zu Datensätzen gehören, wenn die externe Kennung passt und Sie Bisherige Übersetzungen ändern setzen; einen Datensatz mit noupdate lässt er auch dann stehen.
  2. Setzen Sie beim Sprachinstallieren und beim Import das Kontrollkästchen Bisherige Übersetzungen ändern bewusst, statt die Voreinstellung des Community-Zweigs zu übernehmen; im Community-Zweig sehen es nur Benutzer der Gruppe der technischen Funktionen, also im Entwicklermodus.
  3. Lassen Sie das Modulupdate oder Upgrade laufen. Beim Modulupdate lädt Odoo die Übersetzungen aller installierten Sprachen; für das Versionsupgrade sagt die Dokumentation keine unveränderte Übernahme Ihrer Einträge zu.
  4. Setzen Sie --i18n-overwrite nur, wenn Sie die offiziellen Fassungen wirklich über Ihre eigenen stellen wollen. Die Option gehört zum Serverstart und überschreibt laut Dokumentation vorhandene Einträge beim Aktualisieren eines Moduls oder beim Import einer CSV- oder PO-Datei; auf einer eigenen Installation oder auf Odoo.sh erreichen Sie die Kommandozeile, in Odoo Online haben Sie nur den Browserzugang.
  5. Prüfen Sie nach dem Upgrade zuerst die gelben Stellen Ihrer Website, dann Stichproben Ihrer Feldwerte und Begriffe; die Upgrade-Anleitung führt gespeicherte Übersetzungen ausdrücklich in ihrer Prüfliste. Weicht eine Fassung ab, importieren Sie Ihre gesicherte PO-Datei erneut; bei passender externer Kennung und gesetztem Kästchen Bisherige Übersetzungen ändern schreibt das die Einträge zurück, die zu Datensätzen gehören (Datensätze mit noupdate ausgenommen), und lässt Beschriftungen aus dem Programmcode unverändert.

So prüfen Sie das Ergebnis

  1. Öffnen Sie im Entwicklermodus Einstellungen ‣ Übersetzungen ‣ Sprachen: Ihre Sprachen stehen mit Status aktiv in der Liste.
  2. Rufen Sie die Website im Browser auf und öffnen Sie den Sprachumschalter: Jede freigegebene Sprache erscheint als Eintrag.
  3. Wechseln Sie in eine Sprache und öffnen Sie eine von Ihnen gepflegte Seite: Der geänderte Abschnitt erscheint in Ihrer Fassung.
  4. Öffnen Sie ein Produkt mit übersetztem Namen und wechseln Sie die Sprache der Oberfläche: Der Name wechselt mit.
  5. Exportieren Sie die Begriffe erneut und suchen Sie in der Datei nach Ihrer msgstr-Zeile: Sie steht dort als gespeicherter Eintrag. Nehmen Sie dafür einen Eintrag mit einer Referenz model: oder model_terms:; einen Eintrag aus dem Programmcode gibt der Import im Community-Zweig 20.0 nicht zurück.

Wenn etwas nicht klappt

Symptom Ursache Abhilfe
Eine installierte Sprache fehlt im Umschalter der Website Die Sprache ist im Backend aktiv, aber der Website nicht zugeordnet Website ‣ Konfiguration ‣ Einstellungen öffnen und die Sprache im Feld Sprachen eintragen
Der Menüpunkt Übersetzungen fehlt in den Einstellungen Der Entwicklermodus ist aus Entwicklermodus einschalten und die Seite neu laden
Ein Abschnitt bleibt gelb, obwohl Sie ihn geändert haben Sie haben in der Standardsprache statt im Übersetzungsmodus gearbeitet In die Zielsprache wechseln und über Übersetzen arbeiten
Ein Abschnitt ist nach einer Textänderung wieder unübersetzt Die Zuordnung hängt am Ausgangstext und ist mit der Änderung verloren gegangen Den Abschnitt in der Zielsprache neu übersetzen
Ein Feld lässt sich nicht übersetzen Der Datensatz ist noch nicht gespeichert; im Community-Zweig 20.0 ist die Schaltfläche dann inaktiv (für Enterprise, Odoo Online und Odoo.sh weist die offizielle Dokumentation die Schaltfläche nicht aus) Datensatz speichern und den Übersetzungsdialog erneut öffnen
Ein importierter Begriff bleibt unverändert Das Kontrollkästchen Bisherige Übersetzungen ändern war nicht gesetzt, Sprache und Code passen nicht zur Datei, die externe Kennung des Eintrags findet keinen Datensatz, oder der Datensatz steht auf noupdate Import mit gesetztem Kästchen und passender Sprachangabe wiederholen und einen Eintrag mit einer Referenz model: oder model_terms: wählen
Eine Beschriftung aus dem Programmcode lässt sich nicht importieren Solche Einträge (code:addons/…) überspringt der Import im Community-Zweig 20.0; Odoo liest sie bei jedem Lauf aus der Übersetzungsdatei des Moduls Über ein eigenes Modul oder eine angepasste Übersetzungsdatei gehen, nicht über den Import der Oberfläche; klären Sie das mit Ihrer Odoo-Beratung
Ihr eigener Begriff ist nach dem Modulupdate weg Beim Update lief --i18n-overwrite Die vorher exportierte PO-Datei erneut importieren; bei passender externer Kennung und gesetztem Kästchen Bisherige Übersetzungen ändern erreicht das die Einträge, die zu Datensätzen gehören (Datensätze mit noupdate ausgenommen)
Nach dem Upgrade weicht ein eigener Begriff von Ihrer Fassung ab Die Dokumentation sagt die unveränderte Übernahme nicht zu; die Upgrade-Anleitung führt gespeicherte Übersetzungen in der Prüfliste Die Fassung im Testlauf prüfen und die exportierte PO-Datei erneut importieren; bei passender externer Kennung und gesetztem Kästchen Bisherige Übersetzungen ändern (Datensätze mit noupdate ausgenommen)

Wann Sie Hilfe holen sollten

  • Bei eigenen Modulen: Deren Übersetzungsdateien gehören zum Modul und werden mit ihm gepflegt. Klären Sie mit Ihrer Odoo-Beratung, wer sie nach einer Änderung nachzieht (App und Modul).
  • Vor einem Upgrade mit eigenen Anpassungen: Die Anleitung für angepasste Datenbanken verlangt eigene Schritte und Tests, bevor die Produktionsdatenbank aufgewertet wird; sichern Sie vorher Datenbank und Übersetzungsdateien (Odoo sichern).
  • Wenn Sie Bezeichnungen in mehreren Apps ändern wollen: Prüfen Sie das in einer Kopie der Datenbank. Ein geänderter Eintrag erreicht nur die Einträge, deren externe Kennung zum exportierten Modul gehört; für Bezeichnungen in einem anderen Modul exportieren und importieren Sie die Übersetzungen getrennt (öffentlicher Community-Quellcode 20.0, translate.py).
  • Wenn eine Beschriftung aus dem Programmcode geändert werden soll: Solche Texte stehen in der Übersetzungsdatei des Moduls im Ordner i18n und werden bei jedem Lauf von dort gelesen (Dokumentation 20.0, Translating Modules, Abschnitt Exporting translatable term); der Import über die Oberfläche überspringt sie nach dem öffentlichen Community-Quellcode 20.0, für Enterprise, Odoo Online und Odoo.sh weist die offizielle Dokumentation diese Grenze nicht aus. Das ist eine Änderung an einem Modul und gehört zu Ihrer Odoo-Beratung.

Häufige Fragen

Wirkt die Sprache im Benutzerprofil auch auf die Daten?

Nein. Die Sprache im Profil ändert die Oberfläche sowie E-Mails und Dokumente an diesen Benutzer. Datensätze wie Produktnamen tragen je Sprache einen eigenen Wert und bleiben davon unberührt. Welche Sprache die Website verwendet, wenn die Browsersprache des Besuchers nicht verfügbar ist, legen Sie getrennt im Feld Standard unter Website ‣ Konfiguration ‣ Einstellungen fest.

Kann ich eigene Begriffe versehentlich verlieren?

Ja. Ist Bisherige Übersetzungen ändern gesetzt, ersetzt Odoo eigene Einträge durch die offiziellen oder durch den Inhalt der importierten Datei. Im Community-Zweig 20.0 ist das Kästchen in beiden Dialogen voreingestellt und nur für Benutzer der Gruppe der technischen Funktionen sichtbar; für Enterprise, Odoo Online und Odoo.sh belegt der öffentliche Quellcode weder Voreinstellung noch Sichtbarkeit, dort prüfen Sie vor dem Fortfahren, wie der Dialog die Einstellung zeigt. Exportieren Sie Ihre Begriffe vor solchen Schritten als PO-Datei, dann können Sie sie danach erneut importieren; nach dem öffentlichen Community-Quellcode 20.0 erreicht das die Einträge, die zu Datensätzen gehören, sofern die externe Kennung passt und das Kästchen Bisherige Übersetzungen ändern gesetzt ist (einen Datensatz mit `noupdate` ersetzt Odoo auch dann nicht), und lässt Beschriftungen aus dem Programmcode unverändert.

Überlebt meine Übersetzung das Upgrade auf eine neue Odoo-Version?

Eine unveränderte Übernahme sagt die Dokumentation nicht zu. Beim Aktualisieren eines Moduls lädt Odoo die Übersetzungen aller installierten Sprachen; ersetzt werden vorhandene Einträge dabei nur mit der Serveroption --i18n-overwrite. Für das Versionsupgrade hebt Odoo eine Kopie Ihrer Datenbank auf die neue Version und führt gespeicherte Übersetzungen ausdrücklich in der Prüfliste der Upgrade-Anleitung; verlangt wird, die aufgewertete Datenbank vor der Produktion gründlich zu testen. Website-Inhalte und übersetzte Feldwerte liegen als Daten dieser Datenbank vor. Exportieren Sie Ihre Begriffe vorher als PO-Datei, prüfen Sie sie nach dem Upgrade und importieren Sie die Datei erneut, wenn eine Fassung abweicht; nach dem öffentlichen Community-Quellcode 20.0 erreicht dieser Import die Einträge, die zu Datensätzen gehören, sofern die externe Kennung passt und das Kästchen Bisherige Übersetzungen ändern gesetzt ist (einen Datensatz mit `noupdate` ersetzt Odoo auch dann nicht), nicht die Beschriftungen aus dem Programmcode.

Warum ist ein Textabschnitt nach einer Änderung nicht mehr übersetzt?

Weil die Zuordnung am Ausgangstext hängt. Sobald Sie den Abschnitt in der Standardsprache ändern, entsteht ein neuer Ausgangstext, und die bisherige Übersetzung ist ihm nicht mehr zugeordnet. Übersetzen Sie den Abschnitt danach erneut; die Dokumentation zu den Website-Übersetzungen nennt diesen Bruch ausdrücklich.

Kann ich Bezeichnungen der Oberfläche direkt im Formular ändern?

Einen Feldwert wie einen Produktnamen ja: Im Community-Zweig 20.0 trägt ein übersetzbares Feld bei mehreren Sprachen eine kleine Schaltfläche mit dem Sprachcode, die den Übersetzungsdialog öffnet (Quellcode des Web-Clients, Branch 20.0); für Enterprise, Odoo Online und Odoo.sh weist die offizielle Dokumentation Schaltfläche und Dialog nicht aus, prüfen Sie es dort am eigenen Datensatz. Eine Bezeichnung aus dem Modul, etwa ein Feldname, ändern Sie dort nicht. Feldbeschriftungen und Texte aus Ansichten liegen als gespeicherte Übersetzungen an Datensätzen und lassen sich über Export und Import der PO-Datei ersetzen; Beschriftungen aus dem Programmcode stehen dagegen in der Übersetzungsdatei des Moduls und bleiben nach dem öffentlichen Community-Quellcode 20.0 vom Import unberührt; für Enterprise, Odoo Online und Odoo.sh weist die offizielle Dokumentation diese Grenze nicht aus.

Quellen

  1. Translations, Website-Konfiguration (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  2. Change languages (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  3. Translating Modules (Odoo 20.0), Abschnitte Exporting translatable term und Note zu Modulinstallation und -aktualisierungOdoo S.A., Dokumentation · abgerufen am
  4. Website Themes, Translations (Odoo 20.0), Abschnitte Backend und Export mit der PO-Datei (Einträge `model_terms:ir.ui.view,arch_db:…`)Odoo S.A., Dokumentation · abgerufen am
  5. Command-line interface (Odoo 20.0), Abschnitte Internationalisation (Option --i18n-overwrite) und i18n importOdoo S.A., Dokumentation · abgerufen am
  6. Upgrade (Odoo 20.0), Abschnitt Testing the new version of the database: Prüfliste mit gespeicherten ÜbersetzungenOdoo S.A., Dokumentation · abgerufen am
  7. Upgrade a customized database (Odoo 20.0), Nennung von angepassten Website-Seiten und Übersetzungen als Bestandteil der ProduktionsdatenbankOdoo S.A., Dokumentation · abgerufen am
  8. Developer mode (debug mode) (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  9. Odoo Online (Odoo 20.0), Einleitung: im Browser bediente, von Odoo gehostete Datenbanken ohne lokale InstallationOdoo S.A., Dokumentation · abgerufen am
  10. Odoo.sh, Advanced, Abschnitt Container (Aufruf von odoo-bin auf Odoo.sh) (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  11. Release Notes: Version 20, veröffentlicht im September 2026Odoo S.A. · abgerufen am
  12. Compare Editions, Zeile Website Builder (in beiden Editionen enthalten)Odoo S.A. · abgerufen am
  13. odoo/modules/loading.py, Branch 20.0 (Übersetzungslauf beim Modulladen mit dem overwrite-Wert aus der Serverkonfiguration)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  14. odoo/tools/translate.py, Branch 20.0 (Community; TranslationImporter: Import überspringt Einträge vom Typ code, schreibt nur model- und model_terms-Einträge und ordnet jede Zeile über Modul und Name ihrer externen Kennung einem Datensatz und Feld zu, Auflösung über ir_model_data; Überschreiben abhängig von der Überschreiboption und noupdate; CodeTranslations liest Python- und JavaScript-Übersetzungen aus den PO-Dateien des Moduls)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  15. odoo/addons/base/models/ir_module.py, Branch 20.0 (Community; _update_translations und _load_module_terms laden die Modulübersetzungsdateien mit der Überschreiboption)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  16. odoo/addons/base/wizard/base_language_install.py, base_import_language.py und base_export_language.py mit ihren Views, Branch 20.0 (Community; Felder, Voreinstellung und Sichtbarkeit des Kontrollkästchens, Feldbeschreibungen der Dialoge)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  17. odoo/addons/base/views/base_menus.xml und addons/base_setup/views/res_config_settings_views.xml, Branch 20.0 (Community; Menü Übersetzungen und Schaltfläche Sprachen verwalten in der Gruppe der technischen Funktionen)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  18. odoo/addons/base/models/res_users.py, Branch 20.0 (Community; base.group_no_one wirkt nur im Debug-Modus)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  19. odoo/addons/base/views/res_lang_views.xml, Branch 20.0 (Community; Schaltflächen Aktivieren und Aktualisieren in der Sprachenliste)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  20. addons/web/static/src/views/fields/translation/ (translation_button.xml und translation_button.js), Branch 20.0 (Community; Schaltfläche mit dem Sprachcode als Beschriftung und Dialog zum Übersetzen eines Feldwerts; die Schaltfläche erscheint nur bei mehreren Sprachen und ist bei einem ungespeicherten Datensatz inaktiv)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  21. Deutsche Übersetzungen der Module base, base_setup, web, website und sale, Branch 20.0 (Quelle der Oberflächennamen und der Referenzzeilen des Begriffs „Sales Order“ in sale/i18n/de.po)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am