From 7e50558d73b32ba883884c090490d51198e552da Mon Sep 17 00:00:00 2001 From: Carl Chenet Date: Sat, 9 Jul 2016 14:29:04 +0200 Subject: [PATCH 1/5] localize settings (controller, view) and invitation form --- config/locales/en.yml | 61 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 9e7ce35..82ec439 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -52,4 +52,63 @@ en: actionline: "Action" reasonline: "Reason" page: "Page" - + settings: + delete_account: + deleteaccountflash: "Your account has been deleted." + verifypasswordflash: "Your password could not be verified." + index: + viewprofile: "View Profile" + accountsettings: "Account Settings" + username: "Username:" + password: "New Password:" + confirmpassword: "Confirm Password:" + emailaddress: "E-mail Address:" + gravatarized: "Gravatar'ized" + about: "About:" + markdownformattingavailable: "Markdown formatting available" + saveaccountsettings: "Save Account Settings" + notificationsettings: "Notification Settings" + pushover: "Pushover:" + managepushoversubscription: "Manage Pushover Subscription" + subscribewithpushover: "Subscribe With Pushover" + foroptionalcomment: "For optional comment and message notifications below" + commentreplynotificationsettings: "Comment Reply Notification Settings" + receiveemail: "Receive E-mail:" + receivepushover: "Receive Pushover Alert:" + requirepushover: "Requires Pushover subscription above" + commentmentionnotificationsettings: "Comment Mention Notification Settings" + privatemessagenotificationsettings: "Private Message Notification Settings" + submittedstorycommentsettings: "Submitted Story Comment Settings" + showyourthreads: "Show in Your Threads:" + mailinglistsettings: "Mailing List Settings" + mailinglisttext: "When enabled, you will receive all newly submitted stories and comments to your e-mail address entered above, except the stories and comments filtered by your tag filters. All e-mail messages will appear to be sent to your private list address shown below which you can filter on, and e-mails you send to that address will be posted under your account on this website. You should keep your unique list address private to prevent others from posting comments as you." + receivelistemails: "Receive List E-mails:" + listemailoption1: "No e-mails" + listemailoption2: "All stories and comments" + listemailoption3: "Only stories" + listaddress: "List Address:" + miscsettings: "Miscellaneous Settings" + storypreview: "Show Story Previews:" + useravatars: "Show User Avatars:" + saveallsettings: "Save All Settings" + inviteuser: "Invite a New User" + cannotsendinvitations: "You cannot send invitations." + deleteaccount: "Delete Account" + deleteaccounttext: "To permanently delete your account, verify your current password below. Your account will be put into a deleted state, your comments will be marked as deleted and no longer readable by any other users, and your private messages will be deleted. Your submitted stories will not be deleted. Your username will remain reserved and will not be available to be used on any other account." + verifypassword: "Verify Password:" + deleteaccountconfirmation: "Yes, Delete My Account" + pushover: + pushovernotconfigured: "This site is not configured for Pushover" + pushover_callback: + pushovernorandomtokensession: "No random token present in session" + pushovernorandomtokenurl: "No random token present in URL" + accountsetuppushover: "Your account is now setup for Pushover notifications." + accountnolongersetuppushover: "Your account is no longer setup for Pushover notifications." + update: + updatesettingsflash: "Successfully updated settings." + users: + invitationform: + invitationtext: "Invitations are unlimited, but persons you invite will be associated with your account in the user tree and you may be responsible for them if they cause problems. Please use your discretion when inviting persons you don't personally know." + emailaddress: "E-mail Address:" + memouser: "Memo to User:" + sendinvitation: "Send Invitation" From 518ce147da61adb142b12ff298a52e8678f65f7a Mon Sep 17 00:00:00 2001 From: Carl Chenet Date: Sat, 9 Jul 2016 14:29:55 +0200 Subject: [PATCH 2/5] localize settings (controller, view), invitation form and activerecord error message about passwords not matching --- config/locales/fr.yml | 72 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 36934b0..cf69803 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -2,6 +2,18 @@ # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. fr: + activerecord: + errors: + template: + body: 'Veuillez vérifier les champs suivants : ' + header: + one: 'Impossible d''enregistrer ce(tte) %{model} : 1 erreur' + other: 'Impossible d''enregistrer ce(tte) %{model} : %{count} erreurs' + models: + user: + attributes: + password_confirmation: + confirmation: "La confirmation et le mot de passe ne correspondent pas" time: formats: default: "%d-%m-%Y %H:%M:%S" @@ -52,3 +64,63 @@ fr: actionline: "Action" reasonline: "Raison" page: "Page" + settings: + delete_account: + deleteaccountflash: "Votre compte a été supprimé." + verifypasswordflash: "Votre mot de passe n'a pas pu être vérifié." + index: + viewprofile: "Voir le profil" + accountsettings: "Paramètres du compte" + username: "Utilisateur :" + password: "Nouveau mot de passe :" + confirmpassword: "Confirmer le mot de passe :" + emailaddress: "Adresse e-mail :" + gravatarized: "Gravatarisé" + about: "À propos :" + markdownformattingavailable: "Formatage Markdown possible" + saveaccountsettings: "Sauver les paramètres du compte" + notificationsettings: "Paramètres de notification" + pushover: "Pushover :" + managepushoversubscription: "Gérer l'abonnement au Pushover" + subscribewithpushover: "S'abonner au Pushover" + foroptionalcomment: "Pour les notifications de commentaires et de messages ci-dessous" + commentreplynotificationsettings: "Paramètres de notification de réponse à un commentaire" + receiveemail: "Recevoir un e-mail :" + receivepushover: "Recevoir une alerte Pushover :" + requirepushover: "Requière un abonnement Pushover ci-dessus" + commentmentionnotificationsettings: "Paramètres de notification de mention d'un commentaire" + privatemessagenotificationsettings: "Paramètres de notification de message privé" + submittedstorycommentsettings: "Paramètres de commentaires relatifs à vos infos" + showyourthreads: "Montrer dans vos sujets:" + mailinglistsettings: "Paramètres des listes de diffusion" + mailinglisttext: "Si activé, vous recevrez toutes les nouvelles récemment soumises et les commentaires à votre adresse e-mail ci-dessus, à l'exception de ces nouvelles et leurs commentaires filtrés à partir de vos filtres de marques. Tous les e-mails seront envoyés à votre adresse de liste privée affichée ci-dessous à partir de laquelle vous pouvez filtrer, et les e-mails que vous envoyez à cette adresse seront postés sous ce compte sur le site web. You devrez garder cette adresse de liste privée pour éviter que d'autres ne postent des commentaires pour vous." + receivelistemails: "Recevoir les e-mails de la liste :" + listemailoption1: "pas d'e-mails" + listemailoption2: "Toutes les infos et les commentaires" + listemailoption3: "Seulement les infos" + listaddress: "Adresse de la liste :" + miscsettings: "Paramètres variés" + storypreview: "Montrer les aperçus des infos: " + useravatars: "Montrer les avatars des utilisateurs :" + saveallsettings: "Sauver tous les paramètres" + inviteuser: "Inviter un nouvel utilisateur" + cannotsendinvitations: "Vous ne pouvez pas envoyer d'invitations." + deleteaccount: "Supprimer le compte" + deleteaccounttext: "Pour supprimer définitivement votre compte, vérifiez votre mot de passe actuel ci-dessous. Votre compte sera passé en état supprimé, vos commentaires seront marqués comme supprimés et ne seront plus lisibles par les autres utilisateurs, vos messages privés seront également supprimés. Vos infos proposées ne seront pas supprimées. Votre nom d'utilisateur restera réservé et ne sera pas disponible pour un autre compte." + verifypassword: "Vérification du mot de passe :" + deleteaccountconfirmation: "Oui, supprimez mon compte" + pushover: + pushovernotconfigured: "Ce site n'est pas configuré pour le Pushover" + pushover_callback: + pushovernorandomtokensession: "Pas de jeton alétoire présent dans cette session" + pushovernorandomtokenurl: "Pas de jeton alétoire présent dans l'url" + accountsetuppushover: "Votre compte est maintenant configuré pour les notifications Pushover." + accountnolongersetuppushover: "Votre compte n'est plus configuré pour les notifications Pushover." + update: + updatesettingsflash: "Paramètres mis à jour avec succès." + users: + invitationform: + invitationtext: "Le nombre d'invitations est illimité, mais les personnes que vous invitez sont associées à votre compte dans l'arbre des utilisateurs et vous pourriez être tenu pour responsable s'ils causent des problèmes. Merci d'évaluer le fait d'inviter des gens que vous ne connaissez pas personnellement." + emailaddress: "Adresse e-mail :" + memouser: "Message à l'utilisateur :" + sendinvitation: "Envoyer l'invitation" From 160579bfa28e0285f5be77f8fe194698d3d58ef9 Mon Sep 17 00:00:00 2001 From: Carl Chenet Date: Sat, 9 Jul 2016 14:31:09 +0200 Subject: [PATCH 3/5] i18n of settings view --- app/views/settings/index.html.erb | 100 +++++++++++++----------------- 1 file changed, 44 insertions(+), 56 deletions(-) diff --git a/app/views/settings/index.html.erb b/app/views/settings/index.html.erb index 2d11ef0..73d800a 100644 --- a/app/views/settings/index.html.erb +++ b/app/views/settings/index.html.erb @@ -1,9 +1,9 @@
- Account Settings + <%= t('.accountsettings') %>
<%= form_for @edit_user, :url => settings_path, :method => :post, @@ -11,7 +11,7 @@ <%= error_messages_for f.object %>
- <%= f.label :username, "Username:", :class => "required" %> + <%= f.label :username, t('.username'), :class => "required" %> <%= f.text_field :username, :size => 15 %> <%= User.username_regex %> @@ -19,27 +19,27 @@
- <%= f.label :password, "New Password:", :class => "required" %> + <%= f.label :password, t('.password'), :class => "required" %> <%= f.password_field :password, :size => 40, :autocomplete => "off" %>
- <%= f.label :password_confirmation, "Confirm Password:", + <%= f.label :password_confirmation, t('.confirmpassword'), :class => "required" %> <%= f.password_field :password_confirmation, :size => 40, :autocomplete => "off" %>
- <%= f.label :email, "E-mail Address:", :class => "required" %> + <%= f.label :email, t('.emailaddress'), :class => "required" %> <%= f.text_field :email, :size => 40 %> - Gravatar'ized + <%= raw(t('.gravatarized')) %>
- <%= f.label :about, "About:", :class => "required" %> + <%= f.label :about, t('.about'), :class => "required" %> <%= f.text_area :about, :size => "100x5", :style => "width: 600px;" %>
@@ -47,7 +47,7 @@
- Markdown formatting available + <%= t('.markdownformattingavailable') %>
@@ -57,96 +57,96 @@

