26. November 2019, Benjamin Rosenberger

Magento2 und die lieben Übersetzungen

Magento2 und die lieben Übersetzungen

Kein Shop ist wie der Andere – andere Länder, andere Sprachen und selbst in der gleichen Sprache gibt es Unterschiede (man denke an Kasse vs. Kassa). Somit ist es unabdingbar in Magento2 Übersetzungen zu pflegen und zu verwenden.

Die Magento2 Dev-Docs bieten zur Übersetzung eine ausführliche Beschreibung, wie man sprachabhängige Texte im Shop anzeigen kann. (siehe https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/translations/xlate.html)

Grundsätzlich gibt es wie auch schon in Version 1 von Magento folgende Hierarchie von Übersetzungen. Im Bild ist sehr deutlichzu erkennen, wo man als Entwicklerin oder Entwickler die entsprechenden Übersetzungen pflegen kann.

Datenbank?

Doch was ist mit den Datenbankübersetzungen in Magento2? Diese konnten in Magento1 leicht über eine Oberfläche im Admininterface gepflegt werden und somit ohne Dateien zu ändern im laufenden Betrieb ausgetauscht bzw. ausgebessert werden.

Die guten alten Zeiten sind mit Magento2 vorbei, wo direkt am Server Dateien ausgebessert werden und somit steht unausweichlich ein Deploy der aktuellen Module an mit zuvor geänderten Übersetzungstexten. Oder man geht den umständlichen letzten Weg und trägt direkt über ein Datenbank-Tool seiner Wahl die Übersetzung ein. Was kann für eine Shop-Betreiberin oder einen Shop-Betreiber bloß schiefgehen?

Einfach Zugriff auf die gesamte Datenbank gewähren, richtige Store-Id eintragen, einen korrekten CRC-String generieren und sich natürlich nicht bei dem ausgebesserten Übersetzungstext verschreiben.
Da habe ich mir gedacht – warum einfach, wenn es auch komplizierter funktioniert? Und so begab ich mich auf die Suche nach einer aktuellen Umsetzung einer View und stieß auf kein vernünftiges Ergebnis.

Es schien mir fast so, dass Datenbankübersetzungen nur noch ein Überbleibsel aus vergangenen Tagen waren. Viele Probleme wurden durch Übersetzungen in der Datenbank verursacht. Es war unübersichtlich, wo welche Übersetzung greift – bei mir in der Entwicklung hat er ja auch den richtigen Text. Daher kann ich gut verstehen, warum dieses Feature nicht mehr aktiv verfolgt wird.

Und doch gibt es die Möglichkeit!

Trotzdem gibt es Zeiten in denen schnell ein Text im Live-Shop ausgetauscht werden soll. Am Besten ohne dass eine Entwicklerin oder ein Entwickler eingreifen muss.

Gesagt, getan, hier die View zur Datenbank: https://github.com/e-conomix/magento2-dbtranslations. Einfach über composer installieren und Übersetzungen im Backend eintragen.

So leicht dies auch nun möglich ist – es sollte nur eine Übergangslösung sein! Wie vom Standard vorgesehen gehört jeder Übersetzungstext in eine für ihn vorgesehene Datei (Modul, Language-Pack oder Theme), da uns sonst die Geister aus vergangenen Tagen wieder einholen.