Beim gestrigen Magento Stammtisch in Aachen habe ich das Thema Übersetzungen in Magento etwas näher beleuchtet, vor allen Dingen in Hinblick darauf, nach welchen Regeln Magento Übersetzungen aus den verschiedenen Quellen zusammenführt und auswählt. Die Folien gibt es nun hier zum Download:

Übersetzungen in Magento - Foxit Reader

Kurzzusammenfassung

Übersetzungsdaten werden mit dem Cache Key translate_[locale]_[area]_[store]_[theme] gespeichert, das heißt separat für Frontend und Backend, für jeden Store, für jedes Theme und natürlich für jede Sprache.

Übersetzungen können strikt modulspezifisch sein (gelten nur innerhalb eines Moduls), das ist immer der Fall bei Inline Übersetzungen und optional bei Theme übersetzungen. Dazu müssen sie in der translate.csv mit Modul-Präfix angelegt werden:

Übersetzungen aus Modulen (z.B. Mage_Catalog.csv) sind nur dann strikt modulspezifisch, wenn der DEVELOPER MODE an ist und es mehrere Übersetzungen für einen Text gibt. Ansonsten gilt die Übersetzung aus dem zuerst geladenen Modul global für alle Module, für die keine eigene Übersetzung des Text definiert ist.

Für welches Modul die Übersetzung nachgeschlagen wird, hängt von der Klasse ab, auf der die Methode __() aufgerufen wird. Es gibt allerdings Möglichkeiten, das Modul für eine Klasse umzudefinieren, was vor allem bei Rewrites von Blocks und Helpers sinnvoll ist. Wie das funktioniert, variiert zwischen Helpers, Blocks und Controllers.

Beispiel für einen Helper:

Links

Fabian Schmengler

Author: Fabian Schmengler

Fabian Schmengler ist Diplom-Informatiker und Magento Entwickler bei integer_net. Seine Schwerpunkte sind Backend-Entwicklung, Konzeptionierung und Test-Automatisierung. Seit 2011 ist er Magento Certified Developer, seit 2014 Magento Certified Solution Specialist.