Merge branch 'lobsters313'

This commit is contained in:
Carl Chenet 2016-11-08 16:09:17 +01:00
commit cee4920216
5 changed files with 189 additions and 74 deletions

View file

@ -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

View file

@ -1,9 +1,9 @@
<div class="box wide">
<div class="legend right">
<a href="/u/<%= @user.username %>">View Profile</a>
<a href="/u/<%= @user.username %>"><%= t('.viewprofile') %></a>
</div>
<div class="legend">
Account Settings
<%= t('.accountsettings') %>
</div>
<%= form_for @edit_user, :url => settings_path, :method => :post,
@ -11,7 +11,7 @@
<%= error_messages_for f.object %>
<div class="boxline">
<%= f.label :username, "Username:", :class => "required" %>
<%= f.label :username, t('.username'), :class => "required" %>
<%= f.text_field :username, :size => 15 %>
<span class="hint">
<tt><%= User.username_regex %></tt>
@ -19,27 +19,27 @@
</div>
<div class="boxline">
<%= f.label :password, "New Password:", :class => "required" %>
<%= f.label :password, t('.password'), :class => "required" %>
<%= f.password_field :password, :size => 40, :autocomplete => "off" %>
</div>
<div class="boxline">
<%= f.label :password_confirmation, "Confirm Password:",
<%= f.label :password_confirmation, t('.confirmpassword'),
:class => "required" %>
<%= f.password_field :password_confirmation, :size => 40,
:autocomplete => "off" %>
</div>
<div class="boxline">
<%= f.label :email, "E-mail Address:", :class => "required" %>
<%= f.label :email, t('.emailaddress'), :class => "required" %>
<%= f.text_field :email, :size => 40 %>
<span class="hint">
<a href="http://www.gravatar.com/" target="_blank">Gravatar</a>'ized
<%= raw(t('.gravatarized')) %>
</span>
</div>
<div class="boxline">
<%= f.label :about, "About:", :class => "required" %>
<%= f.label :about, t('.about'), :class => "required" %>
<%= f.text_area :about, :size => "100x5", :style => "width: 600px;" %>
</div>
@ -47,7 +47,7 @@
<div class="boxline markdown_help_toggler" style="margin-left: 9em;
width: 600px;">
<div class="markdown_help_label">
Markdown formatting available
<%= t('.markdownformattingavailable') %>
</div>
<div style="clear: both;"></div>
@ -57,96 +57,96 @@
</div>
<p>
<%= f.submit "Save Account Settings" %>
<%= f.submit t('.saveaccountsettings') %>
</p>
<br>
<div class="legend">
Notification Settings
<%= t('.notificationsettings') %>
</div>
<div class="boxline">
<%= f.label :pushover_user_key,
raw("<a href=\"https://pushover.net/\">Pushover</a>:"),
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) %>
<span class="hint">
For optional comment and message notifications below
<%= t('.foroptionalcomment') %>
</span>
</div>
<br>
<div class="legend">
Comment Reply Notification Settings
<%= t('.commentreplynotificationsettings') %>
</div>
<div class="boxline">
<%= f.label :email_replies, "Receive E-mail:", :class => "required" %>
<%= f.label :email_replies, t('.receiveemail'), :class => "required" %>
<%= f.check_box :email_replies %>
</div>
<div class="boxline">
<%= f.label :pushover_replies, "Receive Pushover Alert:",
<%= f.label :pushover_replies, t('.receivepushover'),
:class => "required" %>
<%= f.check_box :pushover_replies %>
<span class="hint">
Requires Pushover subscription above
<%= t('.requirepushover') %>
</span>
</div>
<br>
<div class="legend">
Comment Mention Notification Settings
<%= t('.commentmentionnotificationsettings') %>
</div>
<div class="boxline">
<%= f.label :email_mentions, "Receive E-mail:", :class => "required" %>
<%= f.label :email_mentions, t('.receiveemail'), :class => "required" %>
<%= f.check_box :email_mentions %>
</div>
<div class="boxline">
<%= f.label :pushover_mentions, "Receive Pushover Alert:",
<%= f.label :pushover_mentions, t('.receivepushover'),
:class => "required" %>
<%= f.check_box :pushover_mentions %>
<span class="hint">
Requires Pushover subscription above
<%= t('.requirepushover') %>
</span>
</div>
<br>
<div class="legend">
Private Message Notification Settings
<%= t('.privatemessagenotificationsettings') %>
</div>
<div class="boxline">
<%= f.label :email_messages, "Receive E-mail:", :class => "required" %>
<%= f.label :email_messages, t('.receiveemail'), :class => "required" %>
<%= f.check_box :email_messages %>
</div>
<div class="boxline">
<%= f.label :pushover_messages, "Receive Pushover Alert:",
<%= f.label :pushover_messages, t('.receivepushover'),
:class => "required" %>
<%= f.check_box :pushover_messages %>
<span class="hint">
Requires Pushover subscription above
<%= t('.requirepushover') %>
</span>
</div>
<br>
<div class="legend">
Submitted Story Comment Settings
<%= t('.submittedstorycommentsettings') %>
</div>
<div class="boxline">
<%= f.label :show_submitted_story_threads,
raw("Show in <a href=\"/threads\">Your Threads</a>:"),
raw(t('.showyourthreads')),
:class => "required" %>
<%= f.check_box :show_submitted_story_threads %>
</div>
@ -154,28 +154,22 @@
<br>
<div class="legend">
Mailing List Settings
<%= t('.mailinglistsettings') %>
</div>
<p>
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 <a href="/filters">tag filters</a>.
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')) %>
</p>
<div class="boxline">
<%= 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 ] ] %>
</div>
<div class="boxline">
<label class="required">List Address:</label>
<label class="required"><%= t('.listaddress') %></label>
<span>
<tt><%= Rails.application.shortname %>-<%=
@edit_user.mailing_list_token %>@<%= Rails.application.domain %></tt>
@ -185,23 +179,23 @@
<br>
<div class="legend">
Miscellaneous Settings
<%= t('.miscsettings') %>
</div>
<div class="boxline">
<%= f.label :show_story_previews, "Show Story Previews:",
<%= f.label :show_story_previews, t('.storypreview'),
:class => "required" %>
<%= f.check_box :show_story_previews %>
</div>
<div class="boxline">
<%= f.label :show_avatars, "Show User Avatars:", :class => "required" %>
<%= f.label :show_avatars, t('.useravatars'), :class => "required" %>
<%= f.check_box :show_avatars %>
</div>
<br>
<%= f.submit "Save All Settings" %>
<%= f.submit t('.saveallsettings') %>
<% end %>
<br>
@ -209,13 +203,13 @@
<a name="invite"></a>
<div class="legend">
Invite a New User
<%= t('.inviteuser') %>
</div>
<% if @user.can_invite? %>
<%= render :partial => "users/invitationform" %>
<% else %>
You cannot send invitations.
<%= t('.cannotsendinvitations') %>
<% end %>
<br>
@ -224,25 +218,19 @@
<%= form_for @edit_user, :url => delete_account_path, :method => :post,
:html => { :id => "delete_user" } do |f| %>
<div class="legend">
Delete Account
<%= t('.deleteaccount') %>
</div>
<p>
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') %>
</p>
<div class="boxline">
<%= f.label :password, "Verify Password:", :class => "required" %>
<%= f.label :password, t('.verifypassword'), :class => "required" %>
<%= f.password_field :password, :size => 40, :autocomplete => "off" %>
</div>
<br>
<%= f.submit "Yes, Delete My Account" %>
<%= f.submit t('.deleteaccountconfirmation') %>
<% end %>
</div>

