Mehrsprachigkeit leicht gemacht – Odoo Modul übersetzen

Mehrsprachigkeit leicht gemacht – Odoo Modul übersetzen

Die Mehrsprachigkeit von Odoo ist eine große Stärke. Die Standardmodule von Odoo 8 und Odoo 9 gibt es aktuell in über 40 Sprachen. Doch sobald man die Odoo Standardmodule wie z.B. Odoo-CRM hinter sich lässt und auch ein paar Custom-Module einsetzt, ist es mit der Mehrsprachigkeit vorbei. Kaum ein Entwickler, sei es ein Implementierungspartner oder ein Community-Entwickler macht sich die Mühe, das selbst entwickelte Addon in mehr als zwei Sprachen zu übersetzen. Englisch ist zwar eigentlich immer dabei, aber Deutsch ist nun man leider keine Weltsprache und gehört deshalb bei vielen Custom-Modulen nicht zwingend dazu.

In diesem Artikel erfahren Sie, wie die Mehrsprachigkeit von Odoo funktioniert und anhand des Custom-Moduls Click2Dial von Akretion stellen wir beispielhaft dar, wie man einem Custom-Modul eine zusätzliche Sprache beibringt.

Umsetzung der Mehrsprachigkeit in Odoo

Odoo ist nicht ein zusammenhängendes Stück Software, sondern es ist modular, d.h. es besteht einer Vielzahl von Modulen, die jeweils eine oder mehrere klar umrissene Aufgaben übernehmen. Odoo-CRM ist ein Modul, die Weboberfläche von Odoo ist ein Modul und auch die Schnittstelle zu einem Asterisk-Server ist ein Modul. Jedes dieser Module muss eigene Sprachdateien mitliefern, die innerhalb des Moduls im Ordner i18n gespeichert werden und z.B. den Dateiennamen en.po oder de.po haben. Die Struktur dieser .po-Dateien ist immer gleich. Sie alle bestehen aus vielen Einträgen der folgenden Art:

#. module: base_phone
#: view:reformat.all.phonenumbers:base_phone.reformat_all_phonenumbers_form
msgid "Cancel"
msgstr "Abbruch"

Im ersten Zeileneintrag wird angezeigt, zu welchem Modul (module) der Eintrag gehört. In der zweiten Zeile wird der Ort in der Weboberfläche (view) aufgezeigt, in dem die Übersetzung zur Anwendung kommen soll. Mit msgid wird der Standardwert beschrieben, der durch den Wert hinter msgstr ersetzt werden soll. Natürlich können nicht nur einzelne Worte, sondern auch ganze Sätze inklusive Variablen wie %s übersetzt werden. Das oben gezeigte Beispiel ist ein Ausschnitt aus der de.po Datei und teilt Odoo mit, dass bei Auswahl der deutschen Sprache der Begriff Cancel durch Abbruch ersetzt werden soll.

Die Weboberfläche von Odoo kann in beliebige Sprachen übersetzt werden.

Fallbeispiel: Deutsche Sprachdatei für den Akretion VoIP-Connector

Beginnen wir also damit, den VoIP-Connector von Akretion ins Deutsche zu übersetzen. Der Connector, welcher standardmäßig auf jedem ionas-Server Small Business installiert ist, macht es möglich, Kunden direkt aus Odoo heraus anzurufen und bei eingehenden Anrufen die Kundendatenbank auf die Rufnummer zu durchsuchen. Durch diese Computer-Telefonie-Integration (CTI) kann sich der Anwender, also noch bevor er den Anruf entgegen nimmt, die passende Kundenakte mit allen Informationen anzeigen lassen.

In einem früheren Artikel haben wir bereits beschrieben, wie wir beim ionas-Server Small Business mit Hilfe dieses Moduls die VoIP-Telefonanlage und Odoo miteinander gekoppelt haben. Grundsätzlich ist es jedoch egal, welches Modul übersetzt werden soll. Das Vorgehen ist immer das Gleiche.

Der VoIP-Connector besteht aus vier verschiedenen Modulen:

  • base_phone
  • asterisk_click2dial
  • crm_claim_phone
  • crm_phone

Typischerweise liegen alle Custom-Module in einem Unterverzeichnis von Odoo. Auf dem ionas-Server findet man die vier Module unter /opt/odoo/custom/addons/voip/. In jedem der vier Module gibt es ein Verzeichnis mit dem Namen i18n mit den .po-Sprachdateien.

Sprachdatei individuell anpassen

Der erste Schritt sollte immer die Kopie der Datei en.po und Speicherung unter dem Namen de.po sein. Achten Sie darauf, dass die neue Datei über die gleichen Berechtigungen verfügt wie die Ursprungsdatei.

