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

hr {
    Version{"1.1.1"}
    CollationElements { 
	    Version { "2.0" }
		Sequence { 
                "& C < \u010D <<< \u010C < \u0107 <<< \u0106"
				"&\u0110 < d\u017E <<< D\u017E <<< D\u017D"
				"& L < lj, Lj <<< LJ"
				"& N < nj, Nj <<< NJ "
				"& S < \u0161 <<< \u0160"
				"& Z < \u017E <<< \u017D"			}
	}
    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",
        }
    }
    LocaleScript{  
                "Latn",  // ISO 15924 Name 
    }
}
