Skip to content

Commit

Permalink
[ADD] num2words: add traslation to spanish of several currencies
Browse files Browse the repository at this point in the history
  • Loading branch information
fernandahf committed Dec 26, 2020
1 parent e5bed36 commit 6426543
Show file tree
Hide file tree
Showing 2 changed files with 219 additions and 1 deletion.
32 changes: 31 additions & 1 deletion num2words/lang_ES.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,43 @@

from .lang_EU import Num2Word_EU

GENERIC_DOLLARS = ('dolar', 'dólares')
GENERIC_CENTS = ('centavo', 'centavos')


class Num2Word_ES(Num2Word_EU):
CURRENCY_FORMS = {
'EUR': (('euro', 'euros'), ('céntimo', 'céntimos')),
'ESP': (('peseta', 'pesetas'), ('céntimo', 'céntimos')),
'USD': (('dolar', 'dólares'), ('centavo', 'centavos')),
'USD': (GENERIC_DOLLARS, GENERIC_CENTS),
'PEN': (('sol', 'soles'), ('céntimo', 'céntimos')),
'CRC': (('colón', 'colones'), GENERIC_CENTS),
'AUD': (GENERIC_DOLLARS, GENERIC_CENTS),
'CAD': (GENERIC_DOLLARS, GENERIC_CENTS),
'GBP': (('libra esterlina', 'libras esterlinas'), ('penny', 'pence')),
'RUB': (('rublo', 'rublos'), ('kopeyka', 'kopeykas')),
'SEK': (('corona sueca', 'coronas suecas'), ('öre', 'öre')),
'NOK': (('corona noruega', 'coronas noruegas'), ('øre', 'øre')),
'PLN': (('zloty', 'zlotys'), ('grosz', 'groszy')),
'MXN': (('peso', 'pesos'), GENERIC_CENTS),
'RON': (('leu', 'leus'), ('ban', 'bani')),
'INR': (('rupia', 'rupias'), ('paisa', 'paisas')),
'HUF': (('florín', 'florines'), ('fillér', 'fillér')),
'FRF': (('franco', 'francos'), ('céntimo', 'céntimos')),
'CNY': (('yuan', 'yuanes'), ('fen', 'jiaos')),
'CZK': (('corona checa', 'coronas checas'), ('haléř', 'haléř')),
'NIO': (('córdoba', 'córdobas'), GENERIC_CENTS),
'VES': (('bolívar', 'bolivares'), ('céntimo', 'céntimos')),
'BRL': (('real', 'reales'), GENERIC_CENTS),
'CHF': (('franco suizo', 'francos suizos'), ('céntimo', 'céntimos')),
'JPY': (('yen', 'yenes'), ('sen', 'sen')),
'KRW': (('won surcoreano', 'wones surcoreanos'), ('jeon', 'jeon')),
'KPW': (('won norcoreanos', 'wones norcoreanos'), ('chon', 'chon')),
'TRY': (('lira', 'liras'), ('kuruş', 'kuruş')),
'ZAR': (('rand', 'rands'), ('céntimo', 'céntimos')),
'KZT': (('tenge kazajo', 'tenges kazajos'), ('tïın', 'tïın')),
'UAH': (('hryvnia', 'hryvnias'), ('kopiyka', 'kopiykas')),
'THB': (('baht tailandés', 'bahts tailandeses'), ('satang', 'satang')),
}

# //CHECK: Is this sufficient??
Expand Down
188 changes: 188 additions & 0 deletions tests/test_en.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,194 @@ def test_to_currency(self):
"four pesos and one cent"
)

self.assertEqual(
num2words('452.99', lang='es_MX', to='currency', separator=' y',
cents=True, currency='EUR'),
"cuatrocientos cincuenta y dos euros y noventa y nueve céntimos"
)

self.assertEqual(
num2words('167.50', lang='es_MX', to='currency', separator=' y',
cents=True, currency='ESP'),
"ciento sesenta y siete pesetas y cincuenta céntimos"
)

self.assertEqual(
num2words('876.32', lang='es_MX', to='currency', separator=' y',
cents=True, currency='USD'),
"ochocientos setenta y seis dólares y treinta y dos centavos"
)

self.assertEqual(
num2words('508.78', lang='es_MX', to='currency', separator=' y',
cents=True, currency='PEN'),
"quinientos ocho soles y setenta y ocho céntimos"
)

self.assertEqual(
num2words('2.11', lang='es_MX', to='currency', separator=' y',
cents=True, currency='CRC'),
"dos colones y once centavos"
)

self.assertEqual(
num2words('4567', lang='es_MX', to='currency', separator=' y',
cents=True, currency='AUD'),
"cuatro mil quinientos sesenta y siete dólares y cero centavos"
)

self.assertEqual(
num2words('1129.10', lang='es_MX', to='currency', separator=' y',
cents=True, currency='CAD'),
"mil ciento veintinueve dólares y diez centavos"
)

