Magento 2 Übersetzungen funktionieren nicht


10

Ich versuche, Text auf der Checkout-Seite zu übersetzen:

"Vorausgesetzt, die Postleitzahl scheint ungültig zu sein."

Wenn ich jedoch Folgendes hinzufüge frontend/..theme../Magento_Checkout/i18n/en_US.csvund erneut bereitstelle, ist die Übersetzung nicht vorhanden:

"Vorausgesetzt, die Postleitzahl scheint ungültig zu sein.", "Test".

Ich habe auch den Cache geleert. Was mache ich falsch?


Überprüfen Sie meine aktualisierte Antwort. Ich hoffe jetzt für dich zu arbeiten.
Suresh Chikani

Antworten:


15

Erstellen Sie ein Verzeichnis app/i18n/Vendorname/en_US

Befehl ausgeben:

bin/magento i18n:collect-phrases --output "app/i18n/Vendorname/en_US/en_US.csv" --magentoDadurch werden alle übersetzbaren Phrasen in der CSV-Datei gesammelt und im angegebenen Pfad abgelegt. Nehmen Sie Änderungen an der CSV-Datei gemäß Ihren Anforderungen vor und geben Sie den Befehl aus, wenn Sie bereit sind:

bin/magento i18n:pack app/i18n/Vendorname/en_US/en_US.csv -d en_US

Dadurch werden die Übersetzungen aus Ihrer Datei bereitgestellt.

Leeren Sie den Cache usw. und Sie sollten Ihre Änderungen sehen.


Das sieht vielversprechend aus. Es heißt, das Sprachpaket wurde erfolgreich gespeichert, aber die Übersetzung ist immer noch nicht da.
Kuchen

Wenn ich den Befehl zum Sammeln von Phrasen erneut ausführe, ist die Übersetzung wieder so, wie sie war. Warum spart es nicht?
Kuchen

Das ist normal, wenn Sie sich Phrasen merken, werden Ihre Änderungen überschrieben, da Magento alle Standardphrasen gesammelt hat. Der Prozess besteht darin, dass Sie Phrasen sammeln, Ihre Änderungen vornehmen und sie bereitstellen. Sobald Sie sie bereitgestellt haben, können Sie in das betreffende Modul wechseln. Nehmen wir an, Sie haben Änderungen für "In den Warenkorb" in "In den Beutel hinzufügen" vorgenommen. Sie können zu "Hersteller / Modulkatalog / i18n / de_DE" wechseln. CSV und suchen Sie nach Ihrem Wechselgeld. Testen Sie dies einfach erneut und es funktioniert wie es sollte. Stellen Sie sicher, dass Sie die zweite Instanz in der Übersetzung ändern und den Cache ordnungsgemäß leeren. Sie können auch versuchen, statische Inhalte erneut bereitzustellen.
Devtype

Vielen Dank, es funktioniert in der Tat. Einige Übersetzungen kommen jedoch nicht durch. Die Übersetzung 'Beispiel:' und 'Erforderliche Felder' werden nicht übersetzt. Woher?
Kuchen

Habe das Problem gefunden. Ich musste PHP Bin / Magento Setup: Upgrade. Danach war meine Seite durcheinander, aber das Thema wurde behoben. Keine Ahnung warum das funktioniert hat. Danke
Kuchen

4

Sie können nur Text ändern, der in Übersetzung geschrieben ist

Mögen : $this->__("Sample Taxt");

Vorgeschlagener Text, der nicht in Übersetzung geschrieben wurde, sodass Sie ihn nicht mit der Übersetzung ändern können.

Wenn Sie es ändern möchten, finden Sie es in der JS- Datei, die sich befindet:

vendor/magento/module-checkout/view/frontend/web/js/model/shipping-rates-validator.js

Hinweis: Sie müssen die JS- Datei in Ihrem Design überschreiben .

Pub / static / * löschen

Führen Sie den Befehl aus :

php bin/magento setup:static-content:deploy 

php bin/magento cache:clean

Browser-Cache löschen.


Ich habe es versucht und es hat aus irgendeinem Grund nicht funktioniert.
Kuchen

Ich habe diese Datei kopiert, die Übersetzung geändert und in app / design / frontend / <Anbieter> / <theme> / Magento_Checkout / web / js / model abgelegt, den Cache erneut bereitgestellt und bereinigt. Aber keine Änderung ..
Kuchen

Überprüfen Sie meine aktualisierte Antwort. Ich hoffe jetzt für dich zu arbeiten.
Suresh Chikani

Das hat tatsächlich funktioniert. Die von Devtype bereitgestellte Lösung entspricht in diesem Fall jedoch eher meinen Anforderungen. Danke für die Hilfe! :)
Kuchen

1

Hatte das gleiche Problem auf meiner Magento 2-Website, habe alle möglichen Vorschläge zur Behebung ausprobiert, aber das einzige, was für mich funktioniert hat, war:

  1. gehe zu /pub/static/frontend/<theme>/<theme>/<language for example pl_PL>

  2. Finden js-translation.jsonund löschen Sie es (machen Sie eine Kopie davon für alle Fälle!)

  3. Gehen Sie zurück zu Ihrem Magento-Stammordner und führen Sie ihn aus php bin/magento setup:static-content:deploy pl_PL

  4. Dann renne php bin/magento cache:flush

Das ist es. Wenn Sie zum /pub/static/frontend/<theme>/<theme>/<language for example pl_PL>Ordner zurückkehren, beachten Sie, dass js-translation.jsondiese erneut generiert wurden.

Dieses Problem tritt auf, weil magento beim Ausführen der statischen Bereitstellung die Datei js-translation.json mit allen in diese eine Datei eingefügten Übersetzungen generiert und sie bei jedem Laden der Seite aufruft. Wenn es also bereits generiert wurde und normalerweise leer ist, kann es nicht mit neuen Informationen überschrieben werden. Durch Löschen und Regenerieren wird das Problem gelöst.

Hoffe das wird jemandem helfen.


Hallo @Pinky_P, in meinem Fall wird die js-translation.json mit meiner erwarteten Übersetzung aktualisiert. Aber es wird nicht im Frontend angezeigt. Könnten Sie mir bitte helfen, dieses Problem zu beheben?
Ramya

0

🎗Nur eine Erinnerung ...

Magento speichert einige Übersetzungsdaten im Browserspeicher.

Möglicherweise müssen Sie zusätzlich zu den internen Magento-Caches die Speicherelemente des Browsers bereinigen.

Geben Sie hier die Bildbeschreibung ein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.