web-dev-qa-db-fra.com

Comment gérer les variables de langue dans JavaScript?

Dans mon composant personnalisé, je fais beaucoup de validation JavaScript pour chaque vue. La validation génère divers messages d'erreur et ces messages sont configurés dans le fichier de langue en-GB.com_mycomp.ini et j'écris l'inclusion JavaScript comme ci-dessous dans un fichier PHP.

dans le view.html.php

require_once JPATH_COMPONENT.'/views/send/tmpl/validation.php';

validation.php

function doValidation(){
  // do some checking
  alert("<?php echo JText::_( 'VALIDATION_ERROR'); ?>");
}

En procédant ainsi, le code JavaScript est rendu avec le fichier PHP.

Ce que je pensais est d'utiliser la fonction standard $document->addScript(...) afin que les fichiers .js soient chargés dans le cadre de l'en-tête. Depuis que j'ai les instructions inline PHP, je ne suis pas capable de le faire comme ça.

Remarque: je ne souhaite pas coder en dur les messages d'erreur dans le fichier .js car le composant est indépendant du langage.

J'ai besoin de conseils sur la meilleure façon d'inclure du code JavaScript ayant des valeurs spécifiques à la langue.

7
Malaiselvan

Joomla a une certaine méthode pour cela. Premier arrivé view.html.php ajoute toutes les chaînes, ce qui doit être traduit avec ceci:

JText::script('VALIDATION_ERROR');

Cela ajoutera votre chaîne à un objet javascript, ce que vous pourrez utiliser plus tard.

Et en javascript, utilisez:

Joomla.JText._('VALIDATION_ERROR')

Ce qui vous donnera une traduction correspondante dans la langue actuelle. De cette façon, vous pouvez conserver JS et PHP) dans des fichiers séparés.

9
Rene Korss