e00ca7411d
X-SVN-Rev: 15994
75 lines
3.3 KiB
Plaintext
75 lines
3.3 KiB
Plaintext
// ***************************************************************************
|
|
// *
|
|
// * Copyright (C) 2004, International Business Machines
|
|
// * Corporation and others. All Rights Reserved.
|
|
// *
|
|
// ***************************************************************************
|
|
//
|
|
|
|
es {
|
|
//------------------------------------------------------------
|
|
// Rule Based Number Format Support
|
|
//------------------------------------------------------------
|
|
|
|
// * Spellout rules for Spanish. The Spanish rules are quite similar to
|
|
// * the English rules, but there are some important differences:
|
|
// * First, we have to provide separate rules for most of the twenties
|
|
// * because the ones digit frequently picks up an accent mark that it
|
|
// * doesn't have when standing alone. Second, each multiple of 100 has
|
|
// * to be specified separately because the multiplier on 100 very often
|
|
// * changes form in the contraction: 500 is "quinientos," not
|
|
// * "cincocientos." In addition, the word for 100 is "cien" when
|
|
// * standing alone, but changes to "ciento" when followed by more digits.
|
|
// * There also some other differences.
|
|
|
|
// The Spanish rules are incomplete. I'm missing information on negative
|
|
// numbers and numbers with fractional parts. I also don't have
|
|
// information on numbers higher than the millions.
|
|
|
|
SpelloutRules {
|
|
// negative-number and fraction rules
|
|
"-x: menos >>;\n"
|
|
"x.x: << punto >>;\n"
|
|
// words for values from 0 to 19
|
|
"cero; uno; dos; tres; cuatro; cinco; seis; siete; ocho; nueve;\n"
|
|
"diez; once; doce; trece; catorce; quince; diecis\u00e9is;\n"
|
|
" diecisiete; dieciocho; diecinueve;\n"
|
|
// words for values from 20 to 29 (necessary because the ones digit
|
|
// often picks up an accent mark it doesn't have when standing alone)
|
|
"veinte; veintiuno; veintid\u00f3s; veintitr\u00e9s; veinticuatro;\n"
|
|
" veinticinco; veintis\u00e9is; veintisiete; veintiocho;\n"
|
|
" veintinueve;\n"
|
|
// words for multiples of 10 (notice that the tens digit is separated
|
|
// from the ones digit by the word "y".)
|
|
"30: treinta[ y >>];\n"
|
|
"40: cuarenta[ y >>];\n"
|
|
"50: cincuenta[ y >>];\n"
|
|
"60: sesenta[ y >>];\n"
|
|
"70: setenta[ y >>];\n"
|
|
"80: ochenta[ y >>];\n"
|
|
"90: noventa[ y >>];\n"
|
|
// 100 by itself is "cien," but 100 followed by something is "cineto"
|
|
"100: cien;\n"
|
|
"101: ciento >>;\n"
|
|
// words for multiples of 100 (must be stated because they're
|
|
// rarely simple concatenations)
|
|
"200: doscientos[ >>];\n"
|
|
"300: trescientos[ >>];\n"
|
|
"400: cuatrocientos[ >>];\n"
|
|
"500: quinientos[ >>];\n"
|
|
"600: seiscientos[ >>];\n"
|
|
"700: setecientos[ >>];\n"
|
|
"800: ochocientos[ >>];\n"
|
|
"900: novecientos[ >>];\n"
|
|
// for 1,000, the multiplier on "mil" is omitted: 2,000 is "dos mil,"
|
|
// but 1,000 is just "mil."
|
|
"1000: mil[ >>];\n"
|
|
"2000: << mil[ >>];\n"
|
|
// 1,000,000 is "un millon," not "uno millon"
|
|
"1,000,000: un mill\u00f3n[ >>];\n"
|
|
"2,000,000: << mill\u00f3n[ >>];\n"
|
|
// overflow rule
|
|
"1,000,000,000: =#,##0= (incomplete data);"
|
|
}
|
|
}
|