{ Unit: unit_ISOCountryCodes.pas

  Copyright (C) 2021 monta - Johannes Müller
    Chrom IT GmbH & Co. KG - https://www.chrom-it.de

  For help see also: https://lazarusforum.de

  This library is free software; you can redistribute it and/or modify it
  under the terms of the GNU Library General Public License as published by
  the Free Software Foundation; either version 2 of the License, or (at your
  option) any later version with the following modification:

  As a special exception, the copyright holders of this library give you
  permission to link this library with independent modules to produce an
  executable, regardless of the license terms of these independent modules,and
  to copy and distribute the resulting executable under terms of your choice,
  provided that you also meet, for each linked independent module, the terms
  and conditions of the license of that module. An independent module is a
  module which is not derived from or based on this library. If you modify
  this library, you may extend this exception to your version of the library,
  but you are not obligated to do so. If you do not wish to do so, delete this
  exception statement from your version.

  This program is distributed in the hope that it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
  for more details.

  You should have received a copy of the GNU Library General Public License
  along with this library; if not, write to the Free Software Foundation,
  Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1335, USA.
}

//******************************************************************************
// Credits goes to http://www.teamarbyte.de/mysql-laender.html
// for the prepared raw data, many thanks.
//******************************************************************************

unit unit_ISOCountryCodes;

{$mode ObjFPC}{$H+}

interface

uses
  Classes, SysUtils;

type
  TISO31662 = string[2];

  TStatesLanguage = (slDE, slEN, slES, slFR);

  TStatesTableRecord = record
    DE: string;
    EN: string;
    ES: string;
    FR: string;
    ISO31662: TISO31662;
  end;

