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