Compatibilité Joomla!
Lorsque l'on crée un plugin pour Joomla! il peut arriver que l'on ait besoin d'ajouter des termes à traduire dans plusieurs langues. Joomla! offre la possibilité de créer et utiliser des fichiers de langues qui se trouvent dans "[site]/administrator/language/". Or pour les utiliser dans un plugin, il faut les appeler à partir de la classe constructeur et installer les fichiers.
Installer les fichiers de langue du plugin
La première des choses à faire est de modifier son fichier d'installation XML (aussi appelé le manifest) pour y ajouter les instructions pour la copie des fichiers .ini.
Les fichiers de langue d'un plugin Joomla! se trouvent dans le répertoire "administrator" du site.
Prenons l'exemple d'un plugin de contenu (du groupe "content") "Monplugin" qui serait traduit en français et anglais, voici la structure à ajotuer dans le fichier XML :
<administration> <languages folder="language"> <language tag="fr-FR">fr-FR/fr-FR.plg_content_monplugin.ini</language> <language tag="fr-FR">fr-FR/fr-FR.plg_content_monplugin.sys.ini</language> <language tag="en-GB">en-GB/en-GB.plg_content_monplugin.ini</language> <language tag="en-GB">en-GB/en-GB.plg_content_monplugin.sys.ini</language> </languages> </administration>
Les fichiers .ini doivent être placés dans un répertoire "language" à la racine du package d'installation, dans les dossiers respectifs des langues (fr-FR, en-GB).
Chargement des langues dans le plugin
Dans le plugin lui-même il faut faire appel à l'API de Joomla! avec la fonction "$this->loadLanguage();" pour charger les fichiers de langue et pouvoir utiliser les traductions. Ca se passe dans la classe constructeur du plugin Joomla! :
class plgContentMonplugin extends JPlugin { public function __construct(& $subject, $config) { parent::__construct($subject, $config); $this->loadLanguage(); } ... reste du plugin ... }
Et voilà vous pouvez maintenant ajouter vos traductions avec la fonction JText de l'API Joomla! :
JText::('TERME_A_TRADUIRE')
Ces explications sont extraites d'un fil de discussion sur le forum Joomla.fr