From b9b7ac4ba17440176f3e2a0b522a4374b4363554 Mon Sep 17 00:00:00 2001 From: kbe Date: Tue, 26 Aug 2025 19:08:23 +0200 Subject: [PATCH] Add flash message support and localization updates --- app/views/components/_header.html.erb | 48 ++++----- app/views/devise/confirmations/new.html.erb | 43 +++++--- app/views/devise/passwords/edit.html.erb | 12 +-- app/views/devise/passwords/new.html.erb | 22 +++- app/views/devise/registrations/edit.html.erb | 26 ++--- app/views/devise/registrations/new.html.erb | 12 +-- app/views/devise/sessions/new.html.erb | 18 ++-- app/views/devise/shared/_links.html.erb | 14 +-- config/locales/en.yml | 107 ++++++++++++++++++- config/locales/fr.yml | 79 +++++++++++++- 10 files changed, 297 insertions(+), 84 deletions(-) diff --git a/app/views/components/_header.html.erb b/app/views/components/_header.html.erb index 7427a0f..a1b3fec 100644 --- a/app/views/components/_header.html.erb +++ b/app/views/components/_header.html.erb @@ -11,12 +11,12 @@ @@ -46,11 +46,11 @@ class="absolute z-50 mt-2 w-48 rounded-md shadow-lg origin-top-right right-0" style="display: none;" @click="open = false">
- <%= link_to "Mon profil" , edit_user_registration_path, - class: "block w-full px-4 py-2 text-start text-sm leading-5 text-white hover:bg-purple-700" %> - <%= link_to "Mes réservations" , "#" , +<%= link_to t('header.profile') , edit_user_registration_path, class: "block w-full px-4 py-2 text-start text-sm leading-5 text-white hover:bg-purple-700" %> - <%= link_to "Déconnexion" , destroy_user_session_path, data: { controller: "logout" , +<%= link_to t('header.reservations') , "#" , + class: "block w-full px-4 py-2 text-start text-sm leading-5 text-white hover:bg-purple-700" %> + <%= link_to t('header.logout') , destroy_user_session_path, data: { controller: "logout" , action: "click->logout#signOut" , logout_url_value: destroy_user_session_path, login_url_value: new_user_session_path, turbo: false }, class: "block w-full px-4 py-2 text-start text-sm leading-5 text-white hover:bg-purple-700" %> @@ -61,12 +61,12 @@ <% else %> <% end %> @@ -86,12 +86,12 @@ diff --git a/app/views/devise/confirmations/new.html.erb b/app/views/devise/confirmations/new.html.erb index 962cb5c..880cf9d 100644 --- a/app/views/devise/confirmations/new.html.erb +++ b/app/views/devise/confirmations/new.html.erb @@ -1,15 +1,34 @@ -

Resend confirmation instructions

+
+
+
+ <%= link_to "/" do %> + Aperonight + <% end %> +

+ <%= t('devise.confirmations.new.title') %> +

+

+ <%= t('devise.confirmations.new.description') %> +

+
-<%= form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f| %> + <%= form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post, class: "mt-8 space-y-6" }) do |f| %> -
- <%= f.label :email %>
- <%= f.email_field :email, autofocus: true, autocomplete: "email", value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email) %> +
+ <%= f.label :email, class: "block text-sm font-medium text-neutral-700" %> +
+ <%= f.email_field :email, autofocus: true, autocomplete: "email", value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email), + class: "appearance-none block w-full px-3 py-2 border border-neutral-300 rounded-md shadow-sm placeholder-neutral-400 focus:outline-none focus:ring-purple-500 focus:border-purple-500 sm:text-sm", + placeholder: "Email" %> +
+
+ +
+ <%= f.submit t('devise.confirmations.new.submit'), + class: "group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-purple-600 hover:bg-purple-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-neutral-50 focus:ring-purple-500" %> +
+ <% end %> + + <%= render "devise/shared/links" %>
- -
- <%= f.submit "Resend confirmation instructions" %> -
-<% end %> - -<%= render "devise/shared/links" %> +
diff --git a/app/views/devise/passwords/edit.html.erb b/app/views/devise/passwords/edit.html.erb index 88d71c3..91cfb7b 100644 --- a/app/views/devise/passwords/edit.html.erb +++ b/app/views/devise/passwords/edit.html.erb @@ -5,10 +5,10 @@ Aperonight <% end %>