self.assertEqual(
num2words('994.80', lang='es_MX', to='currency', separator=' y',
cents=True, currency='GBP'),
"novecientos noventa y cuatro libras esterlinas y ochenta pence"
)

self.assertEqual(
num2words('703.30', lang='es_MX', to='currency', separator=' y',
cents=True, currency='RUB'),
"setecientos tres rublos y treinta kopeykas"
)

self.assertEqual(
num2words('2500.99', lang='es_MX', to='currency', separator=' y',
cents=True, currency='SEK'),
"dos mil quinientos coronas suecas y noventa y nueve öre"
)

self.assertEqual(
num2words('5021.19', lang='es_MX', to='currency', separator=' y',
cents=True, currency='NOK'),
"cinco mil veintiun coronas noruegas y diecinueve øre"
)

self.assertEqual(
num2words('3490.20', lang='es_MX', to='currency', separator=' y',
cents=True, currency='PLN'),
"tres mil cuatrocientos noventa zlotys y veinte groszy"
)

self.assertEqual(
num2words('1500.56', lang='es_MX', to='currency', separator=' y',
cents=True, currency='MXN'),
"mil quinientos pesos y cincuenta y seis centavos"
)

self.assertEqual(
num2words('1.78', lang='es_MX', to='currency', separator=' y',
cents=True, currency='RON'),
"un leu y setenta y ocho bani"
)

self.assertEqual(
num2words('7898.45', lang='es_MX', to='currency', separator=' y',
cents=True, currency='INR'),
("siete mil ochocientos noventa y ocho rupias"
" y cuarenta y cinco paisas")
)

self.assertEqual(
num2words('2001.45', lang='es_MX', to='currency', separator=' y',
cents=True, currency='HUF'),
"dos mil un florines y cuarenta y cinco fillér"
)

self.assertEqual(
num2words('3067.17', lang='es_MX', to='currency', separator=' y',
cents=True, currency='FRF'),
"tres mil sesenta y siete francos y diecisiete céntimos"
)

self.assertEqual(
num2words('500', lang='es_MX', to='currency', separator=' y',
cents=True, currency='CNY'),
"quinientos yuanes y cero jiaos"
)

self.assertEqual(
num2words('623.32', lang='es_MX', to='currency', separator=' y',
cents=True, currency='CZK'),
"seiscientos veintitrés coronas checas y treinta y dos haléř"
)

self.assertEqual(
num2words('1800', lang='es_MX', to='currency', separator=' y',
cents=True, currency='NIO'),
"mil ochocientos córdobas y cero centavos"
)

self.assertEqual(
num2words('1.45', lang='es_MX', to='currency', separator=' y',
cents=True, currency='VES'),
"un bolívar y cuarenta y cinco céntimos"
)

self.assertEqual(
num2words('3010', lang='es_MX', to='currency', separator=' y',
cents=True, currency='BRL'),
"tres mil diez reales y cero centavos"
)

self.assertEqual(
num2words('5520.66', lang='es_MX', to='currency', separator=' y',
cents=True, currency='CHF'),
("cinco mil quinientos veinte francos suizos"
" y sesenta y seis céntimos")
)

self.assertEqual(
num2words('119.87', lang='es_MX', to='currency', separator=' y',
cents=True, currency='JPY'),
"ciento diecinueve yenes y ochenta y siete sen"
)

self.assertEqual(
num2words('207.66', lang='es_MX', to='currency', separator=' y',
cents=True, currency='KRW'),
"doscientos siete wones surcoreanos y sesenta y seis jeon"
)

self.assertEqual(
num2words('101.33', lang='es_MX', to='currency', separator=' y',
cents=True, currency='KPW'),
"ciento un wones norcoreanos y treinta y tres chon"
)

self.assertEqual(
num2words('1010', lang='es_MX', to='currency', separator=' y',
cents=True, currency='TRY'),
"mil diez liras y cero kuruş"
)

self.assertEqual(
num2words('1110.99', lang='es_MX', to='currency', separator=' y',
cents=True, currency='ZAR'),
"mil ciento diez rands y noventa y nueve céntimos"
)

self.assertEqual(
num2words('7400.01', lang='es_MX', to='currency', separator=' y',
cents=True, currency='KZT'),
"siete mil cuatrocientos tenges kazajos y un tïın"
)

self.assertEqual(
num2words('10501.70', lang='es_MX', to='currency', separator=' y',
cents=True, currency='UAH'),
"diez mil quinientos un hryvnias y setenta kopiykas"
)

self.assertEqual(
num2words('1401.33', lang='es_MX', to='currency', separator=' y',
cents=True, currency='THB'),
"mil cuatrocientos un bahts tailandeses y treinta y tres satang"
)

def test_to_year(self):
# issue 141
# "e2 e2"
Expand Down

0 comments on commit 6426543

Please sign in to comment.