Eine ähnliche Frage wurde hier bereits gestellt: Magento 2 Javascript-Textübersetzungen , aber Magento hat diese Übersetzungstechnik in der Beta-Version aktualisiert.
Wie kann ich von Javascript verwendete Übersetzungen hinzufügen oder aktualisieren?
Ich habe herausgefunden, dass Magento eine Datei namens 'js-translation.json' im statischen Ordner erstellt. Wenn ich diese Datei direkt bearbeite, werden meine Übersetzungen aktualisiert. Aber wo wird diese Datei erstellt und wie kann ich Übersetzungen hinzufügen, damit Magento diese automatisch zu js-translation.json hinzufügt, wenn sie generiert wird?
Aktualisieren
Die richtige Antwort auf diese Frage ist immer noch nicht gegeben, obwohl Mage2.PRO mich in die richtige Richtung wies, ist es nicht die vollständige Antwort. Meine js-translation.json ist beim Erzeugen noch leer.
Zum Beispiel übersetze ich gerne die Schaltfläche In den Warenkorb. Diese Schaltfläche hat drei Zustände: In den Warenkorb, Hinzufügen ... und Hinzugefügt ... Wie kann ich diese Wörter übersetzen? Ein weiteres Beispiel ist "Sie haben keine Artikel in Ihrem Warenkorb." Text im Minicart. Ich denke, all diese Sätze sollten aus js-translation.json übersetzt werden, aber wo sollen sie hinzugefügt werden, damit diese Datei mit diesen Übersetzungen gefüllt ist?
$.mage.__('Add To Cart')
haben, wird es automatisch vomsetup:static-content:deploy
Befehl abgeholt . Der einzige Haken ist, dass Sie in den Gebietsschemadateien eine andere Übersetzung für den Text haben müssen. Die Texte, die als Übersetzung den gleichen Text haben, werden nicht zur json-Datei hinzugefügt, um die Größe nicht ohne Grund zu erhöhen.Antworten:
Ich bin mir nicht sicher, ob du es schon herausgefunden hast, aber ich dachte, ich würde trotzdem antworten.
Ich denke, die anderen Antworten gehen in die richtige Richtung.
Vorausgesetzt, Sie haben die Übersetzungen bereits installiert, wenn nicht, bitte:
bin/magento i18n:pack -m replace -d source_nl_NL.csv . nl_NL
Leeren Sie also bitte zuerst den Cache (wie auch andere vorgeschlagen haben):
rm -rf var/cache var/generation var/page_cache var/view_preprocessed
Zweitens löschen Sie bitte Ihren Pub / statischen Ordner:
rm -rf pub/static/*/
Dann generieren wir den statischen Inhalt neu: (Ich habe den Langcode in den anderen Antworten verpasst.)
bin/magento setup:static-content:deploy nl_NL
- Stellen Sie sicher, dass Sie den Langcode hinzufügenÜberprüfen Sie nun, ob eine js-translation.json erstellt wurde:
find pub/static/ -name "js-translation.json"
Höchstwahrscheinlich erhalten Sie eine Liste der
js-translation.json
Dateien. Bitte überprüfen Sie diese Dateien und löschen Sie sie, wenn sie leer sind oder so etwas enthalten[]
.quelle
Versuchen Sie, Übersetzungen zu CSV-Dateien hinzuzufügen, und vergewissern Sie sich dann, dass die folgenden Schritte ausgeführt werden:
quelle
Entfernen Sie den gesamten Inhalt von Cache- und Delele-Pubs / statischen Ordnern.
Gehen Sie in Ihr Stammverzeichnis und führen Sie den folgenden Befehl aus: -
php bin / magento setup: static-content: deploy
Hoffentlich ist Ihr Problem gelöst.
quelle
Ich hatte das gleiche Problem wie "Phrasen in $ .mage .__ ('XXX') können nicht übersetzt werden", wenn Phrasen in phtml perfekt funktionierten. Die Lösung war also genial einfach.
$ t (...) und $ .mage analysieren nur Dateien * .js
Folglich fällt es nicht in das js-Übersetzungswörterbuch.
Wenn Sie also ein Abschnittsskript in HTML-Dateien rendern, sollten Sie die bereits übersetzten Phrasen direkt mit Wrappern einfügen
__('Translated phrase')
.quelle