public static function getLanguages($blnInstalledOnly = false)
{
$return = array();
$languages = array();
$arrAux = array();
$langsNative = array();
static::loadLanguageFile('languages');
include __DIR__ . '/../../config/languages.php';
foreach ($languages as $strKey => $strName) {
$arrAux[$strKey] = isset($GLOBALS['TL_LANG']['LNG'][$strKey]) ? Utf8::toAscii($GLOBALS['TL_LANG']['LNG'][$strKey]) : $strName;
}
asort($arrAux);
$arrBackendLanguages = scan(__DIR__ . '/../../languages');
foreach (array_keys($arrAux) as $strKey) {
if ($blnInstalledOnly && !in_array($strKey, $arrBackendLanguages)) {
continue;
}
$return[$strKey] = isset($GLOBALS['TL_LANG']['LNG'][$strKey]) ? $GLOBALS['TL_LANG']['LNG'][$strKey] : $languages[$strKey];
if (isset($langsNative[$strKey]) && $langsNative[$strKey] != $return[$strKey]) {
$return[$strKey] .= ' - ' . $langsNative[$strKey];
}
}
// HOOK: add custom logic
if (isset($GLOBALS['TL_HOOKS']['getLanguages']) && is_array($GLOBALS['TL_HOOKS']['getLanguages'])) {
foreach ($GLOBALS['TL_HOOKS']['getLanguages'] as $callback) {
static::importStatic($callback[0])->{$callback[1]}($return, $languages, $langsNative, $blnInstalledOnly);
}
}
return $return;
}