J'essaie d'utiliser Jlayout dans un plugin que j'écris et tout fonctionne bien sauf que les constantes de langue dans le fichier de mise en page ne sont pas remplacées.
Mon appel à rendre la mise en page est;
$layout = new JLayoutFile($layoutname, $layoutpath);
$body = $layout->render($data);
Dans mon fichier de mise en page, j'ai:
<th><?php echo Jtext::_('COM_MEMBERSHIPS_FIELD_MEMBERSHIP_LABEL'); ?></th>
<td><?php echo $displayData['membership']; ?></td>
Si je vide $ body après le rendu, j'obtiens:
COM_MEMBERSHIPS_FIELD_MEMBERSHIP_LABEL 911
Le '911' est les données attendues pour l'appartenance au champ mais j'attends:
Membership: 911
Je poursuis ce problème depuis des heures maintenant et ne semble pas être en mesure de trouver quoi que ce soit qui me donne des indices sur ce qui se passe.
Ce que je peux partager, c'est que la constante se trouve dans le fichier .ini dans les fichiers de langue du site et d'administration, car la constante est correctement remplacée dans d'autres vues.
Mon hypothèse est que pour une raison quelconque, les fichiers de langue ne sont pas trouvés dans le processus Jlayout, comme je manque une ligne ou quelque chose qui doit l'inclure, mais je ne trouve aucun exemple qui montre que quoi que ce soit d'autre est nécessaire.
Merci d'avance,
Terry
Je viens de vérifier quelques éléments depuis que j'ai répondu. Veuillez voir ci-dessous le saut de ligne.
Appelez-vous l'appel $this->loadLanguage($this->_name, [path/to/language/directory]);
dans votre plugin?
En un coup d'œil, je peux voir que vous semblez avoir une faute de frappe dans votre appel Jtext::_()
. Essayez plutôt de le remplacer par JText::_()
.
Si cela ne fonctionne pas: avez-vous activé le débogage de la langue?
J'essaierai de le vérifier dans le plugin sur lequel je travaille et je publierai la mise à jour en conséquence.
** MISE À JOUR: ** Je peux confirmer qu'en appelant Jtext::_()
ou JText::_()
, mon PLG_MYPLUGIN_CONSTANTS
sont traduit.
Je recommande donc de vérifier que:
language/en-GB.plg_system_[your_plugin_name].ini
language/en-GB.plg_system_[your_plugin_name].sys.ini
$this->loadLanguage()
susmentionnée dans la __construct()
méthode J'espère que c'est utile!
Gez