// ***************************************************************************
// *
// *   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\u0161kin" }
        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}",
    }
    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" }
    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" }
    }
}