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

hr {
    Version{"1.2"}
    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:int { 0x1a }
//    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",
        }
    }
    ExemplarCharacters { "[a-p r-v z \u0111 \u0107 \u010d \u017e \u0161 {lj} {nj} {d\u017e}]" }
//    LocaleScript:array {
//        "Latn"  // ISO 15924 Name 
//    }

    // Currency display names
    Currencies {
        HRK { "Kn", "HRK" }
    }
}
