spree_auth_devise 4.0.0 → 4.3.1
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.
Potentially problematic release.
This version of spree_auth_devise might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.circleci/config.yml +41 -0
- data/.gitignore +1 -0
- data/.travis.yml +33 -37
- data/Appraisals +3 -14
- data/Gemfile +1 -1
- data/README.md +3 -12
- data/Rakefile +9 -3
- data/app/controllers/spree/api/v2/storefront/account_confirmations_controller.rb +20 -0
- data/app/controllers/spree/api/v2/storefront/passwords_controller.rb +35 -0
- data/app/controllers/spree/user_confirmations_controller.rb +38 -0
- data/app/controllers/spree/user_passwords_controller.rb +9 -1
- data/app/controllers/spree/user_registrations_controller.rb +34 -1
- data/app/controllers/spree/user_sessions_controller.rb +23 -1
- data/app/mailers/spree/user_mailer.rb +11 -4
- data/app/models/spree/user.rb +42 -0
- data/app/services/spree/account/create.rb +19 -0
- data/app/services/spree/account/update.rb +17 -0
- data/app/views/spree/user_mailer/confirmation_instructions.html.erb +20 -0
- data/app/views/spree/user_mailer/confirmation_instructions.text.erb +8 -5
- data/app/views/spree/user_mailer/reset_password_instructions.html.erb +20 -0
- data/app/views/spree/user_mailer/reset_password_instructions.text.erb +7 -5
- data/app/views/spree/user_passwords/edit.html.erb +20 -17
- data/app/views/spree/user_passwords/new.html.erb +17 -15
- data/app/views/spree/user_registrations/new.html.erb +12 -17
- data/app/views/spree/user_sessions/new.html.erb +11 -12
- data/config/locales/de.yml +16 -0
- data/config/locales/en.yml +21 -6
- data/config/locales/zh-TW.yml +58 -0
- data/config/routes.rb +12 -3
- data/db/migrate/20120203010234_add_reset_password_sent_at_to_spree_users.rb +2 -2
- data/gemfiles/{spree_3_2.gemfile → spree_4_1.gemfile} +1 -1
- data/lib/controllers/api/spree/api/v2/storefront/account_controller_decorator.rb +41 -0
- data/lib/controllers/frontend/spree/checkout_controller_decorator.rb +3 -2
- data/lib/controllers/frontend/spree/users_controller.rb +4 -4
- data/lib/generators/spree/auth/install/install_generator.rb +0 -4
- data/lib/spree/auth/engine.rb +14 -1
- data/lib/spree/testing_support/auth_helpers.rb +36 -0
- data/lib/spree/testing_support/checkout_helpers.rb +24 -0
- data/lib/spree_auth_devise.rb +0 -1
- data/lib/views/backend/spree/admin/user_passwords/new.html.erb +1 -1
- data/lib/views/backend/spree/admin/user_sessions/new.html.erb +1 -1
- data/spec/controllers/spree/admin/orders_controller_spec.rb +1 -1
- data/spec/controllers/spree/admin/user_sessions_controller_spec.rb +1 -1
- data/spec/controllers/spree/api/v2/storefront/passwords_controller_spec.rb +63 -0
- data/spec/controllers/spree/checkout_controller_spec.rb +12 -13
- data/spec/controllers/spree/products_controller_spec.rb +1 -1
- data/spec/controllers/spree/user_passwords_controller_spec.rb +4 -4
- data/spec/controllers/spree/user_registrations_controller_spec.rb +8 -8
- data/spec/controllers/spree/user_sessions_controller_spec.rb +17 -17
- data/spec/controllers/spree/users_controller_spec.rb +4 -4
- data/spec/features/account_spec.rb +10 -8
- data/spec/features/admin/password_reset_spec.rb +2 -4
- data/spec/features/admin/sign_in_spec.rb +13 -9
- data/spec/features/admin/sign_out_spec.rb +1 -1
- data/spec/features/admin_permissions_spec.rb +1 -1
- data/spec/features/change_email_spec.rb +1 -7
- data/spec/features/checkout_spec.rb +40 -65
- data/spec/features/confirmation_spec.rb +4 -6
- data/spec/features/order_spec.rb +9 -15
- data/spec/features/password_reset_spec.rb +2 -4
- data/spec/features/sign_in_spec.rb +21 -17
- data/spec/features/sign_out_spec.rb +14 -23
- data/spec/features/sign_up_spec.rb +6 -4
- data/spec/mailers/user_mailer_spec.rb +4 -4
- data/spec/models/user_spec.rb +10 -8
- data/spec/requests/spree/api/v2/storefront/account_confirmation_spec.rb +48 -0
- data/spec/requests/spree/api/v2/storefront/account_spec.rb +101 -0
- data/spec/spec_helper.rb +7 -22
- data/spree_auth_devise.gemspec +14 -27
- metadata +35 -337
- data/app/overrides/auth_shared_login_bar.rb +0 -6
- data/app/overrides/spree/admin/shared/_header/auth_admin_login_navigation_bar.html.erb.deface +0 -4
- data/app/views/spree/shared/_login.html.erb +0 -18
- data/app/views/spree/shared/_user_form.html.erb +0 -17
- data/gemfiles/spree_3_5.gemfile +0 -8
- data/gemfiles/spree_3_7.gemfile +0 -9
- data/gemfiles/spree_4_0.gemfile +0 -8
- data/lib/assets/javascripts/spree/backend/spree_auth.js.erb +0 -1
- data/lib/assets/javascripts/spree/frontend/account.js +0 -8
- data/lib/assets/javascripts/spree/frontend/spree_auth.js.erb +0 -2
- data/lib/assets/stylesheets/spree/backend/spree_auth.css.erb +0 -3
- data/lib/assets/stylesheets/spree/frontend/spree_auth.css.erb +0 -3
- data/lib/controllers/frontend/spree/store_controller_decorator.rb +0 -7
- data/lib/views/frontend/spree/checkout/_new_user.html.erb +0 -20
- data/lib/views/frontend/spree/checkout/registration.html.erb +0 -25
- data/lib/views/frontend/spree/shared/_link_to_account.html.erb +0 -6
- data/lib/views/frontend/spree/users/edit.html.erb +0 -17
- data/lib/views/frontend/spree/users/show.html.erb +0 -48
- data/spec/support/add_to_cart.rb +0 -15
- data/spec/support/authentication_helpers.rb +0 -14
- data/spec/support/cache_helpers.rb +0 -5
- data/spec/support/capybara.rb +0 -16
- data/spec/support/database_cleaner.rb +0 -17
- data/spec/support/factory_girl.rb +0 -5
- data/spec/support/spree.rb +0 -10
@@ -1,16 +1,23 @@
|
|
1
1
|
module Spree
|
2
2
|
class UserMailer < BaseMailer
|
3
3
|
def reset_password_instructions(user, token, *_args)
|
4
|
-
|
4
|
+
current_store_id = _args.inject(:merge)[:current_store_id]
|
5
|
+
@current_store = Spree::Store.find(current_store_id) || Spree::Store.current
|
6
|
+
@locale = @current_store.has_attribute?(:default_locale) ? @current_store.default_locale : I18n.default_locale
|
7
|
+
I18n.locale = @locale if @locale.present?
|
8
|
+
@edit_password_reset_url = spree.edit_spree_user_password_url(reset_password_token: token, host: @current_store.url)
|
9
|
+
@user = user
|
5
10
|
|
6
|
-
mail to: user.email, from: from_address, subject:
|
11
|
+
mail to: user.email, from: from_address, subject: @current_store.name + ' ' + I18n.t(:subject, scope: [:devise, :mailer, :reset_password_instructions]), store_url: @current_store.url
|
7
12
|
end
|
8
13
|
|
9
14
|
def confirmation_instructions(user, token, _opts = {})
|
10
|
-
|
15
|
+
current_store_id = _opts[:current_store_id]
|
16
|
+
@current_store = Spree::Store.find(current_store_id) || Spree::Store.current
|
17
|
+
@confirmation_url = spree_user_confirmation_url(confirmation_token: token, host: Spree::Store.current.url)
|
11
18
|
@email = user.email
|
12
19
|
|
13
|
-
mail to: user.email, from: from_address, subject:
|
20
|
+
mail to: user.email, from: from_address, subject: @current_store.name + ' ' + I18n.t(:subject, scope: [:devise, :mailer, :confirmation_instructions]), store_url: @current_store.url
|
14
21
|
end
|
15
22
|
end
|
16
23
|
end
|
data/app/models/spree/user.rb
CHANGED
@@ -27,6 +27,48 @@ module Spree
|
|
27
27
|
has_spree_role?('admin')
|
28
28
|
end
|
29
29
|
|
30
|
+
def self.send_confirmation_instructions(attributes = {}, current_store)
|
31
|
+
confirmable = find_by_unconfirmed_email_with_errors(attributes) if reconfirmable
|
32
|
+
unless confirmable.try(:persisted?)
|
33
|
+
confirmable = find_or_initialize_with_errors(confirmation_keys, attributes, :not_found)
|
34
|
+
end
|
35
|
+
confirmable.resend_confirmation_instructions(current_store) if confirmable.persisted?
|
36
|
+
confirmable
|
37
|
+
end
|
38
|
+
|
39
|
+
def resend_confirmation_instructions(current_store)
|
40
|
+
pending_any_confirmation do
|
41
|
+
send_confirmation_instructions(current_store)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def send_confirmation_instructions(current_store)
|
46
|
+
unless @raw_confirmation_token
|
47
|
+
generate_confirmation_token!
|
48
|
+
end
|
49
|
+
|
50
|
+
opts = pending_reconfirmation? ? { to: unconfirmed_email } : {}
|
51
|
+
opts[:current_store_id] = current_store.id
|
52
|
+
send_devise_notification(:confirmation_instructions, @raw_confirmation_token, opts)
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.send_reset_password_instructions(attributes={}, current_store)
|
56
|
+
recoverable = find_or_initialize_with_errors(reset_password_keys, attributes, :not_found)
|
57
|
+
recoverable.send_reset_password_instructions(current_store) if recoverable.persisted?
|
58
|
+
recoverable
|
59
|
+
end
|
60
|
+
|
61
|
+
def send_reset_password_instructions(current_store)
|
62
|
+
token = set_reset_password_token
|
63
|
+
send_reset_password_instructions_notification(token, current_store.id)
|
64
|
+
|
65
|
+
token
|
66
|
+
end
|
67
|
+
|
68
|
+
def send_reset_password_instructions_notification(token, current_store_id)
|
69
|
+
send_devise_notification(:reset_password_instructions, token, { current_store_id: current_store_id })
|
70
|
+
end
|
71
|
+
|
30
72
|
protected
|
31
73
|
|
32
74
|
def password_required?
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Spree
|
2
|
+
module Account
|
3
|
+
class Create
|
4
|
+
prepend Spree::ServiceModule::Base
|
5
|
+
|
6
|
+
def call(user_params: nil)
|
7
|
+
user_params ||= {}
|
8
|
+
|
9
|
+
user = Spree.user_class.new(user_params)
|
10
|
+
|
11
|
+
if user.save
|
12
|
+
success(user)
|
13
|
+
else
|
14
|
+
failure(user)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module Account
|
3
|
+
class Update
|
4
|
+
prepend Spree::ServiceModule::Base
|
5
|
+
|
6
|
+
def call(user:, user_params: nil)
|
7
|
+
user_params ||= {}
|
8
|
+
|
9
|
+
if user.update(user_params)
|
10
|
+
success(user)
|
11
|
+
else
|
12
|
+
failure(user)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<h1>
|
2
|
+
<%= Spree.t('user_mailer.confirmation_instructions.welcome', email: @email) %>
|
3
|
+
</h1>
|
4
|
+
<p>
|
5
|
+
<%= Spree.t('user_mailer.confirmation_instructions.instructions_1', { store_name: @current_store.name }) %>
|
6
|
+
</p>
|
7
|
+
<p>
|
8
|
+
<%= Spree.t('user_mailer.confirmation_instructions.instructions_2') %>
|
9
|
+
</p>
|
10
|
+
<p class="body-action">
|
11
|
+
<a href="<%= @confirmation_url %>" class="button button--green"><%= Spree.t('user_mailer.confirmation_instructions.button') %></a>
|
12
|
+
</p>
|
13
|
+
<p>
|
14
|
+
<%= Spree.t('user_mailer.confirmation_instructions.instructions_3') %>
|
15
|
+
</p>
|
16
|
+
<p>
|
17
|
+
<%= Spree.t('user_mailer.confirmation_instructions.thanks') %>
|
18
|
+
<br />
|
19
|
+
<%= Spree.t('user_mailer.confirmation_instructions.store_team', { store_name: @current_store.name }) %>
|
20
|
+
</p>
|
@@ -1,5 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
<%= @confirmation_url %>
|
1
|
+
<%= Spree.t('user_mailer.confirmation_instructions.welcome', email: @email) %>
|
2
|
+
<%= Spree.t('user_mailer.confirmation_instructions.instructions_1', { store_name: @current_store.name }) %>
|
3
|
+
<%= Spree.t('user_mailer.confirmation_instructions.instructions_2') %>
|
4
|
+
<%= Spree.t('user_mailer.confirmation_instructions.button') %>
|
5
|
+
<%= @confirmation_url %>
|
6
|
+
<%= Spree.t('user_mailer.confirmation_instructions.instructions_3') %>
|
7
|
+
<%= Spree.t('user_mailer.confirmation_instructions.thanks') %>
|
8
|
+
<%= Spree.t('user_mailer.confirmation_instructions.store_team', { store_name: @current_store.name }) %>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<h1>
|
2
|
+
<%= Spree.t('user_mailer.reset_password_instructions.welcome', email: @user.email) %>
|
3
|
+
</h1>
|
4
|
+
<p>
|
5
|
+
<%= Spree.t('user_mailer.reset_password_instructions.instructions_1', { store_name: @current_store.name }) %>
|
6
|
+
</p>
|
7
|
+
<p>
|
8
|
+
<%= Spree.t('user_mailer.reset_password_instructions.instructions_2') %>
|
9
|
+
</p>
|
10
|
+
<p class="body-action">
|
11
|
+
<a href="<%= @edit_password_reset_url %>" class="button button--green"><%= Spree.t('user_mailer.reset_password_instructions.button') %></a>
|
12
|
+
</p>
|
13
|
+
<p>
|
14
|
+
<%= Spree.t('user_mailer.reset_password_instructions.instructions_3') %>
|
15
|
+
</p>
|
16
|
+
<p>
|
17
|
+
<%= Spree.t('user_mailer.reset_password_instructions.thanks') %>
|
18
|
+
<br />
|
19
|
+
<%= Spree.t('user_mailer.reset_password_instructions.store_team', { store_name: @current_store.name }) %>
|
20
|
+
</p>
|
@@ -1,10 +1,12 @@
|
|
1
|
-
|
2
|
-
If you did not make this request, simply ignore this email.
|
1
|
+
<%= Spree.t('user_mailer.reset_password_instructions.welcome', email: @user.email) %>
|
3
2
|
|
4
|
-
|
3
|
+
<%= Spree.t('user_mailer.reset_password_instructions.instructions_1', { store_name: @current_store.name }) %>
|
4
|
+
<%= Spree.t('user_mailer.reset_password_instructions.instructions_2') %>
|
5
5
|
|
6
|
+
<%= Spree.t('user_mailer.reset_password_instructions.button') %>
|
6
7
|
<%= @edit_password_reset_url %>
|
7
8
|
|
8
|
-
|
9
|
-
If you continue to have problems please feel free to contact us.
|
9
|
+
<%= Spree.t('user_mailer.reset_password_instructions.instructions_3') %>
|
10
10
|
|
11
|
+
<%= Spree.t('user_mailer.reset_password_instructions.thanks') %>
|
12
|
+
<%= Spree.t('user_mailer.reset_password_instructions.store_team', { store_name: @current_store.name }) %>
|
@@ -1,22 +1,25 @@
|
|
1
1
|
<%= render :partial => 'spree/shared/error_messages', :locals => { :target => @spree_user } %>
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
2
|
+
|
3
|
+
<div class="container user-passwords">
|
4
|
+
<div class="row">
|
5
|
+
<div class="col-lg-6 offset-lg-3">
|
6
|
+
<div class="card mb-3 user-passwords-no-border">
|
7
|
+
<h3 class="spree-mb-large spree-mt-large spree-header"><%= Spree.t(:change_your_password) %></h3>
|
8
|
+
<div class="card-body">
|
9
|
+
<%= form_for @spree_user, as: :spree_user, url: spree.update_password_path, method: :put do |f| %>
|
10
|
+
<div class="form-group">
|
11
|
+
<%= f.label :password, Spree.t(:password), class: 'spree-flat-label' %>
|
12
|
+
<%= f.password_field :password, class: "spree-flat-input" %>
|
13
|
+
</div>
|
14
|
+
<div class="form-group">
|
15
|
+
<%= f.label :password_confirmation, Spree.t(:confirm_password), class: 'spree-flat-label' %>
|
16
|
+
<%= f.password_field :password_confirmation, class: "spree-flat-input" %>
|
17
|
+
</div>
|
18
|
+
<%= f.hidden_field :reset_password_token %>
|
19
|
+
<%= f.submit Spree.t(:update), class: 'btn btn-primary btn-block spree-btn mt-2' %>
|
20
|
+
<% end %>
|
16
21
|
</div>
|
17
|
-
|
18
|
-
<%= f.submit Spree.t(:update), :class => 'btn btn-lg btn-success btn-block' %>
|
19
|
-
<% end %>
|
22
|
+
</div>
|
20
23
|
</div>
|
21
24
|
</div>
|
22
25
|
</div>
|
@@ -1,21 +1,23 @@
|
|
1
1
|
<%= render :partial => 'spree/shared/error_messages', :locals => { :target => @spree_user } %>
|
2
|
-
<div class="col-lg-6 offset-lg-3" id="forgot-password">
|
3
|
-
<div class="card mb-3">
|
4
|
-
<div class="card-header">
|
5
|
-
<h3 class="card-title mb-0 h6"><%= Spree.t(:forgot_password) %></h3>
|
6
|
-
</div>
|
7
|
-
<div class="card-body">
|
8
|
-
<p><%= Spree.t(:instructions_to_reset_password) %></p>
|
9
2
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
<div>
|
16
|
-
|
3
|
+
<div class="container user-passwords">
|
4
|
+
<div class="row">
|
5
|
+
<div class="col-lg-6 offset-lg-3" id="forgot-password">
|
6
|
+
<div class="card mb-3 user-passwords-no-border">
|
7
|
+
<h3 class="spree-mb-large spree-mt-large spree-header"><%= Spree.t(:forgot_password) %></h3>
|
8
|
+
<div class="card-body">
|
9
|
+
<p><%= Spree.t(:instructions_to_reset_password) %></p>
|
10
|
+
|
11
|
+
<%= form_for Spree.user_class.new, as: :spree_user, url: spree.reset_password_path do |f| %>
|
12
|
+
<div class="form-group">
|
13
|
+
<%= f.email_field :email, class: "spree-flat-input", placeholder: Spree.t(:email) %>
|
14
|
+
</div>
|
15
|
+
<div>
|
16
|
+
<%= f.submit Spree.t(:reset_password), class: 'btn btn-primary btn-block spree-btn mt-2' %>
|
17
|
+
</div>
|
18
|
+
<% end %>
|
17
19
|
</div>
|
18
|
-
|
20
|
+
</div>
|
19
21
|
</div>
|
20
22
|
</div>
|
21
23
|
</div>
|
@@ -1,22 +1,17 @@
|
|
1
1
|
<% @body_id = 'signup' %>
|
2
|
-
<%= render :
|
2
|
+
<%= render partial: 'spree/shared/error_messages', locals: { target: @user } %>
|
3
3
|
<div class="col-lg-6 offset-lg-3">
|
4
|
-
<
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
<div data-hook="signup_inside_form">
|
11
|
-
<%= render :partial => 'spree/shared/user_form', :locals => { :f => f } %>
|
12
|
-
<div><%= f.submit Spree.t(:create), :class => 'btn btn-lg btn-success btn-block' %></div>
|
13
|
-
</div>
|
14
|
-
<% end %>
|
15
|
-
<div class="text-center">
|
16
|
-
<%= Spree.t(:or) %>
|
17
|
-
<%= link_to Spree.t(:login_as_existing), spree.login_path %>
|
18
|
-
</div>
|
19
|
-
<div data-hook="login_extras"></div>
|
4
|
+
<h3 class="spree-header spree-mb-large spree-mt-large"><%= Spree.t(:new_customer) %></h3>
|
5
|
+
<div id="new-customer" data-hook="login">
|
6
|
+
<%= form_for resource, as: :spree_user, url: spree.registration_path do |f| %>
|
7
|
+
<div data-hook="signup_inside_form">
|
8
|
+
<%= render partial: 'spree/shared/user_form', locals: { f: f, remember_me_field: true } %>
|
9
|
+
<div><%= f.submit Spree.t(:sign_up), class: 'btn btn-primary btn-block spree-btn mb-5' %></div>
|
20
10
|
</div>
|
11
|
+
<% end %>
|
12
|
+
|
13
|
+
<h3 class="spree-header header-sm spree-mt-medium mb-3 mb-sm-4 mb-xl-4"><%= Spree.t('already_have_account') %></h3>
|
14
|
+
<%= link_to Spree.t(:log_in), spree.login_path, class: 'btn btn-block btn-outline-primary spree-btn spree-mb-large' %>
|
15
|
+
<div data-hook="login_extras"></div>
|
21
16
|
</div>
|
22
17
|
</div>
|
@@ -1,17 +1,16 @@
|
|
1
1
|
<% @body_id = 'login' %>
|
2
|
-
<div class="
|
3
|
-
<div class="
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
<%= render :partial => 'spree/shared/login' %>
|
9
|
-
<div class="text-center">
|
10
|
-
<%= Spree.t(:or) %>
|
11
|
-
<%= link_to Spree.t(:create_a_new_account), spree.signup_path %> |
|
12
|
-
<%= link_to Spree.t(:forgot_password), spree.recover_password_path %>
|
13
|
-
</div>
|
2
|
+
<div class="container user-sessions user-sessions-new">
|
3
|
+
<div class="row">
|
4
|
+
<div class="col-lg-6 offset-lg-3">
|
5
|
+
<div class="mb-3">
|
6
|
+
<div id="existing-customer" data-hook="login">
|
7
|
+
<%= render partial: 'spree/shared/login' %>
|
14
8
|
<div data-hook="login_extras"></div>
|
9
|
+
</div>
|
10
|
+
<div class="col-lg-11 mx-auto" data-hook="registration">
|
11
|
+
<%= render partial: 'spree/shared/registration', locals: { registration_button: 'registration-button' } %>
|
12
|
+
</div>
|
15
13
|
</div>
|
14
|
+
</div>
|
16
15
|
</div>
|
17
16
|
</div>
|
data/config/locales/de.yml
CHANGED
@@ -1,9 +1,21 @@
|
|
1
1
|
---
|
2
2
|
de:
|
3
|
+
spree:
|
4
|
+
admin_login: Admin Login
|
5
|
+
change_your_password: Kennwort zurücksetzen
|
6
|
+
user_mailer:
|
7
|
+
reset_password_instructions:
|
8
|
+
instructions_1: "Es wurde eine Anfrage zum Zurücksetzen Ihres Passworts gestellt.\nWenn Sie diese Anfrage nicht gestellt haben, ignorieren Sie diese E-Mail.\n\nWenn Sie diese Anfrage gestellt haben, klicken Sie bitte auf den folgenden Link:"
|
9
|
+
instructions_2: "Falls die obige URL nicht funktioniert, bitte URL kopieren und in Ihren Browser einfügen\nWenn Sie weiterhin Probleme haben, können Sie sich gerne an uns wenden."
|
10
|
+
confirmation_instructions:
|
11
|
+
welcome: "Schön, dass Sie hier sind %{email}"
|
12
|
+
confirm: "Sie können Ihre Konto-E-Mail-Adresse über die folgende URL bestätigen:"
|
3
13
|
devise:
|
4
14
|
confirmations:
|
5
15
|
confirmed: Ihr Konto wurde erfolgreich aktiviert.
|
6
16
|
send_instructions: 'In ein paar Minuten erhalten Sie eine E-Mail mit Anweisungen, um Ihr Konto zu aktivieren.'
|
17
|
+
spree_user:
|
18
|
+
already_confirmed: Ihre E-Mail wurde bereits bestätigt. Bitte versuchen Sie erneut, sich anzumelden.
|
7
19
|
failure:
|
8
20
|
inactive: Ihr Konto wurde noch nicht aktiviert.
|
9
21
|
invalid: Ungültige E-Mail-Adresse oder Passwort.
|
@@ -28,16 +40,20 @@ de:
|
|
28
40
|
user_passwords:
|
29
41
|
spree_user:
|
30
42
|
cannot_be_blank: Ihr Passwort darf nicht leer sein.
|
43
|
+
no_token: Sie können nicht auf diese Seite zugreifen, wenn Sie den Link aus einer E-Mail zum Zurücksetzen des Kennworts nicht verwenden. Wenn Sie den Link aus einer E-Mail zum Zurücksetzen des Passworts verwenden, stellen Sie bitte sicher, dass Sie die vollständige URL verwendet haben.
|
31
44
|
send_instructions: In ein paar Minuten erhalten Sie eine E-Mail mit Anweisungen um Ihr Passwort zurücksetzen.
|
32
45
|
updated: Ihr Passwort wurde erfolgreich geändert.
|
33
46
|
user_registrations:
|
34
47
|
destroyed: Ihr Konto wurde erfolgreich gelöscht. Auf Wiedersehen!
|
35
48
|
inactive_signed_up: 'Sie haben sich erfolgreich registriert. Wir konnten Sie jedoch nicht anmelden, da Ihr Konto %{reason} ist.'
|
49
|
+
signed_up_but_unconfirmed: Eine Nachricht mit einem Bestätigungslink wurde an Ihre E-Mail-Adresse gesendet. Bitte folgen Sie dem Link, um Ihr Konto zu aktivieren.
|
36
50
|
signed_up: Herzlich Willkommen! Sie haben sich erfolgreich registriert.
|
37
51
|
updated: Sie haben Ihr Konto erfolgreich aktualisiert.
|
38
52
|
user_sessions:
|
39
53
|
signed_in: Erfolgreich angemeldet.
|
40
54
|
signed_out: Erfolgreich abgemeldet.
|
55
|
+
already_signed_in: Bereits angemeldet.
|
56
|
+
already_signed_out: Bereits abgemeldet.
|
41
57
|
errors:
|
42
58
|
messages:
|
43
59
|
already_confirmed: wurde bereits bestätigt
|
data/config/locales/en.yml
CHANGED
@@ -3,12 +3,29 @@ en:
|
|
3
3
|
spree:
|
4
4
|
admin_login: "Admin Login"
|
5
5
|
change_your_password: "Change your password"
|
6
|
-
|
7
|
-
|
6
|
+
user_mailer:
|
7
|
+
reset_password_instructions:
|
8
|
+
welcome: "Hi %{email}"
|
9
|
+
instructions_1: "A request to reset the password for your %{store_name} account has been made."
|
10
|
+
instructions_2: Click the button below to reset it.
|
11
|
+
instructions_3: If you did not request a password change ignore this email or contact us.
|
12
|
+
button: Reset your password
|
13
|
+
thanks: Thank you,
|
14
|
+
store_team: "%{store_name} Team"
|
15
|
+
confirmation_instructions:
|
16
|
+
welcome: "Welcome %{email}!"
|
17
|
+
instructions_1: "Thanks for registering at %{store_name}."
|
18
|
+
instructions_2: "Click the button below to confirm your account:"
|
19
|
+
instructions_3: If you have any questions, feel free to simply reply to this email.
|
20
|
+
button: Confirm email address
|
21
|
+
thanks: Thank you,
|
22
|
+
store_team: "%{store_name} Team"
|
8
23
|
devise:
|
9
24
|
confirmations:
|
10
|
-
confirmed: Your account was successfully confirmed. You
|
25
|
+
confirmed: Your account was successfully confirmed. You can now log in.
|
11
26
|
send_instructions: You will receive an email with instructions about how to confirm your account in a few minutes.
|
27
|
+
spree_user:
|
28
|
+
already_confirmed: Email was already confirmed, please try signing in.
|
12
29
|
failure:
|
13
30
|
inactive: Your account was not activated yet.
|
14
31
|
invalid: Invalid email or password.
|
@@ -24,8 +41,6 @@ en:
|
|
24
41
|
subject: Reset password instructions
|
25
42
|
unlock_instructions:
|
26
43
|
subject: Unlock Instructions
|
27
|
-
confirmation_instructions:
|
28
|
-
subject: Confirmation instructions
|
29
44
|
oauth_callbacks:
|
30
45
|
failure: 'Could not authorize you from %{kind} because %{reason}.'
|
31
46
|
success: 'Successfully authorized from %{kind} account.'
|
@@ -41,7 +56,7 @@ en:
|
|
41
56
|
user_registrations:
|
42
57
|
destroyed: Bye! Your account was successfully cancelled. We hope to see you again soon.
|
43
58
|
inactive_signed_up: 'You have signed up successfully. However, we could not sign you in because your account is %{reason}.'
|
44
|
-
signed_up_but_unconfirmed:
|
59
|
+
signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account."
|
45
60
|
signed_up: Welcome! You have signed up successfully.
|
46
61
|
updated: You updated your account successfully.
|
47
62
|
user_sessions:
|
@@ -0,0 +1,58 @@
|
|
1
|
+
---
|
2
|
+
zh-TW:
|
3
|
+
spree:
|
4
|
+
admin_login: "管理員登入"
|
5
|
+
change_your_password: "更改密碼"
|
6
|
+
devise:
|
7
|
+
confirmations:
|
8
|
+
confirmed: 你的帳號已經確認完成,現在你已經登入網站了。
|
9
|
+
send_instructions: 你會在幾分鐘內收到一封帳號確認信來確認你的帳號。
|
10
|
+
spree_user:
|
11
|
+
already_confirmed: Email 已確認,請登入。
|
12
|
+
failure:
|
13
|
+
inactive: 你的帳號尚未啟用。
|
14
|
+
invalid: 帳號或密碼有誤。
|
15
|
+
invalid_token: 錯誤的認證代碼。
|
16
|
+
locked: 你的帳號已經被停權,請聯絡客服人員。
|
17
|
+
timeout: 你的登入已經逾時,請重新登入。
|
18
|
+
unauthenticated: 你需要登入來繼續。
|
19
|
+
unconfirmed: 你的帳號需要確認來繼續。
|
20
|
+
mailer:
|
21
|
+
confirmation_instructions:
|
22
|
+
subject: 帳號確認教學
|
23
|
+
reset_password_instructions:
|
24
|
+
subject: 重設密碼教學
|
25
|
+
unlock_instructions:
|
26
|
+
subject: 帳號解鎖教學
|
27
|
+
oauth_callbacks:
|
28
|
+
failure: '由於%{reason},無法透過%{kind}確認你的帳號。'
|
29
|
+
success: '成功的由%{kind}認證你的帳號。'
|
30
|
+
unlocks:
|
31
|
+
send_instructions: 你在幾分鐘後會收到一封 Email 教你如何解鎖帳號。
|
32
|
+
unlocked: 你的帳號已經解鎖,現在你已經登入網站了。
|
33
|
+
user_passwords:
|
34
|
+
spree_user:
|
35
|
+
cannot_be_blank: 密碼不能為空白。
|
36
|
+
no_token: "你只能透過重新設定密碼的 Email 內的連結來訪問此頁面。如果你真的是透過那封 Email 來此頁面,請確定你是透過完整的網址過來的。"
|
37
|
+
send_instructions: 你在幾分鐘後會收到一封 Email 教你如何更改密碼。
|
38
|
+
updated: 你的密碼已經更改成功,你已成功登入。
|
39
|
+
user_registrations:
|
40
|
+
destroyed: 再見!你的帳號已經被取消了,但我們希望能再服務你。
|
41
|
+
inactive_signed_up: '你已經成功註冊,但由於%{reason}的原因,導致帳號無法登入。'
|
42
|
+
signed_up_but_unconfirmed: 確認信件已經寄到您的信箱,請按照上面的教學完成您的註冊。
|
43
|
+
signed_up: 歡迎!你已經成功註冊了。
|
44
|
+
updated: 你的帳號已經成功更新。
|
45
|
+
user_sessions:
|
46
|
+
signed_in: 登入成功
|
47
|
+
signed_out: 登出成功
|
48
|
+
already_signed_in: 已經登入
|
49
|
+
already_signed_out: 已經登入
|
50
|
+
errors:
|
51
|
+
messages:
|
52
|
+
already_confirmed: 已確認
|
53
|
+
email_is_invalid: Email 不能為空值
|
54
|
+
not_found: 找不到
|
55
|
+
not_locked: 沒有被鎖住
|
56
|
+
not_saved:
|
57
|
+
one: '%{resource}由於以下的一個錯誤導致無法被儲存:'
|
58
|
+
other: '%{resource}由於以下的%{count}個錯誤導致無法被儲存:'
|