| /* |
| ******************************************************************************* |
| * Copyright (C) 1996-2000, International Business Machines Corporation and * |
| * others. All Rights Reserved. * |
| ******************************************************************************* |
| * |
| * $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/impl/data/Attic/NumberFormatRules_fr.java,v $ |
| * $Date: 2002/02/16 03:05:53 $ |
| * $Revision: 1.3 $ |
| * |
| ***************************************************************************************** |
| */ |
| |
| package com.ibm.icu.impl.data; |
| |
| import java.util.ListResourceBundle; |
| |
| /** |
| * Default RuleBasedNumberFormat data for French |
| * |
| * @author Richard Gillam |
| * @version $Version$ $Date: 2002/02/16 03:05:53 $ |
| */ |
| public class NumberFormatRules_fr extends ListResourceBundle { |
| /** |
| * Puts a copyright in the .class file |
| */ |
| private static final String copyrightNotice |
| = "Copyright \u00a91997-1998 IBM Corp. All rights reserved."; |
| |
| public Object[][] getContents() { |
| return contents; |
| } |
| |
| Object[][] contents = { |
| /** |
| * Spellout rules for French. French adds some interesting quirks of its |
| * own: 1) The word "et" is interposed between the tens and ones digits, |
| * but only if the ones digit if 1: 20 is "vingt," and 2 is "vingt-deux," |
| * but 21 is "vingt-et-un." 2) There are no words for 70, 80, or 90. |
| * "quatre-vingts" ("four twenties") is used for 80, and values proceed |
| * by score from 60 to 99 (e.g., 73 is "soixante-treize" ["sixty-thirteen"]). |
| * Numbers from 1,100 to 1,199 are rendered as hundreds rather than |
| * thousands: 1,100 is "onze cents" ("eleven hundred"), rather than |
| * "mille cent" ("one thousand one hundred") |
| */ |
| { "SpelloutRules", |
| // the main rule set |
| "%main:\n" |
| + " -x: moins >>;\n" |
| + " x.x: << virgule >>;\n" |
| // words for numbers from 0 to 10 |
| + " z\u00e9ro; un; deux; trois; quatre; cinq; six; sept; huit; neuf;\n" |
| + " dix; onze; douze; treize; quatorze; quinze; seize;\n" |
| + " dix-sept; dix-huit; dix-neuf;\n" |
| // ords for the multiples of 10: %%alt-ones inserts "et" |
| // when needed |
| + " 20: vingt[->%%alt-ones>];\n" |
| + " 30: trente[->%%alt-ones>];\n" |
| + " 40: quarante[->%%alt-ones>];\n" |
| + " 50: cinquante[->%%alt-ones>];\n" |
| // rule for 60. The /20 causes this rule's multiplier to be |
| // 20 rather than 10, allowinhg us to recurse for all values |
| // from 60 to 79... |
| + " 60/20: soixante[->%%alt-ones>];\n" |
| // ...except for 71, which must be special-cased |
| + " 71: soixante et onze;\n" |
| // at 72, we have to repeat the rule for 60 to get us to 79 |
| + " 72/20: soixante->%%alt-ones>;\n" |
| // at 80, we state a new rule with the phrase for 80. Since |
| // it changes form when there's a ones digit, we need a second |
| // rule at 81. This rule also includes "/20," allowing it to |
| // be used correctly for all values up to 99 |
| + " 80: quatre-vingts; 81/20: quatre-vingt->>;\n" |
| // "cent" becomes plural when preceded by a multiplier, and |
| // the multiplier is omitted from the singular form |
| + " 100: cent[ >>];\n" |
| + " 200: << cents[ >>];\n" |
| + " 1000: mille[ >>];\n" |
| // values from 1,100 to 1,199 are rendered as "onze cents..." |
| // instead of "mille cent..." The > after "1000" decreases |
| // the rule's exponent, causing its multiplier to be 100 instead |
| // of 1,000. This prevents us from getting "onze cents cent |
| // vingt-deux" ("eleven hundred one hundred twenty-two"). |
| + " 1100>: onze cents[ >>];\n" |
| // at 1,200, we go back to formating in thousands, so we |
| // repeat the rule for 1,000 |
| + " 1200: mille >>;\n" |
| // at 2,000, the multiplier is added |
| + " 2000: << mille[ >>];\n" |
| + " 1,000,000: << million[ >>];\n" |
| + " 1,000,000,000: << milliarde[ >>];\n" |
| + " 1,000,000,000,000: << billion[ >>];\n" |
| + " 1,000,000,000,000,000: =#,##0=;\n" |
| // %%alt-ones is used to insert "et" when the ones digit is 1 |
| + "%%alt-ones:\n" |
| + " ; et-un; =%main=;" } |
| }; |
| } |