devise-security 0.14.3 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
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: '由于不活跃,你的账户已过期。请联系站点管理员。'