Skip to content

Commit

Permalink
Add Kazakh language support (#175)
Browse files Browse the repository at this point in the history
* Add Kazakh language
  • Loading branch information
bsdave committed Jun 4, 2020
1 parent bad35b5 commit f3819dc
Show file tree
Hide file tree
Showing 10 changed files with 145 additions and 5 deletions.
7 changes: 6 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
11 changes: 11 additions & 0 deletions README.rdoc
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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"
Expand All @@ -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"
Expand All @@ -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"
Expand All @@ -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"
Expand All @@ -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"
Expand All @@ -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"]
Expand All @@ -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"]
Expand All @@ -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"
Expand Down
7 changes: 7 additions & 0 deletions lib/numbers_and_words/i18n/locales/numbers.kz.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
kz:
numbers:
ones: [нөл, бiр, екi, үш, төрт, бес, алты, жетi, сегiз, тоғыз]
teens: [_, он бiр, он екi, он үш, он төрт, он бес, он алты, он жетi, он сегiз, он тоғыз]
tens: [_, он, жиырма, отыз, қырық, елу, алпыс, жетпiс, сексен, тоқсан]
hundreds: жүз
mega: [_, мың, миллион, миллиард, триллион, квадриллион, квинтиллион, секстиллион, септиллион, октиллион, нониллион, дециллион]
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
12 changes: 12 additions & 0 deletions lib/numbers_and_words/strategies/figures_converter/languages/kz.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# frozen_string_literal: true

module NumbersAndWords
module Strategies
module FiguresConverter
module Languages
class Kz < Base
end
end
end
end
end
1 change: 1 addition & 0 deletions lib/numbers_and_words/translations.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 9 additions & 0 deletions lib/numbers_and_words/translations/kz.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# frozen_string_literal: true

module NumbersAndWords
module Translations
class Kz < Base
include NumbersAndWords::Translations::Families::Latin
end
end
end
11 changes: 7 additions & 4 deletions numbers_and_words.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -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 = [
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand All @@ -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
Expand Down
30 changes: 30 additions & 0 deletions spec/numbers_and_words/array/fixture_examples/kz.yml
Original file line number Diff line number Diff line change
@@ -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р жүз отыз үш
61 changes: 61 additions & 0 deletions spec/numbers_and_words/integer/fixture_examples/kz.yml
Original file line number Diff line number Diff line change
@@ -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р дециллион

0 comments on commit f3819dc

Please sign in to comment.