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

hr {
    Version{"2.0"}
    collations {
      standard { 
        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 { 
        Fallback{ "en"}
        AD { "Andora" }
        AE { "Ujedinjeni Arapski Emirati" }
        AF { "Afganistan" }
        AG { "Antigua i Barbuda" }
        AI { "Anguila" }
        AL { "Albanija" }
        AM { "Armenija" }
        AN { "Nizozemski Antili" }
        //AO { "Angola" }
        AQ { "Antarktik" }
        //AR { "Argentina" }
        AS { "Ameri\u010Dka Samoa" }
        AT { "Austrija" }
        AU { "Australija" }
        //AW { "Aruba" }
        AZ { "Azerbajd\u017Ean" }
        BA { "Bosna i Hercegovina" }
        //BB { "Barbados" }
        BD { "Banglade\u0161" }
        BE { "Belgija" }
        //BF { "Burkina Faso" }
        BG { "Bugarska" }
        BH { "Bahrein" }
        //BI { "Burundi" }
        //BJ { "Benin" }
        //BM { "Bermuda" }
        BN { "Brunei Darussalam" }
        BO { "Bolivija" }
        //BR { "Brazil" }
        BS { "Bahami" }
        BT { "Butan" }
        BV { "Otok Bouvet" }
        BW { "Bocvana" }
        BY { "Bjelorusija" }
        //BZ { "Belize" }
        CA { "Kanada" }
        CC { "Kokos (Keeling) Otoci" }
        CD { "Kongo, Demokratska Republika" }
        CF { "Srednjoafri\u010Dka Republika" }
        CG { "Kongo" }
        CH { "\u0160vicarska" }
        CI { "Obala Bjelokosti" }
        CK { "Kukovi Otoci" }
        CL { "\u010Cile" }
        CM { "Kamerun" }
        CN { "Kina" }
        CO { "Kolumbija" }
        CR { "Kostarika" }
        CU { "Kuba" }
        CV { "Zeleni Rt" }
        CX { "Bo\u017Ei\u0107ni Otoci" }
        CY { "Cipar" }
        CZ { "\u010Ce\u0161ka Republika" }
        DE { "Njema\u010Dka" }
        DJ { "D\u017Eibuti" }
        DK { "Danska" }
        DM { "Dominika" }
        DO { "Dominikanska Republika" }
        DZ { "Al\u017Eir" }
        EC { "Ekvador" }
        EE { "Estonija" }
        EG { "Egipat" }
        EH { "Zapadna Sahara" }
        ER { "Eritreja" }
        ES { "\u0160panjolska" }
        ET { "Etiopija" }
        FI { "Finska" }
        FJ { "Fid\u017Ei" }
        FK { "Falklandski Otoci" }
        FM { "Mikronezija, Federalne Dr\u017Eave" }
        FO { "Farski Otoci" }
        FR { "Francuska" }
        //GA { "Gabon" }
        GB { "Ujedinjena Kraljevina" }
        //GD { "Grenada" }
        GE { "Gruzija" }
        GF { "Francuska Gvajana" }
        GH { "Gana" }
        //GI { "Gibraltar" }
        //GL { "Greenland" }
        GM { "Gambija" }
        GN { "Gvineja" }
        //GP { "Guadeloupe" }
        GQ { "Ekvatorska Gvineja" }
        GR { "Gr\u010Dka" }
        GS { "Ju\u017Ena Gruzija i Ju\u017Eni Sendvi\u010D Otoci" }
        GT { "Gvatemala" }
        //GU { "Guam" }
        GW { "Gvineja Bisau" }
        GY { "Gvajana" }
        HK { "Hong Kong S.A.R. Kine" }
        HM { "Heard Otok i McDonald Otoci" }
        //HN { "Honduras" }
        HR { "Hrvatska" }
        //HT { "Haiti" }
        HU { "Ma\u0111arska" }
        ID { "Indonezija" }
        IE { "Irska" }
        IL { "Izrael" }
        IN { "Indija" }
        IO { "Britanski Teritorij Indijskog Oceana" }
        IQ { "Irak" }
        IR { "Iran, Islamska Republika" }
        IS { "Island" }
        IT { "Italija" }
        JM { "Jamajka" }
        //JO { "Jordan" }
        //JP { "Japan" }
        KE { "Kenija" }
        KG { "Kirgistan" }
        KH { "Kambod\u017Ea" }
        //KI { "Kiribati" }
        KM { "Komori" }
        KN { "Sveti Kristofor i Nevis" }
        KP { "Koreja, Sjeverna" } // alternate name { "Koreja, Demokratska Narodna Republika" }
        KR { "Koreja, Ju\u017Ena" } // alternate name { "Koreja, Republika" }
        KW { "Kuvajt" }
        KY { "Kajmanski Otoci" }
        KZ { "Kazakstan" }
        LA { "Laoska Narodna Demokratska Republika" }
        LB { "Libanon" }
        LC { "Sveta Lucija" }
        LI { "Lihten\u0161tajn" }
        LK { "\u0160ri Lanka" }
        LR { "Liberija" }
        LS { "Lesoto" }
        LT { "Litva" }
        LU { "Luksemburg" }
        LV { "Latvija" }
        LY { "Libijska Arapska D\u017Eamahirija" }
        MA { "Maroko" }
        MC { "Monako" }
        MD { "Moldavija, Republika" }
        MG { "Madagaskar" }
        MH { "Mar\u0161alovi Otoci" }
        MK { "Makedonija, Republika" }
        //ML { "Mali" }
        MM { "Mijanma" }
        MN { "Mongolija" }
        MO { "Makao S.A.R. Kine" }
        MP { "Sjeverni Marianski Otoci" }
        MQ { "Martinik" }
        MR { "Mauritanija" }
        MS { "Montserat" }
        //MT { "Malta" }
        MU { "Mauricijus" }
        MV { "Maldivi" }
        MW { "Malavi" }
        MX { "Meksiko" }
        MY { "Malezija" }
        MZ { "Mozambik" }
        NA { "Namibija" }
        NC { "Nova Kaledonija" }
        //NE { "Niger" }
        NF { "Norfol\u0161ki Otoci" }
        NG { "Nigerija" }
        NI { "Nikaragva" }
        NL { "Nizozemska" }
        NO { "Norve\u0161ka" }
        //NP { "Nepal" }
        //NR { "Nauru" }
        //NU { "Niue" }
        NZ { "Novi Zeland" }
        //OM { "Oman" }
        //PA { "Panama" }
        //PE { "Peru" }
        PF { "Francuska Polinezija" }
        PG { "Papua Nova Gvineja" }
        PH { "Filipini" }
        //PK { "Pakistan" }
        PL { "Poljska" }
        PM { "Sveti Petar i Miguel" }
        //PN { "Pitcairn" }
        PR { "Portoriko" }
        PS { "Palestinska Teritoija" }
        //PT { "Portugal" }
        //PW { "Palau" }
        PY { "Paragvaj" }
        QA { "Katar" }
        RE { "Reunion" }
        RO { "Rumunjska" }
        RU { "Ruska Federacija" }
        RW { "Ruanda" }
        SA { "Saudijska Arabija" }
        SB { "Salamunovi Otoci" }
        SC { "Sej\u0161eli" }
        //SD { "Sudan" }
        SE { "\u0160vedska" }
        SG { "Singapur" }
        SH { "Sveta Helena" }
        SI { "Slovenija" }
        SJ { "Svalbard i Jan Mayen" }
        SK { "Slova\u010Dka" }
        SL { "Sijera Leone" }
        //SM { "San Marino" }
        //SN { "Senegal" }
        SO { "Somalija" }
        SR { "Surinam" }
        ST { "Sveti Toma i Prinsipe" }
        //SV { "El Salvador" }
        SY { "Sirija" } // alternate name { "Sirijska Arapska Republika" }
        SZ { "Svazi" }
        TC { "Turkski i Kaikos Otoci" }
        TD { "\u010Cad" }
        TF { "Francuske Ju\u017Ene Teritorije" }
        //TG { "Togo" }
        TH { "Tajland" }
        TJ { "Tad\u017Eikistan" }
        //TK { "Tokelau" }
        TL { "Isto\u010Dni Timor" }
        //TM { "Turkmenistan" }
        TN { "Tunis" }
        //TO { "Tonga" }
        TR { "Turska" }
        TT { "Trinidad i Tobago" }
        //TV { "Tuvalu" }
        TW { "Tajvan, Kineska Pokrajina" }
        TZ { "Tanzanija" }
        UA { "Ukrajina" }
        //UG { "Uganda" }
        UM { "Sjedinjene Dr\u017Eave Manji Vanjski Otoci" }
        US { "Sjedinjene Dr\u017Eave" }
        UY { "Urugvaj" }
        //UZ { "Uzbekistan" }
        VA { "Sveta Stolica (Dr\u017Eava Vatikanskog Grada)" }
        VC { "Sveti Vincent i Grenadini" }
        //VE { "Venezuela" }
        VG { "Britanski Djevi\u010Danski Otoci" }
        VI { "U.S. Djevi\u010Danski Otoci" }
        VN { "Vijetnam" }
        //VU { "Vanuatu" }
        WF { "Wallis i Futuna" }
        //WS { "Samoa" }
        YE { "Jemen" }
        YT { "Majote" }
        YU { "Jugoslavija" }
        ZA { "Ju\u017Ena Afrika" }
        ZM { "Zambija" }
        ZW { "Zimbabve" }
    }
    Languages {
        ar { "arapski" }
        bg { "bugarski" }
        cs { "\u010De\u0161ki" }
        da { "danski" }
        de { "njema\u010Dki" }
        el { "gr\u010Dki" }
        en { "engleski" }
        es { "\u0161panjolski" }
        et { "estonijski" }
        fi { "finski" }
        fr { "francuski" }
        he { "hebrejski" }
        hr { "hrvatski" }
        hu { "ma\u0111arski" }
        it { "talijanski" }
        ja { "japanski" }
        ko { "korejski" }
        lt { "litvanski" }
        lv { "latvijski" }
        nl { "nizozemski" }
        no { "norve\u0161ki" }
        pl { "poljski" }
        pt { "portugalski" }
        ro { "rumunjski" }
        ru { "ruski" }
        sk { "slova\u010Dki" }
        sl { "slovenski" }
        sv { "\u0161vedski" }
        tr { "turski" }
        zh { "kineski" }
        //zh_cn { "kineski (pojednostavljeni)" }
        //zh_tw { "kineski (tradicionalni)" }
    }
    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}",
    }
    DateTimeElements:intvector {
        2,
        1, // "Minimal Days in First Week" is unknown. Root value used instead
    }
    DayAbbreviations { 
        "ned",
        "pon",
        "uto",
        "sri",
        "\u010Det",
        "pet",
        "sub",
    }
    DayNames { 
        "nedjelja",
        "ponedjeljak",
        "utorak",
        "srijeda",
        "\u010Detvrtak",
        "petak",
        "subota",
    }
    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",
        ",",
        "+",
    }
    localPatternChars { "GanjkHmsSEDFwWxhKzAe" }

    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" }
    }
}