﻿// ***************************************************************************
// *
// * Copyright (C) 2009 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/pl.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/pl.xml
 */
pl{
    Countries{
        001{"Świat"}
        002{"Afryka"}
        003{"Ameryka Północna"}
        005{"Ameryka Południowa"}
        009{"Oceania"}
        011{"Afryka Zachodnia"}
        013{"Ameryka Środkowa"}
        014{"Afryka Wschodnia"}
        015{"Afryka Północna"}
        017{"Afryka Środkowa"}
        018{"Afryka Południowa"}
        019{"Ameryka"}
        021{"Ameryka Północna - Kanada, USA"}
        029{"Karaiby"}
        030{"Azja Wschodnia"}
        034{"Azja Południowa"}
        035{"Azja Południowo-Wschodnia"}
        039{"Europa Południowa"}
        053{"Australia i Nowa Zelandia"}
        054{"Melanezja"}
        057{"Mikronezja"}
        061{"Polinezja"}
        062{"Azja Południowo-Środkowa"}
        142{"Azja"}
        143{"Azja Środkowa"}
        145{"Azja Zachodnia"}
        150{"Europa"}
        151{"Europa Wschodnia"}
        154{"Europa Północna"}
        155{"Europa Zachodnia"}
        172{"Wspólnota Niezależnych Państw"}
        419{"Ameryka Łacińska i Karaiby"}
        830{"Wyspy Normandzkie"}
        AD{"Andora"}
        AE{"Zjednoczone Emiraty Arabskie"}
        AF{"Afganistan"}
        AG{"Antigua i Barbuda"}
        AI{"Anguilla"}
        AL{"Albania"}
        AM{"Armenia"}
        AN{"Antyle Holenderskie"}
        AO{"Angola"}
        AQ{"Antarktyka"}
        AR{"Argentyna"}
        AS{"Samoa Amerykańskie"}
        AT{"Austria"}
        AU{"Australia"}
        AW{"Aruba"}
        AX{"Wyspy Alandzkie"}
        AZ{"Azerbejdżan"}
        BA{"Bośnia i Hercegowina"}
        BB{"Barbados"}
        BD{"Bangladesz"}
        BE{"Belgia"}
        BF{"Burkina Faso"}
        BG{"Bułgaria"}
        BH{"Bahrajn"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Saint Barthélemy"}
        BM{"Bermudy"}
        BN{"Brunei Darussalam"}
        BO{"Boliwia"}
        BR{"Brazylia"}
        BS{"Bahamy"}
        BT{"Bhutan"}
        BV{"Wyspa Bouveta"}
        BW{"Botswana"}
        BY{"Białoruś"}
        BZ{"Belize"}
        CA{"Kanada"}
        CC{"Wyspy Kokosowe"}
        CD{"Demokratyczna Republika Konga"}
        CF{"Republika Środkowoafrykańska"}
        CG{"Kongo"}
        CH{"Szwajcaria"}
        CI{"Wybrzeże Kości Słoniowej"}
        CK{"Wyspy Cooka"}
        CL{"Chile"}
        CM{"Kamerun"}
        CN{"Chiny"}
        CO{"Kolumbia"}
        CR{"Kostaryka"}
        CS{"Serbia i Czarnogóra"}
        CU{"Kuba"}
        CV{"Republika Zielonego Przylądka"}
        CX{"Wyspa Bożego Narodzenia"}
        CY{"Cypr"}
        CZ{"Czechy"}
        DE{"Niemcy"}
        DJ{"Dżibuti"}
        DK{"Dania"}
        DM{"Dominika"}
        DO{"Republika Dominikańska"}
        DZ{"Algieria"}
        EC{"Ekwador"}
        EE{"Estonia"}
        EG{"Egipt"}
        EH{"Sahara Zachodnia"}
        ER{"Erytrea"}
        ES{"Hiszpania"}
        ET{"Etiopia"}
        FI{"Finlandia"}
        FJ{"Fidżi"}
        FK{"Falklandy"}
        FM{"Federalne Stany Mikronezji"}
        FO{"Wyspy Owcze"}
        FR{"Francja"}
        GA{"Gabon"}
        GB{"Wielka Brytania"}
        GD{"Grenada"}
        GE{"Gruzja"}
        GF{"Gujana Francuska"}
        GG{"Wyspa Guernsey"}
        GH{"Ghana"}
        GI{"Gibraltar"}
        GL{"Grenlandia"}
        GM{"Gambia"}
        GN{"Gwinea"}
        GP{"Gwadelupa"}
        GQ{"Gwinea Równikowa"}
        GR{"Grecja"}
        GS{"Georgia Południowa i Sandwich Południowy"}
        GT{"Gwatemala"}
        GU{"Guam"}
        GW{"Gwinea Bissau"}
        GY{"Gujana"}
        HK{"Hongkong, Specjalny Region Administracyjny Chin"}
        HM{"Wyspy Heard i McDonalda"}
        HN{"Honduras"}
        HR{"Chorwacja"}
        HT{"Haiti"}
        HU{"Węgry"}
        ID{"Indonezja"}
        IE{"Irlandia"}
        IL{"Izrael"}
        IM{"Wyspa Man"}
        IN{"Indie"}
        IO{"Terytorium Brytyjskie Oceanu Indyjskiego"}
        IQ{"Irak"}
        IR{"Iran"}
        IS{"Islandia"}
        IT{"Włochy"}
        JE{"Wyspa Jersey"}
        JM{"Jamajka"}
        JO{"Jordania"}
        JP{"Japonia"}
        KE{"Kenia"}
        KG{"Kirgistan"}
        KH{"Kambodża"}
        KI{"Kiribati"}
        KM{"Komory"}
        KN{"Saint Kitts i Nevis"}
        KP{"Korea Północna"}
        KR{"Korea Południowa"}
        KW{"Kuwejt"}
        KY{"Kajmany"}
        KZ{"Kazachstan"}
        LA{"Laos"}
        LB{"Liban"}
        LC{"Saint Lucia"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Liberia"}
        LS{"Lesotho"}
        LT{"Litwa"}
        LU{"Luksemburg"}
        LV{"Łotwa"}
        LY{"Libia"}
        MA{"Maroko"}
        MC{"Monako"}
        MD{"Mołdawia"}
        ME{"Czarnogóra"}
        MF{"Sint Maarten"}
        MG{"Madagaskar"}
        MH{"Wyspy Marshalla"}
        MK{"Macedonia"}
        ML{"Mali"}
        MM{"Birma"}
        MN{"Mongolia"}
        MO{"Makau, Specjalny Region Administracyjny Chin"}
        MP{"Mariany Północne"}
        MQ{"Martynika"}
        MR{"Mauretania"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauritius"}
        MV{"Malediwy"}
        MW{"Malawi"}
        MX{"Meksyk"}
        MY{"Malezja"}
        MZ{"Mozambik"}
        NA{"Namibia"}
        NC{"Nowa Kaledonia"}
        NE{"Niger"}
        NF{"Norfolk"}
        NG{"Nigeria"}
        NI{"Nikaragua"}
        NL{"Holandia"}
        NO{"Norwegia"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Nowa Zelandia"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Polinezja Francuska"}
        PG{"Papua Nowa Gwinea"}
        PH{"Filipiny"}
        PK{"Pakistan"}
        PL{"Polska"}
        PM{"Saint-Pierre i Miquelon"}
        PN{"Pitcairn"}
        PR{"Portoryko"}
        PS{"Terytoria Palestyńskie"}
        PT{"Portugalia"}
        PW{"Palau"}
        PY{"Paragwaj"}
        QA{"Katar"}
        QO{"Oceania inne"}
        QU{"Unia Europejska"}
        RE{"Reunion"}
        RO{"Rumunia"}
        RS{"Serbia"}
        RU{"Rosja"}
        RW{"Rwanda"}
        SA{"Arabia Saudyjska"}
        SB{"Wyspy Salomona"}
        SC{"Seszele"}
        SD{"Sudan"}
        SE{"Szwecja"}
        SG{"Singapur"}
        SH{"Wyspa Świętej Heleny"}
        SI{"Słowenia"}
        SJ{"Svalbard i Jan Mayen"}
        SK{"Słowacja"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalia"}
        SR{"Surinam"}
        ST{"Wyspy Świętego Tomasza i Książęca"}
        SV{"Salwador"}
        SY{"Syria"}
        SZ{"Suazi"}
        TC{"Turks i Caicos"}
        TD{"Czad"}
        TF{"Francuskie Terytoria Południowe"}
        TG{"Togo"}
        TH{"Tajlandia"}
        TJ{"Tadżykistan"}
        TK{"Tokelau"}
        TL{"Timor Wschodni"}
        TM{"Turkmenistan"}
        TN{"Tunezja"}
        TO{"Tonga"}
        TR{"Turcja"}
        TT{"Trynidad i Tobago"}
        TV{"Tuvalu"}
        TW{"Tajwan"}
        TZ{"Tanzania"}
        UA{"Ukraina"}
        UG{"Uganda"}
        UM{"Dalekie Wyspy Mniejsze Stanów Zjednoczonych"}
        US{"Stany Zjednoczone"}
        UY{"Urugwaj"}
        UZ{"Uzbekistan"}
        VA{"Watykan"}
        VC{"Saint Vincent i Grenadyny"}
        VE{"Wenezuela"}
        VG{"Brytyjskie Wyspy Dziewicze"}
        VI{"Wyspy Dziewicze Stanów Zjednoczonych"}
        VN{"Wietnam"}
        VU{"Vanuatu"}
        WF{"Wallis i Futuna"}
        WS{"Samoa"}
        YE{"Jemen"}
        YT{"Majotta"}
        ZA{"Republika Południowej Afryki"}
        ZM{"Zambia"}
        ZW{"Zimbabwe"}
        ZZ{"Nieznany lub nieprawidłowy region"}
    }
    Version{"2.0.42.82"}
}
