russian 0.6.0 → 1.0.0
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 +7 -0
- data/CHANGELOG.md +203 -0
- data/Gemfile +5 -6
- data/LICENSE +2 -2
- data/README.md +327 -0
- data/Rakefile +15 -8
- data/lib/russian/action_view_ext/helpers/date_helper.rb +136 -101
- data/lib/russian/active_model_ext/custom_error_message.rb +40 -59
- data/lib/russian/locale/actionview.yml +101 -84
- data/lib/russian/locale/activemodel.yml +28 -21
- data/lib/russian/locale/activerecord.yml +57 -52
- data/lib/russian/locale/activesupport.yml +5 -8
- data/lib/russian/locale/datetime.rb +34 -24
- data/lib/russian/locale/datetime.yml +85 -22
- data/lib/russian/locale/pluralization.rb +32 -11
- data/lib/russian/locale/transliterator.rb +10 -9
- data/lib/russian/russian_rails.rb +97 -6
- data/lib/russian/strptime.rb +166 -0
- data/lib/russian/transliteration.rb +87 -53
- data/lib/russian/version.rb +27 -5
- data/lib/russian.rb +378 -78
- data/russian.gemspec +37 -20
- data/sig/russian.rbs +46 -0
- metadata +163 -53
- data/CHANGELOG +0 -132
- data/README.textile +0 -295
- data/TODO +0 -4
- data/spec/fixtures/en.yml +0 -4
- data/spec/fixtures/ru.yml +0 -4
- data/spec/i18n/locale/datetime_spec.rb +0 -99
- data/spec/i18n/locale/pluralization_spec.rb +0 -28
- data/spec/locale_spec.rb +0 -47
- data/spec/russian_spec.rb +0 -118
- data/spec/spec_helper.rb +0 -7
- data/spec/transliteration_spec.rb +0 -51
|
@@ -1,43 +1,56 @@
|
|
|
1
1
|
ru:
|
|
2
2
|
number:
|
|
3
|
-
# Используется в number_with_delimiter()
|
|
4
|
-
# Также является установками по умолчанию для 'currency', 'percentage', 'precision', 'human'
|
|
5
|
-
#
|
|
6
3
|
# Used in number_with_delimiter()
|
|
7
|
-
# These are also the defaults for 'currency', 'percentage',
|
|
4
|
+
# These are also the defaults for 'currency', 'percentage',
|
|
5
|
+
# 'precision', and 'human'.
|
|
6
|
+
#
|
|
7
|
+
#
|
|
8
|
+
# Используется в number_with_delimiter()
|
|
9
|
+
# Также является установками по умолчанию для 'currency', 'percentage',
|
|
10
|
+
# 'precision', 'human'.
|
|
8
11
|
format:
|
|
9
|
-
# Sets the separator between the units, for more precision
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
# Sets the separator between the units, for more precision
|
|
13
|
+
# (e.g. 1.0 / 2.0 == 0.5)
|
|
14
|
+
separator: ","
|
|
15
|
+
# Delimets thousands (e.g. 1,000,000 is a million)
|
|
16
|
+
# (always in groups of three)
|
|
12
17
|
delimiter: " "
|
|
13
|
-
# Number of decimals, behind the separator
|
|
18
|
+
# Number of decimals, behind the separator
|
|
19
|
+
# (the number 1 with a precision of 2 gives: 1.00)
|
|
14
20
|
precision: 3
|
|
21
|
+
round_mode: default
|
|
15
22
|
significant: false
|
|
16
23
|
strip_insignificant_zeros: false
|
|
17
|
-
|
|
24
|
+
|
|
18
25
|
# Used in number_to_currency()
|
|
26
|
+
#
|
|
27
|
+
#
|
|
28
|
+
# Используется в number_to_currency()
|
|
19
29
|
currency:
|
|
20
30
|
format:
|
|
21
31
|
# Формат отображения валюты и обозначение самой валюты
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
# Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
|
|
25
32
|
format: "%n %u"
|
|
33
|
+
negative_format: "-%n %u"
|
|
34
|
+
|
|
35
|
+
# перечеркнутый символ Р доступен не везде и
|
|
36
|
+
# часто делается обходными путями
|
|
26
37
|
unit: "руб."
|
|
38
|
+
|
|
27
39
|
# These three are to override number.format and are optional
|
|
28
|
-
separator: "
|
|
40
|
+
separator: ","
|
|
29
41
|
delimiter: " "
|
|
30
42
|
precision: 2
|
|
31
43
|
significant: false
|
|
32
44
|
strip_insignificant_zeros: false
|
|
33
|
-
|
|
45
|
+
|
|
34
46
|
# Used in number_to_percentage()
|
|
35
47
|
percentage:
|
|
36
48
|
format:
|
|
37
49
|
# These three are to override number.format and are optional
|
|
38
|
-
# separator:
|
|
50
|
+
# separator:
|
|
39
51
|
delimiter: ""
|
|
40
|
-
|
|
52
|
+
format: "%n%"
|
|
53
|
+
|
|
41
54
|
# Used in number_to_precision()
|
|
42
55
|
precision:
|
|
43
56
|
format:
|
|
@@ -45,33 +58,31 @@ ru:
|
|
|
45
58
|
# separator:
|
|
46
59
|
delimiter: ""
|
|
47
60
|
# precision:
|
|
48
|
-
|
|
61
|
+
|
|
49
62
|
# Used in number_to_human_size()
|
|
50
63
|
human:
|
|
51
64
|
format:
|
|
52
65
|
# These three are to override number.format and are optional
|
|
53
|
-
# separator:
|
|
66
|
+
# separator:
|
|
54
67
|
delimiter: ""
|
|
55
68
|
precision: 1
|
|
56
69
|
significant: false
|
|
57
70
|
strip_insignificant_zeros: false
|
|
58
|
-
|
|
59
|
-
# Rails 2.2
|
|
60
|
-
# storage_units: [байт, КБ, МБ, ГБ, ТБ]
|
|
61
|
-
|
|
62
|
-
# Rails 2.3+
|
|
71
|
+
|
|
63
72
|
storage_units:
|
|
64
73
|
# Storage units output formatting.
|
|
65
74
|
# %u is the storage unit, %n is the number (default: 2 MB)
|
|
66
75
|
format: "%n %u"
|
|
67
76
|
units:
|
|
68
77
|
byte:
|
|
69
|
-
one:
|
|
70
|
-
few:
|
|
71
|
-
many:
|
|
78
|
+
one: "байт"
|
|
79
|
+
few: "байта"
|
|
80
|
+
many: "байт"
|
|
72
81
|
other: "байта"
|
|
82
|
+
eb: "ЭБ"
|
|
73
83
|
kb: "КБ"
|
|
74
84
|
mb: "МБ"
|
|
85
|
+
pb: "ПБ"
|
|
75
86
|
gb: "ГБ"
|
|
76
87
|
tb: "ТБ"
|
|
77
88
|
|
|
@@ -105,92 +116,100 @@ ru:
|
|
|
105
116
|
many: "квадриллионов"
|
|
106
117
|
other: "квадриллионов"
|
|
107
118
|
|
|
108
|
-
#
|
|
119
|
+
# Used in distance_of_time_in_words(),
|
|
120
|
+
# distance_of_time_in_words_to_now(), time_ago_in_words().
|
|
109
121
|
#
|
|
110
122
|
#
|
|
111
|
-
#
|
|
123
|
+
# Используется в хелперах distance_of_time_in_words(),
|
|
124
|
+
# distance_of_time_in_words_to_now(), time_ago_in_words().
|
|
112
125
|
datetime:
|
|
113
126
|
distance_in_words:
|
|
114
127
|
half_a_minute: "меньше минуты"
|
|
115
128
|
less_than_x_seconds:
|
|
116
|
-
one:
|
|
117
|
-
few:
|
|
118
|
-
many:
|
|
119
|
-
other: "меньше %{count}
|
|
129
|
+
one: "меньше %{count} секунды"
|
|
130
|
+
few: "меньше %{count} секунд"
|
|
131
|
+
many: "меньше %{count} секунд"
|
|
132
|
+
other: "меньше %{count} секунд"
|
|
120
133
|
x_seconds:
|
|
121
|
-
one:
|
|
122
|
-
few:
|
|
123
|
-
many:
|
|
124
|
-
other: "%{count}
|
|
134
|
+
one: "%{count} секунда"
|
|
135
|
+
few: "%{count} секунды"
|
|
136
|
+
many: "%{count} секунд"
|
|
137
|
+
other: "%{count} секунд"
|
|
125
138
|
less_than_x_minutes:
|
|
126
|
-
one:
|
|
127
|
-
few:
|
|
128
|
-
many:
|
|
129
|
-
other: "меньше %{count}
|
|
139
|
+
one: "меньше %{count} минуты"
|
|
140
|
+
few: "меньше %{count} минут"
|
|
141
|
+
many: "меньше %{count} минут"
|
|
142
|
+
other: "меньше %{count} минут"
|
|
130
143
|
x_minutes:
|
|
131
|
-
one:
|
|
132
|
-
few:
|
|
133
|
-
many:
|
|
134
|
-
other: "%{count}
|
|
144
|
+
one: "%{count} минута"
|
|
145
|
+
few: "%{count} минуты"
|
|
146
|
+
many: "%{count} минут"
|
|
147
|
+
other: "%{count} минут"
|
|
135
148
|
about_x_hours:
|
|
136
|
-
one:
|
|
137
|
-
few:
|
|
138
|
-
many:
|
|
139
|
-
other: "около %{count}
|
|
149
|
+
one: "около %{count} часа"
|
|
150
|
+
few: "около %{count} часов"
|
|
151
|
+
many: "около %{count} часов"
|
|
152
|
+
other: "около %{count} часов"
|
|
140
153
|
x_days:
|
|
141
|
-
one:
|
|
142
|
-
few:
|
|
143
|
-
many:
|
|
144
|
-
other: "%{count}
|
|
154
|
+
one: "%{count} день"
|
|
155
|
+
few: "%{count} дня"
|
|
156
|
+
many: "%{count} дней"
|
|
157
|
+
other: "%{count} дней"
|
|
145
158
|
about_x_months:
|
|
146
|
-
one:
|
|
147
|
-
few:
|
|
148
|
-
many:
|
|
149
|
-
other: "около %{count}
|
|
159
|
+
one: "около %{count} месяца"
|
|
160
|
+
few: "около %{count} месяцев"
|
|
161
|
+
many: "около %{count} месяцев"
|
|
162
|
+
other: "около %{count} месяцев"
|
|
150
163
|
x_months:
|
|
151
|
-
one:
|
|
152
|
-
few:
|
|
153
|
-
many:
|
|
154
|
-
other: "%{count}
|
|
164
|
+
one: "%{count} месяц"
|
|
165
|
+
few: "%{count} месяца"
|
|
166
|
+
many: "%{count} месяцев"
|
|
167
|
+
other: "%{count} месяцев"
|
|
155
168
|
about_x_years:
|
|
156
|
-
one:
|
|
157
|
-
few:
|
|
158
|
-
many:
|
|
169
|
+
one: "около %{count} года"
|
|
170
|
+
few: "около %{count} лет"
|
|
171
|
+
many: "около %{count} лет"
|
|
159
172
|
other: "около %{count} лет"
|
|
160
173
|
over_x_years:
|
|
161
|
-
one:
|
|
162
|
-
few:
|
|
163
|
-
many:
|
|
174
|
+
one: "больше %{count} года"
|
|
175
|
+
few: "больше %{count} лет"
|
|
176
|
+
many: "больше %{count} лет"
|
|
164
177
|
other: "больше %{count} лет"
|
|
165
178
|
almost_x_years:
|
|
166
|
-
one:
|
|
167
|
-
few:
|
|
168
|
-
many:
|
|
179
|
+
one: "почти %{count} год"
|
|
180
|
+
few: "почти %{count} года"
|
|
181
|
+
many: "почти %{count} лет"
|
|
169
182
|
other: "почти %{count} лет"
|
|
183
|
+
x_years:
|
|
184
|
+
one: "%{count} год"
|
|
185
|
+
few: "%{count} года"
|
|
186
|
+
many: "%{count} лет"
|
|
187
|
+
other: "%{count} лет"
|
|
170
188
|
|
|
171
189
|
prompts:
|
|
172
|
-
year:
|
|
173
|
-
month:
|
|
174
|
-
day:
|
|
175
|
-
hour:
|
|
190
|
+
year: "Год"
|
|
191
|
+
month: "Месяц"
|
|
192
|
+
day: "День"
|
|
193
|
+
hour: "Часов"
|
|
176
194
|
minute: "Минут"
|
|
177
195
|
second: "Секунд"
|
|
178
196
|
|
|
179
|
-
# Используется в хелпере error_messages_for
|
|
197
|
+
# Используется в хелпере error_messages_for.
|
|
180
198
|
activerecord:
|
|
181
199
|
errors:
|
|
182
200
|
template:
|
|
183
201
|
# Заголовок сообщения об ошибке
|
|
184
202
|
header:
|
|
185
|
-
one:
|
|
186
|
-
few:
|
|
187
|
-
many:
|
|
203
|
+
one: "%{model}: сохранение не удалось из-за %{count} ошибки"
|
|
204
|
+
few: "%{model}: сохранение не удалось из-за %{count} ошибок"
|
|
205
|
+
many: "%{model}: сохранение не удалось из-за %{count} ошибок"
|
|
188
206
|
other: "%{model}: сохранение не удалось из-за %{count} ошибки"
|
|
189
207
|
|
|
190
|
-
#
|
|
208
|
+
# The variable :count is also available
|
|
191
209
|
#
|
|
192
210
|
#
|
|
193
|
-
#
|
|
211
|
+
# Первый параграф сообщения об ошибке. Можно использовать
|
|
212
|
+
# макрос %{count}
|
|
194
213
|
body: "Проблемы возникли со следующими полями:"
|
|
195
214
|
|
|
196
215
|
support:
|
|
@@ -203,10 +222,8 @@ ru:
|
|
|
203
222
|
# default value for :prompt => true in FormOptionsHelper
|
|
204
223
|
prompt: "Выберите: "
|
|
205
224
|
|
|
206
|
-
|
|
207
225
|
# Default translation keys for submit FormHelper
|
|
208
226
|
submit:
|
|
209
|
-
create:
|
|
210
|
-
update:
|
|
211
|
-
submit:
|
|
212
|
-
|
|
227
|
+
create: "Создать %{model}"
|
|
228
|
+
update: "Сохранить %{model}"
|
|
229
|
+
submit: "Сохранить %{model}"
|
|
@@ -6,45 +6,52 @@ ru:
|
|
|
6
6
|
inclusion: "имеет непредусмотренное значение"
|
|
7
7
|
exclusion: "имеет зарезервированное значение"
|
|
8
8
|
invalid: "имеет неверное значение"
|
|
9
|
-
confirmation: "не совпадает
|
|
9
|
+
confirmation: "не совпадает со значением поля %{attribute}"
|
|
10
10
|
accepted: "нужно подтвердить"
|
|
11
11
|
empty: "не может быть пустым"
|
|
12
12
|
blank: "не может быть пустым"
|
|
13
|
+
present: "нужно оставить пустым"
|
|
13
14
|
too_long:
|
|
14
|
-
one:
|
|
15
|
-
few:
|
|
16
|
-
many:
|
|
15
|
+
one: "слишком большой длины (не может быть больше чем %{count} символ)"
|
|
16
|
+
few: "слишком большой длины (не может быть больше чем %{count} символа)"
|
|
17
|
+
many: "слишком большой длины (не может быть больше чем %{count} символов)"
|
|
17
18
|
other: "слишком большой длины (не может быть больше чем %{count} символа)"
|
|
18
19
|
too_short:
|
|
19
|
-
one:
|
|
20
|
-
few:
|
|
21
|
-
many:
|
|
20
|
+
one: "недостаточной длины (не может быть меньше %{count} символа)"
|
|
21
|
+
few: "недостаточной длины (не может быть меньше %{count} символов)"
|
|
22
|
+
many: "недостаточной длины (не может быть меньше %{count} символов)"
|
|
22
23
|
other: "недостаточной длины (не может быть меньше %{count} символа)"
|
|
23
24
|
wrong_length:
|
|
24
|
-
one:
|
|
25
|
-
few:
|
|
26
|
-
many:
|
|
25
|
+
one: "неверной длины (может быть длиной ровно %{count} символ)"
|
|
26
|
+
few: "неверной длины (может быть длиной ровно %{count} символа)"
|
|
27
|
+
many: "неверной длины (может быть длиной ровно %{count} символов)"
|
|
27
28
|
other: "неверной длины (может быть длиной ровно %{count} символа)"
|
|
28
29
|
taken: "уже существует"
|
|
29
30
|
not_a_number: "не является числом"
|
|
30
31
|
not_an_integer: "не является целым числом"
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
in: "должно быть в диапазоне %{count}"
|
|
33
|
+
other_than: "должно отличаться от %{count}"
|
|
34
|
+
required: "не может отсутствовать"
|
|
35
|
+
greater_than: "может иметь значение больше %{count}"
|
|
36
|
+
greater_than_or_equal_to: "может иметь значение не меньше %{count}"
|
|
33
37
|
equal_to: "может иметь лишь значение, равное %{count}"
|
|
34
|
-
less_than: "может иметь значение
|
|
35
|
-
less_than_or_equal_to: "может иметь значение
|
|
36
|
-
odd: "может иметь лишь
|
|
37
|
-
even: "может иметь лишь
|
|
38
|
+
less_than: "может иметь значение меньше %{count}"
|
|
39
|
+
less_than_or_equal_to: "может иметь значение не больше %{count}"
|
|
40
|
+
odd: "может иметь лишь нечетное значение"
|
|
41
|
+
even: "может иметь лишь четное значение"
|
|
42
|
+
model_invalid: "Возникли ошибки: %{errors}"
|
|
38
43
|
record_invalid: "Возникли ошибки: %{errors}"
|
|
39
|
-
|
|
44
|
+
|
|
40
45
|
template:
|
|
41
46
|
# Заголовок сообщения об ошибке
|
|
42
47
|
header:
|
|
43
|
-
one:
|
|
44
|
-
few:
|
|
45
|
-
many:
|
|
48
|
+
one: "%{model}: сохранение не удалось из-за %{count} ошибки"
|
|
49
|
+
few: "%{model}: сохранение не удалось из-за %{count} ошибок"
|
|
50
|
+
many: "%{model}: сохранение не удалось из-за %{count} ошибок"
|
|
46
51
|
other: "%{model}: сохранение не удалось из-за %{count} ошибки"
|
|
47
52
|
|
|
48
|
-
# Первый параграф сообщения об ошибке. Можно использовать макрос %{count}
|
|
49
53
|
# The variable :count is also available
|
|
54
|
+
#
|
|
55
|
+
#
|
|
56
|
+
# Первый параграф сообщения об ошибке. Можно использовать макрос %{count}
|
|
50
57
|
body: "Проблемы возникли со следующими полями:"
|
|
@@ -1,95 +1,100 @@
|
|
|
1
1
|
ru:
|
|
2
2
|
activerecord:
|
|
3
|
+
# ActiveRecord validation messages
|
|
4
|
+
#
|
|
3
5
|
# Сообщения об ошибке (валидации) ActiveRecord
|
|
4
6
|
errors:
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
# Также можно использовать сообщения, начинающиеся с "^" -- в этом случае
|
|
10
|
-
# в списке ошибок валидации перед конкретным сообщением не будет выводиться имя атрибута.
|
|
11
|
-
#
|
|
7
|
+
# The values :model, :attribute and :value are always available
|
|
8
|
+
# for interpolation.
|
|
9
|
+
# The value :count is available when applicable. Can be
|
|
10
|
+
# used for pluralization.
|
|
12
11
|
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
12
|
+
# You can use ^-prefixed messages as well to get rid of human
|
|
13
|
+
# attribute name appearing before your message in validation messages.
|
|
15
14
|
#
|
|
16
|
-
#
|
|
17
|
-
#
|
|
15
|
+
# #
|
|
16
|
+
# Для всех сообщений доступны макросы %{model}, {{attribute}}, {{value}}.
|
|
17
|
+
# Для некоторых доступен макрос %{count} — в этом случае можно задать
|
|
18
|
+
# несколько вариантов сообщения (плюрализация).
|
|
19
|
+
# Также можно использовать сообщения, начинающиеся с "^" — в этом случае
|
|
20
|
+
# в списке ошибок валидации перед конкретным сообщением
|
|
21
|
+
# не будет выводиться имя атрибута.
|
|
18
22
|
messages:
|
|
19
23
|
inclusion: "имеет непредусмотренное значение"
|
|
20
24
|
exclusion: "имеет зарезервированное значение"
|
|
21
25
|
invalid: "имеет неверное значение"
|
|
22
|
-
confirmation: "не совпадает
|
|
26
|
+
confirmation: "не совпадает со значением поля %{attribute}"
|
|
23
27
|
accepted: "нужно подтвердить"
|
|
24
28
|
empty: "не может быть пустым"
|
|
25
29
|
blank: "не может быть пустым"
|
|
26
30
|
too_long:
|
|
27
|
-
one:
|
|
28
|
-
few:
|
|
29
|
-
many:
|
|
31
|
+
one: "слишком большой длины (не может быть больше чем %{count} символ)"
|
|
32
|
+
few: "слишком большой длины (не может быть больше чем %{count} символа)"
|
|
33
|
+
many: "слишком большой длины (не может быть больше чем %{count} символов)"
|
|
30
34
|
other: "слишком большой длины (не может быть больше чем %{count} символа)"
|
|
31
35
|
too_short:
|
|
32
|
-
one:
|
|
33
|
-
few:
|
|
34
|
-
many:
|
|
36
|
+
one: "недостаточной длины (не может быть меньше %{count} символа)"
|
|
37
|
+
few: "недостаточной длины (не может быть меньше %{count} символов)"
|
|
38
|
+
many: "недостаточной длины (не может быть меньше %{count} символов)"
|
|
35
39
|
other: "недостаточной длины (не может быть меньше %{count} символа)"
|
|
36
40
|
wrong_length:
|
|
37
|
-
one:
|
|
38
|
-
few:
|
|
39
|
-
many:
|
|
41
|
+
one: "неверной длины (может быть длиной ровно %{count} символ)"
|
|
42
|
+
few: "неверной длины (может быть длиной ровно %{count} символа)"
|
|
43
|
+
many: "неверной длины (может быть длиной ровно %{count} символов)"
|
|
40
44
|
other: "неверной длины (может быть длиной ровно %{count} символа)"
|
|
41
45
|
taken: "уже существует"
|
|
42
46
|
not_a_number: "не является числом"
|
|
43
|
-
greater_than: "может иметь лишь значение
|
|
44
|
-
greater_than_or_equal_to: "может иметь лишь значение
|
|
47
|
+
greater_than: "может иметь лишь значение больше %{count}"
|
|
48
|
+
greater_than_or_equal_to: "может иметь лишь значение не меньше %{count}"
|
|
45
49
|
equal_to: "может иметь лишь значение, равное %{count}"
|
|
46
|
-
less_than: "может иметь лишь значение
|
|
47
|
-
less_than_or_equal_to: "может иметь значение
|
|
48
|
-
odd: "может иметь лишь
|
|
49
|
-
even: "может иметь лишь
|
|
50
|
+
less_than: "может иметь лишь значение меньше %{count}"
|
|
51
|
+
less_than_or_equal_to: "может иметь лишь значение не больше %{count}"
|
|
52
|
+
odd: "может иметь лишь нечетное значение"
|
|
53
|
+
even: "может иметь лишь четное значение"
|
|
50
54
|
record_invalid: "Возникли ошибки: %{errors}"
|
|
55
|
+
restrict_dependent_destroy:
|
|
56
|
+
has_one: "Невозможно удалить запись, так как существует зависимость: %{record}"
|
|
57
|
+
has_many: "Невозможно удалить запись, так как существуют зависимости: %{record}"
|
|
51
58
|
|
|
52
59
|
full_messages:
|
|
53
60
|
format: "%{attribute} %{message}"
|
|
54
61
|
|
|
55
|
-
#
|
|
62
|
+
# Append your own errors here or at the model/attributes scope.
|
|
56
63
|
#
|
|
57
64
|
#
|
|
58
|
-
#
|
|
65
|
+
# Можно добавить собственные сообщения об ошибке тут или задавать их в контексте атрибута.
|
|
59
66
|
#
|
|
60
67
|
#
|
|
61
68
|
# Например,
|
|
62
69
|
# models:
|
|
63
70
|
# user:
|
|
64
|
-
# # Задает сообщение об ошибке (пустое значение) для
|
|
71
|
+
# # Задает сообщение об ошибке (пустое значение) для
|
|
72
|
+
# # атрибутов модели User
|
|
65
73
|
# # Можно использовать макросы %{model}, {{attribute}}.
|
|
66
|
-
# # Также можно использовать сообщения,
|
|
67
|
-
# #
|
|
74
|
+
# # Также можно использовать сообщения,
|
|
75
|
+
# # начинающиеся с "^" — в этом случае в списке ошибок валидации
|
|
76
|
+
# # перед конкретным сообщением не будет выводиться имя атрибута.
|
|
68
77
|
# blank: "собственное сообщение об ошибке (пустой атрибут) для модели %{model} и атрибута {{attribute}}"
|
|
69
78
|
# attributes:
|
|
70
|
-
# # Также можно задавать собственные сообщения об ошибке
|
|
71
|
-
# #
|
|
79
|
+
# # Также можно задавать собственные сообщения об ошибке
|
|
80
|
+
# # для конкретных атрибутов модели.
|
|
81
|
+
# # Ниже определим собственное сообщение об ошибке для
|
|
82
|
+
# # атрибута name модели User.
|
|
72
83
|
# name:
|
|
73
84
|
# blank: "Атрибут %{attribute} особенный -- у него свое сообщение об ошибке при пустом атрибуте"
|
|
74
85
|
models:
|
|
75
86
|
|
|
76
87
|
# Перевод названий моделей. Используется в Model.human_name().
|
|
77
88
|
#
|
|
78
|
-
#models:
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
#
|
|
87
|
-
#
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
# name: "Имя"
|
|
91
|
-
# переведет атрибут name модели User как "Имя".
|
|
92
|
-
#
|
|
93
|
-
#
|
|
94
|
-
# Overrides model and default messages.
|
|
95
|
-
|
|
89
|
+
# models:
|
|
90
|
+
# Например,
|
|
91
|
+
# user: "Пользователь"
|
|
92
|
+
# переведет модель User как "Пользователь".
|
|
93
|
+
|
|
94
|
+
# Перевод названий атрибутов моделей. Используется в
|
|
95
|
+
# Model.human_attribute_name(attribute).
|
|
96
|
+
# attributes:
|
|
97
|
+
# Например,
|
|
98
|
+
# user:
|
|
99
|
+
# name: "Имя"
|
|
100
|
+
# переведет атрибут name модели User как "Имя".
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
ru:
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
2
|
+
# Used in array.to_sentence.
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Используется в array.to_sentence
|
|
6
6
|
support:
|
|
7
7
|
array:
|
|
8
|
-
# Rails 2.2
|
|
9
8
|
sentence_connector: "и"
|
|
10
9
|
skip_last_comma: true
|
|
11
|
-
|
|
12
|
-
# Rails 2.3
|
|
10
|
+
|
|
13
11
|
words_connector: ", "
|
|
14
12
|
two_words_connector: " и "
|
|
15
13
|
last_word_connector: " и "
|
|
16
|
-
|
|
@@ -1,39 +1,49 @@
|
|
|
1
|
-
#
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
# Context-based month name and day name switching for Russian
|
|
4
4
|
#
|
|
5
|
-
#
|
|
5
|
+
#
|
|
6
|
+
# Названия месяцев и дней недели в зависимости от контекста
|
|
7
|
+
# ("01 декабря", но "Декабрь 1985")
|
|
6
8
|
{
|
|
7
|
-
:
|
|
8
|
-
:
|
|
9
|
-
:
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
ru: {
|
|
10
|
+
date: {
|
|
11
|
+
abbr_day_names: lambda do |_value = nil, **options|
|
|
12
|
+
format = options[:format]
|
|
13
|
+
|
|
14
|
+
if format && Russian::LOCALIZE_STANDALONE_ABBR_DAY_NAMES_MATCH.match?(format)
|
|
15
|
+
:"date.common_abbr_day_names"
|
|
12
16
|
else
|
|
13
|
-
:
|
|
17
|
+
:"date.standalone_abbr_day_names"
|
|
14
18
|
end
|
|
15
|
-
|
|
16
|
-
:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
end,
|
|
20
|
+
day_names: lambda do |_value = nil, **options|
|
|
21
|
+
format = options[:format]
|
|
22
|
+
|
|
23
|
+
if format && Russian::LOCALIZE_STANDALONE_DAY_NAMES_MATCH.match?(format)
|
|
24
|
+
:"date.standalone_day_names"
|
|
19
25
|
else
|
|
20
|
-
:
|
|
26
|
+
:"date.common_day_names"
|
|
21
27
|
end
|
|
22
|
-
|
|
23
|
-
:
|
|
24
|
-
|
|
25
|
-
|
|
28
|
+
end,
|
|
29
|
+
abbr_month_names: lambda do |_value = nil, **options|
|
|
30
|
+
format = options[:format]
|
|
31
|
+
|
|
32
|
+
if format && Russian::LOCALIZE_ABBR_MONTH_NAMES_MATCH.match?(format)
|
|
33
|
+
:"date.common_abbr_month_names"
|
|
26
34
|
else
|
|
27
|
-
:
|
|
35
|
+
:"date.standalone_abbr_month_names"
|
|
28
36
|
end
|
|
29
|
-
|
|
30
|
-
:
|
|
31
|
-
|
|
32
|
-
|
|
37
|
+
end,
|
|
38
|
+
month_names: lambda do |_value = nil, **options|
|
|
39
|
+
format = options[:format]
|
|
40
|
+
|
|
41
|
+
if format && Russian::LOCALIZE_MONTH_NAMES_MATCH.match?(format)
|
|
42
|
+
:"date.common_month_names"
|
|
33
43
|
else
|
|
34
|
-
:
|
|
44
|
+
:"date.standalone_month_names"
|
|
35
45
|
end
|
|
36
|
-
|
|
46
|
+
end
|
|
37
47
|
}
|
|
38
48
|
}
|
|
39
49
|
}
|