- Changer votre mot de passe + <%= t('devise.passwords.edit.title') %>

- Veuillez entrer votre nouveau mot de passe ci-dessous + <%= t('devise.passwords.edit.description') %>

@@ -17,23 +17,23 @@
- <%= f.label :password, "Nouveau mot de passe", class: "block text-sm font-medium text-neutral-700" %> + <%= f.label :password, t('devise.passwords.edit.new_password'), class: "block text-sm font-medium text-neutral-700" %> <% if @minimum_password_length %> - (<%= @minimum_password_length %> caractères minimum) + (<%= t('devise.registrations.new.minimum_password_length', count: @minimum_password_length) %>) <% end %> <%= f.password_field :password, autofocus: true, autocomplete: "new-password", class: "mt-1 block w-full px-3 py-2 border border-neutral-300 rounded-md shadow-sm placeholder-neutral-400 focus:outline-none focus:ring-purple-500 focus:border-purple-500 sm:text-sm" %>
- <%= f.label :password_confirmation, "Confirmer le nouveau mot de passe", class: "block text-sm font-medium text-neutral-700" %> + <%= f.label :password_confirmation, t('devise.passwords.edit.confirm_new_password'), class: "block text-sm font-medium text-neutral-700" %> <%= f.password_field :password_confirmation, autocomplete: "new-password", class: "mt-1 block w-full px-3 py-2 border border-neutral-300 rounded-md shadow-sm placeholder-neutral-400 focus:outline-none focus:ring-purple-500 focus:border-purple-500 sm:text-sm" %>
- <%= f.submit "Changer mon mot de passe", + <%= f.submit t('devise.passwords.edit.submit'), class: "group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-purple-600 hover:bg-purple-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-neutral-50 focus:ring-purple-500" %>
<% end %> diff --git a/app/views/devise/passwords/new.html.erb b/app/views/devise/passwords/new.html.erb index 2a60d75..0bfa10e 100644 --- a/app/views/devise/passwords/new.html.erb +++ b/app/views/devise/passwords/new.html.erb @@ -5,10 +5,10 @@ Aperonight <% end %>

- Mot de passe oublié ? + <%= t('devise.passwords.new.title') %>

- Entrez votre adresse email et nous vous enverrons un lien pour réinitialiser votre mot de passe + <%= t('devise.passwords.new.description') %>

