All Projects → savoirfairelinux → Num2words

savoirfairelinux / Num2words

Licence: lgpl-2.1
Modules to convert numbers to words. 42 --> forty-two

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Num2words

Graphql Engine
Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.
Stars: ✭ 24,845 (+5372.47%)
Mutual labels:  hacktoberfest
Zek
Generate a Go struct from XML.
Stars: ✭ 451 (-0.66%)
Mutual labels:  hacktoberfest
Trow
Container Registry and Image Management for Kubernetes Clusters
Stars: ✭ 453 (-0.22%)
Mutual labels:  hacktoberfest
Superjson
Safely serialize JavaScript expressions to a superset of JSON, which includes Dates, BigInts, and more.
Stars: ✭ 446 (-1.76%)
Mutual labels:  hacktoberfest
Justtryharder
JustTryHarder, a cheat sheet which will aid you through the PWK course & the OSCP Exam. (Inspired by PayloadAllTheThings)
Stars: ✭ 450 (-0.88%)
Mutual labels:  hacktoberfest
Gitlab Ci Pipeline Php
☕️ Docker images for test PHP applications with Gitlab CI (or any other CI platform!)
Stars: ✭ 451 (-0.66%)
Mutual labels:  hacktoberfest
React Native Elements
Cross-Platform React Native UI Toolkit
Stars: ✭ 21,758 (+4692.51%)
Mutual labels:  hacktoberfest
Ruby
All algorithms implemented in Ruby
Stars: ✭ 454 (+0%)
Mutual labels:  hacktoberfest
Csi Digitalocean
A Container Storage Interface (CSI) Driver for DigitalOcean Block Storage
Stars: ✭ 452 (-0.44%)
Mutual labels:  hacktoberfest
Yarn
Libre Minecraft mappings, free to use for everyone. No exceptions.
Stars: ✭ 453 (-0.22%)
Mutual labels:  hacktoberfest
Telegram
✈️ Telegram Notifications Channel for Laravel
Stars: ✭ 450 (-0.88%)
Mutual labels:  hacktoberfest
Kubectl Neat
Clean up Kuberntes yaml and json output to make it readable
Stars: ✭ 451 (-0.66%)
Mutual labels:  hacktoberfest
Openshift Docs
OpenShift 3 and 4 product and community documentation
Stars: ✭ 452 (-0.44%)
Mutual labels:  hacktoberfest
Dynamoid
Ruby ORM for Amazon's DynamoDB.
Stars: ✭ 449 (-1.1%)
Mutual labels:  hacktoberfest
Patternfly React
A set of React components for the PatternFly project.
Stars: ✭ 454 (+0%)
Mutual labels:  hacktoberfest
Github Readme Stats
⚡ Dynamically generated stats for your github readmes
Stars: ✭ 34,955 (+7599.34%)
Mutual labels:  hacktoberfest
React Masonry Css
React Masonry layout component powered by CSS, dependancy free
Stars: ✭ 451 (-0.66%)
Mutual labels:  hacktoberfest
Ava Docs
Localized docs for AVA
Stars: ✭ 455 (+0.22%)
Mutual labels:  hacktoberfest
The Plain
A minimalist Jekyll theme, ideally designed for your personal blog use.
Stars: ✭ 453 (-0.22%)
Mutual labels:  hacktoberfest
Retry Go
Simple golang library for retry mechanism
Stars: ✭ 452 (-0.44%)
Mutual labels:  hacktoberfest

num2words library - Convert numbers to words in multiple languages

.. image:: https://img.shields.io/pypi/v/num2words.svg :target: https://pypi.python.org/pypi/num2words

.. image:: https://travis-ci.org/savoirfairelinux/num2words.svg?branch=master :target: https://travis-ci.org/savoirfairelinux/num2words

.. image:: https://coveralls.io/repos/github/savoirfairelinux/num2words/badge.svg?branch=master :target: https://coveralls.io/github/savoirfairelinux/num2words?branch=master

num2words is a library that converts numbers like 42 to words like forty-two. It supports multiple languages (see the list below for full list of languages) and can even generate ordinal numbers like forty-second (although this last feature is a bit buggy for some languages at the moment).

The project is hosted on GitHub_. Contributions are welcome.

.. _GitHub: https://github.com/savoirfairelinux/num2words

Installation

The easiest way to install num2words is to use pip::

pip install num2words

Otherwise, you can download the source package and then execute::

python setup.py install

The test suite in this library is new, so it's rather thin, but it can be run with::

python setup.py test

To run the full CI test suite which includes linting and multiple python environments::

pip install tox
tox

Usage

Command line::

$ num2words 10001
ten thousand and one
$ num2words 24,120.10
twenty-four thousand, one hundred and twenty point one
$ num2words 24,120.10 -l es
veinticuatro mil ciento veinte punto uno
$num2words 2.14 -l es --to currency
dos euros con catorce centimos

In code there's only one function to use::

>>> from num2words import num2words
>>> num2words(42)
forty-two
>>> num2words(42, to='ordinal')
forty-second
>>> num2words(42, lang='fr')
quarante-deux

Besides the numerical argument, there are two main optional arguments.

to: The converter to use. Supported values are:

  • cardinal (default)
  • ordinal
  • ordinal_num
  • year
  • currency

lang: The language in which to convert the number. Supported values are:

  • en (English, default)
  • ar (Arabic)
  • cz (Czech)
  • de (German)
  • dk (Danish)
  • en_GB (English - Great Britain)
  • en_IN (English - India)
  • es (Spanish)
  • es_CO (Spanish - Colombia)
  • es_VE (Spanish - Venezuela)
  • eu (EURO)
  • fi (Finnish)
  • fr (French)
  • fr_CH (French - Switzerland)
  • fr_BE (French - Belgium)
  • fr_DZ (French - Algeria)
  • he (Hebrew)
  • hu (Hungarian)
  • id (Indonesian)
  • it (Italian)
  • ja (Japanese)
  • kn (Kannada)
  • ko (Korean)
  • kz (Kazakh)
  • lt (Lithuanian)
  • lv (Latvian)
  • no (Norwegian)
  • pl (Polish)
  • pt (Portuguese)
  • pt_BR (Portuguese - Brazilian)
  • sl (Slovene)
  • sr (Serbian)
  • sv (Swedish)
  • ro (Romanian)
  • ru (Russian)
  • te (Telugu)
  • tr (Turkish)
  • th (Thai)
  • vi (Vietnamese)
  • nl (Dutch)
  • uk (Ukrainian)

You can supply values like fr_FR; if the country doesn't exist but the language does, the code will fall back to the base language (i.e. fr). If you supply an unsupported language, NotImplementedError is raised. Therefore, if you want to call num2words with a fallback, you can do::

try:
    return num2words(42, lang=mylang)
except NotImplementedError:
    return num2words(42, lang='en')

Additionally, some converters and languages support other optional arguments that are needed to make the converter useful in practice.

Wiki

For additional information on some localization please check the Wiki_. And feel free to propose wiki enhancement.

.. _Wiki: https://github.com/savoirfairelinux/num2words/wiki

History

num2words is based on an old library, pynum2word, created by Taro Ogawa in 2003. Unfortunately, the library stopped being maintained and the author can't be reached. There was another developer, Marius Grigaitis, who in 2011 added Lithuanian support, but didn't take over maintenance of the project.

I am thus basing myself on Marius Grigaitis' improvements and re-publishing pynum2word as num2words.

Virgil Dupras, Savoir-faire Linux

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].