- <%= f.submit "Save Account Settings" %> + <%= f.submit t('.saveaccountsettings') %>


- Notification Settings + <%= t('.notificationsettings') %>
<%= f.label :pushover_user_key, - raw("Pushover:"), + raw(t(".pushover")), :class => "required" %> <%= link_to((f.object.pushover_user_key.present?? - "Manage Pushover Subscription" : "Subscribe With Pushover"), + t('.managepushoversubscription') : t('.subscribewithpushover')), "/settings/pushover", :class => "pushover_button", :method => :post) %> - For optional comment and message notifications below + <%= t('.foroptionalcomment') %>

- Comment Reply Notification Settings + <%= t('.commentreplynotificationsettings') %>
- <%= f.label :email_replies, "Receive E-mail:", :class => "required" %> + <%= f.label :email_replies, t('.receiveemail'), :class => "required" %> <%= f.check_box :email_replies %>
- <%= f.label :pushover_replies, "Receive Pushover Alert:", + <%= f.label :pushover_replies, t('.receivepushover'), :class => "required" %> <%= f.check_box :pushover_replies %> - Requires Pushover subscription above + <%= t('.requirepushover') %>

- Comment Mention Notification Settings + <%= t('.commentmentionnotificationsettings') %>
- <%= f.label :email_mentions, "Receive E-mail:", :class => "required" %> + <%= f.label :email_mentions, t('.receiveemail'), :class => "required" %> <%= f.check_box :email_mentions %>
- <%= f.label :pushover_mentions, "Receive Pushover Alert:", + <%= f.label :pushover_mentions, t('.receivepushover'), :class => "required" %> <%= f.check_box :pushover_mentions %> - Requires Pushover subscription above + <%= t('.requirepushover') %>

