﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/fur.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"}
        AN{"Antilis olandesis"}
        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{"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"}
        MK{"Macedonie"}
        ML{"Mali"}
        MM{"Birmanie"}
        MN{"Mongolie"}
        MO{"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%variant{
        CD{"Congo (RDC)"}
        CG{"Congo (Republiche)"}
        FK{"Isulis Falkland (Isulis Malvinas)"}
        MK{"Macedonie (FYROM)"}
    }
    Version{"2.1.19.14"}
}
