Locale::getDisplayRegion

locale_get_display_region

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::getDisplayRegion -- locale_get_display_regionReturns an appropriately localized display name for region of the input locale

Description

Object-oriented style

public static Locale::getDisplayRegion(string $locale, ?string $displayLocale = null): string|false

Procedural style

locale_get_display_region(string $locale, ?string $displayLocale = null): string|false

Returns an appropriately localized display name for region of the input locale. If is null then the default locale is used.

Parameters

locale

The locale to return a display region for.

displayLocale

Optional format locale to use to display the region name

Return Values

Display name of the region for the locale in the format appropriate for displayLocale, or false on failure.

Changelog

Version Description
8.0.0 displayLocale is nullable now.

Examples

Example #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');
?>

Example #2 OO example

<?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');
?>

The above example will output:

Italy;
Italie;
Italien

See Also

add a note

User Contributed Notes 2 notes

up
14
mark at SHOULDREMOVE dot moderndeveloperllc dot com
11 years ago
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:<?phpvar_dump(Locale::getDisplayRegion('-US', 'fr'));//Returnsstring 'États-Unis' (length=11)?>
up
6
info at domain name (see note)
8 years ago
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 NULLHope it can help someone otherhttp://www.fobec.com
To Top