devise-i18n 1.6.2 → 1.10.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +36 -6
  3. data/VERSION +1 -1
  4. data/app/views/devise/confirmations/new.html.erb +1 -1
  5. data/app/views/devise/mailer/confirmation_instructions.html.erb +1 -0
  6. data/app/views/devise/mailer/email_changed.html.erb +1 -1
  7. data/app/views/devise/passwords/edit.html.erb +3 -3
  8. data/app/views/devise/passwords/new.html.erb +1 -1
  9. data/app/views/devise/registrations/edit.html.erb +5 -5
  10. data/app/views/devise/registrations/new.html.erb +3 -3
  11. data/app/views/devise/sessions/new.html.erb +3 -3
  12. data/app/views/devise/shared/_error_messages.html.erb +15 -0
  13. data/app/views/devise/shared/_links.html.erb +8 -8
  14. data/app/views/devise/unlocks/new.html.erb +1 -1
  15. data/lib/generators/devise/templates/simple_form_for/confirmations/new.html.erb +5 -1
  16. data/lib/generators/devise/templates/simple_form_for/passwords/edit.html.erb +10 -2
  17. data/lib/generators/devise/templates/simple_form_for/passwords/new.html.erb +4 -1
  18. data/lib/generators/devise/templates/simple_form_for/registrations/edit.html.erb +12 -4
  19. data/lib/generators/devise/templates/simple_form_for/registrations/new.html.erb +11 -3
  20. data/lib/generators/devise/templates/simple_form_for/sessions/new.html.erb +7 -2
  21. data/lib/generators/devise/templates/simple_form_for/unlocks/new.html.erb +4 -1
  22. data/rails/locales/af.yml +24 -22
  23. data/rails/locales/ar.yml +109 -107
  24. data/rails/locales/az.yml +94 -92
  25. data/rails/locales/be.yml +108 -106
  26. data/rails/locales/bg.yml +111 -109
  27. data/rails/locales/bn.yml +110 -108
  28. data/rails/locales/bs.yml +73 -71
  29. data/rails/locales/ca.yml +3 -1
  30. data/rails/locales/cs.yml +17 -15
  31. data/rails/locales/da.yml +2 -0
  32. data/rails/locales/de-CH.yml +19 -15
  33. data/rails/locales/de.yml +32 -28
  34. data/rails/locales/el.yml +109 -105
  35. data/rails/locales/en-GB.yml +30 -25
  36. data/rails/locales/en.yml +9 -5
  37. data/rails/locales/es-CO.yml +143 -0
  38. data/rails/locales/es-MX.yml +15 -9
  39. data/rails/locales/es.yml +14 -10
  40. data/rails/locales/et.yml +7 -5
  41. data/rails/locales/fa.yml +110 -108
  42. data/rails/locales/fi.yml +8 -4
  43. data/rails/locales/fr-CA.yml +49 -45
  44. data/rails/locales/fr.yml +45 -43
  45. data/rails/locales/ha.yml +24 -22
  46. data/rails/locales/he.yml +112 -108
  47. data/rails/locales/hi.yml +149 -0
  48. data/rails/locales/hr.yml +81 -71
  49. data/rails/locales/hu.yml +31 -29
  50. data/rails/locales/id.yml +21 -19
  51. data/rails/locales/ig.yml +24 -22
  52. data/rails/locales/is.yml +15 -13
  53. data/rails/locales/it.yml +21 -15
  54. data/rails/locales/ja.yml +98 -96
  55. data/rails/locales/ka.yml +109 -106
  56. data/rails/locales/km.yml +141 -0
  57. data/rails/locales/ko.yml +101 -99
  58. data/rails/locales/lo-LA.yml +115 -113
  59. data/rails/locales/lt.yml +72 -70
  60. data/rails/locales/lv.yml +10 -8
  61. data/rails/locales/mk.yml +146 -0
  62. data/rails/locales/ms.yml +8 -6
  63. data/rails/locales/nb.yml +10 -6
  64. data/rails/locales/nl.yml +5 -1
  65. data/rails/locales/nn-NO.yml +9 -7
  66. data/rails/locales/no.yml +9 -7
  67. data/rails/locales/pap-AW.yml +143 -0
  68. data/rails/locales/pap-CW.yml +143 -0
  69. data/rails/locales/pl.yml +41 -32
  70. data/rails/locales/pt-BR.yml +24 -18
  71. data/rails/locales/pt.yml +63 -57
  72. data/rails/locales/ro.yml +18 -13
  73. data/rails/locales/ru.yml +108 -102
  74. data/rails/locales/si.yml +109 -107
  75. data/rails/locales/sk.yml +16 -11
  76. data/rails/locales/sl.yml +32 -30
  77. data/rails/locales/sq.yml +111 -105
  78. data/rails/locales/sr-RS.yml +117 -107
  79. data/rails/locales/sr.yml +74 -68
  80. data/rails/locales/sv.yml +10 -8
  81. data/rails/locales/th.yml +109 -107
  82. data/rails/locales/tl.yml +32 -30
  83. data/rails/locales/tr.yml +39 -37
  84. data/rails/locales/uk.yml +114 -108
  85. data/rails/locales/ur.yml +105 -103
  86. data/rails/locales/vi.yml +28 -24
  87. data/rails/locales/yo.yml +96 -78
  88. data/rails/locales/zh-CN.yml +109 -107
  89. data/rails/locales/zh-HK.yml +110 -108
  90. data/rails/locales/zh-TW.yml +110 -108
  91. data/rails/locales/zh-YUE.yml +110 -108
  92. metadata +53 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 3008a90c37ee8a010bdf0429e66fca08bbc3f84d
