From 477f39dce263c66ce75148e6d8bc483a161b59d5 Mon Sep 17 00:00:00 2001 From: "Jake W. Ireland" Date: Tue, 12 Jan 2021 23:01:00 +1300 Subject: [PATCH 1/3] Some ground work for russian spelled-out --- src/ru.jl | 3 ++ src/ru/standard_dictionary_numbers.jl | 72 +++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 src/ru.jl create mode 100644 src/ru/standard_dictionary_numbers.jl diff --git a/src/ru.jl b/src/ru.jl new file mode 100644 index 00000000..707f1d1d --- /dev/null +++ b/src/ru.jl @@ -0,0 +1,3 @@ +function spelled_out_ru(number::Number) + +end diff --git a/src/ru/standard_dictionary_numbers.jl b/src/ru/standard_dictionary_numbers.jl new file mode 100644 index 00000000..bc638d70 --- /dev/null +++ b/src/ru/standard_dictionary_numbers.jl @@ -0,0 +1,72 @@ +_ones_feminine = Dict{Int, NTuple{1, String}}( + 1 => ("одна",), + 2 => ("две",), + 3 => ("три",), + 4 => ("четыре",), + 5 => ("пять",), + 6 => ("шесть",), + 7 => ("семь",), + 8 => ("восемь",), + 9 => ("девять",), +) + +_ones = Dict{Int, NTuple{1, String}}( + 1 => ("один",), + 2 => ("два",), + 3 => ("три",), + 4 => ("четыре",), + 5 => ("пять",), + 6 => ("шесть",), + 7 => ("семь",), + 8 => ("восемь",), + 9 => ("девять",), +) + +_tens = Dict{Int, NTuple{1, String}}( + 0 => ("десять",), + 1 => ("одиннадцать",), + 2 => ("двенадцать",), + 3 => ("тринадцать",), + 4 => ("четырнадцать",), + 5 => ("пятнадцать",), + 6 => ("шестнадцать",), + 7 => ("семнадцать",), + 8 => ("восемнадцать",), + 9 => ("девятнадцать",), +) + +_twenties = Dict{Int, NTuple{1, String}}( + 2 => ("двадцать",), + 3 => ("тридцать",), + 4 => ("сорок",), + 5 => ("пятьдесят",), + 6 => ("шестьдесят",), + 7 => ("семьдесят",), + 8 => ("восемьдесят",), + 9 => ("девяносто",), +) + +_hundreds = Dict{Int, NTuple{1, String}}( + 1 => ("сто",), + 2 => ("двести",), + 3 => ("триста",), + 4 => ("четыреста",), + 5 => ("пятьсот",), + 6 => ("шестьсот",), + 7 => ("семьсот",), + 8 => ("восемьсот",), + 9 => ("девятьсот",), +) + +_thousands = Dict{Int, NTuple{3, String}}( + 1 => ("тысяча", "тысячи", "тысяч"), # 10^3 + 2 => ("миллион", "миллиона", "миллионов"), # 10^6 + 3 => ("миллиард", "миллиарда", "миллиардов"), # 10^9 + 4 => ("триллион", "триллиона", "триллионов"), # 10^12 + 5 => ("квадриллион", "квадриллиона", "квадриллионов"), # 10^15 + 6 => ("квинтиллион", "квинтиллиона", "квинтиллионов"), # 10^18 + 7 => ("секстиллион", "секстиллиона", "секстиллионов"), # 10^21 + 8 => ("септиллион", "септиллиона", "септиллионов"), # 10^24 + 9 => ("октиллион", "октиллиона", "октиллионов"), # 10^27 + 10 => ("нониллион", "нониллиона", "нониллионов"), # 10^30 +) From 2b900eb65127268fc80d897b114a450122a5d8c1 Mon Sep 17 00:00:00 2001 From: "Jake W. Ireland" Date: Wed, 13 Jan 2021 18:59:16 +1300 Subject: [PATCH 2/3] Fixed error message (addresses #25) --- src/en.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/en.jl b/src/en.jl index 1ca51c41..cc01cd95 100644 --- a/src/en.jl +++ b/src/en.jl @@ -84,7 +84,7 @@ function spelled_out_en(number::Integer; british::Bool = false, dict::Symbol = : number = abs(number) if number > limit - 1 - throw(error("SpelledOut.jl does not support numbers larger than $(spelled_out_en(limit - 1, british=true)). Sorry about that!")) + throw(error("SpelledOut.jl does not support numbers larger than $(limit). Sorry about that!")) end if number < 100 From 14afec0b2c57ccf6469c3ea0761c47f8b2fe4236 Mon Sep 17 00:00:00 2001 From: "Jake W. Ireland" Date: Wed, 13 Jan 2021 18:59:56 +1300 Subject: [PATCH 3/3] Fixed error message (addresses #25) --- src/en.jl | 2 +- src/en/standard_dictionary_numbers_extended.jl | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/en.jl b/src/en.jl index cc01cd95..c6fc50e2 100644 --- a/src/en.jl +++ b/src/en.jl @@ -84,7 +84,7 @@ function spelled_out_en(number::Integer; british::Bool = false, dict::Symbol = : number = abs(number) if number > limit - 1 - throw(error("SpelledOut.jl does not support numbers larger than $(limit). Sorry about that!")) + throw(error("SpelledOut.jl does not support numbers larger than $(limit_str). Sorry about that!")) end if number < 100 diff --git a/src/en/standard_dictionary_numbers_extended.jl b/src/en/standard_dictionary_numbers_extended.jl index fc2df968..264ec93a 100644 --- a/src/en/standard_dictionary_numbers_extended.jl +++ b/src/en/standard_dictionary_numbers_extended.jl @@ -46,3 +46,4 @@ const _scale_traditional_european = String[ ] const limit = BigInt(big(10)^120) +const limit_str = "10^120"