diff --git a/CHANGELOG.md b/CHANGELOG.md index bb6d37cf..74fe961d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,13 @@ -## 0.11.8 (Next) +## 0.11.9 (Next) ### Features * Your contribution here. +## 0.11.8 () + +### Features + * Add support for Kazakh language. \[[#175](https://github.com/kslazarev/numbers_and_words/pull/175)\] \([@j8sus](https://github.com/j8sus)\) + ## 0.11.7 (June 1, 2020) ### Features diff --git a/README.rdoc b/README.rdoc index a25f4d98..f0eb2a9b 100644 --- a/README.rdoc +++ b/README.rdoc @@ -41,6 +41,7 @@ Deletrea números en varios idiomas utilizando la gema I18n. * Português [pt] * Português Brasileiro [pt-BR] * հայերեն (Armenian) [hy] +* Қазақша [kz] ** Experimental @@ -89,6 +90,9 @@ Deletrea números en varios idiomas utilizando la gema I18n. I18n.with_locale(:hy) { 42.to_words } => "քառասուն երկու" + I18n.with_locale(:kz) { 42.to_words } + => "қырық екi" + 21.to_words => "twenty-one" => "veintiuno" @@ -109,6 +113,7 @@ Deletrea números en varios idiomas utilizando la gema I18n. => "vinte e um" => "hai mươi mốt" => "քսան մեկ" + => "жиырма бiр" 231.to_words => "two hundred thirty-one" @@ -130,6 +135,7 @@ Deletrea números en varios idiomas utilizando la gema I18n. => "duzentos e trinta e um" => "hai trăm ba mươi mốt" => "երկու հարյուր երեսուն մեկ" + => "екi жүз отыз бiр" 4030.to_words => "four thousand thirty" @@ -150,6 +156,7 @@ Deletrea números en varios idiomas utilizando la gema I18n. => "čtyři tisíce třicet" => "bốn nghìn không trăm ba mươi" => "չորս հազար երեսուն" + => "төрт мың отыз" 1000100.to_words => "one million one hundred" @@ -170,6 +177,7 @@ Deletrea números en varios idiomas utilizando la gema I18n. => "jeden milión jedno sto" => "một triệu một trăm" => "մեկ միլիոն հարյուր" + => "бiр миллион бiр жүз" 1000000000000000000000000000000000.to_words => "one decillion" @@ -187,6 +195,7 @@ Deletrea números en varios idiomas utilizando la gema I18n. => "één decillion" => "en decillion" => "decilijon" + => "бiр дециллион" [1, 2, 3].to_words => ["one", "two", "three"] @@ -201,6 +210,7 @@ Deletrea números en varios idiomas utilizando la gema I18n. => ["jedna", "dva", "tři"] => ["một", "hai", "ba"] => ["մեկ", "երկու", "երեք"] + => ["бiр", "екi", "үш"] [11, 22, 133].to_words => ["eleven", "twenty-two", "one hundred thirty-three"] @@ -221,6 +231,7 @@ Deletrea números en varios idiomas utilizando la gema I18n. => ["jedenáct", "dvacetdva", "jedno sto třicettři"] => ["mười một", "hai mươi hai", "một trăm ba mươi ba"] => ["տասնմեկ", "քսան երկու", "հարյուր երեսուն երեք"] + => ["он бiр", "жиырма екi", "бiр жүз отыз үш"] 21.77.to_words => "twenty-one and seventy-seven hundredths" diff --git a/lib/numbers_and_words/i18n/locales/numbers.kz.yml b/lib/numbers_and_words/i18n/locales/numbers.kz.yml new file mode 100644 index 00000000..0639b18b --- /dev/null +++ b/lib/numbers_and_words/i18n/locales/numbers.kz.yml @@ -0,0 +1,7 @@ +kz: + numbers: + ones: [нөл, бiр, екi, үш, төрт, бес, алты, жетi, сегiз, тоғыз] + teens: [_, он бiр, он екi, он үш, он төрт, он бес, он алты, он жетi, он сегiз, он тоғыз] + tens: [_, он, жиырма, отыз, қырық, елу, алпыс, жетпiс, сексен, тоқсан] + hundreds: жүз + mega: [_, мың, миллион, миллиард, триллион, квадриллион, квинтиллион, секстиллион, септиллион, октиллион, нониллион, дециллион] diff --git a/lib/numbers_and_words/strategies/figures_converter/languages.rb b/lib/numbers_and_words/strategies/figures_converter/languages.rb index 0638f974..cbcfee8d 100644 --- a/lib/numbers_and_words/strategies/figures_converter/languages.rb +++ b/lib/numbers_and_words/strategies/figures_converter/languages.rb @@ -22,6 +22,7 @@ require 'numbers_and_words/strategies/figures_converter/languages/se' require 'numbers_and_words/strategies/figures_converter/languages/tr' require 'numbers_and_words/strategies/figures_converter/languages/hy' +require 'numbers_and_words/strategies/figures_converter/languages/kz' require 'numbers_and_words/strategies/figures_converter/languages/families/cyrillic' require 'numbers_and_words/strategies/figures_converter/languages/ru' diff --git a/lib/numbers_and_words/strategies/figures_converter/languages/kz.rb b/lib/numbers_and_words/strategies/figures_converter/languages/kz.rb new file mode 100644 index 00000000..cf4e8d90 --- /dev/null +++ b/lib/numbers_and_words/strategies/figures_converter/languages/kz.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module NumbersAndWords + module Strategies + module FiguresConverter + module Languages + class Kz < Base + end + end + end + end +end diff --git a/lib/numbers_and_words/translations.rb b/lib/numbers_and_words/translations.rb index 4a78b8dd..c4c949fa 100644 --- a/lib/numbers_and_words/translations.rb +++ b/lib/numbers_and_words/translations.rb @@ -26,6 +26,7 @@ require 'numbers_and_words/translations/cs' require 'numbers_and_words/translations/vi' require 'numbers_and_words/translations/hy' +require 'numbers_and_words/translations/kz' module NumbersAndWords module Translations diff --git a/lib/numbers_and_words/translations/kz.rb b/lib/numbers_and_words/translations/kz.rb new file mode 100644 index 00000000..e194ce82 --- /dev/null +++ b/lib/numbers_and_words/translations/kz.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module NumbersAndWords + module Translations + class Kz < Base + include NumbersAndWords::Translations::Families::Latin + end + end +end diff --git a/numbers_and_words.gemspec b/numbers_and_words.gemspec index 29654850..360547d2 100644 --- a/numbers_and_words.gemspec +++ b/numbers_and_words.gemspec @@ -2,16 +2,16 @@ # DO NOT EDIT THIS FILE DIRECTLY # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec' # -*- encoding: utf-8 -*- -# stub: numbers_and_words 0.11.7 ruby lib +# stub: numbers_and_words 0.11.8 ruby lib Gem::Specification.new do |s| s.name = "numbers_and_words".freeze - s.version = "0.11.7" + s.version = "0.11.8" s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= s.require_paths = ["lib".freeze] s.authors = ["Kirill Lazarev".freeze] - s.date = "2020-06-01" + s.date = "2020-06-04" s.description = "This gem spells out numbers in several languages using the I18n gem.".freeze s.email = "k.s.lazarev@gmail.com".freeze s.extra_rdoc_files = [ @@ -41,6 +41,7 @@ Gem::Specification.new do |s| "lib/numbers_and_words/i18n/locales/numbers.hy.yml", "lib/numbers_and_words/i18n/locales/numbers.it.yml", "lib/numbers_and_words/i18n/locales/numbers.ka.yml", + "lib/numbers_and_words/i18n/locales/numbers.kz.yml", "lib/numbers_and_words/i18n/locales/numbers.lt.yml", "lib/numbers_and_words/i18n/locales/numbers.lv.yml", "lib/numbers_and_words/i18n/locales/numbers.nl.yml", @@ -133,6 +134,7 @@ Gem::Specification.new do |s| "lib/numbers_and_words/strategies/figures_converter/languages/hy.rb", "lib/numbers_and_words/strategies/figures_converter/languages/it.rb", "lib/numbers_and_words/strategies/figures_converter/languages/ka.rb", + "lib/numbers_and_words/strategies/figures_converter/languages/kz.rb", "lib/numbers_and_words/strategies/figures_converter/languages/lt.rb", "lib/numbers_and_words/strategies/figures_converter/languages/lv.rb", "lib/numbers_and_words/strategies/figures_converter/languages/nl.rb", @@ -195,6 +197,7 @@ Gem::Specification.new do |s| "lib/numbers_and_words/translations/hy.rb", "lib/numbers_and_words/translations/it.rb", "lib/numbers_and_words/translations/ka.rb", + "lib/numbers_and_words/translations/kz.rb", "lib/numbers_and_words/translations/lt.rb", "lib/numbers_and_words/translations/lv.rb", "lib/numbers_and_words/translations/nl.rb", @@ -213,7 +216,7 @@ Gem::Specification.new do |s| s.homepage = "http://github.com/kslazarev/numbers_and_words".freeze s.licenses = ["MIT".freeze] s.required_ruby_version = Gem::Requirement.new(">= 2.5.0".freeze) - s.rubygems_version = "3.1.2".freeze + s.rubygems_version = "3.1.4".freeze s.summary = "Spell out numbers in several languages".freeze if s.respond_to? :specification_version then diff --git a/spec/numbers_and_words/array/fixture_examples/kz.yml b/spec/numbers_and_words/array/fixture_examples/kz.yml new file mode 100644 index 00000000..36b00b33 --- /dev/null +++ b/spec/numbers_and_words/array/fixture_examples/kz.yml @@ -0,0 +1,30 @@ +to_words: + simple_example: + ? + - 1 + - 2 + - 3 + : + - бiр + - екi + - үш + complex_example: + ? + - 101 + - 21 + - 13 + - 1101 + - 2101 + - 11 + - 22 + - 133 + + : + - бiр жүз бiр + - жиырма бiр + - он үш + - бiр мың бiр жүз бiр + - екi мың бiр жүз бiр + - он бiр + - жиырма екi + - бiр жүз отыз үш diff --git a/spec/numbers_and_words/integer/fixture_examples/kz.yml b/spec/numbers_and_words/integer/fixture_examples/kz.yml new file mode 100644 index 00000000..493f8433 --- /dev/null +++ b/spec/numbers_and_words/integer/fixture_examples/kz.yml @@ -0,0 +1,61 @@ +to_words: + ones: + 0: нөл + 1: бiр + 9: тоғыз + teens: + 10: он + 11: он бiр + 19: он тоғыз + 20: жиырма + 21: жиырма бiр + 42: қырық екi + 46: қырық алты + 69: алпыс тоғыз + 80: сексен + 90: тоқсан + 99: тоқсан тоғыз + hundreds: + 100: бiр жүз + 101: бiр жүз бiр + 111: бiр жүз он бiр + 120: бiр жүз жиырма + 121: бiр жүз жиырма бiр + 428: төрт жүз жиырма сегiз + 461: төрт жүз алпыс бiр + 900: тоғыз жүз + 909: тоғыз жүз тоғыз + 919: тоғыз жүз он тоғыз + 990: тоғыз жүз тоқсан + 999: тоғыз жүз тоқсан тоғыз + thousands: + 1000: бiр мың + 1100: бiр мың бiр жүз + 1957: бiр мың тоғыз жүз елу жетi + 2000: екi мың + 2957: екi мың тоғыз жүз елу жетi + 4000: төрт мың + 5000: бес мың + 11000: он бiр мың + 21000: жиырма бiр мың + 999000: тоғыз жүз тоқсан тоғыз мың + 999999: тоғыз жүз тоқсан тоғыз мың тоғыз жүз тоқсан тоғыз + millions: + 1000000: бiр миллион + 1000100: бiр миллион бiр жүз + 2000000: екi миллион + 4000000: төрт миллион + 5000000: бес миллион + 999000000: тоғыз жүз тоқсан тоғыз миллион + 999000999: тоғыз жүз тоқсан тоғыз миллион тоғыз жүз тоқсан тоғыз + 999999000: тоғыз жүз тоқсан тоғыз миллион тоғыз жүз тоқсан тоғыз мың + 999999999: тоғыз жүз тоқсан тоғыз миллион тоғыз жүз тоқсан тоғыз мың тоғыз жүз тоқсан тоғыз + billions: + 1174315110: бiр миллиард бiр жүз жетпiс төрт миллион үш жүз он бес мың бiр жүз он + 1174315119: бiр миллиард бiр жүз жетпiс төрт миллион үш жүз он бес мың бiр жүз он тоғыз + 15174315119: он бес миллиард бiр жүз жетпiс төрт миллион үш жүз он бес мың бiр жүз он тоғыз + 35174315119: отыз бес миллиард бiр жүз жетпiс төрт миллион үш жүз он бес мың бiр жүз он тоғыз + 935174315119: тоғыз жүз отыз бес миллиард бiр жүз жетпiс төрт миллион үш жүз он бес мың бiр жүз он тоғыз + trillions: + 2935174315119: екi триллион тоғыз жүз отыз бес миллиард бiр жүз жетпiс төрт миллион үш жүз он бес мың бiр жүз он тоғыз + 1000000000000000000000000000000000: бiр дециллион