// *******************************************************************************
// *
// *   Copyright (C) 1997-2001, 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
    Version{ "1.0" }
    "%%PHONEBOOK" { "Telefonbuch-Sortierregeln" }
    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 S.A.R.,China" }
        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" }
        HK { "Hong Kong S.A.R., China" }
        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" }
        nb { "Norwegisch Bokm\u00e5l" }    
        ne { "Nepalesisch" }
        nn { "Norwegisch Nynorsk" }
        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"
        }
    }
    LocaleScript{ 
                "Latn",  // ISO 15924 Name 
    }

    //------------------------------------------------------------
    // Rule Based Number Format Support
    //------------------------------------------------------------

            
// * RuleBasedNumberFormat data for German

        // again, I'm not 100% sure of these rules.  I think both "hundert" and
        // "einhundert" are correct or 100, but I'm not sure which is preferable
        // in situations where this framework is likely to be used.  Also, is it
        // really true that numbers are run together into compound words all the
        // time?

    SpelloutRules {
            // 1 is "eins" when by itself, but turns into "ein" in most
            // combinations
            "%alt-ones:\n"
            "    -x: minus >>;\n"
            "    x.x: << komma >>;\n"
            "    null; eins; =%%main=;\n"
            "%%main:\n"
                   // words for numbers from 0 to 12.  Notice that the values
                   // from 13 to 19 can derived algorithmically, unlike in most
                   // other languages
            "    null; ein; zwei; drei; vier; f\u00fcnf; sechs; sieben; acht; neun;\n"
            "    zehn; elf; zw\u00f6lf; >>zehn;\n"
                   // rules for the multiples of 10.  Notice that the ones digit
                   // goes on the front
            "    20: [>>und]zwanzig;\n"
            "    30: [>>und]drei\u00dfig;\n"
            "    40: [>>und]vierzig;\n"
            "    50: [>>und]f\u00fcnfzig;\n"
            "    60: [>>und]sechzig;\n"
            "    70: [>>und]siebzig;\n"
            "    80: [>>und]achtzig;\n"
            "    90: [>>und]neunzig;\n"
            "    100: hundert[>%alt-ones>];\n"
            "    200: <<hundert[>%alt-ones>];\n"
            "    1000: tausend[>%alt-ones>];\n"
            "    2000: <<tausend[>%alt-ones>];\n"
            "    1,000,000: eine Million[ >%alt-ones>];\n"
            "    2,000,000: << Millionen[ >%alt-ones>];\n"
            "    1,000,000,000: eine Milliarde[ >%alt-ones>];\n"
            "    2,000,000,000: << Milliarden[ >%alt-ones>];\n"
            "    1,000,000,000,000: eine Billion[ >%alt-ones>];\n"
            "    2,000,000,000,000: << Billionen[ >%alt-ones>];\n"
            "    1,000,000,000,000,000: =#,##0=;"
            "%%lenient-parse:\n"
            "    &\u0000 << ' ' << '-'\n"
            "    & ae , \u00e4 & ae , \u00c4\n"
            "    & oe , \u00f6 & oe , \u00d6\n"
            "    & ue , \u00fc & ue , \u00dc\n"
    }
}
