[ADD] Add lang fr_BE + tests (#151)

This commit is contained in:
François Honoré (Acsone)
2018-01-16 20:38:43 +01:00
committed by Ernesto Rodriguez Ortiz
parent e28394d29f
commit ce21cb9f18
5 changed files with 182 additions and 0 deletions

View File

@@ -21,6 +21,7 @@ from . import lang_EN
from . import lang_EN_IN
from . import lang_FR
from . import lang_FR_CH
from . import lang_FR_BE
from . import lang_FR_DZ
from . import lang_DE
from . import lang_ES
@@ -49,6 +50,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_BE': lang_FR_BE.Num2Word_FR_BE(),
'fr_DZ': lang_FR_DZ.Num2Word_FR_DZ(),
'de': lang_DE.Num2Word_DE(),
'es': lang_ES.Num2Word_ES(),

49
num2words/lang_FR_BE.py Normal file
View File

@@ -0,0 +1,49 @@
# -*- encoding: utf-8 -*-
# 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 print_function, unicode_literals
from .lang_FR import Num2Word_FR
class Num2Word_FR_BE(Num2Word_FR):
def setup(self):
Num2Word_FR.setup(self)
self.mid_numwords = [(1000, "mille"), (100, "cent"), (90, "nonante"),
(80, "quatre-vingt"), (70, "septante"),
(60, "soixante"), (50, "cinquante"),
(40, "quarante"), (30, "trente")]
def merge(self, curr, next):
ctext, cnum, ntext, nnum = curr + next
if cnum == 1:
if nnum < 1000000:
return next
if cnum < 1000 and nnum != 1000 and\
ntext[-1] != "s" and not nnum % 100:
ntext += "s"
if nnum < cnum < 100:
if nnum % 10 == 1:
return ("%s et %s" % (ctext, ntext), cnum + nnum)
return ("%s-%s" % (ctext, ntext), cnum + nnum)
if nnum > cnum:
return ("%s %s" % (ctext, ntext), cnum * nnum)
return ("%s %s" % (ctext, ntext), cnum + nnum)