Magento2 Lokalisierung Javascript

16

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?

Silvan
quelle
Ich bin nicht 100% sicher, aber ich denke, die Antwort von mage2.pro ist die richtige. Wenn Sie dies zum Beispiel in einer der js-Dateien $.mage.__('Add To Cart')haben, wird es automatisch vom setup:static-content:deployBefehl 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.
Marius

Antworten:

10

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.jsonDateien. Bitte überprüfen Sie diese Dateien und löschen Sie sie, wenn sie leer sind oder so etwas enthalten [].

Timon de Groot
quelle
1
Danke Timon, das ist in der Tat der richtige Weg! Ich habe das vor einiger Zeit selbst herausgefunden, aber die Antwort hier noch nicht gepostet. Dies ist eine großartige Ergänzung zu der Frage.
Silvan
@Silvan In meiner Installation wurden in der Datei js-translation.json in meinem Gebietsschema bereits einige Phrasen übersetzt, es werden jedoch immer noch Phrasen nicht übersetzt. Sollte ich sie manuell zu dieser Datei hinzufügen?
Luis Garcia
Ich würde dies nicht empfehlen, da die js-Übersetzungsdatei beim nächsten Bereitstellen statischer Dateien überschrieben wird. In diesem Fall sollten Sie die Ausdrücke bei jeder Bereitstellung manuell hinzufügen. Sind diese Sätze im Sprachpaket enthalten?
Silvan
1

Versuchen Sie, Übersetzungen zu CSV-Dateien hinzuzufügen, und vergewissern Sie sich dann, dass die folgenden Schritte ausgeführt werden:

  1. Cache-Speicher sollte geleert werden (grundsätzlich sollten die Ordner var / cache und var / view_preprocessed gelöscht werden)
  2. Statische Dateien sollten erneut bereitgestellt werden (alle Ordner in pub / static löschen und bin / magento-Setup ausführen: static-content: deploy)
Arkadii Chyzhov
quelle
0

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.

Rakesh Verma
quelle
ArkadiyCh sagte mir auch, ich solle den Cache entfernen und statische Dateien erneut bereitstellen. Leider behebt dies nicht mein Problem.
Silvan
0

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').

Galina
quelle