- Private Message Notification Settings + <%= t('.privatemessagenotificationsettings') %>
- <%= f.label :email_messages, "Receive E-mail:", :class => "required" %> + <%= f.label :email_messages, t('.receiveemail'), :class => "required" %> <%= f.check_box :email_messages %>
- <%= f.label :pushover_messages, "Receive Pushover Alert:", + <%= f.label :pushover_messages, t('.receivepushover'), :class => "required" %> <%= f.check_box :pushover_messages %> - Requires Pushover subscription above + <%= t('.requirepushover') %>

- Submitted Story Comment Settings + <%= t('.submittedstorycommentsettings') %>
<%= f.label :show_submitted_story_threads, - raw("Show in Your Threads:"), + raw(t('.showyourthreads')), :class => "required" %> <%= f.check_box :show_submitted_story_threads %>
@@ -154,28 +154,22 @@
- Mailing List Settings + <%= t('.mailinglistsettings') %>

- When enabled, you will receive all newly submitted stories and comments to - your e-mail address entered above, except the stories and comments filtered - by your tag filters. - All e-mail messages will appear to be sent to your private list address - shown below which you can filter on, and e-mails you send to that address - will be posted under your account on this website. You should keep your - unique list address private to prevent others from posting comments as you. + <%= raw(t('.mailinglisttext')) %>

