2010-07-28 13 views
31

Sadece joomlaya + php benim websit geçerli dilini algılar bir kod oluşturmak istiyorumJoomla! 'Nın mevcut dili nasıl algılanır? Web sitesi?

+1

hakkında dil konuştuğunu:

$currentTag = $currentLanguage->get('tag'); //OR $currentTag = $currentLanguage->getTag(); 
  • bilinen tüm dillerin listesini alın? Programlama veya konuşma veya tarayıcı dili? – Sarfraz

  • cevap

    78

    getLanguage in JFactory bakınız: Eğer dil edindikten sonra

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

    , ayrıca yerel/dil alabilirsiniz kod (ör. en-US). Joomla! Diller birden fazla yerel olabilir, böylece bir dizi alırsınız.

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

    nedense, ilk yerdeki tek ilgileniyorsanız, sadece birinci elemanı yakalayabilir. Böyle, bir dizi ihtiyacı olacak,:

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

    sadece Joomla yılında gettag()

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

    İşine yardımcı olması için Thanx – leonyx

    +0

    Dil kodunu öğrenmeye ne dersiniz? –

    +0

    @Ivan Slaughter: Cevabımı güncelledim. – MvanGeest

    0

    kullanabilirsiniz (örn pt-PT) seçilen dil etiketi almak istiyorsanız 3.4+ , @MvanGeest tarafından cevap hala çalışıyor. İşte dil nesnede kullanışlı fonksiyonları bir liste:

    • türünde bir nesne yoluyla mevcut dile kolu alın JLanguage

      $currentLanguage = JFactory::getLanguage(); 
      
    • mevcut dil adı alın:

    • RTL (Arapça ve diğer dillerdeki gibi) olup olmadığını kontrol edin

      $isRTL = $currentLanguage->get('rtl'); 
      
      //OR 
      
      $isRTL = $currentLanguage->isRtl(); 
      
    • mevcut dil etiketi alın:

      $arrLanguages = $currentLanguage->getKnownLanguages();