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

cs {
    Version{ "3.0" }
    AmPmMarkers { 
        "dop.",
        "odp.",
    }
    collations {
      standard { 
        Version { "1.0" }
        Sequence { "& C < c\u030C <<< C\u030C& H < "
        "ch <<< cH <<< Ch <<< CH & R < r\u030C <<< R\u030C& S < s\u030C <<< S\u030C& Z < z\u030C <<<"
        " Z\u030C" }
      }
    }
    Countries {
        Fallback{"en"}
        //AD { "Andorra" }
        AE { "Spojen\u00E9 arabsk\u00E9 emir\u00E1ty" }
        AF { "Afgh\u00E1nist\u00E1n" }
        AG { "Antigua a Barbuda" }
        AI { "Anguila" }
        AL { "Alb\u00E1nie" }
        AM { "Arm\u00E9nie" }
        AN { "Nizozemsk\u00E9 Antily" }
        //AO { "Angola" }
        AQ { "Antarktida" }
        //AR { "Argentina" }
        AS { "Americk\u00E1 Samoa" }
        AT { "Rakousko" }
        AU { "Austr\u00E1lie" }
        //AW { "Aruba" }
        AZ { "\u00C1zerb\u00E1jd\u017E\u00E1n" }
        BA { "Bosna a Hercegovina" }
        //BB { "Barbados" }
        BD { "Banglad\u00E9\u0161" }
        BE { "Belgie" }
        //BF { "Burkina Faso" }
        BG { "Bulharsko" }
        BH { "Bahrajn" }
        //BI { "Burundi" }
        //BJ { "Benin" }
        BM { "Bermudy" }
        BN { "Brunej Darussalam" }
        BO { "Bol\u00EDvie" }
        BR { "Braz\u00EDlie" }
        BS { "Bahamy" }
        BT { "Bh\u00FAt\u00E1n" }
        BV { "Ostrov Bouvet" }
        //BW { "Botswana" }
        BY { "B\u011Blorusko" }
        //BZ { "Belize" }
        CA { "Kanada" }
        CC { "Kokosov\u00E9 ostrovy" }
        CD { "Kongo, demokratick\u00E1 republika" }
        CF { "St\u0159edoafrick\u00E1 republika" }
        CG { "Kongo" }
        CH { "\u0160v\u00FDcarsko" }
        CI { "Pob\u0159e\u017E\u00ED slonoviny" }
        CK { "Cookovy ostrovy" }
        //CL { "Chile" }
        CM { "Kamerun" }
        CN { "\u010C\u00EDna" }
        CO { "Kolumbie" }
        CR { "Kostarika" }
        CU { "Kuba" }
        CV { "Kapverdy" }
        CX { "V\u00E1no\u010Dn\u00ED ostrovy" }
        CY { "Kypr" }
        CZ { "\u010Cesk\u00E1 republika" }
        DE { "N\u011Bmecko" }
        DJ { "D\u017Eibuti" }
        DK { "D\u00E1nsko" }
        DM { "Dominika" }
        DO { "Dominik\u00E1nsk\u00E1 republika" }
        DZ { "Al\u017E\u00EDrsko" }
        EC { "Ekv\u00E1dor" }
        EE { "Estonsko" }
        //EG { "Egypt" }
        EH { "Z\u00E1padn\u00ED Sahara" }
        //ER { "Eritrea" }
        ES { "\u0160pan\u011Blsko" }
        ET { "Etiopie" }
        FI { "Finsko" }
        FJ { "Fid\u017Ei" }
        FK { "Falklandsk\u00E9 ostrovy" }
        FM { "Mikron\u00E9sie, federativn\u00ED st\u00E1t" }
        FO { "Faersk\u00E9 ostrovy" }
        FR { "Francie" }
        //GA { "Gabon" }
        GB { "Velk\u00E1 Brit\u00E1nie" }
        //GD { "Grenada" }
        GE { "Gruzie" }
        GF { "Francouzsk\u00E1 Guyana" }
        //GH { "Ghana" }
        //GI { "Gibraltar" }
        GL { "Gr\u00F3nsko" }
        GM { "Gambie" }
        //GN { "Guinea" }
        //GP { "Guadeloupe" }
        GQ { "Rovn\u00EDkov\u00E1 Guinea" }
        GR { "\u0158ecko" }
        GS { "Ji\u017En\u00ED Georgie a Ji\u017En\u00ED Sandwichovy ostrovy" }
        //GT { "Guatemala" }
        //GU { "Guam" }
        //GW { "Guinea-Bissau" }
        //GY { "Guyana" }
        HK { "Hongkong, zvl\u00E1\u0161tn\u00ED administrativn\u00ED oblast \u010C\u00EDny" }
        HM { "Ostrovy Heard a McDonald" }
        //HN { "Honduras" }
        HR { "Chorvatsko" }
        //HT { "Haiti" }
        HU { "Ma\u010Farsko" }
        ID { "Indon\u00E9sie" }
        IE { "Irsko" }
        IL { "Izrael" }
        IN { "Indie" }
        IO { "Britsk\u00E9 \u00FAzem\u00ED v Indick\u00E9m oce\u00E1nu" }
        IQ { "Ir\u00E1k" }
        IR { "\u00CDr\u00E1n" }
        IS { "Island" }
        IT { "It\u00E1lie" }
        JM { "Jamajka" }
        JO { "Jord\u00E1nsko" }
        JP { "Japonsko" }
        KE { "Ke\u0148a" }
        KG { "Kyrgyzst\u00E1n" }
        KH { "Kambod\u017Ea" }
        //KI { "Kiribati" }
        KM { "Komory" }
        KN { "Svat\u00FD Kitts a Nevis" }
        KP { "Severn\u00ED Korea" } // alternate name { "Korea, lidov\u011B demokratick\u00E1 republika" }
        KR { "Ji\u017En\u00ED Korea" } // alternate name { "Korea, republika" }
        KW { "Kuvajt" }
        KY { "Kajmansk\u00E9 ostrovy" }
        KZ { "Kazachst\u00E1n" }
        LA { "Lidov\u011B demokratick\u00E1 republika Laos" }
        LB { "Libanon" }
        LC { "Svat\u00E1 Lucie" }
        LI { "Lichten\u0161tejnsko" }
        LK { "Sr\u00ED Lanka" }
        LR { "Lib\u00E9rie" }
        //LS { "Lesotho" }
        LT { "Litva" }
        LU { "Lucembursko" }
        LV { "Loty\u0161sko" }
        LY { "Libye" }    // alternate name { "Libye" }
        MA { "Maroko" }
        MC { "Monako" }
        MD { "Moldavsko, republika" }
        MG { "Madagaskar" }
        MH { "Marshallovy ostrovy" }
        //MK { "Makedonie, republika" }
        //ML { "Mali" }
        MM { "Myanmar (Burma)" }
        MN { "Mongolsko" }
        //MO { "\u010C\u00EDna, zvl\u00E1\u0161tn\u00ED administrativn\u00ED oblast \u010C\u00EDny" }
        MP { "Severn\u00ED Mariany" }
        MQ { "Martinik" }
        MR { "Maurit\u00E1nie" }
        //MS { "Montserrat" }
        //MT { "Malta" }
        MU { "Mauricius" }
        MV { "Maladivy" }
        //MW { "Malawi" }
        MX { "Mexiko" }
        MY { "Malajsie" }
        MZ { "Mosambik" }
        NA { "Namibie" }
        NC { "Nov\u00E1 Kaledonie" }
        //NE { "Niger" }
        NF { "Norfolk" }
        NG { "Nig\u00E9rie" }
        NI { "Nikaragua" }
        NL { "Nizozemsko" }
        NO { "Norsko" }
        NP { "Nep\u00E1l" }
        //NR { "Nauru" }
        //NU { "Niue" }
        NZ { "Nov\u00FD Z\u00E9land" }
        OM { "Om\u00E1n" }
        //PA { "Panama" }
        //PE { "Peru" }
        PF { "Francouzsk\u00E1 Polyn\u00E9sie" }
        PG { "Papua-Nov\u00E1 Guinea" }
        PH { "Filip\u00EDny" }
        PK { "P\u00E1kist\u00E1n" }
        PL { "Polsko" }
        PM { "Svat\u00FD Pierre a Miquelon" }
        //PN { "Pitcairn" }
        PR { "Portoriko" }
        //PS { "Palestinsk\u00E9 \u00FAzem\u00ED" }
        PT { "Portugalsko" }
        //PW { "Palau" }
        //PY { "Paraguay" }
        QA { "Katar" }
        //RE { "R\u00E9union" }
        RO { "Rumunsko" }
        RU { "Rusko" }
        //RW { "Rwanda" }
        SA { "Sa\u00FAdsk\u00E1 Ar\u00E1bie" }
        SB { "\u0160alamounovy ostrovy" }
        SC { "Seychely" }
        SD { "S\u00FAd\u00E1n" }
        SE { "\u0160v\u00E9dsko" }
        SG { "Singapur" }
        SH { "Svat\u00E1 Helena" }
        SI { "Slovinsko" }
        SJ { "Svalbard a Jan Mayen" }
        SK { "Slovensko" }
        //SL { "Sierra Leone" }
        //SM { "San Marino" }
        //SN { "Senegal" }
        SO { "Som\u00E1lsko" }
        SR { "Surinam" }
        ST { "Svat\u00FD Tom\u00E1\u0161" }
        //SV { "El Salvador" }
        SY { "S\u00FDrie" }    // alternate name { "S\u00FDrie" }
        SZ { "Svazijsko" }
        TC { "Ostrovy Caicos a Turks" }
        TD { "\u010Cad" }
        TF { "Francouzsk\u00E1 ji\u017En\u00ED teritoria" }
        //TG { "Togo" }
        TH { "Thajsko" }
        TJ { "T\u00E1d\u017Eikist\u00E1n" }
        //TK { "Tokelau" }
        TL { "V\u00FDchodn\u00ED Timor" }
        TM { "Turkmenist\u00E1n" }
        TN { "Tunisko" }
        //TO { "Tonga" }
        TR { "Turecko" }
        TT { "Trinidad a Tobago" }
        //TV { "Tuvalu" }
        TW { "Tchaj-wan" }
        TZ { "Tanzanie" }
        UA { "Ukrajina" }
        //UG { "Uganda" }
        UM { "Men\u0161\u00ED odlehl\u00E9 ostrovy USA" }
        US { "Spojen\u00E9 st\u00E1ty" }
        //UY { "Uruguay" }
        UZ { "Uzbekist\u00E1n" }
        VA { "Svat\u00FD stolec" }
        VC { "Svat\u00FD Vincent a Grenadiny" }
        //VE { "Venezuela" }
        VG { "Britsk\u00E9 Panensk\u00E9 ostrovy" }
        VI { "Americk\u00E9 Panensk\u00E9 ostrovy" }
        //VN { "Vietnam" }
        //VU { "Vanuatu" }
        WF { "Wallis a Futuna" }
        //WS { "Samoa" }
        YE { "Jemen" }
        //YT { "Mayotte" }
        YU { "Jugosl\u00E1vie" }
        ZA { "Ji\u017En\u00ED Afrika" }
        ZM { "Zambie" }
        //ZW { "Zimbabwe" }
    }
    DateTimePatterns { 
        "H:mm:ss z",
        "H:mm:ss z",
        "H:mm:ss",
        "H:mm",
        "EEEE, d. MMMM yyyy",
        "d. MMMM yyyy",
        "d.M.yyyy",
        "d.M.yy",
        "{1} {0}",
    }
    DateTimeElements:intvector {
        2,
        1, // "Minimal Days in First Week" is unknown. Root value used instead
    }
    DayAbbreviations { 
        "ne",
        "po",
        "\u00FAt",
        "st",
        "\u010dt",
        "p\u00E1",
        "so",
    }
    DayNames { 
        "ned\u011Ble",
        "pond\u011Bl\u00ED",
        "\u00FAter\u00FD",
        "st\u0159eda",
        "\u010dtvrtek",
        "p\u00E1tek",
        "sobota",
    }
    Eras { 
        "p\u0159.Kr.",
        "po Kr.",
    }
    Languages {
        aa { "Afar\u0161tina" }
        ab { "Abch\u00E1z\u0161tina" }
        af { "Afrik\u00E1n\u0161tina" }
        am { "Amhar\u0161tina" }
        ar { "Arab\u0161tina" }
        as { "Assam\u00E9\u0161tina" }
        ay { "Aym\u00E1r\u0161tina" }
        az { "Azerbajd\u017E\u00E1n\u0161tina" }

        ba { "Baskir\u0161tina" }
        be { "B\u011Bloru\u0161tina" }
        bg { "Bulhar\u0161tina" }
        bh { "Bihar\u0161tina" }
        bi { "Bisl\u00E1m\u0161tina" }
        bn { "Beng\u00E1l\u0161tina" }
        bo { "Tibet\u0161tina" }
        br { "Breta\u0148\u0161tina" }

        ca { "Katal\u00E1n\u0161tina" }
        co { "Korsi\u010Dtina" }
        cs { "\u010Ce\u0161tina" }
        cy { "Vel\u0161tina" }

        da { "D\u00E1n\u0161tina" }
        de { "N\u011Bm\u010Dina" }
        dz { "Bh\u00FAt\u00E1n\u0161tina" }

        el { "\u0158e\u010Dtina" }
        en { "Angli\u010Dtina" }
        eo { "Esperanto" }
        es { "\u0160pan\u011Bl\u0161tina" }
        et { "Eston\u0161tina" }
        eu { "Baski\u010Dtina" } 

        fa { "Per\u0161tina" }
        fi { "Fin\u0161tina" }
        fj { "Fid\u017Ei" }
        fo { "Faer\u0161tina" }
        fr { "Francouz\u0161tina" }
        fy { "Fr\u00ED\u0161tina" }

        ga { "Ir\u0161tina" }
        gd { "Skotsk\u00E1 gal\u0161tina" }
        gl { "Hali\u010D\u0161tina" }
        gn { "Guaran\u0161tina" }
        gu { "Gujarat\u0161tina" }

        ha { "Hausa" }
        he { "Hebrej\u0161tina" }
        hi { "Hind\u0161tina" }
        hr { "Chorvat\u0161tina" }
        hu { "Ma\u010Far\u0161tina" }
        hy { "Arm\u00E9n\u0161tina" }

        
        ia { "Interlingua" }
        ie { "Interlingue" }
        id { "Indon\u00E9\u0161tina" }
        ik { "Inupiak\u0161tina" }
        //in { "Indon\u00E9\u0161tina" }
        is { "Island\u0161tina" }
        it { "Ital\u0161tina" }
        iu { "Inuktitut\u0161tina" }
        // iw { "Hebrej\u0161tina" }

        ja { "Japon\u0161tina" }
        //ji { "Jidi\u0161" }
        jv { "Jav\u00E1n\u0161tina" }
        

        ka { "Gruz\u00EDn\u0161tina" }
        kk { "Kazach\u0161tina" }
        kl { "Gr\u00F3n\u0161tina" }
        km { "Kambod\u017E\u0161tina" }
        kn { "Kannad\u0161tina" }      
        ko { "Korej\u0161tina" }
        ks { "Ka\u0161m\u00EDr\u0161tina" }
        ku { "Kurd\u0161tina" }
        ky { "Kirgiz\u0161tina" }

        la { "Latina" }
        ln { "Lingal\u0161tina" }
        lo { "Lao\u0161tina" }
        lt { "Litev\u0161tina" }
        lv { "Loty\u0161tina" }

        mg { "Malga\u0161tina" }
        mi { "Maor\u0161tina" }
        mk { "Makedon\u0161tina" }
        ml { "Malabar\u0161tina" }
        mn { "Mongol\u0161tina" }
        mo { "Moldav\u0161tina" }
        mr { "Marathi" }
        ms { "Malaj\u0161tina" }
        mt { "Malt\u0161tina" }
        my { "Barm\u0161tina" }

        na { "Nauru" }
        nl { "Holand\u0161tina" }
        ne { "Nep\u00E1l\u0161tina" }
        no { "Nor\u0161tina" }

        oc { "Occitan" }
        om { "Oromo (Afan)" }
        or { "Oriya" }

        pa { "Pa\u0148d\u017E\u00E1b\u0161tina" }
        pl { "Pol\u0161tina" }        
        ps { "Pashto (Pushto)" }
        pt { "Portugal\u0161tina" }

        qu { "Ke\u010Du\u00E1n\u0161tina" }

        rm { "R\u00E9torom\u00E1n\u0161tina" }
        rn { "Kirundi" }
        ro { "Rumun\u0161tina" }
        ru { "Ru\u0161tina" }
        rw { "Kinyarwand\u0161tina" }

        sa { "Sanskrt" }
        sd { "Sindhi" }
        sg { "Sangho" }
        sh { "Srbochorvat\u0161tina" }
        si { "Sinh\u00E1l\u0161tina" }
        sk { "Sloven\u0161tina" }
        sl { "Slovin\u0161tina" }
        sm { "Samoy\u0161tina" }
        sn { "Shona" }
        so { "Som\u00E1l\u0161tina" }
        sq { "Alb\u00E1n\u0161tina" }
        sr { "Srb\u0161tina" }
        ss { "Siswat\u0161tina" }
        st { "Sesotho" }
        su { "Sundan\u0161tina" }
        sv { "\u0160v\u00E9d\u0161tina" }
        sw { "Svahil\u0161tina" }

        ta { "Tamil\u0161tina" }
        te { "Telug\u0161tina" }
        tg { "T\u00E1d\u017Ei\u010Dtina" }
        th { "Thaj\u0161tina" }
        ti { "Tigrinij\u0161tina" }
        tk { "Turkmen\u0161tina" }
        tl { "Tagalog" }
        tn { "Setswan\u0161tina" }
        to { "Tonga" }
        tr { "Ture\u010Dtina" }
        ts { "Tsonga" }
        tt { "Tatar\u0161tina" }
        tw { "Twi" }

        ug { "Uighur\u0161tina" }
        uk { "Ukrajin\u0161tina" }
        ur { "Urd\u0161tina" }
        uz { "Uzbe\u010Dtina" }

        vi { "Vietnam\u0161tina" }
        vo { "Volapuk" }

        wo { "Wolof" }

        xh { "Xhosa" }

        yi { "Jidi\u0161" }
        yo { "Yoruba" }

        za { "Zhuang" }
        zu { "Zulu" }
        zh { "\u010C\u00EDn\u0161tina" }
       
    }
    MonthAbbreviations { 
        "I",
        "II",
        "III",
        "IV",
        "V",
        "VI",
        "VII",
        "VIII",
        "IX",
        "X",
        "XI",
        "XII",
    }
    MonthNames { 
        "leden",
        "\u00FAnor",
        "b\u0159ezen",
        "duben",
        "kv\u011Bten",
        "\u010Derven",
        "\u010Dervenec",
        "srpen",
        "z\u00E1\u0159\u00ED",
        "\u0159\u00EDjen",
        "listopad",
        "prosinec",
    }
    NumberElements { 
        ",",
        "\u00A0",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
        "+",
    }
    localPatternChars { "GuMtkHmsSEDFwWahKzUe" }

    LocaleScript{ 
        "Latn",  // ISO 15924 Name 
    }
    ExemplarCharacters { "[a-z \u00fd \u00e1 \u00e9 \u00ed \u00f3 \u00fa \u011b \u016f \u010d \u010f \u0148 \u0159 \u0161 \u0165 \u017e]" }

    // Currency display names
    Currencies {
        CZK { "K\u010D", "CZK" }
    }
}