const
  StatesTable: array [0..249] of TStatesTableRecord =
  (
    (DE: 'Afghanistan'; EN: 'Afghanistan'; ES: 'Afganistán'; FR: 'Afghanistan'; ISO31662: 'AF'),
    (DE: 'Ägypten'; EN: 'Egypt'; ES: 'Egipto'; FR: 'Égypte'; ISO31662: 'EG'),
    (DE: 'Åland'; EN: 'Aland Islands'; ES: 'Islas Áland'; FR: 'Åland, Îles'; ISO31662: 'AX'),
    (DE: 'Albanien'; EN: 'Albania'; ES: 'Albania'; FR: 'Albanie'; ISO31662: 'AL'),
    (DE: 'Algerien'; EN: 'Algeria'; ES: 'Argelia'; FR: 'Algérie'; ISO31662: 'DZ'),
    (DE: 'Amerikanisch-Ozeanien'; EN: 'United States Minor Outlying Islands'; ES: 'Islas menores periféricas de los Estados Unidos'; FR: 'Îles Mineures Éloignées Des États-Unis'; ISO31662: 'UM'),
    (DE: 'Amerikanisch-Samoa'; EN: 'American Samoa'; ES: 'Samoa Americana'; FR: 'Samoa Américaines'; ISO31662: 'AS'),
    (DE: 'Amerikanische Jungferninseln'; EN: 'U.S. Virgin Islands'; ES: 'Islas Vírgenes de los Estados Unidos de América'; FR: 'Îles Vierges Des États-Unis'; ISO31662: 'VI'),
    (DE: 'Andorra'; EN: 'Andorra'; ES: 'Andorra'; FR: 'Andorre'; ISO31662: 'AD'),
    (DE: 'Angola'; EN: 'Angola'; ES: 'Angola'; FR: 'Angola'; ISO31662: 'AO'),
    (DE: 'Anguilla'; EN: 'Anguilla'; ES: 'Anguila'; FR: 'Anguilla'; ISO31662: 'AI'),
    (DE: 'Antarktis'; EN: 'Antarctica'; ES: 'Antártida'; FR: 'Antarctique'; ISO31662: 'AQ'),
    (DE: 'Antigua und Barbuda'; EN: 'Antigua and Barbuda'; ES: 'Antigua y Barbuda'; FR: 'Antigua-Et-Barbuda'; ISO31662: 'AG'),
    (DE: 'Äquatorialguinea'; EN: 'Equatorial Guinea'; ES: 'Guinea Ecuatorial'; FR: 'Guinée Équatoriale'; ISO31662: 'GQ'),
    (DE: 'Argentinien'; EN: 'Argentina'; ES: 'Argentina'; FR: 'Argentine'; ISO31662: 'AR'),
    (DE: 'Armenien'; EN: 'Armenia'; ES: 'Armenia'; FR: 'Arménie'; ISO31662: 'AM'),
    (DE: 'Aruba'; EN: 'Aruba'; ES: 'Aruba'; FR: 'Aruba'; ISO31662: 'AW'),
    (DE: 'Aserbaidschan'; EN: 'Azerbaijan'; ES: 'Azerbaiyán'; FR: 'Azerbaïdjan'; ISO31662: 'AZ'),
    (DE: 'Äthiopien'; EN: 'Ethiopia'; ES: 'Etiopía'; FR: 'Éthiopie'; ISO31662: 'ET'),
    (DE: 'Australien'; EN: 'Australia'; ES: 'Australia'; FR: 'Australie'; ISO31662: 'AU'),
    (DE: 'Bahamas'; EN: 'Bahamas'; ES: 'Bahamas'; FR: 'Bahamas'; ISO31662: 'BS'),
    (DE: 'Bahrain'; EN: 'Bahrain'; ES: 'Bahréin'; FR: 'Bahreïn'; ISO31662: 'BH'),
    (DE: 'Bangladesch'; EN: 'Bangladesh'; ES: 'Bangladesh'; FR: 'Bangladesh'; ISO31662: 'BD'),
    (DE: 'Barbados'; EN: 'Barbados'; ES: 'Barbados'; FR: 'Barbade'; ISO31662: 'BB'),
    (DE: 'Belarus (Weißrussland)'; EN: 'Belarus'; ES: 'Belarús'; FR: 'Bélarus'; ISO31662: 'BY'),
    (DE: 'Belgien'; EN: 'Belgium'; ES: 'Bélgica'; FR: 'Belgique'; ISO31662: 'BE'),
    (DE: 'Belize'; EN: 'Belize'; ES: 'Belice'; FR: 'Belize'; ISO31662: 'BZ'),
    (DE: 'Benin'; EN: 'Benin'; ES: 'Benin'; FR: 'Bénin'; ISO31662: 'BJ'),
    (DE: 'Bermuda'; EN: 'Bermuda'; ES: 'Bermudas'; FR: 'Bermudes'; ISO31662: 'BM'),
    (DE: 'Bhutan'; EN: 'Bhutan'; ES: 'Bhután'; FR: 'Bhoutan'; ISO31662: 'BT'),
    (DE: 'Bolivien'; EN: 'Bolivia'; ES: 'Bolivia'; FR: 'Bolivie, État Plurinational De'; ISO31662: 'BO'),
    (DE: 'Bonaire, Sint Eustatius und Saba'; EN: 'Bonaire, Sint Eustatius and Saba'; ES: 'Bonaire, San Eustaquio y Saba'; FR: 'Bonaire, Saint-Eustache Et Saba'; ISO31662: 'BQ'),
    (DE: 'Bosnien und Herzegowina'; EN: 'Bosnia and Herzegovina'; ES: 'Bosnia y Herzegovina'; FR: 'Bosnie-Herzégovine'; ISO31662: 'BA'),
    (DE: 'Botswana'; EN: 'Botswana'; ES: 'Botsuana'; FR: 'Botswana'; ISO31662: 'BW'),
    (DE: 'Bouvetinsel'; EN: 'Bouvet Island'; ES: 'Isla Bouvet'; FR: 'Bouvet, Île'; ISO31662: 'BV'),
    (DE: 'Brasilien'; EN: 'Brazil'; ES: 'Brasil'; FR: 'Brésil'; ISO31662: 'BR'),
    (DE: 'Britische Jungferninseln'; EN: 'British Virgin Islands'; ES: 'Islas Vírgenes Británicas'; FR: 'Îles Vierges Britanniques'; ISO31662: 'VG'),
    (DE: 'Britisches Territorium im Indischen Ozean'; EN: 'British Indian Ocean Territory'; ES: 'Territorio Británico del Océano Índico'; FR: 'Océan Indien, Territoire Britannique De L'''; ISO31662: 'IO'),
    (DE: 'Brunei Darussalam'; EN: 'Brunei'; ES: 'Brunéi'; FR: 'Brunéi Darussalam'; ISO31662: 'BN'),
    (DE: 'Bulgarien'; EN: 'Bulgaria'; ES: 'Bulgaria'; FR: 'Bulgarie'; ISO31662: 'BG'),
    (DE: 'Burkina Faso'; EN: 'Burkina Faso'; ES: 'Burkina Faso'; FR: 'Burkina Faso'; ISO31662: 'BF'),
    (DE: 'Burundi'; EN: 'Burundi'; ES: 'Burundi'; FR: 'Burundi'; ISO31662: 'BI'),
    (DE: 'Chile'; EN: 'Chile'; ES: 'Chile'; FR: 'Chili'; ISO31662: 'CL'),
    (DE: 'China, Volksrepublik'; EN: 'China'; ES: 'China'; FR: 'Chine'; ISO31662: 'CN'),
    (DE: 'Cookinseln'; EN: 'Cook Islands'; ES: 'Islas Cook'; FR: 'Cook, Îles'; ISO31662: 'CK'),
    (DE: 'Costa Rica'; EN: 'Costa Rica'; ES: 'Costa Rica'; FR: 'Costa Rica'; ISO31662: 'CR'),
    (DE: 'Curaçao'; EN: 'Curacao !Curaçao'; ES: 'Curaçao'; FR: 'Curaçao'; ISO31662: 'CW'),
    (DE: 'Dänemark'; EN: 'Denmark'; ES: 'Dinamarca'; FR: 'Danemark'; ISO31662: 'DK'),
    (DE: 'Deutschland'; EN: 'Germany'; ES: 'Alemania'; FR: 'Allemagne'; ISO31662: 'DE'),
    (DE: 'Dominica'; EN: 'Dominica'; ES: 'Domínica'; FR: 'Dominique'; ISO31662: 'DM'),
    (DE: 'Dominikanische Republik'; EN: 'Dominican Republic'; ES: 'República Dominicana'; FR: 'Dominicaine, République'; ISO31662: 'DO'),
    (DE: 'Dschibuti'; EN: 'Djibouti'; ES: 'Yibuti'; FR: 'Djibouti'; ISO31662: 'DJ'),
    (DE: 'Ecuador'; EN: 'Ecuador'; ES: 'Ecuador'; FR: 'Équateur'; ISO31662: 'EC'),
    (DE: 'El Salvador'; EN: 'El Salvador'; ES: 'El Salvador'; FR: 'El Salvador'; ISO31662: 'SV'),
    (DE: 'Elfenbeinküste'; EN: 'Ivory Coast'; ES: 'Costa de Marfil'; FR: 'Côte D’ivoire'; ISO31662: 'CI'),
    (DE: 'Eritrea'; EN: 'Eritrea'; ES: 'Eritrea'; FR: 'Érythrée'; ISO31662: 'ER'),
    (DE: 'Estland (Reval)'; EN: 'Estonia'; ES: 'Estonia'; FR: 'Estonie'; ISO31662: 'EE'),
    (DE: 'Falklandinseln (Malwinen)'; EN: 'Falkland Islands'; ES: 'Islas Malvinas'; FR: 'Falkland, Îles (Malvinas)'; ISO31662: 'FK'),
    (DE: 'Färöer'; EN: 'Faroe Islands'; ES: 'Islas Faroe'; FR: 'Féroé, Îles'; ISO31662: 'FO'),
    (DE: 'Fidschi'; EN: 'Fiji'; ES: 'Fiji'; FR: 'Fidji'; ISO31662: 'FJ'),
    (DE: 'Finnland'; EN: 'Finland'; ES: 'Finlandia'; FR: 'Finlande'; ISO31662: 'FI'),
    (DE: 'Frankreich'; EN: 'France'; ES: 'Francia'; FR: 'France'; ISO31662: 'FR'),
    (DE: 'Französisch-Guayana'; EN: 'French Guiana'; ES: 'Guayana Francesa'; FR: 'Guyane Française'; ISO31662: 'GF'),
    (DE: 'Französisch-Polynesien'; EN: 'French Polynesia'; ES: 'Polinesia Francesa'; FR: 'Polynésie Française'; ISO31662: 'PF'),
    (DE: 'Französische Süd- und Antarktisgebiete'; EN: 'French Southern Territories'; ES: 'Territorios Australes Franceses'; FR: 'Terres Australes Françaises'; ISO31662: 'TF'),
    (DE: 'Gabun'; EN: 'Gabon'; ES: 'Gabón'; FR: 'Gabon'; ISO31662: 'GA'),
    (DE: 'Gambia'; EN: 'Gambia'; ES: 'Gambia'; FR: 'Gambie'; ISO31662: 'GM'),
    (DE: 'Georgien'; EN: 'Georgia'; ES: 'Georgia'; FR: 'Géorgie'; ISO31662: 'GE'),
    (DE: 'Ghana'; EN: 'Ghana'; ES: 'Ghana'; FR: 'Ghana'; ISO31662: 'GH'),
    (DE: 'Gibraltar'; EN: 'Gibraltar'; ES: 'Gibraltar'; FR: 'Gibraltar'; ISO31662: 'GI'),
    (DE: 'Grenada'; EN: 'Grenada'; ES: 'Granada'; FR: 'Grenade'; ISO31662: 'GD'),
    (DE: 'Griechenland'; EN: 'Greece'; ES: 'Grecia'; FR: 'Grèce'; ISO31662: 'GR'),
    (DE: 'Grönland'; EN: 'Greenland'; ES: 'Groenlandia'; FR: 'Groenland'; ISO31662: 'GL'),
    (DE: 'Großbritannien und Nordirland'; EN: 'United Kingdom'; ES: 'Reino Unido'; FR: 'Royaume-Uni'; ISO31662: 'GB'),
    (DE: 'Guadeloupe'; EN: 'Guadeloupe'; ES: 'Guadalupe'; FR: 'Guadeloupe'; ISO31662: 'GP'),
    (DE: 'Guam'; EN: 'Guam'; ES: 'Guam'; FR: 'Guam'; ISO31662: 'GU'),
    (DE: 'Guatemala'; EN: 'Guatemala'; ES: 'Guatemala'; FR: 'Guatemala'; ISO31662: 'GT'),
    (DE: 'Guernsey (Kanalinsel)'; EN: 'Guernsey'; ES: 'Guernsey'; FR: 'Guernesey'; ISO31662: 'GG'),
    (DE: 'Guinea'; EN: 'Guinea'; ES: 'Guinea'; FR: 'Guinée'; ISO31662: 'GN'),
    (DE: 'Guinea-Bissau'; EN: 'Guinea-Bissau'; ES: 'Guinea-Bissau'; FR: 'Guinée-Bissau'; ISO31662: 'GW'),
    (DE: 'Guyana'; EN: 'Guyana'; ES: 'Guayana'; FR: 'Guyana'; ISO31662: 'GY'),
    (DE: 'Haiti'; EN: 'Haiti'; ES: 'Haití'; FR: 'Haïti'; ISO31662: 'HT'),
    (DE: 'Heard- und McDonald-Inseln'; EN: 'Heard Island and McDonald Islands'; ES: 'Islas Heard y McDonald'; FR: 'Heard Et Macdonald, Îles'; ISO31662: 'HM'),
    (DE: 'Honduras'; EN: 'Honduras'; ES: 'Honduras'; FR: 'Honduras'; ISO31662: 'HN'),
    (DE: 'Hongkong'; EN: 'Hong Kong S.A.R., China'; ES: 'Hong Kong'; FR: 'Hong Kong'; ISO31662: 'HK'),
    (DE: 'Indien'; EN: 'India'; ES: 'India'; FR: 'Inde'; ISO31662: 'IN'),
    (DE: 'Indonesien'; EN: 'Indonesia'; ES: 'Indonesia'; FR: 'Indonésie'; ISO31662: 'ID'),
    (DE: 'Insel Man'; EN: 'Isle of Man'; ES: 'Isla de Man'; FR: 'Île De Man'; ISO31662: 'IM'),
    (DE: 'Irak'; EN: 'Iraq'; ES: 'Irak'; FR: 'Iraq'; ISO31662: 'IQ'),
    (DE: 'Iran'; EN: 'Iran'; ES: 'Irán'; FR: 'Iran, République Islamique D'''; ISO31662: 'IR'),
    (DE: 'Irland'; EN: 'Ireland'; ES: 'Irlanda'; FR: 'Irlande'; ISO31662: 'IE'),
    (DE: 'Island'; EN: 'Iceland'; ES: 'Islandia'; FR: 'Islande'; ISO31662: 'IS'),
    (DE: 'Israel'; EN: 'Israel'; ES: 'Israel'; FR: 'Israël'; ISO31662: 'IL'),
    (DE: 'Italien'; EN: 'Italy'; ES: 'Italia'; FR: 'Italie'; ISO31662: 'IT'),
    (DE: 'Jamaika'; EN: 'Jamaica'; ES: 'Jamaica'; FR: 'Jamaïque'; ISO31662: 'JM'),
    (DE: 'Japan'; EN: 'Japan'; ES: 'Japón'; FR: 'Japon'; ISO31662: 'JP'),
    (DE: 'Jemen'; EN: 'Yemen'; ES: 'Yemen'; FR: 'Yémen'; ISO31662: 'YE'),
    (DE: 'Jersey (Kanalinsel)'; EN: 'Jersey'; ES: 'Jersey'; FR: 'Jersey'; ISO31662: 'JE'),
    (DE: 'Jordanien'; EN: 'Jordan'; ES: 'Jordania'; FR: 'Jordanie'; ISO31662: 'JO'),
    (DE: 'Kaimaninseln'; EN: 'Cayman Islands'; ES: 'Islas Caimán'; FR: 'Caïmanes, Îles'; ISO31662: 'KY'),
    (DE: 'Kambodscha'; EN: 'Cambodia'; ES: 'Camboya'; FR: 'Cambodge'; ISO31662: 'KH'),
    (DE: 'Kamerun'; EN: 'Cameroon'; ES: 'Camerún'; FR: 'Cameroun'; ISO31662: 'CM'),
    (DE: 'Kanada'; EN: 'Canada'; ES: 'Canadá'; FR: 'Canada'; ISO31662: 'CA'),
    (DE: 'Kap Verde'; EN: 'Cape Verde'; ES: 'Cabo Verde'; FR: 'Cabo Verde'; ISO31662: 'CV'),
    (DE: 'Kasachstan'; EN: 'Kazakhstan'; ES: 'Kazajstán'; FR: 'Kazakhstan'; ISO31662: 'KZ'),
    (DE: 'Katar'; EN: 'Qatar'; ES: 'Qatar'; FR: 'Qatar'; ISO31662: 'QA'),
    (DE: 'Kenia'; EN: 'Kenya'; ES: 'Kenia'; FR: 'Kenya'; ISO31662: 'KE'),
    (DE: 'Kirgisistan'; EN: 'Kyrgyzstan'; ES: 'Kirguistán'; FR: 'Kirghizistan'; ISO31662: 'KG'),
    (DE: 'Kiribati'; EN: 'Kiribati'; ES: 'Kiribati'; FR: 'Kiribati'; ISO31662: 'KI'),
    (DE: 'Kokosinseln (Keelinginseln)'; EN: 'Cocos (Keeling) Islands'; ES: 'Islas Cocos'; FR: 'Cocos (Keeling), Îles'; ISO31662: 'CC'),
    (DE: 'Kolumbien'; EN: 'Colombia'; ES: 'Colombia'; FR: 'Colombie'; ISO31662: 'CO'),
    (DE: 'Komoren'; EN: 'Comoros'; ES: 'Comoros'; FR: 'Comores'; ISO31662: 'KM'),
    (DE: 'Kongo'; EN: 'Congo (Kinshasa)'; ES: 'Congo'; FR: 'Congo, La République Démocratique Du'; ISO31662: 'CD'),
    (DE: 'Kroatien'; EN: 'Croatia'; ES: 'Croacia'; FR: 'Croatie'; ISO31662: 'HR'),
    (DE: 'Kuba'; EN: 'Cuba'; ES: 'Cuba'; FR: 'Cuba'; ISO31662: 'CU'),
    (DE: 'Kuwait'; EN: 'Kuwait'; ES: 'Kuwait'; FR: 'Koweït'; ISO31662: 'KW'),
    (DE: 'Laos'; EN: 'Laos'; ES: 'Laos'; FR: 'Lao, République Démocratique Populaire'; ISO31662: 'LA'),
    (DE: 'Lesotho'; EN: 'Lesotho'; ES: 'Lesotho'; FR: 'Lesotho'; ISO31662: 'LS'),
    (DE: 'Lettland'; EN: 'Latvia'; ES: 'Letonia'; FR: 'Lettonie'; ISO31662: 'LV'),
    (DE: 'Libanon'; EN: 'Lebanon'; ES: 'Líbano'; FR: 'Liban'; ISO31662: 'LB'),
    (DE: 'Liberia'; EN: 'Liberia'; ES: 'Liberia'; FR: 'Libéria'; ISO31662: 'LR'),
    (DE: 'Libyen'; EN: 'Libya'; ES: 'Libia'; FR: 'Libye'; ISO31662: 'LY'),
    (DE: 'Liechtenstein'; EN: 'Liechtenstein'; ES: 'Liechtenstein'; FR: 'Liechtenstein'; ISO31662: 'LI'),
    (DE: 'Litauen'; EN: 'Lithuania'; ES: 'Lituania'; FR: 'Lituanie'; ISO31662: 'LT'),
    (DE: 'Luxemburg'; EN: 'Luxembourg'; ES: 'Luxemburgo'; FR: 'Luxembourg'; ISO31662: 'LU'),
    (DE: 'Macau'; EN: 'Macao S.A.R., China'; ES: 'Macao'; FR: 'Macao'; ISO31662: 'MO'),
    (DE: 'Madagaskar'; EN: 'Madagascar'; ES: 'Madagascar'; FR: 'Madagascar'; ISO31662: 'MG'),
    (DE: 'Malawi'; EN: 'Malawi'; ES: 'Malawi'; FR: 'Malawi'; ISO31662: 'MW'),
    (DE: 'Malaysia'; EN: 'Malaysia'; ES: 'Malasia'; FR: 'Malaisie'; ISO31662: 'MY'),
    (DE: 'Malediven'; EN: 'Maldives'; ES: 'Maldivas'; FR: 'Maldives'; ISO31662: 'MV'),
    (DE: 'Mali'; EN: 'Mali'; ES: 'Mali'; FR: 'Mali'; ISO31662: 'ML'),
    (DE: 'Malta'; EN: 'Malta'; ES: 'Malta'; FR: 'Malte'; ISO31662: 'MT'),
    (DE: 'Marokko'; EN: 'Morocco'; ES: 'Marruecos'; FR: 'Maroc'; ISO31662: 'MA'),
    (DE: 'Marshallinseln'; EN: 'Marshall Islands'; ES: 'Islas Marshall'; FR: 'Marshall, Îles'; ISO31662: 'MH'),
    (DE: 'Martinique'; EN: 'Martinique'; ES: 'Martinica'; FR: 'Martinique'; ISO31662: 'MQ'),
    (DE: 'Mauretanien'; EN: 'Mauritania'; ES: 'Mauritania'; FR: 'Mauritanie'; ISO31662: 'MR'),
    (DE: 'Mauritius'; EN: 'Mauritius'; ES: 'Mauricio'; FR: 'Maurice'; ISO31662: 'MU'),
    (DE: 'Mayotte'; EN: 'Mayotte'; ES: 'Mayotte'; FR: 'Mayotte'; ISO31662: 'YT'),
    (DE: 'Mazedonien'; EN: 'Macedonia'; ES: 'Macedonia'; FR: 'Macédoine, L''ex-République Yougoslave De'; ISO31662: 'MK'),
    (DE: 'Mexiko'; EN: 'Mexico'; ES: 'México'; FR: 'Mexique'; ISO31662: 'MX'),
    (DE: 'Mikronesien'; EN: 'Micronesia'; ES: 'Micronesia'; FR: 'Micronésie, États Fédérés De'; ISO31662: 'FM'),
    (DE: 'Moldawien'; EN: 'Moldova'; ES: 'Moldova'; FR: 'Moldova'; ISO31662: 'MD'),
    (DE: 'Monaco'; EN: 'Monaco'; ES: 'Mónaco'; FR: 'Monaco'; ISO31662: 'MC'),
    (DE: 'Mongolei'; EN: 'Mongolia'; ES: 'Mongolia'; FR: 'Mongolie'; ISO31662: 'MN'),
    (DE: 'Montenegro'; EN: 'Montenegro'; ES: 'Montenegro'; FR: 'Monténégro'; ISO31662: 'ME'),
    (DE: 'Montserrat'; EN: 'Montserrat'; ES: 'Montserrat'; FR: 'Montserrat'; ISO31662: 'MS'),
    (DE: 'Mosambik'; EN: 'Mozambique'; ES: 'Mozambique'; FR: 'Mozambique'; ISO31662: 'MZ'),
    (DE: 'Myanmar (Burma)'; EN: 'Myanmar'; ES: 'Myanmar'; FR: 'Myanmar'; ISO31662: 'MM'),
    (DE: 'Namibia'; EN: 'Namibia'; ES: 'Namibia'; FR: 'Namibie'; ISO31662: 'NA'),
    (DE: 'Nauru'; EN: 'Nauru'; ES: 'Nauru'; FR: 'Nauru'; ISO31662: 'NR'),
    (DE: 'Nepal'; EN: 'Nepal'; ES: 'Nepal'; FR: 'Népal'; ISO31662: 'NP'),
    (DE: 'Neukaledonien'; EN: 'New Caledonia'; ES: 'Nueva Caledonia'; FR: 'Nouvelle-Calédonie'; ISO31662: 'NC'),
    (DE: 'Neuseeland'; EN: 'New Zealand'; ES: 'Nueva Zelanda'; FR: 'Nouvelle-Zélande'; ISO31662: 'NZ'),
    (DE: 'Nicaragua'; EN: 'Nicaragua'; ES: 'Nicaragua'; FR: 'Nicaragua'; ISO31662: 'NI'),
    (DE: 'Niederlande'; EN: 'Netherlands'; ES: 'Países Bajos'; FR: 'Pays-Bas'; ISO31662: 'NL'),
    (DE: 'Niederländische Antillen'; EN: 'Netherlands Antilles'; ES: 'Antillas Neerlandesas'; FR: ''; ISO31662: 'AN'),
    (DE: 'Niger'; EN: 'Niger'; ES: 'Níger'; FR: 'Niger'; ISO31662: 'NE'),
    (DE: 'Nigeria'; EN: 'Nigeria'; ES: 'Nigeria'; FR: 'Nigéria'; ISO31662: 'NG'),
    (DE: 'Niue'; EN: 'Niue'; ES: 'Niue'; FR: 'Niué'; ISO31662: 'NU'),
    (DE: 'Nordkorea'; EN: 'North Korea'; ES: 'Corea del Norte'; FR: 'Corée, République Populaire Démocratique De'; ISO31662: 'KP'),
    (DE: 'Nördliche Marianen'; EN: 'Northern Mariana Islands'; ES: 'Islas Marianas del Norte'; FR: 'Mariannes Du Nord, Îles'; ISO31662: 'MP'),
    (DE: 'Norfolkinsel'; EN: 'Norfolk Island'; ES: 'Islas Norkfolk'; FR: 'Norfolk, Île'; ISO31662: 'NF'),
    (DE: 'Norwegen'; EN: 'Norway'; ES: 'Noruega'; FR: 'Norvège'; ISO31662: 'NO'),
    (DE: 'Oman'; EN: 'Oman'; ES: 'Omán'; FR: 'Oman'; ISO31662: 'OM'),
    (DE: 'Österreich'; EN: 'Austria'; ES: 'Austria'; FR: 'Autriche'; ISO31662: 'AT'),
    (DE: 'Pakistan'; EN: 'Pakistan'; ES: 'Pakistán'; FR: 'Pakistan'; ISO31662: 'PK'),
    (DE: 'Palästina'; EN: 'Palestine'; ES: 'Palestina'; FR: 'État De Palestine'; ISO31662: 'PS'),
    (DE: 'Palau'; EN: 'Palau'; ES: 'Islas Palaos'; FR: 'Palaos'; ISO31662: 'PW'),
    (DE: 'Panama'; EN: 'Panama'; ES: 'Panamá'; FR: 'Panama'; ISO31662: 'PA'),
    (DE: 'Papua-Neuguinea'; EN: 'Papua New Guinea'; ES: 'Papúa Nueva Guinea'; FR: 'Papouasie-Nouvelle-Guinée'; ISO31662: 'PG'),
    (DE: 'Paraguay'; EN: 'Paraguay'; ES: 'Paraguay'; FR: 'Paraguay'; ISO31662: 'PY'),
    (DE: 'Peru'; EN: 'Peru'; ES: 'Perú'; FR: 'Pérou'; ISO31662: 'PE'),
    (DE: 'Philippinen'; EN: 'Philippines'; ES: 'Filipinas'; FR: 'Philippines'; ISO31662: 'PH'),
    (DE: 'Pitcairninseln'; EN: 'Pitcairn'; ES: 'Islas Pitcairn'; FR: 'Pitcairn'; ISO31662: 'PN'),
    (DE: 'Polen'; EN: 'Poland'; ES: 'Polonia'; FR: 'Pologne'; ISO31662: 'PL'),
    (DE: 'Portugal'; EN: 'Portugal'; ES: 'Portugal'; FR: 'Portugal'; ISO31662: 'PT'),
    (DE: 'Puerto Rico'; EN: 'Puerto Rico'; ES: 'Puerto Rico'; FR: 'Porto Rico'; ISO31662: 'PR'),
    (DE: 'Republik Kongo'; EN: 'Congo (Brazzaville)'; ES: 'Congo'; FR: 'Congo'; ISO31662: 'CG'),
    (DE: 'Réunion'; EN: 'Reunion'; ES: 'Reunión'; FR: 'Réunion'; ISO31662: 'RE'),
    (DE: 'Ruanda'; EN: 'Rwanda'; ES: 'Ruanda'; FR: 'Rwanda'; ISO31662: 'RW'),
    (DE: 'Rumänien'; EN: 'Romania'; ES: 'Rumanía'; FR: 'Roumanie'; ISO31662: 'RO'),
    (DE: 'Russische Föderation'; EN: 'Russia'; ES: 'Rusia'; FR: 'Russie, Fédération De'; ISO31662: 'RU'),
    (DE: 'Saint-Barthélemy'; EN: 'Saint Barthelemy !Saint Barthélemy'; ES: 'Saint Barthélemy'; FR: 'Saint-Barthélemy'; ISO31662: 'BL'),
    (DE: 'Saint-Martin (franz. Teil)'; EN: 'Saint Martin (French part)'; ES: 'Saint Martin (parte francesa)'; FR: 'Saint-Martin (Partie Française)'; ISO31662: 'MF'),
    (DE: 'Salomonen'; EN: 'Solomon Islands'; ES: 'Islas Solomón'; FR: 'Salomon, Îles'; ISO31662: 'SB'),
    (DE: 'Sambia'; EN: 'Zambia'; ES: 'Zambia'; FR: 'Zambie'; ISO31662: 'ZM'),
    (DE: 'Samoa'; EN: 'Samoa'; ES: 'Samoa'; FR: 'Samoa'; ISO31662: 'WS'),
    (DE: 'San Marino'; EN: 'San Marino'; ES: 'San Marino'; FR: 'Saint-Marin'; ISO31662: 'SM'),
    (DE: 'São Tomé und Príncipe'; EN: 'Sao Tome and Principe'; ES: 'Santo Tomé y Príncipe'; FR: 'Sao Tomé-Et-Principe'; ISO31662: 'ST'),
    (DE: 'Saudi-Arabien'; EN: 'Saudi Arabia'; ES: 'Arabia Saudita'; FR: 'Arabie Saoudite'; ISO31662: 'SA'),
    (DE: 'Schweden'; EN: 'Sweden'; ES: 'Suecia'; FR: 'Suède'; ISO31662: 'SE'),
    (DE: 'Schweiz'; EN: 'Switzerland'; ES: 'Suiza'; FR: 'Suisse'; ISO31662: 'CH'),
    (DE: 'Senegal'; EN: 'Senegal'; ES: 'Senegal'; FR: 'Sénégal'; ISO31662: 'SN'),
    (DE: 'Serbien'; EN: 'Serbia'; ES: 'Serbia'; FR: 'Serbie'; ISO31662: 'RS'),
    (DE: 'Seychellen'; EN: 'Seychelles'; ES: 'Seychelles'; FR: 'Seychelles'; ISO31662: 'SC'),
    (DE: 'Sierra Leone'; EN: 'Sierra Leone'; ES: 'Sierra Leona'; FR: 'Sierra Leone'; ISO31662: 'SL'),
    (DE: 'Simbabwe'; EN: 'Zimbabwe'; ES: 'Zimbabue'; FR: 'Zimbabwe'; ISO31662: 'ZW'),
    (DE: 'Singapur'; EN: 'Singapore'; ES: 'Singapur'; FR: 'Singapour'; ISO31662: 'SG'),
    (DE: 'Sint Maarten (niederl. Teil)'; EN: 'Sint Maarten (Dutch part)'; ES: 'Sint Maarten (parte neerlandesa)'; FR: 'Saint-Martin (Partie Néerlandaise)'; ISO31662: 'SX'),
    (DE: 'Slowakei'; EN: 'Slovakia'; ES: 'Eslovaquia'; FR: 'Slovaquie'; ISO31662: 'SK'),
    (DE: 'Slowenien'; EN: 'Slovenia'; ES: 'Eslovenia'; FR: 'Slovénie'; ISO31662: 'SI'),
    (DE: 'Somalia'; EN: 'Somalia'; ES: 'Somalia'; FR: 'Somalie'; ISO31662: 'SO'),
    (DE: 'Spanien'; EN: 'Spain'; ES: 'España'; FR: 'Espagne'; ISO31662: 'ES'),
    (DE: 'Sri Lanka'; EN: 'Sri Lanka'; ES: 'Sri Lanka'; FR: 'Sri Lanka'; ISO31662: 'LK'),
    (DE: 'St. Helena'; EN: 'Saint Helena'; ES: 'Santa Elena'; FR: 'Sainte-Hélène, Ascension Et Tristan Da Cunha'; ISO31662: 'SH'),
    (DE: 'St. Kitts und Nevis'; EN: 'Saint Kitts and Nevis'; ES: 'San Cristóbal y Nieves'; FR: 'Saint-Kitts-Et-Nevis'; ISO31662: 'KN'),
    (DE: 'St. Lucia'; EN: 'Saint Lucia'; ES: 'Santa Lucía'; FR: 'Sainte-Lucie'; ISO31662: 'LC'),
    (DE: 'St. Pierre und Miquelon'; EN: 'Saint Pierre and Miquelon'; ES: 'San Pedro y Miquelón'; FR: 'Saint-Pierre-Et-Miquelon'; ISO31662: 'PM'),
    (DE: 'St. Vincent und die Grenadinen'; EN: 'Saint Vincent and the Grenadines'; ES: 'San Vicente y las Granadinas'; FR: 'Saint-Vincent-Et-Les-Grenadines'; ISO31662: 'VC'),
    (DE: 'Südafrika'; EN: 'South Africa'; ES: 'Sudáfrica'; FR: 'Afrique Du Sud'; ISO31662: 'ZA'),
    (DE: 'Sudan'; EN: 'Sudan'; ES: 'Sudán'; FR: 'Soudan'; ISO31662: 'SD'),
    (DE: 'Südgeorgien und die Südl. Sandwichinseln'; EN: 'South Georgia and the South Sandwich Islands'; ES: 'Georgia del Sur e Islas Sandwich del Sur'; FR: 'Géorgie Du Sud Et Les Îles Sandwich Du Sud'; ISO31662: 'GS'),
    (DE: 'Südkorea'; EN: 'South Korea'; ES: 'Corea del Sur'; FR: 'Corée, République De'; ISO31662: 'KR'),
    (DE: 'Sudsudan!Südsudan'; EN: 'South Sudan'; ES: 'Sudán del Sur'; FR: 'Soudan Du Sud'; ISO31662: 'SS'),
    (DE: 'Suriname'; EN: 'Suriname'; ES: 'Surinam'; FR: 'Suriname'; ISO31662: 'SR'),
    (DE: 'Svalbard und Jan Mayen'; EN: 'Svalbard and Jan Mayen'; ES: 'Islas Svalbard y Jan Mayen'; FR: 'Svalbard Et Île Jan Mayen'; ISO31662: 'SJ'),
    (DE: 'Swasiland'; EN: 'Swaziland'; ES: 'Suazilandia'; FR: 'Swaziland'; ISO31662: 'SZ'),
    (DE: 'Syrien'; EN: 'Syria'; ES: 'Siria'; FR: 'Syrienne, République Arabe'; ISO31662: 'SY'),
    (DE: 'Tadschikistan'; EN: 'Tajikistan'; ES: 'Tayikistán'; FR: 'Tadjikistan'; ISO31662: 'TJ'),
    (DE: 'Taiwan'; EN: 'Taiwan'; ES: 'Taiwán'; FR: 'Taïwan, Province De Chine'; ISO31662: 'TW'),
    (DE: 'Tansania'; EN: 'Tanzania'; ES: 'Tanzania'; FR: 'Tanzanie, République Unie De'; ISO31662: 'TZ'),
    (DE: 'Thailand'; EN: 'Thailand'; ES: 'Tailandia'; FR: 'Thaïlande'; ISO31662: 'TH'),
    (DE: 'Timor-Leste'; EN: 'East Timor'; ES: 'Timor-Leste'; FR: 'Timor-Leste'; ISO31662: 'TL'),
    (DE: 'Togo'; EN: 'Togo'; ES: 'Togo'; FR: 'Togo'; ISO31662: 'TG'),
    (DE: 'Tokelau'; EN: 'Tokelau'; ES: 'Tokelau'; FR: 'Tokelau'; ISO31662: 'TK'),
    (DE: 'Tonga'; EN: 'Tonga'; ES: 'Tonga'; FR: 'Tonga'; ISO31662: 'TO'),
    (DE: 'Trinidad und Tobago'; EN: 'Trinidad and Tobago'; ES: 'Trinidad y Tobago'; FR: 'Trinité-Et-Tobago'; ISO31662: 'TT'),
    (DE: 'Tschad'; EN: 'Chad'; ES: 'Chad'; FR: 'Tchad'; ISO31662: 'TD'),
    (DE: 'Tschechische Republik'; EN: 'Czech Republic'; ES: 'República Checa'; FR: 'Tchèque, République'; ISO31662: 'CZ'),
    (DE: 'Tunesien'; EN: 'Tunisia'; ES: 'Túnez'; FR: 'Tunisie'; ISO31662: 'TN'),
    (DE: 'Türkei'; EN: 'Turkey'; ES: 'Turquía'; FR: 'Turquie'; ISO31662: 'TR'),
    (DE: 'Turkmenistan'; EN: 'Turkmenistan'; ES: 'Turkmenistán'; FR: 'Turkménistan'; ISO31662: 'TM'),
    (DE: 'Turks- und Caicosinseln'; EN: 'Turks and Caicos Islands'; ES: 'Islas Turcas y Caicos'; FR: 'Turks Et Caïques, Îles'; ISO31662: 'TC'),
    (DE: 'Tuvalu'; EN: 'Tuvalu'; ES: 'Tuvalu'; FR: 'Tuvalu'; ISO31662: 'TV'),
    (DE: 'Uganda'; EN: 'Uganda'; ES: 'Uganda'; FR: 'Ouganda'; ISO31662: 'UG'),
    (DE: 'Ukraine'; EN: 'Ukraine'; ES: 'Ucrania'; FR: 'Ukraine'; ISO31662: 'UA'),
    (DE: 'Ungarn'; EN: 'Hungary'; ES: 'Hungría'; FR: 'Hongrie'; ISO31662: 'HU'),
    (DE: 'Uruguay'; EN: 'Uruguay'; ES: 'Uruguay'; FR: 'Uruguay'; ISO31662: 'UY'),
    (DE: 'Usbekistan'; EN: 'Uzbekistan'; ES: 'Uzbekistán'; FR: 'Ouzbékistan'; ISO31662: 'UZ'),
    (DE: 'Vanuatu'; EN: 'Vanuatu'; ES: 'Vanuatu'; FR: 'Vanuatu'; ISO31662: 'VU'),
    (DE: 'Vatikanstadt'; EN: 'Vatican'; ES: 'Ciudad del Vaticano'; FR: 'Saint-Siège (État De La Cité Du Vatican)'; ISO31662: 'VA'),
    (DE: 'Venezuela'; EN: 'Venezuela'; ES: 'Venezuela'; FR: 'Venezuela, République Bolivarienne Du'; ISO31662: 'VE'),
    (DE: 'Vereinigte Arabische Emirate'; EN: 'United Arab Emirates'; ES: 'Emiratos Árabes Unidos'; FR: 'Émirats Arabes Unis'; ISO31662: 'AE'),
    (DE: 'Vereinigte Staaten von Amerika'; EN: 'United States'; ES: 'Estados Unidos de América'; FR: 'États-Unis'; ISO31662: 'US'),
    (DE: 'Vietnam'; EN: 'Vietnam'; ES: 'Vietnam'; FR: 'Viet Nam'; ISO31662: 'VN'),
    (DE: 'Wallis und Futuna'; EN: 'Wallis and Futuna'; ES: 'Wallis y Futuna'; FR: 'Wallis-Et-Futuna'; ISO31662: 'WF'),
    (DE: 'Weihnachtsinsel'; EN: 'Christmas Island'; ES: 'Islas Christmas'; FR: 'Christmas, Île'; ISO31662: 'CX'),
    (DE: 'Westsahara'; EN: 'Western Sahara'; ES: 'Sahara Occidental'; FR: 'Sahara Occidental'; ISO31662: 'EH'),
    (DE: 'Zentralafrikanische Republik'; EN: 'Central African Republic'; ES: 'República Centro-Africana'; FR: 'Centrafricaine, République'; ISO31662: 'CF'),
    (DE: 'Zypern'; EN: 'Cyprus'; ES: 'Chipre'; FR: 'Chypre'; ISO31662: 'CY')
  );

