diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po
index e66e0dbf1..f1cffee13 100644
--- a/locale/fr/LC_MESSAGES/django.po
+++ b/locale/fr/LC_MESSAGES/django.po
@@ -623,233 +623,242 @@ msgstr "ownCloud"
#: plinth/modules/owncloud/owncloud.py:97
msgid "ownCloud enabled"
-msgstr ""
+msgstr "Activer ownCloud"
#: plinth/modules/owncloud/owncloud.py:100
msgid "ownCloud disabled"
-msgstr ""
+msgstr "ownCloud désactivé"
#: plinth/modules/pagekite/__init__.py:33 plinth/modules/pagekite/views.py:46
msgid "Public Visibility (PageKite)"
-msgstr ""
+msgstr "Visibilité publique (PageKite)"
#: plinth/modules/pagekite/forms.py:46
msgid "Enable PageKite"
-msgstr ""
+msgstr "Activer PageKite"
#: plinth/modules/pagekite/forms.py:49
msgid "Server domain"
-msgstr ""
+msgstr "Domaine du serveur"
#: plinth/modules/pagekite/forms.py:50
msgid ""
"Select your pagekite server. Set \"pagekite.net\" to use the default "
"pagekite.net server"
msgstr ""
+"Sélectionner votre serveur pagekite. Etablir \"pagekite.net\" pour une utilisation du serveur "
+"pagekite.net par défaut"
#: plinth/modules/pagekite/forms.py:54
msgid "Server port"
-msgstr ""
+msgstr "Port de serveur"
#: plinth/modules/pagekite/forms.py:55
msgid "Port of your pagekite server (default: 80)"
-msgstr ""
+msgstr "Port de votre serveur pagekite (default: 80)"
#: plinth/modules/pagekite/forms.py:57
msgid "Kite name"
-msgstr ""
+msgstr "Nom Kite"
#: plinth/modules/pagekite/forms.py:58
msgid "Example: mybox.pagekite.me"
-msgstr ""
+msgstr "Example: monpc.pagekite.me"
#: plinth/modules/pagekite/forms.py:61
msgid "Invalid kite name"
-msgstr ""
+msgstr "Nom Kite invalide"
#: plinth/modules/pagekite/forms.py:64
msgid "Kite secret"
-msgstr ""
+msgstr "Kite secret"
#: plinth/modules/pagekite/forms.py:65
msgid ""
"A secret associated with the kite or the default secret for your account if "
"no secret is set on the kite"
-msgstr ""
+msgstr "Un secret associé à Kite ou un secret par défaut pour votre compte si"
+"aucun secret n'est établi sur le kite"
#: plinth/modules/pagekite/forms.py:81
msgid "Kite details set"
-msgstr ""
+msgstr "Détails pour Kite établis"
#: plinth/modules/pagekite/forms.py:88
msgid "Pagekite server set"
-msgstr ""
+msgstr "Serveur PageKite établi"
#: plinth/modules/pagekite/forms.py:94
msgid "PageKite enabled"
-msgstr ""
+msgstr "PageKite activé"
#: plinth/modules/pagekite/forms.py:97
msgid "PageKite disabled"
-msgstr ""
+msgstr "PageKite désactivé"
#: plinth/modules/pagekite/forms.py:129
#, python-brace-format
msgid "Service enabled: {name}"
-msgstr ""
+msgstr "Service activé : {name}"
#: plinth/modules/pagekite/forms.py:133
#, python-brace-format
msgid "Service disabled: {name}"
-msgstr ""
+msgstr "Service désactivé : {name}"
#: plinth/modules/pagekite/forms.py:179
msgid "Deleted custom service"
-msgstr ""
+msgstr "Service personnalisé supprimé"
#: plinth/modules/pagekite/forms.py:213
msgid ""
"This service is available as a standard service. Please\n"
" use the 'Standard Services' page to enable it."
msgstr ""
+"Ce service est disponible en tant que service standard. Svp\n"
+" utilisez la page 'Standard Services' pour l'activer."
#: plinth/modules/pagekite/forms.py:222
msgid "Added custom service"
-msgstr ""
+msgstr "Service personnalisé ajouté"
#: plinth/modules/pagekite/forms.py:225
msgid "This service already exists"
-msgstr ""
+msgstr "Ce service existe déjà"
#: plinth/modules/pagekite/utils.py:52
msgid "Web Server (HTTP)"
-msgstr ""
+msgstr "Serveur web (HTTP)"
#: plinth/modules/pagekite/utils.py:53
#, python-brace-format
msgid "Site will be available at http://{0}"
-msgstr ""
+msgstr "Le site sera accessible sur http://{0}"
#: plinth/modules/pagekite/utils.py:62
msgid "Web Server (HTTPS)"
-msgstr ""
+msgstr "Serveur web (HTTPS)"
#: plinth/modules/pagekite/utils.py:63
#, python-brace-format
msgid "Site will be available at https://{0}"
-msgstr ""
+msgstr "Le site sera accessible sur https://{0}"
#: plinth/modules/pagekite/utils.py:72
msgid "Secure Shell (SSH)"
-msgstr ""
+msgstr "Shell Sécurisé (SSH)"
#: plinth/modules/pagekite/utils.py:73
msgid ""
"See SSH client setup instructions"
msgstr ""
+"Voir comment configurer le client SSH sur instructions"
#: plinth/modules/pagekite/views.py:34
msgid "About PageKite"
-msgstr ""
+msgstr "A propos de PageKite"
#: plinth/modules/pagekite/views.py:36
msgid "Configure PageKite"
-msgstr ""
+msgstr "Configurer PageKite"
#: plinth/modules/pagekite/views.py:38
msgid "Standard Services"
-msgstr ""
+msgstr "Services Standards"
#: plinth/modules/pagekite/views.py:40
-msgid "Custom Services"
-msgstr ""
+msgid "Custom services"
+msgstr "Services personnalisés"
#: plinth/modules/privoxy/__init__.py:39 plinth/modules/privoxy/views.py:59
msgid "Web Proxy (Privoxy)"
-msgstr ""
+msgstr "Proxy web (Privoxy)"
#: plinth/modules/privoxy/__init__.py:44
msgid "Privoxy Web Proxy"
-msgstr ""
+msgstr "Proxy web Privoxy"
#: plinth/modules/privoxy/__init__.py:86
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
-msgstr ""
+msgstr "Accéder à l'URL {url} avec le proxy {proxy} sur tcp{kind}"
#: plinth/modules/privoxy/forms.py:29
msgid "Enable Privoxy"
-msgstr ""
+msgstr "Activer Privoxy"
#: plinth/modules/roundcube/__init__.py:36
#: plinth/modules/roundcube/views.py:64
msgid "Email Client (Roundcube)"
-msgstr ""
+msgstr "Client courriel (Roundcube)"
#: plinth/modules/roundcube/forms.py:29
msgid "Enable Roundcube"
-msgstr ""
+msgstr "Activer Roundcube"
#: plinth/modules/shaarli/__init__.py:37 plinth/modules/shaarli/views.py:49
msgid "Bookmarks (Shaarli)"
-msgstr ""
+msgstr "Signets (Shaarli)"
#: plinth/modules/shaarli/__init__.py:42
msgid "Shaarli"
-msgstr ""
+msgstr "Shaarli"
#: plinth/modules/shaarli/forms.py:29
msgid "Enable Shaarli"
-msgstr ""
+msgstr "Activer Shaarli"
#: plinth/modules/system/system.py:26
msgid "System"
-msgstr ""
+msgstr "Système"
#: plinth/modules/system/system.py:33
msgid "System Configuration"
-msgstr ""
+msgstr "Configuration Système"
#: plinth/modules/tor/__init__.py:50
msgid "Tor relay port available"
-msgstr ""
+msgstr "Port du relai Tor disponible"
#: plinth/modules/tor/__init__.py:58
msgid "Obfs3 transport registered"
-msgstr ""
+msgstr "Transport Obfs3 enregistré"
#: plinth/modules/tor/__init__.py:64
msgid "Scramblesuit transport registered"
-msgstr ""
+msgstr "Transport Scramblesuit enregistré"
#: plinth/modules/tor/__init__.py:101
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
-msgstr ""
+msgstr "Accédez à l'URL {url} sur tcp{kind} via Tor"
#: plinth/modules/tor/__init__.py:112
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
-msgstr ""
+msgstr "Confirmez l'utilisation de Tor pour {url} sur tcp{kind}"
#: plinth/modules/tor/tor.py:44
msgid "Enable Tor"
-msgstr ""
+msgstr "Activer Tor"
#: plinth/modules/tor/tor.py:47
msgid "Enable Tor Hidden Service"
-msgstr ""
+msgstr "Activer les services cachés Tor"
#: plinth/modules/tor/tor.py:49
msgid ""
"A hidden service will allow FreedomBox to provide selected services (such as "
"ownCloud or Chat) without revealing its location."
msgstr ""
+"Un service caché permettra à FreedomBox de proposer les services sélectionnés (comme "
+"ownCloud ou Chat) sans réveler votre emplacement."
#: plinth/modules/tor/tor.py:53
msgid "Download software packages over Tor"
-msgstr ""
+msgstr "Téléchargez les logiciels via Tor"
#: plinth/modules/tor/tor.py:55
msgid ""
@@ -857,60 +866,63 @@ msgid ""
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
+"Lorsqu'activé, le logiciel sera téléchargé via le réseau Tor pour "
+"installation et mises à niveau. Ce processus ajoute un degré de sécurité et confidentialité "
+"durant le téléchargement des logiciels."
#: plinth/modules/tor/tor.py:64
msgid "Anonymity Network (Tor)"
-msgstr ""
+msgstr "Réseau anonyme (Tor)"
#: plinth/modules/tor/tor.py:93
-msgid "Tor Control Panel"
+msgid "Panneau de contrôle Tor"
msgstr ""
#: plinth/modules/tor/tor.py:212
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
-msgstr ""
+msgstr "Erreur sur action : {0} [{1}] [{2}]"
#: plinth/modules/tor/tor.py:228
msgid "Tor enabled"
-msgstr ""
+msgstr "Tor activé"
#: plinth/modules/tor/tor.py:231
msgid "Tor disabled"
-msgstr ""
+msgstr "Tor désactivé"
#: plinth/modules/tor/tor.py:236
msgid "Tor hidden service enabled"
-msgstr ""
+msgstr "Services cachés Tor activés"
#: plinth/modules/tor/tor.py:239
msgid "Tor hidden service disabled"
-msgstr ""
+msgstr "Services cachés Tor désactivés"
#: plinth/modules/tor/tor.py:245
msgid "Enabled package download over Tor"
-msgstr ""
+msgstr "Paquet téléchargé via Tor activé"
#: plinth/modules/tor/tor.py:248
msgid "Disabled package download over Tor"
-msgstr ""
+msgstr "Paquet téléchargé via Tor désactivé"
#: plinth/modules/transmission/__init__.py:38
#: plinth/modules/transmission/views.py:63
msgid "BitTorrent (Transmission)"
-msgstr ""
+msgstr "BitTorrent (Transmission)"
#: plinth/modules/transmission/__init__.py:43
msgid "Transmission BitTorrent"
-msgstr ""
+msgstr "Transmission BitTorrent"
#: plinth/modules/transmission/forms.py:29
msgid "Enable Transmission daemon"
-msgstr ""
+msgstr "Activer Transmission BitTorrent"
#: plinth/modules/transmission/forms.py:33
msgid "Download directory"
-msgstr ""
+msgstr "Télécharger répertoire"
#: plinth/modules/transmission/forms.py:34
msgid ""
@@ -918,64 +930,71 @@ msgid ""
"ensure that the new directory exists and is writable by \"debian-tramission"
"\" user"
msgstr ""
+"Répertoire où les téléchargements sont sauvegardés. Si vous changez le répertoire par défaut, "
+"assurez-vous que ce nouveau répertoire existe bien et qu'il est ouvert en écriture pour \"debian-tramission"
+"\" user"
#: plinth/modules/transmission/forms.py:40
msgid "Username to login to the web interface"
-msgstr ""
+msgstr "Nom d'utilisateur pour se connecter à l'interface web"
#: plinth/modules/transmission/forms.py:44
msgid ""
"Password to login to the web interface. Current password is shown in a "
"hashed format. To set a new password, enter the password in plain text."
msgstr ""
+"Mot de passe pour se connecter à l'interface web. Le mot de passe actuel est visible au format "
+"haché. Pour établir un nouveau mot de passe, entrez-le en texte brut."
#: plinth/modules/upgrades/__init__.py:33
msgid "Software Upgrades"
-msgstr ""
+msgstr "Mises à niveau des Logiciels"
#: plinth/modules/upgrades/forms.py:29
msgid "Enable automatic upgrades"
-msgstr ""
+msgstr "Activer les mises à niveau automatiques"
#: plinth/modules/upgrades/forms.py:30
msgid ""
"When enabled, the unattended-upgrades program will be run once per day. It "
"will attempt to perform any package upgrades that are available."
msgstr ""
+"Lorsqu'activé, le programme unattended-upgrades sera mis en oeuvre une fois par jour. Il "
+"essayera de réaliser l'ensemble des mises à niveau disponibles."
#: plinth/modules/upgrades/views.py:34 plinth/modules/upgrades/views.py:61
msgid "Automatic Upgrades"
-msgstr ""
+msgstr "Mises à niveau automatiques"
#: plinth/modules/upgrades/views.py:36
msgid "Upgrade Packages"
-msgstr ""
+msgstr "Mettre à niveau les paquets"
#: plinth/modules/upgrades/views.py:70 plinth/modules/upgrades/views.py:88
msgid "Package Upgrades"
-msgstr ""
+msgstr "Paquets mis à niveau"
#: plinth/modules/upgrades/views.py:117
#, python-format
msgid "Error when configuring unattended-upgrades: %s"
-msgstr ""
+msgstr "Erreur lors de la configuration de unattended-upgrades : %s"
#: plinth/modules/upgrades/views.py:122
msgid "Automatic upgrades enabled"
-msgstr ""
+msgstr "Mises à niveau automatiques activées"
#: plinth/modules/upgrades/views.py:124
msgid "Automatic upgrades disabled"
-msgstr ""
+msgstr "Mises à niveau automatiques désactivées"
#: plinth/modules/users/__init__.py:36
msgid "Users and Groups"
-msgstr ""
+msgstr "Utilisateurs et Groupes"
#: plinth/modules/users/__init__.py:65
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
-msgstr ""
+msgstr "Vérification de l'entrée LDAP \"{search_item}\""
#: plinth/modules/users/forms.py:28
msgid "admin"
@@ -983,11 +1002,11 @@ msgstr ""
#: plinth/modules/users/forms.py:29
msgid "wiki"
-msgstr ""
+msgstr "admin"
#: plinth/modules/users/forms.py:41
msgid "Groups"
-msgstr ""
+msgstr "Groupes"
#: plinth/modules/users/forms.py:44
msgid ""
@@ -997,105 +1016,110 @@ msgid ""
"able to log in to all services. They can also log in to the system through "
"SSH and have administrative privileges (sudo)."
msgstr ""
+"Sélectionnez quels services doivent être accessibles à un nouvel utilisateur. L'utilisateur pourra "
+"se connecter aux services compatibles avec une sessions unique via LDAP, si ils "
+"appartiennent au groupe approprié.
Les utilisateurs du groupe admin pourront "
+"se connecter à tous les services. Ils peuvent également se connecter au système avec "
+"Secure Shell (SSH) et se voir accorder le mode superutilisateur (sudo)."
#: plinth/modules/users/forms.py:79
#, python-format
msgid "Failed to add new user to %s group."
-msgstr ""
+msgstr "Échec de l'ajout d'un nouvel utisateur au groupe %s."
#: plinth/modules/users/forms.py:124
msgid "Renaming LDAP user failed."
-msgstr ""
+msgstr "Le chamgement de nom LDAP de l'utilisateur a échoué."
#: plinth/modules/users/forms.py:136
msgid "Failed to remove user from group."
-msgstr ""
+msgstr "Échec du retrait de l'utilisateur du groupe."
#: plinth/modules/users/forms.py:147
msgid "Failed to add user to group."
-msgstr ""
+msgstr "Échec de l'ajout de l'utilisateur au groupe."
#: plinth/modules/users/forms.py:172
msgid "Changing LDAP user password failed."
-msgstr ""
+msgstr "Le changement de mot de passe pour l'utilisateur LDAP a échoué."
#: plinth/modules/users/views.py:34 plinth/modules/users/views.py:69
msgid "Users"
-msgstr ""
+msgstr "Utilisateurs"
#: plinth/modules/users/views.py:36 plinth/modules/users/views.py:56
msgid "Create User"
-msgstr ""
+msgstr "Créer un utilisateur"
#: plinth/modules/users/views.py:54
#, python-format
msgid "User %(username)s created."
-msgstr ""
+msgstr "Utilisateur %(username)s créé"
#: plinth/modules/users/views.py:78
#, python-format
msgid "User %(username)s updated."
-msgstr ""
+msgstr "Utilisateur %(username)s mis à jour."
#: plinth/modules/users/views.py:79
msgid "Edit User"
-msgstr ""
+msgstr "Modifier l'Utilisateur"
#: plinth/modules/users/views.py:103
msgid "Delete User"
-msgstr ""
+msgstr "Supprimer l'utilisateur"
#: plinth/modules/users/views.py:113
#, python-format
msgid "User %s deleted."
-msgstr ""
+msgstr "Utilisateur %s supprimé"
#: plinth/modules/users/views.py:120
msgid "Deleting LDAP user failed."
-msgstr ""
+msgstr "La suppression de l'utilisateur LDAP a échoué."
#: plinth/modules/users/views.py:129
msgid "Change Password"
-msgstr ""
+msgstr "Changer le mot de passe"
#: plinth/modules/users/views.py:130
msgid "Password changed successfully."
-msgstr ""
+msgstr "Mot de passe changé avec succés."
#: plinth/modules/xmpp/__init__.py:41 plinth/modules/xmpp/__init__.py:46
#: plinth/modules/xmpp/views.py:75
msgid "Chat Server (XMPP)"
-msgstr ""
+msgstr "Serveur Chat (XMPP)"
#: plinth/modules/xmpp/forms.py:29
msgid "Enable XMPP"
-msgstr ""
+msgstr "Activer XMPP"
#: plinth/package.py:158
msgid "packages not found"
-msgstr ""
+msgstr "Paquet introuvable"
#: plinth/package.py:265
msgid "Installed and configured packages successfully"
-msgstr ""
+msgstr "Paquets installés et configurés avec succés"
#: plinth/package.py:268
#, python-brace-format
msgid "Error installing packages: {details}"
-msgstr ""
+msgstr "Erreur dans l'installation des paquets : {details}"
#: plinth/service.py:74
msgid "Web Server"
-msgstr ""
+msgstr "Serveur web"
#: plinth/service.py:75
msgid "Web Server over Secure Socket Layer"
-msgstr ""
+msgstr "Serveur web via SSL (Secure Socket Layer)"
#: plinth/service.py:77
msgid "Secure Shell (SSH) Server"
-msgstr ""
+msgstr "Serveur Secure Shell (SSH)"
#: plinth/service.py:79
msgid "FreedomBox Web Interface (Plinth)"
-msgstr ""
+msgstr "Interface web Freedombox (Plinth)"