it-swarm-pt.tech

Como detectar o idioma atual de um Joomla! local na rede Internet?

Eu só quero gerar um código que irá detectar o idioma atual do meu site no joomla + php

36
leonyx

Veja getLanguage no JFactory :

$lang = JFactory::getLanguage();
echo 'Current language is: ' . $lang->getName();

Depois de ter o idioma, você também pode recuperar o código de idioma/idioma (por exemplo, en-US). Joomla! idiomas podem ter vários códigos de idioma, para que você obtenha uma matriz.

$lang = JFactory::getLanguage();
foreach($lang->getLocale()  as  $locale) {
    echo 'This language supports the locale: ' . $locale;
}

Se, por algum motivo, você estiver interessado apenas no primeiro código do idioma, poderá simplesmente pegar o primeiro elemento. Você provavelmente precisará de uma matriz como esta:

$lang = JFactory::getLanguage();
$locales = $lang->getLocale();
echo 'This language\'s first locale is: ' . $locales[0];

Se você quiser apenas obter a tag de idioma selecionada (por exemplo, pt-PT), use getTag ()

$lang = JFactory::getLanguage();
echo 'Current language is: ' . $lang->getTag();
91
MvanGeest

No Joomla 3.4+, a resposta de @MvanGeest ainda funciona. Aqui está uma lista de funções úteis que existem no objeto de idioma:

  • Identifique o idioma atual por meio de um objeto do tipo JLanguage

    $currentLanguage = JFactory::getLanguage();
    
  • Obtenha o nome do idioma atual:

    $currentLanguageName = $currentLanguage->get('name');
    
    //OR
    
    $currentLanguageName = $currentLanguage->getName();
    
  • Verifique se RTL (que é o caso do idioma árabe e de alguns outros idiomas)

    $isRTL = $currentLanguage->get('rtl');
    
    //OR
    
    $isRTL = $currentLanguage->isRtl();
    
  • Obtenha a tag de idioma atual:

    $currentTag = $currentLanguage->get('tag');
    
    //OR
    
    $currentTag = $currentLanguage->getTag();
    
  • Obtenha uma lista de todos os idiomas conhecidos:

    $arrLanguages = $currentLanguage->getKnownLanguages();
    
3
itoctopus