You don't have to have a fully-formed locale for the first parameter. This makes the function useful for getting the country name from any locale:
<?php
var_dump(Locale::getDisplayRegion('-US', 'fr'));
//Returns
string 'États-Unis' (length=11)
?>Locale::getDisplayRegion
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Locale::getDisplayRegion
Референца за `locale.getdisplayregion.php` со подобрена типографија и навигација.
Locale::getDisplayRegion
locale_get_display_region
Класата Collator
Locale::getDisplayRegion -- locale_get_display_region — Returns an appropriately localized display name for region of the input locale
= NULL
Напиши целосна ознака на елемент
Процедурален стил
Returns an appropriately localized display name for region of the input locale. If is null Враќа соодветно локализирано име за прикажување за скриптата на влезната локација. Ако е
Параметри
locale-
The locale to return a display region for.
displayLocale-
Optional format locale to use to display the region name
Вратени вредности
Display name of the region for the locale Име за прикажување на скриптата за
displayLocale, или false при неуспех.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
displayLocale сега е null.
|
Примери
Пример #1 locale_get_display_region() example
<?php
echo locale_get_display_region('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_region('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_region('sl-Latn-IT-nedis', 'de');
?>Пример #2 OO пример
<?php
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'de');
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
Italy; Italie; Italien
Види Исто така
- locale_get_display_name() - Враќа соодветно локализирано име за прикажување за влезната локал
- locale_get_display_language() - Враќа соодветно локализирано име за прикажување на јазикот на влезната локал
- locale_get_display_script() - Враќа соодветно локализирано име за прикажување за скриптата на влезната локал
- locale_get_display_variant() - Враќа соодветно локализирано име за прикажување за варијанти на влезната локала
Белешки од корисници 2 забелешки
in fact , I would do exactly the opposite : find the country code (iso3166) from the country name. Found on the web, one solution is to use a table of correspondence between the country code and the country name for each language.
There are too many countries and language code for this type of table.
With a PHP function , the convertion can be performed as well:
function countryNameToISO3166($country_name, $language) {
if (strlen($language) != 2) {
//Language must be on 2 caracters
return NULL;
}
//Set uppercase if never
$language = strtoupper($language);
$countrycode_list = array('AF', 'AX', 'AL', 'DZ', 'AS', 'AD', 'AO', 'AI', 'AQ', 'AG', 'AR', 'AM', 'AW', 'AU', 'AT', 'AZ', 'BS', 'BH', 'BD', 'BB', 'BY', 'BE', 'BZ', 'BJ', 'BM', 'BT', 'BO', 'BQ', 'BA', 'BW', 'BV', 'BR', 'IO', 'BN', 'BG', 'BF', 'BI', 'KH', 'CM', 'CA', 'CV', 'KY', 'CF', 'TD', 'CL', 'CN', 'CX', 'CC', 'CO', 'KM', 'CG', 'CD', 'CK', 'CR', 'CI', 'HR', 'CU', 'CW', 'CY', 'CZ', 'DK', 'DJ', 'DM', 'DO', 'EC', 'EG', 'SV', 'GQ', 'ER', 'EE', 'ET', 'FK', 'FO', 'FJ', 'FI', 'FR', 'GF', 'PF', 'TF', 'GA', 'GM', 'GE', 'DE', 'GH', 'GI', 'GR', 'GL', 'GD', 'GP', 'GU', 'GT', 'GG', 'GN', 'GW', 'GY', 'HT', 'HM', 'VA', 'HN', 'HK', 'HU', 'IS', 'IN', 'ID', 'IR', 'IQ', 'IE', 'IM', 'IL', 'IT', 'JM', 'JP', 'JE', 'JO', 'KZ', 'KE', 'KI', 'KP', 'KR', 'KW', 'KG', 'LA', 'LV', 'LB', 'LS', 'LR', 'LY', 'LI', 'LT', 'LU', 'MO', 'MK', 'MG', 'MW', 'MY', 'MV', 'ML', 'MT', 'MH', 'MQ', 'MR', 'MU', 'YT', 'MX', 'FM', 'MD', 'MC', 'MN', 'ME', 'MS', 'MA', 'MZ', 'MM', 'NA', 'NR', 'NP', 'NL', 'NC', 'NZ', 'NI', 'NE', 'NG', 'NU', 'NF', 'MP', 'NO', 'OM', 'PK', 'PW', 'PS', 'PA', 'PG', 'PY', 'PE', 'PH', 'PN', 'PL', 'PT', 'PR', 'QA', 'RE', 'RO', 'RU', 'RW', 'BL', 'SH', 'KN', 'LC', 'MF', 'PM', 'VC', 'WS', 'SM', 'ST', 'SA', 'SN', 'RS', 'SC', 'SL', 'SG', 'SX', 'SK', 'SI', 'SB', 'SO', 'ZA', 'GS', 'SS', 'ES', 'LK', 'SD', 'SR', 'SJ', 'SZ', 'SE', 'CH', 'SY', 'TW', 'TJ', 'TZ', 'TH', 'TL', 'TG', 'TK', 'TO', 'TT', 'TN', 'TR', 'TM', 'TC', 'TV', 'UG', 'UA', 'AE', 'GB', 'US', 'UM', 'UY', 'UZ', 'VU', 'VE', 'VN', 'VG', 'VI', 'WF', 'EH', 'YE', 'ZM', 'ZW');
$ISO3166 = NULL;
//Loop all country codes
foreach ($countrycode_list as $countrycode) {
$locale_cc = Locale::getDisplayRegion('-' . $countrycode, $language);
//Case insensitive
if (strcasecmp($country_name, $locale_cc) == 0) {
$ISO3166 = $countrycode;
break;
}
}
//return NULL if not found or country code
return $ISO3166;
}
Tests
$cc=countryNameToISO3166('Costa Rica','US');
echo '<br>(English) Country code for Costa Rica is '.$cc;
$cc=countryNameToISO3166('Royaume-Uni','FR');
echo '<br>(Français) Country code for Royaume-Uni is '.$cc;
$cc=countryNameToISO3166('Frankreich','DE');
echo '<br>(Deutsch) Country code for Frankreich is '.$cc;
//Wrong language
$cc=countryNameToISO3166('Royaume-Uni','US');
echo '<br>(English) Country code for Royaume-Uni is '.var_dump($cc);
returns
(English) Country code for Costa Rica is CR
(Français) Country code for Royaume-Uni is GB
(Deutsch) Country code for Frankreich is FR
(English) Country code for Royaume-Uni is NULL
Hope it can help someone other
http://www.fobec.com