devise-security 0.14.3 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +114 -58
  3. data/app/controllers/devise/password_expired_controller.rb +10 -1
  4. data/app/views/devise/paranoid_verification_code/show.html.erb +3 -3
  5. data/app/views/devise/password_expired/show.html.erb +5 -5
  6. data/config/locales/by.yml +48 -0
  7. data/config/locales/cs.yml +40 -0
  8. data/config/locales/de.yml +12 -2
  9. data/config/locales/en.yml +12 -1
  10. data/config/locales/es.yml +9 -9
  11. data/config/locales/fa.yml +40 -0
  12. data/config/locales/hi.yml +41 -0
  13. data/config/locales/it.yml +34 -4
  14. data/config/locales/ja.yml +1 -1
  15. data/config/locales/nl.yml +40 -0
  16. data/config/locales/pt.yml +40 -0
  17. data/config/locales/ru.yml +48 -0
  18. data/config/locales/uk.yml +48 -0
  19. data/config/locales/zh_CN.yml +40 -0
  20. data/config/locales/zh_TW.yml +40 -0
  21. data/lib/devise-security/controllers/helpers.rb +59 -50
  22. data/lib/devise-security/hooks/password_expirable.rb +2 -0
  23. data/lib/devise-security/hooks/session_limitable.rb +13 -7
  24. data/lib/devise-security/models/password_expirable.rb +5 -1
  25. data/lib/devise-security/models/session_limitable.rb +8 -1
  26. data/lib/devise-security/validators/password_complexity_validator.rb +4 -2
  27. data/lib/devise-security/version.rb +1 -1
  28. data/lib/generators/devise_security/install_generator.rb +2 -2
  29. data/test/controllers/test_password_expired_controller.rb +111 -16
  30. data/test/dummy/app/assets/config/manifest.js +3 -0
  31. data/test/dummy/config/routes.rb +3 -3
  32. data/test/dummy/log/test.log +1799 -0
  33. data/test/integration/test_password_expirable_workflow.rb +57 -0
  34. data/test/orm/active_record.rb +4 -1
  35. data/test/support/integration_helpers.rb +1 -1
  36. data/test/test_complexity_validator.rb +12 -0
  37. data/test/test_helper.rb +10 -3
  38. data/test/test_install_generator.rb +10 -0
  39. data/test/test_session_limitable.rb +17 -0
  40. data/test/tmp/config/initializers/devise-security.rb +44 -0
  41. data/test/tmp/config/locales/devise.security_extension.de.yml +38 -0
  42. data/test/tmp/config/locales/devise.security_extension.en.yml +40 -0
  43. data/test/tmp/config/locales/devise.security_extension.es.yml +29 -0
  44. data/test/tmp/config/locales/devise.security_extension.fa.yml +40 -0
  45. data/test/tmp/config/locales/devise.security_extension.fr.yml +29 -0
  46. data/test/tmp/config/locales/devise.security_extension.it.yml +40 -0
  47. data/test/tmp/config/locales/devise.security_extension.ja.yml +29 -0
  48. data/test/tmp/config/locales/devise.security_extension.nl.yml +40 -0
  49. data/test/tmp/config/locales/devise.security_extension.pt.yml +40 -0
  50. data/test/tmp/config/locales/devise.security_extension.ru.yml +48 -0
  51. data/test/tmp/config/locales/devise.security_extension.tr.yml +17 -0
  52. data/test/tmp/config/locales/devise.security_extension.uk.yml +48 -0
  53. data/test/tmp/config/locales/devise.security_extension.zh_CN.yml +40 -0
  54. metadata +152 -118
  55. data/.codeclimate.yml +0 -63
  56. data/.document +0 -5
  57. data/.gitignore +0 -43
  58. data/.mdlrc +0 -1
  59. data/.rubocop.yml +0 -64
  60. data/.ruby-version +0 -1
  61. data/.travis.yml +0 -39
  62. data/Appraisals +0 -35
  63. data/Gemfile +0 -10
  64. data/Rakefile +0 -27
  65. data/devise-security.gemspec +0 -50
  66. data/gemfiles/rails_4.2_stable.gemfile +0 -16
  67. data/gemfiles/rails_5.0_stable.gemfile +0 -15
  68. data/gemfiles/rails_5.1_stable.gemfile +0 -15
  69. data/gemfiles/rails_5.2_stable.gemfile +0 -15
  70. data/gemfiles/rails_6.0_beta.gemfile +0 -15
  71. data/test/dummy/app/models/.gitkeep +0 -0
