﻿// ***************************************************************************
// *
// * Copyright (C) 2011 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/cs.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/cs.xml
 */
cs{
    Countries{
        001{"Svět"}
        002{"Afrika"}
        003{"003"}
        005{"Jižní Amerika"}
        009{"Oceánie"}
        011{"Západní Afrika"}
        013{"Střední Amerika"}
        014{"Východní Afrika"}
        015{"Severní Afrika"}
        017{"Střední Afrika"}
        018{"Jižní Afrika"}
        019{"Amerika"}
        021{"Severní Amerika"}
        029{"Karibik"}
        030{"Východní Asie"}
        034{"Jižní Asie"}
        035{"Jihovýchodní Asie"}
        039{"Jižní Evropa"}
        053{"Austrálie a Nový Zéland"}
        054{"Melanésie"}
        057{"Mikronésie"}
        061{"Polynésie"}
        062{"Jižní a centrální Asie"}
        142{"Asie"}
        143{"Střední Asie"}
        145{"Západní Asie"}
        150{"Evropa"}
        151{"Východní Evropa"}
        154{"Severní Evropa"}
        155{"Západní Evropa"}
        172{"Společenství nezávislých států"}
        200{"Československo"}
        419{"Latinská Amerika a Karibské moře"}
        830{"Normanské ostrovy"}
        AC{"Ostrov Ascension"}
        AD{"Andorra"}
        AE{"Spojené arabské emiráty"}
        AF{"Afghánistán"}
        AG{"Antigua a Barbuda"}
        AI{"Anguila"}
        AL{"Albánie"}
        AM{"Arménie"}
        AN{"Nizozemské Antily"}
        AO{"Angola"}
        AQ{"Antarktida"}
        AR{"Argentina"}
        AS{"Americká Samoa"}
        AT{"Rakousko"}
        AU{"Austrálie"}
        AW{"Aruba"}
        AX{"Alandy"}
        AZ{"Ázerbájdžán"}
        BA{"Bosna a Hercegovina"}
        BB{"Barbados"}
        BD{"Bangladéš"}
        BE{"Belgie"}
        BF{"Burkina Faso"}
        BG{"Bulharsko"}
        BH{"Bahrajn"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Svatý Bartoloměj"}
        BM{"Bermudy"}
        BN{"Brunej Darussalam"}
        BO{"Bolívie"}
        BR{"Brazílie"}
        BS{"Bahamy"}
        BT{"Bhútán"}
        BV{"Ostrov Bouvet"}
        BW{"Botswana"}
        BY{"Bělorusko"}
        BZ{"Belize"}
        CA{"Kanada"}
        CC{"Kokosové ostrovy"}
        CD{"Kongo - Kinshasa"}
        CF{"Středoafrická republika"}
        CG{"Kongo - Brazzaville"}
        CH{"Švýcarsko"}
        CI{"Pobřeží slonoviny"}
        CK{"Cookovy ostrovy"}
        CL{"Chile"}
        CM{"Kamerun"}
        CN{"Čína"}
        CO{"Kolumbie"}
        CP{"Clippertonův ostrov"}
        CR{"Kostarika"}
        CS{"Srbsko a Černá Hora"}
        CU{"Kuba"}
        CV{"Kapverdy"}
        CX{"Vánoční ostrovy"}
        CY{"Kypr"}
        CZ{"Česká republika"}
        DE{"Německo"}
        DG{"Diego Garcia"}
        DJ{"Džibuti"}
        DK{"Dánsko"}
        DM{"Dominika"}
        DO{"Dominikánská republika"}
        DZ{"Alžírsko"}
        EA{"Ceuta a Melilla"}
        EC{"Ekvádor"}
        EE{"Estonsko"}
        EG{"Egypt"}
        EH{"Západní Sahara"}
        ER{"Eritrea"}
        ES{"Španělsko"}
        ET{"Etiopie"}
        EU{"Evropská unie"}
        FI{"Finsko"}
        FJ{"Fidži"}
        FK{"Falklandské ostrovy"}
        FM{"Mikronézie"}
        FO{"Faerské ostrovy"}
        FR{"Francie"}
        GA{"Gabon"}
        GB{"Velká Británie"}
        GD{"Grenada"}
        GE{"Gruzie"}
        GF{"Francouzská Guyana"}
        GG{"Guernsey"}
        GH{"Ghana"}
        GI{"Gibraltar"}
        GL{"Grónsko"}
        GM{"Gambie"}
        GN{"Guinea"}
        GP{"Guadeloupe"}
        GQ{"Rovníková Guinea"}
        GR{"Řecko"}
        GS{"Jižní Georgie a Jižní Sandwichovy ostrovy"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinea-Bissau"}
        GY{"Guyana"}
        HK{"Hongkong, zvláštní administrativní oblast Číny"}
        HM{"Ostrovy Heard a McDonald"}
        HN{"Honduras"}
        HR{"Chorvatsko"}
        HT{"Haiti"}
        HU{"Maďarsko"}
        IC{"Kanárské ostrovy"}
        ID{"Indonésie"}
        IE{"Irsko"}
        IL{"Izrael"}
        IM{"Ostrov Man"}
        IN{"Indie"}
        IO{"Britské území v Indickém oceánu"}
        IQ{"Irák"}
        IR{"Írán"}
        IS{"Island"}
        IT{"Itálie"}
        JE{"Jersey"}
        JM{"Jamajka"}
        JO{"Jordánsko"}
        JP{"Japonsko"}
        KE{"Keňa"}
        KG{"Kyrgyzstán"}
        KH{"Kambodža"}
        KI{"Kiribati"}
        KM{"Komory"}
        KN{"Svatý Kitts a Nevis"}
        KP{"Severní Korea"}
        KR{"Jižní Korea"}
        KW{"Kuvajt"}
        KY{"Kajmanské ostrovy"}
        KZ{"Kazachstán"}
        LA{"Lidově demokratická republika Laos"}
        LB{"Libanon"}
        LC{"Svatá Lucie"}
        LI{"Lichtenštejnsko"}
        LK{"Srí Lanka"}
        LR{"Libérie"}
        LS{"Lesotho"}
        LT{"Litva"}
        LU{"Lucembursko"}
        LV{"Lotyšsko"}
        LY{"Libye"}
        MA{"Maroko"}
        MC{"Monako"}
        MD{"Moldavsko"}
        ME{"Černá Hora"}
        MF{"Svatý Martin"}
        MG{"Madagaskar"}
        MH{"Marshallovy ostrovy"}
        MK{"Makedonie"}
        ML{"Mali"}
        MM{"Myanmar"}
        MN{"Mongolsko"}
        MO{"Zvláštní administrativní oblast Číny Macao"}
        MP{"Severní Mariany"}
        MQ{"Martinik"}
        MR{"Mauritánie"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauricius"}
        MV{"Maladivy"}
        MW{"Malawi"}
        MX{"Mexiko"}
        MY{"Malajsie"}
        MZ{"Mosambik"}
        NA{"Namibie"}
        NC{"Nová Kaledonie"}
        NE{"Niger"}
        NF{"Norfolk"}
        NG{"Nigérie"}
        NI{"Nikaragua"}
        NL{"Nizozemsko"}
        NO{"Norsko"}
        NP{"Nepál"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Nový Zéland"}
        OM{"Omán"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Francouzská Polynésie"}
        PG{"Papua-Nová Guinea"}
        PH{"Filipíny"}
        PK{"Pákistán"}
        PL{"Polsko"}
        PM{"Svatý Pierre a Miquelon"}
        PN{"Pitcairn"}
        PR{"Portoriko"}
        PS{"Palestinian Territory"}
        PT{"Portugalsko"}
        PW{"Palau"}
        PY{"Paraguay"}
        QA{"Katar"}
        QO{"Vnější Oceánie"}
        RE{"Réunion"}
        RO{"Rumunsko"}
        RS{"Srbsko"}
        RU{"Rusko"}
        RW{"Rwanda"}
        SA{"Saúdská Arábie"}
        SB{"Šalamounovy ostrovy"}
        SC{"Seychely"}
        SD{"Súdán"}
        SE{"Švédsko"}
        SG{"Singapur"}
        SH{"Svatá Helena"}
        SI{"Slovinsko"}
        SJ{"Svalbard a Jan Mayen"}
        SK{"Slovensko"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somálsko"}
        SR{"Surinam"}
        ST{"Svatý Tomáš"}
        SV{"El Salvador"}
        SY{"Sýrie"}
        SZ{"Svazijsko"}
        TA{"Tristan da Cunha"}
        TC{"Ostrovy Caicos a Turks"}
        TD{"Čad"}
        TF{"Francouzská jižní teritoria"}
        TG{"Togo"}
        TH{"Thajsko"}
        TJ{"Tádžikistán"}
        TK{"Tokelau"}
        TL{"Východní Timor"}
        TM{"Turkmenistán"}
        TN{"Tunisko"}
        TO{"Tonga"}
        TR{"Turecko"}
        TT{"Trinidad a Tobago"}
        TV{"Tuvalu"}
        TW{"Tchaj-wan"}
        TZ{"Tanzanie"}
        UA{"Ukrajina"}
        UG{"Uganda"}
        UM{"Menší odlehlé ostrovy USA"}
        US{"Spojené státy"}
        UY{"Uruguay"}
        UZ{"Uzbekistán"}
        VA{"Svatý stolec"}
        VC{"Svatý Vincent a Grenadiny"}
        VE{"Venezuela"}
        VG{"Britské Panenské ostrovy"}
        VI{"Americké Panenské ostrovy"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis a Futuna"}
        WS{"Samoa"}
        YE{"Jemen"}
        YT{"Mayotte"}
        ZA{"Jihoafrická republika"}
        ZM{"Zambie"}
        ZW{"Zimbabwe"}
        ZZ{"Neznámá nebo neplatná oblast"}
    }
    Version{"2.0.58.83"}
}
