本文整理匯總了PHP中AppLocale::_getAllLocalesCacheContent方法的典型用法代碼示例。如果您正苦於以下問題:PHP AppLocale::_getAllLocalesCacheContent方法的具體用法?PHP AppLocale::_getAllLocalesCacheContent怎麽用?PHP AppLocale::_getAllLocalesCacheContent使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類AppLocale
的用法示例。
在下文中一共展示了AppLocale::_getAllLocalesCacheContent方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: getLocaleFromIso3
/**
* Translate an ISO639-3 compatible 3-letter string
* into the PKP locale identifier.
*
* This can be ambiguous if several locales are defined
* for the same language. In this case we'll use the
* primary locale to disambiguate.
*
* If that still doesn't determine a unique locale then
* we'll choose the first locale found.
*
* @param $iso3 string
* @return string
*/
function getLocaleFromIso3($iso3)
{
assert(strlen($iso3) == 3);
$primaryLocale = AppLocale::getPrimaryLocale();
$localeCandidates = array();
$locales =& AppLocale::_getAllLocalesCacheContent();
foreach ($locales as $locale => $localeData) {
assert(isset($localeData['iso639-3']));
if ($localeData['iso639-3'] == $iso3) {
if ($locale == $primaryLocale) {
// In case of ambiguity the primary locale
// overrides all other options so we're done.
return $primaryLocale;
}
$localeCandidates[] = $locale;
}
}
// Return null if we found no candidate locale.
if (empty($localeCandidates)) {
return null;
}
if (count($localeCandidates) > 1) {
// Check whether one of the candidate locales
// is a supported locale. If so choose the first
// supported locale.
$supportedLocales = AppLocale::getSupportedLocales();
foreach ($supportedLocales as $supportedLocale => $localeName) {
if (in_array($supportedLocale, $localeCandidates)) {
return $supportedLocale;
}
}
}
// If there is only one candidate (or if we were
// unable to disambiguate) then return the unique
// (first) candidate found.
return array_shift($localeCandidates);
}