@@ -11,8 +11,8 @@ de:
11
11
  one: muss mindestens einen Kleinbuchstaben enthalten
12
12
  other: muss mindestens %{count} Kleinbuchstaben enthalten
13
13
  symbol:
14
- one: muss mindestens ein Satzzeichen enthalten
15
- other: muss mindestens %{count} Satzzeichen enthalten
14
+ one: muss mindestens ein Sonderzeichen enthalten
15
+ other: muss mindestens %{count} Sonderzeichen enthalten
16
16
  upper:
17
17
  one: muss mindestens einen Großbuchstaben enthalten
18
18
  other: muss mindestens %{count} Großbuchstaben enthalten
@@ -20,9 +20,19 @@ de:
20
20
  invalid_captcha: 'Die Captcha-Eingabe ist nicht gültig.'
21
21
  paranoid_verify:
22
22
  code_required: 'Bitte geben Sie den Code ein, den unser Support-Team zur Verfügung gestellt hat.'
23
+ show:
24
+ submit_verification_code: Bestätigungscode eingeben
25
+ verification_code: Bestätigungscode
26
+ submit: Bestätigen
23
27
  password_expired:
24
28
  updated: 'Das neue Passwort wurde übernommen.'
25
29
  change_required: 'Ihr Passwort ist abgelaufen. Bitte vergeben Sie ein neues Passwort.'
30
+ show:
31
+ renew_your_password: Vergeben Sie ein neues Passwort
32
+ current_password: Aktuelles Passwort
33
+ new_password: Neues Passwort
34
+ new_password_confirmation: Passwort bestätigen
35
+ change_my_password: Passwort ändern
26
36
  failure:
27
37
  session_limited: 'Ihre Anmeldedaten wurden in einem anderen Browser genutzt. Bitte melden Sie sich erneut an, um in diesem Browser fortzufahren.'
28
38
  expired: 'Ihr Account ist aufgrund zu langer Inaktivität abgelaufen. Bitte kontaktieren Sie den Administrator.'
@@ -12,7 +12,7 @@ en:
12
12
  other: must contain at least %{count} lower-case letters
13
13
  symbol:
14
14
  one: must contain at least one punctuation mark or symbol
15
- other: must contain at least %{count} puncutation marks or symbols
15
+ other: must contain at least %{count} punctuation marks or symbols
16
16
  upper:
17
17
  one: must contain at least one upper-case letter
18
18
  other: must contain at least %{count} upper-case letters
@@ -21,9 +21,20 @@ en:
21
21
  invalid_security_question: 'The security question answer was invalid.'
22
22
  paranoid_verify:
23
23
  code_required: 'Please enter the code our support team provided'
24
+ paranoid_verification_code:
25
+ show:
26
+ submit_verification_code: Submit verification code
27
+ verification_code: Verification code
28
+ submit: Submit
24
29
  password_expired:
25
30
  updated: 'Your new password is saved.'
26
31
  change_required: 'Your password is expired. Please renew your password.'
32
+ show:
33
+ renew_your_password: Renew your password
34
+ current_password: Current password
35
+ new_password: New password
36
+ new_password_confirmation: Confirm new password
37
+ change_my_password: Change my password
27
38
  failure:
28
39
  session_limited: 'Your login credentials were used in another browser. Please sign in again to continue in this browser.'
29
40
  expired: 'Your account has expired due to inactivity. Please contact the site administrator.'
@@ -1,29 +1,29 @@
1
1
  es:
2
2
  errors:
3
3
  messages:
4
- taken_in_past: 'la contraseña fue usada previamente, favor elegir otra.'
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
6
  password_complexity:
7
7
  digit:
8
- one: tiene que contener al menos un digito
9
- other: tiene que contener al menos %{count} digitos
8
+ one: tiene que contener al menos un dígito
9
+ other: tiene que contener al menos %{count} dígitos
10
10
  lower:
11
- one: tiene que contener al menos un minúscula
11
+ one: tiene que contener al menos una minúscula
12
12
  other: tiene que contener al menos %{count} minúsculas
13
13
  symbol:
14
14
  one: tiene que contener al menos un signo de puntuación
15
15
  other: tiene que contener al menos %{count} signos de puntuación
16
16
  upper:
17
- one: tiene que contener al menos un mayúscula
17
+ one: tiene que contener al menos una mayúscula
18
18
  other: tiene que contener al menos %{count} mayúsculas
