mirror of
https://github.com/bblaz/num2words.git
synced 2025-12-06 06:42:25 +00:00
Very naive to_currency implementation for NL
This commit is contained in:
@@ -21,6 +21,10 @@ from .lang_EU import Num2Word_EU
|
||||
|
||||
|
||||
class Num2Word_NL(Num2Word_EU):
|
||||
CURRENCY_FORMS = {
|
||||
'EUR': (('euro', 'euro'), ('cent', 'cents')),
|
||||
}
|
||||
|
||||
GIGA_SUFFIX = "iljard"
|
||||
MEGA_SUFFIX = "iljoen"
|
||||
|
||||
@@ -55,13 +59,14 @@ class Num2Word_NL(Num2Word_EU):
|
||||
"sexagint", "septuagint", "oktogint", "nonagint"]
|
||||
|
||||
self.high_numwords = (
|
||||
["zend"] + self.gen_high_numwords(units, tens, lows)
|
||||
)
|
||||
["zend"] + self.gen_high_numwords(units, tens, lows))
|
||||
|
||||
self.mid_numwords = [(1000, "duizend"), (100, "honderd"),
|
||||
(90, "negentig"), (80, "tachtig"),
|
||||
(70, "zeventig"), (60, "zestig"),
|
||||
(50, "vijftig"), (40, "veertig"),
|
||||
(30, "dertig")]
|
||||
|
||||
self.low_numwords = ["twintig", "negentien", "achttien", "zeventien",
|
||||
"zestien", "vijftien", "veertien", "dertien",
|
||||
"twaalf", "elf", "tien", "negen", "acht", "zeven",
|
||||
@@ -129,12 +134,17 @@ class Num2Word_NL(Num2Word_EU):
|
||||
self.verify_ordinal(value)
|
||||
return str(value) + "."
|
||||
|
||||
def to_currency(self, val, longval=True, old=False):
|
||||
if old:
|
||||
return self.to_splitnum(val, hightxt="euro/s", lowtxt="cent/s",
|
||||
jointxt="en", longval=longval)
|
||||
return super(Num2Word_NL, self).to_currency(val, jointxt="en",
|
||||
longval=longval)
|
||||
def pluralize(self, n, forms):
|
||||
"""
|
||||
:param n:
|
||||
:param forms:
|
||||
:return:
|
||||
|
||||
gettext form is nplurals=2; plural=(n != 1);
|
||||
but this claims https://onzetaal.nl/taaladvies/euro-euros/
|
||||
not sure if it's applied only to euro
|
||||
"""
|
||||
return forms[0]
|
||||
|
||||
def to_year(self, val, longval=True):
|
||||
if not (val // 100) % 10:
|
||||
|
||||
@@ -64,3 +64,26 @@ class Num2WordsNLTest(TestCase):
|
||||
|
||||
def test_ordinal_for_floating_numbers(self):
|
||||
self.assertRaises(TypeError, num2words, 2.453, ordinal=True, lang='nl')
|
||||
|
||||
def test_to_currency(self):
|
||||
self.assertEqual(
|
||||
num2words('38.4', lang='nl', to='currency', seperator=' en',
|
||||
cents=False, currency='EUR'),
|
||||
"achtendertig euro en 40 cent"
|
||||
)
|
||||
self.assertEqual(
|
||||
num2words('0', lang='nl', to='currency', seperator=' en',
|
||||
cents=False, currency='EUR'),
|
||||
"nul euro en 00 cent"
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
num2words('1.01', lang='nl', to='currency', seperator=' en',
|
||||
cents=True, currency='EUR'),
|
||||
"één euro en één cent"
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
num2words('4778.00', lang='nl', to='currency', seperator=' en',
|
||||
cents=True, currency='EUR'),
|
||||
'vierduizendzevenhonderdachtenzeventig euro en nul cent')
|
||||
|
||||
Reference in New Issue
Block a user