Les traductions de Magento 2 ne fonctionnent pas

10

J'essaie de traduire du texte dans la page de paiement:

"Le code postal fourni ne semble pas valide."

Cependant, lorsque j'ajoute et redéploie ce qui suit frontend/..theme../Magento_Checkout/i18n/en_US.csv, la traduction n'est pas là:

"Le code postal fourni semble invalide.", "Test".

J'ai également vidé le cache. Qu'est-ce que je fais mal?

gâteau
la source
vérifier ma réponse mise à jour. J'espère maintenant travailler pour vous.
Suresh Chikani

Réponses:

15

Créer un répertoire app/i18n/Vendorname/en_US

Commande d'émission:

bin/magento i18n:collect-phrases --output "app/i18n/Vendorname/en_US/en_US.csv" --magentoCela va collecter toutes les phrases traduisibles dans le fichier csv et les placer dans le chemin spécifié. Apportez des modifications au fichier csv selon vos besoins et lorsque la commande d'émission prête:

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

Cela déploiera les traductions de votre fichier.

videz le cache, etc. et vous devriez voir vos modifications.

Devtype
la source
Cela semble prometteur. Il dit que le paquet de langue a été enregistré avec succès mais la traduction n'est toujours pas là.
Cake
Lorsque je refais la commande collect-phrases, la traduction revient à ce qu'elle était. Pourquoi ne sauve-t-il pas?
Gâteau
C'est un comportement normal, lorsque vous vous souvenez de phrases, il remplace vos modifications car Magento a récupéré toutes les phrases par défaut. Le processus consiste à collecter des phrases, à apporter vos modifications et à les déployer.Une fois déployé, vous pouvez aller dans le module concerné, disons que vous avez apporté des modifications pour Ajouter au panier pour ajouter au sac, vous pouvez aller dans le fournisseur / module-catalogue / i18n / en_US. csv et recherchez votre changement. Je viens de retester cela et cela fonctionne comme il se doit. Assurez-vous de modifier la deuxième instance de traduction et de vider correctement le cache. Vous pouvez également essayer de déployer à nouveau du contenu statique.
Devtype
Merci beaucoup, cela fonctionne en effet. Cependant, certaines traductions ne parviennent pas. La traduction «Exemple:» et les «champs obligatoires» ne sont pas traduits. Comment venir?
Cake
Trouvé le problème. J'ai dû configurer php bin / magento: mise à niveau. Après cela, mon site a été foiré, mais le thème a été corrigé. Je ne sais pas pourquoi cela a fonctionné. Merci
Cake
4

Vous ne pouvez modifier que le texte écrit en traduction

Comme : $this->__("Sample Taxt");

Texte suggéré non écrit dans la traduction, vous ne pouvez donc pas le modifier avec la traduction.

Si vous voulez le changer, vous pouvez le trouver dans le fichier JS qui se trouve:

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

Remarque: vous devez remplacer le fichier JS dans votre thème.

Supprimer pub / statique / *

Exécuter la commande:

php bin/magento setup:static-content:deploy 

php bin/magento cache:clean

Supprimer le cache du navigateur.

Suresh Chikani
la source
J'ai essayé cela et cela n'a pas fonctionné pour une raison quelconque.
Cake
J'ai copié ce fichier, changé la traduction et l'ai mis dans app / design / frontend / <vendor> / <theme> / Magento_Checkout / web / js / model, redéployé et nettoyé le cache. Mais pas de changement ..
Gâteau
vérifier ma réponse mise à jour. J'espère maintenant travailler pour vous.
Suresh Chikani
Cela a bien fonctionné. Cependant, la solution fournie par Devtype convient davantage à mes besoins dans ce cas. Merci pour l'aide! :)
Cake
1

J'ai eu le même problème sur mon site Web Magento 2, j'ai essayé toutes sortes de suggestions pour le résoudre, mais la seule chose qui a fonctionné pour moi était -

  1. aller à /pub/static/frontend/<theme>/<theme>/<language for example pl_PL>

  2. Trouvez-le js-translation.jsonet supprimez-le (faites-en une copie au cas où!)

  3. Retournez dans votre dossier racine magento et exécutez php bin/magento setup:static-content:deploy pl_PL

  4. Ensuite, exécutez php bin/magento cache:flush

C'est ça. Si vous revenez au /pub/static/frontend/<theme>/<theme>/<language for example pl_PL>dossier, notez qu'ils js-translation.jsonont été générés à nouveau.

Ce problème se produit car lorsque vous exécutez un déploiement statique, magento génère un fichier js-translation.json avec toutes vos traductions insérées dans ce fichier et l'appelle à chaque fois que la page est chargée. Ainsi, lorsqu'il est déjà généré et généralement vide, il ne peut pas le remplacer par de nouvelles informations. En le supprimant et en le régénérant, le problème sera résolu.

J'espère que cela va aider quelqu'un.

Pinky_P
la source
Salut @Pinky_P, dans mon cas, js-translation.json est mis à jour avec ma traduction attendue. Mais il ne s'affiche pas en frontend. Pourriez-vous s'il vous plaît m'aider à résoudre ce problème.
Ramya
0

UstJuste un rappel ...

Magento stocke certaines données de traduction dans le stockage du navigateur.

Vous devrez peut-être nettoyer les éléments de stockage du navigateur en plus des caches internes de Magento.

entrez la description de l'image ici

Ricardo Martins
la source