19
19
  devise:
20
20
  invalid_captcha: 'El captcha ingresado es inválido.'
21
- invalid_security_question: 'La respuesta a la pregunta de suguridad fue incorrecta.'
21
+ invalid_security_question: 'La respuesta a la pregunta de seguridad fue incorrecta.'
22
22
  paranoid_verify:
23
23
  code_required: 'Por favor ingrese el código provisto por nuestro equipo de soporte'
24
24
  password_expired:
25
- updated: 'Su nueva contraña ha sido guardada.'
26
- change_required: 'Su contraña ha expirado. Por favor renueve su contraseña.'
25
+ updated: 'Su nueva contraseña ha sido guardada.'
26
+ change_required: 'Su contraseña ha expirado. Por favor renueve su contraseña.'
27
27
  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 éste navegador.'
28
+ 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
29
  expired: 'Su cuenta ha expirado debido a inactividad. Por favor contacte al administrador de la aplicación.'
@@ -0,0 +1,40 @@
1
+ fa:
2
+ errors:
3
+ messages:
4
+ taken_in_past: 'قبلا استفاده شده است'
5
+ equal_to_current_password: 'باید متفاوت با رمز عبور فعلی باشد'
6
+ password_complexity:
7
+ digit:
8
+ one: باید حداقل یک رقم داشته باشد
9
+ other: باید حداقل %{count} عدد داشته باشد
10
+ lower:
11
+ one: باید حداقل شامل یک حرف کوچک باشد
12
+ other: باید حداقل %{count} حروف کوچک داشته باشد
13
+ symbol:
14
+ one: باید حداقل دارای یک علامت یا کارکتر خاص باشد
15
+ other: باید حداقل دارای %{count} علائم یا کارکتر های خاص باشد
16
+ upper:
17
+ one: باید حداقل یک حرف بزرگ داشته باشد
18
+ other: باید حداقل %{count} حروف بزرگ داشته باشد
19
+ devise:
20
+ invalid_captcha: 'اطلاعات وارد شده در کپچا نامعتبر بود'
21
+ invalid_security_question: 'پاسخ سوال امنیتی نامعتبر بود'
22
+ paranoid_verify:
23
+ code_required: 'لطفاً کدی را که تیم پشتیبانی ما ارائه کرده است وارد کنید'
24
+ paranoid_verification_code:
25
+ show:
26
+ submit_verification_code: ارسال کد تاییدیه
27
+ verification_code: کد تاییدیه
28
+ submit: ارسال
29
+ password_expired:
30
+ updated: 'رمز جدید شما ذخیره شده است'
31
+ change_required: 'رمز عبور شما منقضی شده است ،لطفاً رمز خود را تمدید کنید'
32
+ show:
33
+ renew_your_password: ساختن رمز عبور جدید
34
+ current_password: رمز عبور جاری
35
+ new_password: رمز عبور جدید
36
+ new_password_confirmation: تکرار رمز جدید
37
+ change_my_password: تغییر رمز عبور
38
+ failure:
39
+ session_limited: 'از اطلاعات ورود شما در مرورگر دیگری استفاده شده است، برای ادامه در این مرورگر لطفاً دوباره وارد سیستم شوید'
40
+ expired: 'حساب شما به دلیل عدم فعالیت منقضی شده است، لطفاً با مدیر سایت تماس بگیرید.'
@@ -0,0 +1,41 @@
1
+
2
+ hi:
3
+ errors:
4
+ messages:
5
+ taken_in_past: यह पासवर्ड, आपके द्वारा पूर्व मे प्रयोग किया जा चुका है
6
+ equal_to_current_password: नया पासवर्ड, वर्तमान पासवर्ड से भिन्न होना चाहिए
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: कोई गतिविधि न होने के कारण खाता बंद हो गया, सिस्टम व्यवस्थापक से संपर्क करें
@@ -1,10 +1,40 @@
1
1
  it:
2
2
  errors:
3
3
  messages:
4
- taken_in_past: "e' stata gia' utilizzata in passato!"
4
+ taken_in_past: "è stata gia' utilizzata in passato!"
5
5
  equal_to_current_password: " deve essere differente dalla password corrente!"
