J'essaie de décomposer mes chaînes de traduction en plusieurs fichiers et d'éviter de les analyser à chaque requête. Je sais que les fichiers de langue de base sont chargés sur Joomla! initialisation de l'application. D'après les documents de l'API, il me semble que je devrais pouvoir charger un fichier de langue arbitraire à tout moment, dans un constructeur View, par exemple. J'utilise un code semblable à celui-ci dans un tel constructeur de vue:
$lang = JFactory::getLanguage();
$lang->load('custom', JROOT . DS . 'administrator' . DS . 'components' . DS . 'com_myextension', $lang->getTag(), true);
En utilisant le débogage de la langue, j'obtiens l'erreur suivante:
**Not loaded** : JROOT/administrator/components/com_myextension/language/en-GB/en-GB.custom.ini
Les autorisations de répertoire/fichier sont correctement définies. Le fichier est définitivement présent. Il n'y a rien dans le fichier ini qui puisse causer une erreur d'analyse. La même page d'accueil charge correctement le fichier de langue du composant:
**Loaded** : JROOT/components/com_myextension/language/en-GB/en-GB.com_myextension.ini
J'essaie de charger le fichier de langue personnalisé à partir du backend, car les chaînes sont partagées backend/frontend. J'ai essayé de le déplacer vers le frontend et de le charger à partir de là en vain. J'ai soigneusement vérifié les fautes d'orthographe. Cela ne fonctionne pas non plus avec un constructeur de contrôleur. Quelqu'un peut-il m'aider à comprendre pourquoi cela ne fonctionne pas?
JROOT
n'est pas une constante de chemin valide. Changez-le en JPATH_ROOT
. Ou utiliser JPATH_ADMINISTRATOR
au lieu de JROOT . DS . 'administrator'