]>
Commit | Line | Data |
---|---|---|
374ca955 A |
1 | // *************************************************************************** |
2 | // * | |
3 | // * Copyright (C) 2004, International Business Machines | |
4 | // * Corporation and others. All Rights Reserved. | |
5 | // * | |
6 | // *************************************************************************** | |
7 | // | |
8 | ||
9 | it { | |
10 | //------------------------------------------------------------ | |
11 | // Rule Based Number Format Support | |
12 | //------------------------------------------------------------ | |
13 | ||
14 | // * Spellout rules for Italian. Like German, most Italian numbers are | |
15 | // * written as single words. What makes these rules complicated is the rule | |
16 | // * that says that when a word ending in a vowel and a word beginning with | |
17 | // * a vowel are combined into a compound, the vowel is dropped from the | |
18 | // * end of the first word: 180 is "centottanta," not "centoottanta." | |
19 | // * The complexity of this rule set is to produce this behavior. | |
20 | ||
21 | // Can someone confirm that I did the vowel-eliding thing right? I'm | |
22 | // not 100% sure I'm doing it in all the right places, or completely | |
23 | // correctly. Also, I don't have information for negatives and decimals, | |
24 | // and I lack words fror values from 1,000,000 on up. | |
25 | ||
26 | SpelloutRules { | |
27 | // main rule set. Follows the patterns of the preceding rule sets, | |
28 | // except that the final vowel is omitted from words ending in | |
29 | // vowels when they are followed by another word; instead, we have | |
30 | // separate rule sets that are identical to this one, except that | |
31 | // all the words that don't begin with a vowel have a vowel tacked | |
32 | // onto them at the front. A word ending in a vowel calls a | |
33 | // substitution that will supply that vowel, unless that vowel is to | |
34 | // be elided. | |
35 | "%main:\n" | |
36 | "-x: meno >>;\n" | |
37 | "x.x: << virgola >>;\n" | |
38 | "zero; uno; due; tre; quattro; cinque; sei; sette; otto; nove;\n" | |
39 | "dieci; undici; dodici; tredici; quattordici; quindici; sedici;\n" | |
40 | " diciasette; diciotto; diciannove;\n" | |
41 | "20: venti; vent>%%with-i>;\n" | |
42 | "30: trenta; trent>%%with-i>;\n" | |
43 | "40: quaranta; quarant>%%with-a>;\n" | |
44 | "50: cinquanta; cinquant>%%with-a>;\n" | |
45 | "60: sessanta; sessant>%%with-a>;\n" | |
46 | "70: settanta; settant>%%with-a>;\n" | |
47 | "80: ottanta; ottant>%%with-a>;\n" | |
48 | "90: novanta; novant>%%with-a>;\n" | |
49 | "100: cento; cent[>%%with-o>];\n" | |
50 | "200: <<cento; <<cent[>%%with-o>];\n" | |
51 | "1000: mille; mill[>%%with-i>];\n" | |
52 | "2000: <<mila; <<mil[>%%with-a>];\n" | |
53 | "100,000>>: <<mila[ >>];\n" | |
54 | "1,000,000: =#,##0= (incomplete data);\n" | |
55 | "%%with-a:\n" | |
56 | "azero; uno; adue; atre; aquattro; acinque; asei; asette; otto; anove;\n" | |
57 | "adieci; undici; adodici; atredici; aquattordici; aquindici; asedici;\n" | |
58 | " adiciasette; adiciotto; adiciannove;\n" | |
59 | "20: aventi; avent>%%with-i>;\n" | |
60 | "30: atrenta; atrent>%%with-i>;\n" | |
61 | "40: aquaranta; aquarant>%%with-a>;\n" | |
62 | "50: acinquanta; acinquant>%%with-a>;\n" | |
63 | "60: asessanta; asessant>%%with-a>;\n" | |
64 | "70: asettanta; asettant>%%with-a>;\n" | |
65 | "80: ottanta; ottant>%%with-a>;\n" | |
66 | "90: anovanta; anovant>%%with-a>;\n" | |
67 | "100: acento; acent[>%%with-o>];\n" | |
68 | "200: <%%with-a<cento; <%%with-a<cent[>%%with-o>];\n" | |
69 | "1000: amille; amill[>%%with-i>];\n" | |
70 | "2000: <%%with-a<mila; <%%with-a<mil[>%%with-a>];\n" | |
71 | "100,000: =%main=;\n" | |
72 | "%%with-i:\n" | |
73 | "izero; uno; idue; itre; iquattro; icinque; isei; isette; otto; inove;\n" | |
74 | "idieci; undici; idodici; itredici; iquattordici; iquindici; isedici;\n" | |
75 | " idiciasette; idiciotto; idiciannove;\n" | |
76 | "20: iventi; ivent>%%with-i>;\n" | |
77 | "30: itrenta; itrent>%%with-i>;\n" | |
78 | "40: iquaranta; iquarant>%%with-a>;\n" | |
79 | "50: icinquanta; icinquant>%%with-a>;\n" | |
80 | "60: isessanta; isessant>%%with-a>;\n" | |
81 | "70: isettanta; isettant>%%with-a>;\n" | |
82 | "80: ottanta; ottant>%%with-a>;\n" | |
83 | "90: inovanta; inovant>%%with-a>;\n" | |
84 | "100: icento; icent[>%%with-o>];\n" | |
85 | "200: <%%with-i<cento; <%%with-i<cent[>%%with-o>];\n" | |
86 | "1000: imille; imill[>%%with-i>];\n" | |
87 | "2000: <%%with-i<mila; <%%with-i<mil[>%%with-a>];\n" | |
88 | "100,000: =%main=;\n" | |
89 | "%%with-o:\n" | |
90 | "ozero; uno; odue; otre; oquattro; ocinque; osei; osette; otto; onove;\n" | |
91 | "odieci; undici; ododici; otredici; oquattordici; oquindici; osedici;\n" | |
92 | " odiciasette; odiciotto; odiciannove;\n" | |
93 | "20: oventi; ovent>%%with-i>;\n" | |
94 | "30: otrenta; otrent>%%with-i>;\n" | |
95 | "40: oquaranta; oquarant>%%with-a>;\n" | |
96 | "50: ocinquanta; ocinquant>%%with-a>;\n" | |
97 | "60: osessanta; osessant>%%with-a>;\n" | |
98 | "70: osettanta; osettant>%%with-a>;\n" | |
99 | "80: ottanta; ottant>%%with-a>;\n" | |
100 | "90: onovanta; onovant>%%with-a>;\n" | |
101 | "100: ocento; ocent[>%%with-o>];\n" | |
102 | "200: <%%with-o<cento; <%%with-o<cent[>%%with-o>];\n" | |
103 | "1000: omille; omill[>%%with-i>];\n" | |
104 | "2000: <%%with-o<mila; <%%with-o<mil[>%%with-a>];\n" | |
105 | "100,000: =%main=;\n" | |
106 | } | |
107 | ||
108 | } |