6
+ password_complexity:
7
+ digit:
8
+ one: deve contenere almeno una cifra
9
+ other: deve contenere almeno %{count} cifre
10
+ lower:
11
+ one: deve contenere almeno una lettera minuscola
12
+ other: deve contenere almeno %{count} lettere minuscole
13
+ symbol:
14
+ one: deve contenere almeno un simbolo di punteggiatura o un simbolo speciale
15
+ other: deve contenere almeno %{count} tra simboli di punteggiatura e simboli speciali
16
+ upper:
17
+ one: deve contenere almeno una lettera maiuscola
18
+ other: deve contenere almeno %{count} lettere maiuscole
6
19
  devise:
7
- invalid_captcha: "Il captcha inserito non e' valido!"
20
+ invalid_captcha: "Il captcha inserito non è valido!"
21
+ invalid_security_question: 'La risposta alla domanda di sicurezza non è valida.'
22
+ paranoid_verify:
23
+ code_required: 'Inserisci il codice fornito dal nostro team di supporto'
24
+ paranoid_verification_code:
25
+ show:
26
+ submit_verification_code: Invia codice di verifica
27
+ verification_code: Codice di verifica
28
+ submit: Invia
8
29
  password_expired:
9
- updated: "La tua nuova password e' stata salvata."
10
- change_required: "La tua password e' scaduta. Si prega di rinnovarla!"
30
+ updated: "La tua nuova password è stata salvata."
31
+ change_required: "La tua password è scaduta. Si prega di rinnovarla!"
32
+ show:
33
+ renew_your_password: Rinnova la tua password
34
+ current_password: Password attuale
35
+ new_password: Nuova password
36
+ new_password_confirmation: Conferma nuova password
37
+ change_my_password: Cambia la mia password
38
+ failure:
39
+ session_limited: "Hai effettuato l accesso in un altro browser. Fai nuovamente l accesso per connetterti in questo."
40
+ expired: 'Il tuo account è stato bloccato per inattività. Contatta l amministratore del sito.'
@@ -18,7 +18,7 @@ ja:
18
18
  other: は最低%{count}つの大文字英字を含む必要があります。
19
19
  devise:
20
20
  invalid_captcha: 'キャプチャ入力が不正です。'
21
- invalid_security_question: 'セキュリティ質問に対すつ回答が不正です。'
21
+ invalid_security_question: 'セキュリティ質問に対する回答が不正です。'
22
22
  paranoid_verify:
23
23
  code_required: 'サポートチームに提供された認証コードを入力してください。'
24
24
  password_expired:
