numbers_and_words 0.11.1 → 0.11.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.
- checksums.yaml +4 -4
- data/README.rdoc +41 -0
- data/lib/numbers_and_words/i18n/locales/numbers.cs.yml +84 -0
- data/lib/numbers_and_words/i18n/locales/numbers.es.yml +2 -2
- data/lib/numbers_and_words/i18n/pluralization.rb +1 -0
- data/lib/numbers_and_words/i18n/plurals/cs.rb +33 -0
- data/lib/numbers_and_words/strategies/array_joiner/languages.rb +1 -0
- data/lib/numbers_and_words/strategies/array_joiner/languages/cs.rb +10 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators.rb +1 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/cs.rb +3 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/cs/base.rb +12 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/cs/fractional.rb +38 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/cs/integral.rb +28 -0
- data/lib/numbers_and_words/strategies/figures_converter/languages.rb +1 -0
- data/lib/numbers_and_words/strategies/figures_converter/languages/cs.rb +53 -0
- data/lib/numbers_and_words/strategies/figures_converter/languages/es.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/languages/families/cyrillic.rb +4 -4
- data/lib/numbers_and_words/strategies/figures_converter/options.rb +1 -0
- data/lib/numbers_and_words/strategies/figures_converter/options/cs.rb +3 -0
- data/lib/numbers_and_words/strategies/figures_converter/options/cs/gender.rb +28 -0
- data/lib/numbers_and_words/strategies/figures_converter/options/cs/ordinal.rb +26 -0
- data/lib/numbers_and_words/strategies/figures_converter/options/cs/remove_zero.rb +28 -0
- data/lib/numbers_and_words/strategies/figures_converter/options/en/ordinal.rb +2 -1
- data/lib/numbers_and_words/strategies/figures_converter/options/hu/ordinal.rb +2 -1
- data/lib/numbers_and_words/translations.rb +1 -0
- data/lib/numbers_and_words/translations/cs.rb +73 -0
- data/lib/numbers_and_words/translations/es.rb +5 -7
- data/lib/numbers_and_words/version.rb +1 -1
- metadata +15 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99432fdd87f3645a56d6ce0aa7167af06e8b429c
|
4
|
+
data.tar.gz: b909e6a544bb97055e37ad5206ab7cc6c37dcea9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3c3e5476646cf106cb9f1785afd1eae53719d635ed658d01332d26ec587d5738df28d816708c57b46eb7a875f4292bfaa1c1474ae80584183ede89ca8f41945
|
7
|
+
data.tar.gz: 9c3ba5f8931deee4e0a1324d438cc7f1d2f74aa3839eec2ee743a34afa28a9fd4d4de3c5590f2726c45c83ff7d81e264f2bbb78c11f2074afdc39c4fb497f004
|
data/README.rdoc
CHANGED
@@ -36,6 +36,7 @@ Converte números em letras utilizando a biblioteca I18n.
|
|
36
36
|
* Nederlands** [nl]
|
37
37
|
* Swedish** [se]
|
38
38
|
* English (British)** [en-GB]
|
39
|
+
* Česky [cs]
|
39
40
|
* Português [pt]
|
40
41
|
* Português Brasileiro [pt-BR]
|
41
42
|
|
@@ -78,6 +79,9 @@ Converte números em letras utilizando a biblioteca I18n.
|
|
78
79
|
I18n.with_locale(:ka) { 42.to_words }
|
79
80
|
=> "ორმოცდაორი"
|
80
81
|
|
82
|
+
I18n.with_locale(:cs) { 42.to_words }
|
83
|
+
=> "čtyřicetdva"
|
84
|
+
|
81
85
|
21.to_words
|
82
86
|
=> "twenty-one"
|
83
87
|
=> "veintiuno"
|
@@ -94,6 +98,7 @@ Converte números em letras utilizando a biblioteca I18n.
|
|
94
98
|
=> "ventiuno"
|
95
99
|
=> "éénentwintig"
|
96
100
|
=> "tjugo-en"
|
101
|
+
=> "dvacetjedna"
|
97
102
|
=> "vinte e um"
|
98
103
|
|
99
104
|
231.to_words
|
@@ -112,6 +117,7 @@ Converte números em letras utilizando a biblioteca I18n.
|
|
112
117
|
=> "2 cento trentauno"
|
113
118
|
=> "tweehonderdéénendertig"
|
114
119
|
=> "två hundra trettio-en"
|
120
|
+
=> "dvě stě třicetjedna"
|
115
121
|
=> "duzentos e trinta e um"
|
116
122
|
|
117
123
|
4030.to_words
|
@@ -130,6 +136,7 @@ Converte números em letras utilizando a biblioteca I18n.
|
|
130
136
|
=> "quattro mille trenta"
|
131
137
|
=> "vierthousanddertig"
|
132
138
|
=> "fyra tusen trettio"
|
139
|
+
=> "čtyři tisíce třicet"
|
133
140
|
|
134
141
|
1000100.to_words
|
135
142
|
=> "one million one hundred"
|
@@ -147,6 +154,7 @@ Converte números em letras utilizando a biblioteca I18n.
|
|
147
154
|
=> "uno milione 1 cento"
|
148
155
|
=> "één miljoen honderd"
|
149
156
|
=> "en miljoner en hundra"
|
157
|
+
=> "jeden milión jedno sto"
|
150
158
|
|
151
159
|
1000000000000000000000000000000000.to_words
|
152
160
|
=> "one decillion"
|
@@ -163,6 +171,7 @@ Converte números em letras utilizando a biblioteca I18n.
|
|
163
171
|
=> "uno decillion"
|
164
172
|
=> "één decillion"
|
165
173
|
=> "en decillion"
|
174
|
+
=> "decilijon"
|
166
175
|
|
167
176
|
[1, 2, 3].to_words
|
168
177
|
=> ["one", "two", "three"]
|
@@ -174,6 +183,7 @@ Converte números em letras utilizando a biblioteca I18n.
|
|
174
183
|
=> ["viens", "divi", "trīs"]
|
175
184
|
=> ["üks", "kaks", "kolm"]
|
176
185
|
=> ["ერთი", "ორი", "სამი"]
|
186
|
+
=> ["jedna", "dva", "tři"]
|
177
187
|
|
178
188
|
[11, 22, 133].to_words
|
179
189
|
=> ["eleven", "twenty-two", "one hundred thirty-three"]
|
@@ -191,6 +201,7 @@ Converte números em letras utilizando a biblioteca I18n.
|
|
191
201
|
=> ["undici", "ventidue", "1 cento trentatre"]
|
192
202
|
=> ["elf", "tweeentwintig", "honderddrieendertig"]
|
193
203
|
=> ["elva", "tjugo-två", "en hundra trettio-tre"]
|
204
|
+
=> ["jedenáct", "dvacetdva", "jedno sto třicettři"]
|
194
205
|
|
195
206
|
21.77.to_words
|
196
207
|
=> "twenty-one and seventy-seven hundredths"
|
@@ -254,6 +265,36 @@ Converte números em letras utilizando a biblioteca I18n.
|
|
254
265
|
I18n.with_locale(:'pt-BR') { 1000000001.to_words gender: :female }
|
255
266
|
=> "um bilhão e uma"
|
256
267
|
|
268
|
+
* Czech
|
269
|
+
|
270
|
+
Change gender form: (gender: [:female || :male || :neuter])
|
271
|
+
|
272
|
+
I18n.with_locale(:'cs') { 1.to_words gender: :female }
|
273
|
+
=> "jedna"
|
274
|
+
|
275
|
+
I18n.with_locale(:'cs') { 1.to_words gender: :male }
|
276
|
+
=> "jeden"
|
277
|
+
|
278
|
+
I18n.with_locale(:'cs') { 1.to_words gender: :neuter }
|
279
|
+
=> "jedno"
|
280
|
+
|
281
|
+
|
282
|
+
Remove 'zero' from integral part of float: (remove_zero: [true || false])
|
283
|
+
|
284
|
+
I18n.with_locale(:cs) { 0.7.to_words }
|
285
|
+
=> "nula celých sedm desetin"
|
286
|
+
|
287
|
+
I18n.with_locale(:cs) { 0.7.to_words remove_zero: true }
|
288
|
+
=> "sedm desetin"
|
289
|
+
|
290
|
+
Ordinal form: (ordinal: [true || false])
|
291
|
+
|
292
|
+
I18n.with_locale(:cs) { 21.to_words ordinal: true }
|
293
|
+
=> "dvacátý první"
|
294
|
+
|
295
|
+
I18n.with_locale(:cs) { 21.to_words gender: :female, ordinal: true }
|
296
|
+
=> "dvacátá první"
|
297
|
+
|
257
298
|
== Other options / Другие опции
|
258
299
|
|
259
300
|
* precision
|
@@ -0,0 +1,84 @@
|
|
1
|
+
cs:
|
2
|
+
numbers:
|
3
|
+
union: ''
|
4
|
+
union_separator: ''
|
5
|
+
integral: celých
|
6
|
+
ones:
|
7
|
+
male: [nula, jeden, dva, tři, čtyři, pět, šest, sedm, osm, devět]
|
8
|
+
female: [nula, jedna, dvě, tři, čtyři, pět, šest, sedm, osm, devět]
|
9
|
+
neuter: [nula, jedno, dvě, tři, čtyři, pět, šest, sedm, osm, devět]
|
10
|
+
teens: [deset, jedenáct, dvanáct, třináct, čtrnáct, patnáct, šestnáct, sedmnáct, osmnáct, devatenáct]
|
11
|
+
tens: [_, deset, dvacet, třicet, čtyřicet, padesát, šedesát, sedmdesát, osmdesát, devadesát]
|
12
|
+
hundreds: [_, jedno sto, dvě stě, tři sta, čtyři sta, pět set, šest set, sedm set, osm set, devět set]
|
13
|
+
# gem pouziva se deleni po 10^3, http://www.converter.cz/prevody/velka-cisla.htm
|
14
|
+
# mega: [ones, thousands, miliony, miliardy, biliony, biliardy, triliony, triliardy, quadriliony, quadriliardy]
|
15
|
+
micro:
|
16
|
+
one: [_, desetina, setina, tisícina, milióntina, miliardtina, bilióntina]
|
17
|
+
few: [_, desetiny, setiny, tisíciny, milióntiny, miliardtiny, bilióntiny]
|
18
|
+
many: [_, desetin, setin, tisícin, milióntin, miliardtin, bilióntin]
|
19
|
+
sub_micro: [_, deseti, sto]
|
20
|
+
thousands:
|
21
|
+
one: tisíc
|
22
|
+
few: tisíce
|
23
|
+
many: tisíc
|
24
|
+
millions:
|
25
|
+
one: milión
|
26
|
+
few: milióny
|
27
|
+
many: miliónů
|
28
|
+
billions:
|
29
|
+
one: miliarda
|
30
|
+
few: miliardy
|
31
|
+
many: miliard
|
32
|
+
trillions:
|
33
|
+
one: bilion
|
34
|
+
few: biliony
|
35
|
+
many: bilionů
|
36
|
+
quadrillions:
|
37
|
+
one: biliarda
|
38
|
+
few: biliardy
|
39
|
+
many: biliard
|
40
|
+
quintillion:
|
41
|
+
one: trilion
|
42
|
+
few: triliony
|
43
|
+
many: trilionů
|
44
|
+
sextillions:
|
45
|
+
one: triliarda
|
46
|
+
few: triliardy
|
47
|
+
many: triliard
|
48
|
+
septillions:
|
49
|
+
one: kvadrilion
|
50
|
+
few: kvadriliony
|
51
|
+
many: kvadrilionů
|
52
|
+
octillions:
|
53
|
+
one: kvadriliarda
|
54
|
+
few: kvadriliardy
|
55
|
+
many: kvadriliard
|
56
|
+
mega:
|
57
|
+
- ones
|
58
|
+
- thousands
|
59
|
+
- millions
|
60
|
+
- billions
|
61
|
+
- trillions
|
62
|
+
- quadrillions
|
63
|
+
- quintillion
|
64
|
+
- sextillions
|
65
|
+
- septillions
|
66
|
+
- octillions
|
67
|
+
ordinal:
|
68
|
+
ones:
|
69
|
+
male: [nultý, první, druhý, třetí, čtvrtý, pátý, šestý, sedmý, osmý, devátý]
|
70
|
+
female: [nultá, první, druhá, třetí, čtvrtá, pátá, šestá, sedmá, osmá, devátá]
|
71
|
+
neuter: [nulté, první, druhé, třetí, čtvrté, páté, šesté, sedmé, osmé, deváté]
|
72
|
+
teens:
|
73
|
+
male: [desátý, jedenáctý, dvanáctý, třináctý, čtrnáctý, patnáctý, šestnáctý, sedmnáctý, osmnáctý, devatenáctý]
|
74
|
+
female: [desátá, jedenáctá, dvanáctá, třináctá, čtrnáctá, patnáctá, šestnáctá, sedmnáctá, osmnáctá, devatenáctá]
|
75
|
+
neuter: [desáté, jedenácté, dvanácté, třinácté, čtrnácté, patnácté, šestnácté, sedmnácté, osmnácté, devatenácté]
|
76
|
+
tens:
|
77
|
+
male: [_, desátý, dvacátý, třicátý, čtyřicátý, padesátý, šedesátý, sedmdesátý, osmdesátý, devadesátý]
|
78
|
+
female: [_, desátá, dvacátá, třicátá, čtyřicátá, padesátá, šedesátá, sedmdesátá, osmdesátá, devadesátá]
|
79
|
+
neuter: [_, desáté, dvacáté, třicáté, čtyřicáté, padesáté, šedesáté, sedmdesáté, osmdesáté, devadesáté]
|
80
|
+
hundreds:
|
81
|
+
male: [_, stý, dvoustý, třístý, čtyřstý, pětistý, šestistý, sedmistý, osmistý, devítistý]
|
82
|
+
female: [_, stá, dvoustá, třístá, čtyřstá, pětistá, šestistá, sedmistá, osmistá, devítistá]
|
83
|
+
neuter: [_, sté, dvousté, třísté, čtyřsté, pětisté, šestisté, sedmisté, osmisté, devítisté]
|
84
|
+
|
@@ -44,7 +44,7 @@ es:
|
|
44
44
|
one: septillón
|
45
45
|
other: septillones
|
46
46
|
quattuordecillions: mil septillones
|
47
|
-
|
47
|
+
union: y
|
48
48
|
micro: [_, tenths, hundredths, thousandths, millionths, billionths, trillionths, quadrillionths, quintillionths, sextillionths, septillionths, octillionths, nonillionths, decillionths, undecillionths, duodecillionths, tredecillionths, quattuordecillionths]
|
49
49
|
micro_prefix:
|
50
50
|
tens: diez
|
@@ -100,4 +100,4 @@ es:
|
|
100
100
|
quattuordecillionths:
|
101
101
|
one: milseptillonésima
|
102
102
|
other: milseptillonésimas
|
103
|
-
|
103
|
+
union_separator: con
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module NumbersAndWords
|
2
|
+
module I18n
|
3
|
+
module Plurals
|
4
|
+
module Cs
|
5
|
+
module_function
|
6
|
+
|
7
|
+
RULE = lambda do |n|
|
8
|
+
if one_conditions(n)
|
9
|
+
:one
|
10
|
+
elsif few_conditions(n)
|
11
|
+
:few
|
12
|
+
elsif many_conditions(n)
|
13
|
+
:many
|
14
|
+
else
|
15
|
+
:other
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def one_conditions(n)
|
20
|
+
n % 10 == 1 && n % 100 != 11
|
21
|
+
end
|
22
|
+
|
23
|
+
def few_conditions(n)
|
24
|
+
[2, 3, 4].include?(n % 10) && ![12, 13, 14].include?(n % 100)
|
25
|
+
end
|
26
|
+
|
27
|
+
def many_conditions(n)
|
28
|
+
(n % 10).zero? || [5, 6, 7, 8, 9].include?(n % 10) || [11, 12, 13, 14].include?(n % 100)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -10,6 +10,7 @@ require 'numbers_and_words/strategies/array_joiner/languages/hu'
|
|
10
10
|
require 'numbers_and_words/strategies/array_joiner/languages/ru'
|
11
11
|
require 'numbers_and_words/strategies/array_joiner/languages/ua'
|
12
12
|
require 'numbers_and_words/strategies/array_joiner/languages/pt-BR'
|
13
|
+
require 'numbers_and_words/strategies/array_joiner/languages/cs'
|
13
14
|
|
14
15
|
module NumbersAndWords
|
15
16
|
module Strategies
|
@@ -7,6 +7,7 @@ require 'numbers_and_words/strategies/figures_converter/decorators/ru'
|
|
7
7
|
require 'numbers_and_words/strategies/figures_converter/decorators/pt-BR'
|
8
8
|
require 'numbers_and_words/strategies/figures_converter/decorators/hu'
|
9
9
|
require 'numbers_and_words/strategies/figures_converter/decorators/ua'
|
10
|
+
require 'numbers_and_words/strategies/figures_converter/decorators/cs'
|
10
11
|
|
11
12
|
module NumbersAndWords
|
12
13
|
module Strategies
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module NumbersAndWords
|
2
|
+
module Strategies
|
3
|
+
module FiguresConverter
|
4
|
+
module Decorators
|
5
|
+
module Cs
|
6
|
+
class Fractional < Base
|
7
|
+
def run
|
8
|
+
@options[:gender] = :female
|
9
|
+
"#{super} #{fraction_significance}"
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def fraction_significance
|
15
|
+
@strategy.translations.micros full_fraction.fraction_capacity, figures.reverse.join.to_i
|
16
|
+
end
|
17
|
+
|
18
|
+
def full_fraction
|
19
|
+
(0..zero_length).inject(figures.clone) { |result, _el| result.unshift '0' }.to_figures
|
20
|
+
end
|
21
|
+
|
22
|
+
def figures
|
23
|
+
@strategy.figures
|
24
|
+
end
|
25
|
+
|
26
|
+
def zero_length
|
27
|
+
fraction_length - figures.length
|
28
|
+
end
|
29
|
+
|
30
|
+
def fraction_length
|
31
|
+
@options[:fractional][:length].to_i
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module NumbersAndWords
|
2
|
+
module Strategies
|
3
|
+
module FiguresConverter
|
4
|
+
module Decorators
|
5
|
+
module Cs
|
6
|
+
class Integral < Base
|
7
|
+
def run
|
8
|
+
@options[:gender] = :female
|
9
|
+
[super, integral_significance].compact.join(' ')
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def integral_significance
|
15
|
+
figs = figures.reverse.join.to_i
|
16
|
+
return nil if @options[:remove_zero] && figs.zero?
|
17
|
+
@strategy.translations.integral figs
|
18
|
+
end
|
19
|
+
|
20
|
+
def figures
|
21
|
+
@strategy.language.figures
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -25,6 +25,7 @@ require 'numbers_and_words/strategies/figures_converter/languages/ru'
|
|
25
25
|
require 'numbers_and_words/strategies/figures_converter/languages/ua'
|
26
26
|
require 'numbers_and_words/strategies/figures_converter/languages/pt'
|
27
27
|
require 'numbers_and_words/strategies/figures_converter/languages/pt-BR'
|
28
|
+
require 'numbers_and_words/strategies/figures_converter/languages/cs'
|
28
29
|
|
29
30
|
require 'numbers_and_words/strategies/figures_converter/languages/ka'
|
30
31
|
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module NumbersAndWords
|
2
|
+
module Strategies
|
3
|
+
module FiguresConverter
|
4
|
+
module Languages
|
5
|
+
class Cs < Base
|
6
|
+
include Families::Latin
|
7
|
+
|
8
|
+
# methods in translations/cs.rb which can work with :gender or :ordinal
|
9
|
+
%i[ones teens tens tens_with_ones hundreds].each do |method_name|
|
10
|
+
define_method(method_name) do
|
11
|
+
super(internal_options)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def zero
|
16
|
+
super(internal_options) unless maybe_remove_zero
|
17
|
+
end
|
18
|
+
|
19
|
+
def megs(*args)
|
20
|
+
super({ number: @figures.number_in_capacity(@current_capacity) }.merge(args.first || {}))
|
21
|
+
end
|
22
|
+
|
23
|
+
def gender
|
24
|
+
@current_capacity ||= 0
|
25
|
+
# @current_capacity = order of block of 3 digits, backwards (0 = hundreds tens ones)
|
26
|
+
|
27
|
+
if @current_capacity.zero?
|
28
|
+
options.gender.result
|
29
|
+
elsif @current_capacity > 2 && @current_capacity.odd?
|
30
|
+
:female # miliardy, biliardy, triliardy .....
|
31
|
+
else
|
32
|
+
:male
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def internal_options
|
39
|
+
{ gender: gender, prefix: maybe_ordinal }
|
40
|
+
end
|
41
|
+
|
42
|
+
def maybe_remove_zero
|
43
|
+
@options.remove_zero.result
|
44
|
+
end
|
45
|
+
|
46
|
+
def maybe_ordinal
|
47
|
+
@options.ordinal.result
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -20,13 +20,13 @@ module NumbersAndWords
|
|
20
20
|
end
|
21
21
|
|
22
22
|
%i[ones tens_with_ones].each do |method_name|
|
23
|
-
define_method(method_name) do
|
24
|
-
super({ gender: gender })
|
23
|
+
define_method(method_name) do |*args|
|
24
|
+
super({ gender: gender }.merge(args.first || {}))
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
def megs
|
29
|
-
super({ number: @figures.number_in_capacity(@current_capacity) })
|
28
|
+
def megs(*args)
|
29
|
+
super({ number: @figures.number_in_capacity(@current_capacity) }.merge(args.first || {}))
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
@@ -5,6 +5,7 @@ require 'numbers_and_words/strategies/figures_converter/options/hu'
|
|
5
5
|
require 'numbers_and_words/strategies/figures_converter/options/pt-BR'
|
6
6
|
require 'numbers_and_words/strategies/figures_converter/options/ru'
|
7
7
|
require 'numbers_and_words/strategies/figures_converter/options/ua'
|
8
|
+
require 'numbers_and_words/strategies/figures_converter/options/cs'
|
8
9
|
|
9
10
|
module NumbersAndWords
|
10
11
|
module Strategies
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module NumbersAndWords
|
2
|
+
module Strategies
|
3
|
+
module FiguresConverter
|
4
|
+
module Options
|
5
|
+
module Cs
|
6
|
+
class Gender
|
7
|
+
attr_accessor :strategy, :options
|
8
|
+
|
9
|
+
def initialize(proxy, *_args)
|
10
|
+
@strategy = proxy.strategy
|
11
|
+
@options = proxy.options
|
12
|
+
end
|
13
|
+
|
14
|
+
def result
|
15
|
+
active? ? @options[:gender].to_sym : :female
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def active?
|
21
|
+
@options[:gender]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module NumbersAndWords
|
2
|
+
module Strategies
|
3
|
+
module FiguresConverter
|
4
|
+
module Options
|
5
|
+
module Cs
|
6
|
+
class Ordinal
|
7
|
+
def initialize(proxy, *_args)
|
8
|
+
@strategy = proxy.strategy
|
9
|
+
@options = proxy.options
|
10
|
+
end
|
11
|
+
|
12
|
+
def result
|
13
|
+
return :ordinal if active?
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def active?
|
19
|
+
@options[:ordinal]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module NumbersAndWords
|
2
|
+
module Strategies
|
3
|
+
module FiguresConverter
|
4
|
+
module Options
|
5
|
+
module Cs
|
6
|
+
class RemoveZero
|
7
|
+
attr_accessor :strategy, :options
|
8
|
+
|
9
|
+
def initialize(proxy, *_args)
|
10
|
+
@strategy = proxy.strategy
|
11
|
+
@options = proxy.options
|
12
|
+
end
|
13
|
+
|
14
|
+
def result
|
15
|
+
active?
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def active?
|
21
|
+
@options[:remove_zero]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -34,7 +34,8 @@ module NumbersAndWords
|
|
34
34
|
|
35
35
|
def simple_numbers_condition
|
36
36
|
current_capacity.nil? &&
|
37
|
-
(HUNDRED_TYPE != @type ||
|
37
|
+
(HUNDRED_TYPE != @type ||
|
38
|
+
HUNDRED_TYPE == @type && simple_number_to_words.empty?)
|
38
39
|
end
|
39
40
|
|
40
41
|
def megs_numbers_condition
|
@@ -34,7 +34,8 @@ module NumbersAndWords
|
|
34
34
|
|
35
35
|
def simple_numbers_condition
|
36
36
|
current_capacity.nil? &&
|
37
|
-
(HUNDRED_TYPE != @type ||
|
37
|
+
(HUNDRED_TYPE != @type ||
|
38
|
+
HUNDRED_TYPE == @type && simple_number_to_words.empty?)
|
38
39
|
end
|
39
40
|
|
40
41
|
def megs_numbers_condition
|
@@ -21,6 +21,7 @@ require 'numbers_and_words/translations/de'
|
|
21
21
|
require 'numbers_and_words/translations/pt'
|
22
22
|
require 'numbers_and_words/translations/pt-BR'
|
23
23
|
require 'numbers_and_words/translations/ka'
|
24
|
+
require 'numbers_and_words/translations/cs'
|
24
25
|
|
25
26
|
module NumbersAndWords
|
26
27
|
module Translations
|
@@ -0,0 +1,73 @@
|
|
1
|
+
module NumbersAndWords
|
2
|
+
module Translations
|
3
|
+
class Cs < Base
|
4
|
+
include NumbersAndWords::Translations::Families::Base
|
5
|
+
include NumbersAndWords::Translations::Extensions::FractionSignificance
|
6
|
+
|
7
|
+
def zero(options = {})
|
8
|
+
ones(0, options)
|
9
|
+
end
|
10
|
+
|
11
|
+
def ones(number, options = {})
|
12
|
+
t([options[:prefix], :ones, options[:gender]].join('.'))[number]
|
13
|
+
end
|
14
|
+
|
15
|
+
# for 20, 30, 60
|
16
|
+
def tens(number, options = {})
|
17
|
+
t([options[:prefix], :tens, gender_to_use(options)].join('.'))[number]
|
18
|
+
end
|
19
|
+
|
20
|
+
# for 12, 13, 19
|
21
|
+
def teens(number_arr, options = {})
|
22
|
+
t([options[:prefix], :teens, gender_to_use(options)].join('.'))[number_arr.first]
|
23
|
+
end
|
24
|
+
|
25
|
+
# for 42, 23, 69
|
26
|
+
def tens_with_ones(numbers_arr, options = {})
|
27
|
+
connector = ' '
|
28
|
+
[tens(numbers_arr[1], options), connector, ones(numbers_arr[0], options)].join
|
29
|
+
end
|
30
|
+
|
31
|
+
def hundreds(number, options = {})
|
32
|
+
t([options[:prefix], :hundreds, gender_to_use(options)].join('.'))[number]
|
33
|
+
end
|
34
|
+
|
35
|
+
def megs(capacity, options = {})
|
36
|
+
number = options[:number]
|
37
|
+
mega_name = "#{options[:prefix]}.mega"
|
38
|
+
number ? t(mega(capacity), count: number) : t(mega_name)[capacity]
|
39
|
+
end
|
40
|
+
|
41
|
+
def mega(capacity)
|
42
|
+
t(:mega)[capacity]
|
43
|
+
end
|
44
|
+
|
45
|
+
def integral(number, _options = {})
|
46
|
+
t(:integral, count: number)
|
47
|
+
end
|
48
|
+
|
49
|
+
def micros(capacity, number = nil, separator = '')
|
50
|
+
micro, prefix = capacity
|
51
|
+
micros = t(:micro, count: number)[micro]
|
52
|
+
[micro_prefix(prefix), micros].compact.join separator
|
53
|
+
end
|
54
|
+
|
55
|
+
def micro_prefix(capacity)
|
56
|
+
case capacity
|
57
|
+
when 2 then t(:sub_micro)[2]
|
58
|
+
when 1 then t(:sub_micro)[1]
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
private
|
63
|
+
|
64
|
+
def ordinal?(options)
|
65
|
+
options[:prefix] == :ordinal
|
66
|
+
end
|
67
|
+
|
68
|
+
def gender_to_use(options)
|
69
|
+
ordinal?(options) ? options[:gender] : nil
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -10,7 +10,8 @@ module NumbersAndWords
|
|
10
10
|
|
11
11
|
def ones(number, options = {})
|
12
12
|
return if options[:is_one_thousand]
|
13
|
-
return t(%i[ones apocopated].join('.')) if
|
13
|
+
return t(%i[ones apocopated].join('.')) if number == 1 &&
|
14
|
+
options[:is_apocopated]
|
14
15
|
t([:ones, options[:gender]].join('.'))[number]
|
15
16
|
end
|
16
17
|
|
@@ -20,12 +21,9 @@ module NumbersAndWords
|
|
20
21
|
end
|
21
22
|
|
22
23
|
def tens_with_ones(numbers, options = {})
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
t([:ones, options[:gender]].join('.'))[numbers[0]]
|
27
|
-
end
|
28
|
-
[tens(numbers[1], alone: false), t(:union), ones_number].join(' ')
|
24
|
+
[tens(numbers[1], alone: false),
|
25
|
+
t(:union),
|
26
|
+
ones(numbers[0], options)].join(' ')
|
29
27
|
end
|
30
28
|
|
31
29
|
def hundreds(number, options = {})
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: numbers_and_words
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kirill Lazarev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-08-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
@@ -73,6 +73,7 @@ files:
|
|
73
73
|
- lib/numbers_and_words/helper_classes/words_array.rb
|
74
74
|
- lib/numbers_and_words/i18n.rb
|
75
75
|
- lib/numbers_and_words/i18n/initialization.rb
|
76
|
+
- lib/numbers_and_words/i18n/locales/numbers.cs.yml
|
76
77
|
- lib/numbers_and_words/i18n/locales/numbers.de.yml
|
77
78
|
- lib/numbers_and_words/i18n/locales/numbers.en-GB.yml
|
78
79
|
- lib/numbers_and_words/i18n/locales/numbers.en.yml
|
@@ -92,6 +93,7 @@ files:
|
|
92
93
|
- lib/numbers_and_words/i18n/locales/numbers.tr.yml
|
93
94
|
- lib/numbers_and_words/i18n/locales/numbers.ua.yml
|
94
95
|
- lib/numbers_and_words/i18n/pluralization.rb
|
96
|
+
- lib/numbers_and_words/i18n/plurals/cs.rb
|
95
97
|
- lib/numbers_and_words/i18n/plurals/fr.rb
|
96
98
|
- lib/numbers_and_words/i18n/plurals/lt.rb
|
97
99
|
- lib/numbers_and_words/i18n/plurals/lv.rb
|
@@ -102,6 +104,7 @@ files:
|
|
102
104
|
- lib/numbers_and_words/strategies/array_joiner.rb
|
103
105
|
- lib/numbers_and_words/strategies/array_joiner/languages.rb
|
104
106
|
- lib/numbers_and_words/strategies/array_joiner/languages/base.rb
|
107
|
+
- lib/numbers_and_words/strategies/array_joiner/languages/cs.rb
|
105
108
|
- lib/numbers_and_words/strategies/array_joiner/languages/en-GB.rb
|
106
109
|
- lib/numbers_and_words/strategies/array_joiner/languages/en.rb
|
107
110
|
- lib/numbers_and_words/strategies/array_joiner/languages/es.rb
|
@@ -114,6 +117,10 @@ files:
|
|
114
117
|
- lib/numbers_and_words/strategies/figures_converter.rb
|
115
118
|
- lib/numbers_and_words/strategies/figures_converter/decorators.rb
|
116
119
|
- lib/numbers_and_words/strategies/figures_converter/decorators/base.rb
|
120
|
+
- lib/numbers_and_words/strategies/figures_converter/decorators/cs.rb
|
121
|
+
- lib/numbers_and_words/strategies/figures_converter/decorators/cs/base.rb
|
122
|
+
- lib/numbers_and_words/strategies/figures_converter/decorators/cs/fractional.rb
|
123
|
+
- lib/numbers_and_words/strategies/figures_converter/decorators/cs/integral.rb
|
117
124
|
- lib/numbers_and_words/strategies/figures_converter/decorators/en-GB.rb
|
118
125
|
- lib/numbers_and_words/strategies/figures_converter/decorators/en-GB/base.rb
|
119
126
|
- lib/numbers_and_words/strategies/figures_converter/decorators/en-GB/fractional.rb
|
@@ -148,6 +155,7 @@ files:
|
|
148
155
|
- lib/numbers_and_words/strategies/figures_converter/decorators/ua/integral.rb
|
149
156
|
- lib/numbers_and_words/strategies/figures_converter/languages.rb
|
150
157
|
- lib/numbers_and_words/strategies/figures_converter/languages/base.rb
|
158
|
+
- lib/numbers_and_words/strategies/figures_converter/languages/cs.rb
|
151
159
|
- lib/numbers_and_words/strategies/figures_converter/languages/de.rb
|
152
160
|
- lib/numbers_and_words/strategies/figures_converter/languages/en-GB.rb
|
153
161
|
- lib/numbers_and_words/strategies/figures_converter/languages/en.rb
|
@@ -171,6 +179,10 @@ files:
|
|
171
179
|
- lib/numbers_and_words/strategies/figures_converter/languages/tr.rb
|
172
180
|
- lib/numbers_and_words/strategies/figures_converter/languages/ua.rb
|
173
181
|
- lib/numbers_and_words/strategies/figures_converter/options.rb
|
182
|
+
- lib/numbers_and_words/strategies/figures_converter/options/cs.rb
|
183
|
+
- lib/numbers_and_words/strategies/figures_converter/options/cs/gender.rb
|
184
|
+
- lib/numbers_and_words/strategies/figures_converter/options/cs/ordinal.rb
|
185
|
+
- lib/numbers_and_words/strategies/figures_converter/options/cs/remove_zero.rb
|
174
186
|
- lib/numbers_and_words/strategies/figures_converter/options/en-GB.rb
|
175
187
|
- lib/numbers_and_words/strategies/figures_converter/options/en-GB/hundreds_with_union.rb
|
176
188
|
- lib/numbers_and_words/strategies/figures_converter/options/en-GB/ordinal.rb
|
@@ -199,6 +211,7 @@ files:
|
|
199
211
|
- lib/numbers_and_words/strategies/figures_converter/options/ua/gender.rb
|
200
212
|
- lib/numbers_and_words/translations.rb
|
201
213
|
- lib/numbers_and_words/translations/base.rb
|
214
|
+
- lib/numbers_and_words/translations/cs.rb
|
202
215
|
- lib/numbers_and_words/translations/de.rb
|
203
216
|
- lib/numbers_and_words/translations/en-GB.rb
|
204
217
|
- lib/numbers_and_words/translations/en.rb
|