Src/Private/Get-CountryName.ps1

function Get-CountryName {
    param (
        [Parameter(Mandatory = $true)]
        [string]$CountryCode
    )

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

    # Convert input to uppercase to handle case insensitivity
    $CountryCode = $CountryCode.ToUpper()

    # Lookup the country name or return a default message if not found
    if ($CountryLookup.ContainsKey($CountryCode)) {
        return $CountryLookup[$CountryCode]
    } else {
        return "Country code not found"
    }
}