NAME
Time::Keeper::Natural::Numbers - number words from CLDR's spellout rules
VERSION
Version 0.01
SYNOPSIS
my $nw = Time::Keeper::Natural::Numbers->for('fr');
$nw->read('vingt-et-un'); # 21
$nw->read('vingt et un'); # 21
$nw->ordinal('troisième'); # 3
Time::Keeper::Natural::Numbers->locales;
DESCRIPTION
The words for the whole numbers 0 to 99, and the ordinals 1 to 31, of the locales whose CLDR data has spellout rules: about ninety. They are made once, when the distribution is built, by running CLDR's rules forward (tools/numbercompile), so every form a locale's rules can write is here, its genders and cases among them ("одна", "одного", "одной" are all 1), and nothing that the rules do not write. English adds one hand-written row, "a" and "an" for 1, so "in a week" reads. A locale with no spellout rules reads digits only, in any script, as it always did.
A word is read in lower case, with any run of spaces as one, and with its hyphens or with spaces in their place, so "twenty-one" and "twenty one" are both 21, and French "vingt-et-un" and "vingt et un" both 21. No other spelling is read: "vingt-et-un" in the 1990 spelling is what CLDR writes, and a spelling it does not write is not in the table.
METHODS
for
The number words of a locale, from the nearest locale in its chain that has rules (fr-CA reads fr's), or undef.
read
The whole number a text is, 0 to 99, or undef.
ordinal
The number an ordinal word is, 1 to 31, or undef.
cardinals
The words and their numbers, as a list of pairs.
ordinals
The ordinal words and their numbers.
code
The locale whose rules were read.
locales
The locales that have number words.
chain
The codes tried for a locale, its own first.
dir
Where the words are, one file a locale: beside the module once installed, or the distribution's share/numbers when run from its tree. A locale with no file in its chain has no number words, and finding that out reads nothing.
SEE ALSO
Time::Keeper::Natural, Time::Keeper::Natural::Lexicon.
AUTHOR
LNATION <email@lnation.org>
LICENSE AND COPYRIGHT
This software is Copyright (c) 2026 by LNATION.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)