ordinal: Convert numbers to words in different languages.

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

A package based on Python's num2words package that converts numbers to words in different languages. It contains functions and data types to create a numbers-to-words algorithm for different languages, and converts numbers both to cardinal numbers and ordinal numbers.


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.1.0.0, 0.1.1.0, 0.1.2.0, 0.2.0.0, 0.3.0.0, 0.3.1.0, 0.4.0.0, 0.4.0.2, 0.4.0.3, 0.4.0.4, 0.4.0.5, 0.4.0.6, 0.5.0.0, 0.6.0.0
Change log CHANGELOG.md
Dependencies base (>=4.7 && <5), containers (>=0.5), template-haskell (>=2.15.0.0), text (>=0.1), vector (>=0.7) [details]
License BSD-3-Clause
Copyright 2020 Willem Van Onsem
Author Willem Van Onsem
Maintainer hapytexteu+gh@gmail.com
Category utils
Home page https://github.com/hapytex/ordinal#readme
Source repo head: git clone https://github.com/hapytex/ordinal
Uploaded by wvanonsem90 at 2020-09-28T21:20:38Z

Modules

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for ordinal-0.1.0.0

[back to package description]

ordinal

Build Status of the package by Travis Build Status of the package by Hackage Hackage version badge

A package to convert numbers to the words. It contains a datatype for algorithmic conversion that can convert the number for most languages. It converts numbers to its cardinal and ordinal format.

The package is based on Python's num2words package [GitHub].

The following languages are currently supported (in alphabetical order):

  1. Dutch (nl);
  2. English (en); and
  3. French (fr)

Usage

One can import the Text.Numerals module, and use the toCardinal and toOrdinal functions with a number-to-word algorithm that is exported by the Text.Numerals.Languages module, for example:

Prelude Text.Numerals Data.Text.IO> Data.Text.IO.putStrLn (toCardinal english 42)
forty-two
Prelude Text.Numerals Data.Text.IO> Data.Text.IO.putStrLn (toOrdinal french 42)
quarante-deuxième

One can also define a language algorithm themselves, for this one can look at the source code of the language modules.

Package structure

The modules are all located under Text.Numerals module. The Text.Numerals module exports the main modules.

The Text.Numerals.Class module defines classes, data types and synonyms that provide an interface to convert numbers to words.

The Text.Numerals.Algorithm module contains algorithms to make converting numbers to words more convienient. The module Text.Numerals.Algorithm.Template contains functions for template Haskell, at the moment this only contains a function to make an ordinize function.

The Text.Numerals.Prefix module contains numerical prefixes, at the moment only Latin prefixes. These are used for short scale and long scale algorithms to specify millions, billions, etc. in languages.

The Text.Numerals.Languages module exports for each implemented language its algorithm, this makes working with multiple languages more convienient. Under this module there are dedicated modules per language that do not only export the algorithm for that language, but also helper functions and constants.

ordinal is not safe Haskell

The package uses the Data.Vector module which is not safe, and therefore ordinal is not safe either.

Contribute

You can contribute by making a pull request on the GitHub repository.

You can contact the package maintainer by sending a mail to hapytexeu+gh@gmail.com.


This package is dedicated to Wouter Folens (* 2019), in the hope that he will learn about transforming numbers into words.