@@ -19,16 +19,28 @@
<%= f.email_field :email, autofocus: true, autocomplete: "email", class: "appearance-none block w-full px-3 py-2 border border-neutral-300 rounded-md shadow-sm placeholder-neutral-400 focus:outline-none focus:ring-purple-500 focus:border-purple-500 sm:text-sm", - placeholder: "Adresse email" %> + placeholder: t('devise.passwords.new.email_placeholder') %>
- <%= f.submit "Envoyer le lien de réinitialisation", + <%= f.submit t('devise.passwords.new.submit'), class: "group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-purple-600 hover:bg-purple-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-neutral-50 focus:ring-purple-500" %>
<% end %> - <%= render "devise/shared/links" %> +
+
+
+
+
+
+ <%= t('devise.sessions.new.continue_with') %> +
+
+ + <%= render "devise/shared/links" %> +
+ diff --git a/app/views/devise/registrations/edit.html.erb b/app/views/devise/registrations/edit.html.erb index 5055f1c..7172600 100644 --- a/app/views/devise/registrations/edit.html.erb +++ b/app/views/devise/registrations/edit.html.erb @@ -18,7 +18,7 @@
<%= f.label :email, class: "block text-sm font-medium text-neutral-700" %> - <%= f.email_field :email, autofocus: true, autocomplete: "email", + <%= f.email_field :email, autofocus: true, autocomplete: "email", class: "mt-1 block w-full px-3 py-2 border border-neutral-300 rounded-md shadow-sm placeholder-neutral-400 focus:outline-none focus:ring-purple-500 focus:border-purple-500 sm:text-sm" %>
@@ -31,40 +31,40 @@
<%= f.label :password, "Nouveau mot de passe", class: "block text-sm font-medium text-neutral-700" %> (laissez vide si vous ne souhaitez pas le changer) - <%= f.password_field :password, autocomplete: "new-password", + <%= f.password_field :password, autocomplete: "new-password", class: "mt-1 block w-full px-3 py-2 border border-neutral-300 rounded-md shadow-sm placeholder-neutral-400 focus:outline-none focus:ring-purple-500 focus:border-purple-500 sm:text-sm" %>
- <%= f.label :password_confirmation, "Confirmer le nouveau mot de passe", class: "block text-sm font-medium text-neutral-700" %> - <%= f.password_field :password_confirmation, autocomplete: "new-password", + <%= f.label :password_confirmation, t('devise.registrations.edit.confirm_new_password'), class: "block text-sm font-medium text-neutral-700" %> + <%= f.password_field :password_confirmation, autocomplete: "new-password", class: "mt-1 block w-full px-3 py-2 border border-neutral-300 rounded-md shadow-sm placeholder-neutral-400 focus:outline-none focus:ring-purple-500 focus:border-purple-500 sm:text-sm" %>
- <%= f.label :current_password, "Mot de passe actuel", class: "block text-sm font-medium text-neutral-700" %> - (requis pour confirmer vos changements) - <%= f.password_field :current_password, autocomplete: "current-password", + <%= f.label :current_password, t('devise.registrations.edit.current_password'), class: "block text-sm font-medium text-neutral-700" %> + (<%= t('devise.registrations.edit.current_password_required') %>) + <%= f.password_field :current_password, autocomplete: "current-password", class: "mt-1 block w-full px-3 py-2 border border-neutral-300 rounded-md shadow-sm placeholder-neutral-400 focus:outline-none focus:ring-purple-500 focus:border-purple-500 sm:text-sm" %>
- <%= f.submit "Mettre à jour", + <%= f.submit t('devise.registrations.edit.update'), class: "group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-purple-600 hover:bg-purple-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-neutral-50 focus:ring-purple-500" %>
<% end %> -

Supprimer mon compte

+

<%= t('devise.registrations.edit.delete_account') %>

- Mécontent ? <%= button_to "Supprimer mon compte", registration_path(resource_name), - data: { confirm: "Êtes-vous sûr ?", turbo_confirm: "Êtes-vous sûr ?" }, - method: :delete, + <%= t('devise.registrations.edit.unhappy') %> <%= button_to t('devise.registrations.edit.delete_account'), registration_path(resource_name), + data: { confirm: t('devise.registrations.edit.confirm_delete'), turbo_confirm: t('devise.registrations.edit.confirm_delete') }, + method: :delete, class: "font-medium text-red-600 hover:text-red-500" %>

- <%= link_to "Retour", :back, class: "text-center block text-purple-600 hover:text-purple-500" %> + <%= link_to t('devise.registrations.edit.back'), :back, class: "text-center block text-purple-600 hover:text-purple-500" %> diff --git a/app/views/devise/registrations/new.html.erb b/app/views/devise/registrations/new.html.erb index d6a1b5a..dcc4039 100644 --- a/app/views/devise/registrations/new.html.erb +++ b/app/views/devise/registrations/new.html.erb @@ -5,12 +5,12 @@ Aperonight <% end %>

- Créer votre compte + <%= t('devise.registrations.new.title') %>

- Ou + <%= t('devise.registrations.new.or') %> - connectez-vous à votre compte + <%= t('devise.registrations.new.sign_in_link') %>

