Daten beim Export aus odoo nach Google Tabellen automatisch übersetzen

In odoo können nach Installation des Moduls „google_spreadsheet“ Daten nach Google Spreadsheet (deutsch: Google Tabellen) exportiert werden. Die exportierten Daten werden dabei allerdings nicht in der Sprache des Users exportiert, der den Export durchführt. Stattdessen werden die Daten in der Sprache angezeigt, in der sie in der Datenbank gespeichert sind.

Die Lösung

Um die Daten in Google Spreadsheet in der Sprache des Users angezeigt zu bekommen, ist ein klein wenig Arbeit erforderlich. Mit dieser Anleitung sollte das aber einfach umzusetzen sein. Das Beispiel setzt die Sprache auf Deutsch. Für andere Sprachen verwenden Sie bitte die entsprechenden ISO-Sprachcodes. Bitte beachten: abweichend von den Angaben in der Liste verwenden Sie anstatt des Bindestrichs den Unterstrich (de_DE anstatt de-DE).

Die beschriebene Änderung muss in jedem neu erzeugten Tabellenblatt einmal durchgeführt werden. Bei Aktualisierungen der Daten bleibt die Änderung erhalten.

Skripteditor

Nach dem Export der Daten aus odoo in ein Google Spreadsheet öffnen Sie dort den Skripteditor:

Google Tabellen Skripteditor
Google Tabellen Skripteditor

Der Skripteditor öffnet sich in einem neuen Browser-Tab oder -Fenster (abhängig von den Einstellungen in Ihrem Browser).

Parameter für die Übersetzung einfügen

Der Parameter für die korrekte Übersetzung muss an zwei Stellen des Skripts eingefügt werden.

Funktion oe_read_group

Öffnen Sie mit <STRG>+F (oder über das Menü „Bearbeiten – Suchen und Ersetzen…“) den Suchdialog des Editors und suchen nach der Zeichenkette „oe_read_group“:

Suche nach oe_read_group
Suche nach oe_read_group

Sie befinden sich jetzt am Anfang der Funktion oe_read_group. Scrollen Sie nach unten zu dem folgenden Codeausschnitt und fügen Sie den blau formatierten Code ein:

  var kwargs = {
    "context" : {"group_by":groupby, "lang": "de_DE"},
    "domain" : domain,
    "fields" : fields_tosend,
    "groupby": groupby,
    "limit": limit ? limit : 10,
    "offset": 0,
    "orderby": orderby ? orderby : false,
  }

Funktion search_read

Öffnen Sie erneut den Suchdialog und suchen jetzt nach der Zeichenkette „search_read“:

Suche nach search_read
Suche nach search_read

In dieser Funktion suchen Sie den hier angezeigten Codeausschnitt. Fügen Sie auch hier den blau angezeigten Code ein:

  if(!(domain instanceof Array)){
    throw "domain arg expecting an Array, not "+typeof domain;
  }
  var session_id = getScriptProperty("session_id");
  var context = {"lang": "de_DE"};
  var params = {
    "model" : model,
    "fields" : fields,
    "limit": limit ? limit : 80,
    "domain" : domain,
    "sort": sort,
    "context": context,
  }

Speichern Sie das Tabellenblatt mit <STRG>+S oder über das Menü „Datei – Speichern“. Nach kurzer Zeit werden die Werte automatisch aktualisiert und in der korrekten Sprache angezeigt.