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

sl {
    CollationElements { 
	    Version { "1.0" }
		Override { "FALSE" }
		Sequence { "& C < c\u030C , C\u030C < c\u0301 , C\u0301 & D < \u01F3"
        " , \u01F2 , \u01F1 < \u01C6 , \u01C5 , \u01C4 < \u0111 , \u0110 & L < \u0142 , "
        "\u0141 & N < nj , nJ , Nj , NJ & S < s\u030C , S\u030C < s\u0301, S\u0301 & Z <"
        " z\u030C , Z\u030C < z\u0301 , Z\u0301 < z\u0307 , Z\u0307 " }
	}
    Countries { 
        SI { "Slovenija" }
    }
    DateTimePatterns { 
            "H:mm:ss z",
            "H:mm:ss z",
            "H:mm:ss",
            "H:mm",
            "EEEE, yyyy, MMMM d",
            "EEEE, yyyy, MMMM d",
            "yyyy.M.d",
            "y.M.d",
            "{1} {0}",
    }
    DayAbbreviations { 
            "Ned",
            "Pon",
            "Tor",
            "Sre",
            "\u010Cet",
            "Pet",
            "Sob",
    }
    DayNames { 
            "Nedelja",
            "Ponedeljek",
            "Torek",
            "Sreda",
            "\u010Cetrtek",
            "Petek",
            "Sobota",
    }
    Eras { 
            "pr.n.\u0161.",
            "po Kr.",
    }
    Languages { 
        sl { "Sloven\u0161\u010Dina" }
    }
    LocaleID { "24" }
    LocaleString { "sl" }
    MonthAbbreviations { 
            "jan",
            "feb",
            "mar",
            "apr",
            "maj",
            "jun",
            "jul",
            "avg",
            "sep",
            "okt",
            "nov",
            "dec",
            "",
    }
    MonthNames { 
            "januar",
            "februar",
            "marec",
            "april",
            "maj",
            "junij",
            "julij",
            "avgust",
            "september",
            "oktober",
            "november",
            "december",
            "",
    }
    NumberElements { 
            ",",
            ".",
            ";",
            "%",
            "0",
            "#",
            "-",
            "E",
            "\u2030",
            "\u221E",
            "\uFFFD",
    }
    ShortLanguage { "slv" }
    localPatternChars { "GanjkHmsSEDFwWxhKzAe" }
    zoneStrings { 
        {
                "Africa/Casablanca",
                "GMT",
                "GMT",
                "GMT",
                "GMT",
        }
    }
}
