123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 |
- <?php
- namespace Drupal\Core\Locale;
- use Drupal\Core\Extension\ModuleHandlerInterface;
- /**
- * Provides list of countries.
- */
- class CountryManager implements CountryManagerInterface {
- /**
- * The module handler service.
- *
- * @var \Drupal\Core\Extension\ModuleHandlerInterface
- */
- protected $moduleHandler;
- /**
- * An array of country code => country name pairs.
- */
- protected $countries;
- /**
- * Constructor.
- *
- * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
- */
- public function __construct(ModuleHandlerInterface $module_handler) {
- $this->moduleHandler = $module_handler;
- }
- /**
- * Get an array of all two-letter country code => country name pairs.
- *
- * @return array
- * An array of country code => country name pairs.
- */
- public static function getStandardList() {
- $countries = [
- 'AC' => t('Ascension Island'),
- 'AD' => t('Andorra'),
- 'AE' => t('United Arab Emirates'),
- 'AF' => t('Afghanistan'),
- 'AG' => t('Antigua and Barbuda'),
- 'AI' => t('Anguilla'),
- 'AL' => t('Albania'),
- 'AM' => t('Armenia'),
- 'AN' => t('Netherlands Antilles'),
- 'AO' => t('Angola'),
- 'AQ' => t('Antarctica'),
- 'AR' => t('Argentina'),
- 'AS' => t('American Samoa'),
- 'AT' => t('Austria'),
- 'AU' => t('Australia'),
- 'AW' => t('Aruba'),
- 'AX' => t('Åland Islands'),
- 'AZ' => t('Azerbaijan'),
- 'BA' => t('Bosnia and Herzegovina'),
- 'BB' => t('Barbados'),
- 'BD' => t('Bangladesh'),
- 'BE' => t('Belgium'),
- 'BF' => t('Burkina Faso'),
- 'BG' => t('Bulgaria'),
- 'BH' => t('Bahrain'),
- 'BI' => t('Burundi'),
- 'BJ' => t('Benin'),
- 'BL' => t('Saint Barthélemy'),
- 'BM' => t('Bermuda'),
- 'BN' => t('Brunei'),
- 'BO' => t('Bolivia'),
- 'BQ' => t('Caribbean Netherlands'),
- 'BR' => t('Brazil'),
- 'BS' => t('Bahamas'),
- 'BT' => t('Bhutan'),
- 'BV' => t('Bouvet Island'),
- 'BW' => t('Botswana'),
- 'BY' => t('Belarus'),
- 'BZ' => t('Belize'),
- 'CA' => t('Canada'),
- 'CC' => t('Cocos [Keeling] Islands'),
- 'CD' => t('Congo - Kinshasa'),
- 'CF' => t('Central African Republic'),
- 'CG' => t('Congo - Brazzaville'),
- 'CH' => t('Switzerland'),
- 'CI' => t('Côte d’Ivoire'),
- 'CK' => t('Cook Islands'),
- 'CL' => t('Chile'),
- 'CM' => t('Cameroon'),
- 'CN' => t('China'),
- 'CO' => t('Colombia'),
- 'CP' => t('Clipperton Island'),
- 'CR' => t('Costa Rica'),
- 'CU' => t('Cuba'),
- 'CV' => t('Cape Verde'),
- 'CW' => t('Curaçao'),
- 'CX' => t('Christmas Island'),
- 'CY' => t('Cyprus'),
- 'CZ' => t('Czech Republic'),
- 'DE' => t('Germany'),
- 'DG' => t('Diego Garcia'),
- 'DJ' => t('Djibouti'),
- 'DK' => t('Denmark'),
- 'DM' => t('Dominica'),
- 'DO' => t('Dominican Republic'),
- 'DZ' => t('Algeria'),
- 'EA' => t('Ceuta and Melilla'),
- 'EC' => t('Ecuador'),
- 'EE' => t('Estonia'),
- 'EG' => t('Egypt'),
- 'EH' => t('Western Sahara'),
- 'ER' => t('Eritrea'),
- 'ES' => t('Spain'),
- 'ET' => t('Ethiopia'),
- 'FI' => t('Finland'),
- 'FJ' => t('Fiji'),
- 'FK' => t('Falkland Islands'),
- 'FM' => t('Micronesia'),
- 'FO' => t('Faroe Islands'),
- 'FR' => t('France'),
- 'GA' => t('Gabon'),
- 'GB' => t('United Kingdom'),
- 'GD' => t('Grenada'),
- 'GE' => t('Georgia'),
- 'GF' => t('French Guiana'),
- 'GG' => t('Guernsey'),
- 'GH' => t('Ghana'),
- 'GI' => t('Gibraltar'),
- 'GL' => t('Greenland'),
- 'GM' => t('Gambia'),
- 'GN' => t('Guinea'),
- 'GP' => t('Guadeloupe'),
- 'GQ' => t('Equatorial Guinea'),
- 'GR' => t('Greece'),
- 'GS' => t('South Georgia and the South Sandwich Islands'),
- 'GT' => t('Guatemala'),
- 'GU' => t('Guam'),
- 'GW' => t('Guinea-Bissau'),
- 'GY' => t('Guyana'),
- 'HK' => t('Hong Kong SAR China'),
- 'HM' => t('Heard Island and McDonald Islands'),
- 'HN' => t('Honduras'),
- 'HR' => t('Croatia'),
- 'HT' => t('Haiti'),
- 'HU' => t('Hungary'),
- 'IC' => t('Canary Islands'),
- 'ID' => t('Indonesia'),
- 'IE' => t('Ireland'),
- 'IL' => t('Israel'),
- 'IM' => t('Isle of Man'),
- 'IN' => t('India'),
- 'IO' => t('British Indian Ocean Territory'),
- 'IQ' => t('Iraq'),
- 'IR' => t('Iran'),
- 'IS' => t('Iceland'),
- 'IT' => t('Italy'),
- 'JE' => t('Jersey'),
- 'JM' => t('Jamaica'),
- 'JO' => t('Jordan'),
- 'JP' => t('Japan'),
- 'KE' => t('Kenya'),
- 'KG' => t('Kyrgyzstan'),
- 'KH' => t('Cambodia'),
- 'KI' => t('Kiribati'),
- 'KM' => t('Comoros'),
- 'KN' => t('Saint Kitts and Nevis'),
- 'KP' => t('North Korea'),
- 'KR' => t('South Korea'),
- 'KW' => t('Kuwait'),
- 'KY' => t('Cayman Islands'),
- 'KZ' => t('Kazakhstan'),
- 'LA' => t('Laos'),
- 'LB' => t('Lebanon'),
- 'LC' => t('Saint Lucia'),
- 'LI' => t('Liechtenstein'),
- 'LK' => t('Sri Lanka'),
- 'LR' => t('Liberia'),
- 'LS' => t('Lesotho'),
- 'LT' => t('Lithuania'),
- 'LU' => t('Luxembourg'),
- 'LV' => t('Latvia'),
- 'LY' => t('Libya'),
- 'MA' => t('Morocco'),
- 'MC' => t('Monaco'),
- 'MD' => t('Moldova'),
- 'ME' => t('Montenegro'),
- 'MF' => t('Saint Martin'),
- 'MG' => t('Madagascar'),
- 'MH' => t('Marshall Islands'),
- 'MK' => t('Macedonia'),
- 'ML' => t('Mali'),
- 'MM' => t('Myanmar [Burma]'),
- 'MN' => t('Mongolia'),
- 'MO' => t('Macau SAR China'),
- 'MP' => t('Northern Mariana Islands'),
- 'MQ' => t('Martinique'),
- 'MR' => t('Mauritania'),
- 'MS' => t('Montserrat'),
- 'MT' => t('Malta'),
- 'MU' => t('Mauritius'),
- 'MV' => t('Maldives'),
- 'MW' => t('Malawi'),
- 'MX' => t('Mexico'),
- 'MY' => t('Malaysia'),
- 'MZ' => t('Mozambique'),
- 'NA' => t('Namibia'),
- 'NC' => t('New Caledonia'),
- 'NE' => t('Niger'),
- 'NF' => t('Norfolk Island'),
- 'NG' => t('Nigeria'),
- 'NI' => t('Nicaragua'),
- 'NL' => t('Netherlands'),
- 'NO' => t('Norway'),
- 'NP' => t('Nepal'),
- 'NR' => t('Nauru'),
- 'NU' => t('Niue'),
- 'NZ' => t('New Zealand'),
- 'OM' => t('Oman'),
- 'PA' => t('Panama'),
- 'PE' => t('Peru'),
- 'PF' => t('French Polynesia'),
- 'PG' => t('Papua New Guinea'),
- 'PH' => t('Philippines'),
- 'PK' => t('Pakistan'),
- 'PL' => t('Poland'),
- 'PM' => t('Saint Pierre and Miquelon'),
- 'PN' => t('Pitcairn Islands'),
- 'PR' => t('Puerto Rico'),
- 'PS' => t('Palestinian Territories'),
- 'PT' => t('Portugal'),
- 'PW' => t('Palau'),
- 'PY' => t('Paraguay'),
- 'QA' => t('Qatar'),
- 'QO' => t('Outlying Oceania'),
- 'RE' => t('Réunion'),
- 'RO' => t('Romania'),
- 'RS' => t('Serbia'),
- 'RU' => t('Russia'),
- 'RW' => t('Rwanda'),
- 'SA' => t('Saudi Arabia'),
- 'SB' => t('Solomon Islands'),
- 'SC' => t('Seychelles'),
- 'SD' => t('Sudan'),
- 'SE' => t('Sweden'),
- 'SG' => t('Singapore'),
- 'SH' => t('Saint Helena'),
- 'SI' => t('Slovenia'),
- 'SJ' => t('Svalbard and Jan Mayen'),
- 'SK' => t('Slovakia'),
- 'SL' => t('Sierra Leone'),
- 'SM' => t('San Marino'),
- 'SN' => t('Senegal'),
- 'SO' => t('Somalia'),
- 'SR' => t('Suriname'),
- 'SS' => t('South Sudan'),
- 'ST' => t('São Tomé and Príncipe'),
- 'SV' => t('El Salvador'),
- 'SX' => t('Sint Maarten'),
- 'SY' => t('Syria'),
- 'SZ' => t('Swaziland'),
- 'TA' => t('Tristan da Cunha'),
- 'TC' => t('Turks and Caicos Islands'),
- 'TD' => t('Chad'),
- 'TF' => t('French Southern Territories'),
- 'TG' => t('Togo'),
- 'TH' => t('Thailand'),
- 'TJ' => t('Tajikistan'),
- 'TK' => t('Tokelau'),
- 'TL' => t('Timor-Leste'),
- 'TM' => t('Turkmenistan'),
- 'TN' => t('Tunisia'),
- 'TO' => t('Tonga'),
- 'TR' => t('Turkey'),
- 'TT' => t('Trinidad and Tobago'),
- 'TV' => t('Tuvalu'),
- 'TW' => t('Taiwan'),
- 'TZ' => t('Tanzania'),
- 'UA' => t('Ukraine'),
- 'UG' => t('Uganda'),
- 'UM' => t('U.S. Outlying Islands'),
- 'US' => t('United States'),
- 'UY' => t('Uruguay'),
- 'UZ' => t('Uzbekistan'),
- 'VA' => t('Vatican City'),
- 'VC' => t('Saint Vincent and the Grenadines'),
- 'VE' => t('Venezuela'),
- 'VG' => t('British Virgin Islands'),
- 'VI' => t('U.S. Virgin Islands'),
- 'VN' => t('Vietnam'),
- 'VU' => t('Vanuatu'),
- 'WF' => t('Wallis and Futuna'),
- 'WS' => t('Samoa'),
- 'XK' => t('Kosovo'),
- 'YE' => t('Yemen'),
- 'YT' => t('Mayotte'),
- 'ZA' => t('South Africa'),
- 'ZM' => t('Zambia'),
- 'ZW' => t('Zimbabwe'),
- ];
- // Sort the list.
- natcasesort($countries);
- return $countries;
- }
- /**
- * Get an array of country code => country name pairs, altered by alter hooks.
- *
- * @return array
- * An array of country code => country name pairs.
- *
- * @see \Drupal\Core\Locale\CountryManager::getStandardList()
- */
- public function getList() {
- // Populate the country list if it is not already populated.
- if (!isset($this->countries)) {
- $this->countries = static::getStandardList();
- $this->moduleHandler->alter('countries', $this->countries);
- }
- return $this->countries;
- }
- }
|