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

hr {
    CollationElements { "& \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 { "041a" }
    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",
        }
    }
}