4
- data.tar.gz: 7bb948e7f3d96741d2c2456daf15fd4963cd64e0
2
+ SHA256:
3
+ metadata.gz: 24becea622dee0f94170ad654b78f00cb39944ff1f915589f8453694474de4f5
4
+ data.tar.gz: 8745c173a7cdaf247e713218b7abd531d4400065351113d1a89b45b4b694250f
5
5
  SHA512:
6
- metadata.gz: 6ad2daed71e7d82761d1d02666a1cb9b039df987ce19596afd8b1ba64d6986c7b33f697a0ce78acd1de4ad62cfa464ee71f7f61065a454f9dabb41e2aab4f10b
7
- data.tar.gz: d623e7a05e8a0f7432628555c66221dbd6c693d14258303ae11e1a18fdca8ad4a16f4b35c176a941ef1ae51833dfc6b945aefeea874425d9387e0eb05077f3f0
6
+ metadata.gz: ed3460598eb5154eecf8971e4b7f3d3e0b9ab1211a32ff8dd62e2a06545c77c565a35b5a6f95a0010b60c8dd30e34c1da3b8f6844842cb8e52827f2763de7b8e
7
+ data.tar.gz: 9a9bcc313ee70490ee9a852289fcede6607872b1daf0b673c937b0572af7b04ea50fb42cdd88ea500d98c218b76bc6b92a337422f4891c55539a93417e9e170b
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # devise-i18n
2
2
 
