biovision-base 0.5.170614

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 (271) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +42 -0
  4. data/Rakefile +26 -0
  5. data/app/assets/config/biovision_base_manifest.js +0 -0
  6. data/app/assets/images/biovision/base/icons/alert.svg +15 -0
  7. data/app/assets/images/biovision/base/icons/back.svg +28 -0
  8. data/app/assets/images/biovision/base/icons/create.svg +1 -0
  9. data/app/assets/images/biovision/base/icons/destroy.svg +3 -0
  10. data/app/assets/images/biovision/base/icons/edit.svg +22 -0
  11. data/app/assets/images/biovision/base/icons/exit.svg +1 -0
  12. data/app/assets/images/biovision/base/icons/foreign/facebook.svg +1 -0
  13. data/app/assets/images/biovision/base/icons/gear.svg +4 -0
  14. data/app/assets/images/biovision/base/icons/lock-closed.svg +1 -0
  15. data/app/assets/images/biovision/base/icons/lock-open.svg +1 -0
  16. data/app/assets/images/biovision/base/icons/notice.svg +1 -0
  17. data/app/assets/images/biovision/base/icons/return.svg +1 -0
  18. data/app/assets/images/biovision/base/icons/warning.svg +43 -0
  19. data/app/assets/images/biovision/base/icons/world.svg +4 -0
  20. data/app/assets/images/biovision/base/placeholders/image.svg +19 -0
  21. data/app/assets/images/biovision/base/placeholders/photo.svg +23 -0
  22. data/app/assets/images/biovision/base/placeholders/user.svg +21 -0
  23. data/app/assets/javascripts/biovision/base/biovision.js +238 -0
  24. data/app/assets/stylesheets/biovision/base/admin.scss +58 -0
  25. data/app/assets/stylesheets/biovision/base/biovision.scss +472 -0
  26. data/app/assets/stylesheets/biovision/base/buttons.scss +90 -0
  27. data/app/assets/stylesheets/biovision/base/default.scss +45 -0
  28. data/app/assets/stylesheets/biovision/base/filters.scss +53 -0
  29. data/app/assets/stylesheets/biovision/base/fonts.scss +9 -0
  30. data/app/assets/stylesheets/biovision/base/message-box.scss +60 -0
  31. data/app/assets/stylesheets/biovision/base/pagination.scss +42 -0
  32. data/app/assets/stylesheets/biovision/base/tootik.scss +385 -0
  33. data/app/assets/stylesheets/biovision/base/track.scss +28 -0
  34. data/app/controllers/admin/agents_controller.rb +30 -0
  35. data/app/controllers/admin/browsers_controller.rb +30 -0
  36. data/app/controllers/admin/codes_controller.rb +25 -0
  37. data/app/controllers/admin/editable_pages_controller.rb +25 -0
  38. data/app/controllers/admin/index_controller.rb +5 -0
  39. data/app/controllers/admin/metrics_controller.rb +29 -0
  40. data/app/controllers/admin/privilege_groups_controller.rb +48 -0
  41. data/app/controllers/admin/privileges_controller.rb +5 -0
  42. data/app/controllers/admin/tokens_controller.rb +28 -0
  43. data/app/controllers/admin/users_controller.rb +87 -0
  44. data/app/controllers/admin_controller.rb +10 -0
  45. data/app/controllers/agents_controller.rb +67 -0
  46. data/app/controllers/authentication_controller.rb +70 -0
  47. data/app/controllers/browsers_controller.rb +63 -0
  48. data/app/controllers/codes_controller.rb +60 -0
  49. data/app/controllers/concerns/authentication.rb +19 -0
  50. data/app/controllers/concerns/biovision/admin/privileges.rb +34 -0
  51. data/app/controllers/concerns/entity_priority.rb +7 -0
  52. data/app/controllers/concerns/lockable_entity.rb +23 -0
  53. data/app/controllers/concerns/toggleable_entity.rb +7 -0
  54. data/app/controllers/editable_pages_controller.rb +60 -0
  55. data/app/controllers/index_controller.rb +5 -0
  56. data/app/controllers/metrics_controller.rb +33 -0
  57. data/app/controllers/my/confirmations_controller.rb +37 -0
  58. data/app/controllers/my/index_controller.rb +7 -0
  59. data/app/controllers/my/profiles_controller.rb +81 -0
  60. data/app/controllers/my/recoveries_controller.rb +68 -0
  61. data/app/controllers/privilege_groups_controller.rb +57 -0
  62. data/app/controllers/privileges_controller.rb +74 -0
  63. data/app/controllers/profiles_controller.rb +22 -0
  64. data/app/controllers/tokens_controller.rb +60 -0
  65. data/app/controllers/users_controller.rb +57 -0
  66. data/app/helpers/biovision_helper.rb +81 -0
  67. data/app/helpers/biovision_users_helper.rb +52 -0
  68. data/app/helpers/codes_helper.rb +10 -0
  69. data/app/helpers/editable_pages_helper.rb +20 -0
  70. data/app/helpers/privileges_helper.rb +11 -0
  71. data/app/helpers/tracking_helper.rb +17 -0
  72. data/app/jobs/application_job.rb +7 -0
  73. data/app/jobs/clean_tokens_job.rb +8 -0
  74. data/app/mailers/code_sender.rb +15 -0
  75. data/app/models/agent.rb +38 -0
  76. data/app/models/application_record.rb +3 -0
  77. data/app/models/browser.rb +22 -0
  78. data/app/models/code.rb +58 -0
  79. data/app/models/code_type.rb +11 -0
  80. data/app/models/concerns/biovision/privilege_base.rb +143 -0
  81. data/app/models/concerns/biovision/user_base.rb +124 -0
  82. data/app/models/concerns/biovision/user_privilege_base.rb +46 -0
  83. data/app/models/concerns/has_owner.rb +19 -0
  84. data/app/models/concerns/required_unique_name.rb +13 -0
  85. data/app/models/concerns/required_unique_slug.rb +12 -0
  86. data/app/models/concerns/toggleable.rb +29 -0
  87. data/app/models/editable_page.rb +30 -0
  88. data/app/models/foreign_site.rb +75 -0
  89. data/app/models/foreign_user.rb +26 -0
  90. data/app/models/metric.rb +67 -0
  91. data/app/models/metric_value.rb +15 -0
  92. data/app/models/privilege.rb +3 -0
  93. data/app/models/privilege_group.rb +50 -0
  94. data/app/models/privilege_group_privilege.rb +6 -0
  95. data/app/models/token.rb +75 -0
  96. data/app/models/user.rb +3 -0
  97. data/app/models/user_privilege.rb +3 -0
  98. data/app/services/canonizer.rb +29 -0
  99. data/app/services/code_manager.rb +16 -0
  100. data/app/services/code_manager/confirmation.rb +26 -0
  101. data/app/services/code_manager/invitation.rb +27 -0
  102. data/app/services/code_manager/recovery.rb +31 -0
  103. data/app/uploaders/avatar_uploader.rb +62 -0
  104. data/app/uploaders/editable_page_image_uploader.rb +38 -0
  105. data/app/views/admin/agents/_filter.html.erb +16 -0
  106. data/app/views/admin/agents/_list.html.erb +17 -0
  107. data/app/views/admin/agents/_nav_item.html.erb +6 -0
  108. data/app/views/admin/agents/_toggleable.html.erb +7 -0
  109. data/app/views/admin/agents/entity/_in_list.html.erb +13 -0
  110. data/app/views/admin/agents/index.html.erb +17 -0
  111. data/app/views/admin/agents/show.html.erb +28 -0
  112. data/app/views/admin/browsers/_list.html.erb +17 -0
  113. data/app/views/admin/browsers/_nav_item.html.erb +6 -0
  114. data/app/views/admin/browsers/_toggleable.html.erb +7 -0
  115. data/app/views/admin/browsers/agents/_add.html.erb +79 -0
  116. data/app/views/admin/browsers/entity/_in_list.html.erb +13 -0
  117. data/app/views/admin/browsers/index.html.erb +17 -0
  118. data/app/views/admin/browsers/show.html.erb +29 -0
  119. data/app/views/admin/codes/_list.html.erb +11 -0
  120. data/app/views/admin/codes/_nav_item.html.erb +6 -0
  121. data/app/views/admin/codes/entity/_in_list.html.erb +24 -0
  122. data/app/views/admin/codes/index.html.erb +16 -0
  123. data/app/views/admin/codes/show.html.erb +51 -0
  124. data/app/views/admin/editable_pages/_list.html.erb +11 -0
  125. data/app/views/admin/editable_pages/_nav_item.html.erb +6 -0
  126. data/app/views/admin/editable_pages/entity/_in_list.html.erb +13 -0
  127. data/app/views/admin/editable_pages/index.html.erb +14 -0
  128. data/app/views/admin/editable_pages/show.html.erb +47 -0
  129. data/app/views/admin/index/index.html.erb +25 -0
  130. data/app/views/admin/metrics/_list.html.erb +26 -0
  131. data/app/views/admin/metrics/_nav_item.html.erb +6 -0
  132. data/app/views/admin/metrics/data.jbuilder +6 -0
  133. data/app/views/admin/metrics/index.html.erb +14 -0
  134. data/app/views/admin/metrics/show.html.erb +52 -0
  135. data/app/views/admin/privilege_groups/_list.html.erb +11 -0
  136. data/app/views/admin/privilege_groups/_nav_item.html.erb +6 -0
  137. data/app/views/admin/privilege_groups/entity/_in_list.html.erb +10 -0
  138. data/app/views/admin/privilege_groups/index.html.erb +14 -0
  139. data/app/views/admin/privilege_groups/show.html.erb +31 -0
  140. data/app/views/admin/privileges/_list.html.erb +15 -0
  141. data/app/views/admin/privileges/_nav_item.html.erb +6 -0
  142. data/app/views/admin/privileges/entity/_groups.html.erb +34 -0
  143. data/app/views/admin/privileges/entity/_in_list.html.erb +25 -0
  144. data/app/views/admin/privileges/index.html.erb +20 -0
  145. data/app/views/admin/privileges/show.html.erb +66 -0
  146. data/app/views/admin/privileges/users.html.erb +24 -0
  147. data/app/views/admin/tokens/_filter.html.erb +17 -0
  148. data/app/views/admin/tokens/_list.html.erb +11 -0
  149. data/app/views/admin/tokens/_nav_item.html.erb +6 -0
  150. data/app/views/admin/tokens/_toggleable.html.erb +7 -0
  151. data/app/views/admin/tokens/entity/_in_list.html.erb +25 -0
  152. data/app/views/admin/tokens/index.html.erb +19 -0
  153. data/app/views/admin/tokens/show.html.erb +43 -0
  154. data/app/views/admin/users/_filter.html.erb +22 -0
  155. data/app/views/admin/users/_list.html.erb +17 -0
  156. data/app/views/admin/users/_nav_item.html.erb +6 -0
  157. data/app/views/admin/users/_search.html.erb +5 -0
  158. data/app/views/admin/users/_toggleable.html.erb +7 -0
  159. data/app/views/admin/users/codes.html.erb +24 -0
  160. data/app/views/admin/users/entity/_in_list.html.erb +24 -0
  161. data/app/views/admin/users/entity/_privilege.html.erb +10 -0
  162. data/app/views/admin/users/entity/_privilege_tree.html.erb +17 -0
  163. data/app/views/admin/users/index.html.erb +19 -0
  164. data/app/views/admin/users/privileges.html.erb +35 -0
  165. data/app/views/admin/users/search.jbuilder +10 -0
  166. data/app/views/admin/users/search/_results.html.erb +11 -0
  167. data/app/views/admin/users/show.html.erb +94 -0
  168. data/app/views/admin/users/tokens.html.erb +24 -0
  169. data/app/views/agents/_agent.jbuilder +20 -0
  170. data/app/views/agents/_filter.html.erb +53 -0
  171. data/app/views/agents/_form.html.erb +33 -0
  172. data/app/views/agents/edit.html.erb +17 -0
  173. data/app/views/agents/index.jbuilder +5 -0
  174. data/app/views/agents/new.html.erb +15 -0
  175. data/app/views/agents/show.jbuilder +3 -0
  176. data/app/views/application/not_found.html.erb +9 -0
  177. data/app/views/application/not_found.jbuilder +3 -0
  178. data/app/views/application/service_unavailable.html.erb +9 -0
  179. data/app/views/application/unauthorized.html.erb +11 -0
  180. data/app/views/application/unauthorized.jbuilder +3 -0
  181. data/app/views/authentication/_form.html.erb +16 -0
  182. data/app/views/authentication/_info.html.erb +8 -0
  183. data/app/views/authentication/new.html.erb +10 -0
  184. data/app/views/browsers/_form.html.erb +28 -0
  185. data/app/views/browsers/edit.html.erb +17 -0
  186. data/app/views/browsers/new.html.erb +15 -0
  187. data/app/views/code_sender/email.text.erb +9 -0
  188. data/app/views/code_sender/password.text.erb +10 -0
  189. data/app/views/codes/_form.html.erb +49 -0
  190. data/app/views/codes/edit.html.erb +17 -0
  191. data/app/views/codes/new.html.erb +15 -0
  192. data/app/views/editable_pages/_form.html.erb +63 -0
  193. data/app/views/editable_pages/edit.html.erb +17 -0
  194. data/app/views/editable_pages/form/_ckeditor.html.erb +11 -0
  195. data/app/views/editable_pages/new.html.erb +15 -0
  196. data/app/views/index/index.html.erb +5 -0
  197. data/app/views/layouts/admin.html.erb +23 -0
  198. data/app/views/layouts/admin/_footer.html.erb +0 -0
  199. data/app/views/layouts/admin/_header.html.erb +11 -0
  200. data/app/views/layouts/admin/header/_logo.html.erb +3 -0
  201. data/app/views/metrics/_form.html.erb +41 -0
  202. data/app/views/metrics/edit.html.erb +17 -0
  203. data/app/views/metrics/index.jbuilder +7 -0
  204. data/app/views/metrics/show.jbuilder +3 -0
  205. data/app/views/my/confirmations/show.html.erb +30 -0
  206. data/app/views/my/index/index.html.erb +17 -0
  207. data/app/views/my/profiles/edit.html.erb +10 -0
  208. data/app/views/my/profiles/edit/_form.html.erb +70 -0
  209. data/app/views/my/profiles/new.html.erb +7 -0
  210. data/app/views/my/profiles/new/_form.html.erb +34 -0
  211. data/app/views/my/profiles/show.html.erb +3 -0
  212. data/app/views/my/recoveries/show.html.erb +39 -0
  213. data/app/views/privilege_groups/_form.html.erb +25 -0
  214. data/app/views/privilege_groups/edit.html.erb +17 -0
  215. data/app/views/privilege_groups/new.html.erb +15 -0
  216. data/app/views/privileges/_form.html.erb +42 -0
  217. data/app/views/privileges/edit.html.erb +21 -0
  218. data/app/views/privileges/new.html.erb +14 -0
  219. data/app/views/profiles/_profile.html.erb +48 -0
  220. data/app/views/profiles/show.html.erb +4 -0
  221. data/app/views/shared/_flash_messages.html.erb +7 -0
  222. data/app/views/shared/_list_of_errors.html.erb +11 -0
  223. data/app/views/shared/_meta_texts.html.erb +17 -0
  224. data/app/views/shared/_nothing_found.html.erb +1 -0
  225. data/app/views/shared/_track.html.erb +10 -0
  226. data/app/views/shared/actions/_locks.html.erb +4 -0
  227. data/app/views/shared/actions/_priority_changer.html.erb +4 -0
  228. data/app/views/shared/admin/_breadcrumbs.html.erb +6 -0
  229. data/app/views/shared/editable_pages/_body.html.erb +12 -0
  230. data/app/views/shared/filter/_flag.html.erb +17 -0
  231. data/app/views/tokens/_form.html.erb +30 -0
  232. data/app/views/tokens/edit.html.erb +17 -0
  233. data/app/views/tokens/new.html.erb +15 -0
  234. data/app/views/users/_form.html.erb +78 -0
  235. data/app/views/users/edit.html.erb +18 -0
  236. data/app/views/users/new.html.erb +15 -0
  237. data/config/initializers/carrierwave.rb +22 -0
  238. data/config/initializers/pluralization.rb +2 -0
  239. data/config/locales/common-ru.yml +96 -0
  240. data/config/locales/editable-pages-ru.yml +43 -0
  241. data/config/locales/plurals.rb +17 -0
  242. data/config/locales/track-ru.yml +102 -0
  243. data/config/locales/users-ru.yml +324 -0
  244. data/config/routes.rb +92 -0
  245. data/db/migrate/20170301000001_create_metrics.rb +23 -0
  246. data/db/migrate/20170301000002_create_metric_values.rb +19 -0
  247. data/db/migrate/20170301000101_create_browsers.rb +22 -0
  248. data/db/migrate/20170301000102_create_agents.rb +22 -0
  249. data/db/migrate/20170302000001_create_users.rb +52 -0
  250. data/db/migrate/20170302000002_create_tokens.rb +23 -0
  251. data/db/migrate/20170302000003_create_code_types.rb +20 -0
  252. data/db/migrate/20170302000004_create_codes.rb +24 -0
  253. data/db/migrate/20170302000101_create_privileges.rb +34 -0
  254. data/db/migrate/20170302000102_create_user_privileges.rb +17 -0
  255. data/db/migrate/20170302000103_create_privilege_groups.rb +23 -0
  256. data/db/migrate/20170302000104_create_privilege_group_privileges.rb +24 -0
  257. data/db/migrate/20170320000000_create_editable_pages.rb +22 -0
  258. data/db/migrate/20170425000001_create_foreign_sites.rb +18 -0
  259. data/db/migrate/20170425000002_create_foreign_users.rb +23 -0
  260. data/lib/biovision/base.rb +9 -0
  261. data/lib/biovision/base/base_methods.rb +96 -0
  262. data/lib/biovision/base/engine.rb +17 -0
  263. data/lib/biovision/base/privilege_methods.rb +35 -0
  264. data/lib/biovision/base/version.rb +5 -0
  265. data/lib/tasks/biovision/agents.rake +38 -0
  266. data/lib/tasks/biovision/base_tasks.rake +4 -0
  267. data/lib/tasks/biovision/browsers.rake +38 -0
  268. data/lib/tasks/biovision/codes.rake +49 -0
  269. data/lib/tasks/biovision/tokens.rake +54 -0
  270. data/lib/tasks/biovision/users.rake +67 -0
  271. 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: "Жизненная позиция"