﻿// ***************************************************************************
// *
// * 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{"Wósebna zastojnstwowa cona 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{"Wósebna zastojnstwowa cona 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{"Palestinski awtonomny teritorium"}
        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"}
        HK{"Hongkong"}
        MO{"Macao"}
        PS{"Palestina"}
        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.12.94"}
}
