Environment::getLanguages()
\nn\t3::Environment()->getLanguages($key = 'languageId', $value = NULL);
Returns a list of all defined languages. The languages must be defined in the YAML site configuration.
// [['title'=>'German', 'iso-639-1'=>'de', 'typo3Language'=>'de', ....], ['title'=>'English', 'typo3Language'=>'en', ...]]
\nn\t3::Environment()->getLanguages();
// ['de'=>['title'=>'German', 'typo3Language'=>'de'], 'en'=>['title'=>'English', 'typo3Language'=>'en', ...]]
\nn\t3::Environment()->getLanguages('iso-639-1');
// ['de'=>0, 'en'=>1]
\nn\t3::Environment()->getLanguages('iso-639-1', 'languageId');
// [0=>'de', 1=>'en']
\nn\t3::Environment()->getLanguages('languageId', 'iso-639-1');
Copied!
There are also helpers for converting language IDs into language abbreviations and vice versa:
// --> 0
\nn\t3::Convert('de')->toLanguageId();
// --> 'de'
\nn\t3::Convert(0)->toLanguage();
Copied!
@param string $key
@param string $value
@return string|array
Source Code
public function getLanguages( $key = 'languageId', $value = null )
{
$languages = \nn\t3::Settings()->getSiteConfig()['languages'] ?? [];
array_walk($languages, fn(&$language) => $language['iso-639-1'] = $language['typo3Language'] = $language['iso-639-1'] ?? substr($language['locale'], 0, 2));
if (!$value) {
return array_combine( array_column($languages, $key), array_values($languages) );
}
return array_combine( array_column($languages, $key), array_column($languages, $value) );
}
Copied!