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 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 @@
- View Profile + <%= t('.viewprofile') %>
- 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 %>
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 %> 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" 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"