Hallöchen zusammen,
ich bin gerade über etwas interessantes gestolpert und wollte es euch nicht vorenthalten!
Bisher habe ich Anpassungen an Texten in Magento immer direkt in der .csv-Datei vorgenommen. Also wenn ich wollte, dass da nicht „Mein Benutzerkonto“ steht – sondern z.B. „Dein Benutzerkonto“ – bin ich direkt in die Mage_Customer.csv abgetaucht und habe den Text dort geändert:
Dies ist jedoch nicht die feine englische Art – deshalb hier eine Alternative – und nein – ich meine nicht die Inline-Übersetzung, bei der der geänderte Text auf der Datenbank abgelegt und zur Laufzeit ersetzt wird 🙂
Sondern das hier:
1) Lege einen Ordner „locale“ in deinem Template-Ordner unter /app/design/frontend/default/{dein_template} an. In diesem legst du weitere Ordner an – pro Sprache einen – also analog zum Magento-Eigenen „locale“-Ordner:
2) So – jetzt folgendes: lege pro Sprachenordner eine Datei namens „translate.csv“ an. Die Texte darin werden jedoch etwas anders gepflegt als im Magento-Eigenen „locale“-Ordner. Würdest du im normalen Übersetzungs-CSV so hantieren: „My Account“,“Dein Benutzerkonto“ musst du jetzt in die translate.csv folgendes schreiben: „Mage_Customer::My Account“,“Dein Benutzerkonto“. Grund: Du musst noch das Modul mitgeben, was übersetzt werden soll:
3) Natürlich musst du nun Magento noch sagen, dass er diese eigenen Übersetzungen ziehen soll. Dies wird unter System > Konfiguration > Allgemein > Design > Themes im Feld „Übersetzungen“ eingestellt:
4) Nun noch den Cache komplett löschen (Magento-Cache, Cache-Speicherung und am besten auch den JavaScript-Cache – und fertig 🙂
5) Für Änderungen im Admin-Backend müsst ihr einfach eine translate.csv im Pfad /app/design/adminhtml/default/{dein_template}/locale anlegen und analog zur Anleitung befüllen! Um bei künftigen Magento-Updates hier auch auf der sicheren Seite zu sein, legt euch besser analog zum Frontend-Template auch einen neuen Ordner für {dein_template} an – also z.B. /adminhtml/default/gadget/locale usw. – und nutzt nicht den /adminhtml/default/default/locale Pfad. Dieser kann bei Updates nämlich überschrieben werden …
Nun braucht ihr bei Updates nicht befürchten, dass eure Änderungen mal irgendwann überschrieben werden 🙂 Bei Fragen – hinterlasst einen Kommentar oder schreibt eine Mail 🙂
Danke für den Blog!
Für diese Übersetzung muss man jedoch wissen welches Modul übersetzt. Gibt es da eine gute Möglichkeit herauszufinden, welche Modul gerade wirkt?
LG
Timo
Hi Timo,
du kannst über System > Konfiguration > Entwickleroptionen mehrere Sachen einstellen.
Wenn du z.B. Inline übersetzen für das Frontend aktivierst und dann auf den zu übersetzenden Text klickst, siehst du auch das betroffene Modul.
Du könntest jetzt direkt da deine Übersetzung eintragen – diese wird aber in der DB gespeichert und jedes mal ausgelesen … ich glaube die oben beschriebene Lösung ist performanter.
LG,
Tobi 🙂