private function generateLocaleName($locale, $displayLocale)
 {
     $name = null;
     $lang = \Locale::getPrimaryLanguage($locale);
     $script = \Locale::getScript($locale);
     $region = \Locale::getRegion($locale);
     $variants = \Locale::getAllVariants($locale);
     // Currently the only available variant is POSIX, which we don't want
     // to include in the list
     if (count($variants) > 0) {
         return null;
     }
     // Some languages are translated together with their region,
     // i.e. "en_GB" is translated as "British English"
     // we don't include these languages though because they mess up
     // the name sorting
     // $name = $this->langBundle->getLanguageName($displayLocale, $lang, $region);
     // Some languages are simply not translated
     // Example: "az" (Azerbaijani) has no translation in "af" (Afrikaans)
     if (null === ($name = $this->languageBundle->getLanguageName($lang, null, $displayLocale))) {
         return null;
     }
     // "as" (Assamese) has no "Variants" block
     //if (!$langBundle->get('Variants')) {
     //    continue;
     //}
     $extras = array();
     // Discover the name of the script part of the locale
     // i.e. in zh_Hans_MO, "Hans" is the script
     if ($script) {
         // Some scripts are not translated into every language
         if (null === ($scriptName = $this->languageBundle->getScriptName($script, $lang, $displayLocale))) {
             return null;
         }
         $extras[] = $scriptName;
     }
     // Discover the name of the region part of the locale
     // i.e. in de_AT, "AT" is the region
     if ($region) {
         // Some regions are not translated into every language
         if (null === ($regionName = $this->regionBundle->getCountryName($region, $displayLocale))) {
             return null;
         }
         $extras[] = $regionName;
     }
     if (count($extras) > 0) {
         // Remove any existing extras
         // For example, in German, zh_Hans is "Chinesisch (vereinfacht)".
         // The latter is the script part which is already included in the
         // extras and will be appended again with the other extras.
         if (preg_match('/^(.+)\\s+\\([^\\)]+\\)$/', $name, $matches)) {
             $name = $matches[1];
         }
         $name .= ' (' . implode(', ', $extras) . ')';
     }
     return $name;
 }
// the braces are not printed.
foreach ($translatedLocales as $translatedLocale) {
    // Don't include ICU's root resource bundle
    if ($translatedLocale === 'root') {
        continue;
    }
    $langBundle = load_resource_bundle($translatedLocale, $langDir);
    $regionBundle = load_resource_bundle($translatedLocale, $regionDir);
    $localeNames = array();
    foreach ($supportedLocales as $supportedLocale) {
        // Don't include ICU's root resource bundle
        if ($supportedLocale === 'root') {
            continue;
        }
        $lang = \Locale::getPrimaryLanguage($supportedLocale);
        $script = \Locale::getScript($supportedLocale);
        $region = \Locale::getRegion($supportedLocale);
        $variants = \Locale::getAllVariants($supportedLocale);
        // Currently the only available variant is POSIX, which we don't want
        // to include in the list
        if (count($variants) > 0) {
            continue;
        }
        $langName = $langBundle->get('Languages')->get($lang);
        $extras = array();
        // Some languages are simply not translated
        // Example: "az" (Azerbaijani) has no translation in "af" (Afrikaans)
        if (!$langName) {
            continue;
        }
        // "af" (Afrikaans) has no "Scripts" block
Beispiel #3
0
 /**
  * Gets the script for the locale
  *
  * @return string The script subtag for the locale or NULL if not present
  */
 public function getScript()
 {
     return IntlLocale::getScript($this->getLocale());
 }
Beispiel #4
0
 /**
  * Returns the script code of a locale.
  *
  * @return CUStringObject The locale's four-letter script code (always titlecased).
  */
 public function scriptCode()
 {
     assert('$this->hasScriptCode()', vs(isset($this), get_defined_vars()));
     return Locale::getScript($this->m_name);
 }
Beispiel #5
0
    echo Locale::getRegion($locale) ?: '<em>none</em>';
    ?>
</td>
        <td><?php 
    echo Locale::getDisplayRegion($locale, Yii::$app->language) ?: '<em>none</em>';
    ?>
</td>
        <td><?php 
    echo Locale::getDisplayRegion($locale, $locale) ?: '<em>none</em>';
    ?>
</td>
    </tr>
    <tr>
        <th>Script</th>
        <td><?php 
    echo Locale::getScript($locale) ?: '<em>none</em>';
    ?>
</td>
        <td><?php 
    echo Locale::getDisplayScript($locale, Yii::$app->language) ?: '<em>none</em>';
    ?>
</td>
        <td><?php 
    echo Locale::getDisplayScript($locale, $locale) ?: '<em>none</em>';
    ?>
</td>
    </tr>
    <tr>
        <th>Default Currency</th>
        <?php 
    $defaultCurrency = \app\models\NumberFormatterInfo::getDefaultCurrency($locale);