﻿// ***************************************************************************
// *
// * 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{"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"}
        MK{"Macedonie"}
        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)"}
        MK{"Macedonie (FYROM)"}
    }
    Version{"2.1.15.45"}
}
