﻿// ***************************************************************************
// *
// * 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{"Botë"}
        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 Jug-Lindore"}
        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ë e 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 Rika"}
        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{"Ishulli i Martinikut"}
        MR{"Mauritani"}
        MS{"Ishulli i Montseratit"}
        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{"Arabi 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{"Rajon i panjohur"}
    }
    CountriesShort{
        GB{"Mbretëria e Bashkuar"}
        HK{"Hong Kong"}
        MO{"Makao"}
        PS{"Palestinë"}
        US{"SHBA"}
    }
    Version{"2.0.98.52"}
}
