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):
|
class Num2Word_NL(Num2Word_EU):
|
||||||
|
CURRENCY_FORMS = {
|
||||||
|
'EUR': (('euro', 'euro'), ('cent', 'cents')),
|
||||||
|
}
|
||||||
|
|
||||||
GIGA_SUFFIX = "iljard"
|
GIGA_SUFFIX = "iljard"
|
||||||
MEGA_SUFFIX = "iljoen"
|
MEGA_SUFFIX = "iljoen"
|
||||||
|
|
||||||
@@ -55,13 +59,14 @@ class Num2Word_NL(Num2Word_EU):
|
|||||||
"sexagint", "septuagint", "oktogint", "nonagint"]
|
"sexagint", "septuagint", "oktogint", "nonagint"]
|
||||||
|
|
||||||
self.high_numwords = (
|
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"),
|
self.mid_numwords = [(1000, "duizend"), (100, "honderd"),
|
||||||
(90, "negentig"), (80, "tachtig"),
|
(90, "negentig"), (80, "tachtig"),
|
||||||
(70, "zeventig"), (60, "zestig"),
|
(70, "zeventig"), (60, "zestig"),
|
||||||
(50, "vijftig"), (40, "veertig"),
|
(50, "vijftig"), (40, "veertig"),
|
||||||
(30, "dertig")]
|
(30, "dertig")]
|
||||||
|
|
||||||
self.low_numwords = ["twintig", "negentien", "achttien", "zeventien",
|
self.low_numwords = ["twintig", "negentien", "achttien", "zeventien",
|
||||||
"zestien", "vijftien", "veertien", "dertien",
|
"zestien", "vijftien", "veertien", "dertien",
|
||||||
"twaalf", "elf", "tien", "negen", "acht", "zeven",
|
"twaalf", "elf", "tien", "negen", "acht", "zeven",
|
||||||
@@ -129,12 +134,17 @@ class Num2Word_NL(Num2Word_EU):
|
|||||||
self.verify_ordinal(value)
|
self.verify_ordinal(value)
|
||||||
return str(value) + "."
|
return str(value) + "."
|
||||||
|
|
||||||
def to_currency(self, val, longval=True, old=False):
|
def pluralize(self, n, forms):
|
||||||
if old:
|
"""
|
||||||
return self.to_splitnum(val, hightxt="euro/s", lowtxt="cent/s",
|
:param n:
|
||||||
jointxt="en", longval=longval)
|
:param forms:
|
||||||
return super(Num2Word_NL, self).to_currency(val, jointxt="en",
|
:return:
|
||||||
longval=longval)
|
|
||||||
|
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):
|
def to_year(self, val, longval=True):
|
||||||
if not (val // 100) % 10:
|
if not (val // 100) % 10:
|
||||||
|
|||||||
@@ -64,3 +64,26 @@ class Num2WordsNLTest(TestCase):
|
|||||||
|
|
||||||
def test_ordinal_for_floating_numbers(self):
|
def test_ordinal_for_floating_numbers(self):
|
||||||
self.assertRaises(TypeError, num2words, 2.453, ordinal=True, lang='nl')
|
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