Wenn ein Magento 2 Shop fertig ist und deployed werden soll, dann setzt man ihn in den production mode.
Magento in Production Mode setzen
php bin/magento deploy:mode:set production
Übersetzungschaos im Checkout
Falls man nun einen mehrsprachigen Shop konfiguriert hat, gibt es bis einschließlich Magento 2.2 einen Bug, durch den alle dynamisch geladenen Elemente die falschen Übersetzungen haben. Der zugrundeliegende Bug wurde bereits im Magento Bugtracker erfasst. Gut zu sehen ist dieser Effekt beim Checkout:
Hier ist ein Shop in deutsch (de_DE) und englisch (en_US) aufgesetzt. Beim Wechseln in den production mode werden die statischen Dateien neu erzeugt, allerdings für alle Sprachen in einem Prozess. Das Problem ist, dass dabei alle js-translation.json
Dateien gleich generiert werden. In diesen Dateien werden die Übersetzungen für alle per AJAX nachgeladen Elemente gespeichert.
Bugfix: Korrekte Übersetzungen
Um nun eine einheitliche Übersetzung für seinen Shop zu bekommen, muss man in der Konsole zuerst alle js-translation.json
Dateien löschen und danach die statischen Dateien für die einzelnen Sprachen einzeln neu erzeugen. Dafür in das Magento Installationsverzeichnis wechseln und (als der Magento System-User) folgende Befehle ausführen:
- 1.
find pub/static -name js-translation.json | xargs rm
- 2.
php bin/magento setup:static-content:deploy en_US
- 3.
php bin/magento setup:static-content:deploy de_DE
Danach sind die Übersetzungen wieder wie sie sein sollen: