il est ennuyeux de devoir créer beaucoup de code dans un composant Joomla pour le backend et le front-end. Je voudrais donc utiliser le fichier de langue administrateur de mon composant personnalisé pour mon frontal. J'ai trouvé ce morceau de code utile:
$language = JFactory::getLanguage();
$language->load('com_yourcomponentname', JPATH_ADMINISTRATOR, 'en-GB', true);
Mais où devrais-je inclure ce morceau de code? Je l'ai essayé dans le fichier index.html de mon modèle frontend. Mais ça ne marche pas!
J'ai aussi essayé au début des templates index.html:
$language = JFactory::getLanguage();
$extension = 'com_yourcomponentname';
$base_dir = JPATH_ADMINISTRATOR . DS . 'components' . DS . $extension;
$language_tag = $language->getTag(); // loads the current language-tag
$language->load($extension, $base_dir, $language_tag, true);
$paths = $language->getLanguagePath();
$ path me montre un tableau avec tous les composants chargés, y compris mon composant personnalisé. La dernière entrée du tableau de mon composant personnalisé renvoie correctement au fichier de langue d’administration de mon composant.
D:\htdocs\test\language\en-GB\en-GB.com_yourcomponentname
D:\htdocs\test\language\de-DE\de-DE.com_yourcomponentname
D:\htdocs\test\components\com_yourcomponentname\language\en-EN\en-EN.com_yourcomponentname
D:\htdocs\test\components\com_yourcomponentname\language\de-DE\de-DE.com_yourcomponentname
D:\htdocs\test\administrator\components\com_yourcomponentname\language\en-EN\en-EN.com_yourcomponentname
D:\htdocs\test\administrator\components\com_yourcomponentname\language\de-DE\de-DE.com_yourcomponentname
Mais la traduction des variables ne sont toujours pas faites. La traduction dans le backend fonctionne bien avec ce même fichier.
Définir les instructions dans le point d’entrée du site yourcomponent.php fera l'affaire!
Mettez ces commandes dans le yourcomponent.php:
$language = JFactory::getLanguage();
$extension = 'com_yourcomponentname';
$base_dir = JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . $extension;
$language_tag = $language->getTag(); // loads the current language-tag
$language->load($extension, $base_dir, $language_tag, true);
Si vous voulez charger de administrator/languages
utilisez ce code:
$language = JFactory::getLanguage();
$extension = 'com_yourcomponentname';
$language_tag = $language->getTag(); // loads the current language-tag
$base_dir = JPATH_ADMINISTRATOR;
$language->load($extension, $base_dir, $language_tag, true);