Je veux juste générer un code qui détectera la langue actuelle de mon site Web dans joomla + php
Voir getLanguage dans JFactory :
$lang = JFactory::getLanguage();
echo 'Current language is: ' . $lang->getName();
Une fois que vous avez la langue, vous pouvez également récupérer le code de langue/langue (par exemple en-US
). Joomla! les langues peuvent avoir plusieurs paramètres régionaux, vous obtiendrez donc un tableau.
$lang = JFactory::getLanguage();
foreach($lang->getLocale() as $locale) {
echo 'This language supports the locale: ' . $locale;
}
Si pour une raison quelconque, vous n'êtes intéressé que par la première locale, vous pouvez simplement saisir le premier élément. Vous aurez probablement besoin d'un tableau, comme celui-ci:
$lang = JFactory::getLanguage();
$locales = $lang->getLocale();
echo 'This language\'s first locale is: ' . $locales[0];
Si vous souhaitez simplement obtenir la balise de langue sélectionnée (par exemple pt-PT), vous pouvez utiliser getTag ()
$lang = JFactory::getLanguage();
echo 'Current language is: ' . $lang->getTag();
Dans Joomla 3.4+, la réponse de @MvanGeest fonctionne toujours. Voici une liste de fonctions utiles qui existent sur l'objet langage:
Obtenez une poignée sur la langue actuelle via un objet de type JLanguage
$currentLanguage = JFactory::getLanguage();
Obtenez le nom de la langue actuelle:
$currentLanguageName = $currentLanguage->get('name');
//OR
$currentLanguageName = $currentLanguage->getName();
Vérifiez si RTL (ce qui est le cas de la langue arabe et de certaines autres langues)
$isRTL = $currentLanguage->get('rtl');
//OR
$isRTL = $currentLanguage->isRtl();
Obtenez la balise de langue actuelle:
$currentTag = $currentLanguage->get('tag');
//OR
$currentTag = $currentLanguage->getTag();
Obtenez une liste de toutes les langues connues:
$arrLanguages = $currentLanguage->getKnownLanguages();