From 904c3c7e1b97b94bb8f08dccff361f6543aca19d Mon Sep 17 00:00:00 2001 From: Pratik Vyas Date: Wed, 21 Jan 2015 16:33:58 +0530 Subject: [PATCH] Add Indian locale --- README.rst | 1 + num2words/__init__.py | 2 ++ num2words/lang_EN_IN.py | 42 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 num2words/lang_EN_IN.py diff --git a/README.rst b/README.rst index 11ab97c..fb48cc9 100644 --- a/README.rst +++ b/README.rst @@ -44,6 +44,7 @@ Besides the numerical argument, there's two optional arguments. * ``lt`` (Lithuanian) * ``lv`` (Latvian) * ``en_GB`` (British English) +* ``en_IN`` (Indian English) You can supply values like ``fr_FR``, the code will be correctly interpreted. If you supply an unsupported language, ``NotImplementedError`` is raised. diff --git a/num2words/__init__.py b/num2words/__init__.py index 188cb5a..7719937 100644 --- a/num2words/__init__.py +++ b/num2words/__init__.py @@ -18,6 +18,7 @@ from __future__ import unicode_literals from . import lang_EN from . import lang_EN_GB +from . import lang_EN_IN from . import lang_FR from . import lang_DE from . import lang_ES @@ -27,6 +28,7 @@ from . import lang_LV CONVERTER_CLASSES = { 'en': lang_EN.Num2Word_EN(), 'en_GB': lang_EN_GB.Num2Word_EN_GB(), + 'en_IN': lang_EN_IN.Num2Word_EN_IN(), 'fr': lang_FR.Num2Word_FR(), 'de': lang_DE.Num2Word_DE(), 'es': lang_ES.Num2Word_ES(), diff --git a/num2words/lang_EN_IN.py b/num2words/lang_EN_IN.py new file mode 100644 index 0000000..3093269 --- /dev/null +++ b/num2words/lang_EN_IN.py @@ -0,0 +1,42 @@ +# 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_EN import Num2Word_EN + +class Num2Word_EN_IN(Num2Word_EN): + def set_high_numwords(self, high): + self.cards[10**7] = "crore" + self.cards[10**5] = "lakh" + + +n2w = Num2Word_EN_IN() +to_card = n2w.to_cardinal +to_ord = n2w.to_ordinal +to_ordnum = n2w.to_ordinal_num + +def main(): + for val in (15000, + 15*10**5, + 15*10**6, + 15*10**7, + 15*10**8, + 15*10**9, + 15*10**10): + n2w.test(val) + +if __name__ == "__main__": + main()