web-dev-qa-db-ja.com

Joomla!の現在の言語を検出する方法ウェブサイト?

私は、webomの現在の言語をjoomla + phpで検出するコードを生成したいだけです。

36
leonyx

JFactoryのgetLanguage を参照してください。

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

言語を取得したら、ロケール/言語コードを取得することもできます(例:en-US)。 Joomla!言語は複数のロケールを持つことができるため、配列を取得します。

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

何らかの理由で最初のロケールのみに関心がある場合は、最初の要素を取得するだけです。おそらく次のような配列が必要になります。

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

選択した言語タグ(pt-PTなど)を取得するだけの場合は、getTag()を使用できます

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

Joomla 3.4以降では、@ MvanGeestによる回答は引き続き機能します。言語オブジェクトに存在する便利な関数のリストは次のとおりです。

  • タイプJLanguageのオブジェクトを通じて現在の言語のハンドルを取得します

    $currentLanguage = JFactory::getLanguage();
    
  • 現在の言語名を取得します。

    $currentLanguageName = $currentLanguage->get('name');
    
    //OR
    
    $currentLanguageName = $currentLanguage->getName();
    
  • RTLかどうかを確認します(アラビア語およびその他の言語の場合)

    $isRTL = $currentLanguage->get('rtl');
    
    //OR
    
    $isRTL = $currentLanguage->isRtl();
    
  • 現在の言語タグを取得します。

    $currentTag = $currentLanguage->get('tag');
    
    //OR
    
    $currentTag = $currentLanguage->getTag();
    
  • すべての既知の言語のリストを取得します。

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