Nun können wir die de.po Datei mit den deutschen Übersetzungen anpassen. Teilweise ist es schwierig die genaue Übersetzung zu finden, da aus der Datei nicht immer sofort der Zusammenhang hervorgeht. Trotzdem sollte man die Datei einmal vollständig übersetzen und dann abspeichern. Nachträgliche Ergänzungen und Änderungen sind ohne weiteres möglich und sinnvoll.

Da es sich bei den .po-Dateien um reine Textdateien handelt, kann man für die Arbeit an den Sprachdateien jeden beliebigen Texteditor verwenden.

Module aktualisieren

Module müssen aktualisiert werden, um die neue Sprachdatei zu laden.

Damit Odoo auf die neuen Sprachdateien zugreifen kann, müssen die Module aktualisiert werden. Dies ist angenehmerweise direkt über das Menü Einstellungen in der Weboberfläche möglich.

Loggen Sie sich als Administrator in Odoo ein. Wechseln Sie zu Einstellungen -> Module -> Lokale Apps. Suchen Sie nach den vier Apps und aktualisieren Sie jedes einzelne Modul. Dies funktioniert, indem Sie das Modul anklicken und dann den Knopf Aktualisieren auswählen.

Sobald Odoo die Seite neu geladen hat, wurde die neue Sprachdatei in die Datenbank von Odoo aufgenommen. Wenn Sie nun die Sprache des Anwenders wechseln, werden Sie feststellen, dass die Weboberfläche von Odoo die Übersetzungen anzeigt. Sie haben das Custom-Modul ins Deutsche übersetzt.

Nachträgliche Änderungen übernehmen

Angenommen Sie stellen fest, dass an manchen Stellen die Übersetzung noch nicht perfekt ist, dann können Sie natürlich die de.po erneut über die Kommandozeile bzw. das Terminal anpassen. Wenn Sie im Anschluss daran das zugehörige Modul erneut aktualisieren, dann werden Sie feststellen, dass Ihre Änderungen nicht in der Weboberfläche von Odoo übernommen werden. Die Erklärung für dieses Verhalten ist ganz einfach.

Odoo liest zwar beim Aktualisieren alle Sprachdateien des Moduls aus, schreibt aber nur neue Übersetzungen aus den .po-Dateien in die eigene PostgreSQL-Datenbank. Wenn aber erstmal eine Sprache für ein Modul in der Datenbank steht, überschreibt Odoo die Werte nicht einfach. Was auf den ersten Blick unlogisch erscheint, liegt in der Möglichkeit der Sprachanpassung über die Odoo-Weboberfläche begründet. Ich werde diese Möglichkeit der Oberflächenanpassung von Odoo in einem späteren Artikel beleuchten. Stattdessen muss man Odoo also auffordern eine Sprache vollständig neu einzulesen.

Nachträgliche Änderungen in einer Sprache müssen von Odoo komplett neu geladen werden.

Hierzu geht man in Odoo auf Einstellungen -> Übersetzungen -> eine Übersetzung laden. In dem sich öffnenden Fenster wählt man die gewünschte Sprache aus und setzt den Haken bei Bisherige Übersetzungen ändern. Die Sprache wird nun vollständig neu geladen und die Änderungen werden nun in der Weboberfläche von Odoo angezeigt.

Fazit: Die Übersetzung von Custom-Modulen in Odoo ist einfach

Die Mehrsprachigkeit von Odoo ist eine große Stärke des OpenSource ERP/CRM-Systems. Die Übersetzung von beliebigen Custom-Modulen in die gewünschte Sprache ist durch die Kopie und Anpassung der original Sprachdatei schnell erledigt. Fortlaufende Arbeiten an den Sprachdateien lassen sich leicht durch Updates des Moduls bzw. das Laden von Übersetzungenänderungen in Odoo integrieren.

Sollten Sie Fragen oder Probleme haben, rufen Sie uns an. Gerne übernehmen wir für Sie die Übersetzung von Custom-Modulen oder liefern Ihnen mit dem ionas-Server Small Business die perfekte IT für Ihre Unternehmen.

geschrieben von

Christoph Dyllick-Brenzinger

Christoph ist Gründer und Chefentwickler von datamate. Er ist ein absoluter Linux-Fan und hat schon früh seine Leidenschaft für Technik und Programmierung entdeckt. Seine langjährige Erfahrung als Unternehmensberater spürt man regelmäßig, wenn er nach optimalen Lösungen für die Kunden sucht. Wenn er nicht gerade den Tennisplatz unsicher macht oder bei Overwatch sein Liga-Ranking verbessert, verbringt Christoph seine Freizeit mit seiner Frau und seinen drei Kindern.