Montag, 15. Dezember 2014

Das Geheimnis der Mehrsprachigkeit bei OpenERP/Odoo und die "Problemchen" damit...

Prinzipiell ist Odoo/OpenERP auf Mehrsprachigkeit ausgelegt.

Den Odoo-Modulen liegt eine Übersetzungsdatei für die jeweilige Sprache bei:

Beispiel de.po:
..
#. module: equitania
#: model:ir.model,name:equitania.model_res_company
msgid "Companies"
msgstr "Unternehmen"
..
Für jedes zu übersetzende Wort in Englisch wird die Übersetzung in Deutsch hinterlegt.
Dabei wird der Modulname und das Model angegeben.

Wird ein Modul installiert wird dies ausgelesen und in die Tabelle "ir_translation" gespeichert.
Basierend auf der Anwender oder Kundensprache wird die passende Übersetzung gezogen.

Man kann Odoo auf dazu veranlassen alle Sprachdateien nochmals auszulesen:





























Soweit die Theorie!


Wird aber die Tabelle "ir_translation" nicht korrekt gefüllt.

Ich habe mal ein Beispiel aufbereitet. In der "ir_translation" steht die Übersetzung. Im Feld "res_id" steht der Bezug auf Objekt.

SELECT irt.*,
(SELECT iuv."name" FROM ir_ui_view iuv WHERE iuv."id"=irt.res_id) AS refer_object
FROM ir_translation irt 
WHERE irt.res_id = 1749

ORDER BY irt.src, irt.lang











Felder und ihre Bedeutung:

id = Auto-Field wird von der Datenbank gesetzt
lang = Sprachpaket im Beispiel de_DE = deutsch für Deutschland de_AT wäre deutsch für Österreich
src = Welcher englische Begriff soll übersetzt werden
name = Welcher Bereich
res_id = Verweis auf das Objekt in Tabelle "ir_ui_view"
module = Für Odoo-Module
state = Status z.B. "translated"
value = Übersetzung des Feldes "src"
type = Art der Objektes z.B. View, Ode, Field etc.
comments = Kommentar

Über die Oberfläche von Odoo kommt man auch an die Übersetzung:





















Lösung bei Übersetzungsfehlern

Wenn also ein Übersetzung nicht angezeigt wird, kann hier nachgeschaut werden und ggf. der fehlende Eintrag nachgebessert werden. Allerdings ist dieser nach dem nächsten "-u all" / Update der Datenbank wieder weg.

Deshalb schreiben wir gerade eine zentrale Funktion für unser Installationsfunktionen https://github.com/equitania/odoo-addons/blob/master/equitania/eq_install_func.py  die fehlende Einträge automatisch nachholt.

Keine Kommentare:

Kommentar veröffentlichen