blob: 08818e8be8fdaa32876ef7d1d76d81b33ee9521b [file] [log] [blame]
/*
*******************************************************************************
* 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=;" }
};
}