num2words 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/Gemfile +1 -0
  4. data/README.md +104 -81
  5. data/bin/console +1 -1
  6. data/config/locales/ar.yml +36 -0
  7. data/config/locales/be.yml +31 -0
  8. data/config/locales/bg.yml +31 -0
  9. data/config/locales/bn.yml +26 -0
  10. data/config/locales/cs.yml +31 -0
  11. data/config/locales/da.yml +31 -0
  12. data/config/locales/de.yml +31 -0
  13. data/config/locales/el.yml +36 -0
  14. data/config/locales/en.yml +26 -0
  15. data/config/locales/es.yml +31 -0
  16. data/config/locales/et.yml +26 -0
  17. data/config/locales/fa.yml +31 -0
  18. data/config/locales/fi.yml +26 -0
  19. data/config/locales/fr.yml +31 -0
  20. data/config/locales/gu.yml +26 -0
  21. data/config/locales/he.yml +36 -0
  22. data/config/locales/hi.yml +31 -0
  23. data/config/locales/hr.yml +31 -0
  24. data/config/locales/hu.yml +31 -0
  25. data/config/locales/id.yml +31 -0
  26. data/config/locales/it.yml +31 -0
  27. data/config/locales/ja.yml +31 -0
  28. data/config/locales/kn.yml +26 -0
  29. data/config/locales/ko.yml +31 -0
  30. data/config/locales/kz.yml +36 -0
  31. data/config/locales/lt.yml +26 -0
  32. data/config/locales/lv.yml +26 -0
  33. data/config/locales/ml.yml +26 -0
  34. data/config/locales/mr.yml +26 -0
  35. data/config/locales/ms.yml +26 -0
  36. data/config/locales/nb.yml +36 -0
  37. data/config/locales/nl.yml +31 -0
  38. data/config/locales/pa.yml +26 -0
  39. data/config/locales/pl.yml +31 -0
  40. data/config/locales/pt.yml +31 -0
  41. data/config/locales/ro.yml +31 -0
  42. data/config/locales/ru.yml +21 -0
  43. data/config/locales/sk.yml +26 -0
  44. data/config/locales/sl.yml +26 -0
  45. data/config/locales/sr.yml +31 -0
  46. data/config/locales/sv.yml +33 -0
  47. data/config/locales/sw.yml +26 -0
  48. data/config/locales/ta.yml +26 -0
  49. data/config/locales/te.yml +26 -0
  50. data/config/locales/th.yml +31 -0
  51. data/config/locales/tr.yml +31 -0
  52. data/config/locales/uk.yml +31 -0
  53. data/config/locales/ur.yml +26 -0
  54. data/config/locales/vi.yml +31 -0
  55. data/config/locales/zh.yml +21 -0
  56. data/lib/num2words/converter.rb +47 -64
  57. data/lib/num2words/core_ext.rb +6 -6
  58. data/lib/num2words/i18n.rb +30 -0
  59. data/lib/num2words/locales/ar.rb +19 -0
  60. data/lib/num2words/locales/be.rb +19 -0
  61. data/lib/num2words/locales/bg.rb +19 -0
  62. data/lib/num2words/locales/bn.rb +19 -0
  63. data/lib/num2words/locales/cs.rb +19 -0
  64. data/lib/num2words/locales/da.rb +19 -0
  65. data/lib/num2words/locales/de.rb +19 -0
  66. data/lib/num2words/locales/el.rb +19 -0
  67. data/lib/num2words/locales/en.rb +19 -0
  68. data/lib/num2words/locales/es.rb +19 -0
  69. data/lib/num2words/locales/et.rb +19 -0
  70. data/lib/num2words/locales/fa.rb +19 -0
  71. data/lib/num2words/locales/fi.rb +19 -0
  72. data/lib/num2words/locales/fr.rb +19 -0
  73. data/lib/num2words/locales/gu.rb +19 -0
  74. data/lib/num2words/locales/he.rb +19 -0
  75. data/lib/num2words/locales/hi.rb +19 -0
  76. data/lib/num2words/locales/hr.rb +19 -0
  77. data/lib/num2words/locales/hu.rb +19 -0
  78. data/lib/num2words/locales/id.rb +19 -0
  79. data/lib/num2words/locales/it.rb +19 -0
  80. data/lib/num2words/locales/ja.rb +19 -0
  81. data/lib/num2words/locales/kn.rb +19 -0
  82. data/lib/num2words/locales/ko.rb +19 -0
  83. data/lib/num2words/locales/kz.rb +19 -0
  84. data/lib/num2words/locales/lt.rb +19 -0
  85. data/lib/num2words/locales/lv.rb +19 -0
  86. data/lib/num2words/locales/ml.rb +19 -0
  87. data/lib/num2words/locales/mr.rb +19 -0
  88. data/lib/num2words/locales/ms.rb +19 -0
  89. data/lib/num2words/locales/nl.rb +19 -0
  90. data/lib/num2words/locales/no.rb +19 -0
  91. data/lib/num2words/locales/pa.rb +19 -0
  92. data/lib/num2words/locales/pl.rb +19 -0
  93. data/lib/num2words/locales/pt.rb +19 -0
  94. data/lib/num2words/locales/ro.rb +19 -0
  95. data/lib/num2words/locales/ru.rb +19 -0
  96. data/lib/num2words/locales/sk.rb +19 -0
  97. data/lib/num2words/locales/sl.rb +19 -0
  98. data/lib/num2words/locales/sr.rb +19 -0
  99. data/lib/num2words/locales/sv.rb +19 -0
  100. data/lib/num2words/locales/sw.rb +19 -0
  101. data/lib/num2words/locales/ta.rb +19 -0
  102. data/lib/num2words/locales/te.rb +19 -0
  103. data/lib/num2words/locales/th.rb +19 -0
  104. data/lib/num2words/locales/tr.rb +19 -0
  105. data/lib/num2words/locales/uk.rb +19 -0
  106. data/lib/num2words/locales/ur.rb +19 -0
  107. data/lib/num2words/locales/vi.rb +19 -0
  108. data/lib/num2words/locales/zh.rb +19 -0
  109. data/lib/num2words/locales.rb +33 -0
  110. data/lib/num2words/version.rb +1 -1
  111. data/lib/num2words.rb +6 -4
  112. data/num2words.gemspec +2 -0
  113. metadata +119 -3
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module KO
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :ko)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :ko)
8
+ TEENS = I18n.t("num2words.teens", locale: :ko)
9
+ TENS = I18n.t("num2words.tens", locale: :ko)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :ko)
11
+ SCALES = I18n.t("num2words.scales", locale: :ko)
12
+
13
+ RUB = I18n.t("num2words.currencies.KRW.name", locale: :ko)
14
+ KOP = I18n.t("num2words.currencies.KRW.fractional.name", locale: :ko)
15
+ end
16
+
17
+ register :ko, KO
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module KZ
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :kz)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :kz)
8
+ TEENS = I18n.t("num2words.teens", locale: :kz)
9
+ TENS = I18n.t("num2words.tens", locale: :kz)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :kz)
11
+ SCALES = I18n.t("num2words.scales", locale: :kz)
12
+
13
+ RUB = I18n.t("num2words.currencies.KZT.name", locale: :kz)
14
+ KOP = I18n.t("num2words.currencies.KZT.fractional.name", locale: :kz)
15
+ end
16
+
17
+ register :kz, KZ
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module LT
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :lt)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :lt)
8
+ TEENS = I18n.t("num2words.teens", locale: :lt)
9
+ TENS = I18n.t("num2words.tens", locale: :lt)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :lt)
11
+ SCALES = I18n.t("num2words.scales", locale: :lt)
12
+
13
+ RUB = I18n.t("num2words.currencies.EUR.name", locale: :lt)
14
+ KOP = I18n.t("num2words.currencies.EUR.fractional.name", locale: :lt)
15
+ end
16
+
17
+ register :lt, LT
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module LV
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :lv)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :lv)
8
+ TEENS = I18n.t("num2words.teens", locale: :lv)
9
+ TENS = I18n.t("num2words.tens", locale: :lv)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :lv)
11
+ SCALES = I18n.t("num2words.scales", locale: :lv)
12
+
13
+ RUB = I18n.t("num2words.currencies.EUR.name", locale: :lv)
14
+ KOP = I18n.t("num2words.currencies.EUR.fractional.name", locale: :lv)
15
+ end
16
+
17
+ register :lv, LV
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module ML
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :ml)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :ml)
8
+ TEENS = I18n.t("num2words.teens", locale: :ml)
9
+ TENS = I18n.t("num2words.tens", locale: :ml)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :ml)
11
+ SCALES = I18n.t("num2words.scales", locale: :ml)
12
+
13
+ RUB = I18n.t("num2words.currencies.INR.name", locale: :ml)
14
+ KOP = I18n.t("num2words.currencies.INR.fractional.name", locale: :ml)
15
+ end
16
+
17
+ register :ml, ML
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module MR
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :mr)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :mr)
8
+ TEENS = I18n.t("num2words.teens", locale: :mr)
9
+ TENS = I18n.t("num2words.tens", locale: :mr)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :mr)
11
+ SCALES = I18n.t("num2words.scales", locale: :mr)
12
+
13
+ RUB = I18n.t("num2words.currencies.INR.name", locale: :mr)
14
+ KOP = I18n.t("num2words.currencies.INR.fractional.name", locale: :mr)
15
+ end
16
+
17
+ register :mr, MR
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module MS
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :ms)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :ms)
8
+ TEENS = I18n.t("num2words.teens", locale: :ms)
9
+ TENS = I18n.t("num2words.tens", locale: :ms)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :ms)
11
+ SCALES = I18n.t("num2words.scales", locale: :ms)
12
+
13
+ RUB = I18n.t("num2words.currencies.MYR.name", locale: :ms)
14
+ KOP = I18n.t("num2words.currencies.MYR.fractional.name", locale: :ms)
15
+ end
16
+
17
+ register :ms, MS
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module NL
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :nl)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :nl)
8
+ TEENS = I18n.t("num2words.teens", locale: :nl)
9
+ TENS = I18n.t("num2words.tens", locale: :nl)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :nl)
11
+ SCALES = I18n.t("num2words.scales", locale: :nl)
12
+
13
+ RUB = I18n.t("num2words.currencies.EUR.name", locale: :nl)
14
+ KOP = I18n.t("num2words.currencies.EUR.fractional.name", locale: :nl)
15
+ end
16
+
17
+ register :nl, NL
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module NB
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :nb)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :nb)
8
+ TEENS = I18n.t("num2words.teens", locale: :nb)
9
+ TENS = I18n.t("num2words.tens", locale: :nb)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :nb)
11
+ SCALES = I18n.t("num2words.scales", locale: :nb)
12
+
13
+ RUB = I18n.t("num2words.currencies.NOK.name", locale: :nb)
14
+ KOP = I18n.t("num2words.currencies.NOK.fractional.name", locale: :nb)
15
+ end
16
+
17
+ register :nb, NB
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module PA
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :pa)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :pa)
8
+ TEENS = I18n.t("num2words.teens", locale: :pa)
9
+ TENS = I18n.t("num2words.tens", locale: :pa)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :pa)
11
+ SCALES = I18n.t("num2words.scales", locale: :pa)
12
+
13
+ RUB = I18n.t("num2words.currencies.INR.name", locale: :pa)
14
+ KOP = I18n.t("num2words.currencies.INR.fractional.name", locale: :pa)
15
+ end
16
+
17
+ register :pa, PA
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module PL
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :pl)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :pl)
8
+ TEENS = I18n.t("num2words.teens", locale: :pl)
9
+ TENS = I18n.t("num2words.tens", locale: :pl)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :pl)
11
+ SCALES = I18n.t("num2words.scales", locale: :pl)
12
+
13
+ RUB = I18n.t("num2words.currencies.PLN.name", locale: :pl)
14
+ KOP = I18n.t("num2words.currencies.PLN.fractional.name", locale: :pl)
15
+ end
16
+
17
+ register :pl, PL
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module PT
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :pt)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :pt)
8
+ TEENS = I18n.t("num2words.teens", locale: :pt)
9
+ TENS = I18n.t("num2words.tens", locale: :pt)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :pt)
11
+ SCALES = I18n.t("num2words.scales", locale: :pt)
12
+
13
+ RUB = I18n.t("num2words.currencies.EUR.name", locale: :pt)
14
+ KOP = I18n.t("num2words.currencies.EUR.fractional.name", locale: :pt)
15
+ end
16
+
17
+ register :pt, PT
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module RO
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :ro)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :ro)
8
+ TEENS = I18n.t("num2words.teens", locale: :ro)
9
+ TENS = I18n.t("num2words.tens", locale: :ro)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :ro)
11
+ SCALES = I18n.t("num2words.scales", locale: :ro)
12
+
13
+ RUB = I18n.t("num2words.currencies.RON.name", locale: :ro)
14
+ KOP = I18n.t("num2words.currencies.RON.fractional.name", locale: :ro)
15
+ end
16
+
17
+ register :ro, RO
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module RU
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :ru)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :ru)
8
+ TEENS = I18n.t("num2words.teens", locale: :ru)
9
+ TENS = I18n.t("num2words.tens", locale: :ru)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :ru)
11
+ SCALES = I18n.t("num2words.scales", locale: :ru)
12
+
13
+ RUB = I18n.t("num2words.currencies.RUB.name", locale: :ru)
14
+ KOP = I18n.t("num2words.currencies.RUB.fractional.name", locale: :ru)
15
+ end
16
+
17
+ register :ru, RU
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module SK
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :sk)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :sk)
8
+ TEENS = I18n.t("num2words.teens", locale: :sk)
9
+ TENS = I18n.t("num2words.tens", locale: :sk)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :sk)
11
+ SCALES = I18n.t("num2words.scales", locale: :sk)
12
+
13
+ RUB = I18n.t("num2words.currencies.EUR.name", locale: :sk)
14
+ KOP = I18n.t("num2words.currencies.EUR.fractional.name", locale: :sk)
15
+ end
16
+
17
+ register :sk, SK
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module SL
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :sl)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :sl)
8
+ TEENS = I18n.t("num2words.teens", locale: :sl)
9
+ TENS = I18n.t("num2words.tens", locale: :sl)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :sl)
11
+ SCALES = I18n.t("num2words.scales", locale: :sl)
12
+
13
+ RUB = I18n.t("num2words.currencies.EUR.name", locale: :sl)
14
+ KOP = I18n.t("num2words.currencies.EUR.fractional.name", locale: :sl)
15
+ end
16
+
17
+ register :sl, SL
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module SR
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :sr)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :sr)
8
+ TEENS = I18n.t("num2words.teens", locale: :sr)
9
+ TENS = I18n.t("num2words.tens", locale: :sr)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :sr)
11
+ SCALES = I18n.t("num2words.scales", locale: :sr)
12
+
13
+ RUB = I18n.t("num2words.currencies.RSD.name", locale: :sr)
14
+ KOP = I18n.t("num2words.currencies.RSD.fractional.name", locale: :sr)
15
+ end
16
+
17
+ register :sr, Sr
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module SV
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :sv)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :sv)
8
+ TEENS = I18n.t("num2words.teens", locale: :sv)
9
+ TENS = I18n.t("num2words.tens", locale: :sv)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :sv)
11
+ SCALES = I18n.t("num2words.scales", locale: :sv)
12
+
13
+ RUB = I18n.t("num2words.currencies.SEK.name", locale: :sv)
14
+ KOP = I18n.t("num2words.currencies.SEK.fractional.name", locale: :sv)
15
+ end
16
+
17
+ register :sv, SV
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module SW
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :sw)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :sw)
8
+ TEENS = I18n.t("num2words.teens", locale: :sw)
9
+ TENS = I18n.t("num2words.tens", locale: :sw)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :sw)
11
+ SCALES = I18n.t("num2words.scales", locale: :sw)
12
+
13
+ RUB = I18n.t("num2words.currencies.KES.name", locale: :sw)
14
+ KOP = I18n.t("num2words.currencies.KES.fractional.name", locale: :sw)
15
+ end
16
+
17
+ register :sw, SW
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module TA
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :ta)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :ta)
8
+ TEENS = I18n.t("num2words.teens", locale: :ta)
9
+ TENS = I18n.t("num2words.tens", locale: :ta)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :ta)
11
+ SCALES = I18n.t("num2words.scales", locale: :ta)
12
+
13
+ RUB = I18n.t("num2words.currencies.INR.name", locale: :ta)
14
+ KOP = I18n.t("num2words.currencies.INR.fractional.name", locale: :ta)
15
+ end
16
+
17
+ register :ta, TA
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module TE
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :te)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :te)
8
+ TEENS = I18n.t("num2words.teens", locale: :te)
9
+ TENS = I18n.t("num2words.tens", locale: :te)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :te)
11
+ SCALES = I18n.t("num2words.scales", locale: :te)
12
+
13
+ RUB = I18n.t("num2words.currencies.INR.name", locale: :te)
14
+ KOP = I18n.t("num2words.currencies.INR.fractional.name", locale: :te)
15
+ end
16
+
17
+ register :te, TE
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module TH
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :th)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :th)
8
+ TEENS = I18n.t("num2words.teens", locale: :th)
9
+ TENS = I18n.t("num2words.tens", locale: :th)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :th)
11
+ SCALES = I18n.t("num2words.scales", locale: :th)
12
+
13
+ RUB = I18n.t("num2words.currencies.THB.name", locale: :th)
14
+ KOP = I18n.t("num2words.currencies.THB.fractional.name", locale: :th)
15
+ end
16
+
17
+ register :th, TH
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module TR
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :tr)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :tr)
8
+ TEENS = I18n.t("num2words.teens", locale: :tr)
9
+ TENS = I18n.t("num2words.tens", locale: :tr)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :tr)
11
+ SCALES = I18n.t("num2words.scales", locale: :tr)
12
+
13
+ RUB = I18n.t("num2words.currencies.TRY.name", locale: :tr)
14
+ KOP = I18n.t("num2words.currencies.TRY.fractional.name", locale: :tr)
15
+ end
16
+
17
+ register :tr, TR
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module UK
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :uk)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :uk)
8
+ TEENS = I18n.t("num2words.teens", locale: :uk)
9
+ TENS = I18n.t("num2words.tens", locale: :uk)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :uk)
11
+ SCALES = I18n.t("num2words.scales", locale: :uk)
12
+
13
+ RUB = I18n.t("num2words.currencies.UAH.name", locale: :uk)
14
+ KOP = I18n.t("num2words.currencies.UAH.fractional.name", locale: :uk)
15
+ end
16
+
17
+ register :uk, UK
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module UR
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :ur)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :ur)
8
+ TEENS = I18n.t("num2words.teens", locale: :ur)
9
+ TENS = I18n.t("num2words.tens", locale: :ur)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :ur)
11
+ SCALES = I18n.t("num2words.scales", locale: :ur)
12
+
13
+ RUB = I18n.t("num2words.currencies.PKR.name", locale: :ur)
14
+ KOP = I18n.t("num2words.currencies.PKR.fractional.name", locale: :ur)
15
+ end
16
+
17
+ register :ur, UR
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module VI
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :vi)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :vi)
8
+ TEENS = I18n.t("num2words.teens", locale: :vi)
9
+ TENS = I18n.t("num2words.tens", locale: :vi)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :vi)
11
+ SCALES = I18n.t("num2words.scales", locale: :vi)
12
+
13
+ RUB = I18n.t("num2words.currencies.VND.name", locale: :vi)
14
+ KOP = I18n.t("num2words.currencies.VND.fractional.name", locale: :vi)
15
+ end
16
+
17
+ register :vi, VI
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ module ZH
6
+ ONES_MASC = I18n.t("num2words.ones_masc", locale: :zh)
7
+ ONES_FEM = I18n.t("num2words.ones_fem", locale: :zh)
8
+ TEENS = I18n.t("num2words.teens", locale: :zh)
9
+ TENS = I18n.t("num2words.tens", locale: :zh)
10
+ HUNDREDS = I18n.t("num2words.hundreds", locale: :zh)
11
+ SCALES = I18n.t("num2words.scales", locale: :zh)
12
+
13
+ RUB = I18n.t("num2words.currencies.CNY.name", locale: :zh)
14
+ KOP = I18n.t("num2words.currencies.CNY.fractional.name", locale: :zh)
15
+ end
16
+
17
+ register :zh, ZH
18
+ end
19
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Num2words
4
+ module Locales
5
+ @registry = {}
6
+
7
+ class << self
8
+ # Регистрация новой локали
9
+ def register(locale, mod)
10
+ @registry[locale.to_sym] = mod
11
+ end
12
+
13
+ # Доступ по синтаксису Locales[:ru]
14
+ def [](locale)
15
+ locale = locale.to_sym
16
+ @registry[locale] || autoload_locale(locale)
17
+ end
18
+
19
+ private
20
+
21
+ # Автоматическая подгрузка файла locales/xx.rb
22
+ def autoload_locale(locale)
23
+ locale_path = File.join(__dir__, "locales", "#{locale}.rb")
24
+ if File.exist?(locale_path)
25
+ require locale_path
26
+ @registry[locale] || raise("Locale #{locale} not registered")
27
+ else
28
+ raise ArgumentError, "Locale file not found: #{locale_path}"
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Num2words
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.2"
5
5
  end
data/lib/num2words.rb CHANGED
@@ -1,15 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "num2words/i18n"
3
4
  require_relative "num2words/version"
4
5
  require_relative "num2words/converter"
5
6
  require_relative "num2words/core_ext"
7
+ require_relative "num2words/locales"
6
8
 
7
9
  module Num2words
8
- def self.to_words(number, feminine: false)
9
- Converter.to_words(number, feminine: feminine)
10
+ def self.to_words(number, *args, **opts)
11
+ Converter.to_words(number, *args, **opts)
10
12
  end
11
13
 
12
- def self.to_currency(amount)
13
- Converter.to_currency(amount)
14
+ def self.to_currency(amount, *args, **opts)
15
+ Converter.to_currency(amount, *args, **opts)
14
16
  end
15
17
  end
data/num2words.gemspec CHANGED
@@ -24,4 +24,6 @@ Gem::Specification.new do |spec|
24
24
  spec.bindir = "exe"
25
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
26
  spec.require_paths = ["lib"]
27
+
28
+ spec.add_runtime_dependency "i18n", ">= 1.8"
27
29
  end