/**
  * 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'));
 }
Esempio n. 2
0
 /**
  * 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;
 }
 /**
  * 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;
 }