devise-security 0.14.2 → 0.17.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +125 -59
- data/app/controllers/devise/paranoid_verification_code_controller.rb +13 -1
- data/app/controllers/devise/password_expired_controller.rb +24 -6
- data/app/views/devise/paranoid_verification_code/show.html.erb +3 -3
- data/app/views/devise/password_expired/show.html.erb +5 -5
- data/config/locales/bg.yml +41 -0
- data/config/locales/by.yml +49 -0
- data/config/locales/cs.yml +41 -0
- data/config/locales/de.yml +15 -2
- data/config/locales/en.yml +15 -2
- data/config/locales/es.yml +10 -9
- data/config/locales/fa.yml +41 -0
- data/config/locales/fr.yml +1 -0
- data/config/locales/hi.yml +42 -0
- data/config/locales/it.yml +35 -4
- data/config/locales/ja.yml +2 -1
- data/config/locales/nl.yml +41 -0
- data/config/locales/pt.yml +41 -0
- data/config/locales/ru.yml +49 -0
- data/config/locales/tr.yml +1 -0
- data/config/locales/uk.yml +49 -0
- data/config/locales/zh_CN.yml +41 -0
- data/config/locales/zh_TW.yml +41 -0
- data/lib/devise-security/controllers/helpers.rb +59 -50
- data/lib/devise-security/hooks/password_expirable.rb +2 -0
- data/lib/devise-security/hooks/session_limitable.rb +21 -11
- data/lib/devise-security/models/database_authenticatable_patch.rb +15 -5
- data/lib/devise-security/models/password_archivable.rb +2 -2
- data/lib/devise-security/models/password_expirable.rb +5 -1
- data/lib/devise-security/models/secure_validatable.rb +56 -6
- data/lib/devise-security/models/session_limitable.rb +10 -1
- data/lib/devise-security/validators/password_complexity_validator.rb +53 -24
- data/lib/devise-security/version.rb +1 -1
- data/lib/devise-security.rb +13 -5
- data/lib/generators/devise_security/install_generator.rb +3 -3
- data/lib/generators/templates/{devise-security.rb → devise_security.rb} +6 -1
- data/test/controllers/test_paranoid_verification_code_controller.rb +68 -0
- data/test/controllers/test_password_expired_controller.rb +121 -19
- data/test/controllers/test_security_question_controller.rb +16 -40
- data/test/dummy/app/assets/config/manifest.js +3 -0
- data/test/dummy/app/controllers/overrides/paranoid_verification_code_controller.rb +7 -0
- data/test/dummy/app/controllers/overrides/password_expired_controller.rb +7 -0
- data/test/dummy/app/controllers/widgets_controller.rb +3 -0
- data/test/dummy/app/models/application_user_record.rb +2 -1
- data/test/dummy/app/models/mongoid/confirmable_fields.rb +2 -0
- data/test/dummy/app/models/mongoid/database_authenticable_fields.rb +4 -3
- data/test/dummy/app/models/mongoid/expirable_fields.rb +2 -0
- data/test/dummy/app/models/mongoid/lockable_fields.rb +2 -0
- data/test/dummy/app/models/mongoid/mappings.rb +4 -2
- data/test/dummy/app/models/mongoid/omniauthable_fields.rb +2 -0
- data/test/dummy/app/models/mongoid/paranoid_verification_fields.rb +2 -0
- data/test/dummy/app/models/mongoid/password_archivable_fields.rb +2 -0
- data/test/dummy/app/models/mongoid/password_expirable_fields.rb +2 -0
- data/test/dummy/app/models/mongoid/recoverable_fields.rb +2 -0
- data/test/dummy/app/models/mongoid/registerable_fields.rb +4 -2
- data/test/dummy/app/models/mongoid/rememberable_fields.rb +2 -0
- data/test/dummy/app/models/mongoid/secure_validatable_fields.rb +2 -0
- data/test/dummy/app/models/mongoid/security_questionable_fields.rb +2 -0
- data/test/dummy/app/models/mongoid/session_limitable_fields.rb +2 -0
- data/test/dummy/app/models/mongoid/timeoutable_fields.rb +2 -0
- data/test/dummy/app/models/mongoid/trackable_fields.rb +2 -0
- data/test/dummy/app/models/mongoid/validatable_fields.rb +2 -0
- data/test/dummy/app/models/paranoid_verification_user.rb +26 -0
- data/test/dummy/app/models/password_expired_user.rb +26 -0
- data/test/dummy/app/models/user.rb +1 -2
- data/test/dummy/app/models/widget.rb +1 -3
- data/test/dummy/app/mongoid/one_user.rb +5 -5
- data/test/dummy/app/mongoid/user_on_engine.rb +2 -2
- data/test/dummy/app/mongoid/user_on_main_app.rb +2 -2
- data/test/dummy/app/mongoid/user_with_validations.rb +3 -3
- data/test/dummy/app/mongoid/user_without_email.rb +3 -3
- data/test/dummy/config/application.rb +4 -4
- data/test/dummy/config/boot.rb +1 -1
- data/test/dummy/config/environment.rb +1 -1
- data/test/dummy/config/environments/test.rb +3 -13
- data/test/dummy/config/initializers/migration_class.rb +1 -8
- data/test/dummy/config/locales/en.yml +10 -0
- data/test/dummy/config/mongoid.yml +1 -1
- data/test/dummy/config/routes.rb +5 -3
- data/test/dummy/db/migrate/20120508165529_create_tables.rb +3 -3
- data/test/dummy/lib/shared_expirable_columns.rb +1 -0
- data/test/dummy/lib/shared_security_questions_fields.rb +1 -0
- data/test/dummy/lib/shared_user.rb +17 -6
- data/test/dummy/lib/shared_user_without_email.rb +2 -1
- data/test/dummy/lib/shared_user_without_omniauth.rb +12 -3
- data/test/dummy/lib/shared_verification_fields.rb +1 -0
- data/test/dummy/{app/models/.gitkeep → log/development.log} +0 -0
- data/test/dummy/log/test.log +101533 -0
- data/test/integration/test_password_expirable_workflow.rb +53 -0
- data/test/integration/test_session_limitable_workflow.rb +2 -0
- data/test/orm/active_record.rb +7 -4
- data/test/orm/mongoid.rb +2 -1
- data/test/support/integration_helpers.rb +15 -33
- data/test/support/mongoid.yml +1 -1
- data/test/test_compatibility.rb +2 -0
- data/test/test_complexity_validator.rb +250 -29
- data/test/test_database_authenticatable_patch.rb +146 -0
- data/test/test_helper.rb +12 -6
- data/test/test_install_generator.rb +12 -2
- data/test/test_paranoid_verification.rb +0 -1
- data/test/test_password_archivable.rb +34 -11
- data/test/test_password_expirable.rb +26 -26
- data/test/test_secure_validatable.rb +292 -50
- data/test/test_secure_validatable_overrides.rb +185 -0
- data/test/test_session_limitable.rb +27 -1
- data/test/tmp/config/initializers/devise_security.rb +49 -0
- data/test/tmp/config/locales/devise.security_extension.by.yml +49 -0
- data/test/tmp/config/locales/devise.security_extension.cs.yml +41 -0
- data/test/tmp/config/locales/devise.security_extension.de.yml +41 -0
- data/test/tmp/config/locales/devise.security_extension.en.yml +42 -0
- data/test/tmp/config/locales/devise.security_extension.es.yml +30 -0
- data/test/tmp/config/locales/devise.security_extension.fa.yml +41 -0
- data/test/tmp/config/locales/devise.security_extension.fr.yml +30 -0
- data/test/tmp/config/locales/devise.security_extension.hi.yml +42 -0
- data/test/tmp/config/locales/devise.security_extension.it.yml +41 -0
- data/test/tmp/config/locales/devise.security_extension.ja.yml +30 -0
- data/test/tmp/config/locales/devise.security_extension.nl.yml +41 -0
- data/test/tmp/config/locales/devise.security_extension.pt.yml +41 -0
- data/test/tmp/config/locales/devise.security_extension.ru.yml +49 -0
- data/test/tmp/config/locales/devise.security_extension.tr.yml +18 -0
- data/test/tmp/config/locales/devise.security_extension.uk.yml +49 -0
- data/test/tmp/config/locales/devise.security_extension.zh_CN.yml +41 -0
- data/test/tmp/config/locales/devise.security_extension.zh_TW.yml +41 -0
- metadata +168 -132
- data/.codeclimate.yml +0 -63
- data/.document +0 -5
- data/.gitignore +0 -43
- data/.mdlrc +0 -1
- data/.rubocop.yml +0 -64
- data/.ruby-version +0 -1
- data/.travis.yml +0 -39
- data/Appraisals +0 -35
- data/Gemfile +0 -10
- data/Rakefile +0 -27
- data/devise-security.gemspec +0 -50
- data/gemfiles/rails_4.2_stable.gemfile +0 -16
- data/gemfiles/rails_5.0_stable.gemfile +0 -15
- data/gemfiles/rails_5.1_stable.gemfile +0 -15
- data/gemfiles/rails_5.2_stable.gemfile +0 -15
- data/gemfiles/rails_6.0_beta.gemfile +0 -15
- data/lib/devise-security/orm/active_record.rb +0 -20
- data/lib/devise-security/schema.rb +0 -66
- data/test/dummy/app/models/secure_user.rb +0 -9
data/config/locales/en.yml
CHANGED
@@ -3,16 +3,17 @@ en:
|
|
3
3
|
messages:
|
4
4
|
taken_in_past: 'was used previously.'
|
5
5
|
equal_to_current_password: 'must be different than the current password.'
|
6
|
+
equal_to_email: 'must be different than the email.'
|
6
7
|
password_complexity:
|
7
8
|
digit:
|
8
9
|
one: must contain at least one digit
|
9
|
-
other: must contain at least %{count}
|
10
|
+
other: must contain at least %{count} digits
|
10
11
|
lower:
|
11
12
|
one: must contain at least one lower-case letter
|
12
13
|
other: must contain at least %{count} lower-case letters
|
13
14
|
symbol:
|
14
15
|
one: must contain at least one punctuation mark or symbol
|
15
|
-
other: must contain at least %{count}
|
16
|
+
other: must contain at least %{count} punctuation marks or symbols
|
16
17
|
upper:
|
17
18
|
one: must contain at least one upper-case letter
|
18
19
|
other: must contain at least %{count} upper-case letters
|
@@ -21,9 +22,21 @@ en:
|
|
21
22
|
invalid_security_question: 'The security question answer was invalid.'
|
22
23
|
paranoid_verify:
|
23
24
|
code_required: 'Please enter the code our support team provided'
|
25
|
+
paranoid_verification_code:
|
26
|
+
updated: Verification code accepted
|
27
|
+
show:
|
28
|
+
submit_verification_code: Submit verification code
|
29
|
+
verification_code: Verification code
|
30
|
+
submit: Submit
|
24
31
|
password_expired:
|
25
32
|
updated: 'Your new password is saved.'
|
26
33
|
change_required: 'Your password is expired. Please renew your password.'
|
34
|
+
show:
|
35
|
+
renew_your_password: Renew your password
|
36
|
+
current_password: Current password
|
37
|
+
new_password: New password
|
38
|
+
new_password_confirmation: Confirm new password
|
39
|
+
change_my_password: Change my password
|
27
40
|
failure:
|
28
41
|
session_limited: 'Your login credentials were used in another browser. Please sign in again to continue in this browser.'
|
29
42
|
expired: 'Your account has expired due to inactivity. Please contact the site administrator.'
|
data/config/locales/es.yml
CHANGED
@@ -1,29 +1,30 @@
|
|
1
1
|
es:
|
2
2
|
errors:
|
3
3
|
messages:
|
4
|
-
taken_in_past: 'la contraseña fue usada previamente, favor
|
4
|
+
taken_in_past: 'la contraseña fue usada previamente, por favor elige otra.'
|
5
5
|
equal_to_current_password: 'tiene que ser diferente a la contraseña actual.'
|
6
|
+
equal_to_email: 'tiene que ser diferente al email'
|
6
7
|
password_complexity:
|
7
8
|
digit:
|
8
|
-
one: tiene que contener al menos un
|
9
|
-
other: tiene que contener al menos %{count}
|
9
|
+
one: tiene que contener al menos un dígito
|
10
|
+
other: tiene que contener al menos %{count} dígitos
|
10
11
|
lower:
|
11
|
-
one: tiene que contener al menos
|
12
|
+
one: tiene que contener al menos una minúscula
|
12
13
|
other: tiene que contener al menos %{count} minúsculas
|
13
14
|
symbol:
|
14
15
|
one: tiene que contener al menos un signo de puntuación
|
15
16
|
other: tiene que contener al menos %{count} signos de puntuación
|
16
17
|
upper:
|
17
|
-
one: tiene que contener al menos
|
18
|
+
one: tiene que contener al menos una mayúscula
|
18
19
|
other: tiene que contener al menos %{count} mayúsculas
|
19
20
|
devise:
|
20
21
|
invalid_captcha: 'El captcha ingresado es inválido.'
|
21
|
-
invalid_security_question: 'La respuesta a la pregunta de
|
22
|
+
invalid_security_question: 'La respuesta a la pregunta de seguridad fue incorrecta.'
|
22
23
|
paranoid_verify:
|
23
24
|
code_required: 'Por favor ingrese el código provisto por nuestro equipo de soporte'
|
24
25
|
password_expired:
|
25
|
-
updated: 'Su nueva
|
26
|
-
change_required: 'Su
|
26
|
+
updated: 'Su nueva contraseña ha sido guardada.'
|
27
|
+
change_required: 'Su contraseña ha expirado. Por favor renueve su contraseña.'
|
27
28
|
failure:
|
28
|
-
session_limited: 'Sus credenciales de inicio de sesión fueron usadas en otro navegador. Por favor inicie sesión nuevamente para continuar en
|
29
|
+
session_limited: 'Sus credenciales de inicio de sesión fueron usadas en otro navegador. Por favor inicie sesión nuevamente para continuar en este navegador.'
|
29
30
|
expired: 'Su cuenta ha expirado debido a inactividad. Por favor contacte al administrador de la aplicación.'
|
@@ -0,0 +1,41 @@
|
|
1
|
+
fa:
|
2
|
+
errors:
|
3
|
+
messages:
|
4
|
+
taken_in_past: 'قبلا استفاده شده است'
|
5
|
+
equal_to_current_password: 'باید متفاوت با رمز عبور فعلی باشد'
|
6
|
+
equal_to_email: 'باید متفاوت از ایمیل باشد'
|
7
|
+
password_complexity:
|
8
|
+
digit:
|
9
|
+
one: باید حداقل یک رقم داشته باشد
|
10
|
+
other: باید حداقل %{count} عدد داشته باشد
|
11
|
+
lower:
|
12
|
+
one: باید حداقل شامل یک حرف کوچک باشد
|
13
|
+
other: باید حداقل %{count} حروف کوچک داشته باشد
|
14
|
+
symbol:
|
15
|
+
one: باید حداقل دارای یک علامت یا کارکتر خاص باشد
|
16
|
+
other: باید حداقل دارای %{count} علائم یا کارکتر های خاص باشد
|
17
|
+
upper:
|
18
|
+
one: باید حداقل یک حرف بزرگ داشته باشد
|
19
|
+
other: باید حداقل %{count} حروف بزرگ داشته باشد
|
20
|
+
devise:
|
21
|
+
invalid_captcha: 'اطلاعات وارد شده در کپچا نامعتبر بود'
|
22
|
+
invalid_security_question: 'پاسخ سوال امنیتی نامعتبر بود'
|
23
|
+
paranoid_verify:
|
24
|
+
code_required: 'لطفاً کدی را که تیم پشتیبانی ما ارائه کرده است وارد کنید'
|
25
|
+
paranoid_verification_code:
|
26
|
+
show:
|
27
|
+
submit_verification_code: ارسال کد تاییدیه
|
28
|
+
verification_code: کد تاییدیه
|
29
|
+
submit: ارسال
|
30
|
+
password_expired:
|
31
|
+
updated: 'رمز جدید شما ذخیره شده است'
|
32
|
+
change_required: 'رمز عبور شما منقضی شده است ،لطفاً رمز خود را تمدید کنید'
|
33
|
+
show:
|
34
|
+
renew_your_password: ساختن رمز عبور جدید
|
35
|
+
current_password: رمز عبور جاری
|
36
|
+
new_password: رمز عبور جدید
|
37
|
+
new_password_confirmation: تکرار رمز جدید
|
38
|
+
change_my_password: تغییر رمز عبور
|
39
|
+
failure:
|
40
|
+
session_limited: 'از اطلاعات ورود شما در مرورگر دیگری استفاده شده است، برای ادامه در این مرورگر لطفاً دوباره وارد سیستم شوید'
|
41
|
+
expired: 'حساب شما به دلیل عدم فعالیت منقضی شده است، لطفاً با مدیر سایت تماس بگیرید.'
|
data/config/locales/fr.yml
CHANGED
@@ -3,6 +3,7 @@ fr:
|
|
3
3
|
messages:
|
4
4
|
taken_in_past: a été utilisé trop récemment. Veuillez en choisir un autre
|
5
5
|
equal_to_current_password: doit être différent de l'actuel
|
6
|
+
equal_to_email: doit être différent de l'e-mail
|
6
7
|
password_complexity:
|
7
8
|
digit:
|
8
9
|
one: doit contenir au moins un chiffre
|
@@ -0,0 +1,42 @@
|
|
1
|
+
|
2
|
+
hi:
|
3
|
+
errors:
|
4
|
+
messages:
|
5
|
+
taken_in_past: यह पासवर्ड, आपके द्वारा पूर्व मे प्रयोग किया जा चुका है
|
6
|
+
equal_to_current_password: नया पासवर्ड, वर्तमान पासवर्ड से भिन्न होना चाहिए
|
7
|
+
equal_to_email: ईमेल से अलग होना चाहिए
|
8
|
+
password_complexity:
|
9
|
+
digit:
|
10
|
+
one: एक अंक होना चाहिए
|
11
|
+
other: कम से कम %{count} अंक होने चाहिए
|
12
|
+
lower:
|
13
|
+
one: एक लोअर-केस अक्षर होना चाहिए
|
14
|
+
other: कम से कम %{count} अक्षर होने चाहिए
|
15
|
+
symbol:
|
16
|
+
one: एक चिन्ह होना चाहिए
|
17
|
+
other: कम से कम %{count} चिन्ह होने चाहिए
|
18
|
+
upper:
|
19
|
+
one: एक अपर-केस अक्षर होना चाहिए
|
20
|
+
other: कम से कम %{count} अपर-केस अक्षर होने चाहिए
|
21
|
+
devise:
|
22
|
+
invalid_captcha: अमान्य कॅप्टचा
|
23
|
+
invalid_security_question: अमान्य सुरक्षा उत्तर
|
24
|
+
paranoid_verify:
|
25
|
+
code_required: सपोर्ट टीम द्वारा दिया गया कोड डाले
|
26
|
+
paranoid_verification_code:
|
27
|
+
show:
|
28
|
+
submit_verification_code: वेरिफिकेशन कोड डाले
|
29
|
+
verification_code: वेरिफिकेशन कोड
|
30
|
+
submit: सबमिट
|
31
|
+
password_expired:
|
32
|
+
updated: पासवर्ड अद्यतन किया गया
|
33
|
+
change_required: पासवर्ड अमान्य हो चुका, पासवर्ड बदले
|
34
|
+
show:
|
35
|
+
renew_your_password: पासवर्ड बदले
|
36
|
+
current_password: वर्तमान पासवर्ड
|
37
|
+
new_password: नया पासवर्ड
|
38
|
+
new_password_confirmation: नए पासवर्ड की पुष्टि करें
|
39
|
+
change_my_password: पासवर्ड बदले
|
40
|
+
failure:
|
41
|
+
session_limited: जानकारी, दूसरे ब्राउज़र में उपयोग की गयी थी जारी रखने फिर से साइन-इन करे
|
42
|
+
expired: कोई गतिविधि न होने के कारण खाता बंद हो गया, सिस्टम व्यवस्थापक से संपर्क करें
|
data/config/locales/it.yml
CHANGED
@@ -1,10 +1,41 @@
|
|
1
1
|
it:
|
2
2
|
errors:
|
3
3
|
messages:
|
4
|
-
taken_in_past: "
|
4
|
+
taken_in_past: "è stata gia' utilizzata in passato!"
|
5
5
|
equal_to_current_password: " deve essere differente dalla password corrente!"
|
6
|
+
equal_to_email: "deve essere differente dall'email"
|
7
|
+
password_complexity:
|
8
|
+
digit:
|
9
|
+
one: deve contenere almeno una cifra
|
10
|
+
other: deve contenere almeno %{count} cifre
|
11
|
+
lower:
|
12
|
+
one: deve contenere almeno una lettera minuscola
|
13
|
+
other: deve contenere almeno %{count} lettere minuscole
|
14
|
+
symbol:
|
15
|
+
one: deve contenere almeno un simbolo di punteggiatura o un simbolo speciale
|
16
|
+
other: deve contenere almeno %{count} tra simboli di punteggiatura e simboli speciali
|
17
|
+
upper:
|
18
|
+
one: deve contenere almeno una lettera maiuscola
|
19
|
+
other: deve contenere almeno %{count} lettere maiuscole
|
6
20
|
devise:
|
7
|
-
invalid_captcha: "Il captcha inserito non
|
21
|
+
invalid_captcha: "Il captcha inserito non è valido!"
|
22
|
+
invalid_security_question: 'La risposta alla domanda di sicurezza non è valida.'
|
23
|
+
paranoid_verify:
|
24
|
+
code_required: 'Inserisci il codice fornito dal nostro team di supporto'
|
25
|
+
paranoid_verification_code:
|
26
|
+
show:
|
27
|
+
submit_verification_code: Invia codice di verifica
|
28
|
+
verification_code: Codice di verifica
|
29
|
+
submit: Invia
|
8
30
|
password_expired:
|
9
|
-
updated: "La tua nuova password
|
10
|
-
change_required: "La tua password
|
31
|
+
updated: "La tua nuova password è stata salvata."
|
32
|
+
change_required: "La tua password è scaduta. Si prega di rinnovarla!"
|
33
|
+
show:
|
34
|
+
renew_your_password: Rinnova la tua password
|
35
|
+
current_password: Password attuale
|
36
|
+
new_password: Nuova password
|
37
|
+
new_password_confirmation: Conferma nuova password
|
38
|
+
change_my_password: Cambia la mia password
|
39
|
+
failure:
|
40
|
+
session_limited: "Hai effettuato l accesso in un altro browser. Fai nuovamente l accesso per connetterti in questo."
|
41
|
+
expired: 'Il tuo account è stato bloccato per inattività. Contatta l amministratore del sito.'
|
data/config/locales/ja.yml
CHANGED
@@ -3,6 +3,7 @@ ja:
|
|
3
3
|
messages:
|
4
4
|
taken_in_past: 'は既に使われています。'
|
5
5
|
equal_to_current_password: 'は現在のパスワードと異なるものである必要があります。'
|
6
|
+
equal_to_email: 'メールとは異なる必要があります'
|
6
7
|
password_complexity:
|
7
8
|
digit:
|
8
9
|
one: は最低1つの数字を含む必要があります。
|
@@ -18,7 +19,7 @@ ja:
|
|
18
19
|
other: は最低%{count}つの大文字英字を含む必要があります。
|
19
20
|
devise:
|
20
21
|
invalid_captcha: 'キャプチャ入力が不正です。'
|
21
|
-
invalid_security_question: '
|
22
|
+
invalid_security_question: 'セキュリティ質問に対する回答が不正です。'
|
22
23
|
paranoid_verify:
|
23
24
|
code_required: 'サポートチームに提供された認証コードを入力してください。'
|
24
25
|
password_expired:
|
@@ -0,0 +1,41 @@
|
|
1
|
+
nl:
|
2
|
+
errors:
|
3
|
+
messages:
|
4
|
+
taken_in_past: is eerder gebruikt.
|
5
|
+
equal_to_current_password: moet verschillen van het huidige wachtwoord.
|
6
|
+
equal_to_email: moet anders zijn dan de e-mail
|
7
|
+
password_complexity:
|
8
|
+
digit:
|
9
|
+
one: moet minimaal 1 cijfer bevatten
|
10
|
+
other: moet minimaal %{count} cijfers bevatten
|
11
|
+
lower:
|
12
|
+
one: moet minimaal 1 kleine letter bevatten
|
13
|
+
other: moet minimaal %{count} kleine letters bevatten
|
14
|
+
symbol:
|
15
|
+
one: moet minimaal 1 leesteken of symbool bevatten
|
16
|
+
other: moet minimaal %{count} leestekens of symbolen bevatten
|
17
|
+
upper:
|
18
|
+
one: moet minimaal 1 hoofdletter bevatten
|
19
|
+
other: moet minimaal %{count} hoofdletters bevatten
|
20
|
+
devise:
|
21
|
+
invalid_captcha: De captcha invoer was ongeldig.
|
22
|
+
invalid_security_question: Het antwoord op de beveiligingsvraag was niet correct.
|
23
|
+
paranoid_verify:
|
24
|
+
code_required: Voer de aangeleverde code in
|
25
|
+
paranoid_verification_code:
|
26
|
+
show:
|
27
|
+
submit_verification_code: Verstuur verificatie code
|
28
|
+
verification_code: Verificatie code
|
29
|
+
submit: Verstuur
|
30
|
+
password_expired:
|
31
|
+
updated: Het nieuwe wachtwoord is opgeslagen.
|
32
|
+
change_required: Het wachtwoord is verlopen. Vernieuw je wachtwoord.
|
33
|
+
show:
|
34
|
+
renew_your_password: Vernieuw je wachtwoord
|
35
|
+
current_password: Huidig wachtwoord
|
36
|
+
new_password: Nieuw wachtwoord
|
37
|
+
new_password_confirmation: Bevestig het nieuwe wachtwoord
|
38
|
+
change_my_password: Verander mijn wachtwoord
|
39
|
+
failure:
|
40
|
+
session_limited: Je login is in een andere browser gebruikt. Log hier opnieuw in.
|
41
|
+
expired: Je account is verlopen. Neem contact op met de site beheerder.
|
@@ -0,0 +1,41 @@
|
|
1
|
+
pt:
|
2
|
+
errors:
|
3
|
+
messages:
|
4
|
+
taken_in_past: 'foi usada anteriormente.'
|
5
|
+
equal_to_current_password: 'deve ser diferente da senha atual.'
|
6
|
+
equal_to_email: 'deve ser diferente do e-mail.'
|
7
|
+
password_complexity:
|
8
|
+
digit:
|
9
|
+
one: deve conter ao menos um dígito
|
10
|
+
other: deve conter ao menos %{count} dígitos
|
11
|
+
lower:
|
12
|
+
one: deve conter ao menos uma letra minúscula
|
13
|
+
other: deve conter ao menos %{count} letras minúsculas
|
14
|
+
symbol:
|
15
|
+
one: deve conter ao menos um símbolo
|
16
|
+
other: deve conter ao menos %{count} símbolos
|
17
|
+
upper:
|
18
|
+
one: deve conter ao menos uma letra maiúscula
|
19
|
+
other: deve conter ao menos %{count} letras maiúsculas
|
20
|
+
devise:
|
21
|
+
invalid_captcha: 'O captcha está errado.'
|
22
|
+
invalid_security_question: 'A resposta da pergunta de segurança está errada.'
|
23
|
+
paranoid_verify:
|
24
|
+
code_required: 'Por favor entre o código que a equipe de suporte enviou'
|
25
|
+
paranoid_verification_code:
|
26
|
+
show:
|
27
|
+
submit_verification_code: Enviar código de verificação
|
28
|
+
verification_code: Código de verificação
|
29
|
+
submit: Enviar
|
30
|
+
password_expired:
|
31
|
+
updated: 'A nova senha foi salva.'
|
32
|
+
change_required: 'Sua senha expirou. Renove sua senha por favor.'
|
33
|
+
show:
|
34
|
+
renew_your_password: Renove sua senha
|
35
|
+
current_password: Senha atual
|
36
|
+
new_password: Senha nova
|
37
|
+
new_password_confirmation: Confirmar senha nova
|
38
|
+
change_my_password: Mudar minha senha
|
39
|
+
failure:
|
40
|
+
session_limited: 'Seu login foi utilizado em outro local. Faça o login novamente para continuar.'
|
41
|
+
expired: 'Sua conta expirou por inatividade. Por favor contate o administrador do site.'
|
@@ -0,0 +1,49 @@
|
|
1
|
+
ru:
|
2
|
+
errors:
|
3
|
+
messages:
|
4
|
+
taken_in_past: 'уже ранее использовался.'
|
5
|
+
equal_to_current_password: 'должен отличаться от текущего пароля.'
|
6
|
+
equal_to_email: 'должно отличаться от адреса электронной почты.'
|
7
|
+
password_complexity:
|
8
|
+
digit:
|
9
|
+
one: 'должен содержать хотя бы одну цифру'
|
10
|
+
few: 'должен содержать хотя бы %{count} цифры'
|
11
|
+
many: 'должен содержать хотя бы %{count} цифр'
|
12
|
+
other: 'должен содержать хотя бы %{count} цифры'
|
13
|
+
lower:
|
14
|
+
one: 'должен содержать хотя бы одну строчную букву'
|
15
|
+
few: 'должен содержать хотя бы %{count} строчные буквы'
|
16
|
+
many: 'должен содержать хотя бы %{count} строчных букв'
|
17
|
+
other: 'должен содержать хотя бы %{count} строчных букв'
|
18
|
+
symbol:
|
19
|
+
one: 'должен содержать хотя бы один знак пунктуации или символ'
|
20
|
+
few: 'должен содержать хотя бы %{count} знака пунктуации или символа'
|
21
|
+
many: 'должен содержать хотя бы %{count} знаков пунктуации или символов'
|
22
|
+
other: 'должен содержать хотя бы %{count} знаков пунктуации или символов'
|
23
|
+
upper:
|
24
|
+
one: 'должен содержать хотя бы одну прописную букву'
|
25
|
+
few: 'должен содержать хотя бы %{count} прописные буквы'
|
26
|
+
many: 'должен содержать хотя бы %{count} прописных букв'
|
27
|
+
other: 'должен содержать хотя бы %{count} прописных букв'
|
28
|
+
devise:
|
29
|
+
invalid_captcha: 'Введен неправильный код капчи.'
|
30
|
+
invalid_security_question: 'Ответ на секретный вопрос был неверным.'
|
31
|
+
paranoid_verify:
|
32
|
+
code_required: 'Пожалуйста введите код, полученный от нашей команды поддержки'
|
33
|
+
paranoid_verification_code:
|
34
|
+
show:
|
35
|
+
submit_verification_code: Ввод кода подтверждения
|
36
|
+
verification_code: Код подверждения
|
37
|
+
submit: Отправить
|
38
|
+
password_expired:
|
39
|
+
updated: 'Ваш новый пароль сохранен.'
|
40
|
+
change_required: 'Ваш пароль устарел. Пожалуйста, установите новый.'
|
41
|
+
show:
|
42
|
+
renew_your_password: Смена пароля
|
43
|
+
current_password: Текущий пароль
|
44
|
+
new_password: Новый пароль
|
45
|
+
new_password_confirmation: Подтвердите новый пароль
|
46
|
+
change_my_password: Поменять пароль
|
47
|
+
failure:
|
48
|
+
session_limited: 'Ваши параметры входа используются в другом браузере. Пожалуйста, авторизуйтесь снова, чтобы продолжить в этом браузере.'
|
49
|
+
expired: 'Ваш аккаунт устарел из-за неактивности. Пожалуйста, свяжитесь с администратором.'
|
data/config/locales/tr.yml
CHANGED
@@ -3,6 +3,7 @@ tr:
|
|
3
3
|
messages:
|
4
4
|
taken_in_past: "daha önce kullanıldı."
|
5
5
|
equal_to_current_password: "mevcut paroladan farklı olmalı."
|
6
|
+
equal_to_email: "e-postadan farklı olmalı."
|
6
7
|
password_format: "büyük, küçük harfler ve sayılar içermeli."
|
7
8
|
devise:
|
8
9
|
invalid_captcha: "Captcha hatalı."
|
@@ -0,0 +1,49 @@
|
|
1
|
+
uk:
|
2
|
+
errors:
|
3
|
+
messages:
|
4
|
+
taken_in_past: 'раніше використовувався.'
|
5
|
+
equal_to_current_password: 'має відрізнятися від поточного паролю.'
|
6
|
+
equal_to_email: 'має відрізнятися від електронної пошти.'
|
7
|
+
password_complexity:
|
8
|
+
digit:
|
9
|
+
one: 'повинен включати хоча б одну цифру'
|
10
|
+
few: 'повинен включати хоча б %{count} цифри'
|
11
|
+
many: 'повинен включати хоча б %{count} цифр'
|
12
|
+
other: 'повинен включати хоча б %{count} цифри'
|
13
|
+
lower:
|
14
|
+
one: 'повинен включати хоча б одну малу букву'
|
15
|
+
few: 'повинен включати хоча б %{count} малі букви'
|
16
|
+
many: 'повинен включати хоча б %{count} малих букв'
|
17
|
+
other: 'повинен включати хоча б %{count} малі букви'
|
18
|
+
symbol:
|
19
|
+
one: 'повинен включати хоча б один розділовий знак або символ'
|
20
|
+
few: 'повинен включати хоча б %{count} розділові знаки або символи'
|
21
|
+
many: 'повинен включати хоча б %{count} розділових знаків або символів'
|
22
|
+
other: 'повинен включати хоча б %{count} розділові знаки або символи'
|
23
|
+
upper:
|
24
|
+
one: 'повинен включати хоча б одну прописну букву'
|
25
|
+
few: 'повинен включати хоча б %{count} прописні букви'
|
26
|
+
many: 'повинен включати хоча б %{count} прописних букв'
|
27
|
+
other: 'повинен включати хоча б %{count} прописні букви'
|
28
|
+
devise:
|
29
|
+
invalid_captcha: 'Введення капчі недійсне.'
|
30
|
+
invalid_security_question: 'Неправильна відповідь на секретне питання.'
|
31
|
+
paranoid_verify:
|
32
|
+
code_required: 'Введіть, будь ласка, код від нашої команди підтримки'
|
33
|
+
paranoid_verification_code:
|
34
|
+
show:
|
35
|
+
submit_verification_code: Відправити код підтвердження
|
36
|
+
verification_code: Код підтвердження
|
37
|
+
submit: Відправити
|
38
|
+
password_expired:
|
39
|
+
updated: 'Ваш новий пароль збережено.'
|
40
|
+
change_required: 'Ваш пароль застарілий. Будь ласка, оновіть пароль.'
|
41
|
+
show:
|
42
|
+
renew_your_password: Оновити свій пароль
|
43
|
+
current_password: Теперішній пароль
|
44
|
+
new_password: Новий пароль
|
45
|
+
new_password_confirmation: Підтвердити новий пароль
|
46
|
+
change_my_password: Змінити пароль
|
47
|
+
failure:
|
48
|
+
session_limited: 'Ваші облікові дані були використані в іншому браузері. Будь ласка, авторизуйтесь знову щоб продовжити в цьому браузері.'
|
49
|
+
expired: "Ваш аккаунт застарів через неактивність. Будь ласка, зв'яжіться з адміністратором."
|
@@ -0,0 +1,41 @@
|
|
1
|
+
zh_CN:
|
2
|
+
errors:
|
3
|
+
messages:
|
4
|
+
taken_in_past: '曾被使用过。'
|
5
|
+
equal_to_current_password: '必须与当前密码不同。'
|
6
|
+
equal_to_email: '必须与电子邮件地址不同。'
|
7
|
+
password_complexity:
|
8
|
+
digit:
|
9
|
+
one: 必须包含至少1个数字
|
10
|
+
other: 必须包含至少%{count}个数字
|
11
|
+
lower:
|
12
|
+
one: 必须包含至少1个小写字母
|
13
|
+
other: 必须包含至少%{count}个小写字母
|
14
|
+
symbol:
|
15
|
+
one: 必须包含至少1个特殊符号(!"#$%&'()*+,-./:;<=>?@[\]^_‘{|}~)
|
16
|
+
other: 必须包含至少%{count}个特殊符号(!"#$%&'()*+,-./:;<=>?@[\]^_‘{|}~)
|
17
|
+
upper:
|
18
|
+
one: 必须包含至少1个大写字母
|
19
|
+
other: 必须包含至少%{count}个大写字母
|
20
|
+
devise:
|
21
|
+
invalid_captcha: '验证码无效。'
|
22
|
+
invalid_security_question: '安全问题答案无效。'
|
23
|
+
paranoid_verify:
|
24
|
+
code_required: '请输入我们支持团队提供的代码'
|
25
|
+
paranoid_verification_code:
|
26
|
+
show:
|
27
|
+
submit_verification_code: 提交验证码
|
28
|
+
verification_code: 验证码
|
29
|
+
submit: 提交
|
30
|
+
password_expired:
|
31
|
+
updated: '你的新密码已保存。'
|
32
|
+
change_required: '你的密码已过期,请更新密码。'
|
33
|
+
show:
|
34
|
+
renew_your_password: 更新你的密码
|
35
|
+
current_password: 当前密码
|
36
|
+
new_password: 新密码
|
37
|
+
new_password_confirmation: 确认新密码
|
38
|
+
change_my_password: 更改密码
|
39
|
+
failure:
|
40
|
+
session_limited: '你的登录凭据已在另一个浏览器上被使用。请重新登录以在此浏览器继续。'
|
41
|
+
expired: '由于不活跃,你的账户已过期。请联系站点管理员。'
|
@@ -0,0 +1,41 @@
|
|
1
|
+
zh_TW:
|
2
|
+
errors:
|
3
|
+
messages:
|
4
|
+
taken_in_past: '曾被使用過。'
|
5
|
+
equal_to_current_password: '必須與目前密碼不同。'
|
6
|
+
equal_to_email: '必須與電子郵件地址不同。'
|
7
|
+
password_complexity:
|
8
|
+
digit:
|
9
|
+
one: 必須包含至少一個數字
|
10
|
+
other: 必須包含至少 %{count} 個數字
|
11
|
+
lower:
|
12
|
+
one: 必須包含至少一個小寫字母
|
13
|
+
other: 必須包含至少 %{count} 個小寫字母
|
14
|
+
symbol:
|
15
|
+
one: 必須包含至少一個特殊符號
|
16
|
+
other: 必須包含至少 %{count} 個特殊符號
|
17
|
+
upper:
|
18
|
+
one: 必須包含至少一個大寫字母
|
19
|
+
other: 必須包含至少 %{count} 個大寫字母
|
20
|
+
devise:
|
21
|
+
invalid_captcha: '輸入的驗證碼無效。'
|
22
|
+
invalid_security_question: '安全問題答案無效。'
|
23
|
+
paranoid_verify:
|
24
|
+
code_required: '請輸入由我們客服團隊提供的代碼'
|
25
|
+
paranoid_verification_code:
|
26
|
+
show:
|
27
|
+
submit_verification_code: 送出驗證碼
|
28
|
+
verification_code: 驗證碼
|
29
|
+
submit: 送出
|
30
|
+
password_expired:
|
31
|
+
updated: '你的新密碼已儲存'
|
32
|
+
change_required: '你的密碼已經過期,請更新密碼。'
|
33
|
+
show:
|
34
|
+
renew_your_password: 更新你的密碼
|
35
|
+
current_password: 目前密碼
|
36
|
+
new_password: 新密碼
|
37
|
+
new_password_confirmation: 確認新密碼
|
38
|
+
change_my_password: 更改我的密碼
|
39
|
+
failure:
|
40
|
+
session_limited: '你的登入憑證已在另一個瀏覽器上被使用,請重新登入以在此瀏覽器繼續使用。'
|
41
|
+
expired: '你的帳號因過久沒使用而已經過期,請洽網站管理員。'
|