View file

@ -1,8 +1,5 @@
<p>
Invitations are unlimited, but persons you invite will be associated with your
account in the <a href="/u">user tree</a> 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')) %>
</p>
<%= form_tag "/invitations", :method => :post do |f| %>
@ -11,18 +8,18 @@ don't personally know.
<% end %>
<div class="boxline">
<%= label_tag :email, "E-mail Address:", :class => "required" %>
<%= label_tag :email, t('.emailaddress'), :class => "required" %>
<%= text_field_tag :email, "", :size => 30, :autocomplete => "off" %>
</div>
<div class="boxline">
<%= label_tag :memo, "Memo to User:", :class => "required" %>
<%= label_tag :memo, t('.memouser'), :class => "required" %>
<%= text_field_tag :memo, "", :size => 60 %>
</div>
<div class="boxline">
<p></p>
<%= submit_tag "Send Invitation" %>
<%= submit_tag t('.sendinvitation') %>
</div>
<% end %>

View file

@ -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: "<a href=\"http://www.gravatar.com/\" target=\"_blank\">Gravatar</a>'ized"
about: "About:"
markdownformattingavailable: "Markdown formatting available"
saveaccountsettings: "Save Account Settings"
notificationsettings: "Notification Settings"
pushover: "<a href=\"https://pushover.net/\">Pushover</a>:"
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 <a href=\"/threads\">Your Threads</a>:"
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 <a href=\"/filters\">tag filters</a>. 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 <a href=\"/u\">user tree</a> 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"

View file

@ -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: "<a href=\"http://www.gravatar.com/\" target=\"_blank\">Gravatar</a>isé"
about: "À propos :"
markdownformattingavailable: "Formatage Markdown possible"
saveaccountsettings: "Sauver les paramètres du compte"
notificationsettings: "Paramètres de notification"
pushover: "<a href=\"https://pushover.net/\">Pushover</a> :"
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 <a href=\"/threads\">vos sujets</a>:"
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 <a href=\"/filters\">filtres de marques</a>. 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 <a href=\"/u\">l'arbre des utilisateurs</a> 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"