Commit a933cda1 authored by Gabriel Detraz's avatar Gabriel Detraz Committed by chirac

Traductions, style et fixe de bugs sur la page d'enregistrement mac/room

parent 152b0a64
...@@ -378,12 +378,12 @@ class AdherentCreationForm(AdherentForm): ...@@ -378,12 +378,12 @@ class AdherentCreationForm(AdherentForm):
+ "using the forgotten password button on the "\ + "using the forgotten password button on the "\
+ "login page or contacting support.") + "login page or contacting support.")
former_user_check = forms.BooleanField(required=True, help_text=former_user_check_info) former_user_check = forms.BooleanField(required=True, help_text=former_user_check_info)
former_user_check.label = _("I have not had an account before") former_user_check.label = _("I certifie that I have not had an account before")
# Checkbox for GTU # Checkbox for GTU
gtu_check = forms.BooleanField(required=True) gtu_check = forms.BooleanField(required=True)
gtu_check.label = mark_safe("{}<a href='/media/{}' download='CGU'>{}</a>{}".format( gtu_check.label = mark_safe("{} <a href='/media/{}' download='CGU'>{}</a>{}".format(
_("I commit to accept the "), GeneralOption.get_cached_value('GTU'), _("General Terms of Use"), _("."))) _("I commit to accept the"), GeneralOption.get_cached_value('GTU'), _("General Terms of Use"), _(".")))
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(AdherentCreationForm, self).__init__(*args, **kwargs) super(AdherentCreationForm, self).__init__(*args, **kwargs)
...@@ -417,7 +417,7 @@ class AdherentEditForm(AdherentForm): ...@@ -417,7 +417,7 @@ class AdherentEditForm(AdherentForm):
'shell', 'shell',
'gpg_fingerprint' 'gpg_fingerprint'
] ]
class ClubForm(FormRevMixin, FieldPermissionFormMixin, ModelForm): class ClubForm(FormRevMixin, FieldPermissionFormMixin, ModelForm):
"""Formulaire de base d'edition d'un user. Formulaire de base, utilisé """Formulaire de base d'edition d'un user. Formulaire de base, utilisé
pour l'edition de self par self ou un cableur. On formate les champs pour l'edition de self par self ou un cableur. On formate les champs
...@@ -719,7 +719,7 @@ class InitialRegisterForm(forms.Form): ...@@ -719,7 +719,7 @@ class InitialRegisterForm(forms.Form):
port = Port.objects.filter(switch__interface__ipv4__ipv4=switch_ip, port=switch_port).first() port = Port.objects.filter(switch__interface__ipv4__ipv4=switch_ip, port=switch_port).first()
# If a port exists, checking there is a room AND radius # If a port exists, checking there is a room AND radius
if port: if port:
if port.get_port_profile.radius_type != 'NO' and port.get_port_profile.radius_mode == 'STRICT' and hasattr(port, 'room'): if port.get_port_profil.radius_type != 'NO' and port.get_port_profil.radius_mode == 'STRICT' and hasattr(port, 'room'):
# Requesting user is not in this room ? # Requesting user is not in this room ?
if self.user.room != port.room: if self.user.room != port.room:
self.new_room = port.room self.new_room = port.room
...@@ -730,11 +730,11 @@ class InitialRegisterForm(forms.Form): ...@@ -730,11 +730,11 @@ class InitialRegisterForm(forms.Form):
self.nas_type = Nas.objects.filter(nas_type__interface__ipv4__ipv4=switch_ip).first() self.nas_type = Nas.objects.filter(nas_type__interface__ipv4__ipv4=switch_ip).first()
super(InitialRegisterForm, self).__init__(*args, **kwargs) super(InitialRegisterForm, self).__init__(*args, **kwargs)
if hasattr(self, 'new_room'): if hasattr(self, 'new_room'):
self.fields['register_room'].label = _("New connection from room %s. Is it yours? If that is the case, type OK." % self.new_room) self.fields['register_room'].label = _("This room is my room")
else: else:
self.fields.pop('register_room') self.fields.pop('register_room')
if hasattr(self, 'mac_address'): if hasattr(self, 'mac_address'):
self.fields['register_machine'].label = _("New connection from new device. Register it? Say Yes to get Internet access from it (MAC Address : %s)." % self.mac_address) self.fields['register_machine'].label = _("This new connected device is mine")
else: else:
self.fields.pop('register_machine') self.fields.pop('register_machine')
......
...@@ -21,7 +21,7 @@ msgid "" ...@@ -21,7 +21,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 2.5\n" "Project-Id-Version: 2.5\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-28 23:07+0200\n" "POT-Creation-Date: 2018-10-03 02:50+0200\n"
"PO-Revision-Date: 2018-06-27 23:35+0200\n" "PO-Revision-Date: 2018-06-27 23:35+0200\n"
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n" "Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n"
"Language-Team: \n" "Language-Team: \n"
...@@ -35,196 +35,215 @@ msgstr "" ...@@ -35,196 +35,215 @@ msgstr ""
msgid "You don't have the right to view this application." msgid "You don't have the right to view this application."
msgstr "Vous n'avez pas le droit de voir cette application." msgstr "Vous n'avez pas le droit de voir cette application."
#: forms.py:72 #: forms.py:75
msgid "Current password" msgid "Current password"
msgstr "Mot de passe actuel" msgstr "Mot de passe actuel"
#: forms.py:77 forms.py:449 #: forms.py:80 forms.py:492
msgid "New password" msgid "New password"
msgstr "Nouveau mot de passe" msgstr "Nouveau mot de passe"
#: forms.py:83 #: forms.py:86
msgid "New password confirmation" msgid "New password confirmation"
msgstr "Confirmation du nouveau mot de passe" msgstr "Confirmation du nouveau mot de passe"
#: forms.py:100 #: forms.py:103
msgid "The new passwords don't match." msgid "The new passwords don't match."
msgstr "Les nouveaux mots de passe ne correspondent pas." msgstr "Les nouveaux mots de passe ne correspondent pas."
#: forms.py:109 #: forms.py:112
msgid "The current password is incorrect." msgid "The current password is incorrect."
msgstr "Le mot de passe actuel est incorrect." msgstr "Le mot de passe actuel est incorrect."
#: forms.py:127 forms.py:180 models.py:1550 #: forms.py:130 forms.py:183 models.py:1580
msgid "Password" msgid "Password"
msgstr "Mot de passe" msgstr "Mot de passe"
#: forms.py:133 forms.py:186 #: forms.py:136 forms.py:189
msgid "Password confirmation" msgid "Password confirmation"
msgstr "Confirmation du mot de passe" msgstr "Confirmation du mot de passe"
#: forms.py:138 forms.py:229 #: forms.py:141 forms.py:232
msgid "Is admin" msgid "Is admin"
msgstr "Est admin" msgstr "Est admin"
#: forms.py:148 #: forms.py:151
msgid "You can't use an internal address as your external address." msgid "You can't use an internal address as your external address."
msgstr "" msgstr ""
"Vous ne pouvez pas utiliser une adresse interne pour votre adresse externe." "Vous ne pouvez pas utiliser une adresse interne pour votre adresse externe."
#: forms.py:161 forms.py:210 #: forms.py:164 forms.py:213
msgid "The passwords don't match." msgid "The passwords don't match."
msgstr "Les mots de passe ne correspondent pas." msgstr "Les mots de passe ne correspondent pas."
#: forms.py:238 #: forms.py:241
#, python-format #, python-format
msgid "User is admin: %s" msgid "User is admin: %s"
msgstr "L'utilisateur est admin : %s" msgstr "L'utilisateur est admin : %s"
#: forms.py:286 templates/users/aff_clubs.html:38 #: forms.py:289 templates/users/aff_clubs.html:38
#: templates/users/aff_listright.html:63 templates/users/aff_listright.html:168 #: templates/users/aff_listright.html:63 templates/users/aff_listright.html:168
#: templates/users/aff_users.html:39 templates/users/profil.html:169 #: templates/users/aff_users.html:39 templates/users/profil.html:169
#: templates/users/profil.html:283 templates/users/profil.html:302 #: templates/users/profil.html:286 templates/users/profil.html:305
msgid "Username" msgid "Username"
msgstr "Pseudo" msgstr "Pseudo"
#: forms.py:301 #: forms.py:304
msgid "Impossible to archive users whose end access date is in the future." msgid "Impossible to archive users whose end access date is in the future."
msgstr "" msgstr ""
"Impossible d'archiver des utilisateurs dont la date de fin de connexion est " "Impossible d'archiver des utilisateurs dont la date de fin de connexion est "
"dans le futur." "dans le futur."
#: forms.py:313 templates/users/profil.html:282 templates/users/profil.html:301 #: forms.py:316 templates/users/profil.html:285 templates/users/profil.html:304
msgid "First name" msgid "First name"
msgstr "Prénom" msgstr "Prénom"
#: forms.py:314 templates/users/aff_users.html:37 #: forms.py:317 templates/users/aff_users.html:37
#: templates/users/profil.html:165 templates/users/profil.html:281 #: templates/users/profil.html:165 templates/users/profil.html:284
#: templates/users/profil.html:300 #: templates/users/profil.html:303
msgid "Surname" msgid "Surname"
msgstr "Nom" msgstr "Nom"
#: forms.py:315 models.py:1551 templates/users/aff_emailaddress.html:36 #: forms.py:318 models.py:1581 templates/users/aff_emailaddress.html:36
#: templates/users/profil.html:171 #: templates/users/profil.html:171
msgid "Email address" msgid "Email address"
msgstr "Adresse mail" msgstr "Adresse mail"
#: forms.py:316 forms.py:387 forms.py:518 templates/users/aff_schools.html:37 #: forms.py:319 forms.py:430 forms.py:561 templates/users/aff_schools.html:37
#: templates/users/profil.html:181 #: templates/users/profil.html:181
msgid "School" msgid "School"
msgstr "Établissement" msgstr "Établissement"
#: forms.py:317 forms.py:388 models.py:1204 #: forms.py:320 forms.py:431 models.py:1234
#: templates/users/aff_serviceusers.html:34 templates/users/profil.html:183 #: templates/users/aff_serviceusers.html:34 templates/users/profil.html:183
msgid "Comment" msgid "Comment"
msgstr "Commentaire" msgstr "Commentaire"
#: forms.py:318 forms.py:389 templates/users/aff_clubs.html:40 #: forms.py:322 forms.py:433 templates/users/aff_clubs.html:40
#: templates/users/aff_users.html:41 templates/users/profil.html:175 #: templates/users/aff_users.html:41 templates/users/profil.html:175
msgid "Room" msgid "Room"
msgstr "Chambre" msgstr "Chambre"
#: forms.py:319 forms.py:390 #: forms.py:323 forms.py:434
msgid "No room" msgid "No room"
msgstr "Pas de chambre" msgstr "Pas de chambre"
#: forms.py:320 forms.py:391 #: forms.py:324 forms.py:435
msgid "Select a school" msgid "Select a school"
msgstr "Sélectionnez un établissement" msgstr "Sélectionnez un établissement"
#: forms.py:321 #: forms.py:331 forms.py:701
msgid "Leave empty if you don't have any GPG key."
msgstr "Laissez vide si vous n'avez pas de clé GPG."
#: forms.py:323
msgid "Default shell"
msgstr "Interface système par défaut"
#: forms.py:330 forms.py:658
msgid "You can't use a {} address." msgid "You can't use a {} address."
msgstr "Vous ne pouvez pas utiliser une adresse {}." msgstr "Vous ne pouvez pas utiliser une adresse {}."
#: forms.py:355 forms.py:413 #: forms.py:354 forms.py:456
msgid "A valid telephone number is required." msgid "A valid telephone number is required."
msgstr "Un numéro de téléphone valide est requis." msgstr "Un numéro de téléphone valide est requis."
#: forms.py:366 #: forms.py:359
msgid "Force the move?" msgid "Force the move?"
msgstr "Forcer le déménagement ?" msgstr "Forcer le déménagement ?"
#: forms.py:386 templates/users/aff_clubs.html:36 #: forms.py:377
msgid ""
"If you already have an account, please use it. If your lost access to it, "
"please consider using the forgotten password button on the login page or "
"contacting support."
msgstr ""
"Si vous avez déjà un compte ou avez déjà eu accès aux services, vous devez "
"l'utiliser. Si vous avez oublié votre mot de passe, un formulaire mot de "
"passe oublié est à votre disposition. Si vous avez oublié votre login, "
"contactez le support."
#: forms.py:382
msgid "I certifie that I have not had an account before"
msgstr "Je certifie sur l'honneur ne pas déjà avoir de compte"
#: forms.py:387
msgid "I commit to accept the"
msgstr "J'accepte les conditions générales"
#: forms.py:387
msgid "General Terms of Use"
msgstr "Conditions Générales d'Utilisation"
#: forms.py:387
msgid "."
msgstr "."
#: forms.py:397
msgid "Leave empty if you don't have any GPG key."
msgstr "Laissez vide si vous n'avez pas de clé GPG."
#: forms.py:399
msgid "Default shell"
msgstr "Interface système par défaut"
#: forms.py:429 templates/users/aff_clubs.html:36
#: templates/users/aff_serviceusers.html:32 #: templates/users/aff_serviceusers.html:32
msgid "Name" msgid "Name"
msgstr "Nom" msgstr "Nom"
#: forms.py:392 #: forms.py:436
msgid "Use a mailing list" msgid "Use a mailing list"
msgstr "Utiliser une liste de diffusion" msgstr "Utiliser une liste de diffusion"
#: forms.py:506 templates/users/aff_listright.html:38 #: forms.py:549 templates/users/aff_listright.html:38
msgid "Superuser" msgid "Superuser"
msgstr "Superutilisateur" msgstr "Superutilisateur"
#: forms.py:530 #: forms.py:573
msgid "Shell name" msgid "Shell name"
msgstr "Nom de l'interface système" msgstr "Nom de l'interface système"
#: forms.py:549 #: forms.py:592
msgid "Name of the group of rights" msgid "Name of the group of rights"
msgstr "Nom du groupe de droits" msgstr "Nom du groupe de droits"
#: forms.py:560 #: forms.py:603
msgid "GID. Warning: this field must not be edited after creation." msgid "GID. Warning: this field must not be edited after creation."
msgstr "GID. Attention : ce champ ne doit pas être modifié après création." msgstr "GID. Attention : ce champ ne doit pas être modifié après création."
#: forms.py:568 #: forms.py:611
msgid "Current groups of rights" msgid "Current groups of rights"
msgstr "Groupes de droits actuels" msgstr "Groupes de droits actuels"
#: forms.py:585 #: forms.py:628
msgid "Current schools" msgid "Current schools"
msgstr "Établissements actuels" msgstr "Établissements actuels"
#: forms.py:603 forms.py:617 templates/users/aff_bans.html:41 #: forms.py:646 forms.py:660 templates/users/aff_bans.html:41
#: templates/users/aff_whitelists.html:41 #: templates/users/aff_whitelists.html:41
msgid "End date" msgid "End date"
msgstr "Date de fin" msgstr "Date de fin"
#: forms.py:631 models.py:1748 #: forms.py:674 models.py:1778
msgid "Local part of the email address" msgid "Local part of the email address"
msgstr "Partie locale de l'adresse mail" msgstr "Partie locale de l'adresse mail"
#: forms.py:632 #: forms.py:675
msgid "Can't contain @" msgid "Can't contain @"
msgstr "Ne peut pas contenir @" msgstr "Ne peut pas contenir @"
#: forms.py:647 #: forms.py:690
msgid "Main email address" msgid "Main email address"
msgstr "Adresse mail principale" msgstr "Adresse mail principale"
#: forms.py:649 #: forms.py:692
msgid "Redirect local emails" msgid "Redirect local emails"
msgstr "Rediriger les mails locaux" msgstr "Rediriger les mails locaux"
#: forms.py:651 #: forms.py:694
msgid "Use local emails" msgid "Use local emails"
msgstr "Utiliser les mails locaux" msgstr "Utiliser les mails locaux"
#: forms.py:691 #: forms.py:734
#, python-format msgid "This room is my room"
msgid "New connection from room %s. Is it yours? If that is the case, type OK." msgstr "Il s'agit bien de ma chambre"
msgstr ""
"Nouvelle connexion depuis la chambre %s. Est-ce la vôtre ? Si c'est le cas, "
"tapez OK."
#: forms.py:695 #: forms.py:738
#, python-format msgid "This new connected device is mine"
msgid "" msgstr "Ce nouvel appareil connecté m'appartient"
"New connection from new device. Register it? Say Yes to get Internet access "
"from it (MAC Address : %s)."
msgstr ""
"Nouvelle connexion depuis un nouvel appareil. L'enregistrer ? Dites Oui pour "
"avoir accès à Internet depuis cet appareil (adresse MAC : %s)."
#: models.py:105 #: models.py:105
#, python-format #, python-format
...@@ -239,104 +258,104 @@ msgstr "Les utilisateurs doivent avoir un pseudo." ...@@ -239,104 +258,104 @@ msgstr "Les utilisateurs doivent avoir un pseudo."
msgid "Username should only contain [a-z0-9-]." msgid "Username should only contain [a-z0-9-]."
msgstr "Le pseudo devrait seulement contenir [a-z0-9-]" msgstr "Le pseudo devrait seulement contenir [a-z0-9-]"
#: models.py:199 models.py:1195 #: models.py:201 models.py:1225
msgid "Must only contain letters, numerals or dashes." msgid "Must only contain letters, numerals or dashes."
msgstr "Doit seulement contenir des lettres, chiffres ou tirets." msgstr "Doit seulement contenir des lettres, chiffres ou tirets."
#: models.py:205 #: models.py:207
msgid "External email address allowing us to contact you." msgid "External email address allowing us to contact you."
msgstr "Adresse mail externe nous permettant de vous contacter." msgstr "Adresse mail externe nous permettant de vous contacter."
#: models.py:209 #: models.py:211
msgid "" msgid ""
"Enable redirection of the local email messages to the main email address." "Enable redirection of the local email messages to the main email address."
msgstr "" msgstr ""
"Activer la redirection des mails locaux vers l'adresse mail principale." "Activer la redirection des mails locaux vers l'adresse mail principale."
#: models.py:214 #: models.py:216
msgid "Enable the local email account." msgid "Enable the local email account."
msgstr "Activer le compte mail local" msgstr "Activer le compte mail local"
#: models.py:229 #: models.py:231
msgid "Comment, school year" msgid "Comment, school year"
msgstr "Commentaire, promotion" msgstr "Commentaire, promotion"
#: models.py:255 #: models.py:257
msgid "Can change the password of a user" msgid "Can change the password of a user"
msgstr "Peut changer le mot de passe d'un utilisateur" msgstr "Peut changer le mot de passe d'un utilisateur"
#: models.py:256 #: models.py:258
msgid "Can edit the state of a user" msgid "Can edit the state of a user"
msgstr "Peut changer l'état d'un utilisateur" msgstr "Peut changer l'état d'un utilisateur"
#: models.py:257 #: models.py:259
msgid "Can force the move" msgid "Can force the move"
msgstr "Peut forcer le déménagement" msgstr "Peut forcer le déménagement"
#: models.py:258 #: models.py:260
msgid "Can edit the shell of a user" msgid "Can edit the shell of a user"
msgstr "Peut modifier l'interface système d'un utilisateur" msgstr "Peut modifier l'interface système d'un utilisateur"
#: models.py:260 #: models.py:262
msgid "Can edit the groups of rights of a user (critical permission)" msgid "Can edit the groups of rights of a user (critical permission)"
msgstr "" msgstr ""
"Peut modifier les groupes de droits d'un utilisateur (permission critique)" "Peut modifier les groupes de droits d'un utilisateur (permission critique)"
#: models.py:263 #: models.py:265
msgid "Can edit all users, including those with rights." msgid "Can edit all users, including those with rights."
msgstr "" msgstr ""
"Peut modifier tous les utilisateurs, y compris ceux possédant des droits." "Peut modifier tous les utilisateurs, y compris ceux possédant des droits."
#: models.py:265 #: models.py:267
msgid "Can view a user object" msgid "Can view a user object"
msgstr "Peut voir un objet utilisateur" msgstr "Peut voir un objet utilisateur"
#: models.py:267 #: models.py:269
msgid "user (member or club)" msgid "user (member or club)"
msgstr "utilisateur (adhérent ou club)" msgstr "utilisateur (adhérent ou club)"
#: models.py:268 #: models.py:270
msgid "users (members or clubs)" msgid "users (members or clubs)"
msgstr "utilisateurs (adhérents ou clubs)" msgstr "utilisateurs (adhérents ou clubs)"
#: models.py:286 models.py:310 #: models.py:288 models.py:312
msgid "Unknown type." msgid "Unknown type."
msgstr "Type inconnu." msgstr "Type inconnu."
#: models.py:306 templates/users/aff_listright.html:75 #: models.py:308 templates/users/aff_listright.html:75
#: templates/users/aff_listright.html:180 #: templates/users/aff_listright.html:180
msgid "Member" msgid "Member"
msgstr "Adhérent" msgstr "Adhérent"
#: models.py:308 #: models.py:310
msgid "Club" msgid "Club"
msgstr "Club" msgstr "Club"
#: models.py:521 #: models.py:534
msgid "IPv4 assigning" msgid "IPv4 assigning"
msgstr "Attribution de l'IPv4" msgstr "Attribution de l'IPv4"
#: models.py:530 #: models.py:543
msgid "IPv4 unassigning" msgid "IPv4 unassigning"
msgstr "Désattribution de l'IPv4" msgstr "Désattribution de l'IPv4"
#: models.py:677 #: models.py:693
msgid "Maximum number of registered machines reached." msgid "Maximum number of registered machines reached."
msgstr "Nombre maximum de machines enregistrées atteint." msgstr "Nombre maximum de machines enregistrées atteint."
#: models.py:679 #: models.py:695
msgid "Re2o doesn't know wich machine type to assign." msgid "Re2o doesn't know wich machine type to assign."
msgstr "Re2o ne sait pas quel type de machine attribuer." msgstr "Re2o ne sait pas quel type de machine attribuer."
#: models.py:775 models.py:812 #: models.py:791 models.py:828
msgid "You don't have the right to edit this club." msgid "You don't have the right to edit this club."
msgstr "Vous n'avez pas le droit de modifier ce club." msgstr "Vous n'avez pas le droit de modifier ce club."
#: models.py:783 #: models.py:799
msgid "User with critical rights, can't be edited." msgid "User with critical rights, can't be edited."
msgstr "Utilisateur avec des droits critiques, ne peut être modifié." msgstr "Utilisateur avec des droits critiques, ne peut être modifié."
#: models.py:786 #: models.py:802
msgid "" msgid ""
"Impossible to edit the organisation's user without the 'change_all_users' " "Impossible to edit the organisation's user without the 'change_all_users' "
"right." "right."
...@@ -344,52 +363,52 @@ msgstr "" ...@@ -344,52 +363,52 @@ msgstr ""
"Impossible de modifier l'utilisateur de l'association sans le droit " "Impossible de modifier l'utilisateur de l'association sans le droit "
"'change_all_users'." "'change_all_users'."
#: models.py:794 models.py:823 #: models.py:810 models.py:839
msgid "You don't have the right to edit another user." msgid "You don't have the right to edit another user."
msgstr "Vous n'avez pas le droit de modifier un autre utilisateur." msgstr "Vous n'avez pas le droit de modifier un autre utilisateur."
#: models.py:842 #: models.py:858 models.py:871
msgid "Permission required to change the state." msgid "Permission required to change the state."
msgstr "Permission requise pour changer l'état." msgstr "Permission requise pour changer l'état."
#: models.py:854 #: models.py:883
msgid "Permission required to change the shell." msgid "Permission required to change the shell."
msgstr "Permission requise pour changer l'interface système." msgstr "Permission requise pour changer l'interface système."
#: models.py:868 models.py:881 #: models.py:897 models.py:910
msgid "Local email accounts must be enabled." msgid "Local email accounts must be enabled."
msgstr "Les comptes mail locaux doivent être activés." msgstr "Les comptes mail locaux doivent être activés."
#: models.py:894 #: models.py:923
msgid "Permission required to force the move." msgid "Permission required to force the move."
msgstr "Permission requise pour forcer le déménagement." msgstr "Permission requise pour forcer le déménagement."
#: models.py:907 #: models.py:936
msgid "Permission required to edit the user's groups of rights." msgid "Permission required to edit the user's groups of rights."
msgstr "" msgstr ""
"Permission requise pour modifier les groupes de droits de l'utilisateur." "Permission requise pour modifier les groupes de droits de l'utilisateur."
#: models.py:919 #: models.py:948
msgid "'superuser' right required to edit the superuser flag." msgid "'superuser' right required to edit the superuser flag."
msgstr "Droit 'superuser' requis pour modifier le signalement superuser." msgstr "Droit 'superuser' requis pour modifier le signalement superuser."
#: models.py:937 #: models.py:966
msgid "You don't have the right to view this club." msgid "You don't have the right to view this club."
msgstr "Vous n'avez pas le droit de voir ce club." msgstr "Vous n'avez pas le droit de voir ce club."
#: models.py:943 #: models.py:972
msgid "You don't have the right to view another user." msgid "You don't have the right to view another user."
msgstr "Vous n'avez pas le droit de voir un autre utilisateur." msgstr "Vous n'avez pas le droit de voir un autre utilisateur."
#: models.py:956 models.py:1127 #: models.py:985 models.py:1157
msgid "You don't have the right to view the list of users." msgid "You don't have the right to view the list of users."
msgstr "Vous n'avez pas le droit de voir la liste des utilisateurs." msgstr "Vous n'avez pas le droit de voir la liste des utilisateurs."
#: models.py:969 #: models.py:998
msgid "You don't have the right to delete this user." msgid "You don't have the right to delete this user."
msgstr "Vous n'avez pas le droit de supprimer cet utilisateur." msgstr "Vous n'avez pas le droit de supprimer cet utilisateur."
#: models.py:993 #: models.py:1023
msgid "" msgid ""
"There is neither a local email address nor an external email address for " "There is neither a local email address nor an external email address for "
"this user." "this user."
...@@ -397,7 +416,7 @@ msgstr "" ...@@ -397,7 +416,7 @@ msgstr ""
"Il n'y a pas d'adresse mail locale ni d'adresse mail externe pour cet " "Il n'y a pas d'adresse mail locale ni d'adresse mail externe pour cet "
"utilisateur." "utilisateur."
#: models.py:1000 #: models.py:1030
msgid "" msgid ""
"You can't redirect your local emails if no external email address has been " "You can't redirect your local emails if no external email address has been "
"set." "set."
...@@ -405,178 +424,178 @@ msgstr "" ...@@ -405,178 +424,178 @@ msgstr ""
"Vous ne pouvez pas rediriger vos mails locaux si aucune adresse mail externe " "Vous ne pouvez pas rediriger vos mails locaux si aucune adresse mail externe "
"n'a été définie." "n'a été définie."
#: models.py:1025 #: models.py:1055
msgid "A GPG fingerprint must contain 40 hexadecimal characters." msgid "A GPG fingerprint must contain 40 hexadecimal characters."
msgstr "Une empreinte GPG doit contenir 40 caractères hexadécimaux." msgstr "Une empreinte GPG doit contenir 40 caractères hexadécimaux."
#: models.py:1031