-// ***************************************************************************
+// ***************************************************************************
// *
-// * Copyright (C) 2004, International Business Machines
-// * Corporation and others. All Rights Reserved.
+// * Copyright (C) 2014 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
+// * Source File: <path>/common/rbnf/en.xml
// *
// ***************************************************************************
-//
-
-en {
-
-
- //------------------------------------------------------------
- // Rule Based Number Format Support
- //------------------------------------------------------------
-
- // * Spellout rules for U.S. English. This rule set has two variants:
- // * %simplified is a set of rules showing the simple method of spelling
- // * out numbers in English: 289 is formatted as "two hundred eighty-nine".
- // * %default uses a more complicated algorithm to format
- // * numbers in a more natural way: 289 is formatted as "two hundred AND
- // * eighty-nine" and commas are inserted between the thousands groups for
- // * values above 100,000.
-
- SpelloutRules {
- // This rule set shows the normal simple formatting rules for English
- "%simplified:\n"
- // negative number rule. This rule is used to format negative
- // numbers. The result of formatting the number's absolute
- // value is placed where the >> is.
- "-x: minus >>;\n"
- // faction rule. This rule is used for formatting numbers
- // with fractional parts. The result of formatting the
- // number's integral part is substituted for the <<, and
- // the result of formatting the number's fractional part
- // (one digit at a time, e.g., 0.123 is "zero point one two
- // three") replaces the >>.
- "x.x: << point >>;\n"
- // the rules for the values from 0 to 19 are simply the
- // words for those numbers
- "zero; one; two; three; four; five; six; seven; eight; nine;\n"
- "ten; eleven; twelve; thirteen; fourteen; fifteen; sixteen;\n"
- "seventeen; eighteen; nineteen;\n"
- // beginning at 20, we use the >> to mark the position where
- // the result of formatting the number's ones digit. Thus,
- // we only need a new rule at every multiple of 10. Text in
- // backets is omitted if the value being formatted is an
- // even multiple of 10.
- "20: twenty[->>];\n"
- "30: thirty[->>];\n"
- "40: forty[->>];\n"
- "50: fifty[->>];\n"
- "60: sixty[->>];\n"
- "70: seventy[->>];\n"
- "80: eighty[->>];\n"
- "90: ninety[->>];\n"
- // beginning at 100, we can use << to mark the position where
- // the result of formatting the multiple of 100 is to be
- // inserted. Notice also that the meaning of >> has shifted:
- // here, it refers to both the ones place and the tens place.
- // The meanings of the << and >> tokens depend on the base value
- // of the rule. A rule's divisor is (usually) the highest
- // power of 10 that is less than or equal to the rule's base
- // value. The value being formatted is divided by the rule's
- // divisor, and the integral quotient is used to get the text
- // for <<, while the remainder is used to produce the text
- // for >>. Again, text in brackets is omitted if the value
- // being formatted is an even multiple of the rule's divisor
- // (in this case, an even multiple of 100)
- "100: << hundred[ >>];\n"
- // The rules for the higher numbers work the same way as the
- // rule for 100: Again, the << and >> tokens depend on the
- // rule's divisor, which for all these rules is also the rule's
- // base value. To group by thousand, we simply don't have any
- // rules between 1,000 and 1,000,000.
- "1000: << thousand[ >>];\n"
- "1,000,000: << million[ >>];\n"
- "1,000,000,000: << billion[ >>];\n"
- "1,000,000,000,000: << trillion[ >>];\n"
- // overflow rule. This rule specifies that values of a
- // quadrillion or more are shown in numerals rather than words.
- // The == token means to format (with new rules) the value
- // being formatted by this rule and place the result where
- // the == is. The #,##0 inside the == signs is a
- // DecimalFormat pattern. It specifies that the value should
- // be formatted with a DecimalFormat object, and that it
- // should be formatted with no decimal places, at least one
- // digit, and a thousands separator.
- "1,000,000,000,000,000: =#,##0=;\n"
-
- // %default is a more elaborate form of %simplified; It is basically
- // the same, except that it introduces "and" before the ones digit
- // when appropriate (basically, between the tens and ones digits) and
- // separates the thousands groups with commas in values over 100,000.
- "%default:\n"
- // negative-number and fraction rules. These are the same
- // as those for %simplified, but have to be stated here too
- // because this is an entry point
- "-x: minus >>;\n"
- "x.x: << point >>;\n"
- // just use %simplified for values below 100
- "=%simplified=;\n"
- // for values from 100 to 9,999 use %%and to decide whether or
- // not to interpose the "and"
- "100: << hundred[ >%%and>];\n"
- "1000: << thousand[ >%%and>];\n"
- // for values of 100,000 and up, use %%commas to interpose the
- // commas in the right places (and also to interpose the "and")
- "100,000>>: << thousand[>%%commas>];\n"
- "1,000,000: << million[>%%commas>];\n"
- "1,000,000,000: << billion[>%%commas>];\n"
- "1,000,000,000,000: << trillion[>%%commas>];\n"
- "1,000,000,000,000,000: =#,##0=;\n"
- // if the value passed to this rule set is greater than 100, don't
- // add the "and"; if it's less than 100, add "and" before the last
- // digits
- "%%and:\n"
- "and =%default=;\n"
- "100: =%default=;\n"
- // this rule set is used to place the commas
- "%%commas:\n"
- // for values below 100, add "and" (the apostrophe at the
- // beginning is ignored, but causes the space that follows it
- // to be significant: this is necessary because the rules
- // calling %%commas don't put a space before it)
- "' and =%default=;\n"
- // put a comma after the thousands (or whatever preceded the
- // hundreds)
- "100: , =%default=;\n"
- // put a comma after the millions (or whatever precedes the
- // thousands)
- "1000: , <%default< thousand, >%default>;\n"
- // and so on...
- "1,000,000: , =%default=;"
- // %%lenient-parse isn't really a set of number formatting rules;
- // it's a set of collation rules. Lenient-parse mode uses a Collator
- // object to compare fragments of the text being parsed to the text
- // in the rules, allowing more leeway in the matching text. This set
- // of rules tells the formatter to ignore commas when parsing (it
- // already ignores spaces, which is why we refer to the space; it also
- // ignores hyphens, making "twenty one" and "twenty-one" parse
- // identically)
- "%%lenient-parse:\n"
- // "& ' ' , ',' ;\n"
- " &\u0000 << ' ' << ',' << '-'; \n"
- }
-
-
-// * This rule set adds an English ordinal abbreviation to the end of a
-// * number. For example, 2 is formatted as "2nd". Parsing doesn't work with
-// * this rule set. To parse, use DecimalFormat on the numeral.
- OrdinalRules {
- // this rule set formats the numeral and calls %%abbrev to
- // supply the abbreviation
- "%main:\n"
- "=#,##0==%%abbrev=;\n"
- // this rule set supplies the abbreviation
- "%%abbrev:\n"
- // the abbreviations. Everything from 4 to 19 ends in "th"
- "th; st; nd; rd; th;\n"
- // at 20, we begin repeating the cycle every 10 (13 is "13th",
- // but 23 and 33 are "23rd" and "33rd") We do this by
- // ignoring all bug the ones digit in selecting the abbreviation
- "20: >>;\n"
- // at 100, we repeat the whole cycle by considering only the
- // tens and ones digits in picking an abbreviation
- "100: >>;\n"
- }
-
-// * This rule set formats a number of seconds in sexagesimal notation
-// * (i.e., hours, minutes, and seconds). %with-words formats it with
-// * words (3,740 is "1 hour, 2 minutes, 20 seconds") and %in-numerals
-// * formats it entirely in numerals (3,740 is "1:02:20").
- DurationRules {
- // main rule set for formatting with words
- "%with-words:\n"
- // take care of singular and plural forms of "second"
- "0 seconds; 1 second; =0= seconds;\n"
- // use %%min to format values greater than 60 seconds
- "60/60: <%%min<[, >>];\n"
- // use %%hr to format values greater than 3,600 seconds
- // (the ">>>" below causes us to see the number of minutes
- // when when there are zero minutes)
- "3600/60: <%%hr<[, >>>];\n"
- // this rule set takes care of the singular and plural forms
- // of "minute"
- "%%min:\n"
- "0 minutes; 1 minute; =0= minutes;\n"
- // this rule set takes care of the singular and plural forms
- // of "hour"
- "%%hr:\n"
- "0 hours; 1 hour; =0= hours;\n"
-
- // main rule set for formatting in numerals
- "%in-numerals:\n"
- // values below 60 seconds are shown with "sec."
- "=0= sec.;\n"
- // higher values are shown with colons: %%min-sec is used for
- // values below 3,600 seconds...
- "60: =%%min-sec=;\n"
- // ...and %%hr-min-sec is used for values of 3,600 seconds
- // and above
- "3600: =%%hr-min-sec=;\n"
- // this rule causes values of less than 10 minutes to show without
- // a leading zero
- "%%min-sec:\n"
- "0: :=00=;\n"
- "60/60: <0<>>;\n"
- // this rule set is used for values of 3,600 or more. Minutes are always
- // shown, and always shown with two digits
- "%%hr-min-sec:\n"
- "0: :=00=;\n"
- "60/60: <00<>>;\n"
- "3600/60: <#,##0<:>>>;\n"
- // the lenient-parse rules allow several different characters to be used
- // as delimiters between hours, minutes, and seconds
- "%%lenient-parse:\n"
- "& ':' = '.' = ' ' = '-';\n"
+/**
+ * ICU <specials> source: <path>/xml/rbnf/en.xml
+ */
+en{
+ RBNFRules{
+ DurationRules{
+ "%with-words:",
+ "0: 0 seconds; 1 second; =0= seconds;",
+ "60/60: <%%min<[, >>];",
+ "3600/60: <%%hr<[, >>>];",
+ "%%min:",
+ "0: 0 minutes; 1 minute; =0= minutes;",
+ "%%hr:",
+ "0: 0 hours; 1 hour; =0= hours;",
+ "%in-numerals:",
+ "0: =0= sec.;",
+ "60: =%%min-sec=;",
+ "3600: =%%hr-min-sec=;",
+ "%%min-sec:",
+ "0: :=00=;",
+ "60/60: <0<>>;",
+ "%%hr-min-sec:",
+ "0: :=00=;",
+ "60/60: <00<>>;",
+ "3600/60: <#,##0<:>>>;",
+ "%duration:",
+ "0: =%in-numerals=;",
+ "%%lenient-parse:",
+ "& ':' = '.' = ' ' = '-';",
+ }
+ OrdinalRules{
+ "%%digits-ordinal-indicator:",
+ "0: th;",
+ "1: st;",
+ "2: nd;",
+ "3: rd;",
+ "4: th;",
+ "20: >>;",
+ "100: >>;",
+ "%digits-ordinal:",
+ "-x: \u2212>>;",
+ "0: =#,##0==%%digits-ordinal-indicator=;",
+ }
+ SpelloutRules{
+ "%%2d-year:",
+ "0: hundred;",
+ "1: oh-=%spellout-numbering=;",
+ "10: =%spellout-numbering=;",
+ "%spellout-numbering-year:",
+ "-x: minus >>;",
+ "x.x: =#,###0.#=;",
+ "0: =%spellout-numbering=;",
+ "1010/100: << >%%2d-year>;",
+ "1100/100: << >%%2d-year>;",
+ "2000: =%spellout-numbering=;",
+ "2010/100: << >%%2d-year>;",
+ "2100/100: << >%%2d-year>;",
+ "3000: =%spellout-numbering=;",
+ "3010/100: << >%%2d-year>;",
+ "3100/100: << >%%2d-year>;",
+ "4000: =%spellout-numbering=;",
+ "4010/100: << >%%2d-year>;",
+ "4100/100: << >%%2d-year>;",
+ "5000: =%spellout-numbering=;",
+ "5010/100: << >%%2d-year>;",
+ "5100/100: << >%%2d-year>;",
+ "6000: =%spellout-numbering=;",
+ "6010/100: << >%%2d-year>;",
+ "6100/100: << >%%2d-year>;",
+ "7000: =%spellout-numbering=;",
+ "7010/100: << >%%2d-year>;",
+ "7100/100: << >%%2d-year>;",
+ "8000: =%spellout-numbering=;",
+ "8010/100: << >%%2d-year>;",
+ "8100/100: << >%%2d-year>;",
+ "9000: =%spellout-numbering=;",
+ "9010/100: << >%%2d-year>;",
+ "9100/100: << >%%2d-year>;",
+ "10000: =%spellout-numbering=;",
+ "%spellout-numbering:",
+ "0: =%spellout-cardinal=;",
+ "%spellout-numbering-verbose:",
+ "0: =%spellout-cardinal-verbose=;",
+ "%spellout-cardinal:",
+ "-x: minus >>;",
+ "x.x: << point >>;",
+ "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=;",
+ "%%and:",
+ "1: ' and =%spellout-cardinal-verbose=;",
+ "100: ' =%spellout-cardinal-verbose=;",
+ "%%commas:",
+ "1: ' and =%spellout-cardinal-verbose=;",
+ "100: , =%spellout-cardinal-verbose=;",
+ "1000: , <%spellout-cardinal-verbose< thousand[>%%commas>];",
+ "1000000: , =%spellout-cardinal-verbose=;",
+ "%spellout-cardinal-verbose:",
+ "-x: minus >>;",
+ "x.x: << point >>;",
+ "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=;",
+ "%%tieth:",
+ "0: tieth;",
+ "1: ty-=%spellout-ordinal=;",
+ "%%th:",
+ "0: th;",
+ "1: ' =%spellout-ordinal=;",
+ "%spellout-ordinal:",
+ "-x: minus >>;",
+ "x.x: =#,##0.#=;",
+ "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=.;",
+ "%%and-o:",
+ "0: th;",
+ "1: ' and =%spellout-ordinal-verbose=;",
+ "100: ' =%spellout-ordinal-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=;",
+ "%spellout-ordinal-verbose:",
+ "-x: minus >>;",
+ "x.x: =#,##0.#=;",
+ "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=.;",
+ }
}
+ Version{"2.0.82.42"}
}