air18n 0.1.17 → 0.1.18
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/air18n/smart_count.rb +13 -8
- data/lib/air18n/version.rb +1 -1
- data/spec/lib/air18n/smart_count_spec.rb +2 -1
- metadata +2 -2
data/lib/air18n/smart_count.rb
CHANGED
@@ -19,37 +19,37 @@ module Air18n
|
|
19
19
|
PLURAL_TYPES = {
|
20
20
|
:chinese_like => {
|
21
21
|
:num_forms => 1,
|
22
|
-
:doc =>
|
22
|
+
:doc => nil,
|
23
23
|
:rule => lambda { |n| 0 } },
|
24
24
|
|
25
25
|
:german_like => {
|
26
26
|
:num_forms => 2,
|
27
|
-
:doc => ['
|
27
|
+
:doc => ['When count is 1', 'Everything else (0, 2, 3, ...)'],
|
28
28
|
:rule => lambda { |n| n != 1 ? 1 : 0 } },
|
29
29
|
|
30
30
|
:french_like => {
|
31
31
|
:num_forms => 2,
|
32
|
-
:doc => ['
|
32
|
+
:doc => ['When count is 0 or 1', 'Everything else (2, 3, 4, ...)'],
|
33
33
|
:rule => lambda { |n| n > 1 ? 1 : 0 } },
|
34
34
|
|
35
35
|
:russian_like => {
|
36
36
|
:num_forms => 3,
|
37
|
-
:doc => ['
|
37
|
+
:doc => ['When count ends in 1, excluding 11 (1, 21, 31, ...)', 'When count ends in 2-4, excluding 12-14 (2, 3, 4, 22, ...)', 'Everything else (0, 5, 6, ...)'],
|
38
38
|
:rule => lambda { |n| n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2 } },
|
39
39
|
|
40
40
|
:czech_like => {
|
41
41
|
:num_forms => 3,
|
42
|
-
:doc => ['
|
42
|
+
:doc => ['When count is 1', 'When count is 2, 3, 4', 'Everything else (0, 5, 6, ...)'],
|
43
43
|
:rule => lambda { |n| (n == 1) ? 0 : (n >= 2 && n <= 4) ? 1 : 2 } },
|
44
44
|
|
45
45
|
:polish_like => {
|
46
46
|
:num_forms => 3,
|
47
|
-
:doc => ['
|
47
|
+
:doc => ['When count is 1', 'When count ends in 2-4, excluding 12-14 (2, 3, 4, 22, ...)', 'Everything else (0, 5, 6, ...)'],
|
48
48
|
:rule => lambda { |n| (n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2) } },
|
49
49
|
|
50
50
|
:icelandic_like => {
|
51
51
|
:num_forms => 2,
|
52
|
-
:doc => ['
|
52
|
+
:doc => ['When count ends in 1, excluding 11 (1, 21, 31, ...)', 'Everything else (0, 2, 3, ...)'],
|
53
53
|
:rule => lambda { |n| (n % 10 != 1 || n % 100 == 11) ? 1 : 0 } },
|
54
54
|
}
|
55
55
|
|
@@ -111,7 +111,12 @@ module Air18n
|
|
111
111
|
|
112
112
|
def hint(text, locale)
|
113
113
|
if applies?(text)
|
114
|
-
PLURAL_TYPES[plural_type_name(locale)][:doc]
|
114
|
+
doc_array = PLURAL_TYPES[plural_type_name(locale)][:doc]
|
115
|
+
if doc_array
|
116
|
+
doc_string = doc_array.join(DELIMITER + ' ')
|
117
|
+
n = num_forms(locale)
|
118
|
+
"Must specify #{n} forms separated by \"#{DELIMITER}\": \"#{doc_string}\""
|
119
|
+
end
|
115
120
|
end
|
116
121
|
end
|
117
122
|
|
data/lib/air18n/version.rb
CHANGED
@@ -101,7 +101,8 @@ describe Air18n::SmartCount do
|
|
101
101
|
it 'should work' do
|
102
102
|
Air18n::SmartCount::hint('hi there', :pl).should be_nil
|
103
103
|
Air18n::SmartCount::hint('%{smart_count} reviews', :pl).should ==
|
104
|
-
|
104
|
+
"Must specify 3 forms separated by \";\": \"When count is 1; When count ends in 2-4, excluding 12-14 (2, 3, 4, 22, ...); Everything else (0, 5, 6, ...)\""
|
105
|
+
Air18n::SmartCount::hint('%{smart_count} reviews', :ja).should be_nil
|
105
106
|
end
|
106
107
|
end
|
107
108
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: air18n
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.18
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2012-10-
|
16
|
+
date: 2012-10-03 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: i18n
|