﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
fur{
    Countries{
        001{"Mont"}
        002{"Afriche"}
        003{"Americhe dal Nord"}
        005{"Americhe meridionâl"}
        009{"Oceanie"}
        011{"Afriche ocidentâl"}
        013{"Americhe centrâl"}
        014{"Afriche orientâl"}
        015{"Afriche setentrionâl"}
        017{"Afriche di mieç"}
        018{"Afriche meridionâl"}
        019{"Americhis"}
        021{"Americhe setentrionâl"}
        029{"caraibic"}
        030{"Asie orientâl"}
        034{"Asie meridionâl"}
        035{"Asie sud orientâl"}
        039{"Europe meridionâl"}
        053{"Australie e Gnove Zelande"}
        054{"Melanesie"}
        057{"Regjon de Micronesie"}
        061{"Polinesie"}
        142{"Asie"}
        143{"Asie centrâl"}
        145{"Asie ocidentâl"}
        150{"Europe"}
        151{"Europe orientâl"}
        154{"Europe setentrionâl"}
        155{"Europe ocidentâl"}
        419{"Americhe latine"}
        AD{"Andorra"}
        AE{"Emirâts araps unîts"}
        AF{"Afghanistan"}
        AG{"Antigua e Barbuda"}
        AI{"Anguilla"}
        AL{"Albanie"}
        AM{"Armenie"}
        AO{"Angola"}
        AQ{"Antartic"}
        AR{"Argjentine"}
        AS{"Samoa merecanis"}
        AT{"Austrie"}
        AU{"Australie"}
        AW{"Aruba"}
        AX{"Isulis Aland"}
        AZ{"Azerbaigian"}
        BA{"Bosnie e Ercegovine"}
        BB{"Barbados"}
        BD{"Bangladesh"}
        BE{"Belgjiche"}
        BF{"Burkina Faso"}
        BG{"Bulgarie"}
        BH{"Bahrain"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Sant Barthélemy"}
        BM{"Bermuda"}
        BN{"Brunei"}
        BO{"Bolivie"}
        BR{"Brasîl"}
        BS{"Bahamas"}
        BT{"Bhutan"}
        BV{"Isule Bouvet"}
        BW{"Botswana"}
        BY{"Bielorussie"}
        BZ{"Belize"}
        CA{"Canade"}
        CC{"Isulis Cocos"}
        CD{"Republiche Democratiche dal Congo"}
        CF{"Republiche centri africane"}
        CG{"Congo - Brazzaville"}
        CH{"Svuizare"}
        CI{"Cueste di Avoli"}
        CK{"Isulis Cook"}
        CL{"Cile"}
        CM{"Camerun"}
        CN{"Cine"}
        CO{"Colombie"}
        CP{"Isule Clipperton"}
        CR{"Costa Rica"}
        CU{"Cuba"}
        CV{"Cjâf vert"}
        CX{"Isule Christmas"}
        CY{"Cipri"}
        CZ{"Republiche ceche"}
        DE{"Gjermanie"}
        DG{"Diego Garcia"}
        DJ{"Gibuti"}
        DK{"Danimarcje"}
        DM{"Dominiche"}
        DO{"Republiche dominicane"}
        DZ{"Alzerie"}
        EA{"Ceuta e Melilla"}
        EC{"Ecuador"}
        EE{"Estonie"}
        EG{"Egjit"}
        EH{"Sahara ocidentâl"}
        ER{"Eritree"}
        ES{"Spagne"}
        ET{"Etiopie"}
        EU{"Union europeane"}
        FI{"Finlandie"}
        FJ{"Fizi"}
        FK{"Isulis Falkland"}
        FM{"Micronesie"}
        FO{"Isulis Faroe"}
        FR{"France"}
        GA{"Gabon"}
        GB{"Ream unît"}
        GD{"Grenada"}
        GE{"Gjeorgjie"}
        GF{"Guiana francês"}
        GG{"Guernsey"}
        GH{"Ghana"}
        GI{"Gjibraltar"}
        GL{"Groenlande"}
        GM{"Gambia"}
        GN{"Guinee"}
        GP{"Guadalupe"}
        GQ{"Guinee ecuatoriâl"}
        GR{"Grecie"}
        GS{"Georgia dal Sud e Isulis Sandwich dal Sud"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinea-Bissau"}
        GY{"Guyana"}
        HK{"Regjon aministrative speciâl de Cine di Hong Kong"}
        HM{"Isule Heard e Isulis McDonald"}
        HN{"Honduras"}
        HR{"Cravuazie"}
        HT{"Haiti"}
        HU{"Ongjarie"}
        IC{"Isulis Canariis"}
        ID{"Indonesie"}
        IE{"Irlande"}
        IL{"Israêl"}
        IM{"Isule di Man"}
        IN{"India"}
        IO{"Teritori britanic dal Ocean Indian"}
        IQ{"Iraq"}
        IR{"Iran"}
        IS{"Islande"}
        IT{"Italie"}
        JE{"Jersey"}
        JM{"Gjamaiche"}
        JO{"Jordanie"}
        JP{"Gjapon"}
        KE{"Kenya"}
        KG{"Kirghizstan"}
        KH{"Camboze"}
        KI{"Kiribati"}
        KM{"Comoris"}
        KN{"San Kitts e Nevis"}
        KP{"Coree dal nord"}
        KR{"Coree dal sud"}
        KW{"Kuwait"}
        KY{"Isulis Cayman"}
        KZ{"Kazachistan"}
        LA{"Laos"}
        LB{"Liban"}
        LC{"Sante Lusie"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Liberie"}
        LS{"Lesotho"}
        LT{"Lituanie"}
        LU{"Lussemburc"}
        LV{"Letonie"}
        LY{"Libie"}
        MA{"Maroc"}
        MC{"Monaco"}
        MD{"Moldavie"}
        ME{"Montenegro"}
        MF{"Sant Martin"}
        MG{"Madagascar"}
        MH{"Isulis Marshall"}
        ML{"Mali"}
        MM{"Birmanie"}
        MN{"Mongolie"}
        MO{"Regjon aministrative speciâl de Cine di Macao"}
        MP{"Isulis Mariana dal Nord"}
        MQ{"Martiniche"}
        MR{"Mauritanie"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Maurizi"}
        MV{"Maldivis"}
        MW{"Malawi"}
        MX{"Messic"}
        MY{"Malaysia"}
        MZ{"Mozambic"}
        NA{"Namibie"}
        NC{"Gnove Caledonie"}
        NE{"Niger"}
        NF{"Isole Norfolk"}
        NG{"Nigerie"}
        NI{"Nicaragua"}
        NL{"Paîs bas"}
        NO{"Norvegje"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Gnove Zelande"}
        OM{"Oman"}
        PA{"Panamà"}
        PE{"Perù"}
        PF{"Polinesie francês"}
        PG{"Papue Gnove Guinee"}
        PH{"Filipinis"}
        PK{"Pakistan"}
        PL{"Polonie"}
        PM{"San Pierre e Miquelon"}
        PN{"Pitcairn"}
        PR{"Porto Rico"}
        PS{"Teritoris palestinês"}
        PT{"Portugal"}
        PW{"Palau"}
        PY{"Paraguay"}
        QA{"Qatar"}
        QO{"Oceanie periferiche"}
        RE{"Reunion"}
        RO{"Romanie"}
        RS{"Serbie"}
        RU{"Russie"}
        RW{"Ruande"}
        SA{"Arabie Saudide"}
        SB{"Isulis Salomon"}
        SC{"Seychelles"}
        SD{"Sudan"}
        SE{"Svezie"}
        SG{"Singapore"}
        SH{"Sante Eline"}
        SI{"Slovenie"}
        SJ{"Svalbard e Jan Mayen"}
        SK{"Slovachie"}
        SL{"Sierra Leone"}
        SM{"San Marin"}
        SN{"Senegal"}
        SO{"Somalie"}
        SR{"Suriname"}
        ST{"Sao Tomè e Principe"}
        SV{"El Salvador"}
        SY{"Sirie"}
        SZ{"Swaziland"}
        TA{"Tristan da Cunha"}
        TC{"Isulis Turks e Caicos"}
        TD{"Çad"}
        TF{"Teritoris meridionâi francês"}
        TG{"Togo"}
        TH{"Tailandie"}
        TJ{"Tazikistan"}
        TK{"Tokelau"}
        TL{"Timor orientâl"}
        TM{"Turkmenistan"}
        TN{"Tunisie"}
        TO{"Tonga"}
        TR{"Turchie"}
        TT{"Trinidad e Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwan"}
        TZ{"Tanzanie"}
        UA{"Ucraine"}
        UG{"Uganda"}
        UM{"Isulis periferichis minôrs dai Stâts Unîts"}
        US{"Stâts Unîts"}
        UY{"Uruguay"}
        UZ{"Uzbechistan"}
        VA{"Vatican"}
        VC{"San Vincent e lis Grenadinis"}
        VE{"Venezuela"}
        VG{"Isulis vergjinis britanichis"}
        VI{"Isulis vergjinis americanis"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis e Futuna"}
        WS{"Samoa"}
        YE{"Yemen"}
        YT{"Mayotte"}
        ZA{"Sud Afriche"}
        ZM{"Zambia"}
        ZW{"Zimbabwe"}
        ZZ{"Regjon no cognossude o no valide"}
    }
    Countries%short{
        HK{"Hong Kong"}
        MO{"Macao"}
    }
    Countries%variant{
        CD{"Congo (RDC)"}
        CG{"Congo (Republiche)"}
        FK{"Isulis Falkland (Isulis Malvinas)"}
    }
}
