// ***************************************************************************
// *
// *   Copyright (C) 2004, 2007 International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************
// 

de {
    // * 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"
            "1100: tausendein[>%alt-ones>];\n"
            "1200: 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"
    }
}
