本文整理汇总了PHP中Zend_Locale::getAlias方法的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Locale::getAlias方法的具体用法?PHP Zend_Locale::getAlias怎么用?PHP Zend_Locale::getAlias使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend_Locale
的用法示例。
在下文中一共展示了Zend_Locale::getAlias方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _getOptionLocales
/**
* Get options array for locale dropdown
*
* @param bool $translatedName translation flag
* @return array
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
protected function _getOptionLocales($translatedName = false)
{
$options = [];
$locales = $this->_localeResolver->getLocale()->getLocaleList();
$languages = $this->_localeResolver->getLocale()->getTranslationList('language', $this->_localeResolver->getLocale());
$countries = $this->_localeResolver->getLocale()->getTranslationList('territory', $this->_localeResolver->getLocale(), 2);
//Zend locale codes for internal allowed locale codes
$allowed = $this->_config->getAllowedLocales();
$allowedAliases = [];
foreach ($allowed as $code) {
$allowedAliases[\Zend_Locale::getAlias($code)] = $code;
}
//Process translating to internal locale codes from Zend locale codes
$processedLocales = [];
foreach ($locales as $code => $active) {
if (array_key_exists($code, $allowedAliases)) {
$processedLocales[$allowedAliases[$code]] = $active;
} else {
$processedLocales[$code] = $active;
}
}
foreach (array_keys($processedLocales) as $code) {
if (strstr($code, '_')) {
if (!in_array($code, $allowed)) {
continue;
}
$data = explode('_', $code);
if (!isset($languages[$data[0]]) || !isset($countries[$data[1]])) {
continue;
}
if ($translatedName) {
$label = ucwords($this->_localeResolver->getLocale()->getTranslation($data[0], 'language', $code)) . ' (' . $this->_localeResolver->getLocale()->getTranslation($data[1], 'country', $code) . ') / ' . $languages[$data[0]] . ' (' . $countries[$data[1]] . ')';
} else {
$label = $languages[$data[0]] . ' (' . $countries[$data[1]] . ')';
}
$options[] = ['value' => $code, 'label' => $label];
}
}
return $this->_sortOptionArray($options);
}
示例2: _checkLocale
/**
* Internal function for checking the locale
*
* @param string|Zend_Locale $locale Locale to check
* @return string
* @throws Zend_Locale_Exception
*/
private static function _checkLocale($locale)
{
if (empty($locale)) {
$locale = new Zend_Locale();
}
if (!Zend_Locale::isLocale((string) $locale, null, false)) {
// require_once 'Zend/Locale/Exception.php';
throw new Zend_Locale_Exception("Locale (" . (string) $locale . ") is a unknown locale");
}
if (Zend_Locale::isAlias($locale)) {
// Return a valid CLDR locale so that the XML file can be loaded.
return Zend_Locale::getAlias($locale);
}
return (string) $locale;
}
示例3: testAliases
/**
* Test that locale names that have been dropped from CLDR continue to
* work.
*/
public function testAliases()
{
$locale = new Zend_Locale('zh_CN');
$this->assertEquals(true, $locale->isLocale('zh_CN'));
$this->assertEquals('zh', $locale->getLanguage());
$this->assertEquals('CN', $locale->getRegion());
$this->assertEquals(true, Zend_Locale::isAlias($locale));
$this->assertEquals(true, Zend_Locale::isAlias('zh_CN'));
$this->assertEquals('zh_Hans_CN', Zend_Locale::getAlias('zh_CN'));
$locale = new Zend_Locale('zh_Hans_CN');
$this->assertEquals(true, $locale->isLocale('zh_Hans_CN'));
$this->assertEquals('zh', $locale->getLanguage());
$this->assertEquals('CN', $locale->getRegion());
$this->assertEquals(false, Zend_Locale::isAlias('zh_Hans_CN'));
$this->assertEquals('zh_Hans_CN', Zend_Locale::getAlias('zh_Hans_CN'));
}
示例4: getLabels
/**
* Get all labels of the attributes
*
* @return string[] with 'locale' => 'label'
*/
public function getLabels()
{
if (isset($this->_labels)) {
return $this->_labels;
}
$labelsNode = $this->_xmlElement->{'labels'};
$labels = [];
if ($labelsNode->count() > 0) {
foreach ($labelsNode->children() as $labelNode) {
/** @var SimpleXmlElement $labelNode */
$locale = $labelNode->getName();
if (Zend_Locale::isAlias($locale)) {
$locale = Zend_Locale::getAlias($locale);
}
$label = (string) $labelNode;
$labels[$locale] = $label;
}
}
$this->_labels = $labels;
return $labels;
}