Localisation Magento2 Javascript


16

Une question similaire a déjà été posée ici: traductions de texte javascript de Magento 2 , mais Magento a mis à jour cette technique de traduction dans la version bêta.

Comment puis-je ajouter ou mettre à jour des traductions utilisées par Javascript?

J'ai compris que Magento crée un fichier appelé 'js-translation.json' dans le dossier statique. Si je modifie ce fichier directement, je constate que mes traductions sont mises à jour. Mais où ce fichier est-il créé et comment puis-je ajouter des traductions pour que Magento l'ajoute automatiquement à js-translation.json lors de sa génération?

Mise à jour

La bonne réponse à cette question n'est toujours pas donnée, même si Mage2.PRO m'a indiqué la bonne direction, ce n'est pas la réponse complète. Mon js-translation.json est toujours vide lors de sa génération.

Par exemple, j'aime traduire le bouton Ajouter au panier. Ce bouton a trois états, Ajouter au panier, Ajouter ... et Ajouté ... Comment puis-je traduire ces mots? Un autre exemple, le "Vous n'avez aucun article dans votre panier". texte dans le minicart. Je pense que toutes ces phrases devraient être traduites de js-translation.json, mais où les ajouter pour que ce fichier soit rempli de ces traductions?


Je ne suis pas sûr à 100% de cela, mais je pense que la réponse fournie par mage2.pro est la bonne. Si vous avez par exemple ceci dans l'un des fichiers js, $.mage.__('Add To Cart')il sera automatiquement récupéré par la setup:static-content:deploycommande. Le seul hic est que vous devez avoir dans les fichiers de paramètres régionaux une traduction différente pour le texte. Les textes qui ont comme traduction le même texte ne sont pas ajoutés au fichier json afin de ne pas augmenter la taille sans raison.
Marius

Réponses:


10

Je ne sais pas si vous l'avez déjà compris, mais je pensais que je répondrais de toute façon ..

Je suppose que les autres réponses vont dans la bonne direction.

En supposant que vous avez déjà installé les traductions, sinon:

bin/magento i18n:pack -m replace -d source_nl_NL.csv . nl_NL

Donc, tout d'abord, veuillez vider le cache (comme d'autres l'ont suggéré également):

rm -rf var/cache var/generation var/page_cache var/view_preprocessed

Deuxièmement, veuillez effacer votre dossier pub / statique:

rm -rf pub/static/*/

Ensuite, nous régénérons le contenu statique: (j'ai raté le langcode dans les autres réponses ..)

bin/magento setup:static-content:deploy nl_NL - Assurez-vous d'ajouter le langcode

Vérifiez maintenant si js-translation.json a été créé:

find pub/static/ -name "js-translation.json"

Vous obtiendrez probablement une liste de js-translation.jsonfichiers. Veuillez vérifier ces fichiers et les supprimer s'ils sont vides ou contiennent quelque chose comme [].


1
Merci Timon, c'est en effet la voie à suivre! Je l'ai moi-même compris il y a un moment, mais je n'ai pas encore posté la réponse ici. C'est un excellent ajout à la question.
Silvan

@Silvan Dans mon installation, le fichier js-translation.json a déjà des phrases traduites dans ma langue mais il y a encore des phrases non traduites, dois-je les ajouter manuellement à ce fichier?
Luis Garcia

Je ne recommanderais pas cela, car le fichier de traduction js sera écrasé la prochaine fois que vous déploierez des fichiers statiques. Dans ce cas, vous devez ajouter les phrases manuellement chaque fois que vous effectuez un déploiement. Ces phrases sont-elles présentes dans le pack de langue?
Silvan

1

Essayez d'ajouter des traductions aux fichiers .csv, puis assurez-vous que les étapes suivantes sont exécutées:

  1. Le stockage du cache doit être vidé (essentiellement les dossiers var / cache et var / view_preprocessed doivent être effacés)
  2. Les fichiers statiques doivent être redéployés (supprimez tous les dossiers dans pub / static et exécutez la configuration bin / magento: static-content: deploy)

0

Supprimez tout le cache et le contenu du dossier pub / statique delele.

Allez dans votre répertoire racine et exécutez la commande ci-dessous: -

configuration de php bin / magento: contenu statique: déployer

J'espère que votre problème sera résolu.


ArkadiyCh m'a également dit de supprimer le cache et de redéployer les fichiers statiques, malheureusement cela ne résout pas mon problème.
Silvan

0

J'ai eu le même problème comme "Impossible de traduire des phrases en $ .mage .__ ('XXX')" lorsque la phrase en phtml fonctionnait parfaitement. La solution était donc ingénieusement simple.

$ t (...) et $ .mage analyse uniquement les fichiers * .js

Par conséquent, il ne tombe pas dans le dictionnaire de traduction js.

Ainsi, lors du rendu d'un script de section dans des fichiers phtml, vous devez directement insérer les phrases déjà traduites avec des wrappers __('Translated phrase').

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.