Module:Iso2nationality

From The Goon Show Depository

local p = {}

local data = {
	AD = "Andorran",
	AE = "Emirati",
	AF = "Afghan",
	AG = "Antigua and Barbuda",
	AI = "Anguillan",
	AL = "Albanian",
	AM = "Armenian",
	AN = "Netherlands Antillean",
	AO = "Angolan",
	AQ = "Antarctican",
	AR = "Argentine",
	AS = "American Samoan",
	AT = "Austrian",
	AU = "Australian",
	AW = "Aruban",
	AX = "Åland",
	AZ = "Azerbaijani",
	BA = "Bosnia and Herzegovina",
	BB = "Barbadian",
	BD = "Bangladeshi",
	BE = "Belgian",
	BF = "Burkinabé",
	BG = "Bulgarian",
	BH = "Bahraini",
	BI = "Burundian",
	BJ = "Beninese",
	BL = "Saint Barthélemy",
	BM = "Bermudian",
	BN = "Bruneian",
	BO = "Bolivian",
	BR = "Brazilian",
	BS = "Bahamian",
	BT = "Bhutanese",
	BV = "Bouvet Island",
	BW = "Botswanan",
	BY = "Belarusian",
	BZ = "Belizean",
	CA = "Canadian",
	CC = "Cocos (Keeling) Islands",
	CD = "Democratic Republic of the Congo",
	CF = "Central African",
	CG = "Republic of the Congo",
	CH = "Swiss",
	CI = "Ivorian",
	CK = "Cook Islands",
	CL = "Chilean",
	CM = "Cameroonian",
	CN = "Chinese",
	CO = "Colombian",
	CR = "Costa Rican",
	CU = "Cuban",
	CV = "Cape Verdean",
	CX = "Christmas Island",
	CY = "Cypriot",
	CZ = "Czech",
	DE = "German",
	DJ = "Djiboutian",
	DK = "Danish",
	DM = "Dominica",
	DO = "Dominican Republic",
	DZ = "Algerian",
	EC = "Ecuadorian",
	EE = "Estonian",
	EG = "Egyptian",
	EH = "Sahrawi",
	ER = "Eritrean",
	ES = "Spanish",
	ET = "Ethiopian",
	FI = "Finnish",
	FJ = "Fijian",
	FK = "Falkland Islands",
	FM = "Micronesian",
	FO = "Faroese",
	FR = "French",
	GA = "Gabonese",
	GB = "British",
	 ["GB-ENG"] = "English",
	 ["GB-NIR"] = "Northern Irish",
	 ["GB-SCT"] = "Scottish",
	 ["GB-WLS"] = "Welsh",
	GD = "Grenadian",
	GE = "Georgian",
	GF = "Guianese",
	GG = "Guernsey",
	GH = "Ghanaian",
	GI = "Gibraltarian",
	GL = "Greenlandic",
	GM = "Gambian",
	GN = "Guinean",
	GP = "Guadeloupean",
	GQ = "Equatoguinean",
	GR = "Greek",
	GS = "South Georgia and the South Sandwich Islands",
	GT = "Guatemalan",
	GU = "Guam",
	GW = "Bissau-Guinean",
	GY = "Guyanese",
	HK = "Hong Kong",
	HM = "Heard Island and McDonald Islands",
	HN = "Honduran",
	HR = "Croatian",
	HT = "Haitian",
	HU = "Hungarian",
	ID = "Indonesian",
	IE = "Irish",
	IL = "Israeli",
	IM = "Manx",
	IN = "Indian",
	IO = "British Indian Ocean Territory",
	IQ = "Iraqi",
	IR = "Iranian",
	IS = "Icelandic",
	IT = "Italian",
	JE = "Jersey",
	JM = "Jamaican",
	JO = "Jordanian",
	JP = "Japanese",
	KE = "Kenyan",
	KG = "Kyrgyz",
	KH = "Cambodian",
	KI = "Kiribati",
	KM = "Comorian",
	KN = "Saint Kitts and Nevis",
	KP = "North Korean",
	KR = "South Korean",
	KW = "Kuwaiti",
	KY = "Caymanian Islands",
	KZ = "Kazakh",
	LA = "Laotian",
	LB = "Lebanese",
	LC = "Saint Lucian",
	LI = "Liechtensteiner",
	LK = "Sri Lankan",
	LR = "Liberian",
	LS = "Lesothan",
	LT = "Lithuanian",
	LU = "Luxembourg",
	LV = "Latvian",
	LY = "Libyan",
	MA = "Moroccan",
	MC = "Monégasque",
	MD = "Moldovan",
	ME = "Montenegrin",
	MF = "Saint Martin",
	MG = "Malagasy",
	MH = "Marshallese",
	MK = "Macedonian",
	ML = "Malian",
	MM = "Burmese",
	MN = "Mongolian",
	MO = "Macanese",
	MP = "Northern Mariana Islands",
	MQ = "Martiniquan",
	MR = "Mauritanian",
	MS = "Montserratian",
	MT = "Maltese",
	MU = "Mauritian",
	MV = "Maldivian",
	MW = "Malawian",
	MX = "Mexican",
	MY = "Malaysian",
	MZ = "Mozambican",
	NA = "Namibian",
	NC = "New Caledonia",
	NE = "Nigerien",
	NF = "Norfolk Island",
	NG = "Nigerian",
	NI = "Nicaraguan",
	NL = "Dutch",
	NO = "Norwegian",
	NP = "Nepalese",
	NR = "Nauruan",
	NU = "Niuean",
	NZ = "New Zealand",
	OM = "Omani",
	PA = "Panamanian",
	PE = "Peruvian",
	PF = "French Polynesian",
	PG = "Papua New Guinean",
	PH = "Filipino",
	PK = "Pakistani",
	PL = "Polish",
	PM = "Saint Pierre and Miquelon",
	PN = "Pitcairn Islands",
	PR = "Puerto Rican",
	PS = "Palestinian",
	PT = "Portuguese",
	PW = "Palauan",
	PY = "Paraguayan",
	QA = "Qatari",
	RE = "Réunionnais",
	RO = "Romanian",
	RS = "Serbian",
	RU = "Russian",
	RW = "Rwandan",
	SA = "Saudi Arabian",
	SB = "Solomon Islands",
	SC = "Seychellois",
	SD = "Sudanese",
	SE = "Swedish",
	SG = "Singaporean",
	SH = "Saint Helenian",
	SI = "Slovenian",
	SJ = "Svalbard and Jan Mayen",
	SK = "Slovak",
	SL = "Sierra Leonean",
	SM = "Sammarinese",
	SN = "Senegalese",
	SO = "Somalian",
	SR = "Surinamese",
	SS = "South Sudanese",
	ST = "Santomean",
	SV = "Salvadoran",
	SY = "Syrian",
	SZ = "Swazi",
	TC = "Turks and Caicos Islands",
	TD = "Chadian",
	TF = "French Southern Territories",
	TG = "Togolese",
	TH = "Thai",
	TJ = "Tajik",
	TK = "Tokelauan",
	TL = "East Timorese",
	TM = "Turkmen",
	TN = "Tunisian",
	TO = "Tongan",
	TR = "Turkish",
	TT = "Trinidad and Tobago",
	TV = "Tuvaluan",
	TW = "Taiwanese",
	TZ = "Tanzanian",
	UA = "Ukrainian",
	UG = "Ugandan",
	UM = "United States Minor Outlying Islands",
	US = "American",
	UY = "Uruguayan",
	UZ = "Uzbek",
	VA = "Vatican",
	VC = "Saint Vincent and the Grenadines",
	VE = "Venezuelan",
	VG = "British Virgin Islands",
	VI = "United States Virgin Islands",
	VN = "Vietnamese",
	VU = "Vanuatuan",
	WF = "Wallis and Futuna",
	WS = "Samoan",
	XK = "Kosovan",
	YE = "Yemeni",
	YT = "Mayotte",
	ZA = "South African",
	ZM = "Zambian",
	ZW = "Zimbabwean",
}

function p.i2n(code)
	if data[mw.ustring.upper( mw.text.trim(code) )] then
		return data[mw.ustring.upper( mw.text.trim(code) )]
	end
	return code
end

p[''] = function (frame) return p.i2n(frame.args[1]) end

return p