4

国をデータベースに保存するときは、国際略語を使用します。

zend_localeこの略語を完全な国名に変換するにはどうすればよいですか?

4

3 に答える 3

5

これが方法です。ブラウザのロケールを使用しようとし、失敗した場合はデフォルトで米国英語になります。

try {
    $locale = new Zend_Locale(Zend_Locale::BROWSER);
    $countries = $locale->getTranslationList('Territory', Zend_Locale::BROWSER, 2);
} catch (exception $e) {
    $locale = new Zend_Locale('en_US');
    $countries = $locale->getTranslationList('Territory', 'en_US', 2);
}

asort($countries, SORT_LOCALE_STRING);

// Unset invalid countries
// SU = USSR
// ZZ = Unknown or Invalid Region
// VD = North Vietnam
// DD = East Germany
unset($countries['SU'], $countries['ZZ'], $countries['VD'], $countries['DD']);
于 2010-12-14T16:03:03.573 に答える
3

intlPHP 5.3.0 以降にバンドルされている拡張機能の機能、または PHP 5.2.0 以降の PECL 拡張機能を使用できます。

ロケールを使用して地域を表示するには:

<?php
print \Locale::getDisplayRegion('da_DK') . "\n";
print \Locale::getDisplayRegion('en_US') . "\n";
print \Locale::getDisplayRegion('ru_RU', 'ru_RU') . "\n";
?>

出力します:

Denmark
United States
Россия

http://php.net/manual/en/locale.getdisplayregion.php

于 2013-01-03T08:11:52.560 に答える
1

Zend_Locale::getTranslationList()またはを使用しZend_Locale::getTranslation()ます。マニュアルの例 #7 を参照してください。

于 2010-12-12T05:18:44.030 に答える