﻿// ***************************************************************************
// *
// * Copyright (C) 2012 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/de.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/de.xml
 */
de{
    Countries{
        001{"Welt"}
        002{"Afrika"}
        003{"Nordamerika"}
        005{"Südamerika"}
        009{"Ozeanien"}
        011{"Westafrika"}
        013{"Mittelamerika"}
        014{"Ostafrika"}
        015{"Nordafrika"}
        017{"Zentralafrika"}
        018{"Südliches Afrika"}
        019{"Amerika"}
        021{"Nördliches Amerika"}
        029{"Karibik"}
        030{"Ostasien"}
        034{"Südasien"}
        035{"Südostasien"}
        039{"Südeuropa"}
        053{"Australien und Neuseeland"}
        054{"Melanesien"}
        057{"Mikronesisches Inselgebiet"}
        061{"Polynesien"}
        142{"Asien"}
        143{"Zentralasien"}
        145{"Westasien"}
        150{"Europa"}
        151{"Osteuropa"}
        154{"Nordeuropa"}
        155{"Westeuropa"}
        419{"Lateinamerika"}
        AC{"Ascension"}
        AD{"Andorra"}
        AE{"Vereinigte Arabische Emirate"}
        AF{"Afghanistan"}
        AG{"Antigua und Barbuda"}
        AI{"Anguilla"}
        AL{"Albanien"}
        AM{"Armenien"}
        AN{"Niederländische Antillen"}
        AO{"Angola"}
        AQ{"Antarktis"}
        AR{"Argentinien"}
        AS{"Amerikanisch-Samoa"}
        AT{"Österreich"}
        AU{"Australien"}
        AW{"Aruba"}
        AX{"Alandinseln"}
        AZ{"Aserbaidschan"}
        BA{"Bosnien und Herzegowina"}
        BB{"Barbados"}
        BD{"Bangladesch"}
        BE{"Belgien"}
        BF{"Burkina Faso"}
        BG{"Bulgarien"}
        BH{"Bahrain"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"St. Barthélemy"}
        BM{"Bermuda"}
        BN{"Brunei Darussalam"}
        BO{"Bolivien"}
        BR{"Brasilien"}
        BS{"Bahamas"}
        BT{"Bhutan"}
        BV{"Bouvetinsel"}
        BW{"Botsuana"}
        BY{"Belarus"}
        BZ{"Belize"}
        CA{"Kanada"}
        CC{"Kokosinseln"}
        CD{"Kongo-Kinshasa"}
        CF{"Zentralafrikanische Republik"}
        CG{"Kongo-Brazzaville"}
        CH{"Schweiz"}
        CI{"Côte d’Ivoire"}
        CK{"Cookinseln"}
        CL{"Chile"}
        CM{"Kamerun"}
        CN{"China"}
        CO{"Kolumbien"}
        CP{"Clipperton-Insel"}
        CR{"Costa Rica"}
        CS{"Serbien und Montenegro"}
        CU{"Kuba"}
        CV{"Kap Verde"}
        CX{"Weihnachtsinsel"}
        CY{"Zypern"}
        CZ{"Tschechische Republik"}
        DE{"Deutschland"}
        DG{"Diego Garcia"}
        DJ{"Dschibuti"}
        DK{"Dänemark"}
        DM{"Dominica"}
        DO{"Dominikanische Republik"}
        DZ{"Algerien"}
        EA{"Ceuta und Melilla"}
        EC{"Ecuador"}
        EE{"Estland"}
        EG{"Ägypten"}
        EH{"Westsahara"}
        ER{"Eritrea"}
        ES{"Spanien"}
        ET{"Äthiopien"}
        EU{"Europäische Union"}
        FI{"Finnland"}
        FJ{"Fidschi"}
        FK{"Falklandinseln"}
        FM{"Mikronesien"}
        FO{"Färöer"}
        FR{"Frankreich"}
        GA{"Gabun"}
        GB{"Vereinigtes Königreich"}
        GD{"Grenada"}
        GE{"Georgien"}
        GF{"Französisch-Guayana"}
        GG{"Guernsey"}
        GH{"Ghana"}
        GI{"Gibraltar"}
        GL{"Grönland"}
        GM{"Gambia"}
        GN{"Guinea"}
        GP{"Guadeloupe"}
        GQ{"Äquatorialguinea"}
        GR{"Griechenland"}
        GS{"Südgeorgien und die Südlichen Sandwichinseln"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinea-Bissau"}
        GY{"Guyana"}
        HK{"Sonderverwaltungszone Hongkong"}
        HM{"Heard- und McDonald-Inseln"}
        HN{"Honduras"}
        HR{"Kroatien"}
        HT{"Haiti"}
        HU{"Ungarn"}
        IC{"Kanarische Inseln"}
        ID{"Indonesien"}
        IE{"Irland"}
        IL{"Israel"}
        IM{"Isle of Man"}
        IN{"Indien"}
        IO{"Britisches Territorium im Indischen Ozean"}
        IQ{"Irak"}
        IR{"Iran"}
        IS{"Island"}
        IT{"Italien"}
        JE{"Jersey"}
        JM{"Jamaika"}
        JO{"Jordanien"}
        JP{"Japan"}
        KE{"Kenia"}
        KG{"Kirgisistan"}
        KH{"Kambodscha"}
        KI{"Kiribati"}
        KM{"Komoren"}
        KN{"St. Kitts und Nevis"}
        KP{"Demokratische Volksrepublik Korea"}
        KR{"Republik Korea"}
        KW{"Kuwait"}
        KY{"Kaimaninseln"}
        KZ{"Kasachstan"}
        LA{"Laos"}
        LB{"Libanon"}
        LC{"St. Lucia"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Liberia"}
        LS{"Lesotho"}
        LT{"Litauen"}
        LU{"Luxemburg"}
        LV{"Lettland"}
        LY{"Libyen"}
        MA{"Marokko"}
        MC{"Monaco"}
        MD{"Republik Moldau"}
        ME{"Montenegro"}
        MF{"St. Martin"}
        MG{"Madagaskar"}
        MH{"Marshallinseln"}
        MK{"Mazedonien"}
        ML{"Mali"}
        MM{"Myanmar"}
        MN{"Mongolei"}
        MO{"Sonderverwaltungszone Macao"}
        MP{"Nördliche Marianen"}
        MQ{"Martinique"}
        MR{"Mauretanien"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauritius"}
        MV{"Malediven"}
        MW{"Malawi"}
        MX{"Mexiko"}
        MY{"Malaysia"}
        MZ{"Mosambik"}
        NA{"Namibia"}
        NC{"Neukaledonien"}
        NE{"Niger"}
        NF{"Norfolkinsel"}
        NG{"Nigeria"}
        NI{"Nicaragua"}
        NL{"Niederlande"}
        NO{"Norwegen"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Neuseeland"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Französisch-Polynesien"}
        PG{"Papua-Neuguinea"}
        PH{"Philippinen"}
        PK{"Pakistan"}
        PL{"Polen"}
        PM{"St. Pierre und Miquelon"}
        PN{"Pitcairn"}
        PR{"Puerto Rico"}
        PS{"Palästinensische Autonomiegebiete"}
        PT{"Portugal"}
        PW{"Palau"}
        PY{"Paraguay"}
        QA{"Katar"}
        QO{"Äußeres Ozeanien"}
        RE{"Réunion"}
        RO{"Rumänien"}
        RS{"Serbien"}
        RU{"Russische Föderation"}
        RW{"Ruanda"}
        SA{"Saudi-Arabien"}
        SB{"Salomonen"}
        SC{"Seychellen"}
        SD{"Sudan"}
        SE{"Schweden"}
        SG{"Singapur"}
        SH{"St. Helena"}
        SI{"Slowenien"}
        SJ{"Svalbard und Jan Mayen"}
        SK{"Slowakei"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalia"}
        SR{"Suriname"}
        ST{"São Tomé und Príncipe"}
        SV{"El Salvador"}
        SY{"Syrien"}
        SZ{"Swasiland"}
        TA{"Tristan da Cunha"}
        TC{"Turks- und Caicosinseln"}
        TD{"Tschad"}
        TF{"Französische Süd- und Antarktisgebiete"}
        TG{"Togo"}
        TH{"Thailand"}
        TJ{"Tadschikistan"}
        TK{"Tokelau"}
        TL{"Osttimor"}
        TM{"Turkmenistan"}
        TN{"Tunesien"}
        TO{"Tonga"}
        TR{"Türkei"}
        TT{"Trinidad und Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwan"}
        TZ{"Tansania"}
        UA{"Ukraine"}
        UG{"Uganda"}
        UM{"Amerikanisch-Ozeanien"}
        US{"Vereinigte Staaten"}
        UY{"Uruguay"}
        UZ{"Usbekistan"}
        VA{"Vatikanstadt"}
        VC{"St. Vincent und die Grenadinen"}
        VE{"Venezuela"}
        VG{"Britische Jungferninseln"}
        VI{"Amerikanische Jungferninseln"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis und Futuna"}
        WS{"Samoa"}
        YE{"Jemen"}
        YT{"Mayotte"}
        ZA{"Südafrika"}
        ZM{"Sambia"}
        ZW{"Simbabwe"}
        ZZ{"Unbekannte Region"}
    }
    Version{"2.0.67.6"}
}