@@ -27,7 +27,7 @@
<%= f.label :password, class: "block text-sm font-medium text-neutral-700" %> <% if @minimum_password_length %> - (<%= @minimum_password_length %> caractères minimum) + (<%= t('devise.registrations.new.minimum_password_length', count: @minimum_password_length) %>) <% end %> <%= f.password_field :password, autocomplete: "new-password", class: "mt-1 block w-full px-3 py-2 border border-neutral-300 rounded-md shadow-sm placeholder-neutral-500 focus:outline-none focus:ring-purple-500 focus:border-purple-500 sm:text-sm" %> @@ -41,7 +41,7 @@
- <%= f.submit "S'inscrire", class: "group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-purple-600 hover:bg-purple-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-neutral-50 focus:ring-purple-500" %> + <%= f.submit t('devise.registrations.new.sign_up'), class: "group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-purple-600 hover:bg-purple-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-neutral-50 focus:ring-purple-500" %>
<% end %> @@ -51,7 +51,7 @@
- Ou continuer avec + <%= t('devise.registrations.new.continue_with') %>
diff --git a/app/views/devise/sessions/new.html.erb b/app/views/devise/sessions/new.html.erb index 6753f2f..4c75fef 100644 --- a/app/views/devise/sessions/new.html.erb +++ b/app/views/devise/sessions/new.html.erb @@ -5,12 +5,12 @@ Aperonight <% end %>

- Connexion à votre compte + <%= t('devise.sessions.new.title') %>

- Ou + <%= t('devise.sessions.new.or') %> - créez un nouveau compte + <%= t('devise.sessions.new.sign_up_link') %>

