xref: /webtrees/app/Statistics/Service/CountryService.php (revision 07c1a3ba9432d4d64fbb1103e28526d5df6bfb2c)
193ccd686SRico Sonntag<?php
23976b470SGreg Roach
393ccd686SRico Sonntag/**
493ccd686SRico Sonntag * webtrees: online genealogy
5d11be702SGreg Roach * Copyright (C) 2023 webtrees development team
693ccd686SRico Sonntag * This program is free software: you can redistribute it and/or modify
793ccd686SRico Sonntag * it under the terms of the GNU General Public License as published by
893ccd686SRico Sonntag * the Free Software Foundation, either version 3 of the License, or
993ccd686SRico Sonntag * (at your option) any later version.
1093ccd686SRico Sonntag * This program is distributed in the hope that it will be useful,
1193ccd686SRico Sonntag * but WITHOUT ANY WARRANTY; without even the implied warranty of
1293ccd686SRico Sonntag * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1393ccd686SRico Sonntag * GNU General Public License for more details.
1493ccd686SRico Sonntag * You should have received a copy of the GNU General Public License
1589f7189bSGreg Roach * along with this program. If not, see <https://www.gnu.org/licenses/>.
1693ccd686SRico Sonntag */
17fcfa147eSGreg Roach
1893ccd686SRico Sonntagdeclare(strict_types=1);
1993ccd686SRico Sonntag
2093ccd686SRico Sonntagnamespace Fisharebest\Webtrees\Statistics\Service;
2193ccd686SRico Sonntag
2293ccd686SRico Sonntaguse Fisharebest\Webtrees\I18N;
2393ccd686SRico Sonntag
2493ccd686SRico Sonntag/**
2593ccd686SRico Sonntag * Functions for managing country codes and names.
2693ccd686SRico Sonntag */
2793ccd686SRico Sonntagclass CountryService
2893ccd686SRico Sonntag{
2993ccd686SRico Sonntag    /**
3093ccd686SRico Sonntag     * Country codes and names
3193ccd686SRico Sonntag     *
3224f2a3afSGreg Roach     * @return array<string>
3393ccd686SRico Sonntag     */
3493ccd686SRico Sonntag    public function getAllCountries(): array
3593ccd686SRico Sonntag    {
3693ccd686SRico Sonntag        return [
3793ccd686SRico Sonntag            /* I18N: Name of a country or state */
3893ccd686SRico Sonntag            '???' => I18N::translate('Unknown'),
3993ccd686SRico Sonntag            /* I18N: Name of a country or state */
4093ccd686SRico Sonntag            'ABW' => I18N::translate('Aruba'),
4193ccd686SRico Sonntag            /* I18N: Name of a country or state */
4293ccd686SRico Sonntag            'AFG' => I18N::translate('Afghanistan'),
4393ccd686SRico Sonntag            /* I18N: Name of a country or state */
4493ccd686SRico Sonntag            'AGO' => I18N::translate('Angola'),
4593ccd686SRico Sonntag            /* I18N: Name of a country or state */
4693ccd686SRico Sonntag            'AIA' => I18N::translate('Anguilla'),
4793ccd686SRico Sonntag            /* I18N: Name of a country or state */
4893ccd686SRico Sonntag            'ALA' => I18N::translate('Aland Islands'),
4993ccd686SRico Sonntag            /* I18N: Name of a country or state */
5093ccd686SRico Sonntag            'ALB' => I18N::translate('Albania'),
5193ccd686SRico Sonntag            /* I18N: Name of a country or state */
5293ccd686SRico Sonntag            'AND' => I18N::translate('Andorra'),
5393ccd686SRico Sonntag            /* I18N: Name of a country or state */
5493ccd686SRico Sonntag            'ARE' => I18N::translate('United Arab Emirates'),
5593ccd686SRico Sonntag            /* I18N: Name of a country or state */
5693ccd686SRico Sonntag            'ARG' => I18N::translate('Argentina'),
5793ccd686SRico Sonntag            /* I18N: Name of a country or state */
5893ccd686SRico Sonntag            'ARM' => I18N::translate('Armenia'),
5993ccd686SRico Sonntag            /* I18N: Name of a country or state */
6093ccd686SRico Sonntag            'ASM' => I18N::translate('American Samoa'),
6193ccd686SRico Sonntag            /* I18N: Name of a country or state */
6293ccd686SRico Sonntag            'ATA' => I18N::translate('Antarctica'),
6393ccd686SRico Sonntag            /* I18N: Name of a country or state */
6493ccd686SRico Sonntag            'ATF' => I18N::translate('French Southern Territories'),
6593ccd686SRico Sonntag            /* I18N: Name of a country or state */
6693ccd686SRico Sonntag            'ATG' => I18N::translate('Antigua and Barbuda'),
6793ccd686SRico Sonntag            /* I18N: Name of a country or state */
6893ccd686SRico Sonntag            'AUS' => I18N::translate('Australia'),
6993ccd686SRico Sonntag            /* I18N: Name of a country or state */
7093ccd686SRico Sonntag            'AUT' => I18N::translate('Austria'),
7193ccd686SRico Sonntag            /* I18N: Name of a country or state */
7293ccd686SRico Sonntag            'AZE' => I18N::translate('Azerbaijan'),
7393ccd686SRico Sonntag            /* I18N: Name of a country or state */
7493ccd686SRico Sonntag            'AZR' => I18N::translate('Azores'),
7593ccd686SRico Sonntag            /* I18N: Name of a country or state */
7693ccd686SRico Sonntag            'BDI' => I18N::translate('Burundi'),
7793ccd686SRico Sonntag            /* I18N: Name of a country or state */
7893ccd686SRico Sonntag            'BEL' => I18N::translate('Belgium'),
7993ccd686SRico Sonntag            /* I18N: Name of a country or state */
8093ccd686SRico Sonntag            'BEN' => I18N::translate('Benin'),
8193ccd686SRico Sonntag            // BES => Bonaire, Sint Eustatius and Saba
8293ccd686SRico Sonntag            /* I18N: Name of a country or state */
8393ccd686SRico Sonntag            'BFA' => I18N::translate('Burkina Faso'),
8493ccd686SRico Sonntag            /* I18N: Name of a country or state */
8593ccd686SRico Sonntag            'BGD' => I18N::translate('Bangladesh'),
8693ccd686SRico Sonntag            /* I18N: Name of a country or state */
8793ccd686SRico Sonntag            'BGR' => I18N::translate('Bulgaria'),
8893ccd686SRico Sonntag            /* I18N: Name of a country or state */
8993ccd686SRico Sonntag            'BHR' => I18N::translate('Bahrain'),
9093ccd686SRico Sonntag            /* I18N: Name of a country or state */
9193ccd686SRico Sonntag            'BHS' => I18N::translate('Bahamas'),
9293ccd686SRico Sonntag            /* I18N: Name of a country or state */
9393ccd686SRico Sonntag            'BIH' => I18N::translate('Bosnia and Herzegovina'),
9493ccd686SRico Sonntag            // BLM => Saint Barthélemy
9593ccd686SRico Sonntag            /* I18N: Name of a country or state */
9693ccd686SRico Sonntag            'BLR' => I18N::translate('Belarus'),
9793ccd686SRico Sonntag            /* I18N: Name of a country or state */
9893ccd686SRico Sonntag            'BLZ' => I18N::translate('Belize'),
9993ccd686SRico Sonntag            /* I18N: Name of a country or state */
10093ccd686SRico Sonntag            'BMU' => I18N::translate('Bermuda'),
10193ccd686SRico Sonntag            /* I18N: Name of a country or state */
10293ccd686SRico Sonntag            'BOL' => I18N::translate('Bolivia'),
10393ccd686SRico Sonntag            /* I18N: Name of a country or state */
10493ccd686SRico Sonntag            'BRA' => I18N::translate('Brazil'),
10593ccd686SRico Sonntag            /* I18N: Name of a country or state */
10693ccd686SRico Sonntag            'BRB' => I18N::translate('Barbados'),
10793ccd686SRico Sonntag            /* I18N: Name of a country or state */
10893ccd686SRico Sonntag            'BRN' => I18N::translate('Brunei Darussalam'),
10993ccd686SRico Sonntag            /* I18N: Name of a country or state */
11093ccd686SRico Sonntag            'BTN' => I18N::translate('Bhutan'),
11193ccd686SRico Sonntag            /* I18N: Name of a country or state */
11293ccd686SRico Sonntag            'BVT' => I18N::translate('Bouvet Island'),
11393ccd686SRico Sonntag            /* I18N: Name of a country or state */
11493ccd686SRico Sonntag            'BWA' => I18N::translate('Botswana'),
11593ccd686SRico Sonntag            /* I18N: Name of a country or state */
11693ccd686SRico Sonntag            'CAF' => I18N::translate('Central African Republic'),
11793ccd686SRico Sonntag            /* I18N: Name of a country or state */
11893ccd686SRico Sonntag            'CAN' => I18N::translate('Canada'),
11993ccd686SRico Sonntag            /* I18N: Name of a country or state */
12093ccd686SRico Sonntag            'CCK' => I18N::translate('Cocos (Keeling) Islands'),
12193ccd686SRico Sonntag            /* I18N: Name of a country or state */
12293ccd686SRico Sonntag            'CHE' => I18N::translate('Switzerland'),
12393ccd686SRico Sonntag            /* I18N: Name of a country or state */
12493ccd686SRico Sonntag            'CHL' => I18N::translate('Chile'),
12593ccd686SRico Sonntag            /* I18N: Name of a country or state */
12693ccd686SRico Sonntag            'CHN' => I18N::translate('China'),
12793ccd686SRico Sonntag            /* I18N: Name of a country or state */
12893ccd686SRico Sonntag            'CIV' => I18N::translate('Cote d’Ivoire'),
12993ccd686SRico Sonntag            /* I18N: Name of a country or state */
13093ccd686SRico Sonntag            'CMR' => I18N::translate('Cameroon'),
13193ccd686SRico Sonntag            /* I18N: Name of a country or state */
13293ccd686SRico Sonntag            'COD' => I18N::translate('Democratic Republic of the Congo'),
13393ccd686SRico Sonntag            /* I18N: Name of a country or state */
13493ccd686SRico Sonntag            'COG' => I18N::translate('Republic of the Congo'),
13593ccd686SRico Sonntag            /* I18N: Name of a country or state */
13693ccd686SRico Sonntag            'COK' => I18N::translate('Cook Islands'),
13793ccd686SRico Sonntag            /* I18N: Name of a country or state */
13893ccd686SRico Sonntag            'COL' => I18N::translate('Colombia'),
13993ccd686SRico Sonntag            /* I18N: Name of a country or state */
14093ccd686SRico Sonntag            'COM' => I18N::translate('Comoros'),
14193ccd686SRico Sonntag            /* I18N: Name of a country or state */
14293ccd686SRico Sonntag            'CPV' => I18N::translate('Cape Verde'),
14393ccd686SRico Sonntag            /* I18N: Name of a country or state */
14493ccd686SRico Sonntag            'CRI' => I18N::translate('Costa Rica'),
14593ccd686SRico Sonntag            /* I18N: Name of a country or state */
14693ccd686SRico Sonntag            'CUB' => I18N::translate('Cuba'),
14793ccd686SRico Sonntag            // CUW => Curaçao
14893ccd686SRico Sonntag            /* I18N: Name of a country or state */
14993ccd686SRico Sonntag            'CXR' => I18N::translate('Christmas Island'),
15093ccd686SRico Sonntag            /* I18N: Name of a country or state */
15193ccd686SRico Sonntag            'CYM' => I18N::translate('Cayman Islands'),
15293ccd686SRico Sonntag            /* I18N: Name of a country or state */
15393ccd686SRico Sonntag            'CYP' => I18N::translate('Cyprus'),
15493ccd686SRico Sonntag            /* I18N: Name of a country or state */
15593ccd686SRico Sonntag            'CZE' => I18N::translate('Czech Republic'),
15693ccd686SRico Sonntag            /* I18N: Name of a country or state */
15793ccd686SRico Sonntag            'DEU' => I18N::translate('Germany'),
15893ccd686SRico Sonntag            /* I18N: Name of a country or state */
15993ccd686SRico Sonntag            'DJI' => I18N::translate('Djibouti'),
16093ccd686SRico Sonntag            /* I18N: Name of a country or state */
16193ccd686SRico Sonntag            'DMA' => I18N::translate('Dominica'),
16293ccd686SRico Sonntag            /* I18N: Name of a country or state */
16393ccd686SRico Sonntag            'DNK' => I18N::translate('Denmark'),
16493ccd686SRico Sonntag            /* I18N: Name of a country or state */
16593ccd686SRico Sonntag            'DOM' => I18N::translate('Dominican Republic'),
16693ccd686SRico Sonntag            /* I18N: Name of a country or state */
16793ccd686SRico Sonntag            'DZA' => I18N::translate('Algeria'),
16893ccd686SRico Sonntag            /* I18N: Name of a country or state */
16993ccd686SRico Sonntag            'ECU' => I18N::translate('Ecuador'),
17093ccd686SRico Sonntag            /* I18N: Name of a country or state */
17193ccd686SRico Sonntag            'EGY' => I18N::translate('Egypt'),
17293ccd686SRico Sonntag            /* I18N: Name of a country or state */
17393ccd686SRico Sonntag            'ENG' => I18N::translate('England'),
17493ccd686SRico Sonntag            /* I18N: Name of a country or state */
17593ccd686SRico Sonntag            'ERI' => I18N::translate('Eritrea'),
17693ccd686SRico Sonntag            /* I18N: Name of a country or state */
17793ccd686SRico Sonntag            'ESH' => I18N::translate('Western Sahara'),
17893ccd686SRico Sonntag            /* I18N: Name of a country or state */
17993ccd686SRico Sonntag            'ESP' => I18N::translate('Spain'),
18093ccd686SRico Sonntag            /* I18N: Name of a country or state */
18193ccd686SRico Sonntag            'EST' => I18N::translate('Estonia'),
18293ccd686SRico Sonntag            /* I18N: Name of a country or state */
18393ccd686SRico Sonntag            'ETH' => I18N::translate('Ethiopia'),
18493ccd686SRico Sonntag            /* I18N: Name of a country or state */
18593ccd686SRico Sonntag            'FIN' => I18N::translate('Finland'),
18693ccd686SRico Sonntag            /* I18N: Name of a country or state */
18793ccd686SRico Sonntag            'FJI' => I18N::translate('Fiji'),
18893ccd686SRico Sonntag            /* I18N: Name of a country or state */
18993ccd686SRico Sonntag            'FLD' => I18N::translate('Flanders'),
19093ccd686SRico Sonntag            /* I18N: Name of a country or state */
19193ccd686SRico Sonntag            'FLK' => I18N::translate('Falkland Islands'),
19293ccd686SRico Sonntag            /* I18N: Name of a country or state */
19393ccd686SRico Sonntag            'FRA' => I18N::translate('France'),
19493ccd686SRico Sonntag            /* I18N: Name of a country or state */
19593ccd686SRico Sonntag            'FRO' => I18N::translate('Faroe Islands'),
19693ccd686SRico Sonntag            /* I18N: Name of a country or state */
19793ccd686SRico Sonntag            'FSM' => I18N::translate('Micronesia'),
19893ccd686SRico Sonntag            /* I18N: Name of a country or state */
19993ccd686SRico Sonntag            'GAB' => I18N::translate('Gabon'),
20093ccd686SRico Sonntag            /* I18N: Name of a country or state */
20193ccd686SRico Sonntag            'GBR' => I18N::translate('United Kingdom'),
20293ccd686SRico Sonntag            /* I18N: Name of a country or state */
20393ccd686SRico Sonntag            'GEO' => I18N::translate('Georgia'),
20493ccd686SRico Sonntag            /* I18N: Name of a country or state */
20593ccd686SRico Sonntag            'GGY' => I18N::translate('Guernsey'),
20693ccd686SRico Sonntag            /* I18N: Name of a country or state */
20793ccd686SRico Sonntag            'GHA' => I18N::translate('Ghana'),
20893ccd686SRico Sonntag            /* I18N: Name of a country or state */
20993ccd686SRico Sonntag            'GIB' => I18N::translate('Gibraltar'),
21093ccd686SRico Sonntag            /* I18N: Name of a country or state */
21193ccd686SRico Sonntag            'GIN' => I18N::translate('Guinea'),
21293ccd686SRico Sonntag            /* I18N: Name of a country or state */
21393ccd686SRico Sonntag            'GLP' => I18N::translate('Guadeloupe'),
21493ccd686SRico Sonntag            /* I18N: Name of a country or state */
21593ccd686SRico Sonntag            'GMB' => I18N::translate('Gambia'),
21693ccd686SRico Sonntag            /* I18N: Name of a country or state */
21793ccd686SRico Sonntag            'GNB' => I18N::translate('Guinea-Bissau'),
21893ccd686SRico Sonntag            /* I18N: Name of a country or state */
21993ccd686SRico Sonntag            'GNQ' => I18N::translate('Equatorial Guinea'),
22093ccd686SRico Sonntag            /* I18N: Name of a country or state */
22193ccd686SRico Sonntag            'GRC' => I18N::translate('Greece'),
22293ccd686SRico Sonntag            /* I18N: Name of a country or state */
22393ccd686SRico Sonntag            'GRD' => I18N::translate('Grenada'),
22493ccd686SRico Sonntag            /* I18N: Name of a country or state */
22593ccd686SRico Sonntag            'GRL' => I18N::translate('Greenland'),
22693ccd686SRico Sonntag            /* I18N: Name of a country or state */
22793ccd686SRico Sonntag            'GTM' => I18N::translate('Guatemala'),
22893ccd686SRico Sonntag            /* I18N: Name of a country or state */
22993ccd686SRico Sonntag            'GUF' => I18N::translate('French Guiana'),
23093ccd686SRico Sonntag            /* I18N: Name of a country or state */
23193ccd686SRico Sonntag            'GUM' => I18N::translate('Guam'),
23293ccd686SRico Sonntag            /* I18N: Name of a country or state */
23393ccd686SRico Sonntag            'GUY' => I18N::translate('Guyana'),
23493ccd686SRico Sonntag            /* I18N: Name of a country or state */
23593ccd686SRico Sonntag            'HKG' => I18N::translate('Hong Kong'),
23693ccd686SRico Sonntag            /* I18N: Name of a country or state */
23793ccd686SRico Sonntag            'HMD' => I18N::translate('Heard Island and McDonald Islands'),
23893ccd686SRico Sonntag            /* I18N: Name of a country or state */
23993ccd686SRico Sonntag            'HND' => I18N::translate('Honduras'),
24093ccd686SRico Sonntag            /* I18N: Name of a country or state */
24193ccd686SRico Sonntag            'HRV' => I18N::translate('Croatia'),
24293ccd686SRico Sonntag            /* I18N: Name of a country or state */
24393ccd686SRico Sonntag            'HTI' => I18N::translate('Haiti'),
24493ccd686SRico Sonntag            /* I18N: Name of a country or state */
24593ccd686SRico Sonntag            'HUN' => I18N::translate('Hungary'),
24693ccd686SRico Sonntag            /* I18N: Name of a country or state */
24793ccd686SRico Sonntag            'IDN' => I18N::translate('Indonesia'),
24893ccd686SRico Sonntag            /* I18N: Name of a country or state */
24993ccd686SRico Sonntag            'IND' => I18N::translate('India'),
25093ccd686SRico Sonntag            /* I18N: Name of a country or state */
25193ccd686SRico Sonntag            'IOM' => I18N::translate('Isle of Man'),
25293ccd686SRico Sonntag            /* I18N: Name of a country or state */
25393ccd686SRico Sonntag            'IOT' => I18N::translate('British Indian Ocean Territory'),
25493ccd686SRico Sonntag            /* I18N: Name of a country or state */
25593ccd686SRico Sonntag            'IRL' => I18N::translate('Ireland'),
25693ccd686SRico Sonntag            /* I18N: Name of a country or state */
25793ccd686SRico Sonntag            'IRN' => I18N::translate('Iran'),
25893ccd686SRico Sonntag            /* I18N: Name of a country or state */
25993ccd686SRico Sonntag            'IRQ' => I18N::translate('Iraq'),
26093ccd686SRico Sonntag            /* I18N: Name of a country or state */
26193ccd686SRico Sonntag            'ISL' => I18N::translate('Iceland'),
26293ccd686SRico Sonntag            /* I18N: Name of a country or state */
26393ccd686SRico Sonntag            'ISR' => I18N::translate('Israel'),
26493ccd686SRico Sonntag            /* I18N: Name of a country or state */
26593ccd686SRico Sonntag            'ITA' => I18N::translate('Italy'),
26693ccd686SRico Sonntag            /* I18N: Name of a country or state */
26793ccd686SRico Sonntag            'JAM' => I18N::translate('Jamaica'),
26893ccd686SRico Sonntag            //'JEY' => Jersey
26993ccd686SRico Sonntag            /* I18N: Name of a country or state */
27093ccd686SRico Sonntag            'JOR' => I18N::translate('Jordan'),
27193ccd686SRico Sonntag            /* I18N: Name of a country or state */
27293ccd686SRico Sonntag            'JPN' => I18N::translate('Japan'),
27393ccd686SRico Sonntag            /* I18N: Name of a country or state */
27493ccd686SRico Sonntag            'KAZ' => I18N::translate('Kazakhstan'),
27593ccd686SRico Sonntag            /* I18N: Name of a country or state */
27693ccd686SRico Sonntag            'KEN' => I18N::translate('Kenya'),
27793ccd686SRico Sonntag            /* I18N: Name of a country or state */
27893ccd686SRico Sonntag            'KGZ' => I18N::translate('Kyrgyzstan'),
27993ccd686SRico Sonntag            /* I18N: Name of a country or state */
28093ccd686SRico Sonntag            'KHM' => I18N::translate('Cambodia'),
28193ccd686SRico Sonntag            /* I18N: Name of a country or state */
28293ccd686SRico Sonntag            'KIR' => I18N::translate('Kiribati'),
28393ccd686SRico Sonntag            /* I18N: Name of a country or state */
28493ccd686SRico Sonntag            'KNA' => I18N::translate('Saint Kitts and Nevis'),
28593ccd686SRico Sonntag            /* I18N: Name of a country or state */
28693ccd686SRico Sonntag            'KOR' => I18N::translate('Korea'),
28793ccd686SRico Sonntag            /* I18N: Name of a country or state */
28893ccd686SRico Sonntag            'KWT' => I18N::translate('Kuwait'),
28993ccd686SRico Sonntag            /* I18N: Name of a country or state */
29093ccd686SRico Sonntag            'LAO' => I18N::translate('Laos'),
29193ccd686SRico Sonntag            /* I18N: Name of a country or state */
29293ccd686SRico Sonntag            'LBN' => I18N::translate('Lebanon'),
29393ccd686SRico Sonntag            /* I18N: Name of a country or state */
29493ccd686SRico Sonntag            'LBR' => I18N::translate('Liberia'),
29593ccd686SRico Sonntag            /* I18N: Name of a country or state */
29693ccd686SRico Sonntag            'LBY' => I18N::translate('Libya'),
29793ccd686SRico Sonntag            /* I18N: Name of a country or state */
29893ccd686SRico Sonntag            'LCA' => I18N::translate('Saint Lucia'),
29993ccd686SRico Sonntag            /* I18N: Name of a country or state */
30093ccd686SRico Sonntag            'LIE' => I18N::translate('Liechtenstein'),
30193ccd686SRico Sonntag            /* I18N: Name of a country or state */
30293ccd686SRico Sonntag            'LKA' => I18N::translate('Sri Lanka'),
30393ccd686SRico Sonntag            /* I18N: Name of a country or state */
30493ccd686SRico Sonntag            'LSO' => I18N::translate('Lesotho'),
30593ccd686SRico Sonntag            /* I18N: Name of a country or state */
30693ccd686SRico Sonntag            'LTU' => I18N::translate('Lithuania'),
30793ccd686SRico Sonntag            /* I18N: Name of a country or state */
30893ccd686SRico Sonntag            'LUX' => I18N::translate('Luxembourg'),
30993ccd686SRico Sonntag            /* I18N: Name of a country or state */
31093ccd686SRico Sonntag            'LVA' => I18N::translate('Latvia'),
31193ccd686SRico Sonntag            /* I18N: Name of a country or state */
31293ccd686SRico Sonntag            'MAC' => I18N::translate('Macau'),
31393ccd686SRico Sonntag            // MAF => Saint Martin
31493ccd686SRico Sonntag            /* I18N: Name of a country or state */
31593ccd686SRico Sonntag            'MAR' => I18N::translate('Morocco'),
31693ccd686SRico Sonntag            /* I18N: Name of a country or state */
31793ccd686SRico Sonntag            'MCO' => I18N::translate('Monaco'),
31893ccd686SRico Sonntag            /* I18N: Name of a country or state */
31993ccd686SRico Sonntag            'MDA' => I18N::translate('Moldova'),
32093ccd686SRico Sonntag            /* I18N: Name of a country or state */
32193ccd686SRico Sonntag            'MDG' => I18N::translate('Madagascar'),
32293ccd686SRico Sonntag            /* I18N: Name of a country or state */
32393ccd686SRico Sonntag            'MDV' => I18N::translate('Maldives'),
32493ccd686SRico Sonntag            /* I18N: Name of a country or state */
32593ccd686SRico Sonntag            'MEX' => I18N::translate('Mexico'),
32693ccd686SRico Sonntag            /* I18N: Name of a country or state */
32793ccd686SRico Sonntag            'MHL' => I18N::translate('Marshall Islands'),
32893ccd686SRico Sonntag            /* I18N: Name of a country or state */
32993ccd686SRico Sonntag            'MKD' => I18N::translate('Macedonia'),
33093ccd686SRico Sonntag            /* I18N: Name of a country or state */
33193ccd686SRico Sonntag            'MLI' => I18N::translate('Mali'),
33293ccd686SRico Sonntag            /* I18N: Name of a country or state */
33393ccd686SRico Sonntag            'MLT' => I18N::translate('Malta'),
33493ccd686SRico Sonntag            /* I18N: Name of a country or state */
33593ccd686SRico Sonntag            'MMR' => I18N::translate('Myanmar'),
33693ccd686SRico Sonntag            /* I18N: Name of a country or state */
33793ccd686SRico Sonntag            'MNG' => I18N::translate('Mongolia'),
33893ccd686SRico Sonntag            /* I18N: Name of a country or state */
33993ccd686SRico Sonntag            'MNP' => I18N::translate('Northern Mariana Islands'),
34093ccd686SRico Sonntag            /* I18N: Name of a country or state */
34193ccd686SRico Sonntag            'MNT' => I18N::translate('Montenegro'),
34293ccd686SRico Sonntag            /* I18N: Name of a country or state */
34393ccd686SRico Sonntag            'MOZ' => I18N::translate('Mozambique'),
34493ccd686SRico Sonntag            /* I18N: Name of a country or state */
34593ccd686SRico Sonntag            'MRT' => I18N::translate('Mauritania'),
34693ccd686SRico Sonntag            /* I18N: Name of a country or state */
34793ccd686SRico Sonntag            'MSR' => I18N::translate('Montserrat'),
34893ccd686SRico Sonntag            /* I18N: Name of a country or state */
34993ccd686SRico Sonntag            'MTQ' => I18N::translate('Martinique'),
35093ccd686SRico Sonntag            /* I18N: Name of a country or state */
35193ccd686SRico Sonntag            'MUS' => I18N::translate('Mauritius'),
35293ccd686SRico Sonntag            /* I18N: Name of a country or state */
35393ccd686SRico Sonntag            'MWI' => I18N::translate('Malawi'),
35493ccd686SRico Sonntag            /* I18N: Name of a country or state */
35593ccd686SRico Sonntag            'MYS' => I18N::translate('Malaysia'),
35693ccd686SRico Sonntag            /* I18N: Name of a country or state */
35793ccd686SRico Sonntag            'MYT' => I18N::translate('Mayotte'),
35893ccd686SRico Sonntag            /* I18N: Name of a country or state */
35993ccd686SRico Sonntag            'NAM' => I18N::translate('Namibia'),
36093ccd686SRico Sonntag            /* I18N: Name of a country or state */
36193ccd686SRico Sonntag            'NCL' => I18N::translate('New Caledonia'),
36293ccd686SRico Sonntag            /* I18N: Name of a country or state */
36393ccd686SRico Sonntag            'NER' => I18N::translate('Niger'),
36493ccd686SRico Sonntag            /* I18N: Name of a country or state */
36593ccd686SRico Sonntag            'NFK' => I18N::translate('Norfolk Island'),
36693ccd686SRico Sonntag            /* I18N: Name of a country or state */
36793ccd686SRico Sonntag            'NGA' => I18N::translate('Nigeria'),
36893ccd686SRico Sonntag            /* I18N: Name of a country or state */
36993ccd686SRico Sonntag            'NIC' => I18N::translate('Nicaragua'),
37093ccd686SRico Sonntag            /* I18N: Name of a country or state */
37193ccd686SRico Sonntag            'NIR' => I18N::translate('Northern Ireland'),
37293ccd686SRico Sonntag            /* I18N: Name of a country or state */
37393ccd686SRico Sonntag            'NIU' => I18N::translate('Niue'),
37493ccd686SRico Sonntag            /* I18N: Name of a country or state */
37593ccd686SRico Sonntag            'NLD' => I18N::translate('Netherlands'),
37693ccd686SRico Sonntag            /* I18N: Name of a country or state */
37793ccd686SRico Sonntag            'NOR' => I18N::translate('Norway'),
37893ccd686SRico Sonntag            /* I18N: Name of a country or state */
37993ccd686SRico Sonntag            'NPL' => I18N::translate('Nepal'),
38093ccd686SRico Sonntag            /* I18N: Name of a country or state */
38193ccd686SRico Sonntag            'NRU' => I18N::translate('Nauru'),
38293ccd686SRico Sonntag            /* I18N: Name of a country or state */
38393ccd686SRico Sonntag            'NZL' => I18N::translate('New Zealand'),
38493ccd686SRico Sonntag            /* I18N: Name of a country or state */
38593ccd686SRico Sonntag            'OMN' => I18N::translate('Oman'),
38693ccd686SRico Sonntag            /* I18N: Name of a country or state */
38793ccd686SRico Sonntag            'PAK' => I18N::translate('Pakistan'),
38893ccd686SRico Sonntag            /* I18N: Name of a country or state */
38993ccd686SRico Sonntag            'PAN' => I18N::translate('Panama'),
39093ccd686SRico Sonntag            /* I18N: Name of a country or state */
39193ccd686SRico Sonntag            'PCN' => I18N::translate('Pitcairn'),
39293ccd686SRico Sonntag            /* I18N: Name of a country or state */
39393ccd686SRico Sonntag            'PER' => I18N::translate('Peru'),
39493ccd686SRico Sonntag            /* I18N: Name of a country or state */
39593ccd686SRico Sonntag            'PHL' => I18N::translate('Philippines'),
39693ccd686SRico Sonntag            /* I18N: Name of a country or state */
39793ccd686SRico Sonntag            'PLW' => I18N::translate('Palau'),
39893ccd686SRico Sonntag            /* I18N: Name of a country or state */
39993ccd686SRico Sonntag            'PNG' => I18N::translate('Papua New Guinea'),
40093ccd686SRico Sonntag            /* I18N: Name of a country or state */
40193ccd686SRico Sonntag            'POL' => I18N::translate('Poland'),
40293ccd686SRico Sonntag            /* I18N: Name of a country or state */
40393ccd686SRico Sonntag            'PRI' => I18N::translate('Puerto Rico'),
40493ccd686SRico Sonntag            /* I18N: Name of a country or state */
40593ccd686SRico Sonntag            'PRK' => I18N::translate('North Korea'),
40693ccd686SRico Sonntag            /* I18N: Name of a country or state */
40793ccd686SRico Sonntag            'PRT' => I18N::translate('Portugal'),
40893ccd686SRico Sonntag            /* I18N: Name of a country or state */
40993ccd686SRico Sonntag            'PRY' => I18N::translate('Paraguay'),
41093ccd686SRico Sonntag            /* I18N: Name of a country or state */
41193ccd686SRico Sonntag            'PSE' => I18N::translate('Occupied Palestinian Territory'),
41293ccd686SRico Sonntag            /* I18N: Name of a country or state */
41393ccd686SRico Sonntag            'PYF' => I18N::translate('French Polynesia'),
41493ccd686SRico Sonntag            /* I18N: Name of a country or state */
41593ccd686SRico Sonntag            'QAT' => I18N::translate('Qatar'),
41693ccd686SRico Sonntag            /* I18N: Name of a country or state */
41793ccd686SRico Sonntag            'REU' => I18N::translate('Reunion'),
41893ccd686SRico Sonntag            /* I18N: Name of a country or state */
41993ccd686SRico Sonntag            'ROM' => I18N::translate('Romania'),
42093ccd686SRico Sonntag            /* I18N: Name of a country or state */
42193ccd686SRico Sonntag            'RUS' => I18N::translate('Russia'),
42293ccd686SRico Sonntag            /* I18N: Name of a country or state */
42393ccd686SRico Sonntag            'RWA' => I18N::translate('Rwanda'),
42493ccd686SRico Sonntag            /* I18N: Name of a country or state */
42593ccd686SRico Sonntag            'SAU' => I18N::translate('Saudi Arabia'),
42693ccd686SRico Sonntag            /* I18N: Name of a country or state */
42793ccd686SRico Sonntag            'SCT' => I18N::translate('Scotland'),
42893ccd686SRico Sonntag            /* I18N: Name of a country or state */
42993ccd686SRico Sonntag            'SDN' => I18N::translate('Sudan'),
43093ccd686SRico Sonntag            /* I18N: Name of a country or state */
43193ccd686SRico Sonntag            'SEA' => I18N::translate('At sea'),
43293ccd686SRico Sonntag            /* I18N: Name of a country or state */
43393ccd686SRico Sonntag            'SEN' => I18N::translate('Senegal'),
43493ccd686SRico Sonntag            /* I18N: Name of a country or state */
43593ccd686SRico Sonntag            'SER' => I18N::translate('Serbia'),
43693ccd686SRico Sonntag            /* I18N: Name of a country or state */
43793ccd686SRico Sonntag            'SGP' => I18N::translate('Singapore'),
43893ccd686SRico Sonntag            /* I18N: Name of a country or state */
43993ccd686SRico Sonntag            'SGS' => I18N::translate('South Georgia and the South Sandwich Islands'),
44093ccd686SRico Sonntag            /* I18N: Name of a country or state */
44193ccd686SRico Sonntag            'SHN' => I18N::translate('Saint Helena'),
44293ccd686SRico Sonntag            /* I18N: Name of a country or state */
44393ccd686SRico Sonntag            'SJM' => I18N::translate('Svalbard and Jan Mayen'),
44493ccd686SRico Sonntag            /* I18N: Name of a country or state */
44593ccd686SRico Sonntag            'SLB' => I18N::translate('Solomon Islands'),
44693ccd686SRico Sonntag            /* I18N: Name of a country or state */
44793ccd686SRico Sonntag            'SLE' => I18N::translate('Sierra Leone'),
44893ccd686SRico Sonntag            /* I18N: Name of a country or state */
44993ccd686SRico Sonntag            'SLV' => I18N::translate('El Salvador'),
45093ccd686SRico Sonntag            /* I18N: Name of a country or state */
45193ccd686SRico Sonntag            'SMR' => I18N::translate('San Marino'),
45293ccd686SRico Sonntag            /* I18N: Name of a country or state */
45393ccd686SRico Sonntag            'SOM' => I18N::translate('Somalia'),
45493ccd686SRico Sonntag            /* I18N: Name of a country or state */
45593ccd686SRico Sonntag            'SPM' => I18N::translate('Saint Pierre and Miquelon'),
45693ccd686SRico Sonntag            /* I18N: Name of a country or state */
45793ccd686SRico Sonntag            'SSD' => I18N::translate('South Sudan'),
45893ccd686SRico Sonntag            /* I18N: Name of a country or state */
45993ccd686SRico Sonntag            'STP' => I18N::translate('Sao Tome and Principe'),
46093ccd686SRico Sonntag            /* I18N: Name of a country or state */
46193ccd686SRico Sonntag            'SUR' => I18N::translate('Suriname'),
46293ccd686SRico Sonntag            /* I18N: Name of a country or state */
46393ccd686SRico Sonntag            'SVK' => I18N::translate('Slovakia'),
46493ccd686SRico Sonntag            /* I18N: Name of a country or state */
46593ccd686SRico Sonntag            'SVN' => I18N::translate('Slovenia'),
46693ccd686SRico Sonntag            /* I18N: Name of a country or state */
46793ccd686SRico Sonntag            'SWE' => I18N::translate('Sweden'),
46893ccd686SRico Sonntag            /* I18N: Name of a country or state */
46993ccd686SRico Sonntag            'SWZ' => I18N::translate('Swaziland'),
47093ccd686SRico Sonntag            // SXM => Sint Maarten
47193ccd686SRico Sonntag            /* I18N: Name of a country or state */
47293ccd686SRico Sonntag            'SYC' => I18N::translate('Seychelles'),
47393ccd686SRico Sonntag            /* I18N: Name of a country or state */
47493ccd686SRico Sonntag            'SYR' => I18N::translate('Syria'),
47593ccd686SRico Sonntag            /* I18N: Name of a country or state */
47693ccd686SRico Sonntag            'TCA' => I18N::translate('Turks and Caicos Islands'),
47793ccd686SRico Sonntag            /* I18N: Name of a country or state */
47893ccd686SRico Sonntag            'TCD' => I18N::translate('Chad'),
47993ccd686SRico Sonntag            /* I18N: Name of a country or state */
48093ccd686SRico Sonntag            'TGO' => I18N::translate('Togo'),
48193ccd686SRico Sonntag            /* I18N: Name of a country or state */
48293ccd686SRico Sonntag            'THA' => I18N::translate('Thailand'),
48393ccd686SRico Sonntag            /* I18N: Name of a country or state */
48493ccd686SRico Sonntag            'TJK' => I18N::translate('Tajikistan'),
48593ccd686SRico Sonntag            /* I18N: Name of a country or state */
48693ccd686SRico Sonntag            'TKL' => I18N::translate('Tokelau'),
48793ccd686SRico Sonntag            /* I18N: Name of a country or state */
48893ccd686SRico Sonntag            'TKM' => I18N::translate('Turkmenistan'),
48993ccd686SRico Sonntag            /* I18N: Name of a country or state */
49093ccd686SRico Sonntag            'TLS' => I18N::translate('Timor-Leste'),
49193ccd686SRico Sonntag            /* I18N: Name of a country or state */
49293ccd686SRico Sonntag            'TON' => I18N::translate('Tonga'),
49393ccd686SRico Sonntag            /* I18N: Name of a country or state */
49493ccd686SRico Sonntag            'TTO' => I18N::translate('Trinidad and Tobago'),
49593ccd686SRico Sonntag            /* I18N: Name of a country or state */
49693ccd686SRico Sonntag            'TUN' => I18N::translate('Tunisia'),
49793ccd686SRico Sonntag            /* I18N: Name of a country or state */
49893ccd686SRico Sonntag            'TUR' => I18N::translate('Turkey'),
49993ccd686SRico Sonntag            /* I18N: Name of a country or state */
50093ccd686SRico Sonntag            'TUV' => I18N::translate('Tuvalu'),
50193ccd686SRico Sonntag            /* I18N: Name of a country or state */
50293ccd686SRico Sonntag            'TWN' => I18N::translate('Taiwan'),
50393ccd686SRico Sonntag            /* I18N: Name of a country or state */
50493ccd686SRico Sonntag            'TZA' => I18N::translate('Tanzania'),
50593ccd686SRico Sonntag            /* I18N: Name of a country or state */
50693ccd686SRico Sonntag            'UGA' => I18N::translate('Uganda'),
50793ccd686SRico Sonntag            /* I18N: Name of a country or state */
50893ccd686SRico Sonntag            'UKR' => I18N::translate('Ukraine'),
50993ccd686SRico Sonntag            /* I18N: Name of a country or state */
51093ccd686SRico Sonntag            'UMI' => I18N::translate('US Minor Outlying Islands'),
51193ccd686SRico Sonntag            /* I18N: Name of a country or state */
51293ccd686SRico Sonntag            'URY' => I18N::translate('Uruguay'),
51393ccd686SRico Sonntag            /* I18N: Name of a country or state */
51493ccd686SRico Sonntag            'USA' => I18N::translate('United States'),
51593ccd686SRico Sonntag            /* I18N: Name of a country or state */
51693ccd686SRico Sonntag            'UZB' => I18N::translate('Uzbekistan'),
51793ccd686SRico Sonntag            /* I18N: Name of a country or state */
51893ccd686SRico Sonntag            'VAT' => I18N::translate('Vatican City'),
51993ccd686SRico Sonntag            /* I18N: Name of a country or state */
52093ccd686SRico Sonntag            'VCT' => I18N::translate('Saint Vincent and the Grenadines'),
52193ccd686SRico Sonntag            /* I18N: Name of a country or state */
52293ccd686SRico Sonntag            'VEN' => I18N::translate('Venezuela'),
52393ccd686SRico Sonntag            /* I18N: Name of a country or state */
52493ccd686SRico Sonntag            'VGB' => I18N::translate('British Virgin Islands'),
52593ccd686SRico Sonntag            /* I18N: Name of a country or state */
52693ccd686SRico Sonntag            'VIR' => I18N::translate('US Virgin Islands'),
52793ccd686SRico Sonntag            /* I18N: Name of a country or state */
52893ccd686SRico Sonntag            'VNM' => I18N::translate('Vietnam'),
52993ccd686SRico Sonntag            /* I18N: Name of a country or state */
53093ccd686SRico Sonntag            'VUT' => I18N::translate('Vanuatu'),
53193ccd686SRico Sonntag            /* I18N: Name of a country or state */
53293ccd686SRico Sonntag            'WLF' => I18N::translate('Wallis and Futuna'),
53393ccd686SRico Sonntag            /* I18N: Name of a country or state */
53493ccd686SRico Sonntag            'WLS' => I18N::translate('Wales'),
53593ccd686SRico Sonntag            /* I18N: Name of a country or state */
53693ccd686SRico Sonntag            'WSM' => I18N::translate('Samoa'),
53793ccd686SRico Sonntag            /* I18N: Name of a country or state */
53893ccd686SRico Sonntag            'YEM' => I18N::translate('Yemen'),
53993ccd686SRico Sonntag            /* I18N: Name of a country or state */
54093ccd686SRico Sonntag            'ZAF' => I18N::translate('South Africa'),
54193ccd686SRico Sonntag            /* I18N: Name of a country or state */
54293ccd686SRico Sonntag            'ZMB' => I18N::translate('Zambia'),
54393ccd686SRico Sonntag            /* I18N: Name of a country or state */
54493ccd686SRico Sonntag            'ZWE' => I18N::translate('Zimbabwe'),
54593ccd686SRico Sonntag        ];
54693ccd686SRico Sonntag    }
54793ccd686SRico Sonntag
54893ccd686SRico Sonntag    /**
54993ccd686SRico Sonntag     * ISO3166 3 letter codes, with their 2 letter equivalent.
55093ccd686SRico Sonntag     * NOTE: this is not 1:1. ENG/SCO/WAL/NIR => GB
5519deadf1cSGreg Roach     * NOTE: this also includes chapman codes and others. Should it?
55293ccd686SRico Sonntag     *
55324f2a3afSGreg Roach     * @return array<string>
55493ccd686SRico Sonntag     */
55593ccd686SRico Sonntag    public function iso3166(): array
55693ccd686SRico Sonntag    {
55793ccd686SRico Sonntag        return [
55817c6a11dSGreg Roach            'GBR' => 'GB', // Must come before ENG, NIR, SCT and WLS
55993ccd686SRico Sonntag            'ABW' => 'AW',
56093ccd686SRico Sonntag            'AFG' => 'AF',
56193ccd686SRico Sonntag            'AGO' => 'AO',
56293ccd686SRico Sonntag            'AIA' => 'AI',
56393ccd686SRico Sonntag            'ALA' => 'AX',
56493ccd686SRico Sonntag            'ALB' => 'AL',
56593ccd686SRico Sonntag            'AND' => 'AD',
56693ccd686SRico Sonntag            'ARE' => 'AE',
56793ccd686SRico Sonntag            'ARG' => 'AR',
56893ccd686SRico Sonntag            'ARM' => 'AM',
56993ccd686SRico Sonntag            'ASM' => 'AS',
57093ccd686SRico Sonntag            'ATA' => 'AQ',
57193ccd686SRico Sonntag            'ATF' => 'TF',
57293ccd686SRico Sonntag            'ATG' => 'AG',
57393ccd686SRico Sonntag            'AUS' => 'AU',
57493ccd686SRico Sonntag            'AUT' => 'AT',
57593ccd686SRico Sonntag            'AZE' => 'AZ',
57693ccd686SRico Sonntag            'BDI' => 'BI',
57793ccd686SRico Sonntag            'BEL' => 'BE',
57893ccd686SRico Sonntag            'BEN' => 'BJ',
57993ccd686SRico Sonntag            'BFA' => 'BF',
58093ccd686SRico Sonntag            'BGD' => 'BD',
58193ccd686SRico Sonntag            'BGR' => 'BG',
58293ccd686SRico Sonntag            'BHR' => 'BH',
58393ccd686SRico Sonntag            'BHS' => 'BS',
58493ccd686SRico Sonntag            'BIH' => 'BA',
58593ccd686SRico Sonntag            'BLR' => 'BY',
58693ccd686SRico Sonntag            'BLZ' => 'BZ',
58793ccd686SRico Sonntag            'BMU' => 'BM',
58893ccd686SRico Sonntag            'BOL' => 'BO',
58993ccd686SRico Sonntag            'BRA' => 'BR',
59093ccd686SRico Sonntag            'BRB' => 'BB',
59193ccd686SRico Sonntag            'BRN' => 'BN',
59293ccd686SRico Sonntag            'BTN' => 'BT',
59393ccd686SRico Sonntag            'BVT' => 'BV',
59493ccd686SRico Sonntag            'BWA' => 'BW',
59593ccd686SRico Sonntag            'CAF' => 'CF',
59693ccd686SRico Sonntag            'CAN' => 'CA',
59793ccd686SRico Sonntag            'CCK' => 'CC',
59893ccd686SRico Sonntag            'CHE' => 'CH',
59993ccd686SRico Sonntag            'CHL' => 'CL',
60093ccd686SRico Sonntag            'CHN' => 'CN',
60193ccd686SRico Sonntag            'CIV' => 'CI',
60293ccd686SRico Sonntag            'CMR' => 'CM',
60393ccd686SRico Sonntag            'COD' => 'CD',
60493ccd686SRico Sonntag            'COG' => 'CG',
60593ccd686SRico Sonntag            'COK' => 'CK',
60693ccd686SRico Sonntag            'COL' => 'CO',
60793ccd686SRico Sonntag            'COM' => 'KM',
60893ccd686SRico Sonntag            'CPV' => 'CV',
60993ccd686SRico Sonntag            'CRI' => 'CR',
61093ccd686SRico Sonntag            'CUB' => 'CU',
61193ccd686SRico Sonntag            'CXR' => 'CX',
61293ccd686SRico Sonntag            'CYM' => 'KY',
61393ccd686SRico Sonntag            'CYP' => 'CY',
61493ccd686SRico Sonntag            'CZE' => 'CZ',
61593ccd686SRico Sonntag            'DEU' => 'DE',
61693ccd686SRico Sonntag            'DJI' => 'DJ',
61793ccd686SRico Sonntag            'DMA' => 'DM',
61893ccd686SRico Sonntag            'DNK' => 'DK',
61993ccd686SRico Sonntag            'DOM' => 'DO',
62093ccd686SRico Sonntag            'DZA' => 'DZ',
62193ccd686SRico Sonntag            'ECU' => 'EC',
62293ccd686SRico Sonntag            'EGY' => 'EG',
62393ccd686SRico Sonntag            'ENG' => 'GB',
62493ccd686SRico Sonntag            'ERI' => 'ER',
62593ccd686SRico Sonntag            'ESH' => 'EH',
62693ccd686SRico Sonntag            'ESP' => 'ES',
62793ccd686SRico Sonntag            'EST' => 'EE',
62893ccd686SRico Sonntag            'ETH' => 'ET',
62993ccd686SRico Sonntag            'FIN' => 'FI',
63093ccd686SRico Sonntag            'FJI' => 'FJ',
63193ccd686SRico Sonntag            'FLK' => 'FK',
63293ccd686SRico Sonntag            'FRA' => 'FR',
63393ccd686SRico Sonntag            'FRO' => 'FO',
63493ccd686SRico Sonntag            'FSM' => 'FM',
63593ccd686SRico Sonntag            'GAB' => 'GA',
63693ccd686SRico Sonntag            'GEO' => 'GE',
63793ccd686SRico Sonntag            'GHA' => 'GH',
63893ccd686SRico Sonntag            'GIB' => 'GI',
63993ccd686SRico Sonntag            'GIN' => 'GN',
64093ccd686SRico Sonntag            'GLP' => 'GP',
64193ccd686SRico Sonntag            'GMB' => 'GM',
64293ccd686SRico Sonntag            'GNB' => 'GW',
64393ccd686SRico Sonntag            'GNQ' => 'GQ',
64493ccd686SRico Sonntag            'GRC' => 'GR',
64593ccd686SRico Sonntag            'GRD' => 'GD',
64693ccd686SRico Sonntag            'GRL' => 'GL',
64793ccd686SRico Sonntag            'GTM' => 'GT',
64893ccd686SRico Sonntag            'GUF' => 'GF',
64993ccd686SRico Sonntag            'GUM' => 'GU',
65093ccd686SRico Sonntag            'GUY' => 'GY',
65193ccd686SRico Sonntag            'HKG' => 'HK',
65293ccd686SRico Sonntag            'HMD' => 'HM',
65393ccd686SRico Sonntag            'HND' => 'HN',
65493ccd686SRico Sonntag            'HRV' => 'HR',
65593ccd686SRico Sonntag            'HTI' => 'HT',
65693ccd686SRico Sonntag            'HUN' => 'HU',
65793ccd686SRico Sonntag            'IDN' => 'ID',
65893ccd686SRico Sonntag            'IND' => 'IN',
65993ccd686SRico Sonntag            'IOT' => 'IO',
66093ccd686SRico Sonntag            'IRL' => 'IE',
66193ccd686SRico Sonntag            'IRN' => 'IR',
66293ccd686SRico Sonntag            'IRQ' => 'IQ',
66393ccd686SRico Sonntag            'ISL' => 'IS',
66493ccd686SRico Sonntag            'ISR' => 'IL',
66593ccd686SRico Sonntag            'ITA' => 'IT',
66693ccd686SRico Sonntag            'JAM' => 'JM',
66793ccd686SRico Sonntag            'JOR' => 'JO',
668c0cdda03SGreg Roach            'JPN' => 'JP',
66993ccd686SRico Sonntag            'KAZ' => 'KZ',
67093ccd686SRico Sonntag            'KEN' => 'KE',
67193ccd686SRico Sonntag            'KGZ' => 'KG',
67293ccd686SRico Sonntag            'KHM' => 'KH',
67393ccd686SRico Sonntag            'KIR' => 'KI',
67493ccd686SRico Sonntag            'KNA' => 'KN',
67593ccd686SRico Sonntag            'KOR' => 'KO',
67693ccd686SRico Sonntag            'KWT' => 'KW',
67793ccd686SRico Sonntag            'LAO' => 'LA',
67893ccd686SRico Sonntag            'LBN' => 'LB',
67993ccd686SRico Sonntag            'LBR' => 'LR',
68093ccd686SRico Sonntag            'LBY' => 'LY',
68193ccd686SRico Sonntag            'LCA' => 'LC',
68293ccd686SRico Sonntag            'LIE' => 'LI',
68393ccd686SRico Sonntag            'LKA' => 'LK',
68493ccd686SRico Sonntag            'LSO' => 'LS',
68593ccd686SRico Sonntag            'LTU' => 'LT',
68693ccd686SRico Sonntag            'LUX' => 'LU',
68793ccd686SRico Sonntag            'LVA' => 'LV',
68893ccd686SRico Sonntag            'MAC' => 'MO',
68993ccd686SRico Sonntag            'MAR' => 'MA',
69093ccd686SRico Sonntag            'MCO' => 'MC',
69193ccd686SRico Sonntag            'MDA' => 'MD',
69293ccd686SRico Sonntag            'MDG' => 'MG',
69393ccd686SRico Sonntag            'MDV' => 'MV',
69493ccd686SRico Sonntag            'MEX' => 'MX',
69593ccd686SRico Sonntag            'MHL' => 'MH',
69693ccd686SRico Sonntag            'MKD' => 'MK',
69793ccd686SRico Sonntag            'MLI' => 'ML',
69893ccd686SRico Sonntag            'MLT' => 'MT',
69993ccd686SRico Sonntag            'MMR' => 'MM',
70093ccd686SRico Sonntag            'MNG' => 'MN',
70193ccd686SRico Sonntag            'MNP' => 'MP',
70293ccd686SRico Sonntag            'MNT' => 'ME',
70393ccd686SRico Sonntag            'MOZ' => 'MZ',
70493ccd686SRico Sonntag            'MRT' => 'MR',
70593ccd686SRico Sonntag            'MSR' => 'MS',
70693ccd686SRico Sonntag            'MTQ' => 'MQ',
70793ccd686SRico Sonntag            'MUS' => 'MU',
70893ccd686SRico Sonntag            'MWI' => 'MW',
70993ccd686SRico Sonntag            'MYS' => 'MY',
71093ccd686SRico Sonntag            'MYT' => 'YT',
71193ccd686SRico Sonntag            'NAM' => 'NA',
71293ccd686SRico Sonntag            'NCL' => 'NC',
71393ccd686SRico Sonntag            'NER' => 'NE',
71493ccd686SRico Sonntag            'NFK' => 'NF',
71593ccd686SRico Sonntag            'NGA' => 'NG',
71693ccd686SRico Sonntag            'NIC' => 'NI',
71793ccd686SRico Sonntag            'NIR' => 'GB',
71893ccd686SRico Sonntag            'NIU' => 'NU',
71993ccd686SRico Sonntag            'NLD' => 'NL',
72093ccd686SRico Sonntag            'NOR' => 'NO',
72193ccd686SRico Sonntag            'NPL' => 'NP',
72293ccd686SRico Sonntag            'NRU' => 'NR',
72393ccd686SRico Sonntag            'NZL' => 'NZ',
72493ccd686SRico Sonntag            'OMN' => 'OM',
72593ccd686SRico Sonntag            'PAK' => 'PK',
72693ccd686SRico Sonntag            'PAN' => 'PA',
72793ccd686SRico Sonntag            'PCN' => 'PN',
72893ccd686SRico Sonntag            'PER' => 'PE',
72993ccd686SRico Sonntag            'PHL' => 'PH',
73093ccd686SRico Sonntag            'PLW' => 'PW',
73193ccd686SRico Sonntag            'PNG' => 'PG',
73293ccd686SRico Sonntag            'POL' => 'PL',
73393ccd686SRico Sonntag            'PRI' => 'PR',
73493ccd686SRico Sonntag            'PRK' => 'KP',
735*07c1a3baSGreg Roach            'PRT' => 'PT',
73693ccd686SRico Sonntag            'PRY' => 'PY',
73793ccd686SRico Sonntag            'PSE' => 'PS',
73893ccd686SRico Sonntag            'PYF' => 'PF',
73993ccd686SRico Sonntag            'QAT' => 'QA',
74093ccd686SRico Sonntag            'REU' => 'RE',
74193ccd686SRico Sonntag            'ROM' => 'RO',
74293ccd686SRico Sonntag            'RUS' => 'RU',
74393ccd686SRico Sonntag            'RWA' => 'RW',
74493ccd686SRico Sonntag            'SAU' => 'SA',
74593ccd686SRico Sonntag            'SCT' => 'GB',
74693ccd686SRico Sonntag            'SDN' => 'SD',
74793ccd686SRico Sonntag            'SEN' => 'SN',
74893ccd686SRico Sonntag            'SER' => 'RS',
74993ccd686SRico Sonntag            'SGP' => 'SG',
75093ccd686SRico Sonntag            'SGS' => 'GS',
75193ccd686SRico Sonntag            'SHN' => 'SH',
75293ccd686SRico Sonntag            'SJM' => 'SJ',
75393ccd686SRico Sonntag            'SLB' => 'SB',
75493ccd686SRico Sonntag            'SLE' => 'SL',
75593ccd686SRico Sonntag            'SLV' => 'SV',
75693ccd686SRico Sonntag            'SMR' => 'SM',
75793ccd686SRico Sonntag            'SOM' => 'SO',
75893ccd686SRico Sonntag            'SPM' => 'PM',
75993ccd686SRico Sonntag            'STP' => 'ST',
76093ccd686SRico Sonntag            'SUR' => 'SR',
76193ccd686SRico Sonntag            'SVK' => 'SK',
76293ccd686SRico Sonntag            'SVN' => 'SI',
76393ccd686SRico Sonntag            'SWE' => 'SE',
76493ccd686SRico Sonntag            'SWZ' => 'SZ',
76593ccd686SRico Sonntag            'SYC' => 'SC',
76693ccd686SRico Sonntag            'SYR' => 'SY',
76793ccd686SRico Sonntag            'TCA' => 'TC',
76893ccd686SRico Sonntag            'TCD' => 'TD',
76993ccd686SRico Sonntag            'TGO' => 'TG',
77093ccd686SRico Sonntag            'THA' => 'TH',
77193ccd686SRico Sonntag            'TJK' => 'TJ',
77293ccd686SRico Sonntag            'TKL' => 'TK',
77393ccd686SRico Sonntag            'TKM' => 'TM',
77493ccd686SRico Sonntag            'TLS' => 'TL',
77593ccd686SRico Sonntag            'TON' => 'TO',
77693ccd686SRico Sonntag            'TTO' => 'TT',
77793ccd686SRico Sonntag            'TUN' => 'TN',
77893ccd686SRico Sonntag            'TUR' => 'TR',
77993ccd686SRico Sonntag            'TUV' => 'TV',
78093ccd686SRico Sonntag            'TWN' => 'TW',
78193ccd686SRico Sonntag            'TZA' => 'TZ',
78293ccd686SRico Sonntag            'UGA' => 'UG',
78393ccd686SRico Sonntag            'UKR' => 'UA',
78493ccd686SRico Sonntag            'UMI' => 'UM',
78593ccd686SRico Sonntag            'URY' => 'UY',
78693ccd686SRico Sonntag            'USA' => 'US',
78793ccd686SRico Sonntag            'UZB' => 'UZ',
78893ccd686SRico Sonntag            'VAT' => 'VA',
78993ccd686SRico Sonntag            'VCT' => 'VC',
79093ccd686SRico Sonntag            'VEN' => 'VE',
79193ccd686SRico Sonntag            'VGB' => 'VG',
79293ccd686SRico Sonntag            'VIR' => 'VI',
79393ccd686SRico Sonntag            'VNM' => 'VN',
79493ccd686SRico Sonntag            'VUT' => 'VU',
79593ccd686SRico Sonntag            'WLF' => 'WF',
79693ccd686SRico Sonntag            'WLS' => 'GB',
79793ccd686SRico Sonntag            'WSM' => 'WS',
79893ccd686SRico Sonntag            'YEM' => 'YE',
79993ccd686SRico Sonntag            'ZAF' => 'ZA',
80093ccd686SRico Sonntag            'ZMB' => 'ZM',
80193ccd686SRico Sonntag            'ZWE' => 'ZW',
80293ccd686SRico Sonntag        ];
80393ccd686SRico Sonntag    }
80493ccd686SRico Sonntag
80593ccd686SRico Sonntag    /**
80693ccd686SRico Sonntag     * Returns the translated country name based on the given two letter country code.
80793ccd686SRico Sonntag     *
80893ccd686SRico Sonntag     * @param string $twoLetterCode The two letter country code
80993ccd686SRico Sonntag     *
81093ccd686SRico Sonntag     * @return string
81193ccd686SRico Sonntag     */
81293ccd686SRico Sonntag    public function mapTwoLetterToName(string $twoLetterCode): string
81393ccd686SRico Sonntag    {
81493ccd686SRico Sonntag        $threeLetterCode = array_search($twoLetterCode, $this->iso3166(), true);
81593ccd686SRico Sonntag        $threeLetterCode = $threeLetterCode ?: '???';
81693ccd686SRico Sonntag
81793ccd686SRico Sonntag        return $this->getAllCountries()[$threeLetterCode];
81893ccd686SRico Sonntag    }
81993ccd686SRico Sonntag}
820