biovision 0.0.200518.1
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/MIT-LICENSE +20 -0
- data/README.md +214 -0
- data/Rakefile +22 -0
- data/app/assets/config/biovision_manifest.js +1 -0
- data/app/assets/images/biovision/components/carousel/arrow-left.svg +4 -0
- data/app/assets/images/biovision/components/carousel/arrow-right.svg +4 -0
- data/app/assets/images/biovision/icons/breadcrumb-hover.svg +1 -0
- data/app/assets/images/biovision/icons/breadcrumb.svg +1 -0
- data/app/assets/images/biovision/icons/components/contact.svg +26 -0
- data/app/assets/images/biovision/icons/components/content.svg +20 -0
- data/app/assets/images/biovision/icons/components/users.svg +21 -0
- data/app/assets/images/biovision/icons/key.svg +16 -0
- data/app/assets/images/biovision/icons/log_in.svg +15 -0
- data/app/assets/images/biovision/icons/log_out.svg +15 -0
- data/app/assets/images/biovision/icons/messages/error.svg +14 -0
- data/app/assets/images/biovision/icons/messages/info.svg +8 -0
- data/app/assets/images/biovision/icons/messages/success.svg +12 -0
- data/app/assets/images/biovision/icons/messages/warning.svg +13 -0
- data/app/assets/images/biovision/icons/settings.svg +41 -0
- data/app/assets/images/biovision/placeholders/16x9.svg +11 -0
- data/app/assets/images/biovision/placeholders/1x1.svg +11 -0
- data/app/assets/images/biovision/placeholders/3x2.svg +11 -0
- data/app/assets/images/biovision/placeholders/user.svg +15 -0
- data/app/assets/stylesheets/biovision/admin.scss +6 -0
- data/app/assets/stylesheets/biovision/admin/components.scss +59 -0
- data/app/assets/stylesheets/biovision/admin/default.scss +57 -0
- data/app/assets/stylesheets/biovision/admin/layout.scss +95 -0
- data/app/assets/stylesheets/biovision/admin/vars.scss +56 -0
- data/app/assets/stylesheets/biovision/biovision.scss +134 -0
- data/app/assets/stylesheets/biovision/biovision/messages.scss +41 -0
- data/app/assets/stylesheets/biovision/components/carousel.scss +53 -0
- data/app/assets/stylesheets/biovision/components/forms.scss +85 -0
- data/app/assets/stylesheets/biovision/components/hamburger.scss +56 -0
- data/app/assets/stylesheets/biovision/components/lists.scss +91 -0
- data/app/assets/stylesheets/biovision/default.scss +57 -0
- data/app/assets/stylesheets/biovision/themes/default_theme.scss +2 -0
- data/app/assets/stylesheets/biovision/themes/default_theme/components.scss +3 -0
- data/app/assets/stylesheets/biovision/themes/default_theme/layout.scss +44 -0
- data/app/assets/stylesheets/biovision/themes/default_theme/layout/footer.scss +0 -0
- data/app/assets/stylesheets/biovision/themes/default_theme/layout/header.scss +39 -0
- data/app/assets/stylesheets/biovision/vars.scss +53 -0
- data/app/controllers/admin/agents_controller.rb +15 -0
- data/app/controllers/admin/components_controller.rb +174 -0
- data/app/controllers/admin/index_controller.rb +11 -0
- data/app/controllers/admin/ip_addresses_controller.rb +15 -0
- data/app/controllers/admin_controller.rb +14 -0
- data/app/controllers/authentication_controller.rb +79 -0
- data/app/controllers/concerns/authentication.rb +45 -0
- data/app/controllers/index_controller.rb +8 -0
- data/app/controllers/my/confirmations_controller.rb +2 -0
- data/app/controllers/my/index_controller.rb +8 -0
- data/app/controllers/my/profiles_controller.rb +128 -0
- data/app/controllers/my/recoveries_controller.rb +2 -0
- data/app/helpers/biovision_components_helper.rb +14 -0
- data/app/helpers/users_helper.rb +11 -0
- data/app/lib/biovision/components/base_component.rb +177 -0
- data/app/lib/biovision/components/component_settings.rb +30 -0
- data/app/lib/biovision/components/privilege_handler.rb +77 -0
- data/app/lib/biovision/components/track_component.rb +9 -0
- data/app/lib/biovision/components/users/authentication.rb +47 -0
- data/app/lib/biovision/components/users/code_handler.rb +23 -0
- data/app/lib/biovision/components/users/profile_handler.rb +12 -0
- data/app/lib/biovision/components/users/registration_handler.rb +99 -0
- data/app/lib/biovision/components/users_component.rb +47 -0
- data/app/lib/biovision/notifiers/base_notifier.rb +69 -0
- data/app/lib/biovision/notifiers/socialization_notifier.rb +31 -0
- data/app/lib/biovision/notifiers/users_notifier.rb +15 -0
- data/app/models/agent.rb +35 -0
- data/app/models/biovision_component.rb +45 -0
- data/app/models/biovision_component_user.rb +21 -0
- data/app/models/browser.rb +34 -0
- data/app/models/code.rb +71 -0
- data/app/models/concerns/checkable.rb +22 -0
- data/app/models/concerns/flat_priority.rb +50 -0
- data/app/models/concerns/has_language.rb +10 -0
- data/app/models/concerns/has_owner.rb +22 -0
- data/app/models/concerns/has_simple_image.rb +18 -0
- data/app/models/concerns/has_track.rb +10 -0
- data/app/models/concerns/has_uuid.rb +12 -0
- data/app/models/concerns/meta_texts.rb +16 -0
- data/app/models/concerns/nested_priority.rb +58 -0
- data/app/models/concerns/required_unique_name.rb +16 -0
- data/app/models/concerns/required_unique_slug.rb +15 -0
- data/app/models/concerns/toggleable.rb +33 -0
- data/app/models/foreign_site.rb +34 -0
- data/app/models/foreign_user.rb +21 -0
- data/app/models/ip_address.rb +31 -0
- data/app/models/language.rb +31 -0
- data/app/models/login_attempt.rb +35 -0
- data/app/models/metric.rb +48 -0
- data/app/models/metric_value.rb +11 -0
- data/app/models/notification.rb +37 -0
- data/app/models/simple_image.rb +47 -0
- data/app/models/simple_image_tag.rb +30 -0
- data/app/models/simple_image_tag_image.rb +13 -0
- data/app/models/token.rb +96 -0
- data/app/models/user.rb +136 -0
- data/app/models/user_language.rb +15 -0
- data/app/uploaders/simple_image_uploader.rb +96 -0
- data/app/uploaders/user_image_uploader.rb +58 -0
- data/app/views/admin/agents/_nav_item.html.erb +6 -0
- data/app/views/admin/agents/entity/_in_list.html.erb +6 -0
- data/app/views/admin/agents/index.html.erb +13 -0
- data/app/views/admin/components/_list.html.erb +12 -0
- data/app/views/admin/components/entity/_links.html.erb +35 -0
- data/app/views/admin/components/entity/_section.html.erb +12 -0
- data/app/views/admin/components/index.html.erb +12 -0
- data/app/views/admin/components/links/_track.html.erb +2 -0
- data/app/views/admin/components/links/_users.html.erb +11 -0
- data/app/views/admin/components/privileges.html.erb +20 -0
- data/app/views/admin/components/privileges/_component_user.html.erb +17 -0
- data/app/views/admin/components/privileges/_links.html.erb +35 -0
- data/app/views/admin/components/privileges/_privilege_flag.html.erb +28 -0
- data/app/views/admin/components/privileges/_users.html.erb +23 -0
- data/app/views/admin/components/settings.html.erb +39 -0
- data/app/views/admin/components/settings/_new_parameter.html.erb +46 -0
- data/app/views/admin/components/settings/_parameters.html.erb +20 -0
- data/app/views/admin/components/settings/_setting.html.erb +18 -0
- data/app/views/admin/components/settings/_settings.html.erb +31 -0
- data/app/views/admin/components/show.html.erb +14 -0
- data/app/views/admin/index/index.html.erb +14 -0
- data/app/views/admin/ip_addresses/_nav_item.html.erb +6 -0
- data/app/views/admin/ip_addresses/entity/_in_list.html.erb +6 -0
- data/app/views/admin/ip_addresses/index.html.erb +13 -0
- data/app/views/admin/unauthorized.html.erb +19 -0
- data/app/views/authentication/_form.html.erb +40 -0
- data/app/views/authentication/failed.js.erb +3 -0
- data/app/views/authentication/new.html.erb +21 -0
- data/app/views/index/index.html.erb +0 -0
- data/app/views/layouts/admin.html.erb +23 -0
- data/app/views/layouts/admin/_breadcrumbs.html.erb +8 -0
- data/app/views/layouts/admin/_footer.html.erb +10 -0
- data/app/views/layouts/admin/_header.html.erb +18 -0
- data/app/views/layouts/admin/header/_logo.html.erb +3 -0
- data/app/views/layouts/application/_footer.html.erb +8 -0
- data/app/views/layouts/application/_header.html.erb +9 -0
- data/app/views/layouts/application/header/_authentication.html.erb +13 -0
- data/app/views/my/index/index.html.erb +0 -0
- data/app/views/my/profiles/closed.html.erb +12 -0
- data/app/views/my/profiles/new.html.erb +17 -0
- data/app/views/my/profiles/new/_form.html.erb +147 -0
- data/app/views/shared/_breadcrumbs.html.erb +8 -0
- data/app/views/shared/_cookie_notification.html.erb +4 -0
- data/app/views/shared/_flash_messages.html.erb +7 -0
- data/app/views/shared/_meta_texts.html.erb +31 -0
- data/app/views/shared/_nothing_found.html.erb +1 -0
- data/app/views/shared/_pagination.jbuilder +15 -0
- data/app/views/shared/admin/_list.html.erb +19 -0
- data/app/views/shared/admin/_list_with_priority.html.erb +19 -0
- data/app/views/shared/admin/_toggleable.html.erb +8 -0
- data/app/views/shared/entity/_list_of_errors.html.erb +7 -0
- data/app/views/shared/forms/errors.js.erb +5 -0
- data/config/initializers/carrierwave.rb +27 -0
- data/config/initializers/pluralization.rb +2 -0
- data/config/locales/biovision-ru.yml +90 -0
- data/config/locales/components-ru.yml +81 -0
- data/config/locales/track-ru.yml +40 -0
- data/config/locales/users-ru.yml +130 -0
- data/config/routes.rb +75 -0
- data/db/migrate/20191228000000_create_biovision_components.rb +72 -0
- data/db/migrate/20200224000000_create_track_component.rb +59 -0
- data/db/migrate/20200224000010_create_users_component.rb +189 -0
- data/db/migrate/20200404000000_create_simple_images.rb +54 -0
- data/lib/biovision.rb +9 -0
- data/lib/biovision/base_methods.rb +167 -0
- data/lib/biovision/engine.rb +40 -0
- data/lib/biovision/version.rb +5 -0
- data/lib/tasks/biovision_tasks.rake +4 -0
- metadata +392 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<% if content_for? :meta_description %>
|
|
2
|
+
<meta name="description" content="<%= yield :meta_description %>" />
|
|
3
|
+
<% end %>
|
|
4
|
+
<% if content_for? :meta_keywords %>
|
|
5
|
+
<meta name="keywords" content="<%= yield :meta_keywords %>" />
|
|
6
|
+
<% end %>
|
|
7
|
+
<% if content_for? :meta_opengraph %>
|
|
8
|
+
<%= yield :meta_opengraph %>
|
|
9
|
+
<% else %>
|
|
10
|
+
<meta property="og:url" content="<%= url_for(only_path: false) %>" />
|
|
11
|
+
<meta property="og:title" content="<%= content_for :meta_title %>" />
|
|
12
|
+
<meta property="og:type" content="<%= content_for?(:meta_type) ? (yield :meta_type) : 'website' %>" />
|
|
13
|
+
<% if content_for? :meta_image %>
|
|
14
|
+
<meta property="og:image" content="<%= yield :meta_image %>" />
|
|
15
|
+
<% if content_for? :meta_image_alt %>
|
|
16
|
+
<meta property="og:image:alt" content="<%= yield :meta_image_alt %>" />
|
|
17
|
+
<% end %>
|
|
18
|
+
<% end %>
|
|
19
|
+
<%= yield :meta_type_extension if content_for? :meta_type_extension %>
|
|
20
|
+
<% if content_for? :meta_description %>
|
|
21
|
+
<meta property="og:description" content="<%= yield :meta_description %>" />
|
|
22
|
+
<% end %>
|
|
23
|
+
<% end %>
|
|
24
|
+
<% if content_for? :meta_twitter %>
|
|
25
|
+
<%= yield :meta_twitter %>
|
|
26
|
+
<% else %>
|
|
27
|
+
<meta property="twitter:title" content="<%= content_for :meta_title %>" />
|
|
28
|
+
<% if content_for? :meta_image %>
|
|
29
|
+
<meta name="twitter:image" content="<%= yield :meta_image %>" />
|
|
30
|
+
<% end %>
|
|
31
|
+
<% end %>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<div class="message-box info"><%= t(:nothing_found) %></div>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
if collection.respond_to?(:current_page)
|
|
2
|
+
qp = request.query_parameters.merge(format: :json)
|
|
3
|
+
|
|
4
|
+
json.links do
|
|
5
|
+
json.self url_for(qp.merge(page: collection.current_page))
|
|
6
|
+
json.first url_for(qp.merge(page: 1))
|
|
7
|
+
unless collection.prev_page.nil?
|
|
8
|
+
json.prev url_for(qp.merge(page: collection.prev_page))
|
|
9
|
+
end
|
|
10
|
+
unless collection.next_page.nil?
|
|
11
|
+
json.next url_for(qp.merge(page: collection.next_page))
|
|
12
|
+
end
|
|
13
|
+
json.last url_for(qp.merge(page: collection.total_pages))
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<% if collection.any? %>
|
|
2
|
+
<ul class="list-of-entities">
|
|
3
|
+
<% collection.each do |entity| %>
|
|
4
|
+
<li data-id="<%= entity.id %>">
|
|
5
|
+
<%=
|
|
6
|
+
render(
|
|
7
|
+
partial: "admin/#{entity.class.table_name}/entity/in_list",
|
|
8
|
+
locals: {
|
|
9
|
+
entity: entity,
|
|
10
|
+
handler: local_assigns[:handler]
|
|
11
|
+
}
|
|
12
|
+
)
|
|
13
|
+
%>
|
|
14
|
+
</li>
|
|
15
|
+
<% end %>
|
|
16
|
+
</ul>
|
|
17
|
+
<% else %>
|
|
18
|
+
<%= render 'shared/nothing_found' %>
|
|
19
|
+
<% end %>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<% if collection.any? %>
|
|
2
|
+
<ol class="list-of-entities">
|
|
3
|
+
<% collection.each do |entity| %>
|
|
4
|
+
<li data-id="<%= entity.id %>" data-number="<%= entity.priority %>">
|
|
5
|
+
<%=
|
|
6
|
+
render(
|
|
7
|
+
partial: "admin/#{entity.class.table_name}/entity/in_list",
|
|
8
|
+
locals: {
|
|
9
|
+
entity: entity,
|
|
10
|
+
handler: local_assigns[:handler]
|
|
11
|
+
}
|
|
12
|
+
)
|
|
13
|
+
%>
|
|
14
|
+
</li>
|
|
15
|
+
<% end %>
|
|
16
|
+
</ol>
|
|
17
|
+
<% else %>
|
|
18
|
+
<%= render 'shared/nothing_found' %>
|
|
19
|
+
<% end %>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<% prefix = "activerecord.attributes.#{entity.class.to_s.underscore}"%>
|
|
2
|
+
<div class="toggleable" data-url="<%= url %>">
|
|
3
|
+
<% entity.class.toggleable_attributes.each do |flag| %>
|
|
4
|
+
<span class="<%= entity.attributes[flag.to_s] ? 'active' : 'inactive' %>" data-flag="<%= flag %>">
|
|
5
|
+
<%= t("#{prefix}.#{flag}", default: ["attributes.#{flag}".to_sym, flag.to_s]) %>
|
|
6
|
+
</span>
|
|
7
|
+
<% end %>
|
|
8
|
+
</div>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
if Rails.env.test? || Rails.env.cucumber?
|
|
4
|
+
Dir["#{Rails.root}/app/uploaders/*.rb"].each(&method(:require))
|
|
5
|
+
|
|
6
|
+
CarrierWave.configure do |config|
|
|
7
|
+
config.storage = :file
|
|
8
|
+
config.enable_processing = false
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# use different dirs when testing
|
|
12
|
+
CarrierWave::Uploader::Base.descendants.each do |klass|
|
|
13
|
+
next if klass.anonymous?
|
|
14
|
+
|
|
15
|
+
klass.class_eval do
|
|
16
|
+
def cache_dir
|
|
17
|
+
"#{Rails.root}/spec/support/uploads/tmp"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def store_dir
|
|
21
|
+
slug = "#{model.class.to_s.underscore}/#{mounted_as}"
|
|
22
|
+
|
|
23
|
+
"#{Rails.root}/spec/support/uploads/#{slug}/#{model.id}"
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
ru:
|
|
2
|
+
object_count:
|
|
3
|
+
zero: "объектов нет"
|
|
4
|
+
one: "%{count} объект"
|
|
5
|
+
few: "%{count} объекта"
|
|
6
|
+
many: "%{count} объектов"
|
|
7
|
+
other: "%{count} объектов"
|
|
8
|
+
attributes:
|
|
9
|
+
banned: "В чёрном списке"
|
|
10
|
+
created_at: "Время создания"
|
|
11
|
+
data: "Данные"
|
|
12
|
+
deleted: "Объект удалён"
|
|
13
|
+
object_count: "Количество объектов"
|
|
14
|
+
priority: "Порядок сортировки"
|
|
15
|
+
updated_at: "Время обновления"
|
|
16
|
+
uuid: "UUID"
|
|
17
|
+
slug: "Идентификатор"
|
|
18
|
+
visible: "Показывать"
|
|
19
|
+
date:
|
|
20
|
+
nominative_months:
|
|
21
|
+
-
|
|
22
|
+
- "январь"
|
|
23
|
+
- "февраль"
|
|
24
|
+
- "март"
|
|
25
|
+
- "апрель"
|
|
26
|
+
- "май"
|
|
27
|
+
- "июнь"
|
|
28
|
+
- "июль"
|
|
29
|
+
- "август"
|
|
30
|
+
- "сентябрь"
|
|
31
|
+
- "октябрь"
|
|
32
|
+
- "ноябрь"
|
|
33
|
+
- "декабрь"
|
|
34
|
+
error_count:
|
|
35
|
+
zero: "ошибок нет"
|
|
36
|
+
one: "%{count} ошибка"
|
|
37
|
+
few: "%{count} ошибки"
|
|
38
|
+
many: "%{count} ошибок"
|
|
39
|
+
other: "%{count} ошибок"
|
|
40
|
+
errors:
|
|
41
|
+
messages:
|
|
42
|
+
extension_blacklist_error: "имеет недопустимое расширение файла"
|
|
43
|
+
extension_whitelist_error: "имеет недопустимое расширение файла"
|
|
44
|
+
mini_magick_processing_error: "не может быть обработан"
|
|
45
|
+
views:
|
|
46
|
+
pagination:
|
|
47
|
+
first: "⇤"
|
|
48
|
+
last: "⇥"
|
|
49
|
+
previous: "←"
|
|
50
|
+
next: "→"
|
|
51
|
+
truncate: "…"
|
|
52
|
+
copyright: "2020 example.com"
|
|
53
|
+
home: "Главная"
|
|
54
|
+
application:
|
|
55
|
+
errors:
|
|
56
|
+
forbidden: "Запрещено (403)."
|
|
57
|
+
internal_server_error: "Внутренняя ошибка сервера (500)."
|
|
58
|
+
not_found: "Страница не найдена (404)."
|
|
59
|
+
restricted_access: "Доступ к странице ограничен (401)."
|
|
60
|
+
service_unavailable: "Сервис временно недоступен (503)."
|
|
61
|
+
unauthorized: "Не хватает прав для просмотра страницы (401)."
|
|
62
|
+
admin:
|
|
63
|
+
errors:
|
|
64
|
+
unauthorized:
|
|
65
|
+
heading: "Не хватает прав"
|
|
66
|
+
message: "У вас не хватает прав для просмотра этой страницы"
|
|
67
|
+
index:
|
|
68
|
+
index:
|
|
69
|
+
nav_text: "Администрирование"
|
|
70
|
+
title: "Администрирование"
|
|
71
|
+
heading: "Администрирование"
|
|
72
|
+
layouts:
|
|
73
|
+
admin:
|
|
74
|
+
footer:
|
|
75
|
+
support: "Поддержка"
|
|
76
|
+
site_name: "example.com"
|
|
77
|
+
my:
|
|
78
|
+
recoveries:
|
|
79
|
+
show:
|
|
80
|
+
nav_text: "Восстановить пароль"
|
|
81
|
+
update: "Обновить"
|
|
82
|
+
shared:
|
|
83
|
+
flash_messages:
|
|
84
|
+
alert: "Внимание"
|
|
85
|
+
error: "Ошибка"
|
|
86
|
+
info: "Информация"
|
|
87
|
+
notice: "Замечание"
|
|
88
|
+
success: "Успешно"
|
|
89
|
+
warning: "Предупреждение"
|
|
90
|
+
nothing_found: "Ничего не нашлось"
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
ru:
|
|
2
|
+
image_count:
|
|
3
|
+
zero: "изображений нет"
|
|
4
|
+
one: "%{count} изображение"
|
|
5
|
+
few: "%{count} изобржения"
|
|
6
|
+
many: "%{count} изображений"
|
|
7
|
+
other: "%{count} изображений"
|
|
8
|
+
activerecord:
|
|
9
|
+
models:
|
|
10
|
+
biovision_component: "Компонент"
|
|
11
|
+
language: "Язык"
|
|
12
|
+
metric: "Метрика"
|
|
13
|
+
metric_value: "Значение метрики"
|
|
14
|
+
simple_image: "Простое изображение"
|
|
15
|
+
simple_image_tag: "Метка простого изображения"
|
|
16
|
+
simple_image_tag_image: "Связь метки и простого изображения"
|
|
17
|
+
attributes:
|
|
18
|
+
biovision_component:
|
|
19
|
+
active: "Активен"
|
|
20
|
+
parameters: "Параметры"
|
|
21
|
+
settings: "Настройки"
|
|
22
|
+
language:
|
|
23
|
+
active: "Активный"
|
|
24
|
+
code: "Код"
|
|
25
|
+
metric:
|
|
26
|
+
biovision_component: "Компонент"
|
|
27
|
+
default_period: "Период по умолчанию"
|
|
28
|
+
incremental: "Суммарная"
|
|
29
|
+
name: "Название"
|
|
30
|
+
previous_value: "Предыдущее значение"
|
|
31
|
+
show_on_dashboard: "Показывать на главной странице"
|
|
32
|
+
start_with_zero: "Начинать с нуля"
|
|
33
|
+
value: "Значение"
|
|
34
|
+
metric_value:
|
|
35
|
+
metric: "Метрика"
|
|
36
|
+
quantity: "Количество"
|
|
37
|
+
time: "Время"
|
|
38
|
+
simple_image:
|
|
39
|
+
caption: "Название изображения"
|
|
40
|
+
image: "Изображение"
|
|
41
|
+
image_alt_text: "Альтернативный текст изображения"
|
|
42
|
+
source_link: "Ссылка на источник"
|
|
43
|
+
source_name: "Источник изображения"
|
|
44
|
+
simple_image_tag:
|
|
45
|
+
name: "Название"
|
|
46
|
+
simple_image_count: "Количество изображений"
|
|
47
|
+
simple_image_tag_image:
|
|
48
|
+
simple_image_tag: "Метка"
|
|
49
|
+
simple_image_tag_id: "Метка"
|
|
50
|
+
attributes:
|
|
51
|
+
biovision_component: "Компонент"
|
|
52
|
+
biovision_component_id: "Компонент"
|
|
53
|
+
language: "Язык"
|
|
54
|
+
language_id: "Язык"
|
|
55
|
+
simple_image: "Изображение"
|
|
56
|
+
simple_image_id: "Изображение"
|
|
57
|
+
languages:
|
|
58
|
+
english: "Английский"
|
|
59
|
+
russian: "Русский"
|
|
60
|
+
admin:
|
|
61
|
+
components:
|
|
62
|
+
privileges:
|
|
63
|
+
nav_text: "Привилегии"
|
|
64
|
+
title: "Привилении компонента «%{slug}»"
|
|
65
|
+
users:
|
|
66
|
+
heading: "Привилегии"
|
|
67
|
+
settings:
|
|
68
|
+
nav_text: "Настройки"
|
|
69
|
+
title: "Настройки компонента «%{slug}»"
|
|
70
|
+
settings:
|
|
71
|
+
heading: "Настройки"
|
|
72
|
+
parameters:
|
|
73
|
+
heading: "Параметры"
|
|
74
|
+
update_settings:
|
|
75
|
+
success: "Настройки успешно изменены"
|
|
76
|
+
index:
|
|
77
|
+
nav_text: "Компоненты"
|
|
78
|
+
title: "Компоненты"
|
|
79
|
+
heading: "Компоненты"
|
|
80
|
+
show:
|
|
81
|
+
title: "Компонент «%{slug}»"
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
ru:
|
|
2
|
+
activerecord:
|
|
3
|
+
models:
|
|
4
|
+
agent: "Агент пользователя"
|
|
5
|
+
browser: "Браузер"
|
|
6
|
+
ip_address: "IP-адрес"
|
|
7
|
+
attributes:
|
|
8
|
+
agent:
|
|
9
|
+
browser: "Браузер"
|
|
10
|
+
browser_id: "Браузер"
|
|
11
|
+
name: "Название"
|
|
12
|
+
browser:
|
|
13
|
+
agents_count: "Количество АП"
|
|
14
|
+
mobile: "Мобильный"
|
|
15
|
+
name: "Название"
|
|
16
|
+
version: "Версия"
|
|
17
|
+
ip_address:
|
|
18
|
+
ip: "IP-адрес"
|
|
19
|
+
attributes:
|
|
20
|
+
agent: "АП"
|
|
21
|
+
ip_address: "IP"
|
|
22
|
+
biovision:
|
|
23
|
+
components:
|
|
24
|
+
track:
|
|
25
|
+
name: "Отслеживание"
|
|
26
|
+
admin:
|
|
27
|
+
agents:
|
|
28
|
+
nav_item:
|
|
29
|
+
text: "Агенты пользователя"
|
|
30
|
+
description: "Просмотр списка браузеров посетителей"
|
|
31
|
+
index:
|
|
32
|
+
title: "Агенты пользователя, страница %{page}"
|
|
33
|
+
heading: "Агенты пользователя"
|
|
34
|
+
ip_addresses:
|
|
35
|
+
nav_item:
|
|
36
|
+
text: "IP-адреса"
|
|
37
|
+
description: "Просмотр списков IP-адресов посетителей"
|
|
38
|
+
index:
|
|
39
|
+
title: "IP-адреса, страница %{page}"
|
|
40
|
+
heading: "IP-адреса"
|
|
@@ -0,0 +1,130 @@
|
|
|
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
|
+
age_year_count:
|
|
15
|
+
zero: "%{count} лет"
|
|
16
|
+
one: "%{count} год"
|
|
17
|
+
few: "%{count} года"
|
|
18
|
+
many: "%{count} лет"
|
|
19
|
+
other: "%{count} лет"
|
|
20
|
+
attributes:
|
|
21
|
+
user: "Пользователь"
|
|
22
|
+
user_id: "Пользователь"
|
|
23
|
+
activerecord:
|
|
24
|
+
models:
|
|
25
|
+
biovision_component_user: "Компонент для пользователя"
|
|
26
|
+
code: "Код"
|
|
27
|
+
foreign_site: "Внешний сайт"
|
|
28
|
+
foreign_user: "Внешний пользователь"
|
|
29
|
+
login_attempt: "Попытка входа"
|
|
30
|
+
token: "Жетон доступа"
|
|
31
|
+
user: "Пользователь"
|
|
32
|
+
user_language: "Язык пользователя"
|
|
33
|
+
errors:
|
|
34
|
+
models:
|
|
35
|
+
user:
|
|
36
|
+
attributes:
|
|
37
|
+
email:
|
|
38
|
+
invalid: "не выглядит как email"
|
|
39
|
+
slug:
|
|
40
|
+
invalid: "должен содержать от 1 до 30 латинских букв, цифр или знаков подчёркивания"
|
|
41
|
+
attributes:
|
|
42
|
+
biovision_component_user:
|
|
43
|
+
administrator: "Администратор"
|
|
44
|
+
code:
|
|
45
|
+
body: "Код"
|
|
46
|
+
quantity: "Количество активаций"
|
|
47
|
+
foreign_site:
|
|
48
|
+
foreign_users_count: "Количество пользователей"
|
|
49
|
+
name: "Название"
|
|
50
|
+
foreign_user:
|
|
51
|
+
foreign_site: "Внешний сайт"
|
|
52
|
+
foreign_site_id: "Внешний сайт"
|
|
53
|
+
login_attempt:
|
|
54
|
+
password: "Пароль"
|
|
55
|
+
token:
|
|
56
|
+
last_used: "Последнее использование"
|
|
57
|
+
active: "Активен"
|
|
58
|
+
token: "Жетон"
|
|
59
|
+
user:
|
|
60
|
+
allow_mail: "Разрешить email-уведомления"
|
|
61
|
+
balance: "Баланс"
|
|
62
|
+
birthday: "Дата рождения"
|
|
63
|
+
bot: "Это бот"
|
|
64
|
+
consent: "Согласие на обработку персональных данных и принятие пользовательского соглашения"
|
|
65
|
+
email: "Email"
|
|
66
|
+
email_confirmed: "Email подтверждён"
|
|
67
|
+
image: "Картинка"
|
|
68
|
+
inviter: "Кто пригласил"
|
|
69
|
+
inviter_id: "Кто пригласил"
|
|
70
|
+
last_seen: "Последняя активность"
|
|
71
|
+
notice: "Заметка"
|
|
72
|
+
password: "Пароль"
|
|
73
|
+
password_confirmation: "Подтверждение пароля"
|
|
74
|
+
password_digest: "Хеш пароля"
|
|
75
|
+
phone: "Телефон"
|
|
76
|
+
phone_confirmed: "Телефон подтверждён"
|
|
77
|
+
primary_id: "Первичный пользователь"
|
|
78
|
+
screen_name: "Логин"
|
|
79
|
+
super_user: "Супер пользователь"
|
|
80
|
+
referral_link: "Реферальная ссылка"
|
|
81
|
+
biovision:
|
|
82
|
+
components:
|
|
83
|
+
users:
|
|
84
|
+
messages:
|
|
85
|
+
invalid_code: "Недействительный код"
|
|
86
|
+
name: "Пользователи"
|
|
87
|
+
settings:
|
|
88
|
+
bounce_count: "Максимальное количество неудачных попыток входа"
|
|
89
|
+
bounce_timeout: "Тайм-аут для запрета повторных попыток входа"
|
|
90
|
+
confirm_email: "Отправлять письмо для подтверждения почты сразу"
|
|
91
|
+
email_as_login: "Использовать электронную почту в качестве логина"
|
|
92
|
+
invite_count: "Количество кодов приглашения после регистрации"
|
|
93
|
+
invite_only: "Только по приглашениям"
|
|
94
|
+
registration_open: "Регистрация открыта"
|
|
95
|
+
require_email: "Электронная почта обязательна при регистрации"
|
|
96
|
+
use_invites: "Использовать приглашения"
|
|
97
|
+
anonymous: "Анонимно"
|
|
98
|
+
log_in: "Войти"
|
|
99
|
+
log_out: "Выйти"
|
|
100
|
+
my:
|
|
101
|
+
profiles:
|
|
102
|
+
new:
|
|
103
|
+
title: "Регистрация"
|
|
104
|
+
nav_text: "Зарегистрироваться"
|
|
105
|
+
heading: "Регистрация на сайте"
|
|
106
|
+
form:
|
|
107
|
+
i_am_bot: "НЕ ОТМЕЧАЙТЕ эту галочку"
|
|
108
|
+
consent: "Принимаю пользовательское соглашение и даю своё согласие на обработку персональных данных"
|
|
109
|
+
guidelines:
|
|
110
|
+
screen_name: "Только латинские буквы, цифры и знаки подчёркивания. От 1 до 30 символов."
|
|
111
|
+
password: "Выберите надёжный пароль, который нельзя легко подобрать."
|
|
112
|
+
password_confirmation: "Повторите пароль, чтобы убедиться, что вы не ошиблись в наборе."
|
|
113
|
+
email: "Введите почту для обратной связи и на случай сброса пароля."
|
|
114
|
+
join: "Зарегистрироваться"
|
|
115
|
+
invitation_code: "Пригласительный код"
|
|
116
|
+
already_joined: "Уже зарегистрировались?"
|
|
117
|
+
closed:
|
|
118
|
+
title: "Регистрация закрыта"
|
|
119
|
+
heading: "Регистрация закрыта"
|
|
120
|
+
registration_is_closed: "Регистрация новых пользователей закрыта"
|
|
121
|
+
authentication:
|
|
122
|
+
form:
|
|
123
|
+
log_in: "Войти"
|
|
124
|
+
login: "Логин"
|
|
125
|
+
create:
|
|
126
|
+
failed: "Не удалось выполнить вход."
|
|
127
|
+
new:
|
|
128
|
+
title: "Вход"
|
|
129
|
+
nav_text: "Войти"
|
|
130
|
+
heading: "Вход на сайт"
|