function getLocalizedLanguageName($id) { $ID_TO_LOCALIZED_NAME_HASH =& fbISO639::getIDToLocalizedNameHash(); /// \todo make multibyte saavy $id = fbString::strtoupper($id); return isset($ID_TO_LOCALIZED_NAME_HASH[$id]) ? $ID_TO_LOCALIZED_NAME_HASH[$id] : false; }
function &parseAcceptLanguages($http_accept_language = null) { fbDebug::enter(); global $_SERVER; // < 4.1.0 static $http_accept_language_map; if (is_null($http_accept_language)) { if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $http_accept_language = $_SERVER['HTTP_ACCEPT_LANGUAGE']; } } if (!isset($http_accept_language_map[$http_accept_language])) { if (strpos($http_accept_language, ',') !== false) { $languages = explode(',', $http_accept_language); } else { $languages = array($http_accept_language); } $locales = array(); foreach ($languages as $language) { $semicolon = strpos($language, ';'); if ($semicolon !== false) { $language = trim(substr($language, 0, $semicolon)); } $language = strtr($language, '-', '_'); if (strlen($language) == 2) { $language = $language . '_' . $language; } $underscore = strpos($language, '_'); if ($underscore !== false) { $language = fbString::strtolower(substr($language, 0, $underscore)) . '_' . fbString::strtoupper(substr($language, $underscore + 1)); } $locales[] = $language; } $http_accept_language_map[$http_accept_language] = $locales; } fbDebug::leave($http_accept_language_map[$http_accept_language]); return $http_accept_language_map[$http_accept_language]; }