3
- [![Build Status](https://secure.travis-ci.org/tigrish/devise-i18n.png)](http://travis-ci.org/tigrish/devise-i18n)
3
+ [![CI](https://github.com/tigrish/devise-i18n/actions/workflows/ci.yml/badge.svg)](https://github.com/tigrish/devise-i18n/actions/workflows/ci.yml)
4
4
 
5
5
  [Devise](https://github.com/plataformatec/devise) "is a flexible authentication solution for Rails based on Warden". Internationalization (aka i18n) is a "means of adapting computer software to different languages, regional differences and technical requirements of a target market".
6
6
 
@@ -13,9 +13,37 @@ Add to your Gemfile:
13
13
  gem 'devise-i18n'
14
14
  ```
15
15
 
16
- Assuming you have _not_ previously generated Devise's views into your project, that's all you need to do. If you _have_ previously done this, you will need to regenerate your views (see the next section) and then reapply whatever customizations that made you do this in the first place.
16
+ Assuming you have _not_ previously generated Devise's views into your project, that's all you need to do. If you _have_ previously done this, you will need to regenerate your views (see "Customizing views" below) and then reapply whatever customizations that made you do this in the first place.
17
17
 
18
- NOTE: If you have the ```simple_form``` gem in your Gemfile, this command will generate the corresponding views using the simple_form form builder.
18
+ ## Setting your locale
19
+
20
+ You will need to set a locale in your application as described in the [Rails Internationalization Guide](https://guides.rubyonrails.org/i18n.html).
21
+
22
+ If you are setting the locale per request (because your application supports multiple locales), the suggested code in that guide (using `I18n.with_locale` inside an `around_action`) will not work properly with devise-i18n. Due to [a bug in warden](https://github.com/wardencommunity/warden/issues/180), some error messages will not be translated. Instead, you can set the locale in a `before_action`:
23
+
24
+ ```ruby
25
+ before_action do
26
+ I18n.locale = :es # Or whatever logic you use to choose.
27
+ end
28
+ ```
29
+
30
+ or in middleware:
31
+
32
+ ```ruby
33
+ class LocaleMiddleware
34
+ def initialize(app)
35
+ @app = app
36
+ end
37
+
38
+ def call(env)
39
+ I18n.locale = :es # Or whatever logic you use to choose.
40
+ status, headers, body = @app.call(env)
41
+ end
42
+ end
43
+ ```
44
+ ```ruby
45
+ config.middleware.use ::LocaleMiddleware
46
+ ```
19
47
 
20
48
  ## Customizing views
21
49
 
@@ -26,6 +54,8 @@ rails g devise:i18n:views
26
54
  ```
27
55
  You should only do this if you really need to, though, because doing this will make it so that you won't get the updated views should they change in a future version of devise-i18n. To "uncustomize" the views, just delete them, and your app will go back to grabbing devise-i18n's default views.
28
56
 
57
+ If you have ```simple_form``` in your Gemfile, this command will generate the corresponding views using the simple_form form builder.
58
+
29
59
  ## Scoped views
30
60
 
31
61
  If you need to use scoped views (for example, if you have different ones for users and admins), you can include the scope in this command.
@@ -33,7 +63,7 @@ If you need to use scoped views (for example, if you have different ones for use
33
63
  rails g devise:i18n:views user
34
64
  ```
35
65
 
36
- You will additionally need to generate the the translations into your app per the following section and then add keys in each file for the scope you are using.
66
+ You will additionally need to generate the translations into your app per the following section and then add keys in each file for the scope you are using.
37
67
 
38
68
  ## Customizing translations
39
69
 
@@ -47,8 +77,8 @@ which will generate `config/locales/devise.views.it.yml`. If you're doing this t
47
77
 
48
78
  ## Contributing translations to devise-i18n
49
79
 
50
- Edit the translations directly on the [devise-i18n](http://www.localeapp.com/projects/377) project on Locale. **That's it!**
51
- The maintainer will periodically pull translations from the Locale project and push to Github.
80
+ Edit the translations directly on the [devise-i18n](https://app.localeapp.com/projects/377) project on Locale. **That's it!**
81
+ The maintainer will periodically pull translations from the Locale project and push to GitHub.
52
82
 
53
83
  Alternately, you can create a pull request on GitHub.
54
84
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.6.2
1
+ 1.10.2
@@ -1,7 +1,7 @@
1
1
  <h2><%= t('.resend_confirmation_instructions') %></h2>
2
2
 
3
3
  <%= form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f| %>
4
- <%= devise_error_messages! %>
4
+ <%= render "devise/shared/error_messages", resource: resource %>
5
5
 
6
6
  <div class="field">
7
7
  <%= f.label :email %><br />
@@ -1,4 +1,5 @@
1
1
  <p><%= t('.greeting', recipient: @email) %></p>
2
2
 
3
3
  <p><%= t('.instruction') %></p>
4
+
4
5
  <p><%= link_to t('.action'), confirmation_url(@resource, confirmation_token: @token) %></p>
@@ -1,7 +1,7 @@
1
1
  <p><%= t('.greeting', recipient: @email) %></p>
2
2
 
3
3
  <% if @resource.try(:unconfirmed_email?) %>
4
- <p><%= t('.message', email: @resource.unconfirmed_email) %></p>
4
+ <p><%= t('.message_unconfirmed', email: @resource.unconfirmed_email) %></p>
5
5
  <% else %>
6
6
  <p><%= t('.message', email: @resource.email) %></p>
7
7
  <% end %>
@@ -1,7 +1,7 @@
1
1
  <h2><%= t('.change_your_password') %></h2>
2
2
 
3
3
  <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| %>
4
- <%= devise_error_messages! %>
4
+ <%= render "devise/shared/error_messages", resource: resource %>
5
5
  <%= f.hidden_field :reset_password_token %>
6
6
 
7
7
  <div class="field">
@@ -9,12 +9,12 @@
9
9
  <% if @minimum_password_length %>
10
10
  <em><%= t('devise.shared.minimum_password_length', count: @minimum_password_length) %></em><br />
11
11
  <% end %>
12
- <%= f.password_field :password, autofocus: true, autocomplete: "off" %>
12
+ <%= f.password_field :password, autofocus: true, autocomplete: "new-password" %>
13
13
  </div>
14
14
 
15
15
  <div class="field">
16
16
  <%= f.label :password_confirmation, t('.confirm_new_password') %><br />
17
- <%= f.password_field :password_confirmation, autocomplete: "off" %>
17
+ <%= f.password_field :password_confirmation, autocomplete: "new-password" %>
18
18
  </div>
19
19
 
20
20
  <div class="actions">
@@ -1,7 +1,7 @@
1
1
  <h2><%= t('.forgot_your_password') %></h2>
2
2
 
3
3
  <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %>
4
- <%= devise_error_messages! %>
4
+ <%= render "devise/shared/error_messages", resource: resource %>
5
5
 
6
6
  <div class="field">
7
7
  <%= f.label :email %><br />
@@ -1,7 +1,7 @@
1
- <h2><%= t('.title', resource: resource_name.to_s.humanize) %></h2>
1
+ <h2><%= t('.title', resource: resource.model_name.human) %></h2>
2
2
 
3
3
  <%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
4
- <%= devise_error_messages! %>
4
+ <%= render "devise/shared/error_messages", resource: resource %>
5
5
 
6
6
  <div class="field">
7
7
  <%= f.label :email %><br />
@@ -14,7 +14,7 @@
14
14
 
15
15
  <div class="field">
16
16
  <%= f.label :password %> <i>(<%= t('.leave_blank_if_you_don_t_want_to_change_it') %>)</i><br />
17
- <%= f.password_field :password, autocomplete: "off" %>
17
+ <%= f.password_field :password, autocomplete: "new-password" %>
18
18
  <% if @minimum_password_length %>
19
19
  <br />
20
20
  <em><%= t('devise.shared.minimum_password_length', count: @minimum_password_length) %></em>
@@ -23,12 +23,12 @@
23
23
 
24
24
  <div class="field">
25
25
  <%= f.label :password_confirmation %><br />
26
- <%= f.password_field :password_confirmation, autocomplete: "off" %>
26
+ <%= f.password_field :password_confirmation, autocomplete: "new-password" %>
27
27
  </div>
28
28
 
29
29
  <div class="field">
30
30
  <%= f.label :current_password %> <i>(<%= t('.we_need_your_current_password_to_confirm_your_changes') %>)</i><br />
31
- <%= f.password_field :current_password, autocomplete: "off" %>
31
+ <%= f.password_field :current_password, autocomplete: "current-password" %>
32
32
  </div>
33
33
 
34
34
  <div class="actions">
@@ -1,7 +1,7 @@
1
1
  <h2><%= t('.sign_up') %></h2>
2
2
 
3
3
  <%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
4
- <%= devise_error_messages! %>
4
+ <%= render "devise/shared/error_messages", resource: resource %>
5
5
 
6
6
  <div class="field">
7
7
  <%= f.label :email %><br />
@@ -13,12 +13,12 @@
13
13
  <% if @minimum_password_length %>
14
14
  <em><%= t('devise.shared.minimum_password_length', count: @minimum_password_length) %></em>
15
15
  <% end %><br />
16
- <%= f.password_field :password, autocomplete: "off" %>
16
+ <%= f.password_field :password, autocomplete: "new-password" %>
17
17
  </div>
18
18
 
19
19
  <div class="field">
20
20
  <%= f.label :password_confirmation %><br />
21
- <%= f.password_field :password_confirmation, autocomplete: "off" %>
21
+ <%= f.password_field :password_confirmation, autocomplete: "new-password" %>
22
22
  </div>
23
23
 
24
24
  <div class="actions">
@@ -8,15 +8,15 @@
8
8
 
9
9
  <div class="field">
10
10
  <%= f.label :password %><br />
11
- <%= f.password_field :password, autocomplete: "off" %>
11
+ <%= f.password_field :password, autocomplete: "current-password" %>
12
12
  </div>
13
13
 
14
- <% if devise_mapping.rememberable? -%>
14
+ <% if devise_mapping.rememberable? %>
15
15
  <div class="field">
16
16
  <%= f.check_box :remember_me %>
17
17
  <%= f.label :remember_me %>
18
18
  </div>
19
- <% end -%>
19
+ <% end %>
20
20
 
21
21
  <div class="actions">
22
22
  <%= f.submit t('.sign_in') %>
@@ -0,0 +1,15 @@
1
+ <% if resource.errors.any? %>
2
+ <div id="error_explanation">
3
+ <h2>
4
+ <%= I18n.t("errors.messages.not_saved",
5
+ count: resource.errors.count,
6
+ resource: resource.class.model_name.human.downcase)
7
+ %>
8
+ </h2>
9
+ <ul>
10
+ <% resource.errors.full_messages.each do |message| %>
11
+ <li><%= message %></li>
12
+ <% end %>
13
+ </ul>
14
+ </div>
15
+ <% end %>
@@ -1,25 +1,25 @@
1
1
  <%- if controller_name != 'sessions' %>
2
2
  <%= link_to t(".sign_in"), new_session_path(resource_name) %><br />
3
- <% end -%>
3
+ <% end %>
4
4
 
5
5
  <%- if devise_mapping.registerable? && controller_name != 'registrations' %>
6
6
  <%= link_to t(".sign_up"), new_registration_path(resource_name) %><br />
7
- <% end -%>
7
+ <% end %>
8
8
 
9
9
  <%- if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations' %>
10
10
  <%= link_to t(".forgot_your_password"), new_password_path(resource_name) %><br />
11
- <% end -%>
11
+ <% end %>
12
12
 
13
13
  <%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
14
14
  <%= link_to t('.didn_t_receive_confirmation_instructions'), new_confirmation_path(resource_name) %><br />
15
- <% end -%>
15
+ <% end %>
16
16
 
17
17
  <%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
18
18
  <%= link_to t('.didn_t_receive_unlock_instructions'), new_unlock_path(resource_name) %><br />
19
- <% end -%>
19
+ <% end %>
20
20
 
21
21
  <%- if devise_mapping.omniauthable? %>
22
22
  <%- resource_class.omniauth_providers.each do |provider| %>
23
- <%= link_to t('.sign_in_with_provider', provider: OmniAuth::Utils.camelize(provider)), omniauth_authorize_path(resource_name, provider) %><br />
24
- <% end -%>
25
- <% end -%>
23
+ <%= link_to t('.sign_in_with_provider', provider: OmniAuth::Utils.camelize(provider)), omniauth_authorize_path(resource_name, provider), method: :post %><br />
24
+ <% end %>
25
+ <% end %>
@@ -1,7 +1,7 @@
1
1
  <h2><%= t('.resend_unlock_instructions') %></h2>
2
2
 
3
3
  <%= form_for(resource, as: resource_name, url: unlock_path(resource_name), html: { method: :post }) do |f| %>
4
- <%= devise_error_messages! %>
4
+ <%= render "devise/shared/error_messages", resource: resource %>
5
5
 
6
6
  <div class="field">
7
7
  <%= f.label :email %><br />
@@ -5,7 +5,11 @@
5
5
  <%= f.full_error :confirmation_token %>
6
6
 
7
7
  <div class="form-inputs">
8
- <%= f.input :email, required: true, autofocus: true %>
8
+ <%= f.input :email,
9
+ required: true,
10
+ autofocus: true,
11
+ value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email),
12
+ input_html: { autocomplete: "email" } %>
9
13
  </div>
10
14
 
11
15
  <div class="form-actions">
@@ -7,8 +7,16 @@
7
7
  <%= f.full_error :reset_password_token %>
8
8
 
9
9
  <div class="form-inputs">
10
- <%= f.input :password, label: t(".new_password"), required: true, autofocus: true, hint: (t('devise.shared.minimum_password_length', count: @minimum_password_length) if @minimum_password_length) %>
11
- <%= f.input :password_confirmation, label: t(".confirm_new_password"), required: true %>
10
+ <%= f.input :password,
11
+ label: t(".new_password"),
12
+ required: true,
13
+ autofocus: true,
14
+ hint: (t('devise.shared.minimum_password_length', count: @minimum_password_length) if @minimum_password_length),
15
+ input_html: { autocomplete: "new-password" } %>
16
+ <%= f.input :password_confirmation,
17
+ label: t(".confirm_new_password"),
18
+ required: true,
19
+ input_html: { autocomplete: "new-password" } %>
12
20
  </div>
13
21
 
14
22
  <div class="form-actions">
@@ -4,7 +4,10 @@
4
4
  <%= f.error_notification %>
5
5
 
6
6
  <div class="form-inputs">
7
- <%= f.input :email, required: true, autofocus: true %>
7
+ <%= f.input :email,
8
+ required: true,
9
+ autofocus: true,
10
+ input_html: { autocomplete: "email" } %>
8
11
  </div>
9
12
 
10
13
  <div class="form-actions">
@@ -1,4 +1,4 @@
1
- <h2><%= t(".title", resource: resource_name.to_s.humanize) %></h2>
1
+ <h2><%= t(".title", resource: resource.model_name.human) %></h2>
2
2
 
3
3
  <%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
4
4
  <%= f.error_notification %>
@@ -10,9 +10,17 @@
10
10
  <p><%= t(".currently_waiting_confirmation_for_email", email: resource.unconfirmed_email) %></p>
11
11
  <% end %>
12
12
 
13
- <%= f.input :password, autocomplete: "off", hint: t(".leave_blank_if_you_don_t_want_to_change_it"), required: false %>
14
- <%= f.input :password_confirmation, required: false %>
15
- <%= f.input :current_password, hint: t(".we_need_your_current_password_to_confirm_your_changes"), required: true %>
13
+ <%= f.input :password,
14
+ hint: t(".leave_blank_if_you_don_t_want_to_change_it"),
15
+ required: false,
16
+ input_html: { autocomplete: "new-password" } %>
17
+ <%= f.input :password_confirmation,
18
+ required: false,
19
+ input_html: { autocomplete: "new-password" } %>
20
+ <%= f.input :current_password,
21
+ hint: t(".we_need_your_current_password_to_confirm_your_changes"),
22
+ required: true,
23
+ input_html: { autocomplete: "current-password" } %>
16
24
  </div>
17
25
 
18
26
  <div class="form-actions">
@@ -4,9 +4,17 @@
4
4
  <%= f.error_notification %>
5
5
 
6
6
  <div class="form-inputs">
7
- <%= f.input :email, required: true, autofocus: true %>
8
- <%= f.input :password, required: true, hint: (t('devise.shared.minimum_password_length', count: @minimum_password_length) if @minimum_password_length) %>
9
- <%= f.input :password_confirmation, required: true %>
7
+ <%= f.input :email,
8
+ required: true,
9
+ autofocus: true ,
10
+ input_html: { autocomplete: "email" }%>
11
+ <%= f.input :password,
12
+ required: true,
13
+ hint: (t('devise.shared.minimum_password_length', count: @minimum_password_length) if @minimum_password_length),
14
+ input_html: { autocomplete: "new-password" } %>
15
+ <%= f.input :password_confirmation,
16
+ required: true,
17
+ input_html: { autocomplete: "new-password" } %>
10
18
  </div>
11
19
 
12
20
  <div class="form-actions">
@@ -2,8 +2,13 @@
2
2
 
3
3
  <%= simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
4
4
  <div class="form-inputs">
5
- <%= f.input :email, required: false, autofocus: true %>
6
- <%= f.input :password, required: false %>
5
+ <%= f.input :email,
6
+ required: false,
7
+ autofocus: true,
8
+ input_html: { autocomplete: "email" } %>
9
+ <%= f.input :password,
10
+ required: false,
11
+ input_html: { autocomplete: "current-password" } %>
7
12
  <%= f.input :remember_me, as: :boolean if devise_mapping.rememberable? %>
8
13
  </div>
9
14
 
@@ -5,7 +5,10 @@
5
5
  <%= f.full_error :unlock_token %>
6
6
 
7
7
  <div class="form-inputs">
8
- <%= f.input :email, required: true, autofocus: true %>
8
+ <%= f.input :email,
9
+ required: true,
10
+ autofocus: true,
11
+ input_html: { autocomplete: "email" } %>
9
12
  </div>
10
13
 
11
14
  <div class="form-actions">
data/rails/locales/af.yml CHANGED
@@ -2,29 +2,29 @@ af:
2
2
  activerecord:
3
3
  attributes:
4
4
  user:
5
- confirmation_sent_at:
6
- confirmation_token:
7
- confirmed_at:
8
- created_at:
5
+ confirmation_sent_at:
6
+ confirmation_token:
7
+ confirmed_at:
8
+ created_at:
9
9
  current_password: Huidige wagwoord
10
- current_sign_in_at:
11
- current_sign_in_ip:
10
+ current_sign_in_at:
11
+ current_sign_in_ip:
12
12
  email: E-pos
13
- encrypted_password:
14
- failed_attempts:
15
- last_sign_in_at:
16
- last_sign_in_ip:
17
- locked_at:
13
+ encrypted_password:
14
+ failed_attempts:
15
+ last_sign_in_at:
16
+ last_sign_in_ip:
17
+ locked_at:
18
18
  password: Wagwoord
19
19
  password_confirmation: Wagwoord bevestiging
20
- remember_created_at:
20
+ remember_created_at:
21
21
  remember_me: Onthou my
22
- reset_password_sent_at:
22
+ reset_password_sent_at:
23
23
  reset_password_token: Herstel wagwoord egtheidsbewys
24
- sign_in_count:
25
- unconfirmed_email:
24
+ sign_in_count:
25
+ unconfirmed_email:
26
26
  unlock_token: Ontsluit egtheidsbewys
27
- updated_at:
27
+ updated_at:
28
28
  models:
29
29
  user: Gebruiker
30
30
  devise:
@@ -37,10 +37,10 @@ af:
37
37
  failure:
38
38
  already_authenticated: Jy is alreeds aangeteken.
39
39
  inactive: Jou rekening is nog nie geaktiveer nie.
40
- invalid:
40
+ invalid:
41
41
  last_attempt: Jy het nog een poging voor jou rekening gesluit sal word.
42
42
  locked: Jou rekening is gesluit.
43
- not_found_in_database:
43
+ not_found_in_database:
44
44
  timeout: Jou sessie het verstryk. Teken asseblief aan om voort te gaan.
45
45
  unauthenticated: Jy moet aanteken of inteken voor jy voortgaan.
46
46
  unconfirmed: Jy moet jou e-posadres bevestig voor jy voortgaan.
@@ -51,9 +51,10 @@ af:
51
51
  instruction: 'Jy kan jou rekening e-pos bevestig deur die onderstaande skakel:'
52
52
  subject: Bevestigingsinstruksies
53
53
  email_changed:
54
- greeting:
55
- message:
56
- subject:
54
+ greeting:
55
+ message:
56
+ message_unconfirmed:
57
+ subject:
57
58
  password_change:
58
59
  greeting: Hallo %{recipient}!
59
60
  message: Ons kontak jou om jou in kennis te stel dat jou wagwoord verander is.
@@ -107,6 +108,7 @@ af:
107
108
  signed_up_but_unconfirmed: "'n Boodskap met 'n bevestigingsskakel was gestuur na jou e-posadres. Volg asseblief die skakel om jou rekening te aktiveer."
108
109
  update_needs_confirmation: Jy het jou rekening suksesvol opgedateer, maar ons moet eerst jou nuwe e-posadres verifieer. Kyk asseblief na jou e-posse en volg die bevestigingsskakel om jou nuwe e-posadres te bevestig.
109
110
  updated: Jou rekening was suksesvol opgedateer.
111
+ updated_but_not_signed_in:
110
112
  sessions:
111
113
  already_signed_out: Suksesvol uitgeteken.
112
114
  new:
@@ -122,7 +124,7 @@ af:
122
124
  sign_in: Teken aan
123
125
  sign_in_with_provider: Teken aan met %{provider}
124
126
  sign_up: Teken in
125
- minimum_password_length:
127
+ minimum_password_length:
126
128
  unlocks:
127
129
  new:
128
130
  resend_unlock_instructions: Stuur weer ontsluitingsinstruksies