﻿// ***************************************************************************
// *
// * Copyright (C) 2007 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/sq.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/sq.xml
 */
sq{
    AuxExemplarCharacters{"[w]"}
    Countries{
        AD{"Andorrë"}
        AE{"Emiratet Arabe te Bashkuara"}
        AF{"Afganistan"}
        AG{"Antigua e Barbuda"}
        AL{"Shqipëria"}
        AM{"Armeni"}
        AO{"Angolë"}
        AR{"Argjentinë"}
        AT{"Austri"}
        AU{"Australi"}
        AZ{"Azerbajxhan"}
        BA{"Bosnja dhe Hercegovina"}
        BE{"Belgjikë"}
        BG{"Bullgari"}
        BH{"Bahrein"}
        BN{"Brunej"}
        BO{"Bolivi"}
        BR{"Brazili"}
        BT{"Butan"}
        BW{"Botsvana"}
        BY{"Bjellorusi"}
        CA{"Kanada"}
        CF{"Republika Qendrore e Afrikës"}
        CG{"Kongo"}
        CH{"Zvicër"}
        CI{"Bregu i Fildishtë"}
        CL{"Kili"}
        CM{"Kamerun"}
        CN{"Kinë"}
        CO{"Kolumbi"}
        CR{"Kosta Rika"}
        CS{"Serbië en Montenegro"}
        CU{"Kubë"}
        CV{"Kap Verde"}
        CY{"Qipro"}
        CZ{"Republika e Çekisë"}
        DE{"Gjermani"}
        DJ{"Xhibuti"}
        DK{"Danimarkë"}
        DM{"Dominikë"}
        DO{"Republika Dominikanë"}
        DZ{"Algjeri"}
        EC{"Ekuator"}
        EE{"Estoni"}
        EG{"Egjipt"}
        EH{"Saharaja Perëndimore"}
        ER{"Eritre"}
        ES{"Spanjë"}
        ET{"Etiopi"}
        FI{"Finlandë"}
        FJ{"Fixhi"}
        FM{"Mikronezi"}
        FR{"Francë"}
        GA{"Gjabon"}
        GB{"Mbretëria e Bashkuar"}
        GE{"Gjeorgji"}
        GH{"Ganë"}
        GM{"Gambi"}
        GN{"Guine"}
        GQ{"Guineja Ekuatoriale"}
        GR{"Greqi"}
        GT{"Guatemalë"}
        GW{"Guine Bisau"}
        GY{"Guajana"}
        HR{"Kroaci"}
        HU{"Hungari"}
        ID{"Indonezi"}
        IE{"Irlandë"}
        IL{"Izrael"}
        IN{"Indi"}
        IQ{"Irak"}
        IS{"Islandë"}
        IT{"Itali"}
        JM{"Xhamajkë"}
        JO{"Jordani"}
        JP{"Japoni"}
        KE{"Kenia"}
        KG{"Kirgistan"}
        KH{"Kamboxhi"}
        KI{"Qiribati"}
        KM{"Komore"}
        KN{"Saint Kitts e Nevis"}
        KP{"Koreja e Veriut"}
        KR{"Koreja e Jugut"}
        KW{"Kuvajt"}
        KZ{"Kazakistan"}
        LB{"Liban"}
        LI{"Lihtënshtajn"}
        LR{"Liberi"}
        LS{"Lesoto"}
        LT{"Lituani"}
        LU{"Luksemburg"}
        LV{"Letoni"}
        LY{"Libi"}
        MA{"Maroko"}
        MC{"Monako"}
        MD{"Moldavi"}
        MG{"Madagaskar"}
        MH{"Ishujt Marshall"}
        MK{"Maqedoni"}
        MN{"Mongoli"}
        MR{"Mauritani"}
        MT{"Maltë"}
        MV{"Maldivit"}
        MW{"Malavi"}
        MX{"Meksikë"}
        MY{"Malajzi"}
        MZ{"Mozambik"}
        NA{"Namibi"}
        NG{"Nigeri"}
        NI{"Nikaragua"}
        NL{"Vendet e Ulëta"}
        NO{"Norvegji"}
        NZ{"Zelanda e Re"}
        PG{"Papua Guineja e Re"}
        PH{"Filipine"}
        PL{"Poloni"}
        PT{"Portugali"}
        PY{"Paraguaj"}
        QA{"Katar"}
        RO{"Rumani"}
        RU{"Rusi"}
        RW{"Ruanda"}
        SA{"Arabia Saudite"}
        SB{"Ishujt Solomon"}
        SC{"Sishel"}
        SE{"Suedi"}
        SG{"Singapor"}
        SI{"Slloveni"}
        SK{"Sllovaki"}
        SL{"Siera Leone"}
        SO{"Somali"}
        ST{"Sao Tome e Prinsipe"}
        SY{"Siri"}
        SZ{"Svazilandë"}
        TD{"Çad"}
        TG{"Togo"}
        TH{"Tajlandë"}
        TJ{"Taxhikistan"}
        TN{"Tunisi"}
        TR{"Turqi"}
        TT{"Trinidad e Tobago"}
        TW{"Tajvan"}
        TZ{"Tanzani"}
        UA{"Ukrainë"}
        US{"Shtetet e Bashkuara të Amerikës"}
        UY{"Uruguaj"}
        VA{"Vatikan"}
        VC{"Saint Vincent e Grenadinet"}
        VE{"Venezuelë"}
        YE{"Jemen"}
        ZA{"Afrika e Jugut"}
        ZM{"Zambi"}
        ZW{"Zimbabve"}
    }
    Currencies{
        ALL{
            "Lek",
            "ALL",
        }
        BRL{
            "R$",
            "Real Brazilian",
        }
        CNY{
            "CNY",
            "Renminbi(Yuan) Kinez",
        }
        EUR{
            "€",
            "Euro",
        }
        GBP{
            "UK£",
            "Paund Sterlina Britanike",
        }
        INR{
            "=0#Rs.|1#Re.|1<Rs." /** (choice)  */,
            "Rupee indiane",
        }
        JPY{
            "JP¥",
            "Jeni Japonez",
        }
        RUB{
            "RUB",
            "Rubla ruse",
        }
        USD{
            "US$",
            "Dollar amerikan",
        }
    }
    ExemplarCharacters{
        "[a-c ç d {dh} e ë f g {gj} h-l {ll} m n {nj} o-r {rr} s {sh} t {th} u v x {x"
        "h} y z {zh}]"
    }
    Languages{
        ar{"Arabisht"}
        de{"Gjermanisht"}
        en{"Anglisht"}
        es{"Spanjisht"}
        fr{"Frengjisht"}
        hi{"Hindi"}
        it{"Italisht"}
        ja{"Japanisht"}
        pt{"Portugeze"}
        ru{"Rusisht"}
        sq{"shqipe"}
        zh{"Kineze"}
    }
    LocaleScript{
        "Latn",
    }
    NumberElements{
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "‰",
        "∞",
        "NaN",
        "+",
    }
    NumberPatterns{
        "#,##0.###",
        "¤#,##0.00",
        "#,##0%",
        "#E0",
    }
    Scripts{
        Latn{"Latine"}
    }
    Version{"1.64"}
    calendar{
        gregorian{
            AmPmMarkers{
                "PD",
                "MD",
            }
            DateTimePatterns{
                "h.mm.ss.a v",
                "h.mm.ss.a z",
                "h:mm:ss.a",
                "h.mm.a",
                "EEEE, dd MMMM yyyy",
                "dd MMMM yyyy",
                "yyyy-MM-dd",
                "yy-MM-dd",
                "{1} {0}",
            }
            dayNames{
                format{
                    abbreviated{
                        "Die",
                        "Hën",
                        "Mar",
                        "Mër",
                        "Enj",
                        "Pre",
                        "Sht",
                    }
                    wide{
                        "e diel",
                        "e hënë",
                        "e martë",
                        "e mërkurë",
                        "e enjte",
                        "e premte",
                        "e shtunë",
                    }
                }
                stand-alone{
                    narrow{
                        "D",
                        "H",
                        "M",
                        "M",
                        "E",
                        "P",
                        "S",
                    }
                }
            }
            eras{
                abbreviated{
                    "p.e.r.",
                    "n.e.r.",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Jan",
                        "Shk",
                        "Mar",
                        "Pri",
                        "Maj",
                        "Qer",
                        "Kor",
                        "Gsh",
                        "Sht",
                        "Tet",
                        "Nën",
                        "Dhj",
                    }
                    wide{
                        "janar",
                        "shkurt",
                        "mars",
                        "prill",
                        "maj",
                        "qershor",
                        "korrik",
                        "gusht",
                        "shtator",
                        "tetor",
                        "nëntor",
                        "dhjetor",
                    }
                }
                stand-alone{
                    narrow{
                        "J",
                        "S",
                        "M",
                        "P",
                        "M",
                        "Q",
                        "K",
                        "G",
                        "S",
                        "T",
                        "N",
                        "D",
                    }
                }
            }
        }
    }
}
