﻿// ***************************************************************************
// *
// * Copyright (C) 2009 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/rbnf/en.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/rbnf/en.xml
 */
en{
    RBNFRules{
        DurationRules{
            "%duration:",
            "0: =%in-numerals=;",
            "%%hr:",
            "0: 0 hours; 1 hour; =0= hours;",
            "%%hr-min-sec:",
            "0: :=00=;",
            "60/60: <00<>>;",
            "3600/60: <#,##0<:>>>;",
            "%in-numerals:",
            "0: =0= sec.;",
            "60: =%%min-sec=;",
            "3600: =%%hr-min-sec=;",
            "%%lenient-parse:",
            "& ':' = '.' = ' ' = '-';",
            "%%min:",
            "0: 0 minutes; 1 minute; =0= minutes;",
            "%%min-sec:",
            "0: :=00=;",
            "60/60: <0<>>;",
            "%with-words:",
            "0: 0 seconds; 1 second; =0= seconds;",
            "60/60: <%%min<[, >>];",
            "3600/60: <%%hr<[, >>>];",
        }
        OrdinalRules{
            "%digits-ordinal:",
            "0: =#,##0==%%digits-ordinal-indicator=;",
            "-x: \u2212>>;",
            "%%digits-ordinal-indicator:",
            "0: \u1D57\u02B0;",
            "1: \u02E2\u1D57;",
            "2: \u207F\u1D48;",
            "3: \u02B3\u1D48;",
            "4: \u1D57\u02B0;",
            "20: >>;",
            "100: >>;",
        }
        SpelloutRules{
            "%%2d-year:",
            "0: hundred[ and >%spellout-numbering>];",
            "1: oh-=%spellout-numbering=;",
            "10: =%spellout-numbering=;",
            "%%and:",
            "1: ' and =%spellout-cardinal-verbose=;",
            "100: ' =%spellout-cardinal-verbose=;",
            "%%and-o:",
            "0: th;",
            "1: ' and =%spellout-ordinal-verbose=;",
            "100: ' =%spellout-ordinal-verbose=;",
            "%%commas:",
            "1: ' and =%spellout-cardinal-verbose=;",
            "100: , =%spellout-cardinal-verbose=;",
            "1000: , <%spellout-cardinal-verbose< thousand[>%%commas>];",
            "1000000: , =%spellout-cardinal-verbose=;",
            "%%commas-o:",
            "0: th;",
            "1: ' and =%spellout-ordinal-verbose=;",
            "100: , =%spellout-ordinal-verbose=;",
            "1000: , <%spellout-cardinal-verbose< thousand>%%commas-o>;",
            "1000000: , =%spellout-ordinal-verbose=;",
            "%%lenient-parse:",
            "&[last primary ignorable ] << ' ' << ',' << '-' << '\u00AD';",
            "%spellout-cardinal:",
            "0: zero;",
            "1: one;",
            "2: two;",
            "3: three;",
            "4: four;",
            "5: five;",
            "6: six;",
            "7: seven;",
            "8: eight;",
            "9: nine;",
            "10: ten;",
            "11: eleven;",
            "12: twelve;",
            "13: thirteen;",
            "14: fourteen;",
            "15: fifteen;",
            "16: sixteen;",
            "17: seventeen;",
            "18: eighteen;",
            "19: nineteen;",
            "20: twenty[->>];",
            "30: thirty[->>];",
            "40: forty[->>];",
            "50: fifty[->>];",
            "60: sixty[->>];",
            "70: seventy[->>];",
            "80: eighty[->>];",
            "90: ninety[->>];",
            "100: << hundred[ >>];",
            "1000: << thousand[ >>];",
            "1000000: << million[ >>];",
            "1000000000: << billion[ >>];",
            "1000000000000: << trillion[ >>];",
            "1000000000000000: << quadrillion[ >>];",
            "1000000000000000000: =#,##0=;",
            "-x: minus >>;",
            "x.x: << point >>;",
            "%spellout-cardinal-verbose:",
            "0: =%spellout-numbering=;",
            "100: << hundred[>%%and>];",
            "1000: << thousand[>%%and>];",
            "100000/1000: << thousand[>%%commas>];",
            "1000000: << million[>%%commas>];",
            "1000000000: << billion[>%%commas>];",
            "1000000000000: << trillion[>%%commas>];",
            "1000000000000000: << quadrillion[>%%commas>];",
            "1000000000000000000: =#,##0=;",
            "-x: minus >>;",
            "x.x: << point >>;",
            "%spellout-numbering:",
            "0: =%spellout-cardinal=;",
            "%spellout-numbering-verbose:",
            "0: =%spellout-cardinal-verbose=;",
            "%spellout-numbering-year:",
            "0: =%spellout-numbering=;",
            "1000/100: << >%%2d-year>;",
            "10000: =%spellout-numbering=;",
            "-x: minus >>;",
            "x.x: =#,###0.#=;",
            "%spellout-ordinal:",
            "0: zeroth;",
            "1: first;",
            "2: second;",
            "3: third;",
            "4: fourth;",
            "5: fifth;",
            "6: sixth;",
            "7: seventh;",
            "8: eighth;",
            "9: ninth;",
            "10: tenth;",
            "11: eleventh;",
            "12: twelfth;",
            "13: =%spellout-numbering=th;",
            "20: twen>%%tieth>;",
            "30: thir>%%tieth>;",
            "40: for>%%tieth>;",
            "50: fif>%%tieth>;",
            "60: six>%%tieth>;",
            "70: seven>%%tieth>;",
            "80: eigh>%%tieth>;",
            "90: nine>%%tieth>;",
            "100: <%spellout-numbering< hundred>%%th>;",
            "1000: <%spellout-numbering< thousand>%%th>;",
            "1000000: <%spellout-numbering< million>%%th>;",
            "1000000000: <%spellout-numbering< billion>%%th>;",
            "1000000000000: <%spellout-numbering< trillion>%%th>;",
            "1000000000000000: <%spellout-numbering< quadrillion>%%th>;",
            "1000000000000000000: =#,##0=.;",
            "-x: minus >>;",
            "x.x: =#,##0.#=;",
            "%spellout-ordinal-verbose:",
            "0: =%spellout-ordinal=;",
            "100: <%spellout-numbering-verbose< hundred>%%and-o>;",
            "1000: <%spellout-numbering-verbose< thousand>%%and-o>;",
            "100000/1000: <%spellout-numbering-verbose< thousand>%%commas-o>;",
            "1000000: <%spellout-numbering-verbose< million>%%commas-o>;",
            "1000000000: <%spellout-numbering-verbose< billion>%%commas-o>;",
            "1000000000000: <%spellout-numbering-verbose< trillion>%%commas-o>;",
            "1000000000000000: <%spellout-numbering-verbose< quadrillion>%%commas-o>;",
            "1000000000000000000: =#,##0=.;",
            "-x: minus >>;",
            "x.x: =#,##0.#=;",
            "%%th:",
            "0: th;",
            "1: ' =%spellout-ordinal=;",
            "%%tieth:",
            "0: tieth;",
            "1: ty-=%spellout-ordinal=;",
        }
    }
    Version{"1.5"}
}
