biovision-base 0.5.170614
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +42 -0
- data/Rakefile +26 -0
- data/app/assets/config/biovision_base_manifest.js +0 -0
- data/app/assets/images/biovision/base/icons/alert.svg +15 -0
- data/app/assets/images/biovision/base/icons/back.svg +28 -0
- data/app/assets/images/biovision/base/icons/create.svg +1 -0
- data/app/assets/images/biovision/base/icons/destroy.svg +3 -0
- data/app/assets/images/biovision/base/icons/edit.svg +22 -0
- data/app/assets/images/biovision/base/icons/exit.svg +1 -0
- data/app/assets/images/biovision/base/icons/foreign/facebook.svg +1 -0
- data/app/assets/images/biovision/base/icons/gear.svg +4 -0
- data/app/assets/images/biovision/base/icons/lock-closed.svg +1 -0
- data/app/assets/images/biovision/base/icons/lock-open.svg +1 -0
- data/app/assets/images/biovision/base/icons/notice.svg +1 -0
- data/app/assets/images/biovision/base/icons/return.svg +1 -0
- data/app/assets/images/biovision/base/icons/warning.svg +43 -0
- data/app/assets/images/biovision/base/icons/world.svg +4 -0
- data/app/assets/images/biovision/base/placeholders/image.svg +19 -0
- data/app/assets/images/biovision/base/placeholders/photo.svg +23 -0
- data/app/assets/images/biovision/base/placeholders/user.svg +21 -0
- data/app/assets/javascripts/biovision/base/biovision.js +238 -0
- data/app/assets/stylesheets/biovision/base/admin.scss +58 -0
- data/app/assets/stylesheets/biovision/base/biovision.scss +472 -0
- data/app/assets/stylesheets/biovision/base/buttons.scss +90 -0
- data/app/assets/stylesheets/biovision/base/default.scss +45 -0
- data/app/assets/stylesheets/biovision/base/filters.scss +53 -0
- data/app/assets/stylesheets/biovision/base/fonts.scss +9 -0
- data/app/assets/stylesheets/biovision/base/message-box.scss +60 -0
- data/app/assets/stylesheets/biovision/base/pagination.scss +42 -0
- data/app/assets/stylesheets/biovision/base/tootik.scss +385 -0
- data/app/assets/stylesheets/biovision/base/track.scss +28 -0
- data/app/controllers/admin/agents_controller.rb +30 -0
- data/app/controllers/admin/browsers_controller.rb +30 -0
- data/app/controllers/admin/codes_controller.rb +25 -0
- data/app/controllers/admin/editable_pages_controller.rb +25 -0
- data/app/controllers/admin/index_controller.rb +5 -0
- data/app/controllers/admin/metrics_controller.rb +29 -0
- data/app/controllers/admin/privilege_groups_controller.rb +48 -0
- data/app/controllers/admin/privileges_controller.rb +5 -0
- data/app/controllers/admin/tokens_controller.rb +28 -0
- data/app/controllers/admin/users_controller.rb +87 -0
- data/app/controllers/admin_controller.rb +10 -0
- data/app/controllers/agents_controller.rb +67 -0
- data/app/controllers/authentication_controller.rb +70 -0
- data/app/controllers/browsers_controller.rb +63 -0
- data/app/controllers/codes_controller.rb +60 -0
- data/app/controllers/concerns/authentication.rb +19 -0
- data/app/controllers/concerns/biovision/admin/privileges.rb +34 -0
- data/app/controllers/concerns/entity_priority.rb +7 -0
- data/app/controllers/concerns/lockable_entity.rb +23 -0
- data/app/controllers/concerns/toggleable_entity.rb +7 -0
- data/app/controllers/editable_pages_controller.rb +60 -0
- data/app/controllers/index_controller.rb +5 -0
- data/app/controllers/metrics_controller.rb +33 -0
- data/app/controllers/my/confirmations_controller.rb +37 -0
- data/app/controllers/my/index_controller.rb +7 -0
- data/app/controllers/my/profiles_controller.rb +81 -0
- data/app/controllers/my/recoveries_controller.rb +68 -0
- data/app/controllers/privilege_groups_controller.rb +57 -0
- data/app/controllers/privileges_controller.rb +74 -0
- data/app/controllers/profiles_controller.rb +22 -0
- data/app/controllers/tokens_controller.rb +60 -0
- data/app/controllers/users_controller.rb +57 -0
- data/app/helpers/biovision_helper.rb +81 -0
- data/app/helpers/biovision_users_helper.rb +52 -0
- data/app/helpers/codes_helper.rb +10 -0
- data/app/helpers/editable_pages_helper.rb +20 -0
- data/app/helpers/privileges_helper.rb +11 -0
- data/app/helpers/tracking_helper.rb +17 -0
- data/app/jobs/application_job.rb +7 -0
- data/app/jobs/clean_tokens_job.rb +8 -0
- data/app/mailers/code_sender.rb +15 -0
- data/app/models/agent.rb +38 -0
- data/app/models/application_record.rb +3 -0
- data/app/models/browser.rb +22 -0
- data/app/models/code.rb +58 -0
- data/app/models/code_type.rb +11 -0
- data/app/models/concerns/biovision/privilege_base.rb +143 -0
- data/app/models/concerns/biovision/user_base.rb +124 -0
- data/app/models/concerns/biovision/user_privilege_base.rb +46 -0
- data/app/models/concerns/has_owner.rb +19 -0
- data/app/models/concerns/required_unique_name.rb +13 -0
- data/app/models/concerns/required_unique_slug.rb +12 -0
- data/app/models/concerns/toggleable.rb +29 -0
- data/app/models/editable_page.rb +30 -0
- data/app/models/foreign_site.rb +75 -0
- data/app/models/foreign_user.rb +26 -0
- data/app/models/metric.rb +67 -0
- data/app/models/metric_value.rb +15 -0
- data/app/models/privilege.rb +3 -0
- data/app/models/privilege_group.rb +50 -0
- data/app/models/privilege_group_privilege.rb +6 -0
- data/app/models/token.rb +75 -0
- data/app/models/user.rb +3 -0
- data/app/models/user_privilege.rb +3 -0
- data/app/services/canonizer.rb +29 -0
- data/app/services/code_manager.rb +16 -0
- data/app/services/code_manager/confirmation.rb +26 -0
- data/app/services/code_manager/invitation.rb +27 -0
- data/app/services/code_manager/recovery.rb +31 -0
- data/app/uploaders/avatar_uploader.rb +62 -0
- data/app/uploaders/editable_page_image_uploader.rb +38 -0
- data/app/views/admin/agents/_filter.html.erb +16 -0
- data/app/views/admin/agents/_list.html.erb +17 -0
- data/app/views/admin/agents/_nav_item.html.erb +6 -0
- data/app/views/admin/agents/_toggleable.html.erb +7 -0
- data/app/views/admin/agents/entity/_in_list.html.erb +13 -0
- data/app/views/admin/agents/index.html.erb +17 -0
- data/app/views/admin/agents/show.html.erb +28 -0
- data/app/views/admin/browsers/_list.html.erb +17 -0
- data/app/views/admin/browsers/_nav_item.html.erb +6 -0
- data/app/views/admin/browsers/_toggleable.html.erb +7 -0
- data/app/views/admin/browsers/agents/_add.html.erb +79 -0
- data/app/views/admin/browsers/entity/_in_list.html.erb +13 -0
- data/app/views/admin/browsers/index.html.erb +17 -0
- data/app/views/admin/browsers/show.html.erb +29 -0
- data/app/views/admin/codes/_list.html.erb +11 -0
- data/app/views/admin/codes/_nav_item.html.erb +6 -0
- data/app/views/admin/codes/entity/_in_list.html.erb +24 -0
- data/app/views/admin/codes/index.html.erb +16 -0
- data/app/views/admin/codes/show.html.erb +51 -0
- data/app/views/admin/editable_pages/_list.html.erb +11 -0
- data/app/views/admin/editable_pages/_nav_item.html.erb +6 -0
- data/app/views/admin/editable_pages/entity/_in_list.html.erb +13 -0
- data/app/views/admin/editable_pages/index.html.erb +14 -0
- data/app/views/admin/editable_pages/show.html.erb +47 -0
- data/app/views/admin/index/index.html.erb +25 -0
- data/app/views/admin/metrics/_list.html.erb +26 -0
- data/app/views/admin/metrics/_nav_item.html.erb +6 -0
- data/app/views/admin/metrics/data.jbuilder +6 -0
- data/app/views/admin/metrics/index.html.erb +14 -0
- data/app/views/admin/metrics/show.html.erb +52 -0
- data/app/views/admin/privilege_groups/_list.html.erb +11 -0
- data/app/views/admin/privilege_groups/_nav_item.html.erb +6 -0
- data/app/views/admin/privilege_groups/entity/_in_list.html.erb +10 -0
- data/app/views/admin/privilege_groups/index.html.erb +14 -0
- data/app/views/admin/privilege_groups/show.html.erb +31 -0
- data/app/views/admin/privileges/_list.html.erb +15 -0
- data/app/views/admin/privileges/_nav_item.html.erb +6 -0
- data/app/views/admin/privileges/entity/_groups.html.erb +34 -0
- data/app/views/admin/privileges/entity/_in_list.html.erb +25 -0
- data/app/views/admin/privileges/index.html.erb +20 -0
- data/app/views/admin/privileges/show.html.erb +66 -0
- data/app/views/admin/privileges/users.html.erb +24 -0
- data/app/views/admin/tokens/_filter.html.erb +17 -0
- data/app/views/admin/tokens/_list.html.erb +11 -0
- data/app/views/admin/tokens/_nav_item.html.erb +6 -0
- data/app/views/admin/tokens/_toggleable.html.erb +7 -0
- data/app/views/admin/tokens/entity/_in_list.html.erb +25 -0
- data/app/views/admin/tokens/index.html.erb +19 -0
- data/app/views/admin/tokens/show.html.erb +43 -0
- data/app/views/admin/users/_filter.html.erb +22 -0
- data/app/views/admin/users/_list.html.erb +17 -0
- data/app/views/admin/users/_nav_item.html.erb +6 -0
- data/app/views/admin/users/_search.html.erb +5 -0
- data/app/views/admin/users/_toggleable.html.erb +7 -0
- data/app/views/admin/users/codes.html.erb +24 -0
- data/app/views/admin/users/entity/_in_list.html.erb +24 -0
- data/app/views/admin/users/entity/_privilege.html.erb +10 -0
- data/app/views/admin/users/entity/_privilege_tree.html.erb +17 -0
- data/app/views/admin/users/index.html.erb +19 -0
- data/app/views/admin/users/privileges.html.erb +35 -0
- data/app/views/admin/users/search.jbuilder +10 -0
- data/app/views/admin/users/search/_results.html.erb +11 -0
- data/app/views/admin/users/show.html.erb +94 -0
- data/app/views/admin/users/tokens.html.erb +24 -0
- data/app/views/agents/_agent.jbuilder +20 -0
- data/app/views/agents/_filter.html.erb +53 -0
- data/app/views/agents/_form.html.erb +33 -0
- data/app/views/agents/edit.html.erb +17 -0
- data/app/views/agents/index.jbuilder +5 -0
- data/app/views/agents/new.html.erb +15 -0
- data/app/views/agents/show.jbuilder +3 -0
- data/app/views/application/not_found.html.erb +9 -0
- data/app/views/application/not_found.jbuilder +3 -0
- data/app/views/application/service_unavailable.html.erb +9 -0
- data/app/views/application/unauthorized.html.erb +11 -0
- data/app/views/application/unauthorized.jbuilder +3 -0
- data/app/views/authentication/_form.html.erb +16 -0
- data/app/views/authentication/_info.html.erb +8 -0
- data/app/views/authentication/new.html.erb +10 -0
- data/app/views/browsers/_form.html.erb +28 -0
- data/app/views/browsers/edit.html.erb +17 -0
- data/app/views/browsers/new.html.erb +15 -0
- data/app/views/code_sender/email.text.erb +9 -0
- data/app/views/code_sender/password.text.erb +10 -0
- data/app/views/codes/_form.html.erb +49 -0
- data/app/views/codes/edit.html.erb +17 -0
- data/app/views/codes/new.html.erb +15 -0
- data/app/views/editable_pages/_form.html.erb +63 -0
- data/app/views/editable_pages/edit.html.erb +17 -0
- data/app/views/editable_pages/form/_ckeditor.html.erb +11 -0
- data/app/views/editable_pages/new.html.erb +15 -0
- data/app/views/index/index.html.erb +5 -0
- data/app/views/layouts/admin.html.erb +23 -0
- data/app/views/layouts/admin/_footer.html.erb +0 -0
- data/app/views/layouts/admin/_header.html.erb +11 -0
- data/app/views/layouts/admin/header/_logo.html.erb +3 -0
- data/app/views/metrics/_form.html.erb +41 -0
- data/app/views/metrics/edit.html.erb +17 -0
- data/app/views/metrics/index.jbuilder +7 -0
- data/app/views/metrics/show.jbuilder +3 -0
- data/app/views/my/confirmations/show.html.erb +30 -0
- data/app/views/my/index/index.html.erb +17 -0
- data/app/views/my/profiles/edit.html.erb +10 -0
- data/app/views/my/profiles/edit/_form.html.erb +70 -0
- data/app/views/my/profiles/new.html.erb +7 -0
- data/app/views/my/profiles/new/_form.html.erb +34 -0
- data/app/views/my/profiles/show.html.erb +3 -0
- data/app/views/my/recoveries/show.html.erb +39 -0
- data/app/views/privilege_groups/_form.html.erb +25 -0
- data/app/views/privilege_groups/edit.html.erb +17 -0
- data/app/views/privilege_groups/new.html.erb +15 -0
- data/app/views/privileges/_form.html.erb +42 -0
- data/app/views/privileges/edit.html.erb +21 -0
- data/app/views/privileges/new.html.erb +14 -0
- data/app/views/profiles/_profile.html.erb +48 -0
- data/app/views/profiles/show.html.erb +4 -0
- data/app/views/shared/_flash_messages.html.erb +7 -0
- data/app/views/shared/_list_of_errors.html.erb +11 -0
- data/app/views/shared/_meta_texts.html.erb +17 -0
- data/app/views/shared/_nothing_found.html.erb +1 -0
- data/app/views/shared/_track.html.erb +10 -0
- data/app/views/shared/actions/_locks.html.erb +4 -0
- data/app/views/shared/actions/_priority_changer.html.erb +4 -0
- data/app/views/shared/admin/_breadcrumbs.html.erb +6 -0
- data/app/views/shared/editable_pages/_body.html.erb +12 -0
- data/app/views/shared/filter/_flag.html.erb +17 -0
- data/app/views/tokens/_form.html.erb +30 -0
- data/app/views/tokens/edit.html.erb +17 -0
- data/app/views/tokens/new.html.erb +15 -0
- data/app/views/users/_form.html.erb +78 -0
- data/app/views/users/edit.html.erb +18 -0
- data/app/views/users/new.html.erb +15 -0
- data/config/initializers/carrierwave.rb +22 -0
- data/config/initializers/pluralization.rb +2 -0
- data/config/locales/common-ru.yml +96 -0
- data/config/locales/editable-pages-ru.yml +43 -0
- data/config/locales/plurals.rb +17 -0
- data/config/locales/track-ru.yml +102 -0
- data/config/locales/users-ru.yml +324 -0
- data/config/routes.rb +92 -0
- data/db/migrate/20170301000001_create_metrics.rb +23 -0
- data/db/migrate/20170301000002_create_metric_values.rb +19 -0
- data/db/migrate/20170301000101_create_browsers.rb +22 -0
- data/db/migrate/20170301000102_create_agents.rb +22 -0
- data/db/migrate/20170302000001_create_users.rb +52 -0
- data/db/migrate/20170302000002_create_tokens.rb +23 -0
- data/db/migrate/20170302000003_create_code_types.rb +20 -0
- data/db/migrate/20170302000004_create_codes.rb +24 -0
- data/db/migrate/20170302000101_create_privileges.rb +34 -0
- data/db/migrate/20170302000102_create_user_privileges.rb +17 -0
- data/db/migrate/20170302000103_create_privilege_groups.rb +23 -0
- data/db/migrate/20170302000104_create_privilege_group_privileges.rb +24 -0
- data/db/migrate/20170320000000_create_editable_pages.rb +22 -0
- data/db/migrate/20170425000001_create_foreign_sites.rb +18 -0
- data/db/migrate/20170425000002_create_foreign_users.rb +23 -0
- data/lib/biovision/base.rb +9 -0
- data/lib/biovision/base/base_methods.rb +96 -0
- data/lib/biovision/base/engine.rb +17 -0
- data/lib/biovision/base/privilege_methods.rb +35 -0
- data/lib/biovision/base/version.rb +5 -0
- data/lib/tasks/biovision/agents.rake +38 -0
- data/lib/tasks/biovision/base_tasks.rake +4 -0
- data/lib/tasks/biovision/browsers.rake +38 -0
- data/lib/tasks/biovision/codes.rake +49 -0
- data/lib/tasks/biovision/tokens.rake +54 -0
- data/lib/tasks/biovision/users.rake +67 -0
- metadata +467 -0
@@ -0,0 +1,43 @@
|
|
1
|
+
ru:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
editable_page: "Редактируемая страница"
|
5
|
+
attributes:
|
6
|
+
editable_page:
|
7
|
+
name: "Название"
|
8
|
+
slug: "Идентификатор"
|
9
|
+
image: "Картинка"
|
10
|
+
title: "Заголовок"
|
11
|
+
keywords: "Ключевые слова"
|
12
|
+
description: "Метаописание"
|
13
|
+
body: "Содержимое"
|
14
|
+
admin:
|
15
|
+
editable_pages:
|
16
|
+
nav_item:
|
17
|
+
text: "Редактируемые страницы"
|
18
|
+
description: "Управление редактируемыми страницами"
|
19
|
+
index:
|
20
|
+
title: "Редактируемые страницы"
|
21
|
+
heading: "Редактируемые страницы"
|
22
|
+
show:
|
23
|
+
title: "Редактируемая страница «%{name}»"
|
24
|
+
editable_pages:
|
25
|
+
new:
|
26
|
+
title: "Новая редактируемая страница"
|
27
|
+
heading: "Новая редактируемая страница"
|
28
|
+
edit:
|
29
|
+
title: "Редактирование редактируемой страницы"
|
30
|
+
heading: "Редактирование редактируемой страницы"
|
31
|
+
update:
|
32
|
+
success: "Редактируемая страница успешно изменера"
|
33
|
+
destroy:
|
34
|
+
success: "Редактируемая страница успешно удалена"
|
35
|
+
form:
|
36
|
+
guidelines:
|
37
|
+
image: "Картинка в формате JPG или PNG размером около 640×640 для иллюстрации при расшаривании."
|
38
|
+
slug: "Используется для вставки внутри сайта. Максимум 100 символов."
|
39
|
+
name: "Внутреннее название для удобства. Максимум 100 символов."
|
40
|
+
title: "Будет отображаться в заголовке окна. Максимум 250 символов."
|
41
|
+
keywords: "Значение для meta keywords (для поисковых роботов). Максимум 250 символов."
|
42
|
+
description: "Метаописание для поисковых роботов, результатов поиска и расшаривания. Максимум 250 символов."
|
43
|
+
body: "HTML для вставки внутри сайта. Максимум 64кБ текста."
|
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
ru: {
|
3
|
+
i18n: {
|
4
|
+
plural: {
|
5
|
+
rule: ->(n) {
|
6
|
+
if n % 10 == 1 && n % 100 != 11
|
7
|
+
:one
|
8
|
+
elsif (2..4).include?(n % 10) && !(12..14).include?(n % 100)
|
9
|
+
:few
|
10
|
+
else
|
11
|
+
n % 10 == 0 || (5..9).include?(n % 10) || (11..14).include?(n % 100) ? :many : :other
|
12
|
+
end
|
13
|
+
}
|
14
|
+
}
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
@@ -0,0 +1,102 @@
|
|
1
|
+
ru:
|
2
|
+
agent_count:
|
3
|
+
zero: "агентов пользователя нет"
|
4
|
+
one: "%{count} агент пользователя"
|
5
|
+
few: "%{count} агента пользователя"
|
6
|
+
many: "%{count} агентов пользователя"
|
7
|
+
other: "%{count} агентов пользователя"
|
8
|
+
activerecord:
|
9
|
+
models:
|
10
|
+
agent: "Агент пользователя"
|
11
|
+
browser: "Браузер"
|
12
|
+
metric: "Метрика"
|
13
|
+
metric_value: "Значение метрики"
|
14
|
+
attributes:
|
15
|
+
agent:
|
16
|
+
browser_id: "Браузер"
|
17
|
+
mobile: "Мобильный"
|
18
|
+
bot: "Бот"
|
19
|
+
active: "Активный"
|
20
|
+
name: "Название"
|
21
|
+
browser:
|
22
|
+
mobile: "Мобильный"
|
23
|
+
bot: "Бот"
|
24
|
+
active: "Активный"
|
25
|
+
name: "Название"
|
26
|
+
metric:
|
27
|
+
incremental: "Суммарная"
|
28
|
+
start_with_zero: "Начинать с нуля"
|
29
|
+
default_period: "Период по умолчанию"
|
30
|
+
show_on_dashboard: "Показывать на главной странице"
|
31
|
+
value: "Значение"
|
32
|
+
previous_value: "Предыдущее значение"
|
33
|
+
name: "Название"
|
34
|
+
description: "Описание"
|
35
|
+
metric_value:
|
36
|
+
metric: "Метрика"
|
37
|
+
quantity: "Количество"
|
38
|
+
admin:
|
39
|
+
agents:
|
40
|
+
nav_item:
|
41
|
+
text: "Агенты пользователя"
|
42
|
+
description: "Управление агентами пользователя"
|
43
|
+
index:
|
44
|
+
title: "Агенты пользователя, страница %{page}"
|
45
|
+
heading: "Агенты пользователя"
|
46
|
+
show:
|
47
|
+
title: "Агент пользователя «%{name}»"
|
48
|
+
browsers:
|
49
|
+
nav_item:
|
50
|
+
text: "Браузеры"
|
51
|
+
description: "Управление браузерами"
|
52
|
+
index:
|
53
|
+
title: "Браузеры, страница %{page}"
|
54
|
+
heading: "Браузеры"
|
55
|
+
show:
|
56
|
+
title: "Браузер «%{name}»"
|
57
|
+
metrics:
|
58
|
+
nav_item:
|
59
|
+
text: "Метрики"
|
60
|
+
description: "Анализ различных метрик"
|
61
|
+
index:
|
62
|
+
title: "Метрики"
|
63
|
+
heading: "Метрики"
|
64
|
+
show:
|
65
|
+
title: "Метрика «%{name}»"
|
66
|
+
agents:
|
67
|
+
new:
|
68
|
+
title: "Создание агента пользователя"
|
69
|
+
heading: "Новый агент пользователя"
|
70
|
+
edit:
|
71
|
+
title: "Редактирование агента пользователя"
|
72
|
+
heading: "Редактирование агента пользователя"
|
73
|
+
forbidden: "Редактирование этого агента пользователя запрещено"
|
74
|
+
update:
|
75
|
+
success: "Агент пользователя успешно изменён"
|
76
|
+
destroy:
|
77
|
+
success: "Агент пользователя успешно удалён"
|
78
|
+
browsers:
|
79
|
+
new:
|
80
|
+
title: "Создание браузера"
|
81
|
+
heading: "Новый браузер"
|
82
|
+
edit:
|
83
|
+
title: "Редактирование браузера"
|
84
|
+
heading: "Редактирование браузера"
|
85
|
+
forbidden: "Редактирование этого браузера запрещено"
|
86
|
+
update:
|
87
|
+
success: "Браузер успешно изменён"
|
88
|
+
destroy:
|
89
|
+
success: "Браузер успешно удалён"
|
90
|
+
metrics:
|
91
|
+
edit:
|
92
|
+
title: "Редактирование метрики"
|
93
|
+
heading: "Редактирование метрики"
|
94
|
+
update:
|
95
|
+
success: "Метрика успешно обновлена"
|
96
|
+
form:
|
97
|
+
guidelines:
|
98
|
+
description: "Максимум 250 символов."
|
99
|
+
default_period: "Количество дней на графике."
|
100
|
+
tracking:
|
101
|
+
ip: "IP"
|
102
|
+
agent: "АП"
|
@@ -0,0 +1,324 @@
|
|
1
|
+
ru:
|
2
|
+
user_count:
|
3
|
+
zero: "пользователей нет"
|
4
|
+
one: "%{count} пользователь"
|
5
|
+
few: "%{count} пользователя"
|
6
|
+
many: "%{count} пользователей"
|
7
|
+
other: "%{count} пользователей"
|
8
|
+
code_activation_count:
|
9
|
+
zero: "активаций нет"
|
10
|
+
one: "%{count} активация"
|
11
|
+
few: "%{count} активации"
|
12
|
+
many: "%{count} активаций"
|
13
|
+
other: "%{count} активаций"
|
14
|
+
invalid_code: "Недействительный код"
|
15
|
+
could_not_log_in: "Не удалось выполнить вход"
|
16
|
+
logout: "Выйти"
|
17
|
+
email_already_confirmed: "Электронная почта уже подтверждена"
|
18
|
+
anonymous: "Анонимно"
|
19
|
+
activerecord:
|
20
|
+
models:
|
21
|
+
user: "Пользователь"
|
22
|
+
foreign_site: "Внешний сайт"
|
23
|
+
foreign_user: "Внешний пользователь"
|
24
|
+
code_type: "Тип кода"
|
25
|
+
code: "Код"
|
26
|
+
token: "Жетон доступа"
|
27
|
+
privilege: "Привилегия"
|
28
|
+
privilege_group: "Группа привилегий"
|
29
|
+
privilege_group_privilege: "Привилегия в группе привилегий"
|
30
|
+
user_privilege: "Привилегия у пользователя"
|
31
|
+
errors:
|
32
|
+
models:
|
33
|
+
user:
|
34
|
+
attributes:
|
35
|
+
email:
|
36
|
+
unreasonable: "не выглядит как email"
|
37
|
+
slug:
|
38
|
+
invalid: "должен содержать от 1 до 30 латинских букв, цифр или знаков подчёркивания"
|
39
|
+
attributes:
|
40
|
+
user:
|
41
|
+
ip: "IP-адрес при регистрации"
|
42
|
+
agent: "Агент пользователя при регистрации"
|
43
|
+
slug: "Идентификатор"
|
44
|
+
gender: "Пол"
|
45
|
+
birthday: "Дата рождения"
|
46
|
+
bot: "Это бот"
|
47
|
+
allow_login: "Позволить вход"
|
48
|
+
email_confirmed: "Email подтверждён"
|
49
|
+
phone_confirmed: "Телефон подтверждён"
|
50
|
+
allow_mail: "Разрешить email-уведомления"
|
51
|
+
last_seen: "Последняя активность"
|
52
|
+
password: "Пароль"
|
53
|
+
password_confirmation: "Подтверждение пароля"
|
54
|
+
email: "Email"
|
55
|
+
phone: "Телефон"
|
56
|
+
screen_name: "Логин"
|
57
|
+
name: "Имя"
|
58
|
+
patronymic: "Отчество"
|
59
|
+
surname: "Фамилия"
|
60
|
+
notice: "Заметка"
|
61
|
+
image: "Картинка"
|
62
|
+
foreign_slug: "Идентификатор пришёл извне"
|
63
|
+
genders:
|
64
|
+
female: "Женский"
|
65
|
+
male: "Мужской"
|
66
|
+
foreign_site:
|
67
|
+
slug: "Идентификатор"
|
68
|
+
name: "Название"
|
69
|
+
foreign_user:
|
70
|
+
foreign_site: "Внешний сайт"
|
71
|
+
user: "Внутренний пользователь"
|
72
|
+
agent: "АП при регистрации"
|
73
|
+
ip: "IP-адрес при регистрации"
|
74
|
+
slug: "Идентификатор"
|
75
|
+
name: "Имя"
|
76
|
+
email: "Email"
|
77
|
+
data: "Данные"
|
78
|
+
token:
|
79
|
+
user: "Пользователь"
|
80
|
+
user_id: "Пользователь"
|
81
|
+
last_used: "Последнее использование"
|
82
|
+
active: "Активен"
|
83
|
+
token: "Жетон"
|
84
|
+
code:
|
85
|
+
code_type: "Тип кода"
|
86
|
+
code_type_id: "Тип кода"
|
87
|
+
user: "Пользователь"
|
88
|
+
user_id: "Пользователь"
|
89
|
+
category: "Категория"
|
90
|
+
body: "Код"
|
91
|
+
payload: "Полезная нагрузка"
|
92
|
+
quantity: "Количество активаций"
|
93
|
+
privilege:
|
94
|
+
parent_id: "Родительская категория"
|
95
|
+
priority: "Порядок сортировки"
|
96
|
+
name: "Название"
|
97
|
+
slug: "Идентификатор"
|
98
|
+
description: "Описание"
|
99
|
+
parents_cache: "Кеш родителей"
|
100
|
+
children_cache: "Кеш дочерей"
|
101
|
+
user_privilege:
|
102
|
+
privilege: "Привилегия"
|
103
|
+
user: "Пользователь"
|
104
|
+
privilege_group:
|
105
|
+
name: "Название"
|
106
|
+
slug: "Идентификатор"
|
107
|
+
description: "Описание"
|
108
|
+
privilege_group_privilege:
|
109
|
+
privilege: "Привилегия"
|
110
|
+
privilege_group: "Группа привилегий"
|
111
|
+
admin:
|
112
|
+
users:
|
113
|
+
nav_item:
|
114
|
+
text: "Пользователи"
|
115
|
+
description: "Управление пользователями сайта"
|
116
|
+
index:
|
117
|
+
title: "Пользователи, страница %{page}"
|
118
|
+
heading: "Пользователи"
|
119
|
+
show:
|
120
|
+
title: "Пользователь %{name}"
|
121
|
+
privileges: "Привилегии"
|
122
|
+
authenticate: "Зайти как этот пользователь"
|
123
|
+
tokens:
|
124
|
+
title: "Жетоны пользователя %{user], страница %{page}"
|
125
|
+
heading: "Жетоны доступа"
|
126
|
+
codes:
|
127
|
+
title: "Коды пользователя %{user}, страница %{page}"
|
128
|
+
heading: "Коды"
|
129
|
+
privileges:
|
130
|
+
title: "Привилегии пользователя %{user}"
|
131
|
+
heading: "Привилегии пользователя"
|
132
|
+
tokens:
|
133
|
+
nav_item:
|
134
|
+
text: "Жетоны доступа (сессии пользователей)"
|
135
|
+
description: "Управление сессионными жетонами пользователей"
|
136
|
+
index:
|
137
|
+
title: "Жетоны, страница %{page}"
|
138
|
+
heading: "Жетоны доступа (сессии пользователей)"
|
139
|
+
show:
|
140
|
+
title: "Жетон №%{id}"
|
141
|
+
codes:
|
142
|
+
nav_item:
|
143
|
+
text: "Коды"
|
144
|
+
description: "Управление кодами сброса пароля, подтверждения и приглашения"
|
145
|
+
index:
|
146
|
+
title: "Коды, страница %{page}"
|
147
|
+
heading: "Коды"
|
148
|
+
show:
|
149
|
+
title: "Код «%{body}»"
|
150
|
+
privileges:
|
151
|
+
nav_item:
|
152
|
+
text: "Привилегии пользователей"
|
153
|
+
description: "Управление привилегиями пользователей"
|
154
|
+
index:
|
155
|
+
title: "Привилегии"
|
156
|
+
heading: "Привилегии пользователей"
|
157
|
+
show:
|
158
|
+
title: "Привилегия «%{name}»"
|
159
|
+
children: "Дочерние привилегии"
|
160
|
+
add_child: "Добавить дочернюю привилегию"
|
161
|
+
users:
|
162
|
+
title: "Пользователи с привилегией «%{privilege}», страница %{page}"
|
163
|
+
heading: "Пользователи с привилегией"
|
164
|
+
entity:
|
165
|
+
groups:
|
166
|
+
heading: "Группы привилегий"
|
167
|
+
privilege_groups:
|
168
|
+
nav_item:
|
169
|
+
text: "Группы привилегий"
|
170
|
+
description: "Управление группами привилегий"
|
171
|
+
index:
|
172
|
+
title: "Группы привилегий"
|
173
|
+
heading: "Группы привилегий"
|
174
|
+
show:
|
175
|
+
title: "Группа привилегий «%{name}»"
|
176
|
+
privileges: "Привилегии"
|
177
|
+
authentication:
|
178
|
+
info:
|
179
|
+
logout: "Выйти"
|
180
|
+
new:
|
181
|
+
title: "Вход"
|
182
|
+
breadcrumbs: "Вход"
|
183
|
+
users:
|
184
|
+
create:
|
185
|
+
success: "Пользователь успешно создан"
|
186
|
+
update:
|
187
|
+
success: "Пользователь успешно изменён"
|
188
|
+
destroy:
|
189
|
+
success: "Пользователь успешно удалён"
|
190
|
+
edit:
|
191
|
+
title: "Редактирование пользователя"
|
192
|
+
heading: "Редактирование пользователя"
|
193
|
+
new:
|
194
|
+
title: "Добавить пользователя"
|
195
|
+
heading: "Добавить пользователя"
|
196
|
+
user:
|
197
|
+
account_data: "Данные аккаунта"
|
198
|
+
index:
|
199
|
+
title: "Пользователи сайта, страница %{page}"
|
200
|
+
heading: "Пользователи сайта"
|
201
|
+
profiles:
|
202
|
+
profile:
|
203
|
+
user_info: "Информация о пользователе"
|
204
|
+
registration_date: "Дата регистрации"
|
205
|
+
tokens:
|
206
|
+
update:
|
207
|
+
success: "Жетон успешно обновлён"
|
208
|
+
destroy:
|
209
|
+
success: "Жетон успешно удалён"
|
210
|
+
new:
|
211
|
+
title: "Добавить жетон"
|
212
|
+
edit:
|
213
|
+
title: "Редактирование жетона"
|
214
|
+
codes:
|
215
|
+
update:
|
216
|
+
success: "Код успешно обновлён"
|
217
|
+
destroy:
|
218
|
+
success: "Код успешно удалён"
|
219
|
+
edit:
|
220
|
+
title: "Редактирование кода"
|
221
|
+
new:
|
222
|
+
title: "Новый код"
|
223
|
+
form:
|
224
|
+
guidelines:
|
225
|
+
body: "Максимум 50 символов. Должен быть уникальным."
|
226
|
+
payload: "Зависит от типа кода. Максимум 250 символов."
|
227
|
+
code_sender:
|
228
|
+
email:
|
229
|
+
subject: "Подтверждение адреса электронной почты"
|
230
|
+
password:
|
231
|
+
subject: "Сброс пароля"
|
232
|
+
privileges:
|
233
|
+
new:
|
234
|
+
title: "Новая привилегия"
|
235
|
+
edit:
|
236
|
+
title: "Редактирование привилегии"
|
237
|
+
forbidden: "Редактирование этой привилегии запрещено"
|
238
|
+
update:
|
239
|
+
success: "Привилегия успешно изменена"
|
240
|
+
destroy:
|
241
|
+
success: "Привилегия успешно удалена"
|
242
|
+
form:
|
243
|
+
guidelines:
|
244
|
+
name: "До 250 символов."
|
245
|
+
slug: "Используется в коде для определения наличия привилегии. До 250 символов."
|
246
|
+
description: "Краткое пояснение сути привилегии. До 350 символов."
|
247
|
+
placeholders:
|
248
|
+
slug: "administrator"
|
249
|
+
privilege_groups:
|
250
|
+
new:
|
251
|
+
title: "Новая группа привилегий"
|
252
|
+
heading: "Новая группа привилегий"
|
253
|
+
edit:
|
254
|
+
title: "Редактирование группы привилегий"
|
255
|
+
heading: "Редактирование группы привилегий"
|
256
|
+
update:
|
257
|
+
success: "Группа успешно изменена"
|
258
|
+
destroy:
|
259
|
+
success: "Группа успешно удалена"
|
260
|
+
form:
|
261
|
+
guidelines:
|
262
|
+
slug: "Используется в коде для пользователей."
|
263
|
+
description: "Краткое пояснение сути группы. До 350 символов."
|
264
|
+
placeholders:
|
265
|
+
name: "Редакторы"
|
266
|
+
slug: "editors"
|
267
|
+
my:
|
268
|
+
index:
|
269
|
+
index:
|
270
|
+
title: "Личный кабинет"
|
271
|
+
recoveries:
|
272
|
+
create:
|
273
|
+
impossible: "Сброс пароля для этого пользователя недоступен"
|
274
|
+
completed: "Код сброса пароля отправлен на адрес вашей электронной почты"
|
275
|
+
update:
|
276
|
+
invalid_code: "Введён недействительный код"
|
277
|
+
success: "Пароль успешно сброшен. Вы вошли."
|
278
|
+
show:
|
279
|
+
title: "Сброс пароля"
|
280
|
+
got_code: "Есть код для сброса пароля?"
|
281
|
+
update_password: "Изменить пароль"
|
282
|
+
no_code: "Нет кода для сброса пароля?"
|
283
|
+
send_code: "Отправить код"
|
284
|
+
confirmations:
|
285
|
+
create:
|
286
|
+
set_email: "Пожалуйста, заполните адрес электронной почты"
|
287
|
+
success: "Код подтверждения выслан"
|
288
|
+
update:
|
289
|
+
invalid_code: "Недействительный код"
|
290
|
+
show:
|
291
|
+
title: "Подтвердить адрес электронной почты"
|
292
|
+
got_code: "Есть код подтверждения"
|
293
|
+
confirm: "Подтвердить адрес"
|
294
|
+
no_code: "Кода подтверждения нет?"
|
295
|
+
send_code: "Отправить код подтверждения"
|
296
|
+
profiles:
|
297
|
+
new:
|
298
|
+
title: "Регистрация"
|
299
|
+
form:
|
300
|
+
i_am_bot: "НЕ ОТМЕЧАЙТЕ эту галочку"
|
301
|
+
registration_form: "Форма регистрации"
|
302
|
+
you_accept_terms_of_service: "Регистрируясь на сайте, вы принимаете пользовательское соглашение."
|
303
|
+
create:
|
304
|
+
success: "Вы зарегистрировались и вошли"
|
305
|
+
update:
|
306
|
+
success: "Профиль успешно изменён"
|
307
|
+
show:
|
308
|
+
title: "Мой профиль"
|
309
|
+
heading: "Мой профиль"
|
310
|
+
description: "Просмотр и редактирование вашего профиля"
|
311
|
+
edit:
|
312
|
+
title: "Редактирование профиля"
|
313
|
+
form:
|
314
|
+
common_parameters: "Общие параметры"
|
315
|
+
update_image: "Загрузить новую картинку"
|
316
|
+
sensitive_parameters: "Связанные с безопасностью параметры"
|
317
|
+
sensitive_parameters_notice: "Для изменения этих данных нужно ввести текущий пароль."
|
318
|
+
current_password: "Текущий пароль"
|
319
|
+
leave_blank_if_necessary: "Если не будете менять пароль, оставьте эти поля пустыми."
|
320
|
+
new_password: "Новый пароль"
|
321
|
+
update: "Обновить данные"
|
322
|
+
contact: "Контактные данные"
|
323
|
+
about: "Кратко о себе"
|
324
|
+
stand_in_life: "Жизненная позиция"
|