- <%= f.label :mailing_list_mode, "Receive List E-mails:", + <%= f.label :mailing_list_mode, t('.receivelistemails'), :class => "required" %> - <%= f.select :mailing_list_mode, [ [ "No e-mails", 0 ], - [ "All stories and comments", 1 ], [ "Only stories", 2 ] ] %> + <%= f.select :mailing_list_mode, [ [ t('.listemailoption1'), 0 ], + [ t('.listemailoption2'), 1 ], [ t('.listemailoption3'), 2 ] ] %>
- + <%= Rails.application.shortname %>-<%= @edit_user.mailing_list_token %>@<%= Rails.application.domain %> @@ -185,23 +179,23 @@
- Miscellaneous Settings + <%= t('.miscsettings') %>
- <%= f.label :show_story_previews, "Show Story Previews:", + <%= f.label :show_story_previews, t('.storypreview'), :class => "required" %> <%= f.check_box :show_story_previews %>
- <%= f.label :show_avatars, "Show User Avatars:", :class => "required" %> + <%= f.label :show_avatars, t('.useravatars'), :class => "required" %> <%= f.check_box :show_avatars %>

- <%= f.submit "Save All Settings" %> + <%= f.submit t('.saveallsettings') %> <% end %>
@@ -209,13 +203,13 @@
- Invite a New User + <%= t('.inviteuser') %>
<% if @user.can_invite? %> <%= render :partial => "users/invitationform" %> <% else %> - You cannot send invitations. + <%= t('.cannotsendinvitations') %> <% end %>
@@ -224,25 +218,19 @@ <%= form_for @edit_user, :url => delete_account_path, :method => :post, :html => { :id => "delete_user" } do |f| %>
- Delete Account + <%= t('.deleteaccount') %>

- To permanently delete your account, verify your current password below. - Your account will be put into a deleted state, your comments will be marked - as deleted and no longer readable by any other users, and your private - messages will be deleted. - Your submitted stories will not be deleted. - Your username will remain reserved and will not be available to be used on - any other account. + <%= t('.deleteaccounttext') %>

- <%= f.label :password, "Verify Password:", :class => "required" %> + <%= f.label :password, t('.verifypassword'), :class => "required" %> <%= f.password_field :password, :size => 40, :autocomplete => "off" %>

