9
votes

Magento, traduire des messages d'erreur de validation

J'ai créé avec succès de nouvelles règles pour la validation du prototype, maintenant, je dois traduire les messages d'erreur (emplacement: chaîne en JavaScript). Cependant, je ne peux traduire que tous les messages, mes nouveaux personnalisés ne semblent pas être traduits. Comment puis-je changer cela?


3 commentaires

Utilisez-vous ceci -> __ (topext)? Vos messages traduits sont-ils dans les fichiers CSV correspondants?


En fait, je n'ai pas parce que l'étiquette est dans un fichier JS non actualisé. Comme toutes les autres étiquettes. alors il trys de les jeter à travers le traducteur JS


X-Ref: Magento :: Traduire le texte des fichiers JavaScript


6 Réponses :


0
votes

Nous avions exactement le même problème avec l'un de nos projets de magentas. Nous avons constaté que la fonction dans app / conception / frontend / par défaut / par défaut / de modèle / page / htmlhead.phtml avait été commentée: xxx

après avoir mis cela dans Cela n'a toujours pas fonctionné, car les traductions n'avaient pas été insérées dans la traduction du fichier. Vérifiez ces deux choses et il devrait commencer à fonctionner.


0 commentaires

-2
votes

Pour développer ce problème, vous devez ajouter les chaînes de traduction à Mage / Core / Helper / js.php.


3 commentaires

Cela ne fournit pas de réponse à la question. Critiquer ou demander des éclaircissements d'un auteur, laissez un commentaire sous leur poste.


Oh oui, ça fait. Au point où j'ai répondu cela, c'était la seule réponse appropriée. La réponse supérieure et plus complète est arrivée un an après le mien. Merci pour le Downvote d'avoir posté de l'aide qui m'a pris des heures pour comprendre. > _>


Je pensais qu'il était évident que vous ne modifiez pas les fichiers dans l'application / code / noyau / mais plutôt une copie dans l'application / code / local.



1
votes

Vous pouvez modifier app / local / ur_language / mage_core.csv fichier, ajout de la chaîne d'origine dans la première colonne la traduite dans la seconde. Toutes les traductions JavaScript sont stockées dans ce fichier.


0 commentaires

5
votes

Pour traduire des messages d'erreur JavaScript personnalisés Vous devez également les ajouter au fichier suivant: xxx

trouver une fonction _getTranslateata () Et vous verrez un tas de messages déjà là-bas.

Ajoutez simplement votre message quelque part dans le tableau comme ceci: xxx

n'oublie pas une virgule (,) .

puis mettez la traduction dans certains fichiers de traduction.

dans le fichier où vous utilisez ce message (je l'utilise dans opcheckout.js fichier) Vous devez envelopper le texte dans traducteur.Translate ('C'est ma validation message ') .

Je n'ai pas encore compris s'il est important qui traduisent le fichier qui est. Vous pouvez essayer mage_core.csv .

J'en ai besoin dans mage_checkout.csv et il fonctionne là-bas. << P > Quoi qu'il en soit, pour ceux qui sont intéressés par plus, j'ai remarqué que ces messages JavaScript sont imprimés dans l'en-tête de chaque page HTML et de certaines inquiétantes qu'il gâchit avec le référencement. En tout cas, cela est imprimé dans le fichier \ app \ concept \ frontend \ bmled \ moule \ modèle \ page \ html \ head.phtml avec le code. xxx

Vérifiez plus ici:


J'espère que cela aide, je J'espère que cela fonctionne partout, jusqu'à présent, je l'ai testé sur Onepage Checkout uniquement.


1 commentaires

Modification du fichier Magneto Core est un NON-NO . Vous ferez quelque chose comme translator.add ('c'est mon message de validation', ' __ (" C'est mon message de validation ")?> ') ; à la place.



10
votes

Peut-être que vous avez besoin d'un fichier jstranslator.xml fichier intérieur etc dossier: xxx

avec la structure et les significations suivantes:

  • - [un] noeud racine XML.
    • - [zéro ou plus] Nœud racine éléments d'enfant avec un nom d'élément XML unique sur tout jstranslator.xml (sinon dernier ordre de chargement basé sur la liste des module gagne).
      • attributs:
      • traduction = "message" - (facultatif) Un indice que l'élément (s) enfant (s) traduit (s) traduit est nommé " message ", mais cela est durcied pour Les fichiers XML de traduction JS (Magento CE 1.9, recherchent " * / message ") et cet attribut n'a pas besoin d'être utilisé.
      • module = "myModule" - (facultatif) Nom du module, s'il limite la valeur est " noyau ". Il sera utilisé pour instancier l'assistant de données plus tard sur (à partir de ce module), qui est alors repéré pour charger les traductions (par exemple à partir des fichiers CSV).
      • - [zéro ou un par parent] message à traduire. La valeur de texte de cette valeur de nœud d'éléments est prise pour être ajoutée au traducteur JavaScript Traductrice Data d'objet.

        Tous jstranslator.xml fichiers des modules activés sont traités.

        puis placez votre ligne de traduction dans le quelque chose_mymodule .csv Fichier: xxx

        puis dans vos scripts JS, vous pouvez utiliser vos propres traductions via le traducteur : < Pré> xxx

        Références supplémentaires


0 commentaires

1
votes

Qu'est-ce qui m'a aidé (magento ee 1.6) - J'ai ajouté un nouvel objet de traduction: xxx

s'il est défini Varienform utilise-le dans JS Validation


1 commentaires

Vous ne codez pas correctement les données en tant que chaînes JavaScript. Les traductions de la base de données remplacent toutes les autres traductions, cela peut être utilisé pour injecter du code dans le frontage de votre application via la couche de stockage même. Imaginaire -1 Pour cela, vous devriez préférer jstranslator.xml car il est plus facile avec le codage.