onotole 1.0.11 → 1.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -1
- data/lib/onotole/add_user_gems/after_install_patch.rb +33 -2
- data/lib/onotole/add_user_gems/before_bundle_patch.rb +18 -0
- data/lib/onotole/add_user_gems/edit_menu_questions.rb +26 -21
- data/lib/onotole/app_builder.rb +2 -1
- data/lib/onotole/default_scripts.rb +2 -0
- data/lib/onotole/version.rb +1 -1
- data/templates/active_admin.scss +18 -0
- data/templates/activeadmin.en.yml +136 -0
- data/templates/activeadmin.ru.yml +139 -0
- data/templates/admin_bootstrap.scss +116 -0
- data/templates/bootstrap_variables.scss +875 -0
- data/templates/browserslist +1 -1
- data/templates/config_locales_ru.yml.erb +262 -0
- data/templates/devise.ru.yml +120 -0
- data/templates/inet_input.rb +3 -0
- data/templates/rubocop.yml +1 -1
- metadata +10 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d68c9409b2486d0e11e8936c8b5b973d99892e6e
|
4
|
+
data.tar.gz: 3ec0239121c3013398a2ee191c8e5d87b625f247
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8e040799470a290e7564605bc44ed0446d796e453c39fe3b3a3283536b821f337767e82a0e30da78d2fc0549c53f3f191efc7f02679a3a1b2f37a52f154e520
|
7
|
+
data.tar.gz: c24c0bc3cbaec133bbb2b3d1ead9cca8c6e9b83c47fcc8593dc87f99c1984d5a6251650b68d0c050790da2158c850a68167cf5818581e650fcbece9938f888f2
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
New Rails project wizard. Onotole will help!
|
4
4
|
|
5
|
-
![Onotole](http://
|
5
|
+
[![Onotole](http://i.imgur.com/8VsFFvy.jpg?1)](https://www.youtube.com/watch?v=wAuqhLpV2DY)
|
6
6
|
|
7
7
|
Read more [ENG](https://en.wikipedia.org/wiki/Anatoly_Wasserman) |
|
8
8
|
[RUS](https://ru.wikipedia.org/wiki/%D0%92%D0%B0%D1%81%D1%81%D0%B5%D1%80%D0%BC%D0%B0%D0%BD,_%D0%90%D0%BD%D0%B0%D1%82%D0%BE%D0%BB%D0%B8%D0%B9_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%BE%D0%B2%D0%B8%D1%87) | [RUS lurk](http://lurkmore.to/%D0%92%D0%B0%D1%81%D1%81%D0%B5%D1%80%D0%BC%D0%B0%D0%BD)
|
@@ -77,6 +77,9 @@ creating elegant backends for website administration.
|
|
77
77
|
Based on ActiveRecord-import gem - the most efficient way to import for ActiveAdmin
|
78
78
|
* [ActiveAdminTheme](https://github.com/activeadmin-plugins/active_admin_theme)
|
79
79
|
Flat skin for ActiveAdmin
|
80
|
+
* [Active_skin](https://github.com/rstgroup/active_skin) Flat skin for active admin.
|
81
|
+
* [flattened_active_admin](https://github.com/Papercloud/flattened_active_admin)
|
82
|
+
Theme. Bring your Active Admin up-to-date with this customizable add on
|
80
83
|
* `*`[rubycritic](https://github.com/whitesmith/rubycritic) A Ruby code quality
|
81
84
|
reporter
|
82
85
|
* [railroady](https://github.com/preston/railroady) Model and controller UML
|
@@ -85,6 +88,9 @@ creating elegant backends for website administration.
|
|
85
88
|
trusted users edit structured content. http://docs.typuscmf.com
|
86
89
|
* [paper_trail](https://github.com/airblade/paper_trail) Track changes to your
|
87
90
|
models' data. Good for auditing or versioning.
|
91
|
+
* [validates_timeliness](https://github.com/adzap/validates_timeliness)
|
92
|
+
Date and time validation plugin for ActiveModel and Rails. Supports multiple
|
93
|
+
ORMs and allows custom date/time formats.
|
88
94
|
|
89
95
|
|
90
96
|
Mandatory installation gem list you will find in `Gemfile` section
|
@@ -3,6 +3,7 @@ module Onotole
|
|
3
3
|
module AfterInstallPatch
|
4
4
|
def post_init
|
5
5
|
install_queue = [:devise,
|
6
|
+
:validates_timeliness,
|
6
7
|
:paper_trail,
|
7
8
|
:responders,
|
8
9
|
:typus,
|
@@ -28,7 +29,7 @@ module Onotole
|
|
28
29
|
if AppBuilder.devise_model
|
29
30
|
rails_generator "devise #{AppBuilder.devise_model.titleize}"
|
30
31
|
inject_into_file('app/controllers/application_controller.rb',
|
31
|
-
"\nbefore_action :authenticate_#{AppBuilder.devise_model.
|
32
|
+
"\nbefore_action :authenticate_#{AppBuilder.devise_model.downcase}!",
|
32
33
|
after: 'before_action :configure_permitted_parameters, if: :devise_controller?')
|
33
34
|
end
|
34
35
|
if user_choose?(:bootstrap3)
|
@@ -76,9 +77,35 @@ end
|
|
76
77
|
setup_stylesheets
|
77
78
|
AppBuilder.use_asset_pipelline = false
|
78
79
|
append_file(AppBuilder.app_file_scss,
|
79
|
-
"\n@import '
|
80
|
+
"\n@import 'bootstrap_variables';
|
81
|
+
\n@import 'bootstrap-sprockets';
|
82
|
+
\n@import 'bootstrap';")
|
80
83
|
inject_into_file(AppBuilder.js_file, "\n//= require bootstrap-sprockets",
|
81
84
|
after: '//= require jquery_ujs')
|
85
|
+
return unless user_choose? :activeadmin
|
86
|
+
if AppBuilder.active_admin_theme_selected
|
87
|
+
|
88
|
+
File.open('app/assets/stylesheets/active_admin.scss', 'a') do |f|
|
89
|
+
f.write "\n@import 'wigu/active_admin_theme';"
|
90
|
+
end if user_choose? :active_admin_theme
|
91
|
+
|
92
|
+
File.open('app/assets/stylesheets/active_admin.scss', 'a') do |f|
|
93
|
+
f.write "\n@import 'active_skin;'\n\\\\$skinLogo: url('admin_logo.png') no-repeat 0 0;"
|
94
|
+
end if user_choose? :active_skin
|
95
|
+
if user_choose? :flattened_active_admin
|
96
|
+
File.open('app/assets/stylesheets/active_admin.scss', 'w') do |f|
|
97
|
+
f.write "\n@import 'flattened_active_admin/variables;'
|
98
|
+
\n@import 'flattened_active_admin/mixins;'
|
99
|
+
\n@import 'flattened_active_admin/base;'"
|
100
|
+
end
|
101
|
+
rails_generator 'flattened_active_admin:variables'
|
102
|
+
end
|
103
|
+
|
104
|
+
else
|
105
|
+
copy_file 'admin_bootstrap.scss', 'vendor/assets/stylesheets/active_admin/admin_bootstrap.scss'
|
106
|
+
copy_file 'active_admin.scss', 'vendor/assets/stylesheets/active_admin.scss'
|
107
|
+
remove_file 'app/assets/stylesheets/active_admin.scss'
|
108
|
+
end
|
82
109
|
end
|
83
110
|
|
84
111
|
def after_install_bootstrap3
|
@@ -150,5 +177,9 @@ end
|
|
150
177
|
def after_install_paper_trail
|
151
178
|
rails_generator 'paper_trail:install'
|
152
179
|
end
|
180
|
+
|
181
|
+
def after_install_validates_timeliness
|
182
|
+
rails_generator 'validates_timeliness:install'
|
183
|
+
end
|
153
184
|
end
|
154
185
|
end
|
@@ -110,6 +110,7 @@ module Onotole
|
|
110
110
|
inject_into_file('app/controllers/application_controller.rb', devise_conf,
|
111
111
|
after: 'protect_from_forgery with: :exception')
|
112
112
|
copy_file 'devise_rspec.rb', 'spec/support/devise.rb'
|
113
|
+
copy_file 'devise.ru.yml', 'config/locales/devise.ru.yml'
|
113
114
|
end
|
114
115
|
|
115
116
|
def add_responders_gem
|
@@ -157,6 +158,11 @@ module Onotole
|
|
157
158
|
|
158
159
|
def add_activeadmin_gem
|
159
160
|
inject_into_file('Gemfile', "\ngem 'activeadmin', github: 'activeadmin'", after: '# user_choice')
|
161
|
+
copy_file 'activeadmin.en.yml', 'config/locales/activeadmin.en.yml'
|
162
|
+
copy_file 'activeadmin.ru.yml', 'config/locales/activeadmin.ru.yml'
|
163
|
+
# it still live https://github.com/Prelang/feedback/issues/14 and this patch helps
|
164
|
+
run 'mkdir app/inputs'
|
165
|
+
copy_file 'inet_input.rb', 'app/inputs/inet_input.rb'
|
160
166
|
end
|
161
167
|
|
162
168
|
# def add_administrate_gem
|
@@ -207,5 +213,17 @@ module Onotole
|
|
207
213
|
def add_paper_trail_gem
|
208
214
|
inject_into_file('Gemfile', "\ngem 'paper_trail'", after: '# user_choice')
|
209
215
|
end
|
216
|
+
|
217
|
+
def add_validates_timeliness_gem
|
218
|
+
inject_into_file('Gemfile', "\ngem 'validates_timeliness'", after: '# user_choice')
|
219
|
+
end
|
220
|
+
|
221
|
+
def add_active_skin_gem
|
222
|
+
inject_into_file('Gemfile', "\ngem 'active_skin'", after: '# user_choice')
|
223
|
+
end
|
224
|
+
|
225
|
+
def add_flattened_active_admin_gem
|
226
|
+
inject_into_file('Gemfile', "\ngem 'flattened_active_admin'", after: '# user_choice')
|
227
|
+
end
|
210
228
|
end
|
211
229
|
end
|
@@ -40,11 +40,15 @@ module Onotole
|
|
40
40
|
|
41
41
|
def show_active_admin_plugins_submenu
|
42
42
|
return unless user_choose? :activeadmin
|
43
|
-
variants = { none:
|
44
|
-
active_admin_import:
|
45
|
-
active_admin_theme:
|
43
|
+
variants = { none: 'None',
|
44
|
+
active_admin_import: 'The most efficient way to import for ActiveAdmin',
|
45
|
+
active_admin_theme: 'Theme, flat skin',
|
46
|
+
active_skin: 'Theme, flat, nice, good maintenance',
|
47
|
+
flattened_active_admin: 'Theme. Bring your Active Admin up-to-date with this customizable add on' }
|
48
|
+
themes = [:active_admin_theme, :active_skin, :flattened_active_admin]
|
46
49
|
multiple_choice('Select activeadmin plug-ins.', variants).each do |gem|
|
47
50
|
add_to_user_choise gem
|
51
|
+
AppBuilder.active_admin_theme_selected = true if themes.include? gem
|
48
52
|
end
|
49
53
|
end
|
50
54
|
|
@@ -61,24 +65,25 @@ module Onotole
|
|
61
65
|
end
|
62
66
|
|
63
67
|
def choose_undroup_gems
|
64
|
-
variants = { none:
|
65
|
-
faker:
|
66
|
-
rubocop:
|
67
|
-
rubycritic:
|
68
|
-
guard:
|
69
|
-
guard_rubocop:
|
70
|
-
bundler_audit:
|
71
|
-
airbrake:
|
72
|
-
responders:
|
73
|
-
hirbunicode:
|
74
|
-
dotenv_heroku:
|
75
|
-
tinymce:
|
76
|
-
annotate:
|
77
|
-
overcommit:
|
78
|
-
activerecord_import:
|
79
|
-
railroady:
|
80
|
-
paper_trail:
|
81
|
-
|
68
|
+
variants = { none: 'None',
|
69
|
+
faker: 'Gem for generate fake data in testing',
|
70
|
+
rubocop: 'Code inspector and code formatting tool',
|
71
|
+
rubycritic: 'A Ruby code quality reporter',
|
72
|
+
guard: 'Guard (with RSpec, livereload, rails, migrate, bundler)',
|
73
|
+
guard_rubocop: 'Auto-declare code miss in guard',
|
74
|
+
bundler_audit: 'Extra possibilities for gems version control',
|
75
|
+
airbrake: 'Airbrake error logging',
|
76
|
+
responders: 'A set of responders modules to dry up your Rails 4.2+ app.',
|
77
|
+
hirbunicode: 'Hirb unicode support',
|
78
|
+
dotenv_heroku: 'dotenv-heroku support',
|
79
|
+
tinymce: 'Integration of TinyMCE with the Rails asset pipeline',
|
80
|
+
annotate: 'Annotate Rails classes with schema and routes info',
|
81
|
+
overcommit: 'A fully configurable and extendable Git hook manager',
|
82
|
+
activerecord_import: 'A library for bulk inserting data using ActiveRecord',
|
83
|
+
railroady: 'Model and controller UML class diagram generator',
|
84
|
+
paper_trail: 'Track changes to your models data. For auditing or versioning',
|
85
|
+
validates_timeliness: 'Date and time validation plugin for ActiveModel and Rails',
|
86
|
+
meta_request: 'Rails meta panel in chrome console.'\
|
82
87
|
" Very usefull in\n#{' ' * 24}AJAX debugging. Link for chrome"\
|
83
88
|
" add-on in Gemfile.\n#{' ' * 24}Do not delete comments if you need this link"
|
84
89
|
}
|
data/lib/onotole/app_builder.rb
CHANGED
@@ -27,13 +27,14 @@ module Onotole
|
|
27
27
|
@app_file_scss = 'app/assets/stylesheets/application.scss'
|
28
28
|
@app_file_css = 'app/assets/stylesheets/application.css'
|
29
29
|
@js_file = 'app/assets/javascripts/application.js'
|
30
|
+
@active_admin_theme_selected = false
|
30
31
|
@quiet = true
|
31
32
|
|
32
33
|
class << self
|
33
34
|
attr_accessor :use_asset_pipelline,
|
34
35
|
:devise_model,
|
35
36
|
:user_choice, :app_file_scss,
|
36
|
-
:app_file_css, :js_file, :quiet
|
37
|
+
:app_file_css, :js_file, :quiet, :active_admin_theme_selected
|
37
38
|
end
|
38
39
|
|
39
40
|
def_delegators :heroku_adapter,
|
@@ -79,9 +79,11 @@ end
|
|
79
79
|
rails_generator 'delayed_job:active_record'
|
80
80
|
end
|
81
81
|
|
82
|
+
# copy ru_locale here also. Update in future
|
82
83
|
def configure_time_formats
|
83
84
|
remove_file 'config/locales/en.yml'
|
84
85
|
template 'config_locales_en.yml.erb', 'config/locales/en.yml'
|
86
|
+
template 'config_locales_ru.yml.erb', 'config/locales/ru.yml'
|
85
87
|
end
|
86
88
|
|
87
89
|
def configure_i18n_for_missing_translations
|
data/lib/onotole/version.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
// SASS variable overrides must be declared before loading up Active Admin's styles.
|
2
|
+
//
|
3
|
+
// To view the variables that Active Admin provides, take a look at
|
4
|
+
// `app/assets/stylesheets/active_admin/mixins/_variables.scss` in the
|
5
|
+
// Active Admin source.
|
6
|
+
//
|
7
|
+
// For example, to change the sidebar width:
|
8
|
+
// $sidebar-width: 242px;
|
9
|
+
|
10
|
+
// Active Admin's got SASS!
|
11
|
+
//@import "active_admin/mixins";
|
12
|
+
//@import "active_admin/base";
|
13
|
+
@import 'active_admin/admin_bootstrap';
|
14
|
+
|
15
|
+
// Overriding any non-variable SASS must be done after the fact.
|
16
|
+
// For example, to change the default status-tag color:
|
17
|
+
//
|
18
|
+
// .status_tag { background: #6090DB; }
|
@@ -0,0 +1,136 @@
|
|
1
|
+
en:
|
2
|
+
active_admin:
|
3
|
+
dashboard: Dashboard
|
4
|
+
dashboard_welcome:
|
5
|
+
welcome: "Welcome to Active Admin. This is the default dashboard page."
|
6
|
+
call_to_action: "To add dashboard sections, checkout 'app/admin/dashboard.rb'"
|
7
|
+
view: "View"
|
8
|
+
edit: "Edit"
|
9
|
+
delete: "Delete"
|
10
|
+
delete_confirmation: "Are you sure you want to delete this?"
|
11
|
+
new_model: "New %{model}"
|
12
|
+
edit_model: "Edit %{model}"
|
13
|
+
delete_model: "Delete %{model}"
|
14
|
+
details: "%{model} Details"
|
15
|
+
cancel: "Cancel"
|
16
|
+
empty: "Empty"
|
17
|
+
previous: "Previous"
|
18
|
+
next: "Next"
|
19
|
+
download: "Download:"
|
20
|
+
has_many_new: "Add New %{model}"
|
21
|
+
has_many_delete: "Delete"
|
22
|
+
has_many_remove: "Remove"
|
23
|
+
filters:
|
24
|
+
buttons:
|
25
|
+
filter: "Filter"
|
26
|
+
clear: "Clear Filters"
|
27
|
+
predicates:
|
28
|
+
contains: "Contains"
|
29
|
+
equals: "Equals"
|
30
|
+
starts_with: "Starts with"
|
31
|
+
ends_with: "Ends with"
|
32
|
+
greater_than: "Greater than"
|
33
|
+
less_than: "Less than"
|
34
|
+
search_status:
|
35
|
+
headline: "Search status:"
|
36
|
+
current_scope: "Scope:"
|
37
|
+
current_filters: "Current filters:"
|
38
|
+
no_current_filters: "None"
|
39
|
+
status_tag:
|
40
|
+
"yes": "Yes"
|
41
|
+
"no": "No"
|
42
|
+
main_content: "Please implement %{model}#main_content to display content."
|
43
|
+
logout: "Logout"
|
44
|
+
powered_by: "Powered by %{active_admin} %{version}"
|
45
|
+
sidebars:
|
46
|
+
filters: "Filters"
|
47
|
+
search_status: "Search Status"
|
48
|
+
pagination:
|
49
|
+
empty: "No %{model} found"
|
50
|
+
one: "Displaying <b>1</b> %{model}"
|
51
|
+
one_page: "Displaying <b>all %{n}</b> %{model}"
|
52
|
+
multiple: "Displaying %{model} <b>%{from} - %{to}</b> of <b>%{total}</b> in total"
|
53
|
+
multiple_without_total: "Displaying %{model} <b>%{from} - %{to}</b>"
|
54
|
+
entry:
|
55
|
+
one: "entry"
|
56
|
+
other: "entries"
|
57
|
+
any: "Any"
|
58
|
+
blank_slate:
|
59
|
+
content: "There are no %{resource_name} yet."
|
60
|
+
link: "Create one"
|
61
|
+
dropdown_actions:
|
62
|
+
button_label: "Actions"
|
63
|
+
batch_actions:
|
64
|
+
button_label: "Batch Actions"
|
65
|
+
default_confirmation: "Are you sure you want to do this?"
|
66
|
+
delete_confirmation: "Are you sure you want to delete these %{plural_model}?"
|
67
|
+
succesfully_destroyed:
|
68
|
+
one: "Successfully destroyed 1 %{model}"
|
69
|
+
other: "Successfully destroyed %{count} %{plural_model}"
|
70
|
+
selection_toggle_explanation: "(Toggle Selection)"
|
71
|
+
link: "Create one"
|
72
|
+
action_label: "%{title} Selected"
|
73
|
+
labels:
|
74
|
+
destroy: "Delete"
|
75
|
+
comments:
|
76
|
+
created_at: "Created"
|
77
|
+
resource_type: "Resource Type"
|
78
|
+
author_type: "Author Type"
|
79
|
+
body: "Body"
|
80
|
+
author: "Author"
|
81
|
+
title: "Comment"
|
82
|
+
add: "Add Comment"
|
83
|
+
delete: "Delete Comment"
|
84
|
+
delete_confirmation: "Are you sure you want to delete these comment?"
|
85
|
+
resource: "Resource"
|
86
|
+
no_comments_yet: "No comments yet."
|
87
|
+
author_missing: "Anonymous"
|
88
|
+
title_content: "Comments (%{count})"
|
89
|
+
errors:
|
90
|
+
empty_text: "Comment wasn't saved, text was empty."
|
91
|
+
devise:
|
92
|
+
username:
|
93
|
+
title: "Username"
|
94
|
+
email:
|
95
|
+
title: "Email"
|
96
|
+
subdomain:
|
97
|
+
title: "Subdomain"
|
98
|
+
password:
|
99
|
+
title: "Password"
|
100
|
+
sign_up:
|
101
|
+
title: "Sign up"
|
102
|
+
submit: "Sign up"
|
103
|
+
login:
|
104
|
+
title: "Login"
|
105
|
+
remember_me: "Remember me"
|
106
|
+
submit: "Login"
|
107
|
+
reset_password:
|
108
|
+
title: "Forgot your password?"
|
109
|
+
submit: "Reset My Password"
|
110
|
+
change_password:
|
111
|
+
title: "Change your password"
|
112
|
+
submit: "Change my password"
|
113
|
+
unlock:
|
114
|
+
title: "Resend unlock instructions"
|
115
|
+
submit: "Resend unlock instructions"
|
116
|
+
resend_confirmation_instructions:
|
117
|
+
title: "Resend confirmation instructions"
|
118
|
+
submit: "Resend confirmation instructions"
|
119
|
+
links:
|
120
|
+
sign_up: "Sign up"
|
121
|
+
sign_in: "Sign in"
|
122
|
+
forgot_your_password: "Forgot your password?"
|
123
|
+
sign_in_with_omniauth_provider: "Sign in with %{provider}"
|
124
|
+
resend_unlock_instructions: "Resend unlock instructions"
|
125
|
+
resend_confirmation_instructions: "Resend confirmation instructions"
|
126
|
+
unsupported_browser:
|
127
|
+
headline: "Please note that ActiveAdmin no longer supports Internet Explorer versions 8 or less."
|
128
|
+
recommendation: "We recommend upgrading to the latest <a href=\"http://windows.microsoft.com/ie\">Internet Explorer</a>, <a href=\"https://chrome.google.com/\">Google Chrome</a>, or <a href=\"https://mozilla.org/firefox/\">Firefox</a>."
|
129
|
+
turn_off_compatibility_view: "If you are using IE 9 or later, make sure you <a href=\"http://windows.microsoft.com/en-US/windows7/webpages-look-incorrect-in-Internet-Explorer\">turn off \"Compatibility View\"</a>."
|
130
|
+
access_denied:
|
131
|
+
message: "You are not authorized to perform this action."
|
132
|
+
index_list:
|
133
|
+
table: "Table"
|
134
|
+
block: "List"
|
135
|
+
grid: "Grid"
|
136
|
+
blog: "Blog"
|
@@ -0,0 +1,139 @@
|
|
1
|
+
ru:
|
2
|
+
active_admin:
|
3
|
+
dashboard: "Панель управления"
|
4
|
+
dashboard_welcome:
|
5
|
+
welcome: "Добро пожаловать в Active Admin. Это стандартная страница управления сайтом."
|
6
|
+
call_to_action: "Чтобы добавить сюда что-нибудь загляните в 'app/admin/dashboard.rb'"
|
7
|
+
view: "Открыть"
|
8
|
+
edit: "Изменить"
|
9
|
+
delete: "Удалить"
|
10
|
+
delete_confirmation: "Вы уверены, что хотите удалить это?"
|
11
|
+
new_model: "Создать %{model}"
|
12
|
+
edit_model: "Изменить %{model}"
|
13
|
+
delete_model: "Удалить %{model}"
|
14
|
+
details: "%{model} подробнее"
|
15
|
+
cancel: "Отмена"
|
16
|
+
empty: "Пусто"
|
17
|
+
previous: "Пред."
|
18
|
+
next: "След."
|
19
|
+
download: "Загрузка:"
|
20
|
+
has_many_new: "Добавить %{model}"
|
21
|
+
has_many_delete: "Удалить"
|
22
|
+
has_many_remove: "Убрать"
|
23
|
+
filters:
|
24
|
+
buttons:
|
25
|
+
filter: "Фильтровать"
|
26
|
+
clear: "Очистить"
|
27
|
+
predicates:
|
28
|
+
contains: "Содержит"
|
29
|
+
equals: "Равно"
|
30
|
+
starts_with: "Начинается с"
|
31
|
+
ends_with: "Заканчивается"
|
32
|
+
greater_than: "больше"
|
33
|
+
less_than: "меньше"
|
34
|
+
search_status:
|
35
|
+
headline: "Статус поиска:"
|
36
|
+
current_scope: "Область:"
|
37
|
+
current_filters: "Текущий фильтр:"
|
38
|
+
no_current_filters: "Ни один"
|
39
|
+
status_tag:
|
40
|
+
"yes": "Да"
|
41
|
+
"no": "Нет"
|
42
|
+
main_content: "Создайте %{model}#main_content для отображения содержимого."
|
43
|
+
logout: "Выйти"
|
44
|
+
powered_by: "Работает на %{active_admin} %{version}"
|
45
|
+
sidebars:
|
46
|
+
filters: "Фильтры"
|
47
|
+
search_status: "Статус поиска"
|
48
|
+
pagination:
|
49
|
+
empty: "%{model} не найдено"
|
50
|
+
one: "Результат: <b>1</b> %{model}"
|
51
|
+
one_page: "Результат: <b>%{n}</b> %{model}"
|
52
|
+
multiple: "Результат: %{model} <b>%{from} - %{to}</b> из <b>%{total}</b>"
|
53
|
+
multiple_without_total: "Результат: %{model} <b>%{from} - %{to}</b>"
|
54
|
+
entry:
|
55
|
+
one: "запись"
|
56
|
+
few: "записи"
|
57
|
+
many: "записей"
|
58
|
+
other: "записей"
|
59
|
+
any: "Любой"
|
60
|
+
blank_slate:
|
61
|
+
content: "Пока нет %{resource_name}."
|
62
|
+
link: "Создать"
|
63
|
+
dropdown_actions:
|
64
|
+
button_label: "Oперации"
|
65
|
+
batch_actions:
|
66
|
+
button_label: "Групповые операции"
|
67
|
+
default_confirmation: "Вы уверены, что вы хотите это сделать?"
|
68
|
+
delete_confirmation: "Вы уверены, что хотите удалить %{plural_model}?"
|
69
|
+
succesfully_destroyed:
|
70
|
+
one: "Успешно удалено: 1 %{model}"
|
71
|
+
few: "Успешно удалено: %{count} %{plural_model}"
|
72
|
+
many: "Успешно удалено: %{count} %{plural_model}"
|
73
|
+
other: "Успешно удалено: %{count} %{plural_model}"
|
74
|
+
selection_toggle_explanation: "(Отметить всё / Снять выделение)"
|
75
|
+
link: "Создать"
|
76
|
+
action_label: "%{title} выбранное"
|
77
|
+
labels:
|
78
|
+
destroy: "Удалить"
|
79
|
+
comments:
|
80
|
+
resource_type: "Тип ресурса"
|
81
|
+
author_type: "Тип автора"
|
82
|
+
body: "Текст"
|
83
|
+
author: "Автор"
|
84
|
+
title: "Комментарий"
|
85
|
+
add: "Добавить Комментарий"
|
86
|
+
delete: "Удалить Комментарий"
|
87
|
+
delete_confirmation: "Вы уверены, что хотите удалить этот комментарий?"
|
88
|
+
resource: "Ресурс"
|
89
|
+
no_comments_yet: "Пока нет комментариев."
|
90
|
+
author_missing: "Аноним"
|
91
|
+
title_content: "Комментарии (%{count})"
|
92
|
+
errors:
|
93
|
+
empty_text: "Комментарий не сохранен, текст не должен быть пустым."
|
94
|
+
devise:
|
95
|
+
username:
|
96
|
+
title: "Имя пользователя"
|
97
|
+
email:
|
98
|
+
title: "Эл. почта"
|
99
|
+
subdomain:
|
100
|
+
title: "Поддомен"
|
101
|
+
password:
|
102
|
+
title: "Пароль"
|
103
|
+
sign_up:
|
104
|
+
title: "Зарегистрироваться"
|
105
|
+
submit: "Зарегистрироваться"
|
106
|
+
login:
|
107
|
+
title: "Войти"
|
108
|
+
remember_me: "Запомнить меня"
|
109
|
+
submit: "Войти"
|
110
|
+
reset_password:
|
111
|
+
title: "Забыли пароль?"
|
112
|
+
submit: "Сбросить пароль"
|
113
|
+
change_password:
|
114
|
+
title: "Изменение пароля"
|
115
|
+
submit: "Изменение пароля"
|
116
|
+
unlock:
|
117
|
+
title: "Повторно отправить инструкции по разблокировке"
|
118
|
+
submit: "Повторно отправить инструкции по разблокировке"
|
119
|
+
resend_confirmation_instructions:
|
120
|
+
title: "Выслать повторно письмо с активацией"
|
121
|
+
submit: "Выслать повторно письмо с активацией"
|
122
|
+
links:
|
123
|
+
sign_up: "Зарегистрироваться"
|
124
|
+
sign_in: "Войти"
|
125
|
+
forgot_your_password: "Забыли пароль?"
|
126
|
+
sign_in_with_omniauth_provider: "Войти с помощью %{provider}"
|
127
|
+
resend_unlock_instructions: "Повторная отправка инструкций разблокировки"
|
128
|
+
resend_confirmation_instructions: "Повторная отправка инструкций подтверждения"
|
129
|
+
unsupported_browser:
|
130
|
+
headline: "Пожалуйста, обратите внимание, что Active Admin больше не поддерживает старые версии Internet Explorer начиная с версии IE 8"
|
131
|
+
recommendation: "Мы рекомендуем обновить версию вашего браузера (<a href=\"http://windows.microsoft.com/ie\">Internet Explorer</a>, <a href=\"https://chrome.google.com/\">Google Chrome</a>, или <a href=\"https://mozilla.org/firefox/\">Firefox</a>)."
|
132
|
+
turn_off_compatibility_view: "Если вы используете IE 9 или новее, убедитесь, что <a href=\"http://windows.microsoft.com/en-US/windows7/webpages-look-incorrect-in-Internet-Explorer\">вы выключили опцию \"Просмотр в режиме совместимости\"</a>."
|
133
|
+
access_denied:
|
134
|
+
message: "Вы не авторизованы для выполнения данного действия."
|
135
|
+
index_list:
|
136
|
+
table: "Таблица"
|
137
|
+
block: "Список"
|
138
|
+
grid: "Сетка"
|
139
|
+
blog: "Блог"
|