Dieses Problem ist ab Version 2.2.x behoben.

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:

magento-translation-bug

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. 1. find pub/static -name js-translation.json | xargs rm
  2. 2. php bin/magento setup:static-content:deploy en_US
  3. 3. php bin/magento setup:static-content:deploy de_DE

Danach sind die Übersetzungen wieder wie sie sein sollen:

magento-translation-bugfix