﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/dsb.xml
// *
// ***************************************************************************
dsb{
    Countries{
        001{"swět"}
        002{"Afrika"}
        003{"Pódpołnocna Amerika"}
        005{"Pódpołdnjowa Amerika"}
        009{"Oceaniska"}
        011{"Pódwjacorna Afrika"}
        013{"Srjejźna Amerika"}
        014{"pódzajtšna Afrika"}
        015{"pódpołnocna Afrika"}
        017{"srjejźna Afrika"}
        018{"pódpołdnjowa Afrika"}
        019{"Amerika"}
        021{"pódpołnocny ameriski kontinent"}
        029{"Karibiska"}
        030{"pódzajtšna Azija"}
        034{"pódpołdnjowa Azija"}
        035{"krotkozajtšna Azija"}
        039{"pódpołdnjowa Europa"}
        053{"Awstralazija"}
        054{"Melaneziska"}
        057{"Mikroneziska (kupowy region)"}
        061{"Polyneziska"}
        142{"Azija"}
        143{"centralna Azija"}
        145{"pódwjacorna Azija"}
        150{"Europa"}
        151{"pódzajtšna Europa"}
        154{"pódpołnocna Europa"}
        155{"pódwjacorna Europa"}
        419{"Łatyńska Amerika"}
        AC{"Ascension"}
        AD{"Andorra"}
        AE{"Zjadnośone arabiske emiraty"}
        AF{"Afghanistan"}
        AG{"Antigua a Barbuda"}
        AI{"Anguilla"}
        AL{"Albańska"}
        AM{"Armeńska"}
        AO{"Angola"}
        AQ{"Antarktis"}
        AR{"Argentinska"}
        AS{"Ameriska Samoa"}
        AT{"Awstriska"}
        AU{"Awstralska"}
        AW{"Aruba"}
        AX{"Åland"}
        AZ{"Azerbajdžan"}
        BA{"Bosniska a Hercegowina"}
        BB{"Barbados"}
        BD{"Bangladeš"}
        BE{"Belgiska"}
        BF{"Burkina Faso"}
        BG{"Bulgarska"}
        BH{"Bahrain"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"St. Barthélemy"}
        BM{"Bermudy"}
        BN{"Brunei"}
        BO{"Boliwiska"}
        BQ{"Karibiska Nižozemska"}
        BR{"Brazilska"}
        BS{"Bahamy"}
        BT{"Bhutan"}
        BV{"Bouvetowa kupa"}
        BW{"Botswana"}
        BY{"Běłoruska"}
        BZ{"Belize"}
        CA{"Kanada"}
        CC{"Kokosowe kupy"}
        CD{"Kongo-Kinshasa"}
        CF{"Centralnoafriska republika"}
        CG{"Kongo-Brazzaville"}
        CH{"Šwicarska"}
        CI{"Côte d’Ivoire"}
        CK{"Cookowe kupy"}
        CL{"Chilska"}
        CM{"Kamerun"}
        CN{"China"}
        CO{"Kolumbiska"}
        CP{"Clippertonowa kupa"}
        CR{"Kosta Rika"}
        CU{"Kuba"}
        CV{"Kap Verde"}
        CW{"Curaçao"}
        CX{"Gódowne kupy"}
        CY{"Cypriska"}
        CZ{"Česka republika"}
        DE{"Nimska"}
        DG{"Diego Garcia"}
        DJ{"Džibuti"}
        DK{"Dańska"}
        DM{"Dominika"}
        DO{"Dominikańska republika"}
        DZ{"Algeriska"}
        EA{"Ceuta a Melilla"}
        EC{"Ekwador"}
        EE{"Estniska"}
        EG{"Egyptojska"}
        EH{"Pódwjacorna Sahara"}
        ER{"Eritreja"}
        ES{"Špańska"}
        ET{"Etiopiska"}
        EU{"Europska unija"}
        FI{"Finska"}
        FJ{"Fidži"}
        FK{"Falklandske kupy"}
        FM{"Mikroneziska"}
        FO{"Färöje"}
        FR{"Francojska"}
        GA{"Gabun"}
        GB{"Zjadnośone kralejstwo"}
        GD{"Grenada"}
        GE{"Georgiska"}
        GF{"Francojska Guyana"}
        GG{"Guernsey"}
        GH{"Ghana"}
        GI{"Gibraltar"}
        GL{"Grönlandska"}
        GM{"Gambija"}
        GN{"Gineja"}
        GP{"Guadeloupe"}
        GQ{"Ekwatorialna Gineja"}
        GR{"Grichiska"}
        GS{"Pódpołdnjowa Georgiska a Pódpołdnjowe Sandwichowe kupy"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Gineja-Bissau"}
        GY{"Guyana"}
        HK{"Hongkong"}
        HM{"Heardowa kupa a McDonaldowe kupy"}
        HN{"Honduras"}
        HR{"Chorwatska"}
        HT{"Haiti"}
        HU{"Hungorska"}
        IC{"Kanariske kupy"}
        ID{"Indoneziska"}
        IE{"Irska"}
        IL{"Israel"}
        IM{"Man"}
        IN{"Indiska"}
        IO{"Britiski indiskooceaniski teritorium"}
        IQ{"Irak"}
        IR{"Iran"}
        IS{"Islandska"}
        IT{"Italska"}
        JE{"Jersey"}
        JM{"Jamaika"}
        JO{"Jordaniska"}
        JP{"Japańska"}
        KE{"Kenia"}
        KG{"Kirgizistan"}
        KH{"Kambodža"}
        KI{"Kiribati"}
        KM{"Komory"}
        KN{"St. Kitts a Nevis"}
        KP{"Pódpołnocna Koreja"}
        KR{"Pódpołdnjowa Koreja"}
        KW{"Kuwait"}
        KY{"Kajmaniske kupy"}
        KZ{"Kazachstan"}
        LA{"Laos"}
        LB{"Libanon"}
        LC{"St. Lucia"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Liberija"}
        LS{"Lesotho"}
        LT{"Litawska"}
        LU{"Luxemburgska"}
        LV{"Letiska"}
        LY{"Libyska"}
        MA{"Marokko"}
        MC{"Monaco"}
        MD{"Moldawska"}
        ME{"Carna Góra"}
        MF{"St. Martin"}
        MG{"Madagaskar"}
        MH{"Marshallowe kupy"}
        MK{"Makedońska"}
        ML{"Mali"}
        MM{"Myanmar"}
        MN{"Mongolska"}
        MO{"Macao"}
        MP{"Pódpołnocne Mariany"}
        MQ{"Martinique"}
        MR{"Mawretańska"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauritius"}
        MV{"Malediwy"}
        MW{"Malawi"}
        MX{"Mexiko"}
        MY{"Malajzija"}
        MZ{"Mosambik"}
        NA{"Namibija"}
        NC{"Nowa Kaledoniska"}
        NE{"Niger"}
        NF{"Norfolkowa kupa"}
        NG{"Nigerija"}
        NI{"Nikaragua"}
        NL{"Nižozemska"}
        NO{"Norwegska"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Nowoseelandska"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Francojska Polyneziska"}
        PG{"Papua-Neuguinea"}
        PH{"Filipiny"}
        PK{"Pakistan"}
        PL{"Pólska"}
        PM{"St. Pierre a Miquelon"}
        PN{"Pitcairnowe kupy"}
        PR{"Puerto Rico"}
        PS{"Palestina"}
        PT{"Portugalska"}
        PW{"Palau"}
        PY{"Paraguay"}
        QA{"Katar"}
        QO{"wenkowna Oceaniska"}
        RE{"Réunion"}
        RO{"Rumuńska"}
        RS{"Serbiska"}
        RU{"Ruska"}
        RW{"Ruanda"}
        SA{"Saudi-Arabiska"}
        SB{"Salomony"}
        SC{"Seychelle"}
        SD{"Sudan"}
        SE{"Šwedska"}
        SG{"Singapur"}
        SH{"St. Helena"}
        SI{"Słowjeńska"}
        SJ{"Svalbard a Jan Mayen"}
        SK{"Słowakska"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalija"}
        SR{"Surinamska"}
        SS{"Pódpołdnjowy Sudan"}
        ST{"São Tomé a Príncipe"}
        SV{"El Salvador"}
        SX{"Sint Maarten"}
        SY{"Syriska"}
        SZ{"Swasiska"}
        TA{"Tristan da Cunha"}
        TC{"Turks a Caicos kupy"}
        TD{"Čad"}
        TF{"Francojski pódpołdnjowy a antarktiski teritorium"}
        TG{"Togo"}
        TH{"Thailandska"}
        TJ{"Tadźikistan"}
        TK{"Tokelau"}
        TL{"Timor-Leste"}
        TM{"Turkmeniska"}
        TN{"Tuneziska"}
        TO{"Tonga"}
        TR{"Turkojska"}
        TT{"Trinidad a Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwan"}
        TZ{"Tansanija"}
        UA{"Ukraina"}
        UG{"Uganda"}
        UM{"Ameriska Oceaniska"}
        US{"Zjadnośone staty Ameriki"}
        UY{"Uruguay"}
        UZ{"Uzbekistan"}
        VA{"Vatikańske město"}
        VC{"St. Vincent a Grenadiny"}
        VE{"Venezuela"}
        VG{"Britiske kněžniske kupy"}
        VI{"Ameriske kněžniske kupy"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis a Futuna"}
        WS{"Samoa"}
        XK{"Kosowo"}
        YE{"Jemen"}
        YT{"Mayotte"}
        ZA{"Pódpołdnjowa Afrika (Republika)"}
        ZM{"Sambija"}
        ZW{"Simbabwe"}
        ZZ{"njeznaty region"}
    }
    Countries%short{
        GB{"UK"}
        US{"USA"}
    }
    Countries%variant{
        CD{"Kongo (Demokratiska republika)"}
        CG{"Kongo (Republika)"}
        CI{"Słonowokósćowy pśibrjog"}
        FK{"Falklandske kupy (Malwiny)"}
        MK{"Makedońska (PRJ)"}
        TL{"Pódzajtšny Timor"}
    }
    Version{"2.1.19.14"}
}
