web-dev-qa-db-fra.com

Comment détecter la langue actuelle d'un Joomla! site Internet?

Je veux juste générer un code qui détectera la langue actuelle de mon site Web dans joomla + php

36
leonyx

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();
91
MvanGeest

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();
    
3
itoctopus