Texte in eigenen Themes übersetzen

Bei der Realisierung eines neuen Themes für Magento müssen häufig die vorhandenen statischen Texte angepasst oder neue statische Texte eingefügt werden.

Die allereinfachste Möglichkeit, die Texte einfach hart in die Templates zu schreiben, verbietet sich fast von selbst, da hierdurch jede Flexibilität verloren geht. Falls später eine Sprache hinzukommt beginnt das große Suchen…

Die Vorraussetzung für eine automatische Übersetzung durch Magento ist die korrekte Auszeichnung der zu übersetzenden Strings. Üblicherweise werden die Strings im Template in Englisch definiert, da somit ein Übersetzer nur Englisch und die Zielsprache kennen muss und nicht etwa auch Deutsch. Die Auszeichnung erfolgt mit <?php echo $this->__('Translate me!'); ?>.

Übsetzungen des Themes definieren

Übsetzungen des Themes definieren

Danach kann der String bereits mit Magentos Inline-Translation übersetzt werden. Dabei werden die Übersetzungen jedoch in der Datenbank gespeichert, was die Verwaltung mit einem VCS (z. B. SVN) und das Deployment oder die Aktualisierung eines Live-Systems erschwert. Eleganter und übersichtlicher ist die Übersetzung mittels einer CSV-Datei. Dazu muss unter „Gestaltung“, „Themes“ bei „Übersetzungen“ der Name des Themes für die Übersetzungen eingetragen werden (siehe Screenshot). Anschließend wird unter design/frontend/default/mein_theme/locale/de_DE/ die Datei translate.csv angelegt. In dieser Datei werden nun der Quell- und der Zielstring kommagetrennt notiert: "Translate me!","Übersetz' mich!". Will man nun die Strings in eine neue Sprache übersetzen, muss ein neuer Ordner im locale-Ordner mit einer neuen translate.csv erstellt werden. Die CSV-Datei kann zur Übersetzung auch problemlos an ein Übersetzungsbüro oder ähnliches weitergegeben werden.

Sozusagen als Dreingabe ist auch das Verwenden von Platzhaltern möglich: <?php echo $this->__('We sell %s monkeys', $this->getMonkeyCount()); ?> lässt sich mir "We sell %s monkeys","Wir verkaufen %s Affen" übersetzen. Die Anzahl der Affen wird dann dynamisch in den übersetzten Text eingefügt. Wichtig ist nur, das echo vor dem markierten String nicht zu vergessen 😉

1 Kommentar

Hinterlassen Sie einen Kommentar

Ihr Kommentar*

Name*
Website

Weitere Beiträge zum Thema
Stolperfalle mit mod_rewrite und Rückreferenzierung
Eine vergessene Funktion: substituteMarkerArrayCached
Javascript in Magento 2, the way to do it
Extension: GSA Shop