- <%= f.submit "Yes, Delete My Account" %> + <%= f.submit t('.deleteaccountconfirmation') %> <% end %>
From 04777f3e6f198a0a5c1b0e70a1cd16f9ab37fc33 Mon Sep 17 00:00:00 2001 From: Carl Chenet Date: Sat, 9 Jul 2016 14:31:32 +0200 Subject: [PATCH 4/5] i18n of settings controller --- app/controllers/settings_controller.rb | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/app/controllers/settings_controller.rb b/app/controllers/settings_controller.rb index 0657c29..317c607 100644 --- a/app/controllers/settings_controller.rb +++ b/app/controllers/settings_controller.rb @@ -2,7 +2,7 @@ class SettingsController < ApplicationController before_filter :require_logged_in_user def index - @title = "Account Settings" + @title = t('.accountsettings') @edit_user = @user.dup end @@ -11,17 +11,17 @@ class SettingsController < ApplicationController if @user.try(:authenticate, params[:user][:password].to_s) @user.delete! reset_session - flash[:success] = "Your account has been deleted." + flash[:success] = t('.deleteaccountflash') return redirect_to "/" end - flash[:error] = "Your password could not be verified." + flash[:error] = t('.verifypasswordflash') return redirect_to settings_path end def pushover if !Pushover.SUBSCRIPTION_CODE - flash[:error] = "This site is not configured for Pushover" + flash[:error] = t('.pushovernotconfigured') return redirect_to "/settings" end @@ -36,12 +36,12 @@ class SettingsController < ApplicationController def pushover_callback if !session[:pushover_rand].to_s.present? - flash[:error] = "No random token present in session" + flash[:error] = t('.pushovernorandomtokensession') return redirect_to "/settings" end if !params[:rand].to_s.present? - flash[:error] = "No random token present in URL" + flash[:error] = t('.pushovernorandomtokenurl') return redirect_to "/settings" end @@ -54,10 +54,9 @@ class SettingsController < ApplicationController @user.save! if @user.pushover_user_key.present? - flash[:success] = "Your account is now setup for Pushover notifications." + flash[:success] = t('.accountsetuppushover') else - flash[:success] = "Your account is no longer setup for Pushover " << - "notifications." + flash[:success] = t('.accountnolongersetuppushover') end return redirect_to "/settings" @@ -67,7 +66,7 @@ class SettingsController < ApplicationController @edit_user = @user.clone if @edit_user.update_attributes(user_params) - flash.now[:success] = "Successfully updated settings." + flash.now[:success] = t('.updatesettingsflash') @user = @edit_user end From 7af03b4ff41093547e1a7d097d5bd9adba4d1375 Mon Sep 17 00:00:00 2001 From: Carl Chenet Date: Sat, 9 Jul 2016 14:32:34 +0200 Subject: [PATCH 5/5] i18n of invitation form view (used by settings view) --- app/views/users/_invitationform.html.erb | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/app/views/users/_invitationform.html.erb b/app/views/users/_invitationform.html.erb index 80bdd0a..634538b 100644 --- a/app/views/users/_invitationform.html.erb +++ b/app/views/users/_invitationform.html.erb @@ -1,8 +1,5 @@

-Invitations are unlimited, but persons you invite will be associated with your -account in the user tree and you may be responsible for them -if they cause problems. Please use your discretion when inviting persons you -don't personally know. +<%= raw(t('.invitationtext')) %>

<%= form_tag "/invitations", :method => :post do |f| %> @@ -11,18 +8,18 @@ don't personally know. <% end %>
- <%= label_tag :email, "E-mail Address:", :class => "required" %> + <%= label_tag :email, t('.emailaddress'), :class => "required" %> <%= text_field_tag :email, "", :size => 30, :autocomplete => "off" %>
- <%= label_tag :memo, "Memo to User:", :class => "required" %> + <%= label_tag :memo, t('.memouser'), :class => "required" %> <%= text_field_tag :memo, "", :size => 60 %>

- <%= submit_tag "Send Invitation" %> + <%= submit_tag t('.sendinvitation') %>
<% end %>