constructor-cms 0.6.4 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +7 -3
- data/Gemfile +9 -0
- data/README.md +2 -2
- data/constructor-cms.gemspec +0 -1
- data/core/config/initializers/devise.rb +8 -8
- data/core/config/locales/devise.en.yml +37 -37
- data/core/config/locales/devise.fr.yml +74 -0
- data/core/config/locales/devise.ru.yml +40 -40
- data/core/config/locales/en.yml +14 -14
- data/core/config/locales/fr.yml +15 -0
- data/core/config/locales/ru.yml +20 -20
- data/core/lib/constructor_core/version.rb +1 -1
- data/pages/app/controllers/constructor_pages/fields_controller.rb +7 -11
- data/pages/app/models/constructor_pages/page.rb +70 -40
- data/pages/app/views/constructor_pages/fields/_form.haml +2 -1
- data/pages/config/locales/en.yml +57 -54
- data/pages/config/locales/fr.yml +65 -0
- data/pages/config/locales/ru.yml +48 -44
- data/pages/spec/features/constructor_pages/fields_controller_spec.rb +217 -0
- data/pages/spec/features/constructor_pages/pages_controller_spec.rb +4 -1
- data/pages/spec/features/constructor_pages/templates_controller_spec.rb +4 -0
- data/pages/spec/helpers/constructor_pages/.keep +0 -0
- data/pages/spec/models/constructor_pages/page_model_spec.rb +97 -0
- data/pages/spec/models/constructor_pages/template_model_spec.rb +5 -0
- data/pages/spec/models/constructor_pages/types/boolean_type_model_spec.rb +21 -0
- data/pages/spec/models/constructor_pages/types/date_type_model_spec.rb +21 -0
- data/pages/spec/models/constructor_pages/types/float_type_model_spec.rb +21 -0
- data/pages/spec/models/constructor_pages/types/html_type_model_spec.rb +63 -0
- data/pages/spec/models/constructor_pages/types/integer_type_model_spec.rb +24 -0
- data/pages/spec/models/constructor_pages/types/string_type_model_spec.rb +21 -0
- data/pages/spec/models/constructor_pages/types/text_type_model_spec.rb +63 -0
- data/pages/spec/routing/constructor_pages/.keep +0 -0
- data/spec/spec_helper.rb +2 -0
- metadata +19 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4aa0d5ab38b7e184f86ec0c1760f866179626899
|
4
|
+
data.tar.gz: db509a39b252d05c871a4e783d07e2b21a2e7ac5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d138a447d15b3f907ded261135d28dec1c8729457dcd4ecc0d8b25ac2af3972ce3c9f6bc4674dcf05714a81a4ade534f8694bf3f3290cb2326b232fa8365263e
|
7
|
+
data.tar.gz: 07c1553d7cd639a461396dbbe68684c302bf6f2132182a54fe0fc4bc2969cb17d757cd652aa451533af2ec08966173c07ab7007c78f1b569d03e96c00f5adae2
|
data/.travis.yml
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
language: ruby
|
2
|
+
notifications:
|
3
|
+
email:
|
4
|
+
- ivanzotov@gmail.com
|
2
5
|
before_script:
|
3
6
|
- "rake app:railties:install:migrations"
|
4
7
|
- "rake app:db:migrate"
|
5
|
-
script:
|
6
|
-
- "rake spec"
|
8
|
+
script: bundle exec rake spec
|
7
9
|
rvm:
|
8
10
|
- 2.0.0
|
9
|
-
- 1.9.3
|
11
|
+
- 1.9.3
|
12
|
+
- rbx-19mode
|
13
|
+
- jruby-19mode
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Constructor CMS
|
2
2
|
|
3
|
-
Constructor – Ruby on Rails
|
3
|
+
Constructor – an open source Ruby on Rails content management system for Rails 4.
|
4
4
|
|
5
5
|
[![Gem Version](https://badge.fury.io/rb/constructor-cms.png)](https://rubygems.org/gems/constructor-cms)
|
6
6
|
[![Build Status](https://travis-ci.org/ivanzotov/constructor.png?branch=master)](https://travis-ci.org/ivanzotov/constructor)
|
@@ -12,7 +12,7 @@ Constructor – Ruby on Rails 4 content management system (cms)
|
|
12
12
|
|
13
13
|
### Add to Gemfile
|
14
14
|
|
15
|
-
gem 'constructor-cms'
|
15
|
+
gem 'constructor-cms', '~> 0.6.4'
|
16
16
|
|
17
17
|
### Install
|
18
18
|
|
data/constructor-cms.gemspec
CHANGED
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.add_dependency 'constructor-core', ConstructorCore::VERSION
|
20
20
|
s.add_dependency 'constructor-pages', ConstructorCore::VERSION
|
21
21
|
|
22
|
-
s.add_development_dependency 'sqlite3'
|
23
22
|
s.add_development_dependency 'rspec-rails', '~> 2.12'
|
24
23
|
s.add_development_dependency 'database_cleaner'
|
25
24
|
s.add_development_dependency 'capybara'
|
@@ -1,15 +1,15 @@
|
|
1
1
|
Devise.setup do |config|
|
2
2
|
config.mailer_sender = 'ivanzotov@gmail.com'
|
3
3
|
|
4
|
-
|
4
|
+
config.parent_controller = 'ActionController::Base'
|
5
5
|
|
6
6
|
require 'devise/orm/active_record'
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
8
|
+
config.case_insensitive_keys = [ :email ]
|
9
|
+
config.strip_whitespace_keys = [ :email ]
|
10
|
+
config.skip_session_storage = [:http_auth]
|
11
|
+
config.stretches = Rails.env.test? ? 1 : 10
|
12
|
+
config.reconfirmable = true
|
13
|
+
config.reset_password_within = 6.hours
|
14
|
+
config.sign_out_via = :delete
|
15
15
|
end
|
@@ -3,54 +3,54 @@
|
|
3
3
|
en:
|
4
4
|
errors:
|
5
5
|
messages:
|
6
|
-
expired:
|
7
|
-
not_found:
|
8
|
-
already_confirmed:
|
9
|
-
not_locked:
|
6
|
+
expired: has expired, please request a new one
|
7
|
+
not_found: not found
|
8
|
+
already_confirmed: was already confirmed, please try signing in
|
9
|
+
not_locked: was not locked
|
10
10
|
not_saved:
|
11
|
-
one:
|
12
|
-
other:
|
11
|
+
one: '1 error prohibited this %{resource} from being saved:'
|
12
|
+
other: '%{count} errors prohibited this %{resource} from being saved:'
|
13
13
|
|
14
14
|
devise:
|
15
15
|
failure:
|
16
|
-
already_authenticated:
|
17
|
-
unauthenticated:
|
18
|
-
unconfirmed:
|
19
|
-
locked:
|
20
|
-
invalid:
|
21
|
-
invalid_token:
|
22
|
-
timeout:
|
23
|
-
inactive:
|
16
|
+
already_authenticated: You are already signed in.
|
17
|
+
unauthenticated: You need to sign in or sign up before continuing.
|
18
|
+
unconfirmed: You have to confirm your account before continuing.
|
19
|
+
locked: Your account is locked.
|
20
|
+
invalid: Invalid email or password.
|
21
|
+
invalid_token: Invalid authentication token.
|
22
|
+
timeout: Your session expired, please sign in again to continue.
|
23
|
+
inactive: Your account was not activated yet.
|
24
24
|
sessions:
|
25
|
-
signed_in:
|
26
|
-
signed_out:
|
25
|
+
signed_in: Signed in successfully.
|
26
|
+
signed_out: Signed out successfully.
|
27
27
|
passwords:
|
28
|
-
send_instructions:
|
29
|
-
updated:
|
30
|
-
updated_not_active:
|
31
|
-
send_paranoid_instructions:
|
28
|
+
send_instructions: You will receive an email with instructions about how to reset your password in a few minutes.
|
29
|
+
updated: Your password was changed successfully. You are now signed in.
|
30
|
+
updated_not_active: Your password was changed successfully.
|
31
|
+
send_paranoid_instructions: If your e-mail exists on our database, you will receive a password recovery link on your e-mail
|
32
32
|
confirmations:
|
33
|
-
send_instructions:
|
34
|
-
send_paranoid_instructions:
|
35
|
-
confirmed:
|
33
|
+
send_instructions: You will receive an email with instructions about how to confirm your account in a few minutes.
|
34
|
+
send_paranoid_instructions: If your e-mail exists on our database, you will receive an email with instructions about how to confirm your account in a few minutes.
|
35
|
+
confirmed: Your account was successfully confirmed. You are now signed in.
|
36
36
|
registrations:
|
37
|
-
signed_up:
|
38
|
-
updated:
|
39
|
-
destroyed:
|
40
|
-
signed_up_but_inactive:
|
41
|
-
signed_up_but_unconfirmed:
|
42
|
-
signed_up_but_locked:
|
37
|
+
signed_up: Welcome! You have signed up successfully.
|
38
|
+
updated: You updated your account successfully.
|
39
|
+
destroyed: Bye! Your account was successfully cancelled. We hope to see you again soon.
|
40
|
+
signed_up_but_inactive: You have signed up successfully. However, we could not sign you in because your account is not yet activated.
|
41
|
+
signed_up_but_unconfirmed: A message with a confirmation link has been sent to your email address. Please open the link to activate your account.
|
42
|
+
signed_up_but_locked: You have signed up successfully. However, we could not sign you in because your account is locked.
|
43
43
|
unlocks:
|
44
|
-
send_instructions:
|
45
|
-
unlocked:
|
46
|
-
send_paranoid_instructions:
|
44
|
+
send_instructions: You will receive an email with instructions about how to unlock your account in a few minutes.
|
45
|
+
unlocked: Your account was successfully unlocked. You are now signed in.
|
46
|
+
send_paranoid_instructions: If your account exists, you will receive an email with instructions about how to unlock it in a few minutes.
|
47
47
|
omniauth_callbacks:
|
48
|
-
success:
|
49
|
-
failure:
|
48
|
+
success: Successfully authorized from %{kind} account.
|
49
|
+
failure: Could not authorize you from %{kind} because "%{reason}".
|
50
50
|
mailer:
|
51
51
|
confirmation_instructions:
|
52
|
-
subject:
|
52
|
+
subject: Confirmation instructions
|
53
53
|
reset_password_instructions:
|
54
|
-
subject:
|
54
|
+
subject: Reset password instructions
|
55
55
|
unlock_instructions:
|
56
|
-
subject:
|
56
|
+
subject: Unlock Instructions
|
@@ -0,0 +1,74 @@
|
|
1
|
+
fr:
|
2
|
+
errors:
|
3
|
+
messages:
|
4
|
+
not_found: "introuvable"
|
5
|
+
already_confirmed: "déjà confirmé !"
|
6
|
+
not_locked: "non bloqué"
|
7
|
+
not_saved:
|
8
|
+
one: "Erreur lors de l'enregistrement de '%{resource}': 1 erreur"
|
9
|
+
other: "Erreur lors de l'enregistrement de '%{resource}': %{count} erreurs."
|
10
|
+
|
11
|
+
devise:
|
12
|
+
shared:
|
13
|
+
sign_in: "connexion"
|
14
|
+
sign_up: "inscription"
|
15
|
+
forgot_password: "Mot de passe oublié ?"
|
16
|
+
failure:
|
17
|
+
unauthenticated: "non autentifié, créez un compte si vous n'en avez pas encore."
|
18
|
+
unconfirmed: "Compte toujours pas confirmé."
|
19
|
+
locked: "Votre compte est bloqué!"
|
20
|
+
invalid: "Email ou mot de passe invalide."
|
21
|
+
invalid_token: "Code d'autentification invalide!"
|
22
|
+
timeout: "Session expirée !"
|
23
|
+
inactive: "Compte inactif !"
|
24
|
+
sessions:
|
25
|
+
signed_in: "Connexion réussie."
|
26
|
+
signed_out: "Déconnecté avec succès"
|
27
|
+
passwords:
|
28
|
+
change_your_password: "Veuillez changer votre mot de passe."
|
29
|
+
new_password: "Nouveau mot de passe."
|
30
|
+
confirm_new_password: "Veuillez confirmer votre mot de passer"
|
31
|
+
change_my_password: "Changer mon mot de passe."
|
32
|
+
send_reset_password_instructions: "Envoi des instructions pour la réinitialisation du mot de passe."
|
33
|
+
send_instructions: "Vous recevrez un email avec des instructions pour réinitialiser votre mot de passe dans quelques minutes."
|
34
|
+
updated: "Votre mot de passe a été changé. Vous êtes actuellement connecté."
|
35
|
+
confirmations:
|
36
|
+
resend_instructions: 'Renvoyer la confirmation des instructions.'
|
37
|
+
send_instructions: "Vous recevrez un email avec les instructions pour confirmer votre compte en quelques minutes."
|
38
|
+
confirmed: "Votre compte a bien été confirmée. Vous êtes actuellement connecté."
|
39
|
+
registrations:
|
40
|
+
edit: "Modifier %{resourcename}"
|
41
|
+
leave_blank: "laisser vide si vous ne voulez pas changer"
|
42
|
+
current_password_label: "Entrez votre mot de passe actuel pour confirmer les changements"
|
43
|
+
update: "Mise à jour"
|
44
|
+
unhappy: "Insatisfait ?"
|
45
|
+
cancel_my_account: "Supprimer mon compte"
|
46
|
+
confirm: "Etes-vous sûr(e) ?"
|
47
|
+
back: "Retour"
|
48
|
+
signed_up: "Inscription correctement exécutée. Une confirmation a été envoyée à votre adresse e-mail."
|
49
|
+
inactive_signed_up: 'Inscription correctement exécutée. Cependant, nous ne pouvons pas signer, car votre compte est %{reason}.'
|
50
|
+
updated: "Votre compte a été mis à jour."
|
51
|
+
destroyed: "Au revoir! Votre compte a été supprimé. Nous espérons vous revoir bientôt."
|
52
|
+
omniauth_callbacks:
|
53
|
+
success: "Autorisation réussie pour %{kind}."
|
54
|
+
failure: "Echec de l'autorisation de : %{kind} à cause de : %{reason}"
|
55
|
+
unlocks:
|
56
|
+
send_instructions: "Vous recevrez un email avec les instructions pour déverrouiller votre compte en quelques minutes."
|
57
|
+
unlocked: "Votre compte a été débloqué. Vous êtes actuellement connecté."
|
58
|
+
mailer:
|
59
|
+
hello: "Bonjour, %{email}!"
|
60
|
+
welcome: "Nous vous souhaitons la bienvenue : %{email}!"
|
61
|
+
confirm: "Confirmer mon compte"
|
62
|
+
change: 'Changer mon mot de passe'
|
63
|
+
someone_requested: "Quelqu'un a demandé un lien pour changer votre mot de passe, vous pouvez le faire via le lien ci-dessous."
|
64
|
+
please_ignore: "Si vous n'avez pas fait la demande, ignorez ce message."
|
65
|
+
password_wont_change: "Votre mot de passe ne sera pas modifié jusqu'à ce que vous cliquez sur le lien ci-dessus."
|
66
|
+
locked: "Votre compte a été bloqué en raison d'un nombre excessif de tentatives de connexion infructueuses."
|
67
|
+
click_to_unlock: 'Cliquez sur le lien ci-dessous pour débloquer votre compte : '
|
68
|
+
unlock: 'Débloquer mon compte'
|
69
|
+
confirmation_instructions:
|
70
|
+
subject: "Confirmation de l'utilisateur"
|
71
|
+
reset_password_instructions:
|
72
|
+
subject: "Instructions pour réinitialiser votre mot de passe"
|
73
|
+
unlock_instructions:
|
74
|
+
subject: "Instructions pour déverrouiller le compte"
|
@@ -1,52 +1,52 @@
|
|
1
1
|
ru:
|
2
2
|
errors:
|
3
3
|
messages:
|
4
|
-
not_found:
|
5
|
-
already_confirmed:
|
6
|
-
not_locked:
|
7
|
-
not_saved:
|
4
|
+
not_found: не найдена
|
5
|
+
already_confirmed: уже подтверждена. Пожалуйста, попробуйте войти в систему
|
6
|
+
not_locked: не заблокирована
|
7
|
+
not_saved:
|
8
8
|
devise:
|
9
9
|
sessions:
|
10
|
-
link:
|
11
|
-
signed_in:
|
12
|
-
signed_out:
|
13
|
-
unauthenticated:
|
14
|
-
unconfirmed:
|
15
|
-
locked:
|
16
|
-
invalid:
|
17
|
-
invalid_token:
|
18
|
-
timeout:
|
19
|
-
inactive:
|
10
|
+
link: Войти
|
11
|
+
signed_in: Вы вошли.
|
12
|
+
signed_out: Вы вышли.
|
13
|
+
unauthenticated: Вы должны войти или зарегистрироваться, прежде чем сможете продолжить.
|
14
|
+
unconfirmed: Вы должны подтвердить Ваш аккаунт, прежде чем сможете продолжить.
|
15
|
+
locked: Ваш аккаунт заблокирован.
|
16
|
+
invalid: Неверный пароль или email.
|
17
|
+
invalid_token: Неверный ключ аутентификации.
|
18
|
+
timeout: Ваша сессия закончена, пожалуйста, войдите еще раз, чтобы продолжить.
|
19
|
+
inactive: Ваш аккаунт еще не активирован.
|
20
20
|
passwords:
|
21
|
-
link:
|
22
|
-
send_instructions:
|
23
|
-
updated:
|
21
|
+
link: Забыли пароль?
|
22
|
+
send_instructions: Вы получите email с инструкциями о том, как сбросить Ваш пароль, через несколько минут.
|
23
|
+
updated: Ваш пароль изменен. Сейчас Вы можете войти.
|
24
24
|
confirmations:
|
25
|
-
link:
|
26
|
-
send_instructions:
|
27
|
-
confirmed:
|
25
|
+
link: Не получили иструкции для подтверждения аккаунта?
|
26
|
+
send_instructions: Вы получите письмо с инструкциями о том, как подтвердить Ваш аккаунт.
|
27
|
+
confirmed: Ваш аккаунт успешно подтвержден. Вы вошли.
|
28
28
|
registrations:
|
29
|
-
link:
|
30
|
-
signed_up:
|
31
|
-
updated:
|
32
|
-
destroyed:
|
29
|
+
link: Регистрация
|
30
|
+
signed_up: Вы успешно зарегистрировались.
|
31
|
+
updated: Ваш аккаунт изменен.
|
32
|
+
destroyed: До свидания! Ваш аккаунт удален. Мы надеемся вскоре снова Вас увидеть.
|
33
33
|
unlocks:
|
34
|
-
link:
|
35
|
-
send_instructions:
|
36
|
-
unlocked:
|
34
|
+
link: Не получили инструкции для разблокировки аккаунта?
|
35
|
+
send_instructions: Вы получите письмо с инструкциями о том, как разблокировать Ваш аккаунт, через несколько минут.
|
36
|
+
unlocked: Ваш аккаунт разблокирован. Вы вошли.
|
37
37
|
mailer:
|
38
|
-
confirmation_instructions:
|
39
|
-
reset_password_instructions:
|
40
|
-
unlock_instructions:
|
38
|
+
confirmation_instructions: Инструкции для подтверждения
|
39
|
+
reset_password_instructions: Инструкции для сброса пароля
|
40
|
+
unlock_instructions: Инструкции для разблокировки
|
41
41
|
failure:
|
42
|
-
unauthenticated:
|
43
|
-
unconfirmed:
|
44
|
-
locked:
|
45
|
-
invalid:
|
46
|
-
invalid_token:
|
47
|
-
timeout:
|
48
|
-
inactive:
|
49
|
-
already_authenticated:
|
42
|
+
unauthenticated: Вам необходимо войти в систему или зарегистрироваться.
|
43
|
+
unconfirmed: Вы должны подтвердить вашу учётную запись.
|
44
|
+
locked: Ваша учётная запись заблокирована.
|
45
|
+
invalid: Неверный адрес эл. почты или пароль.
|
46
|
+
invalid_token: Неверный ключ аутентификации.
|
47
|
+
timeout: Ваш сеанс закончился. Пожалуйста, войдите в систему снова.
|
48
|
+
inactive: Ваша учётная запись ещё не активирована.
|
49
|
+
already_authenticated: Вы уже вошли.
|
50
50
|
omniauth_callbacks:
|
51
|
-
success:
|
52
|
-
failure:
|
51
|
+
success: Successfully authorized from %{kind} account.
|
52
|
+
failure: Could not authorize you from %{kind} because "%{reason}".
|
data/core/config/locales/en.yml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
en:
|
2
|
-
dashboard:
|
3
|
-
users:
|
4
|
-
homepage:
|
5
|
-
login:
|
6
|
-
logout:
|
7
|
-
cancel:
|
8
|
-
no:
|
9
|
-
error:
|
10
|
-
sitemap:
|
11
|
-
remember_me:
|
12
|
-
profile:
|
13
|
-
password_error_confirm:
|
14
|
-
save_password:
|
15
|
-
password_changed:
|
2
|
+
dashboard: Dashboard
|
3
|
+
users: Users
|
4
|
+
homepage: Home page
|
5
|
+
login: Login
|
6
|
+
logout: Logout
|
7
|
+
cancel: Cancel
|
8
|
+
no: No
|
9
|
+
error: Error
|
10
|
+
sitemap: Site map
|
11
|
+
remember_me: Remember me
|
12
|
+
profile: Profile
|
13
|
+
password_error_confirm: Password confirmation failed
|
14
|
+
save_password: Save password
|
15
|
+
password_changed: Password changed
|
@@ -0,0 +1,15 @@
|
|
1
|
+
fr:
|
2
|
+
dashboard: Tableau de bord
|
3
|
+
users: Utilisateurs
|
4
|
+
homepage: Page d'accueil
|
5
|
+
login: S'identifier
|
6
|
+
logout: Déconnexion
|
7
|
+
cancel: Résilier
|
8
|
+
no: Pas
|
9
|
+
error: Erreur
|
10
|
+
sitemap: Plan du site
|
11
|
+
remember_me: Se souvenir de moi
|
12
|
+
profile: Profil
|
13
|
+
password_error_confirm: Confirmation mot de passe n'a pas
|
14
|
+
save_password: Enregistrer le mot de passe
|
15
|
+
password_changed: Mot de passe modifié
|
data/core/config/locales/ru.yml
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
ru:
|
2
|
-
dashboard:
|
3
|
-
homepage:
|
4
|
-
users:
|
5
|
-
login:
|
6
|
-
logout:
|
7
|
-
cancel:
|
8
|
-
no:
|
9
|
-
error:
|
10
|
-
sitemap:
|
11
|
-
remember_me:
|
12
|
-
profile:
|
13
|
-
save_password:
|
14
|
-
password_changed:
|
15
|
-
password_error_confirm:
|
2
|
+
dashboard: Панель управления
|
3
|
+
homepage: Главная страница
|
4
|
+
users: Пользователи
|
5
|
+
login: Войти
|
6
|
+
logout: Выйти
|
7
|
+
cancel: Отмена
|
8
|
+
no: Нет
|
9
|
+
error: Ошибка
|
10
|
+
sitemap: Карта сайта
|
11
|
+
remember_me: Запомнить меня
|
12
|
+
profile: Профиль
|
13
|
+
save_password: Сохранить пароль
|
14
|
+
password_changed: Пароль успешно изменен
|
15
|
+
password_error_confirm: Пароли не совпадают
|
16
16
|
|
17
17
|
activerecord:
|
18
18
|
attributes:
|
19
19
|
constructor_core/user:
|
20
|
-
email:
|
21
|
-
password:
|
22
|
-
password_confirmation:
|
23
|
-
remember_me:
|
20
|
+
email: Эл. почта
|
21
|
+
password: Пароль
|
22
|
+
password_confirmation: Пароль, еще раз
|
23
|
+
remember_me: Запомнить меня
|
24
24
|
helpers:
|
25
25
|
submit:
|
26
|
-
create:
|
27
|
-
update:
|
26
|
+
create: Добавить
|
27
|
+
update: Сохранить
|