summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-xetex/data/rbnf/mt.txt
blob: 2a56257fdafdcb502f84b1de3faf3c38f4d0166e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
// ***************************************************************************
// *
// *   Copyright (C) 2004, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************
// 

mt {
// Spellout rules.  Experimental.

    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 punt one two
                // three") replaces the >>.
            "x.x: << punt >>;\n"
                // the rules for the values from 0 to 19 are simply the
                // words for those numbers
            "żero; wieħed; tnejn; tlieta; erbgħa; ħamsa; sitta; sebgħa; tmienja; disgħa;\n"
            "għaxra; ħdax; tnax; tlettax; erbatax; ħmistax; sittax;\n"
            "    sbatax; tmintax; dsatax;\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: [>> u ]għoxrin;\n"
            "30: [>> u ]tletin;\n"
            "40: [>> u ]erbgħin;\n"
            "50: [>> u ]ħamsin;\n"
            "60: [>> u ]sittin;\n"
            "70: [>> u ]sebgħin;\n"
            "80: [>> u ]tmenin;\n"
            "90: [>> u ]disgħin;\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: mija[ u >>];\n"
            "200: mitejn[ u >>];\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: << elf[ u >>];\n"
            "2000: << elfejn[ u >>];\n"
            "3000: tliet elef [ u >>];\n"
            "1,000,000: << miljun[ u >>];\n"
            "1,000,000,000: << biljun[ >>];\n"
            "1,000,000,000,000: << triljun[ >>];\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: << punt >>;\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: mija[ >%%and>];\n"
            "200: mitejn[ >%%and>];\n"
            "300: tlett mija[ >%%and>];\n"
            "400: erbgħa mija[ >%%and>];\n"
            "500: ħames mija[ >%%and>];\n"
            "600: sitt mija[ >%%and>];\n"
            "700: sebgħa mija[ >%%and>];\n"
            "800: tmin mija[ >%%and>];\n"
            "900: disgħa mija[ >%%and>];\n"
            "1000: << elf[ >%%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"
            "u =%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"
    }


    DurationRules {
        // main rule set for formatting with words
        "%with-words:\n"
                // take care of singular and plural forms of "second"
            "0 sekondi; 1 sekonda; =0= sekondi;\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 minuti; 1 minuta; =0= minuti;\n"
        // this rule set takes care of the singular and plural forms
        // of "hour"
        "%%hr:\n"
            "0 siegħat; 1 siegħa; =0= siegħat;\n"

        // main rule set for formatting in numerals
        "%in-numerals:\n"
                // values below 60 seconds are shown with "sec."
            "=0= sek.;\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" 
    }
}