]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/data/rbnf/en.txt
ICU-531.30.tar.gz
[apple/icu.git] / icuSources / data / rbnf / en.txt
index 3cbcecb28257de9d1cbe5c571014de05b4658120..3370e5a2445cff389b7789282b8ab10a0ed24126 100644 (file)
-// ***************************************************************************
+// ***************************************************************************
 // *
-// *   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"}
 }