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

en_GB {
    Version { "2.0" }
    DateTimeElements:intvector {
        2,
        1,
    }
    DateTimePatterns { 
        "HH:mm:ss z",
        "HH:mm:ss z",
        "HH:mm:ss",
        "HH:mm",
        "EEEE, d MMMM yyyy",
        "d MMMM yyyy",
        "d MMM yyyy",
        "dd/MM/yyyy",
        "{1} {0}",
    }
    zoneStrings { 
        {
            "Europe/London",
            "Greenwich Mean Time",
            "GMT",
            "British Summer Time",
            "BST",
        }
    }

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

//         * Spellout rules for U.K. English.  U.K. English has one significant
//         * difference from U.S. English: the names for values of 1,000,000,000
//         * and higher.  In American English, each successive "-illion" is 1,000
//         * times greater than the preceding one: 1,000,000,000 is "one billion"
//         * and 1,000,000,000,000 is "one trillion."  In British English, each
//         * successive "-illion" is one million times greater than the one before:
//         * "one billion" is 1,000,000,000,000 (or what Americans would call a
//         * "trillion"), and "one trillion" is 1,000,000,000,000,000,000.
//         * 1,000,000,000 in British English is "one thousand million."  (This
//         * value is sometimes called a "milliard," but this word seems to have
//         * fallen into disuse.)

    // Could someone please correct me if I'm wrong about "milliard" falling
    // into disuse, or have missed any other details of how large numbers
    // are rendered.  Also, could someone please provide me with information
    // on which other English-speaking countries use which system?  Right now,
    // I'm assuming that the U.S. system is used in Canada and that all the
    // other English-speaking countries follow the British system.  Can
    // someone out there confirm this?

    SpelloutRules {
        "%simplified:\n"
        "    -x: minus >>;\n"
        "    x.x: << point >>;\n"
        "    zero; one; two; three; four; five; six; seven; eight; nine;\n"
        "    ten; eleven; twelve; thirteen; fourteen; fifteen; sixteen;\n"
        "        seventeen; eighteen; nineteen;\n"
        "    20: twenty[->>];\n"
        "    30: thirty[->>];\n"
        "    40: forty[->>];\n"
        "    50: fifty[->>];\n"
        "    60: sixty[->>];\n"
        "    70: seventy[->>];\n"
        "    80: eighty[->>];\n"
        "    90: ninety[->>];\n"
        "    100: << hundred[ >>];\n"
        "    1000: << thousand[ >>];\n"
        "    1,000,000: << million[ >>];\n"
        "    1,000,000,000,000: << billion[ >>];\n"
        "    1,000,000,000,000,000: =#,##0=;\n"
        "%default:\n"
        "    -x: minus >>;\n"
        "    x.x: << point >>;\n"
        "    =%simplified=;\n"
        "    100: << hundred[ >%%and>];\n"
        "    1000: << thousand[ >%%and>];\n"
        "    100,000>>: << thousand[>%%commas>];\n"
        "    1,000,000: << million[>%%commas>];\n"
        "    1,000,000,000,000: << billion[>%%commas>];\n"
        "    1,000,000,000,000,000: =#,##0=;\n"
        "%%and:\n"
        "    and =%default=;\n"
        "    100: =%default=;\n"
        "%%commas:\n"
        "    ' and =%default=;\n"
        "    100: , =%default=;\n"
        "    1000: , <%default< thousand, >%default>;\n"
        "    1,000,000: , =%default=;"
        "%%lenient-parse:\n"
        "    & ' ' , ',' ;\n" 
    }
}