@@ -0,0 +1,40 @@
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
+ password_complexity:
7
+ digit:
8
+ one: moet minimaal 1 cijfer bevatten
9
+ other: moet minimaal %{count} cijfers bevatten
10
+ lower:
11
+ one: moet minimaal 1 kleine letter bevatten
12
+ other: moet minimaal %{count} kleine letters bevatten
13
+ symbol:
14
+ one: moet minimaal 1 leesteken of symbool bevatten
15
+ other: moet minimaal %{count} leestekens of symbolen bevatten
16
+ upper:
17
+ one: moet minimaal 1 hoofdletter bevatten
18
+ other: moet minimaal %{count} hoofdletters bevatten
19
+ devise:
20
+ invalid_captcha: De captcha invoer was ongeldig.
21
+ invalid_security_question: Het antwoord op de beveiligingsvraag was niet correct.
22
+ paranoid_verify:
23
+ code_required: Voer de aangeleverde code in
24
+ paranoid_verification_code:
25
+ show:
26
+ submit_verification_code: Verstuur verificatie code
27
+ verification_code: Verificatie code
28
+ submit: Verstuur
29
+ password_expired:
30
+ updated: Het nieuwe wachtwoord is opgeslagen.
31
+ change_required: Het wachtwoord is verlopen. Vernieuw je wachtwoord.
32
+ show:
33
+ renew_your_password: Vernieuw je wachtwoord
34
+ current_password: Huidig wachtwoord
35
+ new_password: Nieuw wachtwoord
36
+ new_password_confirmation: Bevestig het nieuwe wachtwoord
37
+ change_my_password: Verander mijn wachtwoord
38
+ failure:
39
+ session_limited: Je login is in een andere browser gebruikt. Log hier opnieuw in.
40
+ expired: Je account is verlopen. Neem contact op met de site beheerder.
@@ -0,0 +1,40 @@
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
+ password_complexity:
7
+ digit:
8
+ one: deve conter ao menos um dígito
9
+ other: deve conter ao menos %{count} dígitos
10
+ lower:
11
+ one: deve conter ao menos uma letra minúscula
12
+ other: deve conter ao menos %{count} letras minúsculas
13
+ symbol:
14
+ one: deve conter ao menos um símbolo
15
+ other: deve conter ao menos %{count} símbolos
16
+ upper:
17
+ one: deve conter ao menos uma letra maiúscula
18
+ other: deve conter ao menos %{count} letras maiúsculas
19
+ devise:
20
+ invalid_captcha: 'O captcha está errado.'
21
+ invalid_security_question: 'A resposta da pergunta de segurança está errada.'
22
+ paranoid_verify:
23
+ code_required: 'Por favor entre o código que a equipe de suporte enviou'
24
+ paranoid_verification_code:
25
+ show:
26
+ submit_verification_code: Enviar código de verificação
27
+ verification_code: Código de verificação
28
+ submit: Enviar
29
+ password_expired:
30
+ updated: 'A nova senha foi salva.'
31
+ change_required: 'Sua senha expirou. Renove sua senha por favor.'
32
+ show:
33
+ renew_your_password: Renove sua senha
34
+ current_password: Senha atual
35
+ new_password: Senha nova
36
+ new_password_confirmation: Confirmar senha nova
37
+ change_my_password: Mudar minha senha
38
+ failure:
39
+ session_limited: 'Seu login foi utilizado em outro local. Faça o login novamente para continuar.'
40
+ expired: 'Sua conta expirou por inatividade. Por favor contate o administrador do site.'
@@ -0,0 +1,48 @@
1
+ ru:
2
+ errors:
3
+ messages:
4
+ taken_in_past: 'уже ранее использовался.'
5
+ equal_to_current_password: 'должен отличаться от текущего пароля.'
6
+ password_complexity:
7
+ digit:
8
+ one: 'должен содержать хотя бы одну цифру'
9
+ few: 'должен содержать хотя бы %{count} цифры'
10
+ many: 'должен содержать хотя бы %{count} цифр'
11
+ other: 'должен содержать хотя бы %{count} цифры'
12
+ lower:
13
+ one: 'должен содержать хотя бы одну строчную букву'
14
+ few: 'должен содержать хотя бы %{count} строчные буквы'
15
+ many: 'должен содержать хотя бы %{count} строчных букв'
16
+ other: 'должен содержать хотя бы %{count} строчных букв'
17
+ symbol:
18
+ one: 'должен содержать хотя бы один знак пунктуации или символ'
19
+ few: 'должен содержать хотя бы %{count} знака пунктуации или символа'
20
+ many: 'должен содержать хотя бы %{count} знаков пунктуации или символов'
21
+ other: 'должен содержать хотя бы %{count} знаков пунктуации или символов'
22
+ upper:
23
+ one: 'должен содержать хотя бы одну прописную букву'
24
+ few: 'должен содержать хотя бы %{count} прописные буквы'
25
+ many: 'должен содержать хотя бы %{count} прописных букв'
26
+ other: 'должен содержать хотя бы %{count} прописных букв'
27
+ devise:
28
+ invalid_captcha: 'Введен неправильный код капчи.'
29
+ invalid_security_question: 'Ответ на секретный вопрос был неверным.'
30
+ paranoid_verify:
31
+ code_required: 'Пожалуйста введите код, полученный от нашей команды поддержки'
32
+ paranoid_verification_code:
33
+ show:
34
+ submit_verification_code: Ввод кода подтверждения
35
+ verification_code: Код подверждения
36
+ submit: Отправить
37
+ password_expired:
38
+ updated: 'Ваш новый пароль сохранен.'
39
+ change_required: 'Ваш пароль устарел. Пожалуйста, установите новый.'
40
+ show:
41
+ renew_your_password: Смена пароля
42
+ current_password: Текущий пароль
43
+ new_password: Новый пароль
44
+ new_password_confirmation: Подтвердите новый пароль
45
+ change_my_password: Поменять пароль
46
+ failure:
47
+ session_limited: 'Ваши параметры входа используются в другом браузере. Пожалуйста, авторизуйтесь снова, чтобы продолжить в этом браузере.'
48
+ expired: 'Ваш аккаунт устарел из-за неактивности. Пожалуйста, свяжитесь с администратором.'
@@ -0,0 +1,48 @@
1
+ uk:
2
+ errors:
3
+ messages:
4
+ taken_in_past: 'раніше використовувався.'
5
+ equal_to_current_password: 'має відрізнятися від поточного паролю.'
6
+ password_complexity:
7
+ digit:
8
+ one: 'повинен включати хоча б одну цифру'
9
+ few: 'повинен включати хоча б %{count} цифри'
10
+ many: 'повинен включати хоча б %{count} цифр'
11
+ other: 'повинен включати хоча б %{count} цифри'
12
+ lower:
13
+ one: 'повинен включати хоча б одну малу букву'
14
+ few: 'повинен включати хоча б %{count} малі букви'
15
+ many: 'повинен включати хоча б %{count} малих букв'
16
+ other: 'повинен включати хоча б %{count} малі букви'
17
+ symbol:
18
+ one: 'повинен включати хоча б один розділовий знак або символ'
19
+ few: 'повинен включати хоча б %{count} розділові знаки або символи'
20
+ many: 'повинен включати хоча б %{count} розділових знаків або символів'
21
+ other: 'повинен включати хоча б %{count} розділові знаки або символи'
22
+ upper:
23
+ one: 'повинен включати хоча б одну прописну букву'
24
+ few: 'повинен включати хоча б %{count} прописні букви'
25
+ many: 'повинен включати хоча б %{count} прописних букв'
26
+ other: 'повинен включати хоча б %{count} прописні букви'
27
+ devise:
28
+ invalid_captcha: 'Введення капчі недійсне.'
29
+ invalid_security_question: 'Неправильна відповідь на секретне питання.'
30
+ paranoid_verify:
31
+ code_required: 'Введіть, будь ласка, код від нашої команди підтримки'
32
+ paranoid_verification_code:
33
+ show:
34
+ submit_verification_code: Відправити код підтвердження
35
+ verification_code: Код підтвердження
36
+ submit: Відправити
37
+ password_expired:
38
+ updated: 'Ваш новий пароль збережено.'
39
+ change_required: 'Ваш пароль застарілий. Будь ласка, оновіть пароль.'
40
+ show:
41
+ renew_your_password: Оновити свій пароль
42
+ current_password: Теперішній пароль
43
+ new_password: Новий пароль
44
+ new_password_confirmation: Підтвердити новий пароль
45
+ change_my_password: Змінити пароль
46
+ failure:
47
+ session_limited: 'Ваші облікові дані були використані в іншому браузері. Будь ласка, авторизуйтесь знову щоб продовжити в цьому браузері.'
48
+ expired: "Ваш аккаунт застарів через неактивність. Будь ласка, зв'яжіться з адміністратором."
@@ -0,0 +1,40 @@
1
+ zh_CN:
2
+ errors:
3
+ messages:
4
+ taken_in_past: '曾被使用过。'
5
+ equal_to_current_password: '必须与当前密码不同。'
6
+ password_complexity:
7
+ digit:
8
+ one: 必须包含至少1个数字
9
+ other: 必须包含至少%{count}个数字
10
+ lower:
11
+ one: 必须包含至少1个小写字母
12
+ other: 必须包含至少%{count}个小写字母
13
+ symbol:
14
+ one: 必须包含至少1个特殊符号(!"#$%&'()*+,-./:;<=>?@[\]^_‘{|}~)
15
+ other: 必须包含至少%{count}个特殊符号(!"#$%&'()*+,-./:;<=>?@[\]^_‘{|}~)
16
+ upper:
17
+ one: 必须包含至少1个大写字母
18
+ other: 必须包含至少%{count}个大写字母
19
+ devise:
20
+ invalid_captcha: '验证码无效。'
21
+ invalid_security_question: '安全问题答案无效。'
22
+ paranoid_verify:
23
+ code_required: '请输入我们支持团队提供的代码'
24
+ paranoid_verification_code:
25
+ show:
26
+ submit_verification_code: 提交验证码
27
+ verification_code: 验证码
28
+ submit: 提交
29
+ password_expired:
30
+ updated: '你的新密码已保存。'
31
+ change_required: '你的密码已过期,请更新密码。'
32
+ show:
33
+ renew_your_password: 更新你的密码
34
+ current_password: 当前密码
35
+ new_password: 新密码
36
+ new_password_confirmation: 确认新密码
37
+ change_my_password: 更改密码
38
+ failure:
39
+ session_limited: '你的登录凭据已在另一个浏览器上被使用。请重新登录以在此浏览器继续。'
40
+ expired: '由于不活跃,你的账户已过期。请联系站点管理员。'