diff --git a/num2words/__init__.py b/num2words/__init__.py index 58eabfb..3fc0c37 100644 --- a/num2words/__init__.py +++ b/num2words/__init__.py @@ -22,6 +22,7 @@ from . import lang_EN_GB from . import lang_EN_IN from . import lang_FR from . import lang_FR_CH +from . import lang_FR_DZ from . import lang_DE from . import lang_ES from . import lang_LT @@ -47,6 +48,7 @@ CONVERTER_CLASSES = { 'en_IN': lang_EN_IN.Num2Word_EN_IN(), 'fr': lang_FR.Num2Word_FR(), 'fr_CH': lang_FR_CH.Num2Word_FR_CH(), + 'fr_DZ': lang_FR_DZ.Num2Word_FR_DZ(), 'de': lang_DE.Num2Word_DE(), 'es': lang_ES.Num2Word_ES(), 'es_CO': lang_ES_CO.Num2Word_ES_CO(), diff --git a/num2words/lang_FR_DZ.py b/num2words/lang_FR_DZ.py new file mode 100644 index 0000000..d513101 --- /dev/null +++ b/num2words/lang_FR_DZ.py @@ -0,0 +1,48 @@ +# Copyright (c) 2003, Taro Ogawa. All Rights Reserved. +# Copyright (c) 2013, Savoir-faire Linux inc. All Rights Reserved. + +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301 USA + +from __future__ import unicode_literals +from .lang_FR import Num2Word_FR + + +class Num2Word_FR_DZ(Num2Word_FR): + def to_currency(self, val, longval=True, cents=True, jointxt="virgule"): + return self.to_splitnum(val, hightxt="dinard/s", lowtxt="centime/s", + jointxt=jointxt, longval=longval, cents=cents) + + +n2w = Num2Word_FR_DZ() +to_card = n2w.to_cardinal +to_ord = n2w.to_ordinal +to_ordnum = n2w.to_ordinal_num +to_year = n2w.to_year +to_currency = n2w.to_currency + +def main(): + for val in [1, 11, 12, 21, 31, 33, 71, 80, 81, 91, 99, 100, 101, 102, 155, + 180, 300, 308, 832, 1000, 1001, 1061, 1100, 1500, 1701, 3000, + 8280, 8291, 150000, 500000, 1000000, 2000000, 2000001, + -21212121211221211111, -2.121212, -1.0000100]: + n2w.test(val) + + n2w.test(1325325436067876801768700107601001012212132143210473207540327057320957032975032975093275093275093270957329057320975093272950730) + for val in [1, 120, 1000, 1120, 1800, 1976, 2000, 2010, 2099, 2171]: + print val, "is", n2w.to_currency(val) + print val, "is", n2w.to_year(val) + + +if __name__ == "__main__": + main() diff --git a/tests/test_fr_dz.py b/tests/test_fr_dz.py new file mode 100644 index 0000000..2463740 --- /dev/null +++ b/tests/test_fr_dz.py @@ -0,0 +1,27 @@ +# -*- encoding: utf-8 -*- +# Copyright (c) 2015, Savoir-faire Linux inc. All Rights Reserved. + +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301 USA + +from __future__ import unicode_literals + +from unittest import TestCase + +from num2words import num2words +from num2words.lang_FR_DZ import to_currency + +class Num2WordsPLTest(TestCase): + def test_currency(self): + self.assertEqual(to_currency(1234.12), "mille deux cent trente-quatre dinards virgule douze centimes") + self.assertEqual(to_currency(45689.89), "quarante-cinq mille six cent quatre-vingt-neuf dinards virgule quatre-vingt-neuf centimes")