@@ -22,14 +22,14 @@ <%= f.label :email, class: "sr-only" %> <%= f.email_field :email, autofocus: true, autocomplete: "email", class: "appearance-none rounded-none relative block w-full px-3 py-2 border border-neutral-300 placeholder-neutral-500 text-neutral-900 bg-white rounded-t-md focus:outline-none focus:ring-purple-500 focus:border-purple-500 focus:z-10 sm:text-sm", - placeholder: "Adresse email" %> + placeholder: t('devise.sessions.new.email_placeholder') %>
<%= f.label :password, class: "sr-only" %> <%= f.password_field :password, autocomplete: "current-password", class: "appearance-none rounded-none relative block w-full px-3 py-2 border border-neutral-300 placeholder-neutral-500 text-neutral-900 bg-white rounded-b-md focus:outline-none focus:ring-purple-500 focus:border-purple-500 focus:z-10 sm:text-sm", - placeholder: "Mot de passe" %> + placeholder: t('devise.sessions.new.password_placeholder') %>
@@ -37,17 +37,17 @@
<%= f.check_box :remember_me, class: "h-4 w-4 text-purple-600 focus:ring-purple-500 border-neutral-300 rounded bg-white" %> - +
- <%= link_to "Mot de passe oublié?", new_password_path(resource_name), class: "font-medium text-purple-600 hover:text-purple-500" %> + <%= link_to t('devise.sessions.new.forgot_password'), new_password_path(resource_name), class: "font-medium text-purple-600 hover:text-purple-500" %>
<% end %>
- <%= f.submit "Se connecter", class: "group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-purple-600 hover:bg-purple-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-neutral-50 focus:ring-purple-500" %> + <%= f.submit t('devise.sessions.new.sign_in'), class: "group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-purple-600 hover:bg-purple-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-neutral-50 focus:ring-purple-500" %>
<% end %> @@ -57,7 +57,7 @@
- Ou continuer avec + <%= t('devise.sessions.new.continue_with') %>
diff --git a/app/views/devise/shared/_links.html.erb b/app/views/devise/shared/_links.html.erb index df8dfe1..334abc6 100644 --- a/app/views/devise/shared/_links.html.erb +++ b/app/views/devise/shared/_links.html.erb @@ -1,38 +1,38 @@ -
+
<%- if controller_name != "sessions" %>
- <%= link_to "Se connecter", new_session_path(resource_name), class: "block" %> + <%= link_to t('devise.shared.links.sign_in'), new_session_path(resource_name), class: "block" %>
<% end %> <%- if devise_mapping.registerable? && controller_name != "registrations" %>
- <%= link_to "S'inscrire", new_registration_path(resource_name), class: "block" %> + <%= link_to t('devise.shared.links.sign_up'), new_registration_path(resource_name), class: "block" %>
<% end %> <%- if devise_mapping.recoverable? && controller_name != "passwords" && controller_name != "registrations" %>
- <%= link_to "Mot de passe oublié ?", new_password_path(resource_name), class: "block" %> + <%= link_to t('devise.shared.links.forgot_password'), new_password_path(resource_name), class: "block" %>
<% end %> <%- if devise_mapping.confirmable? && controller_name != "confirmations" %>
- <%= link_to "Vous n'avez pas reçu les instructions de confirmation ?", new_confirmation_path(resource_name), class: "block" %> + <%= link_to t('devise.shared.links.confirmation_instructions'), new_confirmation_path(resource_name), class: "block" %>
<% end %> <%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != "unlocks" %>
- <%= link_to "Vous n'avez pas reçu les instructions de déverrouillage?", new_unlock_path(resource_name), class: "block" %> + <%= link_to t('devise.shared.links.unlock_instructions'), new_unlock_path(resource_name), class: "block" %>
<% end %> <%- if devise_mapping.omniauthable? %> <%- resource_class.omniauth_providers.each do |provider| %>
- <%= button_to "Se connecter avec #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider), data: { turbo: false }, class: "block" %> + <%= button_to t('devise.shared.links.sign_in_with', provider: OmniAuth::Utils.camelize(provider)), omniauth_authorize_path(resource_name, provider), data: { turbo: false }, class: "block" %>
<% end %> <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 6c349ae..29b4b3b 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -28,4 +28,109 @@ # enabled: "ON" en: - hello: "Hello world" + activerecord: + models: + user: "User" + party: "Party" + ticket: "Ticket" + ticket_type: "Ticket type" + attributes: + user: + email: "Email" + password: "Password" + password_confirmation: "Password confirmation" + remember_me: "Remember me" + party: + name: "Name" + description: "Description" + start_date: "Start date" + end_date: "End date" + location: "Location" + capacity: "Capacity" + ticket: + user: "User" + ticket_type: "Ticket type" + quantity: "Quantity" + price: "Price" + ticket_type: + name: "Name" + description: "Description" + price: "Price" + available_quantity: "Available quantity" + header: + parties: "Parties & Afterworks" + concerts: "Concerts" + profile: "My Profile" + reservations: "My Reservations" + logout: "Logout" + login: "Login" + register: "Register" + devise: + confirmations: + new: + title: "Resend confirmation instructions" + submit: "Resend confirmation instructions" + description: "Enter your email address and we'll send you the confirmation instructions" + passwords: + new: + title: "Forgot your password?" + description: "Enter your email address and we'll send you a link to reset your password" + submit: "Send reset password instructions" + email_placeholder: "Email address" + edit: + title: "Change your password" + description: "Please enter your new password below" + new_password: "New password" + confirm_new_password: "Confirm new password" + current_password: "Current password" + leave_blank: "leave blank if you don't want to change it" + current_password_required: "required to confirm your changes" + submit: "Change my password" + registrations: + new: + title: "Create your account" + or: "Or" + sign_in_link: "sign in to your account" + sign_up: "Sign up" + continue_with: "Or continue with" + minimum_password_length: + one: "1 character minimum" + other: "%{count} characters minimum" + edit: + title: "Edit your account" + subtitle: "Manage your information and preferences" + waiting_confirmation: "Waiting for confirmation for: %{email}" + new_password: "New password" + confirm_new_password: "Confirm new password" + current_password: "Current password" + leave_blank: "leave blank if you don't want to change it" + current_password_required: "required to confirm your changes" + update: "Update" + delete_account: "Delete my account" + unhappy: "Unhappy?" + confirm_delete: "Are you sure?" + back: "Back" + sessions: + new: + title: "Sign in to your account" + or: "Or" + sign_up_link: "create a new account" + email_placeholder: "Email address" + password_placeholder: "Password" + remember_me: "Remember me" + forgot_password: "Forgot your password?" + sign_in: "Sign in" + continue_with: "Or continue with" + shared: + links: + sign_in: "Sign in" + sign_up: "Register" + forgot_password: "Forgot your password?" + confirmation_instructions: "Didn't receive confirmation instructions?" + unlock_instructions: "Didn't receive unlock instructions?" + sign_in_with: "Sign in with %{provider}" + unlocks: + new: + title: "Resend unlock instructions" + submit: "Resend unlock instructions" + description: "Enter your email address and we'll send you the unlock instructions" diff --git a/config/locales/fr.yml b/config/locales/fr.yml index fedcd6c..8722309 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -43,4 +43,81 @@ fr: name: "Nom" description: "Description" price: "Prix" - available_quantity: "Quantité disponible" \ No newline at end of file + available_quantity: "Quantité disponible" + header: + parties: "Soirées et afterworks" + concerts: "Concerts" + profile: "Mon profil" + reservations: "Mes réservations" + logout: "Déconnexion" + login: "Se connecter" + register: "S'inscrire" + devise: + confirmations: + new: + title: "Renvoyer les instructions de confirmation" + submit: "Renvoyer les instructions de confirmation" + description: "Entrez votre adresse email et nous vous enverrons les instructions de confirmation" + passwords: + new: + title: "Mot de passe oublié ?" + description: "Entrez votre adresse email et nous vous enverrons un lien pour réinitialiser votre mot de passe" + submit: "Envoyer le lien de réinitialisation" + email_placeholder: "Adresse email" + edit: + title: "Changer votre mot de passe" + description: "Veuillez entrer votre nouveau mot de passe ci-dessous" + new_password: "Nouveau mot de passe" + confirm_new_password: "Confirmer le nouveau mot de passe" + current_password: "Mot de passe actuel" + leave_blank: "laissez vide si vous ne souhaitez pas le changer" + current_password_required: "requis pour confirmer vos changements" + submit: "Changer mon mot de passe" + registrations: + new: + title: "Créer votre compte" + or: "Ou" + sign_in_link: "connectez-vous à votre compte" + sign_up: "S'inscrire" + continue_with: "Ou continuer avec" + minimum_password_length: + one: "1 caractère minimum" + other: "%{count} caractères minimum" + edit: + title: "Modifier votre compte" + subtitle: "Gérez vos informations et préférences" + waiting_confirmation: "En attente de confirmation pour : %{email}" + new_password: "Nouveau mot de passe" + confirm_new_password: "Confirmer le nouveau mot de passe" + current_password: "Mot de passe actuel" + leave_blank: "laissez vide si vous ne souhaitez pas le changer" + current_password_required: "requis pour confirmer vos changements" + update: "Mettre à jour" + delete_account: "Supprimer mon compte" + unhappy: "Mécontent ?" + confirm_delete: "Êtes-vous sûr ?" + back: "Retour" + sessions: + new: + title: "Connexion à votre compte" + or: "Ou" + sign_up_link: "créez un nouveau compte" + email_placeholder: "Adresse email" + password_placeholder: "Mot de passe" + remember_me: "Se souvenir de moi" + forgot_password: "Mot de passe oublié ?" + sign_in: "Se connecter" + continue_with: "Ou continuer avec" + shared: + links: + sign_in: "Se connecter" + sign_up: "S'inscrire" + forgot_password: "Mot de passe oublié ?" + confirmation_instructions: "Vous n'avez pas reçu les instructions de confirmation ?" + unlock_instructions: "Vous n'avez pas reçu les instructions de déverrouillage ?" + sign_in_with: "Se connecter avec %{provider}" + unlocks: + new: + title: "Renvoyer les instructions de déverrouillage" + submit: "Renvoyer les instructions de déverrouillage" + description: "Entrez votre adresse email et nous vous enverrons les instructions de déverrouillage" \ No newline at end of file