From 982ace779cdf9382d9f92dde5b395d7c04cc70df Mon Sep 17 00:00:00 2001 From: Vincent Romagnoli Date: Thu, 28 Mar 2024 15:35:26 +0100 Subject: [PATCH 1/4] Add Swiss French support --- README.markdown | 1 + lib/humanize.rb | 2 ++ lib/humanize/locales.rb | 4 +-- lib/humanize/locales/constants/fr_ch.rb | 10 ++++++ lib/humanize/locales/fr_ch.rb | 43 ++++++++++++++++++++++ spec/locales/fr_ch_spec.rb | 48 +++++++++++++++++++++++++ 6 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 lib/humanize/locales/constants/fr_ch.rb create mode 100644 lib/humanize/locales/fr_ch.rb create mode 100644 spec/locales/fr_ch_spec.rb diff --git a/README.markdown b/README.markdown index cb1481c..152c35e 100644 --- a/README.markdown +++ b/README.markdown @@ -85,6 +85,7 @@ Currently supported locales: * English: `:en` * Spanish: `:es` * French: `:fr` +* Swiss French: `:'fr-CH'` * Turkish: `:tr` * Azerbaijani `:az` * German: `:de` diff --git a/lib/humanize.rb b/lib/humanize.rb index 62c6328..0f72300 100644 --- a/lib/humanize.rb +++ b/lib/humanize.rb @@ -38,6 +38,8 @@ def self.for_locale(locale) [Humanize::Tr, SPACE] when :jp [Humanize::Jp, EMPTY] + when :"fr-CH" + [Humanize::FrCh, SPACE] else raise "Unsupported humanize locale: #{locale}" end diff --git a/lib/humanize/locales.rb b/lib/humanize/locales.rb index c058aab..46a6735 100644 --- a/lib/humanize/locales.rb +++ b/lib/humanize/locales.rb @@ -1,5 +1,5 @@ module Humanize - %w[az de en es fr id ms pt ru th tr jp vi].each do |locale| - autoload locale.capitalize.to_sym, "humanize/locales/#{locale}.rb" + %w[az de en es fr fr_ch id ms pt ru th tr jp vi].each do |locale| + autoload locale.split('_').map(&:capitalize).join.to_sym, "humanize/locales/#{locale}.rb" end end diff --git a/lib/humanize/locales/constants/fr_ch.rb b/lib/humanize/locales/constants/fr_ch.rb new file mode 100644 index 0000000..e3d5110 --- /dev/null +++ b/lib/humanize/locales/constants/fr_ch.rb @@ -0,0 +1,10 @@ +module Humanize + class FrCh + INFINITY = 'infini'.freeze + UNDEFINED = 'indéfini'.freeze + NEGATIVE = 'négatif'.freeze + POINT = 'virgule'.freeze + LOTS = [nil, 'mille', 'million', 'milliard', 'billion', 'billiard', 'trillion', 'trilliard', 'quadrillion', 'quadrilliard', 'quintillion', 'quintilliard', 'sextillion', 'sextilliard', 'septillion', 'septilliard', 'octillion', 'octilliard', 'nonillion', 'nonilliard', 'décillion', 'décilliard', 'undécillion', 'undécilliard', 'duodécillion', 'duodécilliard', 'tredécillion', 'tredécilliard', 'quattuordécillion', 'quattuordécilliard', 'quindécillion', 'quindécilliard', 'sexdécillion', 'sexdécilliard', 'septendécillion', 'septendécilliard', 'octodécillion', 'octodécilliard', 'novemdécillion', 'novemdécilliard', 'vigintillion', 'vigintilliard', 'unvigintilliard', 'duovigintilliard', 'trevigintilliard', 'quattuorvigintilliard', 'quinvigintilliard', 'sexvigintilliard', 'septenvigintilliard', 'octovigintilliard', 'novemvigintilliard', 'quinquavigintilliard'].freeze + SUB_ONE_GROUPING = ["zéro", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix-sept", "dix-huit", "dix-neuf", "vingt", "vingt-et-un", "vingt-deux", "vingt-trois", "vingt-quatre", "vingt-cinq", "vingt-six", "vingt-sept", "vingt-huit", "vingt-neuf", "trente", "trente-et-un", "trente-deux", "trente-trois", "trente-quatre", "trente-cinq", "trente-six", "trente-sept", "trente-huit", "trente-neuf", "quarante", "quarante-et-un", "quarante-deux", "quarante-trois", "quarante-quatre", "quarante-cinq", "quarante-six", "quarante-sept", "quarante-huit", "quarante-neuf", "cinquante", "cinquante-et-un", "cinquante-deux", "cinquante-trois", "cinquante-quatre", "cinquante-cinq", "cinquante-six", "cinquante-sept", "cinquante-huit", "cinquante-neuf", "soixante", "soixante-et-un", "soixante-deux", "soixante-trois", "soixante-quatre", "soixante-cinq", "soixante-six", "soixante-sept", "soixante-huit", "soixante-neuf", "septante", "septante-et-un", "septante-deux", "septante-trois", "septante-quatre", "septante-cinq", "septante-six", "septante-sept", "septante-huit", "septante-neuf", "huitantes", "huitante-un", "huitante-deux", "huitante-trois", "huitante-quatre", "huitante-cinq", "huitante-six", "huitante-sept", "huitante-huit", "huitante-neuf", "nonante", "nonante-et-un", "nonante-deux", "nonante-trois", "nonante-quatre", "nonante-cinq", "nonante-six", "nonante-sept", "nonante-huit", "nonante-neuf", "cent", "cent-un", "cent-deux", "cent-trois", "cent-quatre", "cent-cinq", "cent-six", "cent-sept", "cent-huit", "cent-neuf", "cent dix", "cent onze", "cent douze", "cent treize", "cent quatorze", "cent quinze", "cent seize", "cent dix-sept", "cent dix-huit", "cent dix-neuf", "cent vingt", "cent vingt-et-un", "cent vingt-deux", "cent vingt-trois", "cent vingt-quatre", "cent vingt-cinq", "cent vingt-six", "cent vingt-sept", "cent vingt-huit", "cent vingt-neuf", "cent trente", "cent trente-et-un", "cent trente-deux", "cent trente-trois", "cent trente-quatre", "cent trente-cinq", "cent trente-six", "cent trente-sept", "cent trente-huit", "cent trente-neuf", "cent quarante", "cent quarante-et-un", "cent quarante-deux", "cent quarante-trois", "cent quarante-quatre", "cent quarante-cinq", "cent quarante-six", "cent quarante-sept", "cent quarante-huit", "cent quarante-neuf", "cent cinquante", "cent cinquante-et-un", "cent cinquante-deux", "cent cinquante-trois", "cent cinquante-quatre", "cent cinquante-cinq", "cent cinquante-six", "cent cinquante-sept", "cent cinquante-huit", "cent cinquante-neuf", "cent soixante", "cent soixante-et-un", "cent soixante-deux", "cent soixante-trois", "cent soixante-quatre", "cent soixante-cinq", "cent soixante-six", "cent soixante-sept", "cent soixante-huit", "cent soixante-neuf", "cent septante", "cent septante-et-un", "cent septante-deux", "cent septante-trois", "cent septante-quatre", "cent septante-cinq", "cent septante-six", "cent septante-sept", "cent septante-huit", "cent septante-neuf", "cent huitantes", "cent huitante-un", "cent huitante-deux", "cent huitante-trois", "cent huitante-quatre", "cent huitante-cinq", "cent huitante-six", "cent huitante-sept", "cent huitante-huit", "cent huitante-neuf", "cent nonante", "cent nonante-et-un", "cent nonante-deux", "cent nonante-trois", "cent nonante-quatre", "cent nonante-cinq", "cent nonante-six", "cent nonante-sept", "cent nonante-huit", "cent nonante-neuf", "deux cents", "deux cent-un", "deux cent-deux", "deux cent-trois", "deux cent-quatre", "deux cent-cinq", "deux cent-six", "deux cent-sept", "deux cent-huit", "deux cent-neuf", "deux cent dix", "deux cent onze", "deux cent douze", "deux cent treize", "deux cent quatorze", "deux cent quinze", "deux cent seize", "deux cent dix-sept", "deux cent dix-huit", "deux cent dix-neuf", "deux cent vingt", "deux cent vingt-et-un", "deux cent vingt-deux", "deux cent vingt-trois", "deux cent vingt-quatre", "deux cent vingt-cinq", "deux cent vingt-six", "deux cent vingt-sept", "deux cent vingt-huit", "deux cent vingt-neuf", "deux cent trente", "deux cent trente-et-un", "deux cent trente-deux", "deux cent trente-trois", "deux cent trente-quatre", "deux cent trente-cinq", "deux cent trente-six", "deux cent trente-sept", "deux cent trente-huit", "deux cent trente-neuf", "deux cent quarante", "deux cent quarante-et-un", "deux cent quarante-deux", "deux cent quarante-trois", "deux cent quarante-quatre", "deux cent quarante-cinq", "deux cent quarante-six", "deux cent quarante-sept", "deux cent quarante-huit", "deux cent quarante-neuf", "deux cent cinquante", "deux cent cinquante-et-un", "deux cent cinquante-deux", "deux cent cinquante-trois", "deux cent cinquante-quatre", "deux cent cinquante-cinq", "deux cent cinquante-six", "deux cent cinquante-sept", "deux cent cinquante-huit", "deux cent cinquante-neuf", "deux cent soixante", "deux cent soixante-et-un", "deux cent soixante-deux", "deux cent soixante-trois", "deux cent soixante-quatre", "deux cent soixante-cinq", "deux cent soixante-six", "deux cent soixante-sept", "deux cent soixante-huit", "deux cent soixante-neuf", "deux cent septante", "deux cent septante-et-un", "deux cent septante-deux", "deux cent septante-trois", "deux cent septante-quatre", "deux cent septante-cinq", "deux cent septante-six", "deux cent septante-sept", "deux cent septante-huit", "deux cent septante-neuf", "deux cent huitantes", "deux cent huitante-un", "deux cent huitante-deux", "deux cent huitante-trois", "deux cent huitante-quatre", "deux cent huitante-cinq", "deux cent huitante-six", "deux cent huitante-sept", "deux cent huitante-huit", "deux cent huitante-neuf", "deux cent nonante", "deux cent nonante-et-un", "deux cent nonante-deux", "deux cent nonante-trois", "deux cent nonante-quatre", "deux cent nonante-cinq", "deux cent nonante-six", "deux cent nonante-sept", "deux cent nonante-huit", "deux cent nonante-neuf", "trois cents", "trois cent-un", "trois cent-deux", "trois cent-trois", "trois cent-quatre", "trois cent-cinq", "trois cent-six", "trois cent-sept", "trois cent-huit", "trois cent-neuf", "trois cent dix", "trois cent onze", "trois cent douze", "trois cent treize", "trois cent quatorze", "trois cent quinze", "trois cent seize", "trois cent dix-sept", "trois cent dix-huit", "trois cent dix-neuf", "trois cent vingt", "trois cent vingt-et-un", "trois cent vingt-deux", "trois cent vingt-trois", "trois cent vingt-quatre", "trois cent vingt-cinq", "trois cent vingt-six", "trois cent vingt-sept", "trois cent vingt-huit", "trois cent vingt-neuf", "trois cent trente", "trois cent trente-et-un", "trois cent trente-deux", "trois cent trente-trois", "trois cent trente-quatre", "trois cent trente-cinq", "trois cent trente-six", "trois cent trente-sept", "trois cent trente-huit", "trois cent trente-neuf", "trois cent quarante", "trois cent quarante-et-un", "trois cent quarante-deux", "trois cent quarante-trois", "trois cent quarante-quatre", "trois cent quarante-cinq", "trois cent quarante-six", "trois cent quarante-sept", "trois cent quarante-huit", "trois cent quarante-neuf", "trois cent cinquante", "trois cent cinquante-et-un", "trois cent cinquante-deux", "trois cent cinquante-trois", "trois cent cinquante-quatre", "trois cent cinquante-cinq", "trois cent cinquante-six", "trois cent cinquante-sept", "trois cent cinquante-huit", "trois cent cinquante-neuf", "trois cent soixante", "trois cent soixante-et-un", "trois cent soixante-deux", "trois cent soixante-trois", "trois cent soixante-quatre", "trois cent soixante-cinq", "trois cent soixante-six", "trois cent soixante-sept", "trois cent soixante-huit", "trois cent soixante-neuf", "trois cent septante", "trois cent septante-et-un", "trois cent septante-deux", "trois cent septante-trois", "trois cent septante-quatre", "trois cent septante-cinq", "trois cent septante-six", "trois cent septante-sept", "trois cent septante-huit", "trois cent septante-neuf", "trois cent huitantes", "trois cent huitante-un", "trois cent huitante-deux", "trois cent huitante-trois", "trois cent huitante-quatre", "trois cent huitante-cinq", "trois cent huitante-six", "trois cent huitante-sept", "trois cent huitante-huit", "trois cent huitante-neuf", "trois cent nonante", "trois cent nonante-et-un", "trois cent nonante-deux", "trois cent nonante-trois", "trois cent nonante-quatre", "trois cent nonante-cinq", "trois cent nonante-six", "trois cent nonante-sept", "trois cent nonante-huit", "trois cent nonante-neuf", "quatre cents", "quatre cent-un", "quatre cent-deux", "quatre cent-trois", "quatre cent-quatre", "quatre cent-cinq", "quatre cent-six", "quatre cent-sept", "quatre cent-huit", "quatre cent-neuf", "quatre cent dix", "quatre cent onze", "quatre cent douze", "quatre cent treize", "quatre cent quatorze", "quatre cent quinze", "quatre cent seize", "quatre cent dix-sept", "quatre cent dix-huit", "quatre cent dix-neuf", "quatre cent vingt", "quatre cent vingt-et-un", "quatre cent vingt-deux", "quatre cent vingt-trois", "quatre cent vingt-quatre", "quatre cent vingt-cinq", "quatre cent vingt-six", "quatre cent vingt-sept", "quatre cent vingt-huit", "quatre cent vingt-neuf", "quatre cent trente", "quatre cent trente-et-un", "quatre cent trente-deux", "quatre cent trente-trois", "quatre cent trente-quatre", "quatre cent trente-cinq", "quatre cent trente-six", "quatre cent trente-sept", "quatre cent trente-huit", "quatre cent trente-neuf", "quatre cent quarante", "quatre cent quarante-et-un", "quatre cent quarante-deux", "quatre cent quarante-trois", "quatre cent quarante-quatre", "quatre cent quarante-cinq", "quatre cent quarante-six", "quatre cent quarante-sept", "quatre cent quarante-huit", "quatre cent quarante-neuf", "quatre cent cinquante", "quatre cent cinquante-et-un", "quatre cent cinquante-deux", "quatre cent cinquante-trois", "quatre cent cinquante-quatre", "quatre cent cinquante-cinq", "quatre cent cinquante-six", "quatre cent cinquante-sept", "quatre cent cinquante-huit", "quatre cent cinquante-neuf", "quatre cent soixante", "quatre cent soixante-et-un", "quatre cent soixante-deux", "quatre cent soixante-trois", "quatre cent soixante-quatre", "quatre cent soixante-cinq", "quatre cent soixante-six", "quatre cent soixante-sept", "quatre cent soixante-huit", "quatre cent soixante-neuf", "quatre cent septante", "quatre cent septante-et-un", "quatre cent septante-deux", "quatre cent septante-trois", "quatre cent septante-quatre", "quatre cent septante-cinq", "quatre cent septante-six", "quatre cent septante-sept", "quatre cent septante-huit", "quatre cent septante-neuf", "quatre cent huitantes", "quatre cent huitante-un", "quatre cent huitante-deux", "quatre cent huitante-trois", "quatre cent huitante-quatre", "quatre cent huitante-cinq", "quatre cent huitante-six", "quatre cent huitante-sept", "quatre cent huitante-huit", "quatre cent huitante-neuf", "quatre cent nonante", "quatre cent nonante-et-un", "quatre cent nonante-deux", "quatre cent nonante-trois", "quatre cent nonante-quatre", "quatre cent nonante-cinq", "quatre cent nonante-six", "quatre cent nonante-sept", "quatre cent nonante-huit", "quatre cent nonante-neuf", "cinq cents", "cinq cent-un", "cinq cent-deux", "cinq cent-trois", "cinq cent-quatre", "cinq cent-cinq", "cinq cent-six", "cinq cent-sept", "cinq cent-huit", "cinq cent-neuf", "cinq cent dix", "cinq cent onze", "cinq cent douze", "cinq cent treize", "cinq cent quatorze", "cinq cent quinze", "cinq cent seize", "cinq cent dix-sept", "cinq cent dix-huit", "cinq cent dix-neuf", "cinq cent vingt", "cinq cent vingt-et-un", "cinq cent vingt-deux", "cinq cent vingt-trois", "cinq cent vingt-quatre", "cinq cent vingt-cinq", "cinq cent vingt-six", "cinq cent vingt-sept", "cinq cent vingt-huit", "cinq cent vingt-neuf", "cinq cent trente", "cinq cent trente-et-un", "cinq cent trente-deux", "cinq cent trente-trois", "cinq cent trente-quatre", "cinq cent trente-cinq", "cinq cent trente-six", "cinq cent trente-sept", "cinq cent trente-huit", "cinq cent trente-neuf", "cinq cent quarante", "cinq cent quarante-et-un", "cinq cent quarante-deux", "cinq cent quarante-trois", "cinq cent quarante-quatre", "cinq cent quarante-cinq", "cinq cent quarante-six", "cinq cent quarante-sept", "cinq cent quarante-huit", "cinq cent quarante-neuf", "cinq cent cinquante", "cinq cent cinquante-et-un", "cinq cent cinquante-deux", "cinq cent cinquante-trois", "cinq cent cinquante-quatre", "cinq cent cinquante-cinq", "cinq cent cinquante-six", "cinq cent cinquante-sept", "cinq cent cinquante-huit", "cinq cent cinquante-neuf", "cinq cent soixante", "cinq cent soixante-et-un", "cinq cent soixante-deux", "cinq cent soixante-trois", "cinq cent soixante-quatre", "cinq cent soixante-cinq", "cinq cent soixante-six", "cinq cent soixante-sept", "cinq cent soixante-huit", "cinq cent soixante-neuf", "cinq cent septante", "cinq cent septante-et-un", "cinq cent septante-deux", "cinq cent septante-trois", "cinq cent septante-quatre", "cinq cent septante-cinq", "cinq cent septante-six", "cinq cent septante-sept", "cinq cent septante-huit", "cinq cent septante-neuf", "cinq cent huitantes", "cinq cent huitante-un", "cinq cent huitante-deux", "cinq cent huitante-trois", "cinq cent huitante-quatre", "cinq cent huitante-cinq", "cinq cent huitante-six", "cinq cent huitante-sept", "cinq cent huitante-huit", "cinq cent huitante-neuf", "cinq cent nonante", "cinq cent nonante-et-un", "cinq cent nonante-deux", "cinq cent nonante-trois", "cinq cent nonante-quatre", "cinq cent nonante-cinq", "cinq cent nonante-six", "cinq cent nonante-sept", "cinq cent nonante-huit", "cinq cent nonante-neuf", "six cents", "six cent-un", "six cent-deux", "six cent-trois", "six cent-quatre", "six cent-cinq", "six cent-six", "six cent-sept", "six cent-huit", "six cent-neuf", "six cent dix", "six cent onze", "six cent douze", "six cent treize", "six cent quatorze", "six cent quinze", "six cent seize", "six cent dix-sept", "six cent dix-huit", "six cent dix-neuf", "six cent vingt", "six cent vingt-et-un", "six cent vingt-deux", "six cent vingt-trois", "six cent vingt-quatre", "six cent vingt-cinq", "six cent vingt-six", "six cent vingt-sept", "six cent vingt-huit", "six cent vingt-neuf", "six cent trente", "six cent trente-et-un", "six cent trente-deux", "six cent trente-trois", "six cent trente-quatre", "six cent trente-cinq", "six cent trente-six", "six cent trente-sept", "six cent trente-huit", "six cent trente-neuf", "six cent quarante", "six cent quarante-et-un", "six cent quarante-deux", "six cent quarante-trois", "six cent quarante-quatre", "six cent quarante-cinq", "six cent quarante-six", "six cent quarante-sept", "six cent quarante-huit", "six cent quarante-neuf", "six cent cinquante", "six cent cinquante-et-un", "six cent cinquante-deux", "six cent cinquante-trois", "six cent cinquante-quatre", "six cent cinquante-cinq", "six cent cinquante-six", "six cent cinquante-sept", "six cent cinquante-huit", "six cent cinquante-neuf", "six cent soixante", "six cent soixante-et-un", "six cent soixante-deux", "six cent soixante-trois", "six cent soixante-quatre", "six cent soixante-cinq", "six cent soixante-six", "six cent soixante-sept", "six cent soixante-huit", "six cent soixante-neuf", "six cent septante", "six cent septante-et-un", "six cent septante-deux", "six cent septante-trois", "six cent septante-quatre", "six cent septante-cinq", "six cent septante-six", "six cent septante-sept", "six cent septante-huit", "six cent septante-neuf", "six cent huitantes", "six cent huitante-un", "six cent huitante-deux", "six cent huitante-trois", "six cent huitante-quatre", "six cent huitante-cinq", "six cent huitante-six", "six cent huitante-sept", "six cent huitante-huit", "six cent huitante-neuf", "six cent nonante", "six cent nonante-et-un", "six cent nonante-deux", "six cent nonante-trois", "six cent nonante-quatre", "six cent nonante-cinq", "six cent nonante-six", "six cent nonante-sept", "six cent nonante-huit", "six cent nonante-neuf", "sept cents", "sept cent-un", "sept cent-deux", "sept cent-trois", "sept cent-quatre", "sept cent-cinq", "sept cent-six", "sept cent-sept", "sept cent-huit", "sept cent-neuf", "sept cent dix", "sept cent onze", "sept cent douze", "sept cent treize", "sept cent quatorze", "sept cent quinze", "sept cent seize", "sept cent dix-sept", "sept cent dix-huit", "sept cent dix-neuf", "sept cent vingt", "sept cent vingt-et-un", "sept cent vingt-deux", "sept cent vingt-trois", "sept cent vingt-quatre", "sept cent vingt-cinq", "sept cent vingt-six", "sept cent vingt-sept", "sept cent vingt-huit", "sept cent vingt-neuf", "sept cent trente", "sept cent trente-et-un", "sept cent trente-deux", "sept cent trente-trois", "sept cent trente-quatre", "sept cent trente-cinq", "sept cent trente-six", "sept cent trente-sept", "sept cent trente-huit", "sept cent trente-neuf", "sept cent quarante", "sept cent quarante-et-un", "sept cent quarante-deux", "sept cent quarante-trois", "sept cent quarante-quatre", "sept cent quarante-cinq", "sept cent quarante-six", "sept cent quarante-sept", "sept cent quarante-huit", "sept cent quarante-neuf", "sept cent cinquante", "sept cent cinquante-et-un", "sept cent cinquante-deux", "sept cent cinquante-trois", "sept cent cinquante-quatre", "sept cent cinquante-cinq", "sept cent cinquante-six", "sept cent cinquante-sept", "sept cent cinquante-huit", "sept cent cinquante-neuf", "sept cent soixante", "sept cent soixante-et-un", "sept cent soixante-deux", "sept cent soixante-trois", "sept cent soixante-quatre", "sept cent soixante-cinq", "sept cent soixante-six", "sept cent soixante-sept", "sept cent soixante-huit", "sept cent soixante-neuf", "sept cent septante", "sept cent septante-et-un", "sept cent septante-deux", "sept cent septante-trois", "sept cent septante-quatre", "sept cent septante-cinq", "sept cent septante-six", "sept cent septante-sept", "sept cent septante-huit", "sept cent septante-neuf", "sept cent huitantes", "sept cent huitante-un", "sept cent huitante-deux", "sept cent huitante-trois", "sept cent huitante-quatre", "sept cent huitante-cinq", "sept cent huitante-six", "sept cent huitante-sept", "sept cent huitante-huit", "sept cent huitante-neuf", "sept cent nonante", "sept cent nonante-et-un", "sept cent nonante-deux", "sept cent nonante-trois", "sept cent nonante-quatre", "sept cent nonante-cinq", "sept cent nonante-six", "sept cent nonante-sept", "sept cent nonante-huit", "sept cent nonante-neuf", "huit cents", "huit cent-un", "huit cent-deux", "huit cent-trois", "huit cent-quatre", "huit cent-cinq", "huit cent-six", "huit cent-sept", "huit cent-huit", "huit cent-neuf", "huit cent dix", "huit cent onze", "huit cent douze", "huit cent treize", "huit cent quatorze", "huit cent quinze", "huit cent seize", "huit cent dix-sept", "huit cent dix-huit", "huit cent dix-neuf", "huit cent vingt", "huit cent vingt-et-un", "huit cent vingt-deux", "huit cent vingt-trois", "huit cent vingt-quatre", "huit cent vingt-cinq", "huit cent vingt-six", "huit cent vingt-sept", "huit cent vingt-huit", "huit cent vingt-neuf", "huit cent trente", "huit cent trente-et-un", "huit cent trente-deux", "huit cent trente-trois", "huit cent trente-quatre", "huit cent trente-cinq", "huit cent trente-six", "huit cent trente-sept", "huit cent trente-huit", "huit cent trente-neuf", "huit cent quarante", "huit cent quarante-et-un", "huit cent quarante-deux", "huit cent quarante-trois", "huit cent quarante-quatre", "huit cent quarante-cinq", "huit cent quarante-six", "huit cent quarante-sept", "huit cent quarante-huit", "huit cent quarante-neuf", "huit cent cinquante", "huit cent cinquante-et-un", "huit cent cinquante-deux", "huit cent cinquante-trois", "huit cent cinquante-quatre", "huit cent cinquante-cinq", "huit cent cinquante-six", "huit cent cinquante-sept", "huit cent cinquante-huit", "huit cent cinquante-neuf", "huit cent soixante", "huit cent soixante-et-un", "huit cent soixante-deux", "huit cent soixante-trois", "huit cent soixante-quatre", "huit cent soixante-cinq", "huit cent soixante-six", "huit cent soixante-sept", "huit cent soixante-huit", "huit cent soixante-neuf", "huit cent septante", "huit cent septante-et-un", "huit cent septante-deux", "huit cent septante-trois", "huit cent septante-quatre", "huit cent septante-cinq", "huit cent septante-six", "huit cent septante-sept", "huit cent septante-huit", "huit cent septante-neuf", "huit cent huitantes", "huit cent huitante-un", "huit cent huitante-deux", "huit cent huitante-trois", "huit cent huitante-quatre", "huit cent huitante-cinq", "huit cent huitante-six", "huit cent huitante-sept", "huit cent huitante-huit", "huit cent huitante-neuf", "huit cent nonante", "huit cent nonante-et-un", "huit cent nonante-deux", "huit cent nonante-trois", "huit cent nonante-quatre", "huit cent nonante-cinq", "huit cent nonante-six", "huit cent nonante-sept", "huit cent nonante-huit", "huit cent nonante-neuf", "neuf cents", "neuf cent-un", "neuf cent-deux", "neuf cent-trois", "neuf cent-quatre", "neuf cent-cinq", "neuf cent-six", "neuf cent-sept", "neuf cent-huit", "neuf cent-neuf", "neuf cent dix", "neuf cent onze", "neuf cent douze", "neuf cent treize", "neuf cent quatorze", "neuf cent quinze", "neuf cent seize", "neuf cent dix-sept", "neuf cent dix-huit", "neuf cent dix-neuf", "neuf cent vingt", "neuf cent vingt-et-un", "neuf cent vingt-deux", "neuf cent vingt-trois", "neuf cent vingt-quatre", "neuf cent vingt-cinq", "neuf cent vingt-six", "neuf cent vingt-sept", "neuf cent vingt-huit", "neuf cent vingt-neuf", "neuf cent trente", "neuf cent trente-et-un", "neuf cent trente-deux", "neuf cent trente-trois", "neuf cent trente-quatre", "neuf cent trente-cinq", "neuf cent trente-six", "neuf cent trente-sept", "neuf cent trente-huit", "neuf cent trente-neuf", "neuf cent quarante", "neuf cent quarante-et-un", "neuf cent quarante-deux", "neuf cent quarante-trois", "neuf cent quarante-quatre", "neuf cent quarante-cinq", "neuf cent quarante-six", "neuf cent quarante-sept", "neuf cent quarante-huit", "neuf cent quarante-neuf", "neuf cent cinquante", "neuf cent cinquante-et-un", "neuf cent cinquante-deux", "neuf cent cinquante-trois", "neuf cent cinquante-quatre", "neuf cent cinquante-cinq", "neuf cent cinquante-six", "neuf cent cinquante-sept", "neuf cent cinquante-huit", "neuf cent cinquante-neuf", "neuf cent soixante", "neuf cent soixante-et-un", "neuf cent soixante-deux", "neuf cent soixante-trois", "neuf cent soixante-quatre", "neuf cent soixante-cinq", "neuf cent soixante-six", "neuf cent soixante-sept", "neuf cent soixante-huit", "neuf cent soixante-neuf", "neuf cent septante", "neuf cent septante-et-un", "neuf cent septante-deux", "neuf cent septante-trois", "neuf cent septante-quatre", "neuf cent septante-cinq", "neuf cent septante-six", "neuf cent septante-sept", "neuf cent septante-huit", "neuf cent septante-neuf", "neuf cent huitantes", "neuf cent huitante-un", "neuf cent huitante-deux", "neuf cent huitante-trois", "neuf cent huitante-quatre", "neuf cent huitante-cinq", "neuf cent huitante-six", "neuf cent huitante-sept", "neuf cent huitante-huit", "neuf cent huitante-neuf", "neuf cent nonante", "neuf cent nonante-et-un", "neuf cent nonante-deux", "neuf cent nonante-trois", "neuf cent nonante-quatre", "neuf cent nonante-cinq", "neuf cent nonante-six", "neuf cent nonante-sept", "neuf cent nonante-huit", "neuf cent nonante-neuf"] + end +end diff --git a/lib/humanize/locales/fr_ch.rb b/lib/humanize/locales/fr_ch.rb new file mode 100644 index 0000000..038f01b --- /dev/null +++ b/lib/humanize/locales/fr_ch.rb @@ -0,0 +1,43 @@ +require_relative 'constants/fr_ch' + +module Humanize + class FrCh + def humanize(number) + iteration = 0 + parts = [] + until number.zero? + number, remainder = number.divmod(1000) + unless remainder.zero? + add_grouping(parts, iteration, remainder) + + parts << SUB_ONE_GROUPING[remainder] unless exactly_one_thousand?(remainder, parts) + end + + iteration += 1 + end + + parts + end + + private + + def exactly_one_thousand?(remainder, parts) + remainder == 1 && parts.last.to_s.strip == 'mille' + end + + def plural_for_lots(remainder, word, iteration) + if remainder > 1 && iteration >= 2 + "#{word}s" + else + word + end + end + + def add_grouping(parts, iteration, remainder) + grouping = plural_for_lots(remainder, LOTS[iteration], iteration) + return unless grouping + + parts << grouping + end + end +end diff --git a/spec/locales/fr_ch_spec.rb b/spec/locales/fr_ch_spec.rb new file mode 100644 index 0000000..e1bca22 --- /dev/null +++ b/spec/locales/fr_ch_spec.rb @@ -0,0 +1,48 @@ +require 'spec_helper' + +RSpec.describe Humanize, "fr CH locale" do + before do + Humanize.configure do |config| + config.default_locale = :'fr-CH' + end + end + + tests = [ + [71, 'septante-et-un'], + [80.15, 'huitantes virgule un cinq'], + [1090, 'mille nonante'], + [2095, 'deux mille nonante-cinq'], + [10_000, 'dix mille'], + [1_000_000, "un million"], + [2_000_000, "deux millions"], + [5_000_000, "cinq millions"], + [1_000_000_000, "un milliard"], + [2_000_000_000, "deux milliards"], + [5_000_000_000, "cinq milliards"] + ] + + tests.each do |num, output| + it "#{num} equals #{output}" do + expect(num.humanize).to eql(output) + end + end + + context 'decimals: number' do + it 'returns the decimals as whole numbers' do + num = 8.15 + expect(num.humanize(decimals_as: :number)).to eq('huit virgule quinze') + end + end + + describe 'when called on conceptual number' do + it 'reads correctly' do + inf = Float::INFINITY + neg_inf = -inf + nan = inf + neg_inf + + expect(inf.humanize).to eql('infini') + expect(neg_inf.humanize).to eql('négatif infini') + expect(nan.humanize).to eql('indéfini') + end + end +end From 57b06e386ec51ad6d930f7a78be3df5e6e03ea0c Mon Sep 17 00:00:00 2001 From: Vincent Romagnoli Date: Thu, 28 Mar 2024 15:45:26 +0100 Subject: [PATCH 2/4] dont pluralize translation --- lib/humanize/locales/constants/fr_ch.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/humanize/locales/constants/fr_ch.rb b/lib/humanize/locales/constants/fr_ch.rb index e3d5110..1a6726e 100644 --- a/lib/humanize/locales/constants/fr_ch.rb +++ b/lib/humanize/locales/constants/fr_ch.rb @@ -5,6 +5,6 @@ class FrCh NEGATIVE = 'négatif'.freeze POINT = 'virgule'.freeze LOTS = [nil, 'mille', 'million', 'milliard', 'billion', 'billiard', 'trillion', 'trilliard', 'quadrillion', 'quadrilliard', 'quintillion', 'quintilliard', 'sextillion', 'sextilliard', 'septillion', 'septilliard', 'octillion', 'octilliard', 'nonillion', 'nonilliard', 'décillion', 'décilliard', 'undécillion', 'undécilliard', 'duodécillion', 'duodécilliard', 'tredécillion', 'tredécilliard', 'quattuordécillion', 'quattuordécilliard', 'quindécillion', 'quindécilliard', 'sexdécillion', 'sexdécilliard', 'septendécillion', 'septendécilliard', 'octodécillion', 'octodécilliard', 'novemdécillion', 'novemdécilliard', 'vigintillion', 'vigintilliard', 'unvigintilliard', 'duovigintilliard', 'trevigintilliard', 'quattuorvigintilliard', 'quinvigintilliard', 'sexvigintilliard', 'septenvigintilliard', 'octovigintilliard', 'novemvigintilliard', 'quinquavigintilliard'].freeze - SUB_ONE_GROUPING = ["zéro", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix-sept", "dix-huit", "dix-neuf", "vingt", "vingt-et-un", "vingt-deux", "vingt-trois", "vingt-quatre", "vingt-cinq", "vingt-six", "vingt-sept", "vingt-huit", "vingt-neuf", "trente", "trente-et-un", "trente-deux", "trente-trois", "trente-quatre", "trente-cinq", "trente-six", "trente-sept", "trente-huit", "trente-neuf", "quarante", "quarante-et-un", "quarante-deux", "quarante-trois", "quarante-quatre", "quarante-cinq", "quarante-six", "quarante-sept", "quarante-huit", "quarante-neuf", "cinquante", "cinquante-et-un", "cinquante-deux", "cinquante-trois", "cinquante-quatre", "cinquante-cinq", "cinquante-six", "cinquante-sept", "cinquante-huit", "cinquante-neuf", "soixante", "soixante-et-un", "soixante-deux", "soixante-trois", "soixante-quatre", "soixante-cinq", "soixante-six", "soixante-sept", "soixante-huit", "soixante-neuf", "septante", "septante-et-un", "septante-deux", "septante-trois", "septante-quatre", "septante-cinq", "septante-six", "septante-sept", "septante-huit", "septante-neuf", "huitantes", "huitante-un", "huitante-deux", "huitante-trois", "huitante-quatre", "huitante-cinq", "huitante-six", "huitante-sept", "huitante-huit", "huitante-neuf", "nonante", "nonante-et-un", "nonante-deux", "nonante-trois", "nonante-quatre", "nonante-cinq", "nonante-six", "nonante-sept", "nonante-huit", "nonante-neuf", "cent", "cent-un", "cent-deux", "cent-trois", "cent-quatre", "cent-cinq", "cent-six", "cent-sept", "cent-huit", "cent-neuf", "cent dix", "cent onze", "cent douze", "cent treize", "cent quatorze", "cent quinze", "cent seize", "cent dix-sept", "cent dix-huit", "cent dix-neuf", "cent vingt", "cent vingt-et-un", "cent vingt-deux", "cent vingt-trois", "cent vingt-quatre", "cent vingt-cinq", "cent vingt-six", "cent vingt-sept", "cent vingt-huit", "cent vingt-neuf", "cent trente", "cent trente-et-un", "cent trente-deux", "cent trente-trois", "cent trente-quatre", "cent trente-cinq", "cent trente-six", "cent trente-sept", "cent trente-huit", "cent trente-neuf", "cent quarante", "cent quarante-et-un", "cent quarante-deux", "cent quarante-trois", "cent quarante-quatre", "cent quarante-cinq", "cent quarante-six", "cent quarante-sept", "cent quarante-huit", "cent quarante-neuf", "cent cinquante", "cent cinquante-et-un", "cent cinquante-deux", "cent cinquante-trois", "cent cinquante-quatre", "cent cinquante-cinq", "cent cinquante-six", "cent cinquante-sept", "cent cinquante-huit", "cent cinquante-neuf", "cent soixante", "cent soixante-et-un", "cent soixante-deux", "cent soixante-trois", "cent soixante-quatre", "cent soixante-cinq", "cent soixante-six", "cent soixante-sept", "cent soixante-huit", "cent soixante-neuf", "cent septante", "cent septante-et-un", "cent septante-deux", "cent septante-trois", "cent septante-quatre", "cent septante-cinq", "cent septante-six", "cent septante-sept", "cent septante-huit", "cent septante-neuf", "cent huitantes", "cent huitante-un", "cent huitante-deux", "cent huitante-trois", "cent huitante-quatre", "cent huitante-cinq", "cent huitante-six", "cent huitante-sept", "cent huitante-huit", "cent huitante-neuf", "cent nonante", "cent nonante-et-un", "cent nonante-deux", "cent nonante-trois", "cent nonante-quatre", "cent nonante-cinq", "cent nonante-six", "cent nonante-sept", "cent nonante-huit", "cent nonante-neuf", "deux cents", "deux cent-un", "deux cent-deux", "deux cent-trois", "deux cent-quatre", "deux cent-cinq", "deux cent-six", "deux cent-sept", "deux cent-huit", "deux cent-neuf", "deux cent dix", "deux cent onze", "deux cent douze", "deux cent treize", "deux cent quatorze", "deux cent quinze", "deux cent seize", "deux cent dix-sept", "deux cent dix-huit", "deux cent dix-neuf", "deux cent vingt", "deux cent vingt-et-un", "deux cent vingt-deux", "deux cent vingt-trois", "deux cent vingt-quatre", "deux cent vingt-cinq", "deux cent vingt-six", "deux cent vingt-sept", "deux cent vingt-huit", "deux cent vingt-neuf", "deux cent trente", "deux cent trente-et-un", "deux cent trente-deux", "deux cent trente-trois", "deux cent trente-quatre", "deux cent trente-cinq", "deux cent trente-six", "deux cent trente-sept", "deux cent trente-huit", "deux cent trente-neuf", "deux cent quarante", "deux cent quarante-et-un", "deux cent quarante-deux", "deux cent quarante-trois", "deux cent quarante-quatre", "deux cent quarante-cinq", "deux cent quarante-six", "deux cent quarante-sept", "deux cent quarante-huit", "deux cent quarante-neuf", "deux cent cinquante", "deux cent cinquante-et-un", "deux cent cinquante-deux", "deux cent cinquante-trois", "deux cent cinquante-quatre", "deux cent cinquante-cinq", "deux cent cinquante-six", "deux cent cinquante-sept", "deux cent cinquante-huit", "deux cent cinquante-neuf", "deux cent soixante", "deux cent soixante-et-un", "deux cent soixante-deux", "deux cent soixante-trois", "deux cent soixante-quatre", "deux cent soixante-cinq", "deux cent soixante-six", "deux cent soixante-sept", "deux cent soixante-huit", "deux cent soixante-neuf", "deux cent septante", "deux cent septante-et-un", "deux cent septante-deux", "deux cent septante-trois", "deux cent septante-quatre", "deux cent septante-cinq", "deux cent septante-six", "deux cent septante-sept", "deux cent septante-huit", "deux cent septante-neuf", "deux cent huitantes", "deux cent huitante-un", "deux cent huitante-deux", "deux cent huitante-trois", "deux cent huitante-quatre", "deux cent huitante-cinq", "deux cent huitante-six", "deux cent huitante-sept", "deux cent huitante-huit", "deux cent huitante-neuf", "deux cent nonante", "deux cent nonante-et-un", "deux cent nonante-deux", "deux cent nonante-trois", "deux cent nonante-quatre", "deux cent nonante-cinq", "deux cent nonante-six", "deux cent nonante-sept", "deux cent nonante-huit", "deux cent nonante-neuf", "trois cents", "trois cent-un", "trois cent-deux", "trois cent-trois", "trois cent-quatre", "trois cent-cinq", "trois cent-six", "trois cent-sept", "trois cent-huit", "trois cent-neuf", "trois cent dix", "trois cent onze", "trois cent douze", "trois cent treize", "trois cent quatorze", "trois cent quinze", "trois cent seize", "trois cent dix-sept", "trois cent dix-huit", "trois cent dix-neuf", "trois cent vingt", "trois cent vingt-et-un", "trois cent vingt-deux", "trois cent vingt-trois", "trois cent vingt-quatre", "trois cent vingt-cinq", "trois cent vingt-six", "trois cent vingt-sept", "trois cent vingt-huit", "trois cent vingt-neuf", "trois cent trente", "trois cent trente-et-un", "trois cent trente-deux", "trois cent trente-trois", "trois cent trente-quatre", "trois cent trente-cinq", "trois cent trente-six", "trois cent trente-sept", "trois cent trente-huit", "trois cent trente-neuf", "trois cent quarante", "trois cent quarante-et-un", "trois cent quarante-deux", "trois cent quarante-trois", "trois cent quarante-quatre", "trois cent quarante-cinq", "trois cent quarante-six", "trois cent quarante-sept", "trois cent quarante-huit", "trois cent quarante-neuf", "trois cent cinquante", "trois cent cinquante-et-un", "trois cent cinquante-deux", "trois cent cinquante-trois", "trois cent cinquante-quatre", "trois cent cinquante-cinq", "trois cent cinquante-six", "trois cent cinquante-sept", "trois cent cinquante-huit", "trois cent cinquante-neuf", "trois cent soixante", "trois cent soixante-et-un", "trois cent soixante-deux", "trois cent soixante-trois", "trois cent soixante-quatre", "trois cent soixante-cinq", "trois cent soixante-six", "trois cent soixante-sept", "trois cent soixante-huit", "trois cent soixante-neuf", "trois cent septante", "trois cent septante-et-un", "trois cent septante-deux", "trois cent septante-trois", "trois cent septante-quatre", "trois cent septante-cinq", "trois cent septante-six", "trois cent septante-sept", "trois cent septante-huit", "trois cent septante-neuf", "trois cent huitantes", "trois cent huitante-un", "trois cent huitante-deux", "trois cent huitante-trois", "trois cent huitante-quatre", "trois cent huitante-cinq", "trois cent huitante-six", "trois cent huitante-sept", "trois cent huitante-huit", "trois cent huitante-neuf", "trois cent nonante", "trois cent nonante-et-un", "trois cent nonante-deux", "trois cent nonante-trois", "trois cent nonante-quatre", "trois cent nonante-cinq", "trois cent nonante-six", "trois cent nonante-sept", "trois cent nonante-huit", "trois cent nonante-neuf", "quatre cents", "quatre cent-un", "quatre cent-deux", "quatre cent-trois", "quatre cent-quatre", "quatre cent-cinq", "quatre cent-six", "quatre cent-sept", "quatre cent-huit", "quatre cent-neuf", "quatre cent dix", "quatre cent onze", "quatre cent douze", "quatre cent treize", "quatre cent quatorze", "quatre cent quinze", "quatre cent seize", "quatre cent dix-sept", "quatre cent dix-huit", "quatre cent dix-neuf", "quatre cent vingt", "quatre cent vingt-et-un", "quatre cent vingt-deux", "quatre cent vingt-trois", "quatre cent vingt-quatre", "quatre cent vingt-cinq", "quatre cent vingt-six", "quatre cent vingt-sept", "quatre cent vingt-huit", "quatre cent vingt-neuf", "quatre cent trente", "quatre cent trente-et-un", "quatre cent trente-deux", "quatre cent trente-trois", "quatre cent trente-quatre", "quatre cent trente-cinq", "quatre cent trente-six", "quatre cent trente-sept", "quatre cent trente-huit", "quatre cent trente-neuf", "quatre cent quarante", "quatre cent quarante-et-un", "quatre cent quarante-deux", "quatre cent quarante-trois", "quatre cent quarante-quatre", "quatre cent quarante-cinq", "quatre cent quarante-six", "quatre cent quarante-sept", "quatre cent quarante-huit", "quatre cent quarante-neuf", "quatre cent cinquante", "quatre cent cinquante-et-un", "quatre cent cinquante-deux", "quatre cent cinquante-trois", "quatre cent cinquante-quatre", "quatre cent cinquante-cinq", "quatre cent cinquante-six", "quatre cent cinquante-sept", "quatre cent cinquante-huit", "quatre cent cinquante-neuf", "quatre cent soixante", "quatre cent soixante-et-un", "quatre cent soixante-deux", "quatre cent soixante-trois", "quatre cent soixante-quatre", "quatre cent soixante-cinq", "quatre cent soixante-six", "quatre cent soixante-sept", "quatre cent soixante-huit", "quatre cent soixante-neuf", "quatre cent septante", "quatre cent septante-et-un", "quatre cent septante-deux", "quatre cent septante-trois", "quatre cent septante-quatre", "quatre cent septante-cinq", "quatre cent septante-six", "quatre cent septante-sept", "quatre cent septante-huit", "quatre cent septante-neuf", "quatre cent huitantes", "quatre cent huitante-un", "quatre cent huitante-deux", "quatre cent huitante-trois", "quatre cent huitante-quatre", "quatre cent huitante-cinq", "quatre cent huitante-six", "quatre cent huitante-sept", "quatre cent huitante-huit", "quatre cent huitante-neuf", "quatre cent nonante", "quatre cent nonante-et-un", "quatre cent nonante-deux", "quatre cent nonante-trois", "quatre cent nonante-quatre", "quatre cent nonante-cinq", "quatre cent nonante-six", "quatre cent nonante-sept", "quatre cent nonante-huit", "quatre cent nonante-neuf", "cinq cents", "cinq cent-un", "cinq cent-deux", "cinq cent-trois", "cinq cent-quatre", "cinq cent-cinq", "cinq cent-six", "cinq cent-sept", "cinq cent-huit", "cinq cent-neuf", "cinq cent dix", "cinq cent onze", "cinq cent douze", "cinq cent treize", "cinq cent quatorze", "cinq cent quinze", "cinq cent seize", "cinq cent dix-sept", "cinq cent dix-huit", "cinq cent dix-neuf", "cinq cent vingt", "cinq cent vingt-et-un", "cinq cent vingt-deux", "cinq cent vingt-trois", "cinq cent vingt-quatre", "cinq cent vingt-cinq", "cinq cent vingt-six", "cinq cent vingt-sept", "cinq cent vingt-huit", "cinq cent vingt-neuf", "cinq cent trente", "cinq cent trente-et-un", "cinq cent trente-deux", "cinq cent trente-trois", "cinq cent trente-quatre", "cinq cent trente-cinq", "cinq cent trente-six", "cinq cent trente-sept", "cinq cent trente-huit", "cinq cent trente-neuf", "cinq cent quarante", "cinq cent quarante-et-un", "cinq cent quarante-deux", "cinq cent quarante-trois", "cinq cent quarante-quatre", "cinq cent quarante-cinq", "cinq cent quarante-six", "cinq cent quarante-sept", "cinq cent quarante-huit", "cinq cent quarante-neuf", "cinq cent cinquante", "cinq cent cinquante-et-un", "cinq cent cinquante-deux", "cinq cent cinquante-trois", "cinq cent cinquante-quatre", "cinq cent cinquante-cinq", "cinq cent cinquante-six", "cinq cent cinquante-sept", "cinq cent cinquante-huit", "cinq cent cinquante-neuf", "cinq cent soixante", "cinq cent soixante-et-un", "cinq cent soixante-deux", "cinq cent soixante-trois", "cinq cent soixante-quatre", "cinq cent soixante-cinq", "cinq cent soixante-six", "cinq cent soixante-sept", "cinq cent soixante-huit", "cinq cent soixante-neuf", "cinq cent septante", "cinq cent septante-et-un", "cinq cent septante-deux", "cinq cent septante-trois", "cinq cent septante-quatre", "cinq cent septante-cinq", "cinq cent septante-six", "cinq cent septante-sept", "cinq cent septante-huit", "cinq cent septante-neuf", "cinq cent huitantes", "cinq cent huitante-un", "cinq cent huitante-deux", "cinq cent huitante-trois", "cinq cent huitante-quatre", "cinq cent huitante-cinq", "cinq cent huitante-six", "cinq cent huitante-sept", "cinq cent huitante-huit", "cinq cent huitante-neuf", "cinq cent nonante", "cinq cent nonante-et-un", "cinq cent nonante-deux", "cinq cent nonante-trois", "cinq cent nonante-quatre", "cinq cent nonante-cinq", "cinq cent nonante-six", "cinq cent nonante-sept", "cinq cent nonante-huit", "cinq cent nonante-neuf", "six cents", "six cent-un", "six cent-deux", "six cent-trois", "six cent-quatre", "six cent-cinq", "six cent-six", "six cent-sept", "six cent-huit", "six cent-neuf", "six cent dix", "six cent onze", "six cent douze", "six cent treize", "six cent quatorze", "six cent quinze", "six cent seize", "six cent dix-sept", "six cent dix-huit", "six cent dix-neuf", "six cent vingt", "six cent vingt-et-un", "six cent vingt-deux", "six cent vingt-trois", "six cent vingt-quatre", "six cent vingt-cinq", "six cent vingt-six", "six cent vingt-sept", "six cent vingt-huit", "six cent vingt-neuf", "six cent trente", "six cent trente-et-un", "six cent trente-deux", "six cent trente-trois", "six cent trente-quatre", "six cent trente-cinq", "six cent trente-six", "six cent trente-sept", "six cent trente-huit", "six cent trente-neuf", "six cent quarante", "six cent quarante-et-un", "six cent quarante-deux", "six cent quarante-trois", "six cent quarante-quatre", "six cent quarante-cinq", "six cent quarante-six", "six cent quarante-sept", "six cent quarante-huit", "six cent quarante-neuf", "six cent cinquante", "six cent cinquante-et-un", "six cent cinquante-deux", "six cent cinquante-trois", "six cent cinquante-quatre", "six cent cinquante-cinq", "six cent cinquante-six", "six cent cinquante-sept", "six cent cinquante-huit", "six cent cinquante-neuf", "six cent soixante", "six cent soixante-et-un", "six cent soixante-deux", "six cent soixante-trois", "six cent soixante-quatre", "six cent soixante-cinq", "six cent soixante-six", "six cent soixante-sept", "six cent soixante-huit", "six cent soixante-neuf", "six cent septante", "six cent septante-et-un", "six cent septante-deux", "six cent septante-trois", "six cent septante-quatre", "six cent septante-cinq", "six cent septante-six", "six cent septante-sept", "six cent septante-huit", "six cent septante-neuf", "six cent huitantes", "six cent huitante-un", "six cent huitante-deux", "six cent huitante-trois", "six cent huitante-quatre", "six cent huitante-cinq", "six cent huitante-six", "six cent huitante-sept", "six cent huitante-huit", "six cent huitante-neuf", "six cent nonante", "six cent nonante-et-un", "six cent nonante-deux", "six cent nonante-trois", "six cent nonante-quatre", "six cent nonante-cinq", "six cent nonante-six", "six cent nonante-sept", "six cent nonante-huit", "six cent nonante-neuf", "sept cents", "sept cent-un", "sept cent-deux", "sept cent-trois", "sept cent-quatre", "sept cent-cinq", "sept cent-six", "sept cent-sept", "sept cent-huit", "sept cent-neuf", "sept cent dix", "sept cent onze", "sept cent douze", "sept cent treize", "sept cent quatorze", "sept cent quinze", "sept cent seize", "sept cent dix-sept", "sept cent dix-huit", "sept cent dix-neuf", "sept cent vingt", "sept cent vingt-et-un", "sept cent vingt-deux", "sept cent vingt-trois", "sept cent vingt-quatre", "sept cent vingt-cinq", "sept cent vingt-six", "sept cent vingt-sept", "sept cent vingt-huit", "sept cent vingt-neuf", "sept cent trente", "sept cent trente-et-un", "sept cent trente-deux", "sept cent trente-trois", "sept cent trente-quatre", "sept cent trente-cinq", "sept cent trente-six", "sept cent trente-sept", "sept cent trente-huit", "sept cent trente-neuf", "sept cent quarante", "sept cent quarante-et-un", "sept cent quarante-deux", "sept cent quarante-trois", "sept cent quarante-quatre", "sept cent quarante-cinq", "sept cent quarante-six", "sept cent quarante-sept", "sept cent quarante-huit", "sept cent quarante-neuf", "sept cent cinquante", "sept cent cinquante-et-un", "sept cent cinquante-deux", "sept cent cinquante-trois", "sept cent cinquante-quatre", "sept cent cinquante-cinq", "sept cent cinquante-six", "sept cent cinquante-sept", "sept cent cinquante-huit", "sept cent cinquante-neuf", "sept cent soixante", "sept cent soixante-et-un", "sept cent soixante-deux", "sept cent soixante-trois", "sept cent soixante-quatre", "sept cent soixante-cinq", "sept cent soixante-six", "sept cent soixante-sept", "sept cent soixante-huit", "sept cent soixante-neuf", "sept cent septante", "sept cent septante-et-un", "sept cent septante-deux", "sept cent septante-trois", "sept cent septante-quatre", "sept cent septante-cinq", "sept cent septante-six", "sept cent septante-sept", "sept cent septante-huit", "sept cent septante-neuf", "sept cent huitantes", "sept cent huitante-un", "sept cent huitante-deux", "sept cent huitante-trois", "sept cent huitante-quatre", "sept cent huitante-cinq", "sept cent huitante-six", "sept cent huitante-sept", "sept cent huitante-huit", "sept cent huitante-neuf", "sept cent nonante", "sept cent nonante-et-un", "sept cent nonante-deux", "sept cent nonante-trois", "sept cent nonante-quatre", "sept cent nonante-cinq", "sept cent nonante-six", "sept cent nonante-sept", "sept cent nonante-huit", "sept cent nonante-neuf", "huit cents", "huit cent-un", "huit cent-deux", "huit cent-trois", "huit cent-quatre", "huit cent-cinq", "huit cent-six", "huit cent-sept", "huit cent-huit", "huit cent-neuf", "huit cent dix", "huit cent onze", "huit cent douze", "huit cent treize", "huit cent quatorze", "huit cent quinze", "huit cent seize", "huit cent dix-sept", "huit cent dix-huit", "huit cent dix-neuf", "huit cent vingt", "huit cent vingt-et-un", "huit cent vingt-deux", "huit cent vingt-trois", "huit cent vingt-quatre", "huit cent vingt-cinq", "huit cent vingt-six", "huit cent vingt-sept", "huit cent vingt-huit", "huit cent vingt-neuf", "huit cent trente", "huit cent trente-et-un", "huit cent trente-deux", "huit cent trente-trois", "huit cent trente-quatre", "huit cent trente-cinq", "huit cent trente-six", "huit cent trente-sept", "huit cent trente-huit", "huit cent trente-neuf", "huit cent quarante", "huit cent quarante-et-un", "huit cent quarante-deux", "huit cent quarante-trois", "huit cent quarante-quatre", "huit cent quarante-cinq", "huit cent quarante-six", "huit cent quarante-sept", "huit cent quarante-huit", "huit cent quarante-neuf", "huit cent cinquante", "huit cent cinquante-et-un", "huit cent cinquante-deux", "huit cent cinquante-trois", "huit cent cinquante-quatre", "huit cent cinquante-cinq", "huit cent cinquante-six", "huit cent cinquante-sept", "huit cent cinquante-huit", "huit cent cinquante-neuf", "huit cent soixante", "huit cent soixante-et-un", "huit cent soixante-deux", "huit cent soixante-trois", "huit cent soixante-quatre", "huit cent soixante-cinq", "huit cent soixante-six", "huit cent soixante-sept", "huit cent soixante-huit", "huit cent soixante-neuf", "huit cent septante", "huit cent septante-et-un", "huit cent septante-deux", "huit cent septante-trois", "huit cent septante-quatre", "huit cent septante-cinq", "huit cent septante-six", "huit cent septante-sept", "huit cent septante-huit", "huit cent septante-neuf", "huit cent huitantes", "huit cent huitante-un", "huit cent huitante-deux", "huit cent huitante-trois", "huit cent huitante-quatre", "huit cent huitante-cinq", "huit cent huitante-six", "huit cent huitante-sept", "huit cent huitante-huit", "huit cent huitante-neuf", "huit cent nonante", "huit cent nonante-et-un", "huit cent nonante-deux", "huit cent nonante-trois", "huit cent nonante-quatre", "huit cent nonante-cinq", "huit cent nonante-six", "huit cent nonante-sept", "huit cent nonante-huit", "huit cent nonante-neuf", "neuf cents", "neuf cent-un", "neuf cent-deux", "neuf cent-trois", "neuf cent-quatre", "neuf cent-cinq", "neuf cent-six", "neuf cent-sept", "neuf cent-huit", "neuf cent-neuf", "neuf cent dix", "neuf cent onze", "neuf cent douze", "neuf cent treize", "neuf cent quatorze", "neuf cent quinze", "neuf cent seize", "neuf cent dix-sept", "neuf cent dix-huit", "neuf cent dix-neuf", "neuf cent vingt", "neuf cent vingt-et-un", "neuf cent vingt-deux", "neuf cent vingt-trois", "neuf cent vingt-quatre", "neuf cent vingt-cinq", "neuf cent vingt-six", "neuf cent vingt-sept", "neuf cent vingt-huit", "neuf cent vingt-neuf", "neuf cent trente", "neuf cent trente-et-un", "neuf cent trente-deux", "neuf cent trente-trois", "neuf cent trente-quatre", "neuf cent trente-cinq", "neuf cent trente-six", "neuf cent trente-sept", "neuf cent trente-huit", "neuf cent trente-neuf", "neuf cent quarante", "neuf cent quarante-et-un", "neuf cent quarante-deux", "neuf cent quarante-trois", "neuf cent quarante-quatre", "neuf cent quarante-cinq", "neuf cent quarante-six", "neuf cent quarante-sept", "neuf cent quarante-huit", "neuf cent quarante-neuf", "neuf cent cinquante", "neuf cent cinquante-et-un", "neuf cent cinquante-deux", "neuf cent cinquante-trois", "neuf cent cinquante-quatre", "neuf cent cinquante-cinq", "neuf cent cinquante-six", "neuf cent cinquante-sept", "neuf cent cinquante-huit", "neuf cent cinquante-neuf", "neuf cent soixante", "neuf cent soixante-et-un", "neuf cent soixante-deux", "neuf cent soixante-trois", "neuf cent soixante-quatre", "neuf cent soixante-cinq", "neuf cent soixante-six", "neuf cent soixante-sept", "neuf cent soixante-huit", "neuf cent soixante-neuf", "neuf cent septante", "neuf cent septante-et-un", "neuf cent septante-deux", "neuf cent septante-trois", "neuf cent septante-quatre", "neuf cent septante-cinq", "neuf cent septante-six", "neuf cent septante-sept", "neuf cent septante-huit", "neuf cent septante-neuf", "neuf cent huitantes", "neuf cent huitante-un", "neuf cent huitante-deux", "neuf cent huitante-trois", "neuf cent huitante-quatre", "neuf cent huitante-cinq", "neuf cent huitante-six", "neuf cent huitante-sept", "neuf cent huitante-huit", "neuf cent huitante-neuf", "neuf cent nonante", "neuf cent nonante-et-un", "neuf cent nonante-deux", "neuf cent nonante-trois", "neuf cent nonante-quatre", "neuf cent nonante-cinq", "neuf cent nonante-six", "neuf cent nonante-sept", "neuf cent nonante-huit", "neuf cent nonante-neuf"] + SUB_ONE_GROUPING = ["zéro", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix-sept", "dix-huit", "dix-neuf", "vingt", "vingt-et-un", "vingt-deux", "vingt-trois", "vingt-quatre", "vingt-cinq", "vingt-six", "vingt-sept", "vingt-huit", "vingt-neuf", "trente", "trente-et-un", "trente-deux", "trente-trois", "trente-quatre", "trente-cinq", "trente-six", "trente-sept", "trente-huit", "trente-neuf", "quarante", "quarante-et-un", "quarante-deux", "quarante-trois", "quarante-quatre", "quarante-cinq", "quarante-six", "quarante-sept", "quarante-huit", "quarante-neuf", "cinquante", "cinquante-et-un", "cinquante-deux", "cinquante-trois", "cinquante-quatre", "cinquante-cinq", "cinquante-six", "cinquante-sept", "cinquante-huit", "cinquante-neuf", "soixante", "soixante-et-un", "soixante-deux", "soixante-trois", "soixante-quatre", "soixante-cinq", "soixante-six", "soixante-sept", "soixante-huit", "soixante-neuf", "septante", "septante-et-un", "septante-deux", "septante-trois", "septante-quatre", "septante-cinq", "septante-six", "septante-sept", "septante-huit", "septante-neuf", "huitante", "huitante-un", "huitante-deux", "huitante-trois", "huitante-quatre", "huitante-cinq", "huitante-six", "huitante-sept", "huitante-huit", "huitante-neuf", "nonante", "nonante-et-un", "nonante-deux", "nonante-trois", "nonante-quatre", "nonante-cinq", "nonante-six", "nonante-sept", "nonante-huit", "nonante-neuf", "cent", "cent-un", "cent-deux", "cent-trois", "cent-quatre", "cent-cinq", "cent-six", "cent-sept", "cent-huit", "cent-neuf", "cent dix", "cent onze", "cent douze", "cent treize", "cent quatorze", "cent quinze", "cent seize", "cent dix-sept", "cent dix-huit", "cent dix-neuf", "cent vingt", "cent vingt-et-un", "cent vingt-deux", "cent vingt-trois", "cent vingt-quatre", "cent vingt-cinq", "cent vingt-six", "cent vingt-sept", "cent vingt-huit", "cent vingt-neuf", "cent trente", "cent trente-et-un", "cent trente-deux", "cent trente-trois", "cent trente-quatre", "cent trente-cinq", "cent trente-six", "cent trente-sept", "cent trente-huit", "cent trente-neuf", "cent quarante", "cent quarante-et-un", "cent quarante-deux", "cent quarante-trois", "cent quarante-quatre", "cent quarante-cinq", "cent quarante-six", "cent quarante-sept", "cent quarante-huit", "cent quarante-neuf", "cent cinquante", "cent cinquante-et-un", "cent cinquante-deux", "cent cinquante-trois", "cent cinquante-quatre", "cent cinquante-cinq", "cent cinquante-six", "cent cinquante-sept", "cent cinquante-huit", "cent cinquante-neuf", "cent soixante", "cent soixante-et-un", "cent soixante-deux", "cent soixante-trois", "cent soixante-quatre", "cent soixante-cinq", "cent soixante-six", "cent soixante-sept", "cent soixante-huit", "cent soixante-neuf", "cent septante", "cent septante-et-un", "cent septante-deux", "cent septante-trois", "cent septante-quatre", "cent septante-cinq", "cent septante-six", "cent septante-sept", "cent septante-huit", "cent septante-neuf", "cent huitante", "cent huitante-un", "cent huitante-deux", "cent huitante-trois", "cent huitante-quatre", "cent huitante-cinq", "cent huitante-six", "cent huitante-sept", "cent huitante-huit", "cent huitante-neuf", "cent nonante", "cent nonante-et-un", "cent nonante-deux", "cent nonante-trois", "cent nonante-quatre", "cent nonante-cinq", "cent nonante-six", "cent nonante-sept", "cent nonante-huit", "cent nonante-neuf", "deux cents", "deux cent-un", "deux cent-deux", "deux cent-trois", "deux cent-quatre", "deux cent-cinq", "deux cent-six", "deux cent-sept", "deux cent-huit", "deux cent-neuf", "deux cent dix", "deux cent onze", "deux cent douze", "deux cent treize", "deux cent quatorze", "deux cent quinze", "deux cent seize", "deux cent dix-sept", "deux cent dix-huit", "deux cent dix-neuf", "deux cent vingt", "deux cent vingt-et-un", "deux cent vingt-deux", "deux cent vingt-trois", "deux cent vingt-quatre", "deux cent vingt-cinq", "deux cent vingt-six", "deux cent vingt-sept", "deux cent vingt-huit", "deux cent vingt-neuf", "deux cent trente", "deux cent trente-et-un", "deux cent trente-deux", "deux cent trente-trois", "deux cent trente-quatre", "deux cent trente-cinq", "deux cent trente-six", "deux cent trente-sept", "deux cent trente-huit", "deux cent trente-neuf", "deux cent quarante", "deux cent quarante-et-un", "deux cent quarante-deux", "deux cent quarante-trois", "deux cent quarante-quatre", "deux cent quarante-cinq", "deux cent quarante-six", "deux cent quarante-sept", "deux cent quarante-huit", "deux cent quarante-neuf", "deux cent cinquante", "deux cent cinquante-et-un", "deux cent cinquante-deux", "deux cent cinquante-trois", "deux cent cinquante-quatre", "deux cent cinquante-cinq", "deux cent cinquante-six", "deux cent cinquante-sept", "deux cent cinquante-huit", "deux cent cinquante-neuf", "deux cent soixante", "deux cent soixante-et-un", "deux cent soixante-deux", "deux cent soixante-trois", "deux cent soixante-quatre", "deux cent soixante-cinq", "deux cent soixante-six", "deux cent soixante-sept", "deux cent soixante-huit", "deux cent soixante-neuf", "deux cent septante", "deux cent septante-et-un", "deux cent septante-deux", "deux cent septante-trois", "deux cent septante-quatre", "deux cent septante-cinq", "deux cent septante-six", "deux cent septante-sept", "deux cent septante-huit", "deux cent septante-neuf", "deux cent huitante", "deux cent huitante-un", "deux cent huitante-deux", "deux cent huitante-trois", "deux cent huitante-quatre", "deux cent huitante-cinq", "deux cent huitante-six", "deux cent huitante-sept", "deux cent huitante-huit", "deux cent huitante-neuf", "deux cent nonante", "deux cent nonante-et-un", "deux cent nonante-deux", "deux cent nonante-trois", "deux cent nonante-quatre", "deux cent nonante-cinq", "deux cent nonante-six", "deux cent nonante-sept", "deux cent nonante-huit", "deux cent nonante-neuf", "trois cents", "trois cent-un", "trois cent-deux", "trois cent-trois", "trois cent-quatre", "trois cent-cinq", "trois cent-six", "trois cent-sept", "trois cent-huit", "trois cent-neuf", "trois cent dix", "trois cent onze", "trois cent douze", "trois cent treize", "trois cent quatorze", "trois cent quinze", "trois cent seize", "trois cent dix-sept", "trois cent dix-huit", "trois cent dix-neuf", "trois cent vingt", "trois cent vingt-et-un", "trois cent vingt-deux", "trois cent vingt-trois", "trois cent vingt-quatre", "trois cent vingt-cinq", "trois cent vingt-six", "trois cent vingt-sept", "trois cent vingt-huit", "trois cent vingt-neuf", "trois cent trente", "trois cent trente-et-un", "trois cent trente-deux", "trois cent trente-trois", "trois cent trente-quatre", "trois cent trente-cinq", "trois cent trente-six", "trois cent trente-sept", "trois cent trente-huit", "trois cent trente-neuf", "trois cent quarante", "trois cent quarante-et-un", "trois cent quarante-deux", "trois cent quarante-trois", "trois cent quarante-quatre", "trois cent quarante-cinq", "trois cent quarante-six", "trois cent quarante-sept", "trois cent quarante-huit", "trois cent quarante-neuf", "trois cent cinquante", "trois cent cinquante-et-un", "trois cent cinquante-deux", "trois cent cinquante-trois", "trois cent cinquante-quatre", "trois cent cinquante-cinq", "trois cent cinquante-six", "trois cent cinquante-sept", "trois cent cinquante-huit", "trois cent cinquante-neuf", "trois cent soixante", "trois cent soixante-et-un", "trois cent soixante-deux", "trois cent soixante-trois", "trois cent soixante-quatre", "trois cent soixante-cinq", "trois cent soixante-six", "trois cent soixante-sept", "trois cent soixante-huit", "trois cent soixante-neuf", "trois cent septante", "trois cent septante-et-un", "trois cent septante-deux", "trois cent septante-trois", "trois cent septante-quatre", "trois cent septante-cinq", "trois cent septante-six", "trois cent septante-sept", "trois cent septante-huit", "trois cent septante-neuf", "trois cent huitante", "trois cent huitante-un", "trois cent huitante-deux", "trois cent huitante-trois", "trois cent huitante-quatre", "trois cent huitante-cinq", "trois cent huitante-six", "trois cent huitante-sept", "trois cent huitante-huit", "trois cent huitante-neuf", "trois cent nonante", "trois cent nonante-et-un", "trois cent nonante-deux", "trois cent nonante-trois", "trois cent nonante-quatre", "trois cent nonante-cinq", "trois cent nonante-six", "trois cent nonante-sept", "trois cent nonante-huit", "trois cent nonante-neuf", "quatre cents", "quatre cent-un", "quatre cent-deux", "quatre cent-trois", "quatre cent-quatre", "quatre cent-cinq", "quatre cent-six", "quatre cent-sept", "quatre cent-huit", "quatre cent-neuf", "quatre cent dix", "quatre cent onze", "quatre cent douze", "quatre cent treize", "quatre cent quatorze", "quatre cent quinze", "quatre cent seize", "quatre cent dix-sept", "quatre cent dix-huit", "quatre cent dix-neuf", "quatre cent vingt", "quatre cent vingt-et-un", "quatre cent vingt-deux", "quatre cent vingt-trois", "quatre cent vingt-quatre", "quatre cent vingt-cinq", "quatre cent vingt-six", "quatre cent vingt-sept", "quatre cent vingt-huit", "quatre cent vingt-neuf", "quatre cent trente", "quatre cent trente-et-un", "quatre cent trente-deux", "quatre cent trente-trois", "quatre cent trente-quatre", "quatre cent trente-cinq", "quatre cent trente-six", "quatre cent trente-sept", "quatre cent trente-huit", "quatre cent trente-neuf", "quatre cent quarante", "quatre cent quarante-et-un", "quatre cent quarante-deux", "quatre cent quarante-trois", "quatre cent quarante-quatre", "quatre cent quarante-cinq", "quatre cent quarante-six", "quatre cent quarante-sept", "quatre cent quarante-huit", "quatre cent quarante-neuf", "quatre cent cinquante", "quatre cent cinquante-et-un", "quatre cent cinquante-deux", "quatre cent cinquante-trois", "quatre cent cinquante-quatre", "quatre cent cinquante-cinq", "quatre cent cinquante-six", "quatre cent cinquante-sept", "quatre cent cinquante-huit", "quatre cent cinquante-neuf", "quatre cent soixante", "quatre cent soixante-et-un", "quatre cent soixante-deux", "quatre cent soixante-trois", "quatre cent soixante-quatre", "quatre cent soixante-cinq", "quatre cent soixante-six", "quatre cent soixante-sept", "quatre cent soixante-huit", "quatre cent soixante-neuf", "quatre cent septante", "quatre cent septante-et-un", "quatre cent septante-deux", "quatre cent septante-trois", "quatre cent septante-quatre", "quatre cent septante-cinq", "quatre cent septante-six", "quatre cent septante-sept", "quatre cent septante-huit", "quatre cent septante-neuf", "quatre cent huitante", "quatre cent huitante-un", "quatre cent huitante-deux", "quatre cent huitante-trois", "quatre cent huitante-quatre", "quatre cent huitante-cinq", "quatre cent huitante-six", "quatre cent huitante-sept", "quatre cent huitante-huit", "quatre cent huitante-neuf", "quatre cent nonante", "quatre cent nonante-et-un", "quatre cent nonante-deux", "quatre cent nonante-trois", "quatre cent nonante-quatre", "quatre cent nonante-cinq", "quatre cent nonante-six", "quatre cent nonante-sept", "quatre cent nonante-huit", "quatre cent nonante-neuf", "cinq cents", "cinq cent-un", "cinq cent-deux", "cinq cent-trois", "cinq cent-quatre", "cinq cent-cinq", "cinq cent-six", "cinq cent-sept", "cinq cent-huit", "cinq cent-neuf", "cinq cent dix", "cinq cent onze", "cinq cent douze", "cinq cent treize", "cinq cent quatorze", "cinq cent quinze", "cinq cent seize", "cinq cent dix-sept", "cinq cent dix-huit", "cinq cent dix-neuf", "cinq cent vingt", "cinq cent vingt-et-un", "cinq cent vingt-deux", "cinq cent vingt-trois", "cinq cent vingt-quatre", "cinq cent vingt-cinq", "cinq cent vingt-six", "cinq cent vingt-sept", "cinq cent vingt-huit", "cinq cent vingt-neuf", "cinq cent trente", "cinq cent trente-et-un", "cinq cent trente-deux", "cinq cent trente-trois", "cinq cent trente-quatre", "cinq cent trente-cinq", "cinq cent trente-six", "cinq cent trente-sept", "cinq cent trente-huit", "cinq cent trente-neuf", "cinq cent quarante", "cinq cent quarante-et-un", "cinq cent quarante-deux", "cinq cent quarante-trois", "cinq cent quarante-quatre", "cinq cent quarante-cinq", "cinq cent quarante-six", "cinq cent quarante-sept", "cinq cent quarante-huit", "cinq cent quarante-neuf", "cinq cent cinquante", "cinq cent cinquante-et-un", "cinq cent cinquante-deux", "cinq cent cinquante-trois", "cinq cent cinquante-quatre", "cinq cent cinquante-cinq", "cinq cent cinquante-six", "cinq cent cinquante-sept", "cinq cent cinquante-huit", "cinq cent cinquante-neuf", "cinq cent soixante", "cinq cent soixante-et-un", "cinq cent soixante-deux", "cinq cent soixante-trois", "cinq cent soixante-quatre", "cinq cent soixante-cinq", "cinq cent soixante-six", "cinq cent soixante-sept", "cinq cent soixante-huit", "cinq cent soixante-neuf", "cinq cent septante", "cinq cent septante-et-un", "cinq cent septante-deux", "cinq cent septante-trois", "cinq cent septante-quatre", "cinq cent septante-cinq", "cinq cent septante-six", "cinq cent septante-sept", "cinq cent septante-huit", "cinq cent septante-neuf", "cinq cent huitante", "cinq cent huitante-un", "cinq cent huitante-deux", "cinq cent huitante-trois", "cinq cent huitante-quatre", "cinq cent huitante-cinq", "cinq cent huitante-six", "cinq cent huitante-sept", "cinq cent huitante-huit", "cinq cent huitante-neuf", "cinq cent nonante", "cinq cent nonante-et-un", "cinq cent nonante-deux", "cinq cent nonante-trois", "cinq cent nonante-quatre", "cinq cent nonante-cinq", "cinq cent nonante-six", "cinq cent nonante-sept", "cinq cent nonante-huit", "cinq cent nonante-neuf", "six cents", "six cent-un", "six cent-deux", "six cent-trois", "six cent-quatre", "six cent-cinq", "six cent-six", "six cent-sept", "six cent-huit", "six cent-neuf", "six cent dix", "six cent onze", "six cent douze", "six cent treize", "six cent quatorze", "six cent quinze", "six cent seize", "six cent dix-sept", "six cent dix-huit", "six cent dix-neuf", "six cent vingt", "six cent vingt-et-un", "six cent vingt-deux", "six cent vingt-trois", "six cent vingt-quatre", "six cent vingt-cinq", "six cent vingt-six", "six cent vingt-sept", "six cent vingt-huit", "six cent vingt-neuf", "six cent trente", "six cent trente-et-un", "six cent trente-deux", "six cent trente-trois", "six cent trente-quatre", "six cent trente-cinq", "six cent trente-six", "six cent trente-sept", "six cent trente-huit", "six cent trente-neuf", "six cent quarante", "six cent quarante-et-un", "six cent quarante-deux", "six cent quarante-trois", "six cent quarante-quatre", "six cent quarante-cinq", "six cent quarante-six", "six cent quarante-sept", "six cent quarante-huit", "six cent quarante-neuf", "six cent cinquante", "six cent cinquante-et-un", "six cent cinquante-deux", "six cent cinquante-trois", "six cent cinquante-quatre", "six cent cinquante-cinq", "six cent cinquante-six", "six cent cinquante-sept", "six cent cinquante-huit", "six cent cinquante-neuf", "six cent soixante", "six cent soixante-et-un", "six cent soixante-deux", "six cent soixante-trois", "six cent soixante-quatre", "six cent soixante-cinq", "six cent soixante-six", "six cent soixante-sept", "six cent soixante-huit", "six cent soixante-neuf", "six cent septante", "six cent septante-et-un", "six cent septante-deux", "six cent septante-trois", "six cent septante-quatre", "six cent septante-cinq", "six cent septante-six", "six cent septante-sept", "six cent septante-huit", "six cent septante-neuf", "six cent huitante", "six cent huitante-un", "six cent huitante-deux", "six cent huitante-trois", "six cent huitante-quatre", "six cent huitante-cinq", "six cent huitante-six", "six cent huitante-sept", "six cent huitante-huit", "six cent huitante-neuf", "six cent nonante", "six cent nonante-et-un", "six cent nonante-deux", "six cent nonante-trois", "six cent nonante-quatre", "six cent nonante-cinq", "six cent nonante-six", "six cent nonante-sept", "six cent nonante-huit", "six cent nonante-neuf", "sept cents", "sept cent-un", "sept cent-deux", "sept cent-trois", "sept cent-quatre", "sept cent-cinq", "sept cent-six", "sept cent-sept", "sept cent-huit", "sept cent-neuf", "sept cent dix", "sept cent onze", "sept cent douze", "sept cent treize", "sept cent quatorze", "sept cent quinze", "sept cent seize", "sept cent dix-sept", "sept cent dix-huit", "sept cent dix-neuf", "sept cent vingt", "sept cent vingt-et-un", "sept cent vingt-deux", "sept cent vingt-trois", "sept cent vingt-quatre", "sept cent vingt-cinq", "sept cent vingt-six", "sept cent vingt-sept", "sept cent vingt-huit", "sept cent vingt-neuf", "sept cent trente", "sept cent trente-et-un", "sept cent trente-deux", "sept cent trente-trois", "sept cent trente-quatre", "sept cent trente-cinq", "sept cent trente-six", "sept cent trente-sept", "sept cent trente-huit", "sept cent trente-neuf", "sept cent quarante", "sept cent quarante-et-un", "sept cent quarante-deux", "sept cent quarante-trois", "sept cent quarante-quatre", "sept cent quarante-cinq", "sept cent quarante-six", "sept cent quarante-sept", "sept cent quarante-huit", "sept cent quarante-neuf", "sept cent cinquante", "sept cent cinquante-et-un", "sept cent cinquante-deux", "sept cent cinquante-trois", "sept cent cinquante-quatre", "sept cent cinquante-cinq", "sept cent cinquante-six", "sept cent cinquante-sept", "sept cent cinquante-huit", "sept cent cinquante-neuf", "sept cent soixante", "sept cent soixante-et-un", "sept cent soixante-deux", "sept cent soixante-trois", "sept cent soixante-quatre", "sept cent soixante-cinq", "sept cent soixante-six", "sept cent soixante-sept", "sept cent soixante-huit", "sept cent soixante-neuf", "sept cent septante", "sept cent septante-et-un", "sept cent septante-deux", "sept cent septante-trois", "sept cent septante-quatre", "sept cent septante-cinq", "sept cent septante-six", "sept cent septante-sept", "sept cent septante-huit", "sept cent septante-neuf", "sept cent huitante", "sept cent huitante-un", "sept cent huitante-deux", "sept cent huitante-trois", "sept cent huitante-quatre", "sept cent huitante-cinq", "sept cent huitante-six", "sept cent huitante-sept", "sept cent huitante-huit", "sept cent huitante-neuf", "sept cent nonante", "sept cent nonante-et-un", "sept cent nonante-deux", "sept cent nonante-trois", "sept cent nonante-quatre", "sept cent nonante-cinq", "sept cent nonante-six", "sept cent nonante-sept", "sept cent nonante-huit", "sept cent nonante-neuf", "huit cents", "huit cent-un", "huit cent-deux", "huit cent-trois", "huit cent-quatre", "huit cent-cinq", "huit cent-six", "huit cent-sept", "huit cent-huit", "huit cent-neuf", "huit cent dix", "huit cent onze", "huit cent douze", "huit cent treize", "huit cent quatorze", "huit cent quinze", "huit cent seize", "huit cent dix-sept", "huit cent dix-huit", "huit cent dix-neuf", "huit cent vingt", "huit cent vingt-et-un", "huit cent vingt-deux", "huit cent vingt-trois", "huit cent vingt-quatre", "huit cent vingt-cinq", "huit cent vingt-six", "huit cent vingt-sept", "huit cent vingt-huit", "huit cent vingt-neuf", "huit cent trente", "huit cent trente-et-un", "huit cent trente-deux", "huit cent trente-trois", "huit cent trente-quatre", "huit cent trente-cinq", "huit cent trente-six", "huit cent trente-sept", "huit cent trente-huit", "huit cent trente-neuf", "huit cent quarante", "huit cent quarante-et-un", "huit cent quarante-deux", "huit cent quarante-trois", "huit cent quarante-quatre", "huit cent quarante-cinq", "huit cent quarante-six", "huit cent quarante-sept", "huit cent quarante-huit", "huit cent quarante-neuf", "huit cent cinquante", "huit cent cinquante-et-un", "huit cent cinquante-deux", "huit cent cinquante-trois", "huit cent cinquante-quatre", "huit cent cinquante-cinq", "huit cent cinquante-six", "huit cent cinquante-sept", "huit cent cinquante-huit", "huit cent cinquante-neuf", "huit cent soixante", "huit cent soixante-et-un", "huit cent soixante-deux", "huit cent soixante-trois", "huit cent soixante-quatre", "huit cent soixante-cinq", "huit cent soixante-six", "huit cent soixante-sept", "huit cent soixante-huit", "huit cent soixante-neuf", "huit cent septante", "huit cent septante-et-un", "huit cent septante-deux", "huit cent septante-trois", "huit cent septante-quatre", "huit cent septante-cinq", "huit cent septante-six", "huit cent septante-sept", "huit cent septante-huit", "huit cent septante-neuf", "huit cent huitante", "huit cent huitante-un", "huit cent huitante-deux", "huit cent huitante-trois", "huit cent huitante-quatre", "huit cent huitante-cinq", "huit cent huitante-six", "huit cent huitante-sept", "huit cent huitante-huit", "huit cent huitante-neuf", "huit cent nonante", "huit cent nonante-et-un", "huit cent nonante-deux", "huit cent nonante-trois", "huit cent nonante-quatre", "huit cent nonante-cinq", "huit cent nonante-six", "huit cent nonante-sept", "huit cent nonante-huit", "huit cent nonante-neuf", "neuf cents", "neuf cent-un", "neuf cent-deux", "neuf cent-trois", "neuf cent-quatre", "neuf cent-cinq", "neuf cent-six", "neuf cent-sept", "neuf cent-huit", "neuf cent-neuf", "neuf cent dix", "neuf cent onze", "neuf cent douze", "neuf cent treize", "neuf cent quatorze", "neuf cent quinze", "neuf cent seize", "neuf cent dix-sept", "neuf cent dix-huit", "neuf cent dix-neuf", "neuf cent vingt", "neuf cent vingt-et-un", "neuf cent vingt-deux", "neuf cent vingt-trois", "neuf cent vingt-quatre", "neuf cent vingt-cinq", "neuf cent vingt-six", "neuf cent vingt-sept", "neuf cent vingt-huit", "neuf cent vingt-neuf", "neuf cent trente", "neuf cent trente-et-un", "neuf cent trente-deux", "neuf cent trente-trois", "neuf cent trente-quatre", "neuf cent trente-cinq", "neuf cent trente-six", "neuf cent trente-sept", "neuf cent trente-huit", "neuf cent trente-neuf", "neuf cent quarante", "neuf cent quarante-et-un", "neuf cent quarante-deux", "neuf cent quarante-trois", "neuf cent quarante-quatre", "neuf cent quarante-cinq", "neuf cent quarante-six", "neuf cent quarante-sept", "neuf cent quarante-huit", "neuf cent quarante-neuf", "neuf cent cinquante", "neuf cent cinquante-et-un", "neuf cent cinquante-deux", "neuf cent cinquante-trois", "neuf cent cinquante-quatre", "neuf cent cinquante-cinq", "neuf cent cinquante-six", "neuf cent cinquante-sept", "neuf cent cinquante-huit", "neuf cent cinquante-neuf", "neuf cent soixante", "neuf cent soixante-et-un", "neuf cent soixante-deux", "neuf cent soixante-trois", "neuf cent soixante-quatre", "neuf cent soixante-cinq", "neuf cent soixante-six", "neuf cent soixante-sept", "neuf cent soixante-huit", "neuf cent soixante-neuf", "neuf cent septante", "neuf cent septante-et-un", "neuf cent septante-deux", "neuf cent septante-trois", "neuf cent septante-quatre", "neuf cent septante-cinq", "neuf cent septante-six", "neuf cent septante-sept", "neuf cent septante-huit", "neuf cent septante-neuf", "neuf cent huitante", "neuf cent huitante-un", "neuf cent huitante-deux", "neuf cent huitante-trois", "neuf cent huitante-quatre", "neuf cent huitante-cinq", "neuf cent huitante-six", "neuf cent huitante-sept", "neuf cent huitante-huit", "neuf cent huitante-neuf", "neuf cent nonante", "neuf cent nonante-et-un", "neuf cent nonante-deux", "neuf cent nonante-trois", "neuf cent nonante-quatre", "neuf cent nonante-cinq", "neuf cent nonante-six", "neuf cent nonante-sept", "neuf cent nonante-huit", "neuf cent nonante-neuf"] end end From ccf99fec89ad4a1d20f4e627337c78b564e64a69 Mon Sep 17 00:00:00 2001 From: Vincent Romagnoli Date: Thu, 28 Mar 2024 15:46:14 +0100 Subject: [PATCH 3/4] fix test --- spec/locales/fr_ch_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/locales/fr_ch_spec.rb b/spec/locales/fr_ch_spec.rb index e1bca22..f56be45 100644 --- a/spec/locales/fr_ch_spec.rb +++ b/spec/locales/fr_ch_spec.rb @@ -9,7 +9,7 @@ tests = [ [71, 'septante-et-un'], - [80.15, 'huitantes virgule un cinq'], + [80.15, 'huitante virgule un cinq'], [1090, 'mille nonante'], [2095, 'deux mille nonante-cinq'], [10_000, 'dix mille'], From dfc853108822ac45f9293848d33f3ffff1277b08 Mon Sep 17 00:00:00 2001 From: Ryan Bigg Date: Mon, 15 Apr 2024 08:53:26 +1000 Subject: [PATCH 4/4] Fix Rubocop complaints --- lib/humanize.rb | 2 +- lib/humanize/locales/constants/fr_ch.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/humanize.rb b/lib/humanize.rb index 59bdf54..2454c05 100644 --- a/lib/humanize.rb +++ b/lib/humanize.rb @@ -38,7 +38,7 @@ def self.for_locale(locale) [Humanize::Tr, SPACE] when :jp [Humanize::Jp, EMPTY] - when :"fr-CH" + when :'fr-CH' [Humanize::FrCh, SPACE] else raise "Unsupported humanize locale: #{locale}" diff --git a/lib/humanize/locales/constants/fr_ch.rb b/lib/humanize/locales/constants/fr_ch.rb index 1a6726e..d34b839 100644 --- a/lib/humanize/locales/constants/fr_ch.rb +++ b/lib/humanize/locales/constants/fr_ch.rb @@ -5,6 +5,6 @@ class FrCh NEGATIVE = 'négatif'.freeze POINT = 'virgule'.freeze LOTS = [nil, 'mille', 'million', 'milliard', 'billion', 'billiard', 'trillion', 'trilliard', 'quadrillion', 'quadrilliard', 'quintillion', 'quintilliard', 'sextillion', 'sextilliard', 'septillion', 'septilliard', 'octillion', 'octilliard', 'nonillion', 'nonilliard', 'décillion', 'décilliard', 'undécillion', 'undécilliard', 'duodécillion', 'duodécilliard', 'tredécillion', 'tredécilliard', 'quattuordécillion', 'quattuordécilliard', 'quindécillion', 'quindécilliard', 'sexdécillion', 'sexdécilliard', 'septendécillion', 'septendécilliard', 'octodécillion', 'octodécilliard', 'novemdécillion', 'novemdécilliard', 'vigintillion', 'vigintilliard', 'unvigintilliard', 'duovigintilliard', 'trevigintilliard', 'quattuorvigintilliard', 'quinvigintilliard', 'sexvigintilliard', 'septenvigintilliard', 'octovigintilliard', 'novemvigintilliard', 'quinquavigintilliard'].freeze - SUB_ONE_GROUPING = ["zéro", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix-sept", "dix-huit", "dix-neuf", "vingt", "vingt-et-un", "vingt-deux", "vingt-trois", "vingt-quatre", "vingt-cinq", "vingt-six", "vingt-sept", "vingt-huit", "vingt-neuf", "trente", "trente-et-un", "trente-deux", "trente-trois", "trente-quatre", "trente-cinq", "trente-six", "trente-sept", "trente-huit", "trente-neuf", "quarante", "quarante-et-un", "quarante-deux", "quarante-trois", "quarante-quatre", "quarante-cinq", "quarante-six", "quarante-sept", "quarante-huit", "quarante-neuf", "cinquante", "cinquante-et-un", "cinquante-deux", "cinquante-trois", "cinquante-quatre", "cinquante-cinq", "cinquante-six", "cinquante-sept", "cinquante-huit", "cinquante-neuf", "soixante", "soixante-et-un", "soixante-deux", "soixante-trois", "soixante-quatre", "soixante-cinq", "soixante-six", "soixante-sept", "soixante-huit", "soixante-neuf", "septante", "septante-et-un", "septante-deux", "septante-trois", "septante-quatre", "septante-cinq", "septante-six", "septante-sept", "septante-huit", "septante-neuf", "huitante", "huitante-un", "huitante-deux", "huitante-trois", "huitante-quatre", "huitante-cinq", "huitante-six", "huitante-sept", "huitante-huit", "huitante-neuf", "nonante", "nonante-et-un", "nonante-deux", "nonante-trois", "nonante-quatre", "nonante-cinq", "nonante-six", "nonante-sept", "nonante-huit", "nonante-neuf", "cent", "cent-un", "cent-deux", "cent-trois", "cent-quatre", "cent-cinq", "cent-six", "cent-sept", "cent-huit", "cent-neuf", "cent dix", "cent onze", "cent douze", "cent treize", "cent quatorze", "cent quinze", "cent seize", "cent dix-sept", "cent dix-huit", "cent dix-neuf", "cent vingt", "cent vingt-et-un", "cent vingt-deux", "cent vingt-trois", "cent vingt-quatre", "cent vingt-cinq", "cent vingt-six", "cent vingt-sept", "cent vingt-huit", "cent vingt-neuf", "cent trente", "cent trente-et-un", "cent trente-deux", "cent trente-trois", "cent trente-quatre", "cent trente-cinq", "cent trente-six", "cent trente-sept", "cent trente-huit", "cent trente-neuf", "cent quarante", "cent quarante-et-un", "cent quarante-deux", "cent quarante-trois", "cent quarante-quatre", "cent quarante-cinq", "cent quarante-six", "cent quarante-sept", "cent quarante-huit", "cent quarante-neuf", "cent cinquante", "cent cinquante-et-un", "cent cinquante-deux", "cent cinquante-trois", "cent cinquante-quatre", "cent cinquante-cinq", "cent cinquante-six", "cent cinquante-sept", "cent cinquante-huit", "cent cinquante-neuf", "cent soixante", "cent soixante-et-un", "cent soixante-deux", "cent soixante-trois", "cent soixante-quatre", "cent soixante-cinq", "cent soixante-six", "cent soixante-sept", "cent soixante-huit", "cent soixante-neuf", "cent septante", "cent septante-et-un", "cent septante-deux", "cent septante-trois", "cent septante-quatre", "cent septante-cinq", "cent septante-six", "cent septante-sept", "cent septante-huit", "cent septante-neuf", "cent huitante", "cent huitante-un", "cent huitante-deux", "cent huitante-trois", "cent huitante-quatre", "cent huitante-cinq", "cent huitante-six", "cent huitante-sept", "cent huitante-huit", "cent huitante-neuf", "cent nonante", "cent nonante-et-un", "cent nonante-deux", "cent nonante-trois", "cent nonante-quatre", "cent nonante-cinq", "cent nonante-six", "cent nonante-sept", "cent nonante-huit", "cent nonante-neuf", "deux cents", "deux cent-un", "deux cent-deux", "deux cent-trois", "deux cent-quatre", "deux cent-cinq", "deux cent-six", "deux cent-sept", "deux cent-huit", "deux cent-neuf", "deux cent dix", "deux cent onze", "deux cent douze", "deux cent treize", "deux cent quatorze", "deux cent quinze", "deux cent seize", "deux cent dix-sept", "deux cent dix-huit", "deux cent dix-neuf", "deux cent vingt", "deux cent vingt-et-un", "deux cent vingt-deux", "deux cent vingt-trois", "deux cent vingt-quatre", "deux cent vingt-cinq", "deux cent vingt-six", "deux cent vingt-sept", "deux cent vingt-huit", "deux cent vingt-neuf", "deux cent trente", "deux cent trente-et-un", "deux cent trente-deux", "deux cent trente-trois", "deux cent trente-quatre", "deux cent trente-cinq", "deux cent trente-six", "deux cent trente-sept", "deux cent trente-huit", "deux cent trente-neuf", "deux cent quarante", "deux cent quarante-et-un", "deux cent quarante-deux", "deux cent quarante-trois", "deux cent quarante-quatre", "deux cent quarante-cinq", "deux cent quarante-six", "deux cent quarante-sept", "deux cent quarante-huit", "deux cent quarante-neuf", "deux cent cinquante", "deux cent cinquante-et-un", "deux cent cinquante-deux", "deux cent cinquante-trois", "deux cent cinquante-quatre", "deux cent cinquante-cinq", "deux cent cinquante-six", "deux cent cinquante-sept", "deux cent cinquante-huit", "deux cent cinquante-neuf", "deux cent soixante", "deux cent soixante-et-un", "deux cent soixante-deux", "deux cent soixante-trois", "deux cent soixante-quatre", "deux cent soixante-cinq", "deux cent soixante-six", "deux cent soixante-sept", "deux cent soixante-huit", "deux cent soixante-neuf", "deux cent septante", "deux cent septante-et-un", "deux cent septante-deux", "deux cent septante-trois", "deux cent septante-quatre", "deux cent septante-cinq", "deux cent septante-six", "deux cent septante-sept", "deux cent septante-huit", "deux cent septante-neuf", "deux cent huitante", "deux cent huitante-un", "deux cent huitante-deux", "deux cent huitante-trois", "deux cent huitante-quatre", "deux cent huitante-cinq", "deux cent huitante-six", "deux cent huitante-sept", "deux cent huitante-huit", "deux cent huitante-neuf", "deux cent nonante", "deux cent nonante-et-un", "deux cent nonante-deux", "deux cent nonante-trois", "deux cent nonante-quatre", "deux cent nonante-cinq", "deux cent nonante-six", "deux cent nonante-sept", "deux cent nonante-huit", "deux cent nonante-neuf", "trois cents", "trois cent-un", "trois cent-deux", "trois cent-trois", "trois cent-quatre", "trois cent-cinq", "trois cent-six", "trois cent-sept", "trois cent-huit", "trois cent-neuf", "trois cent dix", "trois cent onze", "trois cent douze", "trois cent treize", "trois cent quatorze", "trois cent quinze", "trois cent seize", "trois cent dix-sept", "trois cent dix-huit", "trois cent dix-neuf", "trois cent vingt", "trois cent vingt-et-un", "trois cent vingt-deux", "trois cent vingt-trois", "trois cent vingt-quatre", "trois cent vingt-cinq", "trois cent vingt-six", "trois cent vingt-sept", "trois cent vingt-huit", "trois cent vingt-neuf", "trois cent trente", "trois cent trente-et-un", "trois cent trente-deux", "trois cent trente-trois", "trois cent trente-quatre", "trois cent trente-cinq", "trois cent trente-six", "trois cent trente-sept", "trois cent trente-huit", "trois cent trente-neuf", "trois cent quarante", "trois cent quarante-et-un", "trois cent quarante-deux", "trois cent quarante-trois", "trois cent quarante-quatre", "trois cent quarante-cinq", "trois cent quarante-six", "trois cent quarante-sept", "trois cent quarante-huit", "trois cent quarante-neuf", "trois cent cinquante", "trois cent cinquante-et-un", "trois cent cinquante-deux", "trois cent cinquante-trois", "trois cent cinquante-quatre", "trois cent cinquante-cinq", "trois cent cinquante-six", "trois cent cinquante-sept", "trois cent cinquante-huit", "trois cent cinquante-neuf", "trois cent soixante", "trois cent soixante-et-un", "trois cent soixante-deux", "trois cent soixante-trois", "trois cent soixante-quatre", "trois cent soixante-cinq", "trois cent soixante-six", "trois cent soixante-sept", "trois cent soixante-huit", "trois cent soixante-neuf", "trois cent septante", "trois cent septante-et-un", "trois cent septante-deux", "trois cent septante-trois", "trois cent septante-quatre", "trois cent septante-cinq", "trois cent septante-six", "trois cent septante-sept", "trois cent septante-huit", "trois cent septante-neuf", "trois cent huitante", "trois cent huitante-un", "trois cent huitante-deux", "trois cent huitante-trois", "trois cent huitante-quatre", "trois cent huitante-cinq", "trois cent huitante-six", "trois cent huitante-sept", "trois cent huitante-huit", "trois cent huitante-neuf", "trois cent nonante", "trois cent nonante-et-un", "trois cent nonante-deux", "trois cent nonante-trois", "trois cent nonante-quatre", "trois cent nonante-cinq", "trois cent nonante-six", "trois cent nonante-sept", "trois cent nonante-huit", "trois cent nonante-neuf", "quatre cents", "quatre cent-un", "quatre cent-deux", "quatre cent-trois", "quatre cent-quatre", "quatre cent-cinq", "quatre cent-six", "quatre cent-sept", "quatre cent-huit", "quatre cent-neuf", "quatre cent dix", "quatre cent onze", "quatre cent douze", "quatre cent treize", "quatre cent quatorze", "quatre cent quinze", "quatre cent seize", "quatre cent dix-sept", "quatre cent dix-huit", "quatre cent dix-neuf", "quatre cent vingt", "quatre cent vingt-et-un", "quatre cent vingt-deux", "quatre cent vingt-trois", "quatre cent vingt-quatre", "quatre cent vingt-cinq", "quatre cent vingt-six", "quatre cent vingt-sept", "quatre cent vingt-huit", "quatre cent vingt-neuf", "quatre cent trente", "quatre cent trente-et-un", "quatre cent trente-deux", "quatre cent trente-trois", "quatre cent trente-quatre", "quatre cent trente-cinq", "quatre cent trente-six", "quatre cent trente-sept", "quatre cent trente-huit", "quatre cent trente-neuf", "quatre cent quarante", "quatre cent quarante-et-un", "quatre cent quarante-deux", "quatre cent quarante-trois", "quatre cent quarante-quatre", "quatre cent quarante-cinq", "quatre cent quarante-six", "quatre cent quarante-sept", "quatre cent quarante-huit", "quatre cent quarante-neuf", "quatre cent cinquante", "quatre cent cinquante-et-un", "quatre cent cinquante-deux", "quatre cent cinquante-trois", "quatre cent cinquante-quatre", "quatre cent cinquante-cinq", "quatre cent cinquante-six", "quatre cent cinquante-sept", "quatre cent cinquante-huit", "quatre cent cinquante-neuf", "quatre cent soixante", "quatre cent soixante-et-un", "quatre cent soixante-deux", "quatre cent soixante-trois", "quatre cent soixante-quatre", "quatre cent soixante-cinq", "quatre cent soixante-six", "quatre cent soixante-sept", "quatre cent soixante-huit", "quatre cent soixante-neuf", "quatre cent septante", "quatre cent septante-et-un", "quatre cent septante-deux", "quatre cent septante-trois", "quatre cent septante-quatre", "quatre cent septante-cinq", "quatre cent septante-six", "quatre cent septante-sept", "quatre cent septante-huit", "quatre cent septante-neuf", "quatre cent huitante", "quatre cent huitante-un", "quatre cent huitante-deux", "quatre cent huitante-trois", "quatre cent huitante-quatre", "quatre cent huitante-cinq", "quatre cent huitante-six", "quatre cent huitante-sept", "quatre cent huitante-huit", "quatre cent huitante-neuf", "quatre cent nonante", "quatre cent nonante-et-un", "quatre cent nonante-deux", "quatre cent nonante-trois", "quatre cent nonante-quatre", "quatre cent nonante-cinq", "quatre cent nonante-six", "quatre cent nonante-sept", "quatre cent nonante-huit", "quatre cent nonante-neuf", "cinq cents", "cinq cent-un", "cinq cent-deux", "cinq cent-trois", "cinq cent-quatre", "cinq cent-cinq", "cinq cent-six", "cinq cent-sept", "cinq cent-huit", "cinq cent-neuf", "cinq cent dix", "cinq cent onze", "cinq cent douze", "cinq cent treize", "cinq cent quatorze", "cinq cent quinze", "cinq cent seize", "cinq cent dix-sept", "cinq cent dix-huit", "cinq cent dix-neuf", "cinq cent vingt", "cinq cent vingt-et-un", "cinq cent vingt-deux", "cinq cent vingt-trois", "cinq cent vingt-quatre", "cinq cent vingt-cinq", "cinq cent vingt-six", "cinq cent vingt-sept", "cinq cent vingt-huit", "cinq cent vingt-neuf", "cinq cent trente", "cinq cent trente-et-un", "cinq cent trente-deux", "cinq cent trente-trois", "cinq cent trente-quatre", "cinq cent trente-cinq", "cinq cent trente-six", "cinq cent trente-sept", "cinq cent trente-huit", "cinq cent trente-neuf", "cinq cent quarante", "cinq cent quarante-et-un", "cinq cent quarante-deux", "cinq cent quarante-trois", "cinq cent quarante-quatre", "cinq cent quarante-cinq", "cinq cent quarante-six", "cinq cent quarante-sept", "cinq cent quarante-huit", "cinq cent quarante-neuf", "cinq cent cinquante", "cinq cent cinquante-et-un", "cinq cent cinquante-deux", "cinq cent cinquante-trois", "cinq cent cinquante-quatre", "cinq cent cinquante-cinq", "cinq cent cinquante-six", "cinq cent cinquante-sept", "cinq cent cinquante-huit", "cinq cent cinquante-neuf", "cinq cent soixante", "cinq cent soixante-et-un", "cinq cent soixante-deux", "cinq cent soixante-trois", "cinq cent soixante-quatre", "cinq cent soixante-cinq", "cinq cent soixante-six", "cinq cent soixante-sept", "cinq cent soixante-huit", "cinq cent soixante-neuf", "cinq cent septante", "cinq cent septante-et-un", "cinq cent septante-deux", "cinq cent septante-trois", "cinq cent septante-quatre", "cinq cent septante-cinq", "cinq cent septante-six", "cinq cent septante-sept", "cinq cent septante-huit", "cinq cent septante-neuf", "cinq cent huitante", "cinq cent huitante-un", "cinq cent huitante-deux", "cinq cent huitante-trois", "cinq cent huitante-quatre", "cinq cent huitante-cinq", "cinq cent huitante-six", "cinq cent huitante-sept", "cinq cent huitante-huit", "cinq cent huitante-neuf", "cinq cent nonante", "cinq cent nonante-et-un", "cinq cent nonante-deux", "cinq cent nonante-trois", "cinq cent nonante-quatre", "cinq cent nonante-cinq", "cinq cent nonante-six", "cinq cent nonante-sept", "cinq cent nonante-huit", "cinq cent nonante-neuf", "six cents", "six cent-un", "six cent-deux", "six cent-trois", "six cent-quatre", "six cent-cinq", "six cent-six", "six cent-sept", "six cent-huit", "six cent-neuf", "six cent dix", "six cent onze", "six cent douze", "six cent treize", "six cent quatorze", "six cent quinze", "six cent seize", "six cent dix-sept", "six cent dix-huit", "six cent dix-neuf", "six cent vingt", "six cent vingt-et-un", "six cent vingt-deux", "six cent vingt-trois", "six cent vingt-quatre", "six cent vingt-cinq", "six cent vingt-six", "six cent vingt-sept", "six cent vingt-huit", "six cent vingt-neuf", "six cent trente", "six cent trente-et-un", "six cent trente-deux", "six cent trente-trois", "six cent trente-quatre", "six cent trente-cinq", "six cent trente-six", "six cent trente-sept", "six cent trente-huit", "six cent trente-neuf", "six cent quarante", "six cent quarante-et-un", "six cent quarante-deux", "six cent quarante-trois", "six cent quarante-quatre", "six cent quarante-cinq", "six cent quarante-six", "six cent quarante-sept", "six cent quarante-huit", "six cent quarante-neuf", "six cent cinquante", "six cent cinquante-et-un", "six cent cinquante-deux", "six cent cinquante-trois", "six cent cinquante-quatre", "six cent cinquante-cinq", "six cent cinquante-six", "six cent cinquante-sept", "six cent cinquante-huit", "six cent cinquante-neuf", "six cent soixante", "six cent soixante-et-un", "six cent soixante-deux", "six cent soixante-trois", "six cent soixante-quatre", "six cent soixante-cinq", "six cent soixante-six", "six cent soixante-sept", "six cent soixante-huit", "six cent soixante-neuf", "six cent septante", "six cent septante-et-un", "six cent septante-deux", "six cent septante-trois", "six cent septante-quatre", "six cent septante-cinq", "six cent septante-six", "six cent septante-sept", "six cent septante-huit", "six cent septante-neuf", "six cent huitante", "six cent huitante-un", "six cent huitante-deux", "six cent huitante-trois", "six cent huitante-quatre", "six cent huitante-cinq", "six cent huitante-six", "six cent huitante-sept", "six cent huitante-huit", "six cent huitante-neuf", "six cent nonante", "six cent nonante-et-un", "six cent nonante-deux", "six cent nonante-trois", "six cent nonante-quatre", "six cent nonante-cinq", "six cent nonante-six", "six cent nonante-sept", "six cent nonante-huit", "six cent nonante-neuf", "sept cents", "sept cent-un", "sept cent-deux", "sept cent-trois", "sept cent-quatre", "sept cent-cinq", "sept cent-six", "sept cent-sept", "sept cent-huit", "sept cent-neuf", "sept cent dix", "sept cent onze", "sept cent douze", "sept cent treize", "sept cent quatorze", "sept cent quinze", "sept cent seize", "sept cent dix-sept", "sept cent dix-huit", "sept cent dix-neuf", "sept cent vingt", "sept cent vingt-et-un", "sept cent vingt-deux", "sept cent vingt-trois", "sept cent vingt-quatre", "sept cent vingt-cinq", "sept cent vingt-six", "sept cent vingt-sept", "sept cent vingt-huit", "sept cent vingt-neuf", "sept cent trente", "sept cent trente-et-un", "sept cent trente-deux", "sept cent trente-trois", "sept cent trente-quatre", "sept cent trente-cinq", "sept cent trente-six", "sept cent trente-sept", "sept cent trente-huit", "sept cent trente-neuf", "sept cent quarante", "sept cent quarante-et-un", "sept cent quarante-deux", "sept cent quarante-trois", "sept cent quarante-quatre", "sept cent quarante-cinq", "sept cent quarante-six", "sept cent quarante-sept", "sept cent quarante-huit", "sept cent quarante-neuf", "sept cent cinquante", "sept cent cinquante-et-un", "sept cent cinquante-deux", "sept cent cinquante-trois", "sept cent cinquante-quatre", "sept cent cinquante-cinq", "sept cent cinquante-six", "sept cent cinquante-sept", "sept cent cinquante-huit", "sept cent cinquante-neuf", "sept cent soixante", "sept cent soixante-et-un", "sept cent soixante-deux", "sept cent soixante-trois", "sept cent soixante-quatre", "sept cent soixante-cinq", "sept cent soixante-six", "sept cent soixante-sept", "sept cent soixante-huit", "sept cent soixante-neuf", "sept cent septante", "sept cent septante-et-un", "sept cent septante-deux", "sept cent septante-trois", "sept cent septante-quatre", "sept cent septante-cinq", "sept cent septante-six", "sept cent septante-sept", "sept cent septante-huit", "sept cent septante-neuf", "sept cent huitante", "sept cent huitante-un", "sept cent huitante-deux", "sept cent huitante-trois", "sept cent huitante-quatre", "sept cent huitante-cinq", "sept cent huitante-six", "sept cent huitante-sept", "sept cent huitante-huit", "sept cent huitante-neuf", "sept cent nonante", "sept cent nonante-et-un", "sept cent nonante-deux", "sept cent nonante-trois", "sept cent nonante-quatre", "sept cent nonante-cinq", "sept cent nonante-six", "sept cent nonante-sept", "sept cent nonante-huit", "sept cent nonante-neuf", "huit cents", "huit cent-un", "huit cent-deux", "huit cent-trois", "huit cent-quatre", "huit cent-cinq", "huit cent-six", "huit cent-sept", "huit cent-huit", "huit cent-neuf", "huit cent dix", "huit cent onze", "huit cent douze", "huit cent treize", "huit cent quatorze", "huit cent quinze", "huit cent seize", "huit cent dix-sept", "huit cent dix-huit", "huit cent dix-neuf", "huit cent vingt", "huit cent vingt-et-un", "huit cent vingt-deux", "huit cent vingt-trois", "huit cent vingt-quatre", "huit cent vingt-cinq", "huit cent vingt-six", "huit cent vingt-sept", "huit cent vingt-huit", "huit cent vingt-neuf", "huit cent trente", "huit cent trente-et-un", "huit cent trente-deux", "huit cent trente-trois", "huit cent trente-quatre", "huit cent trente-cinq", "huit cent trente-six", "huit cent trente-sept", "huit cent trente-huit", "huit cent trente-neuf", "huit cent quarante", "huit cent quarante-et-un", "huit cent quarante-deux", "huit cent quarante-trois", "huit cent quarante-quatre", "huit cent quarante-cinq", "huit cent quarante-six", "huit cent quarante-sept", "huit cent quarante-huit", "huit cent quarante-neuf", "huit cent cinquante", "huit cent cinquante-et-un", "huit cent cinquante-deux", "huit cent cinquante-trois", "huit cent cinquante-quatre", "huit cent cinquante-cinq", "huit cent cinquante-six", "huit cent cinquante-sept", "huit cent cinquante-huit", "huit cent cinquante-neuf", "huit cent soixante", "huit cent soixante-et-un", "huit cent soixante-deux", "huit cent soixante-trois", "huit cent soixante-quatre", "huit cent soixante-cinq", "huit cent soixante-six", "huit cent soixante-sept", "huit cent soixante-huit", "huit cent soixante-neuf", "huit cent septante", "huit cent septante-et-un", "huit cent septante-deux", "huit cent septante-trois", "huit cent septante-quatre", "huit cent septante-cinq", "huit cent septante-six", "huit cent septante-sept", "huit cent septante-huit", "huit cent septante-neuf", "huit cent huitante", "huit cent huitante-un", "huit cent huitante-deux", "huit cent huitante-trois", "huit cent huitante-quatre", "huit cent huitante-cinq", "huit cent huitante-six", "huit cent huitante-sept", "huit cent huitante-huit", "huit cent huitante-neuf", "huit cent nonante", "huit cent nonante-et-un", "huit cent nonante-deux", "huit cent nonante-trois", "huit cent nonante-quatre", "huit cent nonante-cinq", "huit cent nonante-six", "huit cent nonante-sept", "huit cent nonante-huit", "huit cent nonante-neuf", "neuf cents", "neuf cent-un", "neuf cent-deux", "neuf cent-trois", "neuf cent-quatre", "neuf cent-cinq", "neuf cent-six", "neuf cent-sept", "neuf cent-huit", "neuf cent-neuf", "neuf cent dix", "neuf cent onze", "neuf cent douze", "neuf cent treize", "neuf cent quatorze", "neuf cent quinze", "neuf cent seize", "neuf cent dix-sept", "neuf cent dix-huit", "neuf cent dix-neuf", "neuf cent vingt", "neuf cent vingt-et-un", "neuf cent vingt-deux", "neuf cent vingt-trois", "neuf cent vingt-quatre", "neuf cent vingt-cinq", "neuf cent vingt-six", "neuf cent vingt-sept", "neuf cent vingt-huit", "neuf cent vingt-neuf", "neuf cent trente", "neuf cent trente-et-un", "neuf cent trente-deux", "neuf cent trente-trois", "neuf cent trente-quatre", "neuf cent trente-cinq", "neuf cent trente-six", "neuf cent trente-sept", "neuf cent trente-huit", "neuf cent trente-neuf", "neuf cent quarante", "neuf cent quarante-et-un", "neuf cent quarante-deux", "neuf cent quarante-trois", "neuf cent quarante-quatre", "neuf cent quarante-cinq", "neuf cent quarante-six", "neuf cent quarante-sept", "neuf cent quarante-huit", "neuf cent quarante-neuf", "neuf cent cinquante", "neuf cent cinquante-et-un", "neuf cent cinquante-deux", "neuf cent cinquante-trois", "neuf cent cinquante-quatre", "neuf cent cinquante-cinq", "neuf cent cinquante-six", "neuf cent cinquante-sept", "neuf cent cinquante-huit", "neuf cent cinquante-neuf", "neuf cent soixante", "neuf cent soixante-et-un", "neuf cent soixante-deux", "neuf cent soixante-trois", "neuf cent soixante-quatre", "neuf cent soixante-cinq", "neuf cent soixante-six", "neuf cent soixante-sept", "neuf cent soixante-huit", "neuf cent soixante-neuf", "neuf cent septante", "neuf cent septante-et-un", "neuf cent septante-deux", "neuf cent septante-trois", "neuf cent septante-quatre", "neuf cent septante-cinq", "neuf cent septante-six", "neuf cent septante-sept", "neuf cent septante-huit", "neuf cent septante-neuf", "neuf cent huitante", "neuf cent huitante-un", "neuf cent huitante-deux", "neuf cent huitante-trois", "neuf cent huitante-quatre", "neuf cent huitante-cinq", "neuf cent huitante-six", "neuf cent huitante-sept", "neuf cent huitante-huit", "neuf cent huitante-neuf", "neuf cent nonante", "neuf cent nonante-et-un", "neuf cent nonante-deux", "neuf cent nonante-trois", "neuf cent nonante-quatre", "neuf cent nonante-cinq", "neuf cent nonante-six", "neuf cent nonante-sept", "neuf cent nonante-huit", "neuf cent nonante-neuf"] + SUB_ONE_GROUPING = ["zéro", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix-sept", "dix-huit", "dix-neuf", "vingt", "vingt-et-un", "vingt-deux", "vingt-trois", "vingt-quatre", "vingt-cinq", "vingt-six", "vingt-sept", "vingt-huit", "vingt-neuf", "trente", "trente-et-un", "trente-deux", "trente-trois", "trente-quatre", "trente-cinq", "trente-six", "trente-sept", "trente-huit", "trente-neuf", "quarante", "quarante-et-un", "quarante-deux", "quarante-trois", "quarante-quatre", "quarante-cinq", "quarante-six", "quarante-sept", "quarante-huit", "quarante-neuf", "cinquante", "cinquante-et-un", "cinquante-deux", "cinquante-trois", "cinquante-quatre", "cinquante-cinq", "cinquante-six", "cinquante-sept", "cinquante-huit", "cinquante-neuf", "soixante", "soixante-et-un", "soixante-deux", "soixante-trois", "soixante-quatre", "soixante-cinq", "soixante-six", "soixante-sept", "soixante-huit", "soixante-neuf", "septante", "septante-et-un", "septante-deux", "septante-trois", "septante-quatre", "septante-cinq", "septante-six", "septante-sept", "septante-huit", "septante-neuf", "huitante", "huitante-un", "huitante-deux", "huitante-trois", "huitante-quatre", "huitante-cinq", "huitante-six", "huitante-sept", "huitante-huit", "huitante-neuf", "nonante", "nonante-et-un", "nonante-deux", "nonante-trois", "nonante-quatre", "nonante-cinq", "nonante-six", "nonante-sept", "nonante-huit", "nonante-neuf", "cent", "cent-un", "cent-deux", "cent-trois", "cent-quatre", "cent-cinq", "cent-six", "cent-sept", "cent-huit", "cent-neuf", "cent dix", "cent onze", "cent douze", "cent treize", "cent quatorze", "cent quinze", "cent seize", "cent dix-sept", "cent dix-huit", "cent dix-neuf", "cent vingt", "cent vingt-et-un", "cent vingt-deux", "cent vingt-trois", "cent vingt-quatre", "cent vingt-cinq", "cent vingt-six", "cent vingt-sept", "cent vingt-huit", "cent vingt-neuf", "cent trente", "cent trente-et-un", "cent trente-deux", "cent trente-trois", "cent trente-quatre", "cent trente-cinq", "cent trente-six", "cent trente-sept", "cent trente-huit", "cent trente-neuf", "cent quarante", "cent quarante-et-un", "cent quarante-deux", "cent quarante-trois", "cent quarante-quatre", "cent quarante-cinq", "cent quarante-six", "cent quarante-sept", "cent quarante-huit", "cent quarante-neuf", "cent cinquante", "cent cinquante-et-un", "cent cinquante-deux", "cent cinquante-trois", "cent cinquante-quatre", "cent cinquante-cinq", "cent cinquante-six", "cent cinquante-sept", "cent cinquante-huit", "cent cinquante-neuf", "cent soixante", "cent soixante-et-un", "cent soixante-deux", "cent soixante-trois", "cent soixante-quatre", "cent soixante-cinq", "cent soixante-six", "cent soixante-sept", "cent soixante-huit", "cent soixante-neuf", "cent septante", "cent septante-et-un", "cent septante-deux", "cent septante-trois", "cent septante-quatre", "cent septante-cinq", "cent septante-six", "cent septante-sept", "cent septante-huit", "cent septante-neuf", "cent huitante", "cent huitante-un", "cent huitante-deux", "cent huitante-trois", "cent huitante-quatre", "cent huitante-cinq", "cent huitante-six", "cent huitante-sept", "cent huitante-huit", "cent huitante-neuf", "cent nonante", "cent nonante-et-un", "cent nonante-deux", "cent nonante-trois", "cent nonante-quatre", "cent nonante-cinq", "cent nonante-six", "cent nonante-sept", "cent nonante-huit", "cent nonante-neuf", "deux cents", "deux cent-un", "deux cent-deux", "deux cent-trois", "deux cent-quatre", "deux cent-cinq", "deux cent-six", "deux cent-sept", "deux cent-huit", "deux cent-neuf", "deux cent dix", "deux cent onze", "deux cent douze", "deux cent treize", "deux cent quatorze", "deux cent quinze", "deux cent seize", "deux cent dix-sept", "deux cent dix-huit", "deux cent dix-neuf", "deux cent vingt", "deux cent vingt-et-un", "deux cent vingt-deux", "deux cent vingt-trois", "deux cent vingt-quatre", "deux cent vingt-cinq", "deux cent vingt-six", "deux cent vingt-sept", "deux cent vingt-huit", "deux cent vingt-neuf", "deux cent trente", "deux cent trente-et-un", "deux cent trente-deux", "deux cent trente-trois", "deux cent trente-quatre", "deux cent trente-cinq", "deux cent trente-six", "deux cent trente-sept", "deux cent trente-huit", "deux cent trente-neuf", "deux cent quarante", "deux cent quarante-et-un", "deux cent quarante-deux", "deux cent quarante-trois", "deux cent quarante-quatre", "deux cent quarante-cinq", "deux cent quarante-six", "deux cent quarante-sept", "deux cent quarante-huit", "deux cent quarante-neuf", "deux cent cinquante", "deux cent cinquante-et-un", "deux cent cinquante-deux", "deux cent cinquante-trois", "deux cent cinquante-quatre", "deux cent cinquante-cinq", "deux cent cinquante-six", "deux cent cinquante-sept", "deux cent cinquante-huit", "deux cent cinquante-neuf", "deux cent soixante", "deux cent soixante-et-un", "deux cent soixante-deux", "deux cent soixante-trois", "deux cent soixante-quatre", "deux cent soixante-cinq", "deux cent soixante-six", "deux cent soixante-sept", "deux cent soixante-huit", "deux cent soixante-neuf", "deux cent septante", "deux cent septante-et-un", "deux cent septante-deux", "deux cent septante-trois", "deux cent septante-quatre", "deux cent septante-cinq", "deux cent septante-six", "deux cent septante-sept", "deux cent septante-huit", "deux cent septante-neuf", "deux cent huitante", "deux cent huitante-un", "deux cent huitante-deux", "deux cent huitante-trois", "deux cent huitante-quatre", "deux cent huitante-cinq", "deux cent huitante-six", "deux cent huitante-sept", "deux cent huitante-huit", "deux cent huitante-neuf", "deux cent nonante", "deux cent nonante-et-un", "deux cent nonante-deux", "deux cent nonante-trois", "deux cent nonante-quatre", "deux cent nonante-cinq", "deux cent nonante-six", "deux cent nonante-sept", "deux cent nonante-huit", "deux cent nonante-neuf", "trois cents", "trois cent-un", "trois cent-deux", "trois cent-trois", "trois cent-quatre", "trois cent-cinq", "trois cent-six", "trois cent-sept", "trois cent-huit", "trois cent-neuf", "trois cent dix", "trois cent onze", "trois cent douze", "trois cent treize", "trois cent quatorze", "trois cent quinze", "trois cent seize", "trois cent dix-sept", "trois cent dix-huit", "trois cent dix-neuf", "trois cent vingt", "trois cent vingt-et-un", "trois cent vingt-deux", "trois cent vingt-trois", "trois cent vingt-quatre", "trois cent vingt-cinq", "trois cent vingt-six", "trois cent vingt-sept", "trois cent vingt-huit", "trois cent vingt-neuf", "trois cent trente", "trois cent trente-et-un", "trois cent trente-deux", "trois cent trente-trois", "trois cent trente-quatre", "trois cent trente-cinq", "trois cent trente-six", "trois cent trente-sept", "trois cent trente-huit", "trois cent trente-neuf", "trois cent quarante", "trois cent quarante-et-un", "trois cent quarante-deux", "trois cent quarante-trois", "trois cent quarante-quatre", "trois cent quarante-cinq", "trois cent quarante-six", "trois cent quarante-sept", "trois cent quarante-huit", "trois cent quarante-neuf", "trois cent cinquante", "trois cent cinquante-et-un", "trois cent cinquante-deux", "trois cent cinquante-trois", "trois cent cinquante-quatre", "trois cent cinquante-cinq", "trois cent cinquante-six", "trois cent cinquante-sept", "trois cent cinquante-huit", "trois cent cinquante-neuf", "trois cent soixante", "trois cent soixante-et-un", "trois cent soixante-deux", "trois cent soixante-trois", "trois cent soixante-quatre", "trois cent soixante-cinq", "trois cent soixante-six", "trois cent soixante-sept", "trois cent soixante-huit", "trois cent soixante-neuf", "trois cent septante", "trois cent septante-et-un", "trois cent septante-deux", "trois cent septante-trois", "trois cent septante-quatre", "trois cent septante-cinq", "trois cent septante-six", "trois cent septante-sept", "trois cent septante-huit", "trois cent septante-neuf", "trois cent huitante", "trois cent huitante-un", "trois cent huitante-deux", "trois cent huitante-trois", "trois cent huitante-quatre", "trois cent huitante-cinq", "trois cent huitante-six", "trois cent huitante-sept", "trois cent huitante-huit", "trois cent huitante-neuf", "trois cent nonante", "trois cent nonante-et-un", "trois cent nonante-deux", "trois cent nonante-trois", "trois cent nonante-quatre", "trois cent nonante-cinq", "trois cent nonante-six", "trois cent nonante-sept", "trois cent nonante-huit", "trois cent nonante-neuf", "quatre cents", "quatre cent-un", "quatre cent-deux", "quatre cent-trois", "quatre cent-quatre", "quatre cent-cinq", "quatre cent-six", "quatre cent-sept", "quatre cent-huit", "quatre cent-neuf", "quatre cent dix", "quatre cent onze", "quatre cent douze", "quatre cent treize", "quatre cent quatorze", "quatre cent quinze", "quatre cent seize", "quatre cent dix-sept", "quatre cent dix-huit", "quatre cent dix-neuf", "quatre cent vingt", "quatre cent vingt-et-un", "quatre cent vingt-deux", "quatre cent vingt-trois", "quatre cent vingt-quatre", "quatre cent vingt-cinq", "quatre cent vingt-six", "quatre cent vingt-sept", "quatre cent vingt-huit", "quatre cent vingt-neuf", "quatre cent trente", "quatre cent trente-et-un", "quatre cent trente-deux", "quatre cent trente-trois", "quatre cent trente-quatre", "quatre cent trente-cinq", "quatre cent trente-six", "quatre cent trente-sept", "quatre cent trente-huit", "quatre cent trente-neuf", "quatre cent quarante", "quatre cent quarante-et-un", "quatre cent quarante-deux", "quatre cent quarante-trois", "quatre cent quarante-quatre", "quatre cent quarante-cinq", "quatre cent quarante-six", "quatre cent quarante-sept", "quatre cent quarante-huit", "quatre cent quarante-neuf", "quatre cent cinquante", "quatre cent cinquante-et-un", "quatre cent cinquante-deux", "quatre cent cinquante-trois", "quatre cent cinquante-quatre", "quatre cent cinquante-cinq", "quatre cent cinquante-six", "quatre cent cinquante-sept", "quatre cent cinquante-huit", "quatre cent cinquante-neuf", "quatre cent soixante", "quatre cent soixante-et-un", "quatre cent soixante-deux", "quatre cent soixante-trois", "quatre cent soixante-quatre", "quatre cent soixante-cinq", "quatre cent soixante-six", "quatre cent soixante-sept", "quatre cent soixante-huit", "quatre cent soixante-neuf", "quatre cent septante", "quatre cent septante-et-un", "quatre cent septante-deux", "quatre cent septante-trois", "quatre cent septante-quatre", "quatre cent septante-cinq", "quatre cent septante-six", "quatre cent septante-sept", "quatre cent septante-huit", "quatre cent septante-neuf", "quatre cent huitante", "quatre cent huitante-un", "quatre cent huitante-deux", "quatre cent huitante-trois", "quatre cent huitante-quatre", "quatre cent huitante-cinq", "quatre cent huitante-six", "quatre cent huitante-sept", "quatre cent huitante-huit", "quatre cent huitante-neuf", "quatre cent nonante", "quatre cent nonante-et-un", "quatre cent nonante-deux", "quatre cent nonante-trois", "quatre cent nonante-quatre", "quatre cent nonante-cinq", "quatre cent nonante-six", "quatre cent nonante-sept", "quatre cent nonante-huit", "quatre cent nonante-neuf", "cinq cents", "cinq cent-un", "cinq cent-deux", "cinq cent-trois", "cinq cent-quatre", "cinq cent-cinq", "cinq cent-six", "cinq cent-sept", "cinq cent-huit", "cinq cent-neuf", "cinq cent dix", "cinq cent onze", "cinq cent douze", "cinq cent treize", "cinq cent quatorze", "cinq cent quinze", "cinq cent seize", "cinq cent dix-sept", "cinq cent dix-huit", "cinq cent dix-neuf", "cinq cent vingt", "cinq cent vingt-et-un", "cinq cent vingt-deux", "cinq cent vingt-trois", "cinq cent vingt-quatre", "cinq cent vingt-cinq", "cinq cent vingt-six", "cinq cent vingt-sept", "cinq cent vingt-huit", "cinq cent vingt-neuf", "cinq cent trente", "cinq cent trente-et-un", "cinq cent trente-deux", "cinq cent trente-trois", "cinq cent trente-quatre", "cinq cent trente-cinq", "cinq cent trente-six", "cinq cent trente-sept", "cinq cent trente-huit", "cinq cent trente-neuf", "cinq cent quarante", "cinq cent quarante-et-un", "cinq cent quarante-deux", "cinq cent quarante-trois", "cinq cent quarante-quatre", "cinq cent quarante-cinq", "cinq cent quarante-six", "cinq cent quarante-sept", "cinq cent quarante-huit", "cinq cent quarante-neuf", "cinq cent cinquante", "cinq cent cinquante-et-un", "cinq cent cinquante-deux", "cinq cent cinquante-trois", "cinq cent cinquante-quatre", "cinq cent cinquante-cinq", "cinq cent cinquante-six", "cinq cent cinquante-sept", "cinq cent cinquante-huit", "cinq cent cinquante-neuf", "cinq cent soixante", "cinq cent soixante-et-un", "cinq cent soixante-deux", "cinq cent soixante-trois", "cinq cent soixante-quatre", "cinq cent soixante-cinq", "cinq cent soixante-six", "cinq cent soixante-sept", "cinq cent soixante-huit", "cinq cent soixante-neuf", "cinq cent septante", "cinq cent septante-et-un", "cinq cent septante-deux", "cinq cent septante-trois", "cinq cent septante-quatre", "cinq cent septante-cinq", "cinq cent septante-six", "cinq cent septante-sept", "cinq cent septante-huit", "cinq cent septante-neuf", "cinq cent huitante", "cinq cent huitante-un", "cinq cent huitante-deux", "cinq cent huitante-trois", "cinq cent huitante-quatre", "cinq cent huitante-cinq", "cinq cent huitante-six", "cinq cent huitante-sept", "cinq cent huitante-huit", "cinq cent huitante-neuf", "cinq cent nonante", "cinq cent nonante-et-un", "cinq cent nonante-deux", "cinq cent nonante-trois", "cinq cent nonante-quatre", "cinq cent nonante-cinq", "cinq cent nonante-six", "cinq cent nonante-sept", "cinq cent nonante-huit", "cinq cent nonante-neuf", "six cents", "six cent-un", "six cent-deux", "six cent-trois", "six cent-quatre", "six cent-cinq", "six cent-six", "six cent-sept", "six cent-huit", "six cent-neuf", "six cent dix", "six cent onze", "six cent douze", "six cent treize", "six cent quatorze", "six cent quinze", "six cent seize", "six cent dix-sept", "six cent dix-huit", "six cent dix-neuf", "six cent vingt", "six cent vingt-et-un", "six cent vingt-deux", "six cent vingt-trois", "six cent vingt-quatre", "six cent vingt-cinq", "six cent vingt-six", "six cent vingt-sept", "six cent vingt-huit", "six cent vingt-neuf", "six cent trente", "six cent trente-et-un", "six cent trente-deux", "six cent trente-trois", "six cent trente-quatre", "six cent trente-cinq", "six cent trente-six", "six cent trente-sept", "six cent trente-huit", "six cent trente-neuf", "six cent quarante", "six cent quarante-et-un", "six cent quarante-deux", "six cent quarante-trois", "six cent quarante-quatre", "six cent quarante-cinq", "six cent quarante-six", "six cent quarante-sept", "six cent quarante-huit", "six cent quarante-neuf", "six cent cinquante", "six cent cinquante-et-un", "six cent cinquante-deux", "six cent cinquante-trois", "six cent cinquante-quatre", "six cent cinquante-cinq", "six cent cinquante-six", "six cent cinquante-sept", "six cent cinquante-huit", "six cent cinquante-neuf", "six cent soixante", "six cent soixante-et-un", "six cent soixante-deux", "six cent soixante-trois", "six cent soixante-quatre", "six cent soixante-cinq", "six cent soixante-six", "six cent soixante-sept", "six cent soixante-huit", "six cent soixante-neuf", "six cent septante", "six cent septante-et-un", "six cent septante-deux", "six cent septante-trois", "six cent septante-quatre", "six cent septante-cinq", "six cent septante-six", "six cent septante-sept", "six cent septante-huit", "six cent septante-neuf", "six cent huitante", "six cent huitante-un", "six cent huitante-deux", "six cent huitante-trois", "six cent huitante-quatre", "six cent huitante-cinq", "six cent huitante-six", "six cent huitante-sept", "six cent huitante-huit", "six cent huitante-neuf", "six cent nonante", "six cent nonante-et-un", "six cent nonante-deux", "six cent nonante-trois", "six cent nonante-quatre", "six cent nonante-cinq", "six cent nonante-six", "six cent nonante-sept", "six cent nonante-huit", "six cent nonante-neuf", "sept cents", "sept cent-un", "sept cent-deux", "sept cent-trois", "sept cent-quatre", "sept cent-cinq", "sept cent-six", "sept cent-sept", "sept cent-huit", "sept cent-neuf", "sept cent dix", "sept cent onze", "sept cent douze", "sept cent treize", "sept cent quatorze", "sept cent quinze", "sept cent seize", "sept cent dix-sept", "sept cent dix-huit", "sept cent dix-neuf", "sept cent vingt", "sept cent vingt-et-un", "sept cent vingt-deux", "sept cent vingt-trois", "sept cent vingt-quatre", "sept cent vingt-cinq", "sept cent vingt-six", "sept cent vingt-sept", "sept cent vingt-huit", "sept cent vingt-neuf", "sept cent trente", "sept cent trente-et-un", "sept cent trente-deux", "sept cent trente-trois", "sept cent trente-quatre", "sept cent trente-cinq", "sept cent trente-six", "sept cent trente-sept", "sept cent trente-huit", "sept cent trente-neuf", "sept cent quarante", "sept cent quarante-et-un", "sept cent quarante-deux", "sept cent quarante-trois", "sept cent quarante-quatre", "sept cent quarante-cinq", "sept cent quarante-six", "sept cent quarante-sept", "sept cent quarante-huit", "sept cent quarante-neuf", "sept cent cinquante", "sept cent cinquante-et-un", "sept cent cinquante-deux", "sept cent cinquante-trois", "sept cent cinquante-quatre", "sept cent cinquante-cinq", "sept cent cinquante-six", "sept cent cinquante-sept", "sept cent cinquante-huit", "sept cent cinquante-neuf", "sept cent soixante", "sept cent soixante-et-un", "sept cent soixante-deux", "sept cent soixante-trois", "sept cent soixante-quatre", "sept cent soixante-cinq", "sept cent soixante-six", "sept cent soixante-sept", "sept cent soixante-huit", "sept cent soixante-neuf", "sept cent septante", "sept cent septante-et-un", "sept cent septante-deux", "sept cent septante-trois", "sept cent septante-quatre", "sept cent septante-cinq", "sept cent septante-six", "sept cent septante-sept", "sept cent septante-huit", "sept cent septante-neuf", "sept cent huitante", "sept cent huitante-un", "sept cent huitante-deux", "sept cent huitante-trois", "sept cent huitante-quatre", "sept cent huitante-cinq", "sept cent huitante-six", "sept cent huitante-sept", "sept cent huitante-huit", "sept cent huitante-neuf", "sept cent nonante", "sept cent nonante-et-un", "sept cent nonante-deux", "sept cent nonante-trois", "sept cent nonante-quatre", "sept cent nonante-cinq", "sept cent nonante-six", "sept cent nonante-sept", "sept cent nonante-huit", "sept cent nonante-neuf", "huit cents", "huit cent-un", "huit cent-deux", "huit cent-trois", "huit cent-quatre", "huit cent-cinq", "huit cent-six", "huit cent-sept", "huit cent-huit", "huit cent-neuf", "huit cent dix", "huit cent onze", "huit cent douze", "huit cent treize", "huit cent quatorze", "huit cent quinze", "huit cent seize", "huit cent dix-sept", "huit cent dix-huit", "huit cent dix-neuf", "huit cent vingt", "huit cent vingt-et-un", "huit cent vingt-deux", "huit cent vingt-trois", "huit cent vingt-quatre", "huit cent vingt-cinq", "huit cent vingt-six", "huit cent vingt-sept", "huit cent vingt-huit", "huit cent vingt-neuf", "huit cent trente", "huit cent trente-et-un", "huit cent trente-deux", "huit cent trente-trois", "huit cent trente-quatre", "huit cent trente-cinq", "huit cent trente-six", "huit cent trente-sept", "huit cent trente-huit", "huit cent trente-neuf", "huit cent quarante", "huit cent quarante-et-un", "huit cent quarante-deux", "huit cent quarante-trois", "huit cent quarante-quatre", "huit cent quarante-cinq", "huit cent quarante-six", "huit cent quarante-sept", "huit cent quarante-huit", "huit cent quarante-neuf", "huit cent cinquante", "huit cent cinquante-et-un", "huit cent cinquante-deux", "huit cent cinquante-trois", "huit cent cinquante-quatre", "huit cent cinquante-cinq", "huit cent cinquante-six", "huit cent cinquante-sept", "huit cent cinquante-huit", "huit cent cinquante-neuf", "huit cent soixante", "huit cent soixante-et-un", "huit cent soixante-deux", "huit cent soixante-trois", "huit cent soixante-quatre", "huit cent soixante-cinq", "huit cent soixante-six", "huit cent soixante-sept", "huit cent soixante-huit", "huit cent soixante-neuf", "huit cent septante", "huit cent septante-et-un", "huit cent septante-deux", "huit cent septante-trois", "huit cent septante-quatre", "huit cent septante-cinq", "huit cent septante-six", "huit cent septante-sept", "huit cent septante-huit", "huit cent septante-neuf", "huit cent huitante", "huit cent huitante-un", "huit cent huitante-deux", "huit cent huitante-trois", "huit cent huitante-quatre", "huit cent huitante-cinq", "huit cent huitante-six", "huit cent huitante-sept", "huit cent huitante-huit", "huit cent huitante-neuf", "huit cent nonante", "huit cent nonante-et-un", "huit cent nonante-deux", "huit cent nonante-trois", "huit cent nonante-quatre", "huit cent nonante-cinq", "huit cent nonante-six", "huit cent nonante-sept", "huit cent nonante-huit", "huit cent nonante-neuf", "neuf cents", "neuf cent-un", "neuf cent-deux", "neuf cent-trois", "neuf cent-quatre", "neuf cent-cinq", "neuf cent-six", "neuf cent-sept", "neuf cent-huit", "neuf cent-neuf", "neuf cent dix", "neuf cent onze", "neuf cent douze", "neuf cent treize", "neuf cent quatorze", "neuf cent quinze", "neuf cent seize", "neuf cent dix-sept", "neuf cent dix-huit", "neuf cent dix-neuf", "neuf cent vingt", "neuf cent vingt-et-un", "neuf cent vingt-deux", "neuf cent vingt-trois", "neuf cent vingt-quatre", "neuf cent vingt-cinq", "neuf cent vingt-six", "neuf cent vingt-sept", "neuf cent vingt-huit", "neuf cent vingt-neuf", "neuf cent trente", "neuf cent trente-et-un", "neuf cent trente-deux", "neuf cent trente-trois", "neuf cent trente-quatre", "neuf cent trente-cinq", "neuf cent trente-six", "neuf cent trente-sept", "neuf cent trente-huit", "neuf cent trente-neuf", "neuf cent quarante", "neuf cent quarante-et-un", "neuf cent quarante-deux", "neuf cent quarante-trois", "neuf cent quarante-quatre", "neuf cent quarante-cinq", "neuf cent quarante-six", "neuf cent quarante-sept", "neuf cent quarante-huit", "neuf cent quarante-neuf", "neuf cent cinquante", "neuf cent cinquante-et-un", "neuf cent cinquante-deux", "neuf cent cinquante-trois", "neuf cent cinquante-quatre", "neuf cent cinquante-cinq", "neuf cent cinquante-six", "neuf cent cinquante-sept", "neuf cent cinquante-huit", "neuf cent cinquante-neuf", "neuf cent soixante", "neuf cent soixante-et-un", "neuf cent soixante-deux", "neuf cent soixante-trois", "neuf cent soixante-quatre", "neuf cent soixante-cinq", "neuf cent soixante-six", "neuf cent soixante-sept", "neuf cent soixante-huit", "neuf cent soixante-neuf", "neuf cent septante", "neuf cent septante-et-un", "neuf cent septante-deux", "neuf cent septante-trois", "neuf cent septante-quatre", "neuf cent septante-cinq", "neuf cent septante-six", "neuf cent septante-sept", "neuf cent septante-huit", "neuf cent septante-neuf", "neuf cent huitante", "neuf cent huitante-un", "neuf cent huitante-deux", "neuf cent huitante-trois", "neuf cent huitante-quatre", "neuf cent huitante-cinq", "neuf cent huitante-six", "neuf cent huitante-sept", "neuf cent huitante-huit", "neuf cent huitante-neuf", "neuf cent nonante", "neuf cent nonante-et-un", "neuf cent nonante-deux", "neuf cent nonante-trois", "neuf cent nonante-quatre", "neuf cent nonante-cinq", "neuf cent nonante-six", "neuf cent nonante-sept", "neuf cent nonante-huit", "neuf cent nonante-neuf"].freeze end end