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

hr {
    CollationElements { 
	    Version { "1.0" }
		Override { "FALSE" }
		Sequence { "& \u200F = \u030C & \u0306 = \u030D & C < c\u030C , C\u030C"
        " < c\u0301 , C\u0301 & D < \u01F3 , \u01F2 , \u01F1 < dz , dZ , Dz , DZ < \u01C6"
        " , \u01C5 , \u01C4 < \u0111 , \u0110 & L < lj , lJ , Lj , LJ & N < nj , nJ , Nj"
        " , NJ & S < s\u030C , S\u030C & Z < z\u030C , Z\u030C " }
	}
    Countries { 
        HR { "Hrvatska" }
    }
    DateTimePatterns { 
            "HH:mm:ss z",
            "HH:mm:ss z",
            "HH:mm:ss",
            "HH:mm",
            "yyyy. MMMM dd",
            "yyyy. MMMM dd",
            "yyyy.MM.dd",
            "yyyy.MM.dd",
            "{1} {0}",
    }
    DayAbbreviations { 
            "ned",
            "pon",
            "uto",
            "sri",
            "\u010Det",
            "pet",
            "sub",
    }
    DayNames { 
            "nedjelja",
            "ponedjeljak",
            "utorak",
            "srijeda",
            "\u010Detvrtak",
            "petak",
            "subota",
    }
    Languages { 
        hr { "hrvatski" }
    }
    LocaleID { "1a" }
    LocaleString { "hr" }
    MonthAbbreviations { 
            "sij",
            "vel",
            "o\u017Eu",
            "tra",
            "svi",
            "lip",
            "srp",
            "kol",
            "ruj",
            "lis",
            "stu",
            "pro",
            "",
    }
    MonthNames { 
            "sije\u010Danj",
            "velja\u010Da",
            "o\u017Eujak",
            "travanj",
            "svibanj",
            "lipanj",
            "srpanj",
            "kolovoz",
            "rujan",
            "listopad",
            "studeni",
            "prosinac",
            "",
    }
    NumberElements { 
            ",",
            ".",
            ";",
            "%",
            "0",
            "#",
            "-",
            "E",
            "\u2030",
            "\u221E",
            "\uFFFD",
    }
    ShortLanguage { "hrv" }
    localPatternChars { "GanjkHmsSEDFwWxhKzAe" }
    zoneStrings { 
        {
                "Africa/Casablanca",
                "GMT",
                "GMT",
                "GMT",
                "GMT",
        }
    }
}
