﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/sq.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/sq.xml
 */
sq{
    Countries{
        001{"Bota"}
        002{"Afrikë"}
        003{"Amerika e Veriut"}
        005{"Amerika e Jugut"}
        009{"Oqeani"}
        011{"Afrika Perëndimore"}
        013{"Amerika Qendrore"}
        014{"Afrika Lindore"}
        015{"Afrika Veriore"}
        017{"Afrika e Mesme"}
        018{"Afrika Jugore"}
        019{"Amerikë"}
        021{"Amerika Veriore"}
        029{"Karaibe"}
        030{"Azia Lindore"}
        034{"Azia Jugore"}
        035{"Azia Juglindore"}
        039{"Europa Jugore"}
        053{"Australazia"}
        054{"Melanezia"}
        057{"Rajoni Mikronezian"}
        061{"Polinezia"}
        142{"Azi"}
        143{"Azia Qendrore"}
        145{"Azia Perëndimore"}
        150{"Europë"}
        151{"Europa Lindore"}
        154{"Europa Veriore"}
        155{"Europa Perëndimore"}
        419{"Amerika Latine"}
        AC{"Ishulli Asenshion"}
        AD{"Andorrë"}
        AE{"Emiratet e Bashkuara Arabe"}
        AF{"Afganistan"}
        AG{"Antigua e Barbuda"}
        AI{"Anguilë"}
        AL{"Shqipëri"}
        AM{"Armeni"}
        AO{"Angolë"}
        AQ{"Antarktikë"}
        AR{"Argjentinë"}
        AS{"Samoa Amerikane"}
        AT{"Austri"}
        AU{"Australi"}
        AW{"Arubë"}
        AX{"Ishujt Alandë"}
        AZ{"Azerbajxhan"}
        BA{"Bosnjë-Hercegovinë"}
        BB{"Barbados"}
        BD{"Bangladesh"}
        BE{"Belgjikë"}
        BF{"Burkina Faso"}
        BG{"Bullgari"}
        BH{"Bahrein"}
        BI{"Burund"}
        BJ{"Benin"}
        BL{"Shën Bartolemeo"}
        BM{"Bermudë"}
        BN{"Brunej"}
        BO{"Bolivi"}
        BQ{"Karaibet holandeze"}
        BR{"Brazil"}
        BS{"Bahamas"}
        BT{"Butan"}
        BV{"Ishujt Bove"}
        BW{"Botsvanë"}
        BY{"Bjellorusi"}
        BZ{"Belizë"}
        CA{"Kanada"}
        CC{"Ishujt Kokos"}
        CD{"Kongo-Kinshasa"}
        CF{"Republika Afrikano-Qendrore"}
        CG{"Kongo-Brazavilë"}
        CH{"Zvicër"}
        CI{"Bregu i Fildishtë"}
        CK{"Ishujt Kukë"}
        CL{"Kili"}
        CM{"Kamerun"}
        CN{"Kinë"}
        CO{"Kolumbi"}
        CP{"Ishulli Klipërton"}
        CR{"Kosta Rikë"}
        CU{"Kubë"}
        CV{"Kepi i Gjelbër"}
        CW{"Kuraçao"}
        CX{"Ishulli i Krishtlindjes"}
        CY{"Qipro"}
        CZ{"Republika Çeke"}
        DE{"Gjermani"}
        DG{"Diego Garsia"}
        DJ{"Xhibut"}
        DK{"Danimarkë"}
        DM{"Dominikë"}
        DO{"Republika Dominikane"}
        DZ{"Algjeri"}
        EA{"Theuta e Melila"}
        EC{"Ekuador"}
        EE{"Estoni"}
        EG{"Egjipt"}
        EH{"Saharaja Perëndimore"}
        ER{"Eritre"}
        ES{"Spanjë"}
        ET{"Etiopi"}
        EU{"Bashkimi Europian"}
        FI{"Finlandë"}
        FJ{"Fixhi"}
        FK{"Ishujt Folklandë"}
        FM{"Mikronezi"}
        FO{"Ishujt Faroe"}
        FR{"Francë"}
        GA{"Gabon"}
        GB{"Mbretëria e Bashkuar"}
        GD{"Grenadë"}
        GE{"Gjeorgji"}
        GF{"Guajana Franceze"}
        GG{"Guernsej"}
        GH{"Ganë"}
        GI{"Gjibraltar"}
        GL{"Grenlandë"}
        GM{"Gambi"}
        GN{"Guine"}
        GP{"Guadalupe"}
        GQ{"Guineja Ekuatoriale"}
        GR{"Greqi"}
        GS{"Xhorxha Jugore dhe Ishujt Senduiç të Jugut"}
        GT{"Guatemalë"}
        GU{"Guam"}
        GW{"Guine-Bisau"}
        GY{"Guajanë"}
        HK{"RVAK i Hong Kongut"}
        HM{"Ishulli Hërd dhe Ishujt Mekdonald"}
        HN{"Honduras"}
        HR{"Kroaci"}
        HT{"Haiti"}
        HU{"Hungari"}
        IC{"Ishujt Kanarie"}
        ID{"Indonezi"}
        IE{"Irlandë"}
        IL{"Izrael"}
        IM{"Ishulli i Manit"}
        IN{"Indi"}
        IO{"Territori Britanik i Oqeanit Indian"}
        IQ{"Irak"}
        IR{"Iran"}
        IS{"Islandë"}
        IT{"Itali"}
        JE{"Xhersej"}
        JM{"Xhamajkë"}
        JO{"Jordani"}
        JP{"Japoni"}
        KE{"Kenia"}
        KG{"Kirgistan"}
        KH{"Kamboxhia"}
        KI{"Qiribati"}
        KM{"Komore"}
        KN{"Shën Kits e Nevis"}
        KP{"Koreja e Veriut"}
        KR{"Koreja e Jugut"}
        KW{"Kuvajt"}
        KY{"Ishujt Kajmanë"}
        KZ{"Kazakistan"}
        LA{"Laos"}
        LB{"Liban"}
        LC{"Shën Luçia"}
        LI{"Lihtënshtajn"}
        LK{"Sri Lankë"}
        LR{"Liberi"}
        LS{"Lesoto"}
        LT{"Lituani"}
        LU{"Luksemburg"}
        LV{"Letoni"}
        LY{"Libi"}
        MA{"Marok"}
        MC{"Monako"}
        MD{"Moldavi"}
        ME{"Mali i Zi"}
        MF{"Shën Martin"}
        MG{"Madagaskar"}
        MH{"Ishujt Marshallë"}
        MK{"Maqedoni"}
        ML{"Mali"}
        MM{"Mianmar (Burma)"}
        MN{"Mongoli"}
        MO{"RVAK i Makaos"}
        MP{"Ishujt e Marianës Veriore"}
        MQ{"Martinik"}
        MR{"Mauritani"}
        MS{"Montserat"}
        MT{"Maltë"}
        MU{"Mauritius"}
        MV{"Maldive"}
        MW{"Malavi"}
        MX{"Meksikë"}
        MY{"Malajzi"}
        MZ{"Mozambik"}
        NA{"Namibi"}
        NC{"Kaledonia e Re"}
        NE{"Niger"}
        NF{"Ishujt Norfolkë"}
        NG{"Nigeri"}
        NI{"Nikaragua"}
        NL{"Holandë"}
        NO{"Norvegji"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Zelanda e Re"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Polinezia Franceze"}
        PG{"Papua Guineja e Re"}
        PH{"Filipine"}
        PK{"Pakistan"}
        PL{"Poloni"}
        PM{"Shën Peir dhe Mikuelon"}
        PN{"Ishujt Pitkernë"}
        PR{"Porto Riko"}
        PS{"Territoret Palestineze"}
        PT{"Portugali"}
        PW{"Palau"}
        PY{"Paraguai"}
        QA{"Katar"}
        QO{"Oqeania e Largët (Lindja e Largët)"}
        RE{"Reunion"}
        RO{"Rumani"}
        RS{"Serbi"}
        RU{"Rusi"}
        RW{"Ruandë"}
        SA{"Arabia Saudite"}
        SB{"Ishujt Solomonë"}
        SC{"Sishel"}
        SD{"Sudan"}
        SE{"Suedi"}
        SG{"Singapor"}
        SH{"Shën Helena"}
        SI{"Slloveni"}
        SJ{"Svalbard e Zhan Majen"}
        SK{"Sllovaki"}
        SL{"Siera Leone"}
        SM{"San Marino"}
        SN{"Senegali"}
        SO{"Somali"}
        SR{"Surinami"}
        SS{"Sudani i Jugut"}
        ST{"Sao Tome e Prinsipe"}
        SV{"El Salvador"}
        SX{"Shën Martin (Sint Maarten-pjesa e Mbretërisë së Holandës)"}
        SY{"Siri"}
        SZ{"Svazilandë"}
        TA{"Tristan da Kuna"}
        TC{"Ishujt Turke dhe Kaike"}
        TD{"Çad"}
        TF{"Territoret Australiane Franceze"}
        TG{"Togo"}
        TH{"Tajlandë"}
        TJ{"Taxhikistan"}
        TK{"Tokelau"}
        TL{"Timori Lindor"}
        TM{"Turkmenistan"}
        TN{"Tunizi"}
        TO{"Tonga"}
        TR{"Turqi"}
        TT{"Trinidad e Tobago"}
        TV{"Tuvalu"}
        TW{"Tajvan"}
        TZ{"Tanzani"}
        UA{"Ukrainë"}
        UG{"Ugandë"}
        UM{"Ishujt periferikë të SHBA-së"}
        US{"Shtetet e Bashkuara të Amerikës"}
        UY{"Uruguai"}
        UZ{"Uzbekistan"}
        VA{"Vatikan"}
        VC{"Shën Vinsent dhe Grenadinet"}
        VE{"Venezuelë"}
        VG{"Ishujt e Virgjër Britanikë"}
        VI{"Ishujt e Virgjër Amerikanë"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Uollis e Futina"}
        WS{"Samoa"}
        XK{"Kosovë"}
        YE{"Jemen"}
        YT{"Majotë"}
        ZA{"Afrika e Jugut"}
        ZM{"Zambi"}
        ZW{"Zimbabve"}
        ZZ{"I panjohur"}
    }
    Countries%variant{
        CD{"Kongo (RDK)"}
        CG{"Kongo (Republika)"}
        FK{"Ishujt Folklandë (Ishujt Malvine)"}
        MK{"Maqedoni (IRJM)"}
    }
    CountriesShort{
        GB{"Mbretëria e Bashkuar"}
        HK{"Hong Kong"}
        MO{"Makao"}
        PS{"Palestinë"}
        US{"SHBA"}
    }
    Version{"2.1.8.9"}
}
