// *******************************************************************************
// *
// *   Copyright (C) 1997-2000, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// *******************************************************************************

// Country names in de, de_AT, and de_CH are short names from the
// list of names maintained by the German
// Federal Permanent Committee for Geographic Names,
// Sta"ndiger Ausschuss fu"r Geographische Namen (StAGN),
// as published at its web site at
// http://www.ifag.de/kartographie/Stagn/Staatennamen.htm
// Date there: 1999-apr-19

de {
    // This shouldn't be used, but valid data should be here.
    // vorm. -> vormittags -> in the morning
    // nachm. -> nachmittags -> in the afternoon
    AmPmMarkers {
            "vorm.",
            "nachm.",
    }
    Countries {
        AF { "Afghanistan" }
        EG { "\u00c4gypten" }
        AL { "Albanien" }
        DZ { "Algerien" }
        AD { "Andorra" }
        AO { "Angola" }
        AG { "Antigua und Barbuda" }
        GQ { "\u00c4quatorialguinea" }
        AR { "Argentinien" }
        AM { "Armenien" }
        AZ { "Aserbaidschan" }
        ET { "\u00c4thiopien" }
        AU { "Australien" }
        BS { "Bahamas" }
        BH { "Bahrain" }
        BD { "Bangladesch" }
        BB { "Barbados" }
        BE { "Belgien" }
        BZ { "Belize" }
        BJ { "Benin" }
        BT { "Bhutan" }
        BO { "Bolivien" }
        BA { "Bosnien und Herzegowina" }
        BW { "Botsuana" }
        BR { "Brasilien" }
        BN { "Brunei Darussalam" }
        BG { "Bulgarien" }
        BF { "Burkina Faso" }
        BI { "Burundi" }
        CL { "Chile" }
        CN { "China" }
        CR { "Costa Rica" }
        CI { "C\u00f4te d\u0092Ivoire" }
        DK { "D\u00e4nemark" }
        DE { "Deutschland" }
        DM { "Dominica" }
        DO { "Dominikanische Republik" }
        DJ { "Dschibuti" }
        EC { "Ecuador" }
        SV { "El Salvador" }
        ER { "Eritrea" }
        EE { "Estland" }
        FJ { "Fidschi" }
        FI { "Finnland" }
        FR { "Frankreich" }
        GA { "Gabun" }
        GM { "Gambia" }
        GE { "Georgien" }
        GH { "Ghana" }
        GD { "Grenada" }
        GR { "Griechenland" }
        GT { "Guatemala" }
        GN { "Guinea" }
        GW { "Guinea-Bissau" }
        GY { "Guyana" }
        HT { "Haiti" }
        HN { "Honduras" }
        IN { "Indien" }
        ID { "Indonesien" }
        IQ { "Irak" }
        IR { "Iran" }
        IE { "Irland" }
        IS { "Island" }
        IL { "Israel" }
        IT { "Italien" }
        JM { "Jamaika" }
        JP { "Japan" }
        YE { "Jemen" }
        JO { "Jordanien" }
        YU { "Jugoslawien" }
        KH { "Kambodscha" }
        CM { "Kamerun" }
        CA { "Kanada" }
        CV { "Kap Verde" }
        KZ { "Kasachstan" }
        QA { "Katar" }
        KE { "Kenia" }
        KG { "Kirgisistan" }
        KI { "Kiribati" }
        CO { "Kolumbien" }
        KM { "Komoren" }
        CG { "Kongo" }
        CD { "Demokratische Republik Kongo" }
        KP { "Demokratische Volksrepublik Korea" }
        KR { "Republik Korea" }
        HR { "Kroatien" }
        CU { "Kuba" }
        KW { "Kuwait" }
        LA { "Laos" }
        LS { "Lesotho" }
        LV { "Lettland" }
        LB { "Libanon" }
        LR { "Liberia" }
        LY { "Libyen" }
        LI { "Liechtenstein" }
        LT { "Litauen" }
        LU { "Luxemburg" }
        MG { "Madagaskar" }
        MW { "Malawi" }
        MY { "Malaysia" }
        MV { "Malediven" }
        ML { "Mali" }
        MT { "Malta" }
        MA { "Marokko" }
        MH { "Marshallinseln" }
        MR { "Mauretanien" }
        MU { "Mauritius" }
        MK { "Mazedonien" }
        MX { "Mexiko" }
        FM { "Mikronesien" }
        MD { "Moldawien" }
        MC { "Monaco" }
        MN { "Mongolei" }
        MZ { "Mosambik" }
        MM { "Myanmar" }
        NA { "Namibia" }
        NR { "Nauru" }
        NP { "Nepal" }
        NZ { "Neuseeland" }
        NI { "Nicaragua" }
        NL { "Niederlande" }
        NE { "Niger" }
        NG { "Nigeria" }
        NO { "Norwegen" }
        OM { "Oman" }
        AT { "\u00d6sterreich" }
        PK { "Pakistan" }
        PW { "Palau" }
        PA { "Panama" }
        PG { "Papua-Neuguinea" }
        PY { "Paraguay" }
        PE { "Peru" }
        PH { "Philippinen" }
        PL { "Polen" }
        PT { "Portugal" }
        RW { "Ruanda" }
        RO { "Rum\u00e4nien" }
        RU { "Russland" }
        KN { "St. Kitts und Nevis" }
        LC { "St. Lucia" }
        VC { "St. Vincent und die Grenadinen" }
        SB { "Salomonen" }
        ZM { "Sambia" }
        WS { "Samoa" }
        SM { "San Marino" }
        ST { "S\u00e3o Tom\u00e9 und Pr\u00edncipe" }
        SA { "Saudi-Arabien" }
        SE { "Schweden" }
        CH { "Schweiz" }
        SN { "Senegal" }
        SC { "Seychellen" }
        SL { "Sierra Leone" }
        ZW { "Simbabwe" }
        SG { "Singapur" }
        SK { "Slowakei" }
        SI { "Slowenien" }
        SO { "Somalia" }
        ES { "Spanien" }
        LK { "Sri Lanka" }
        ZA { "S\u00fcdafrika" }
        SD { "Sudan" }
        SR { "Suriname" }
        SZ { "Swasiland" }
        SY { "Syrien" }
        TJ { "Tadschikistan" }
        TW { "Taiwan" }
        TZ { "Tansania" }
        TH { "Thailand" }
        TG { "Togo" }
        TO { "Tonga" }
        TT { "Trinidad und Tobago" }
        TD { "Tschad" }
        CZ { "Tschechien" }
        TN { "Tunesien" }
        TR { "T\u00fcrkei" }
        TM { "Turkmenistan" }
        TV { "Tuvalu" }
        UG { "Uganda" }
        UA { "Ukraine" }
        HU { "Ungarn" }
        UY { "Uruguay" }
        UZ { "Usbekistan" }
        VU { "Vanuatu" }
        VA { "Vatikanstadt" }
        VE { "Venezuela" }
        AE { "Vereinigte Arabische Emirate" }
        GB { "Vereinigtes K\u00f6nigreich" }
        US { "Vereinigte Staaten" }
        VN { "Vietnam" }
        BY { "Belarus" }
        CF { "Zentralafrikanische Republik" }
        CY { "Zypern" }

        UM { "Amerikanisch-Ozeanien" }
        AS { "Amerikanisch-Samoa" }
        VI { "Amerikanische Jungferninseln" }
        AI { "Anguilla" }
        AQ { "Antarktis" }
        AW { "Aruba" }
        SJ { "Svalbard und Jan Mayen" }
        BM { "Bermuda" }
        BV { "Bouvetinsel" }
        VG { "Britische Jungferninseln" }
        IO { "Britisches Territorium im Indischen Ozean" }
        CK { "Cookinseln" }
        FK { "Falklandinseln" }
        FO { "F\u00e4r\u00f6er" }
        GF { "Franz\u00f6sisch-Guayana" }
        PF { "Franz\u00f6sisch-Polynesien" }
        TF { "Franz\u00f6sische S\u00fcd- und Antarktisgebiete" }
        GI { "Gibraltar" }
        GL { "Gr\u00f6nland" }
        GP { "Guadeloupe" }
        GU { "Guam" }
        HM { "Heard und McDonaldinseln" }
        KY { "Kaimaninseln" }
        CC { "Kokosinseln" }
        MO { "Macau" }
        MQ { "Martinique" }
        YT { "Mayotte" }
        MS { "Montserrat" }
        NC { "Neukaledonien" }
        AN { "Niederl\u00e4ndische Antillen" }
        NU { "Niue" }
        MP { "N\u00f6rdliche Marianen" }
        NF { "Norfolkinsel" }
        PN { "Pitcairn" }
        PR { "Puerto Rico" }
        RE { "R\u00e9union" }
        SH { "St. Helena" }
        PM { "St. Pierre und Miquelon" }
        GS { "S\u00fcdgeorgien und die S\u00fcdlichen Sandwichinseln" }
        TK { "Tokelau" }
        TC { "Turks- und Caicosinseln" }
        WF { "Wallis und Futuna" }
        CX { "Weihnachtsinsel" }

        // some entries that are not in the official list:
        EH { "West Sahara" }
        // same as in root: HK { "Hong Kong" }
        SP { "Serbien" }
        // Zaire is now the Democratic Republic of Congo (CD)
        // same as in root: ZR { "Zaire" }
    }
    DateTimeElements { 
            "2",
            "4",
    }
    DateTimePatterns { 
            "H.mm' Uhr 'z",
            "HH:mm:ss z",
            "HH:mm:ss",
            "HH:mm",
            "EEEE, d. MMMM yyyy",
            "d. MMMM yyyy",
            "dd.MM.yyyy",
            "dd.MM.yy",
            "{1} {0}",
    }
    DayAbbreviations { 
            "So",
            "Mo",
            "Di",
            "Mi",
            "Do",
            "Fr",
            "Sa",
    }
    DayNames { 
            "Sonntag",
            "Montag",
            "Dienstag",
            "Mittwoch",
            "Donnerstag",
            "Freitag",
            "Samstag",
    }
    Eras { 
            "v. Chr.",
            "n. Chr.",
    }

    // For the languages, I am trying to use the adjective list in the
    // official list of country names.
    // Sometimes I am guessing, many entries have a question mark for
    // further checking.
    //   Markus Scherer, 2000jun01
    Languages {
        ab { "Abchasisch" }
        // ? aa { "Afar" }
        // same as in root? af { "Afrikaans" }
        sq { "Albanisch" }
        am { "Amharisch" } // ?
        ar { "Arabisch" }
        hy { "Armenisch" }
        // ? as { "Assamese" }
        // ? ay { "Aymara" }
        az { "Aserbaidschanisch" }
        // ? ba { "Bashkir" }
        eu { "Baskisch" }
        bn { "Bengalisch" } // ?
        dz { "Bhutanisch" }
        // ? bh { "Bihari" }
        // ? bi { "Bislama" }
        br { "Bretonisch" }
        bg { "Bulgarisch" }
        my { "Burmesisch" }
        be { "Wei\u00dfrussisch" }
        km { "Kkambodschanisch" }
        ca { "Katalanisch" } // Katalonisch?
        zh { "Chinesisch" }
        co { "Korsisch" }
        hr { "Kroatisch" }
        cs { "Tschechisch" }
        da { "D\u00e4nisch" }
        nl { "Holl\u00e4ndisch" }
        en { "Englisch" }
        // same as in root: eo { "Esperanto" }
        et { "Estnisch" }
        fo { "F\u00e4r\u00f6isch" }
        fj { "Fidschianisch" }
        fi { "Finnisch" }
        fr { "Franz\u00f6sisch" }
        fy { "Frisisch" }
        gl { "Galizisch" } // Galizianisch??
        ka { "Georgisch" }
        de { "Deutsch" }
        el { "Griechisch" }
        kl { "Gr\u00f6nl\u00e4ndisch" }
        // ? gn { "Guarani" }
        // ? gu { "Gujarati" }
        // ? ha { "Hausa" }
        he { "Hebr\u00e4isch" }
        iw { "Hebr\u00e4isch" }
        // same as in root? hi { "Hindi" }
        hu { "Ungarisch" }
        is { "Isl\u00e4ndisch" }
        id { "Indonesisch" }
        in { "Indonesisch" }
        // same as in root: ia { "Interlingua" }
        // same as in root: ie { "Interlingue" }
        // ? iu { "Inukitut" }
        // ? ik { "Inupiak" }
        ga { "Irisch" }
        it { "Italienisch" }
        ja { "Japanisch" }
        jw { "Javanesisch" } // ?
        // ? kn { "Kannada" }
        ks { "Kaschmirisch" } // ?
        kk { "Kasachisch" }
        // ? rw { "Kinyarwanda" }
        ky { "Kirgisisch" }
        // ? rn { "Kirundi" }
        ko { "Koreanisch" }
        ku { "Kurdisch" }
        // ? lo { "Laothian" }
        la { "Latein" }
        lv { "Lettisch" }
        // ? ln { "Lingala" }
        lt { "Litauisch" }
        mk { "Mazedonisch" }
        // ? mg { "Malagasy" }
        // ? ms { "Malay" }
        // ? ml { "Malayalam" }
        mt { "Maltesisch" }
        // ? mi { "Maori" }
        // ? mr { "Marathi" }
        mo { "Moldawisch" }
        mn { "Mongolisch" }
        na { "Nauruisch" }
        ne { "Nepalesisch" }
        no { "Norwegisch" }
        // ? oc { "Occitan" }
        // ? or { "Oriya" }
        // ? om { "Oromo (Afan)" }
        // ? ps { "Pashto (Pushto)" }
        fa { "Persisch" }
        pl { "Polnisch" }
        pt { "Portugiesisch" }
        // ? pa { "Punjabi" }
        // ? qu { "Quechua" }
        rm { "R\u00e4toromanisch" }
        ro { "Rum\u00e4nisch" }
        ru { "Russisch" }
        sm { "Samoanisch" }
        // ? sg { "Sangro" }
        // same as in root: sa { "Sanskrit" }
        gd { "Schottisch-G\u00e4lisch" }
        sr { "Serbisch" }
        sh { "Serbo-Kroatisch" }
        // ? st { "Sesotho" }
        // ? tn { "Setswana" }
        // ? sn { "Shona" }
        // ? sd { "Sindhi" }
        // ? si { "Singhalese" }
        // ? ss { "Siswati" }
        sk { "Slowakisch" }
        sl { "Slowenisch" }
        so { "Somalisch" }
        es { "Spanisch" }
        // ? su { "Sundanese" }
        // ? sw { "Swahili" }
        sv { "Schwedisch" }
        // ? tl { "Tagalog" }
        tg { "Tadschikisch" }
        // ? ta { "Tamil" }
        // ? tt { "Tatar" }
        // ? te { "Telugu" }
        // same as in root? th { "Thai" }
        bo { "Tibetisch" }
        // ? ti { "Tigrinya" }
        // ? to { "Tonga" }
        // ? ts { "Tsonga" }
        tr { "T\u00fcrkisch" }
        tk { "T\u00fcrkmenisch" } // Turkmenisch??
        // ? tw { "Twi" }
        // ? ug { "Uighur" }
        uk { "Ukrainisch" }
        // ? ur { "Urdu" }
        uz { "Usbekisch" }
        vi { "Vietnamesisch" }
        vo { "Volap\u00fck" }
        cy { "Walisisch" }
        // ? wo { "Wolof" }
        // ? xh { "Xhosa" }
        ji { "Jiddisch" }
        yi { "Jiddisch" }
        // ? yo { "Yoruba" }
        // ? za { "Zhuang" }
        // same as in root?? zu { "Zulu" }
    }
    LocaleID { "07" }
    LocaleString { "de" }
    MonthAbbreviations { 
            "Jan",
            "Feb",
            "Mrz",
            "Apr",
            "Mai",
            "Jun",
            "Jul",
            "Aug",
            "Sep",
            "Okt",
            "Nov",
            "Dez",
            "",
    }
    MonthNames { 
            "Januar",
            "Februar",
            "M\u00E4rz",
            "April",
            "Mai",
            "Juni",
            "Juli",
            "August",
            "September",
            "Oktober",
            "November",
            "Dezember",
            "",
    }
    NumberElements { 
            ",",
            ".",
            ";",
            "%",
            "0",
            "#",
            "-",
            "E",
            "\u2030",
            "\u221E",
            "\uFFFD",
    }
    ShortLanguage { "deu" }
    localPatternChars { "GjMtkHmsSEDFwWahKzJe" }
    zoneStrings { 
        {
        "Europe/Berlin", 
        "Mitteleurop\u00E4ische Zeit", 
        "MEZ", 
        "Mitteleurop\u00E4ische Sommerzeit", 
        "MESZ"
        }
    }
}
