// ***************************************************************************
// *
// *   Copyright (C) 1997-2003, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************

sq {
    Version{ "2.0" }
    AmPmMarkers { 
        "PD",
        "MD",
    }
    collations {
      standard { 
        Version { "1.0" }
        Sequence { "[backwards 2]" }
      }
    }
    Countries { 
        AL { "Shqip\u00EBria" }
    }
    DateTimePatterns { 
        "h.mm.ss.a z",
        "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}",
    }
    DayAbbreviations { 
        "Die",
        "H\u00EBn",
        "Mar",
        "M\u00EBr",
        "Enj",
        "Pre",
        "Sht",
    }
    DayNames { 
        "e diel",
        "e h\u00EBn\u00EB",
        "e mart\u00EB",
        "e m\u00EBrkur\u00EB",
        "e enjte",
        "e premte",
        "e shtun\u00EB",
    }
    Eras { 
        "p.e.r.",
        "n.e.r.",
    }
    Languages { 
        sq { "shqipe" }
    }
    MonthAbbreviations { 
        "Jan",
        "Shk",
        "Mar",
        "Pri",
        "Maj",
        "Qer",
        "Kor",
        "Gsh",
        "Sht",
        "Tet",
        "N\u00EBn",
        "Dhj",
    }
    MonthNames { 
        "janar",
        "shkurt",
        "mars",
        "prill",
        "maj",
        "qershor",
        "korrik",
        "gusht",
        "shtator",
        "tetor",
        "n\u00EBntor",
        "dhjetor",
    }
    NumberElements { 
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
        "+",
    }
    localPatternChars { "GanjkHmsSEDFwWxhKzAe" }
    zoneStrings { 
        {
            "Europe/Tirane",
            "CET", // TODO: Replace with long Albanian name
            "CET",
            "CEST", // TODO: Replace with long Albanian name
            "CEST",
        }
    }
    LocaleScript{ 
        "Latn",  // ISO 15924 Name 
    }
    ExemplarCharacters { "[a-z \u00eb \u00e7]" }

    // Currency display names
    Currencies {
        ALL { "Lek", "ALL" }
    }
}
