diff options
Diffstat (limited to 'Build/source/libs/icu/icu-xetex/data/rbnf/fr.txt')
-rw-r--r-- | Build/source/libs/icu/icu-xetex/data/rbnf/fr.txt | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-xetex/data/rbnf/fr.txt b/Build/source/libs/icu/icu-xetex/data/rbnf/fr.txt new file mode 100644 index 00000000000..6d1fbd50686 --- /dev/null +++ b/Build/source/libs/icu/icu-xetex/data/rbnf/fr.txt @@ -0,0 +1,79 @@ +// *************************************************************************** +// * +// * Copyright (C) 2004, International Business Machines +// * Corporation and others. All Rights Reserved. +// * +// *************************************************************************** +// + +fr { + + //------------------------------------------------------------ + // Rule Based Number Format Support + //------------------------------------------------------------ + + // * 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: << milliard[ >>];\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=;\n" + "%%lenient-parse:\n" + "&\u0000 << ' ' << ',' << '-';\n" + } +} |