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

Fabian Schmengler is Magento developer at integer_net. His focus lies in backend development, conceptual design and test automation. Since 2011 Fabian is a Magento Certified Developer and since 2014 also a Magento Certified Solution Specialist.