function CountryToISO(const SearchCountry: string;
  const SearchLanguage: TStatesLanguage): string;
function ISOToCountry(const SearchISO: string;
  const SearchLanguage: TStatesLanguage): string;

implementation

function CountryToISO(const SearchCountry: string;
  const SearchLanguage: TStatesLanguage): string;
var
  i: integer;
  CountryName: string;
begin
  for i := 0 to Length(StatesTable) - 1 do
  begin
    case SearchLanguage of
      slDE: CountryName :=  StatesTable[i].DE;
      slEN: CountryName :=  StatesTable[i].EN;
      slES: CountryName :=  StatesTable[i].ES;
      slFR: CountryName :=  StatesTable[i].FR;
      else
        CountryName := '';
      end;
    if CountryName  = SearchCountry then
    begin
      Result := StatesTable[i].ISO31662;
      Break;
    end;
  end;
end;

function ISOToCountry(const SearchISO: string;
  const SearchLanguage: TStatesLanguage): string;
var
  i: integer;
  CountryName: string;
begin
  for i := 0 to Length(StatesTable) - 1 do
  begin
    if StatesTable[i].ISO31662 = SearchISO then
    begin
      case SearchLanguage of
        slDE: CountryName :=  StatesTable[i].DE;
        slEN: CountryName :=  StatesTable[i].EN;
        slES: CountryName :=  StatesTable[i].ES;
        slFR: CountryName :=  StatesTable[i].FR;
        else
          CountryName := '';
      end;
      Result := CountryName;
      Break;
    end;
  end;
end;

end.
