solidus_social 1.0.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.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.hound.yml +26 -0
- data/.rspec +3 -0
- data/.rubocop.yml +8 -0
- data/.travis.yml +19 -0
- data/CHANGELOG.md +5 -0
- data/CONTRIBUTING.md +31 -0
- data/Gemfile +7 -0
- data/Guardfile +10 -0
- data/LICENSE.md +26 -0
- data/README.md +148 -0
- data/Rakefile +15 -0
- data/app/assets/javascripts/spree/backend/solidus_social.js +1 -0
- data/app/assets/javascripts/spree/frontend/solidus_social.js +1 -0
- data/app/assets/stylesheets/spree/backend/solidus_social.css +3 -0
- data/app/assets/stylesheets/spree/frontend/fontello.css +64 -0
- data/app/assets/stylesheets/spree/frontend/solidus_social.css +4 -0
- data/app/controllers/spree/admin/authentication_methods_controller.rb +18 -0
- data/app/controllers/spree/omniauth_callbacks_controller.rb +67 -0
- data/app/controllers/spree/user_authentications_controller.rb +12 -0
- data/app/controllers/spree/user_registrations_controller_decorator.rb +15 -0
- data/app/helpers/spree/omniauth_callbacks_helper.rb +5 -0
- data/app/models/spree/authentication_method.rb +13 -0
- data/app/models/spree/social_configuration.rb +5 -0
- data/app/models/spree/user_authentication.rb +3 -0
- data/app/models/spree/user_decorator.rb +16 -0
- data/app/overrides/add_authentications_to_account_summary.rb +5 -0
- data/app/overrides/admin_configuration_decorator.rb +5 -0
- data/app/overrides/user_registrations_decorator.rb +17 -0
- data/app/views/spree/admin/authentication_methods/_form.html.erb +45 -0
- data/app/views/spree/admin/authentication_methods/edit.html.erb +18 -0
- data/app/views/spree/admin/authentication_methods/index.html.erb +54 -0
- data/app/views/spree/admin/authentication_methods/new.html.erb +18 -0
- data/app/views/spree/admin/shared/_configurations_menu.html.erb +4 -0
- data/app/views/spree/shared/_social.html.erb +11 -0
- data/app/views/spree/shared/_user_form.html.erb +19 -0
- data/app/views/spree/users/_new-customer.html.erb +5 -0
- data/app/views/spree/users/_social.html.erb +28 -0
- data/bin/rails +7 -0
- data/config/initializers/devise.rb +13 -0
- data/config/locales/de.yml +26 -0
- data/config/locales/en.yml +26 -0
- data/config/locales/es-MX.yml +26 -0
- data/config/locales/fr.yml +26 -0
- data/config/locales/nl.yml +26 -0
- data/config/locales/pt-BR.yml +26 -0
- data/config/locales/sv.yml +26 -0
- data/config/routes.rb +14 -0
- data/db/migrate/20120120163432_create_user_authentications.rb +10 -0
- data/db/migrate/20120123163222_create_authentication_methods.rb +13 -0
- data/lib/generators/solidus_social/install/install_generator.rb +24 -0
- data/lib/solidus_social.rb +10 -0
- data/lib/solidus_social/engine.rb +70 -0
- data/lib/solidus_social/version.rb +18 -0
- data/solidus_social.gemspec +47 -0
- data/spec/controllers/spree/omniauth_callbacks_controller_spec.rb +160 -0
- data/spec/features/spree/admin/authentication_methods_configuration_spec.rb +79 -0
- data/spec/features/spree/sign_in_spec.rb +81 -0
- data/spec/lib/spree_social/engine_spec.rb +16 -0
- data/spec/models/spree/user_decorator_spec.rb +54 -0
- data/spec/spec_helper.rb +36 -0
- data/spec/support/capybara.rb +18 -0
- data/spec/support/database_cleaner.rb +24 -0
- data/spec/support/devise.rb +3 -0
- data/spec/support/factory_girl.rb +7 -0
- data/spec/support/spree.rb +8 -0
- metadata +429 -0
@@ -0,0 +1,12 @@
|
|
1
|
+
class Spree::UserAuthenticationsController < Spree::StoreController
|
2
|
+
def index
|
3
|
+
@authentications = spree_current_user.user_authentications if spree_current_user
|
4
|
+
end
|
5
|
+
|
6
|
+
def destroy
|
7
|
+
@authentication = spree_current_user.user_authentications.find(params[:id])
|
8
|
+
@authentication.destroy
|
9
|
+
flash[:notice] = Spree.t(:destroy, scope: :authentications)
|
10
|
+
redirect_to spree.account_path
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Spree::UserRegistrationsController.class_eval do
|
2
|
+
after_action :clear_omniauth, only: :create
|
3
|
+
|
4
|
+
private
|
5
|
+
|
6
|
+
def build_resource(*args)
|
7
|
+
super
|
8
|
+
@spree_user.apply_omniauth(session[:omniauth]) if session[:omniauth]
|
9
|
+
@spree_user
|
10
|
+
end
|
11
|
+
|
12
|
+
def clear_omniauth
|
13
|
+
session[:omniauth] = nil unless @spree_user.new_record?
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class Spree::AuthenticationMethod < ActiveRecord::Base
|
2
|
+
validates :provider, :api_key, :api_secret, presence: true
|
3
|
+
|
4
|
+
def self.active_authentication_methods?
|
5
|
+
where(environment: ::Rails.env, active: true).exists?
|
6
|
+
end
|
7
|
+
|
8
|
+
scope :available_for, lambda { |user|
|
9
|
+
sc = where(environment: ::Rails.env)
|
10
|
+
sc = sc.where(['provider NOT IN (?)', user.user_authentications.map(&:provider)]) if user && !user.user_authentications.empty?
|
11
|
+
sc
|
12
|
+
}
|
13
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Spree.user_class.class_eval do
|
2
|
+
has_many :user_authentications, dependent: :destroy
|
3
|
+
|
4
|
+
devise :omniauthable
|
5
|
+
|
6
|
+
def apply_omniauth(omniauth)
|
7
|
+
if %w(facebook google_oauth2).include? omniauth['provider']
|
8
|
+
self.email = omniauth['info']['email'] if email.blank?
|
9
|
+
end
|
10
|
+
user_authentications.build(provider: omniauth['provider'], uid: omniauth['uid'])
|
11
|
+
end
|
12
|
+
|
13
|
+
def password_required?
|
14
|
+
(user_authentications.empty? || !password.blank?) && super
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,5 @@
|
|
1
|
+
Deface::Override.new(virtual_path: 'spree/admin/shared/_configuration_menu',
|
2
|
+
name: 'add_social_providers_link_configuration_menu',
|
3
|
+
insert_bottom: '[data-hook="admin_configurations_sidebar_menu"]',
|
4
|
+
text: '<%= configurations_sidebar_menu_item Spree.t(:social_authentication_methods), spree.admin_authentication_methods_path %>',
|
5
|
+
disabled: false)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Deface::Override.new(virtual_path: 'spree/user_registrations/new',
|
2
|
+
name: 'add_socials_to_login_extras',
|
3
|
+
insert_after: '[data-hook="login_extras"]',
|
4
|
+
text: '<%= render partial: "spree/shared/social" unless session[:omniauth] %>',
|
5
|
+
disabled: false)
|
6
|
+
|
7
|
+
Deface::Override.new(virtual_path: 'spree/user_sessions/new',
|
8
|
+
name: 'add_socials_to_login_extras',
|
9
|
+
insert_after: '[data-hook="login_extras"]',
|
10
|
+
partial: 'spree/shared/social',
|
11
|
+
disabled: false)
|
12
|
+
|
13
|
+
Deface::Override.new(virtual_path: 'spree/user_registrations/new',
|
14
|
+
name: 'remove_new_customer_if_sessionomniauth',
|
15
|
+
replace: 'div#new-customer h6',
|
16
|
+
partial: 'spree/users/new-customer',
|
17
|
+
disabled: false)
|
@@ -0,0 +1,45 @@
|
|
1
|
+
<div data-hook="admin_social_methods_form_fields" class="row">
|
2
|
+
<div class="alpha five columns">
|
3
|
+
<div data-hook="environment" class="field">
|
4
|
+
<%= f.field_container :environment do %>
|
5
|
+
<%= label_tag nil, Spree.t(:environment) %>
|
6
|
+
<%= collection_select(:authentication_method, :environment, Rails.configuration.database_configuration.keys, :to_s, :titleize, {}, { class: 'select2 fullwidth' }) %>
|
7
|
+
<% end %>
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
<div class="alpha five columns">
|
11
|
+
<div data-hook="environment" class="field">
|
12
|
+
<%= f.field_container :provider do %>
|
13
|
+
<%= f.label :provider, Spree.t(:social_provider) %>
|
14
|
+
<%= f.select :provider, SolidusSocial::OAUTH_PROVIDERS, {}, { include_blank: false, class: 'select2 fullwidth' } %>
|
15
|
+
<% end %>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
<div class="alpha five columns">
|
19
|
+
<div data-hook="environment" class="field">
|
20
|
+
<%= f.field_container :api_key do %>
|
21
|
+
<%= f.label :api_key, Spree.t(:social_api_key) %> <span class="required">*</span><br />
|
22
|
+
<%= f.text_field :api_key, class: 'fullwidth' %>
|
23
|
+
<% end %>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
<div class="alpha five columns">
|
27
|
+
<div data-hook="environment" class="field">
|
28
|
+
<%= f.field_container :api_secret do %>
|
29
|
+
<%= f.label :api_secret, Spree.t(:social_api_secret) %> <span class="required">*</span><br />
|
30
|
+
<%= f.text_field :api_secret, class: 'fullwidth' %>
|
31
|
+
<% end %>
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
<div class="alpha five columns">
|
35
|
+
<div data-hook="environment" class="field">
|
36
|
+
<%= f.field_container :active do %>
|
37
|
+
<span style="padding:0 10px 2px;"><%= f.label :active, Spree.t(:active) %></span>
|
38
|
+
<%= f.radio_button :active, :true %>
|
39
|
+
<span style="padding:0 2px;"><%= Spree.t(:say_yes) %></span>
|
40
|
+
<%= f.radio_button :active, :false %>
|
41
|
+
<span style="padding:0 2px"><%= Spree.t(:say_no) %></span>
|
42
|
+
<% end %>
|
43
|
+
</div>
|
44
|
+
</div>
|
45
|
+
</div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<%= render 'spree/admin/shared/configuration_menu' %>
|
2
|
+
|
3
|
+
<% content_for :page_title do %>
|
4
|
+
<%= Spree.t(:edit_social_method) %>
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
<% content_for :page_actions do %>
|
8
|
+
<li><%= link_to_with_icon 'icon-arrow-left', Spree.t(:back_to_authentication_methods_list), admin_authentication_methods_path, class: 'button' %></li>
|
9
|
+
<% end %>
|
10
|
+
|
11
|
+
<%= render 'spree/shared/error_messages', target: @authentication_method %>
|
12
|
+
|
13
|
+
<%= form_for [:admin, @authentication_method] do |f| %>
|
14
|
+
<fieldset class="no-border-top">
|
15
|
+
<%= render 'form', f: f %>
|
16
|
+
<%= render 'spree/admin/shared/edit_resource_links' %>
|
17
|
+
</fieldset>
|
18
|
+
<% end %>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<%= render 'spree/admin/shared/configuration_menu' %>
|
2
|
+
|
3
|
+
<% content_for :page_title do %>
|
4
|
+
<%= Spree.t(:social_authentication_methods) %>
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
<% content_for :page_actions do %>
|
8
|
+
<ul class="actions inline-menu">
|
9
|
+
<li>
|
10
|
+
<%= button_link_to Spree.t(:new_social_method), new_object_url, icon: 'icon-plus', id: 'admin_new_slide_link' %>
|
11
|
+
</li>
|
12
|
+
</ul>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<% if @authentication_methods.any? %>
|
16
|
+
<table class="index">
|
17
|
+
<colgroup>
|
18
|
+
<col style="width: 12%" />
|
19
|
+
<col style="width: 23%" />
|
20
|
+
<col style="width: 25%" />
|
21
|
+
<col style="width: 12%" />
|
22
|
+
<col style="width: 8%" />
|
23
|
+
<col style="width: 20%" />
|
24
|
+
</colgroup>
|
25
|
+
<thead data-hook="admin_social_methods_index_headers">
|
26
|
+
<th><%= Spree.t(:social_provider) %></th>
|
27
|
+
<th><%= Spree.t(:social_api_key) %></th>
|
28
|
+
<th><%= Spree.t(:social_api_secret) %></th>
|
29
|
+
<th><%= Spree.t(:environment) %></th>
|
30
|
+
<th><%= Spree.t(:active) %></th>
|
31
|
+
<th data-hook="admin_social_methods_index_header_actions" class="actions"></th>
|
32
|
+
</thead>
|
33
|
+
<tbody>
|
34
|
+
<% @authentication_methods.each do |method|%>
|
35
|
+
<tr id="<%= dom_id method %>" data-hook="admin_trackers_index_rows">
|
36
|
+
<td class="align-center"><%= method.provider %></td>
|
37
|
+
<td class="align-center"><%= truncate method.api_key, length: 20 %></td>
|
38
|
+
<td class="align-center"><%= truncate method.api_secret, length: 20 %></td>
|
39
|
+
<td class="align-center"><%= method.environment.to_s.titleize %></td>
|
40
|
+
<td class="align-center"><%= method.active ? Spree.t(:yes) : Spree.t(:no) %></td>
|
41
|
+
<td class="actions">
|
42
|
+
<%= link_to_edit method, no_text: true %>
|
43
|
+
<%= link_to_delete method, no_text: true %>
|
44
|
+
</td>
|
45
|
+
</tr>
|
46
|
+
<% end %>
|
47
|
+
</tbody>
|
48
|
+
</table>
|
49
|
+
<% else %>
|
50
|
+
<div class="alpha twelve columns no-objects-found">
|
51
|
+
<%= Spree.t(:no_authentication_methods_found) %>,
|
52
|
+
<%= Spree.t(:add_one) %>!
|
53
|
+
</div>
|
54
|
+
<% end %>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<%= render 'spree/admin/shared/configuration_menu' %>
|
2
|
+
|
3
|
+
<% content_for :page_title do %>
|
4
|
+
<%= Spree.t(:new_social_method) %>
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
<% content_for :page_actions do %>
|
8
|
+
<li><%= link_to_with_icon 'icon-arrow-left', Spree.t(:back_to_authentication_methods_list), admin_authentication_methods_path, class: 'button' %></li>
|
9
|
+
<% end %>
|
10
|
+
|
11
|
+
<%= render 'spree/shared/error_messages', target: @authentication_method %>
|
12
|
+
|
13
|
+
<%= form_for [:admin, @authentication_method] do |f| %>
|
14
|
+
<fieldset class="no-border-top">
|
15
|
+
<%= render 'form', f: f %>
|
16
|
+
<%= render 'spree/admin/shared/new_resource_links' %>
|
17
|
+
</fieldset>
|
18
|
+
<% end %>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<div id="social-signin-links">
|
2
|
+
<% if (!spree_current_user || !spree_current_user.user_authentications) && Spree::AuthenticationMethod.active_authentication_methods? %>
|
3
|
+
<h2><%= Spree.t(:sign_in_through_one_of_these_services) %></h2>
|
4
|
+
<% end %>
|
5
|
+
|
6
|
+
<% Spree::AuthenticationMethod.available_for(@spree_user).each do |method| %>
|
7
|
+
<%= link_to(content_tag(:i, '', class: "icon-spree-#{method.provider.to_url}-circled"),
|
8
|
+
spree.spree_user_omniauth_authorize_url(provider: method.provider),
|
9
|
+
title: Spree.t(:sign_in_with, provider: method.provider)) if method.active %>
|
10
|
+
<% end %>
|
11
|
+
</div>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<p>
|
2
|
+
<%= f.label :email, Spree.t(:email) %><br />
|
3
|
+
<%= f.email_field :email, class: 'title' %>
|
4
|
+
</p>
|
5
|
+
<% if spree_current_user.nil? || spree_current_user.password_required? %>
|
6
|
+
<div id="password-credentials">
|
7
|
+
<p>
|
8
|
+
<%= f.label :password, Spree.t(:password) %><br />
|
9
|
+
<%= f.password_field :password, class: 'title' %>
|
10
|
+
</p>
|
11
|
+
|
12
|
+
<p>
|
13
|
+
<%= f.label :password_confirmation, Spree.t(:confirm_password) %><br />
|
14
|
+
<%= f.password_field :password_confirmation, class: 'title' %>
|
15
|
+
</p>
|
16
|
+
</div>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<div data-hook="signup_below_password_fields"></div>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<% if Spree::AuthenticationMethod.active_authentication_methods? %>
|
2
|
+
<% @body_id = 'login' %>
|
3
|
+
<div id="existing-customer">
|
4
|
+
<% if spree_current_user.user_authentications %>
|
5
|
+
<% unless spree_current_user.user_authentications.empty? %>
|
6
|
+
<p><strong><%= Spree.t(:you_have_signed_in_with_these_services) %>:</strong></p>
|
7
|
+
<div class="authentications">
|
8
|
+
<% for user_authentication in spree_current_user.user_authentications %>
|
9
|
+
<div class="authentication">
|
10
|
+
<div class="provider columns two">
|
11
|
+
<%= content_tag(:i, '', class: "icon-spree-#{user_authentication.provider.to_url}-circled columns") %>
|
12
|
+
<%= user_authentication.provider %>
|
13
|
+
</div>
|
14
|
+
<div class="uid columns two"><%= user_authentication.uid %></div>
|
15
|
+
<%= link_to 'X', user_authentication, data: { confirm: "#{Spree.t(:remove_authentication_option_confirmation)}" }, method: :delete, class: 'remove' %>
|
16
|
+
</div>
|
17
|
+
<% end %>
|
18
|
+
<div class="clear"></div>
|
19
|
+
</div>
|
20
|
+
<% end %>
|
21
|
+
|
22
|
+
<% end %>
|
23
|
+
<%= content_tag(:p, content_tag(:strong, Spree.t(:add_another_service))) if Spree::AuthenticationMethod.available_for(spree_current_user).exists? %>
|
24
|
+
<%= render 'spree/shared/social' %>
|
25
|
+
</div>
|
26
|
+
|
27
|
+
<div class="clear"></div>
|
28
|
+
<% end %>
|
data/bin/rails
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
SolidusSocial::OAUTH_PROVIDERS.each do |provider|
|
2
|
+
SolidusSocial.init_provider(provider[1])
|
3
|
+
end
|
4
|
+
|
5
|
+
OmniAuth.config.logger = Logger.new(STDOUT)
|
6
|
+
OmniAuth.logger.progname = 'omniauth'
|
7
|
+
|
8
|
+
OmniAuth.config.on_failure = proc do |env|
|
9
|
+
env['devise.mapping'] = Devise.mappings[Spree.user_class.table_name.singularize.to_sym]
|
10
|
+
controller_name = ActiveSupport::Inflector.camelize(env['devise.mapping'].controllers[:omniauth_callbacks])
|
11
|
+
controller_klass = ActiveSupport::Inflector.constantize("#{controller_name}Controller")
|
12
|
+
controller_klass.action(:failure).call(env)
|
13
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
---
|
2
|
+
de:
|
3
|
+
devise:
|
4
|
+
omniauth_callbacks:
|
5
|
+
success: "Sie sind jetzt mit Ihrem %{kind}-Konto angemeldet."
|
6
|
+
spree:
|
7
|
+
user_was_not_valid: Benutzer ist nicht gültig.
|
8
|
+
add_another_service: "Füge einen weiteren Dienst zum einloggen hinzu:"
|
9
|
+
authentications:
|
10
|
+
destroy: "Erfolgreich Authentifizierungsmethode zerstört."
|
11
|
+
back_to_authentication_methods_list: "Zurück zur Liste Authentifizierungsmethoden"
|
12
|
+
edit_social_method: "Social Provider zum einloggen bearbeiten"
|
13
|
+
new_social_method: "Neue Loginmethode"
|
14
|
+
no_authentication_methods_found: "Keine Authentifizierungsmethoden gefunden"
|
15
|
+
one_more_step: 'Ein letzter Schritt um deine Anmeldung über %{kind} abzuschließen'
|
16
|
+
remove_authentication_option_confirmation: "Bist du sicher, dass du diesen Dienst zum einloggen entfernen möchtest?"
|
17
|
+
sign_into_account: "Oder manuell einloggen"
|
18
|
+
sign_in_through_one_of_these_services: "Mit einem Klick einloggen"
|
19
|
+
social_api_key: "Öffentliche APP-ID"
|
20
|
+
social_api_secret: "Geheimer API-Schlüssel"
|
21
|
+
social_authentication_methods: "Social Login Dienste"
|
22
|
+
social_authentication_methods_description: "OAuth-Einstellugnen"
|
23
|
+
social_provider: "Social Anbieter"
|
24
|
+
please_confirm_your_email: "Bitte bestätige deine Emailadresse um fortzufahren"
|
25
|
+
sign_in_with: "Mit %{provider} einloggen"
|
26
|
+
you_have_signed_in_with_these_services: "Sie haben mit diesen Diensten unterzeichnet"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
---
|
2
|
+
en:
|
3
|
+
devise:
|
4
|
+
omniauth_callbacks:
|
5
|
+
success: "You are now signed in with your %{kind} account."
|
6
|
+
spree:
|
7
|
+
user_was_not_valid: User was not valid.
|
8
|
+
add_another_service: "Add another service to sign in with:"
|
9
|
+
authentications:
|
10
|
+
destroy: 'Successfully destroyed authentication method.'
|
11
|
+
back_to_authentication_methods_list: "Back To Authentication Methods List"
|
12
|
+
edit_social_method: "Editing Social Authentication Method"
|
13
|
+
new_social_method: "New Authentication Method"
|
14
|
+
no_authentication_methods_found: "No Authentication Methods Found"
|
15
|
+
one_more_step: 'One more step to complete your registration from %{kind}'
|
16
|
+
remove_authentication_option_confirmation: "Are you sure you would like to remove this authentication method?"
|
17
|
+
sign_into_account: "You can sign into this account using:"
|
18
|
+
sign_in_through_one_of_these_services: "Sign in through one of these services:"
|
19
|
+
social_api_key: "API Key"
|
20
|
+
social_api_secret: "API Secret"
|
21
|
+
social_authentication_methods: "Social Authentication Methods"
|
22
|
+
social_authentication_methods_description: "Setup OAuth Authentication Methods"
|
23
|
+
social_provider: "Social Provider"
|
24
|
+
please_confirm_your_email: "Please confirm your email address to continue"
|
25
|
+
sign_in_with: "Login with %{provider}"
|
26
|
+
you_have_signed_in_with_these_services: "You Have Signed In With These Services"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
---
|
2
|
+
es-MX:
|
3
|
+
devise:
|
4
|
+
omniauth_callbacks:
|
5
|
+
success: "Estás sesión con tu cuenta de %{kind}."
|
6
|
+
spree:
|
7
|
+
user_was_not_valid: "El usuario no fue válido."
|
8
|
+
add_another_service: 'Añadir otro servicio para inicio de sesión:'
|
9
|
+
authentications:
|
10
|
+
destroy: 'Método de autenticación destruido exitosamente.'
|
11
|
+
back_to_authentication_methods_list: "Volver a la lista de métodos de autenticación"
|
12
|
+
edit_social_method: 'Editando metodo de autenticación'
|
13
|
+
new_social_method: 'Nuevo método de autenticación'
|
14
|
+
no_authentication_methods_found: "No se encuentran ni métodos de autenticación"
|
15
|
+
one_more_step: 'Un paso más para completar tu registro desde %{kind}'
|
16
|
+
remove_authentication_option_confirmation: '¿Está seguro que quiere eliminar este método de autenticación?'
|
17
|
+
sign_into_account: 'Puedes iniciar sesión usando:'
|
18
|
+
sign_in_through_one_of_these_services: 'Iniciar sesión a través de uno de estos servicios:'
|
19
|
+
social_api_key: 'API Clave'
|
20
|
+
social_api_secret: 'API Secreto'
|
21
|
+
social_authentication_methods: 'Métodos de autenticación'
|
22
|
+
social_authentication_methods_description: 'Configurar métodos de autenticación de OAuth'
|
23
|
+
social_provider: 'Proveedor social'
|
24
|
+
please_confirm_your_email: 'Por favor confirme su email para continuar'
|
25
|
+
sign_in_with: 'Autententicado con %{provider}'
|
26
|
+
you_have_signed_in_with_these_services: "Has iniciado sesión con estos servicios"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
---
|
2
|
+
fr:
|
3
|
+
devise:
|
4
|
+
omniauth_callbacks:
|
5
|
+
success: "Vous êtes maintenant connecté à votre compte %{kind}."
|
6
|
+
spree:
|
7
|
+
user_was_not_valid: "L'utilisateur n'était pas valide."
|
8
|
+
add_another_service: "Ajouter un autre service d'identification:"
|
9
|
+
authentications:
|
10
|
+
destroy: "Succès détruit méthode d'authentification."
|
11
|
+
back_to_authentication_methods_list: "Retour à la liste des méthodes d'authentification"
|
12
|
+
edit_social_method: "Modifier le service d'identification"
|
13
|
+
new_social_method: "Nouveau service d'identification"
|
14
|
+
no_authentication_methods_found: "Aucune méthode d'authentification trouvés"
|
15
|
+
one_more_step: "Encore une étape avant de terminer l'identification %{kind}"
|
16
|
+
remove_authentication_option_confirmation: "Etes-vous sûr(e) de vouloir supprimer ce service d'identification?"
|
17
|
+
sign_into_account: "Vous pouvez vous connecter à ce compte en utilisant:"
|
18
|
+
sign_in_through_one_of_these_services: "Identifiez-vous avec l'un de ces services:"
|
19
|
+
social_api_key: "Clé API"
|
20
|
+
social_api_secret: "API Secret"
|
21
|
+
social_authentication_methods: "Services d'identification via Réseau Sociaux"
|
22
|
+
social_authentication_methods_description: "Paramétrage Identification OAuth"
|
23
|
+
social_provider: "Réseau Social"
|
24
|
+
please_confirm_your_email: "Confirmez votre adresse courriel avant de continuer"
|
25
|
+
sign_in_with: "Identification via %{provider}"
|
26
|
+
you_have_signed_in_with_these_services: "Vous avez signé avec ces services"
|