﻿// ***************************************************************************
// *
// * Copyright (C) 2010 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/hu.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/hu.xml
 */
hu{
    Countries{
        001{"Világ"}
        002{"Afrika"}
        003{"Észak-Amerika"}
        005{"Dél-Amerika"}
        009{"Óceánia"}
        011{"Nyugat-Afrika"}
        013{"Közép-Amerika"}
        014{"Kelet-Afrika"}
        015{"Észak-Afrika"}
        017{"Közép-Afrika"}
        018{"Afrika déli része"}
        019{"Amerika"}
        021{"Amerika északi része"}
        029{"Karib-térség"}
        030{"Kelet-Ázsia"}
        034{"Dél-Ázsia"}
        035{"Délkelet-Ázsia"}
        039{"Dél-Európa"}
        053{"Ausztrália és Új-Zéland"}
        054{"Melanézia"}
        057{"Mikronéziai régió"}
        061{"Polinézia"}
        062{"Délközép-Ázsia"}
        142{"Ázsia"}
        143{"Közép-Ázsia"}
        145{"Nyugat-Ázsia"}
        150{"Európa"}
        151{"Kelet-Európa"}
        154{"Észak-Európa"}
        155{"Nyugat-Európa"}
        172{"Független Államok Közössége"}
        419{"Latin-Amerika és a Karib-térség"}
        830{"Csatorna-szigetek"}
        AC{"Ascension-sziget"}
        AD{"Andorra"}
        AE{"Egyesült Arab Emirátus"}
        AF{"Afganisztán"}
        AG{"Antigua és Barbuda"}
        AI{"Anguilla"}
        AL{"Albánia"}
        AM{"Örményország"}
        AN{"Holland Antillák"}
        AO{"Angola"}
        AQ{"Antarktisz"}
        AR{"Argentína"}
        AS{"Amerikai Szamoa"}
        AT{"Ausztria"}
        AU{"Ausztrália"}
        AW{"Aruba"}
        AX{"Aland-szigetek"}
        AZ{"Azerbajdzsán"}
        BA{"Bosznia-Hercegovina"}
        BB{"Barbados"}
        BD{"Banglades"}
        BE{"Belgium"}
        BF{"Burkina Faso"}
        BG{"Bulgária"}
        BH{"Bahrein"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Saint Barthélemy"}
        BM{"Bermuda"}
        BN{"Brunei"}
        BO{"Bolívia"}
        BR{"Brazília"}
        BS{"Bahama-szigetek"}
        BT{"Bhután"}
        BV{"Bouvet-sziget"}
        BW{"Botswana"}
        BY{"Fehéroroszország"}
        BZ{"Belize"}
        CA{"Kanada"}
        CC{"Kókusz-szigetek"}
        CD{"Kongó - Kinshasa"}
        CF{"Közép-afrikai Köztársaság"}
        CG{"Kongó - Brazzaville"}
        CH{"Svájc"}
        CI{"Elefántcsontpart"}
        CK{"Cook-szigetek"}
        CL{"Chile"}
        CM{"Kamerun"}
        CN{"Kína"}
        CO{"Kolumbia"}
        CP{"Clipperton-sziget"}
        CR{"Costa Rica"}
        CS{"Szerbia és Montenegró"}
        CU{"Kuba"}
        CV{"Zöld-foki Köztársaság"}
        CX{"Karácsony-szigetek"}
        CY{"Ciprus"}
        CZ{"Csehország"}
        DE{"Németország"}
        DG{"Diego Garcia"}
        DJ{"Dzsibuti"}
        DK{"Dánia"}
        DM{"Dominika"}
        DO{"Dominikai Köztársaság"}
        DZ{"Algéria"}
        EA{"Ceuta és Melilla"}
        EC{"Ecuador"}
        EE{"Észtország"}
        EG{"Egyiptom"}
        EH{"Nyugat-Szahara"}
        ER{"Eritrea"}
        ES{"Spanyolország"}
        ET{"Etiópia"}
        EU{"Európai Unió"}
        FI{"Finnország"}
        FJ{"Fidzsi"}
        FK{"Falkland-szigetek"}
        FM{"Mikronézia"}
        FO{"Feröer-szigetek"}
        FR{"Franciaország"}
        GA{"Gabon"}
        GB{"Egyesült Királyság"}
        GD{"Grenada"}
        GE{"Grúzia"}
        GF{"Francia Guyana"}
        GG{"Guernsey"}
        GH{"Ghána"}
        GI{"Gibraltár"}
        GL{"Grönland"}
        GM{"Gambia"}
        GN{"Guinea"}
        GP{"Guadeloupe"}
        GQ{"Egyenlítői-Guinea"}
        GR{"Görögország"}
        GS{"Dél Grúzia és a Déli Szendvics-szigetek"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinea-Bissau"}
        GY{"Guyana"}
        HK{"Hongkong SAR Kína"}
        HM{"Heard és McDonald Szigetek"}
        HN{"Honduras"}
        HR{"Horvátország"}
        HT{"Haiti"}
        HU{"Magyarország"}
        IC{"Kanári-szigetek"}
        ID{"Indonézia"}
        IE{"Írország"}
        IL{"Izrael"}
        IM{"Man-sziget"}
        IN{"India"}
        IO{"Brit Indiai-óceáni Terület"}
        IQ{"Irak"}
        IR{"Irán"}
        IS{"Izland"}
        IT{"Olaszország"}
        JE{"Jersey"}
        JM{"Jamaica"}
        JO{"Jordánia"}
        JP{"Japán"}
        KE{"Kenya"}
        KG{"Kirgizisztán"}
        KH{"Kambodzsa"}
        KI{"Kiribati"}
        KM{"Comore-szigetek"}
        KN{"Saint Kitts és Nevis"}
        KP{"Észak-Korea"}
        KR{"Dél-Korea"}
        KW{"Kuvait"}
        KY{"Kajmán-szigetek"}
        KZ{"Kazahsztán"}
        LA{"Laosz"}
        LB{"Libanon"}
        LC{"Santa Lucia"}
        LI{"Liechtenstein"}
        LK{"Srí Lanka"}
        LR{"Libéria"}
        LS{"Lesotho"}
        LT{"Litvánia"}
        LU{"Luxemburg"}
        LV{"Lettország"}
        LY{"Líbia"}
        MA{"Marokkó"}
        MC{"Monaco"}
        MD{"Moldova"}
        ME{"Montenegró"}
        MF{"Saint Martin"}
        MG{"Madagaszkár"}
        MH{"Marshall-szigetek"}
        MK{"Macedónia"}
        ML{"Mali"}
        MM{"Mianmar [Burma]"}
        MN{"Mongólia"}
        MO{"Makaó SAR Kína"}
        MP{"Északi Mariana-szigetek"}
        MQ{"Martinique"}
        MR{"Mauritánia"}
        MS{"Montserrat"}
        MT{"Málta"}
        MU{"Mauritius"}
        MV{"Maldív-szigetek"}
        MW{"Malawi"}
        MX{"Mexikó"}
        MY{"Malajzia"}
        MZ{"Mozambik"}
        NA{"Namíbia"}
        NC{"Új-Kaledónia"}
        NE{"Niger"}
        NF{"Norfolk-sziget"}
        NG{"Nigéria"}
        NI{"Nicaragua"}
        NL{"Hollandia"}
        NO{"Norvégia"}
        NP{"Nepál"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Új-Zéland"}
        OM{"Omán"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Francia Polinézia"}
        PG{"Pápua Új-Guinea"}
        PH{"Fülöp-szigetek"}
        PK{"Pakisztán"}
        PL{"Lengyelország"}
        PM{"Saint Pierre és Miquelon"}
        PN{"Pitcairn-szigetek"}
        PR{"Puerto Rico"}
        PS{"Palesztin Terület"}
        PT{"Portugália"}
        PW{"Palau"}
        PY{"Paraguay"}
        QA{"Katar"}
        QO{"Külső-Óceánia"}
        RE{"Reunion"}
        RO{"Románia"}
        RS{"Szerbia"}
        RU{"Oroszországi Föderáció"}
        RW{"Ruanda"}
        SA{"Szaúd-Arábia"}
        SB{"Salamon-szigetek"}
        SC{"Seychelle-szigetek"}
        SD{"Szudán"}
        SE{"Svédország"}
        SG{"Szingapúr"}
        SH{"Szent Helena"}
        SI{"Szlovénia"}
        SJ{"Spitzbergák és Jan Mayen-szigetek"}
        SK{"Szlovákia"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Szenegál"}
        SO{"Szomália"}
        SR{"Suriname"}
        ST{"Sao Tomé és Príncipe"}
        SV{"Salvador"}
        SY{"Szíria"}
        SZ{"Szváziföld"}
        TA{"Tristan da Cunha"}
        TC{"Turks- és Caicos-szigetek"}
        TD{"Csád"}
        TF{"Francia Déli Területek"}
        TG{"Togo"}
        TH{"Thaiföld"}
        TJ{"Tadzsikisztán"}
        TK{"Tokelau"}
        TL{"Kelet-Timor"}
        TM{"Türkmenisztán"}
        TN{"Tunézia"}
        TO{"Tonga"}
        TR{"Törökország"}
        TT{"Trinidad és Tobago"}
        TV{"Tuvalu"}
        TW{"Tajvan"}
        TZ{"Tanzánia"}
        UA{"Ukrajna"}
        UG{"Uganda"}
        UM{"Amerikai Csendes-óceáni Szigetek"}
        US{"Egyesült Államok"}
        UY{"Uruguay"}
        UZ{"Üzbegisztán"}
        VA{"Vatikán"}
        VC{"Saint Vincent és a Grenadine-szigetek"}
        VE{"Venezuela"}
        VG{"Brit Virgin-szigetek"}
        VI{"Amerikai Virgin-szigetek"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis- és Futuna-szigetek"}
        WS{"Szamoa"}
        YE{"Jemen"}
        YT{"Mayotte"}
        ZA{"Dél-afrikai Köztársaság"}
        ZM{"Zambia"}
        ZW{"Zimbabwe"}
        ZZ{"Ismeretlen vagy érvénytelen körzet"}
    }
    Version{"2.0.50.26"}
}
