本文整理汇总了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);
}