Drop de/es locales, complete fr translations, add navbar language switcher.

This commit is contained in:
krek0 2026-05-03 23:24:23 +02:00
parent f782c58976
commit d4e1758e79
8 changed files with 305 additions and 929 deletions

View file

@ -1,321 +0,0 @@
# This file is part of photo21
# Copyright (C) 2022 Amicale des élèves de l'ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-07 20:03+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: .\photo21\forms.py:16
msgid ""
"Please enter a valid email address ending with `@crans.org` or `@ens-paris-"
"saclay.fr`."
msgstr ""
#: .\photo21\forms.py:29
msgid "Must end with `@crans.org` or `@ens-paris-saclay.fr`."
msgstr ""
#: .\photo21\settings.py:171
msgid "German"
msgstr ""
#: .\photo21\settings.py:172
msgid "English"
msgstr ""
#: .\photo21\settings.py:173
msgid "Spanish"
msgstr ""
#: .\photo21\settings.py:174
msgid "French"
msgstr ""
#: .\photo21\templates\400.html:12
msgid "Bad request"
msgstr ""
#: .\photo21\templates\400.html:16
msgid ""
"Sorry, your request was bad. Don't know what could be wrong. An email has "
"been sent to webmasters with the details of the error. You can now drink a "
"coke."
msgstr ""
#: .\photo21\templates\403.html:12
msgid "Permission denied"
msgstr ""
#: .\photo21\templates\403.html:15
msgid "You don't have the right to perform this request."
msgstr ""
#: .\photo21\templates\403.html:17 .\photo21\templates\404.html:21
msgid "Exception message:"
msgstr ""
#: .\photo21\templates\404.html:12
msgid "Page not found"
msgstr ""
#: .\photo21\templates\404.html:16
#, python-format
msgid ""
"The requested path <code>%(request_path)s</code> was not found on the server."
msgstr ""
#: .\photo21\templates\500.html:12
msgid "Server error"
msgstr ""
#: .\photo21\templates\500.html:16
msgid ""
"Sorry, an error occurred when processing your request. An email has been "
"sent to webmasters with the detail of the error, and this will be fixed "
"soon. You can go drink a soft."
msgstr ""
#: .\photo21\templates\account\email.html:8
#: .\photo21\templates\account\email.html:16
#: .\photo21\templates\socialaccount\connections.html:16
msgid "E-mail Addresses"
msgstr ""
#: .\photo21\templates\account\email.html:11 .\photo21\templates\base.html:63
#: .\photo21\templates\socialaccount\connections.html:11
msgid "Account"
msgstr ""
#: .\photo21\templates\account\email.html:19
#: .\photo21\templates\socialaccount\connections.html:19
msgid "Social connections"
msgstr ""
#: .\photo21\templates\account\email.html:25
msgid "The following e-mail addresses are associated with your account:"
msgstr ""
#: .\photo21\templates\account\email.html:36
msgid "Verified"
msgstr ""
#: .\photo21\templates\account\email.html:38
msgid "Unverified"
msgstr ""
#: .\photo21\templates\account\email.html:40
msgid "Primary"
msgstr ""
#: .\photo21\templates\account\email.html:46
msgid "Make Primary"
msgstr ""
#: .\photo21\templates\account\email.html:47
msgid "Re-send Verification"
msgstr ""
#: .\photo21\templates\account\email.html:48
#: .\photo21\templates\socialaccount\connections.html:47
msgid "Remove"
msgstr ""
#: .\photo21\templates\account\email.html:53
msgid "Warning:"
msgstr ""
#: .\photo21\templates\account\email.html:53
msgid ""
"You currently do not have any e-mail address set up. You should really add "
"an e-mail address so you can receive notifications, reset your password, etc."
msgstr ""
#: .\photo21\templates\account\email.html:57
msgid "Add E-mail Address"
msgstr ""
#: .\photo21\templates\account\email.html:62
msgid "Add E-mail"
msgstr ""
#: .\photo21\templates\account\login.html:8
#: .\photo21\templates\account\login.html:36
msgid "Sign In"
msgstr ""
#: .\photo21\templates\account\login.html:19
#, python-format
msgid ""
"Please sign in with one of your existing third party accounts. Or, <a "
"href=\"%(signup_url)s\">sign up</a> for a %(site_name)s account and sign in "
"below:"
msgstr ""
#: .\photo21\templates\account\login.html:26
#, python-format
msgid ""
"If you have not created an account yet, then please <a "
"href=\"%(signup_url)s\">sign up</a> first."
msgstr ""
#: .\photo21\templates\account\login.html:39
msgid "Forgot Password?"
msgstr ""
#: .\photo21\templates\account\login.html:42
msgid "If any problem, please contact the server owners at"
msgstr ""
#: .\photo21\templates\account\logout.html:8
#: .\photo21\templates\account\logout.html:13
#: .\photo21\templates\account\logout.html:22
msgid "Sign Out"
msgstr ""
#: .\photo21\templates\account\logout.html:16
msgid "Are you sure you want to sign out?"
msgstr ""
#: .\photo21\templates\account\signup.html:8
msgid "Signup"
msgstr ""
#: .\photo21\templates\account\signup.html:13
#: .\photo21\templates\account\signup.html:24
msgid "Sign Up"
msgstr ""
#: .\photo21\templates\account\signup.html:16
#, python-format
msgid ""
"Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>."
msgstr ""
#: .\photo21\templates\base.html:16
msgid "The ENS Paris-Saclay pictures server."
msgstr ""
#: .\photo21\templates\base.html:41
msgid "Galleries"
msgstr ""
#: .\photo21\templates\base.html:46
msgid "Upload"
msgstr ""
#: .\photo21\templates\base.html:51
msgid "Manage"
msgstr ""
#: .\photo21\templates\base.html:72
msgid "Log out"
msgstr ""
#: .\photo21\templates\base.html:82
msgid "Log in"
msgstr ""
#: .\photo21\templates\base.html:91
msgid "Sign up"
msgstr ""
#: .\photo21\templates\base.html:116
msgid "Connected as"
msgstr ""
#: .\photo21\templates\base.html:118
msgid "Source code"
msgstr ""
#: .\photo21\templates\index.html:8
msgid "Home"
msgstr ""
#: .\photo21\templates\index.html:11
msgid "Welcome to the pictures server!"
msgstr ""
#: .\photo21\templates\index.html:13
msgid ""
"This website aims to collect the pictures and movies taken in the student "
"life of ENS Paris-Saclay or involving its students."
msgstr ""
#: .\photo21\templates\index.html:20
#, python-format
msgid ""
"The pictures are visible in <a href=\"%(gallery_archive_url)s\">the "
"galleries</a> and are downloadable. <b>However, the agreement of the "
"photographer and the persons present on the photo is necessary before any "
"republication on another platform. </b>"
msgstr ""
#: .\photo21\templates\index.html:29
msgid ""
"If you want a photo to be deleted, please let us know: <a "
"href=\"mailto:photos@crans.org?subject=[ABUS] Nouvelle requête\" class=\"btn "
"btn-secondary btn-sm\">Abuse request</a>"
msgstr ""
#: .\photo21\templates\index.html:36
msgid ""
"If you want to obtain the right to upload pictures, please let us know: <a "
"href=\"mailto:photos@crans.org?subject=[Photographe] Demande de droits "
"photographe\" class=\"btn btn-secondary btn-sm\">Become a photograph</a>"
msgstr ""
#: .\photo21\templates\index.html:43
msgid "Last galleries"
msgstr ""
#: .\photo21\templates\index.html:52
msgid "Behind the scene"
msgstr ""
#: .\photo21\templates\index.html:54
msgid ""
"Because we value your privacy, we do not sell the data on this site, unlike "
"many free online platforms. The dedicated server running this website is "
"kindly hosted by the <a href=\"https://www.crans.org/\">Crans</a> at the ENS "
"Paris-Saclay basement. It is not managed by the Crans. Current active "
"administrators are:"
msgstr ""
#: .\photo21\templates\index.html:63
msgid "They should be contacted at"
msgstr ""
#: .\photo21\templates\socialaccount\connections.html:8
msgid "Account Connections"
msgstr ""
#: .\photo21\templates\socialaccount\connections.html:25
msgid ""
"You can sign in to your account using any of the following third party "
"accounts:"
msgstr ""
#: .\photo21\templates\socialaccount\connections.html:53
msgid ""
"You currently have no social network accounts connected to this account."
msgstr ""
#: .\photo21\templates\socialaccount\connections.html:56
msgid "Add a 3rd Party Account"
msgstr ""
#: .\photo21\templates\socialaccount\snippets\provider_list.html:20
msgid "Sign in with"
msgstr ""

View file

@ -1,320 +0,0 @@
# This file is part of photo21
# Copyright (C) 2022 Amicale des élèves de l'ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-07 20:03+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: .\photo21\forms.py:16
msgid ""
"Please enter a valid email address ending with `@crans.org` or `@ens-paris-"
"saclay.fr`."
msgstr ""
#: .\photo21\forms.py:29
msgid "Must end with `@crans.org` or `@ens-paris-saclay.fr`."
msgstr ""
#: .\photo21\settings.py:171
msgid "German"
msgstr ""
#: .\photo21\settings.py:172
msgid "English"
msgstr ""
#: .\photo21\settings.py:173
msgid "Spanish"
msgstr ""
#: .\photo21\settings.py:174
msgid "French"
msgstr ""
#: .\photo21\templates\400.html:12
msgid "Bad request"
msgstr ""
#: .\photo21\templates\400.html:16
msgid ""
"Sorry, your request was bad. Don't know what could be wrong. An email has "
"been sent to webmasters with the details of the error. You can now drink a "
"coke."
msgstr ""
#: .\photo21\templates\403.html:12
msgid "Permission denied"
msgstr ""
#: .\photo21\templates\403.html:15
msgid "You don't have the right to perform this request."
msgstr ""
#: .\photo21\templates\403.html:17 .\photo21\templates\404.html:21
msgid "Exception message:"
msgstr ""
#: .\photo21\templates\404.html:12
msgid "Page not found"
msgstr ""
#: .\photo21\templates\404.html:16
#, python-format
msgid ""
"The requested path <code>%(request_path)s</code> was not found on the server."
msgstr ""
#: .\photo21\templates\500.html:12
msgid "Server error"
msgstr ""
#: .\photo21\templates\500.html:16
msgid ""
"Sorry, an error occurred when processing your request. An email has been "
"sent to webmasters with the detail of the error, and this will be fixed "
"soon. You can go drink a soft."
msgstr ""
#: .\photo21\templates\account\email.html:8
#: .\photo21\templates\account\email.html:16
#: .\photo21\templates\socialaccount\connections.html:16
msgid "E-mail Addresses"
msgstr ""
#: .\photo21\templates\account\email.html:11 .\photo21\templates\base.html:63
#: .\photo21\templates\socialaccount\connections.html:11
msgid "Account"
msgstr ""
#: .\photo21\templates\account\email.html:19
#: .\photo21\templates\socialaccount\connections.html:19
msgid "Social connections"
msgstr ""
#: .\photo21\templates\account\email.html:25
msgid "The following e-mail addresses are associated with your account:"
msgstr ""
#: .\photo21\templates\account\email.html:36
msgid "Verified"
msgstr ""
#: .\photo21\templates\account\email.html:38
msgid "Unverified"
msgstr ""
#: .\photo21\templates\account\email.html:40
msgid "Primary"
msgstr ""
#: .\photo21\templates\account\email.html:46
msgid "Make Primary"
msgstr ""
#: .\photo21\templates\account\email.html:47
msgid "Re-send Verification"
msgstr ""
#: .\photo21\templates\account\email.html:48
#: .\photo21\templates\socialaccount\connections.html:47
msgid "Remove"
msgstr ""
#: .\photo21\templates\account\email.html:53
msgid "Warning:"
msgstr ""
#: .\photo21\templates\account\email.html:53
msgid ""
"You currently do not have any e-mail address set up. You should really add "
"an e-mail address so you can receive notifications, reset your password, etc."
msgstr ""
#: .\photo21\templates\account\email.html:57
msgid "Add E-mail Address"
msgstr ""
#: .\photo21\templates\account\email.html:62
msgid "Add E-mail"
msgstr ""
#: .\photo21\templates\account\login.html:8
#: .\photo21\templates\account\login.html:36
msgid "Sign In"
msgstr ""
#: .\photo21\templates\account\login.html:19
#, python-format
msgid ""
"Please sign in with one of your existing third party accounts. Or, <a "
"href=\"%(signup_url)s\">sign up</a> for a %(site_name)s account and sign in "
"below:"
msgstr ""
#: .\photo21\templates\account\login.html:26
#, python-format
msgid ""
"If you have not created an account yet, then please <a "
"href=\"%(signup_url)s\">sign up</a> first."
msgstr ""
#: .\photo21\templates\account\login.html:39
msgid "Forgot Password?"
msgstr ""
#: .\photo21\templates\account\login.html:42
msgid "If any problem, please contact the server owners at"
msgstr ""
#: .\photo21\templates\account\logout.html:8
#: .\photo21\templates\account\logout.html:13
#: .\photo21\templates\account\logout.html:22
msgid "Sign Out"
msgstr ""
#: .\photo21\templates\account\logout.html:16
msgid "Are you sure you want to sign out?"
msgstr ""
#: .\photo21\templates\account\signup.html:8
msgid "Signup"
msgstr ""
#: .\photo21\templates\account\signup.html:13
#: .\photo21\templates\account\signup.html:24
msgid "Sign Up"
msgstr ""
#: .\photo21\templates\account\signup.html:16
#, python-format
msgid ""
"Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>."
msgstr ""
#: .\photo21\templates\base.html:16
msgid "The ENS Paris-Saclay pictures server."
msgstr ""
#: .\photo21\templates\base.html:41
msgid "Galleries"
msgstr ""
#: .\photo21\templates\base.html:46
msgid "Upload"
msgstr ""
#: .\photo21\templates\base.html:51
msgid "Manage"
msgstr ""
#: .\photo21\templates\base.html:72
msgid "Log out"
msgstr ""
#: .\photo21\templates\base.html:82
msgid "Log in"
msgstr ""
#: .\photo21\templates\base.html:91
msgid "Sign up"
msgstr ""
#: .\photo21\templates\base.html:116
msgid "Connected as"
msgstr ""
#: .\photo21\templates\base.html:118
msgid "Source code"
msgstr ""
#: .\photo21\templates\index.html:8
msgid "Home"
msgstr ""
#: .\photo21\templates\index.html:11
msgid "Welcome to the pictures server!"
msgstr ""
#: .\photo21\templates\index.html:13
msgid ""
"This website aims to collect the pictures and movies taken in the student "
"life of ENS Paris-Saclay or involving its students."
msgstr ""
#: .\photo21\templates\index.html:20
#, python-format
msgid ""
"The pictures are visible in <a href=\"%(gallery_archive_url)s\">the "
"galleries</a> and are downloadable. <b>However, the agreement of the "
"photographer and the persons present on the photo is necessary before any "
"republication on another platform. </b>"
msgstr ""
#: .\photo21\templates\index.html:29
msgid ""
"If you want a photo to be deleted, please let us know: <a "
"href=\"mailto:photos@crans.org?subject=[ABUS] Nouvelle requête\" class=\"btn "
"btn-secondary btn-sm\">Abuse request</a>"
msgstr ""
#: .\photo21\templates\index.html:36
msgid ""
"If you want to obtain the right to upload pictures, please let us know: <a "
"href=\"mailto:photos@crans.org?subject=[Photographe] Demande de droits "
"photographe\" class=\"btn btn-secondary btn-sm\">Become a photograph</a>"
msgstr ""
#: .\photo21\templates\index.html:43
msgid "Last galleries"
msgstr ""
#: .\photo21\templates\index.html:52
msgid "Behind the scene"
msgstr ""
#: .\photo21\templates\index.html:54
msgid ""
"Because we value your privacy, we do not sell the data on this site, unlike "
"many free online platforms. The dedicated server running this website is "
"kindly hosted by the <a href=\"https://www.crans.org/\">Crans</a> at the ENS "
"Paris-Saclay basement. It is not managed by the Crans. Current active "
"administrators are:"
msgstr ""
#: .\photo21\templates\index.html:63
msgid "They should be contacted at"
msgstr ""
#: .\photo21\templates\socialaccount\connections.html:8
msgid "Account Connections"
msgstr ""
#: .\photo21\templates\socialaccount\connections.html:25
msgid ""
"You can sign in to your account using any of the following third party "
"accounts:"
msgstr ""
#: .\photo21\templates\socialaccount\connections.html:53
msgid ""
"You currently have no social network accounts connected to this account."
msgstr ""
#: .\photo21\templates\socialaccount\connections.html:56
msgid "Add a 3rd Party Account"
msgstr ""
#: .\photo21\templates\socialaccount\snippets\provider_list.html:20
msgid "Sign in with"
msgstr ""

View file

@ -1,163 +1,158 @@
# This file is part of photo21 # This file is part of photo21
# Copyright (C) 2022 Amicale des élèves de l'ENS Paris-Saclay # Copyright (C) 2022 Amicale des élèves de l'ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
#
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: photo21\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-07 20:03+0100\n" "Language-Team: French\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language: fr\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: .\photo21\forms.py:16 #: photo21/forms.py:16
msgid "" msgid "Please enter a valid email address ending with `@ens-rennes.fr`"
"Please enter a valid email address ending with `@crans.org` or `@ens-paris-" msgstr "Veuillez entrer une adresse e-mail valide finissant par `@ens-rennes.fr`."
"saclay.fr`."
msgstr ""
"Veuillez entrer une adresse email valide finissant par `@crans.org` ou `@ens-"
"paris-saclay.fr`."
#: .\photo21\forms.py:29 #: photo21/forms.py:26
msgid "Must end with `@crans.org` or `@ens-paris-saclay.fr`." msgid "Must end with `@ens-rennes.fr`."
msgstr "Doit finir par `@crans.org` ou `@ens-paris-saclay.fr`." msgstr "Doit finir par `@ens-rennes.fr`."
#: .\photo21\settings.py:171 #: photo21/settings.py:201
msgid "German"
msgstr ""
#: .\photo21\settings.py:172
msgid "English" msgid "English"
msgstr "" msgstr "Anglais"
#: .\photo21\settings.py:173 #: photo21/settings.py:202
msgid "Spanish"
msgstr ""
#: .\photo21\settings.py:174
msgid "French" msgid "French"
msgstr "" msgstr "Français"
#: .\photo21\templates\400.html:12 #: photo21/templates/400.html:12
msgid "Bad request" msgid "Bad request"
msgstr "" msgstr "Requête incorrecte"
#: .\photo21\templates\400.html:16 #: photo21/templates/400.html:16
msgid "" msgid ""
"Sorry, your request was bad. Don't know what could be wrong. An email has " "Sorry, your request was bad. Don't know what could be wrong. An email has "
"been sent to webmasters with the details of the error. You can now drink a " "been sent to webmasters with the details of the error. You can now drink a "
"coke." "coke."
msgstr "" msgstr ""
"Désolé, votre requête était incorrecte. Un e-mail a été envoyé aux "
"administrateurs avec les détails de l'erreur. Vous pouvez aller boire un "
"coca."
#: .\photo21\templates\403.html:12 #: photo21/templates/403.html:12
msgid "Permission denied" msgid "Permission denied"
msgstr "" msgstr "Permission refusée"
#: .\photo21\templates\403.html:15 #: photo21/templates/403.html:15
msgid "You don't have the right to perform this request." msgid "You don't have the right to perform this request."
msgstr "" msgstr "Vous n'avez pas le droit d'effectuer cette requête."
#: .\photo21\templates\403.html:17 .\photo21\templates\404.html:21 #: photo21/templates/403.html:17 photo21/templates/404.html:21
msgid "Exception message:" msgid "Exception message:"
msgstr "" msgstr "Message d'exception :"
#: .\photo21\templates\404.html:12 #: photo21/templates/404.html:12
msgid "Page not found" msgid "Page not found"
msgstr "" msgstr "Page introuvable"
#: .\photo21\templates\404.html:16 #: photo21/templates/404.html:16
#, python-format #, python-format
msgid "" msgid ""
"The requested path <code>%(request_path)s</code> was not found on the server." "The requested path <code>%(request_path)s</code> was not found on the server."
msgstr "" msgstr ""
"Le chemin demandé <code>%(request_path)s</code> n'a pas été trouvé sur le "
"serveur."
#: .\photo21\templates\500.html:12 #: photo21/templates/500.html:12
msgid "Server error" msgid "Server error"
msgstr "" msgstr "Erreur serveur"
#: .\photo21\templates\500.html:16 #: photo21/templates/500.html:16
msgid "" msgid ""
"Sorry, an error occurred when processing your request. An email has been " "Sorry, an error occurred when processing your request. An email has been "
"sent to webmasters with the detail of the error, and this will be fixed " "sent to webmasters with the detail of the error, and this will be fixed "
"soon. You can go drink a soft." "soon. You can go drink a soft."
msgstr "" msgstr ""
"Désolé, une erreur s'est produite lors du traitement de votre requête. Un e-"
"mail a été envoyé aux administrateurs avec les détails de l'erreur, et cela "
"sera corrigé prochainement. Vous pouvez aller boire un soda."
#: .\photo21\templates\account\email.html:8 #: photo21/templates/account/email.html:8
#: .\photo21\templates\account\email.html:16 #: photo21/templates/account/email.html:16
#: .\photo21\templates\socialaccount\connections.html:16 #: photo21/templates/socialaccount/connections.html:16
msgid "E-mail Addresses" msgid "E-mail Addresses"
msgstr "" msgstr "Adresses e-mail"
#: .\photo21\templates\account\email.html:11 .\photo21\templates\base.html:63 #: photo21/templates/account/email.html:11 photo21/templates/base.html:66
#: .\photo21\templates\socialaccount\connections.html:11 #: photo21/templates/socialaccount/connections.html:11
msgid "Account" msgid "Account"
msgstr "Compte" msgstr "Compte"
#: .\photo21\templates\account\email.html:19 #: photo21/templates/account/email.html:19
#: .\photo21\templates\socialaccount\connections.html:19 #: photo21/templates/socialaccount/connections.html:19
msgid "Social connections" msgid "Social connections"
msgstr "Connexions sociales" msgstr "Connexions sociales"
#: .\photo21\templates\account\email.html:25 #: photo21/templates/account/email.html:25
msgid "The following e-mail addresses are associated with your account:" msgid "The following e-mail addresses are associated with your account:"
msgstr "" msgstr "Les adresses e-mail suivantes sont associées à votre compte :"
#: .\photo21\templates\account\email.html:36 #: photo21/templates/account/email.html:36
msgid "Verified" msgid "Verified"
msgstr "" msgstr "Vérifié"
#: .\photo21\templates\account\email.html:38 #: photo21/templates/account/email.html:38
msgid "Unverified" msgid "Unverified"
msgstr "" msgstr "Non vérifié"
#: .\photo21\templates\account\email.html:40 #: photo21/templates/account/email.html:40
msgid "Primary" msgid "Primary"
msgstr "" msgstr "Principal"
#: .\photo21\templates\account\email.html:46 #: photo21/templates/account/email.html:46
msgid "Make Primary" msgid "Make Primary"
msgstr "" msgstr "Définir comme principal"
#: .\photo21\templates\account\email.html:47 #: photo21/templates/account/email.html:47
msgid "Re-send Verification" msgid "Re-send Verification"
msgstr "" msgstr "Renvoyer la vérification"
#: .\photo21\templates\account\email.html:48 #: photo21/templates/account/email.html:48
#: .\photo21\templates\socialaccount\connections.html:47 #: photo21/templates/socialaccount/connections.html:47
msgid "Remove" msgid "Remove"
msgstr "" msgstr "Supprimer"
#: .\photo21\templates\account\email.html:53 #: photo21/templates/account/email.html:53
msgid "Warning:" msgid "Warning:"
msgstr "" msgstr "Avertissement :"
#: .\photo21\templates\account\email.html:53 #: photo21/templates/account/email.html:53
msgid "" msgid ""
"You currently do not have any e-mail address set up. You should really add " "You currently do not have any e-mail address set up. You should really add "
"an e-mail address so you can receive notifications, reset your password, etc." "an e-mail address so you can receive notifications, reset your password, etc."
msgstr "" msgstr ""
"Vous n'avez actuellement aucune adresse e-mail configurée. Vous devriez "
"vraiment en ajouter une pour recevoir des notifications, réinitialiser votre "
"mot de passe, etc."
#: .\photo21\templates\account\email.html:57 #: photo21/templates/account/email.html:57
msgid "Add E-mail Address" msgid "Add E-mail Address"
msgstr "Ajouter une Adresse E-mail" msgstr "Ajouter une Adresse E-mail"
#: .\photo21\templates\account\email.html:62 #: photo21/templates/account/email.html:62
msgid "Add E-mail" msgid "Add E-mail"
msgstr "Ajouter un E-mail" msgstr "Ajouter un E-mail"
#: .\photo21\templates\account\login.html:8 #: photo21/templates/account/login.html:8
#: .\photo21\templates\account\login.html:36 #: photo21/templates/account/login.html:36
msgid "Sign In" msgid "Sign In"
msgstr "Se Connecter" msgstr "Se Connecter"
#: .\photo21\templates\account\login.html:19 #: photo21/templates/account/login.html:19
#, python-format #, python-format
msgid "" msgid ""
"Please sign in with one of your existing third party accounts. Or, <a " "Please sign in with one of your existing third party accounts. Or, <a "
@ -168,7 +163,7 @@ msgstr ""
"href=\"%(signup_url)s\">inscrivez-vous</a> pour un compte sur %(site_name)s " "href=\"%(signup_url)s\">inscrivez-vous</a> pour un compte sur %(site_name)s "
"et identifiez-vous ci-dessous :" "et identifiez-vous ci-dessous :"
#: .\photo21\templates\account\login.html:26 #: photo21/templates/account/login.html:26
#, python-format #, python-format
msgid "" msgid ""
"If you have not created an account yet, then please <a " "If you have not created an account yet, then please <a "
@ -177,92 +172,94 @@ msgstr ""
"Si vous n'avez pas déjà créé de compte, veuillez vous <a " "Si vous n'avez pas déjà créé de compte, veuillez vous <a "
"href=\"%(signup_url)s\">inscrire</a>." "href=\"%(signup_url)s\">inscrire</a>."
#: .\photo21\templates\account\login.html:39 #: photo21/templates/account/login.html:39
msgid "Forgot Password?" msgid "Forgot Password?"
msgstr "Mot de passe oublié ?" msgstr "Mot de passe oublié ?"
#: .\photo21\templates\account\login.html:42 #: photo21/templates/account/login.html:42
msgid "If any problem, please contact the server owners at" msgid "If any problem, please contact the server owners at"
msgstr "En cas de problème, contactez les administrateurs à" msgstr "En cas de problème, contactez les administrateurs à"
#: .\photo21\templates\account\logout.html:8 #: photo21/templates/account/logout.html:8
#: .\photo21\templates\account\logout.html:13 #: photo21/templates/account/logout.html:13
#: .\photo21\templates\account\logout.html:22 #: photo21/templates/account/logout.html:22
msgid "Sign Out" msgid "Sign Out"
msgstr "Déconnexion" msgstr "Déconnexion"
#: .\photo21\templates\account\logout.html:16 #: photo21/templates/account/logout.html:16
msgid "Are you sure you want to sign out?" msgid "Are you sure you want to sign out?"
msgstr "" msgstr "Êtes-vous sûr de vouloir vous déconnecter ?"
#: .\photo21\templates\account\signup.html:8 #: photo21/templates/account/signup.html:8
msgid "Signup" msgid "Signup"
msgstr "" msgstr "Inscription"
#: .\photo21\templates\account\signup.html:13 #: photo21/templates/account/signup.html:13
#: .\photo21\templates\account\signup.html:24 #: photo21/templates/account/signup.html:24
msgid "Sign Up" msgid "Sign Up"
msgstr "" msgstr "S'inscrire"
#: .\photo21\templates\account\signup.html:16 #: photo21/templates/account/signup.html:16
#, python-format #, python-format
msgid "" msgid ""
"Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>." "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>."
msgstr "" msgstr ""
"Vous avez déjà un compte ? Veuillez alors <a href=\"%(login_url)s\">vous "
"connecter</a>."
#: .\photo21\templates\base.html:16 #: photo21/templates/base.html:16
msgid "The ENS Paris-Saclay pictures server." msgid "The ENS Rennes pictures server."
msgstr "" msgstr "Le serveur photos de l'ENS Rennes."
#: .\photo21\templates\base.html:41 #: photo21/templates/base.html:43
msgid "Galleries" msgid "Galleries"
msgstr "Galeries" msgstr "Galeries"
#: .\photo21\templates\base.html:46 #: photo21/templates/base.html:48
msgid "Upload" msgid "Upload"
msgstr "Téléversement" msgstr "Upload"
#: .\photo21\templates\base.html:51 #: photo21/templates/base.html:53
msgid "Manage" msgid "Manage"
msgstr "Gestion" msgstr "Manage"
#: .\photo21\templates\base.html:72 #: photo21/templates/base.html:75
msgid "Log out" msgid "Log out"
msgstr "" msgstr "Déconnection"
#: .\photo21\templates\base.html:82 #: photo21/templates/base.html:85
msgid "Log in" msgid "Log in"
msgstr "" msgstr "Connection"
#: .\photo21\templates\base.html:91 #: photo21/templates/base.html:94
msgid "Sign up" msgid "Sign up"
msgstr "Inscription" msgstr "Inscription"
#: .\photo21\templates\base.html:116 #: photo21/templates/base.html:119
msgid "Connected as" msgid "Connected as"
msgstr "Connecté en tant que" msgstr "Connecté en tant que"
#: .\photo21\templates\base.html:118 #: photo21/templates/base.html:121
msgid "Source code" msgid "Source code"
msgstr "Code source" msgstr "Code source"
#: .\photo21\templates\index.html:8 #: photo21/templates/index.html:8
msgid "Home" msgid "Home"
msgstr "Accueil" msgstr "Accueil"
#: .\photo21\templates\index.html:11 #: photo21/templates/index.html:11
msgid "Welcome to the pictures server!" msgid "Welcome to the pictures server!"
msgstr "Bienvenue sur le serveur photos !" msgstr "Bienvenue sur le serveur photos !"
#: .\photo21\templates\index.html:13 #: photo21/templates/index.html:13
msgid "" msgid ""
"This website aims to collect the pictures and movies taken in the student " "This website aims to collect the pictures and movies taken in the student "
"life of ENS Paris-Saclay or involving its students." "life of ENS Rennes or involving its students."
msgstr "" msgstr ""
"Ce site à pour objectif de recenser les photos et films pris dans la vie " "Ce site a pour objectif de recenser les photos et films pris dans la vie "
"associative de l'ENS Paris-Saclay ou impliquant ses usager·ères." "associative de l'ENS Rennes ou impliquant ses étudiant·es."
#: .\photo21\templates\index.html:20 #: photo21/templates/index.html:20
#, python-format #, python-format
msgid "" msgid ""
"The pictures are visible in <a href=\"%(gallery_archive_url)s\">the " "The pictures are visible in <a href=\"%(gallery_archive_url)s\">the "
@ -275,73 +272,77 @@ msgstr ""
"photographe et des personnes présentes sur la photo est nécessaire avant " "photographe et des personnes présentes sur la photo est nécessaire avant "
"toute republication sur un autre site.</b>" "toute republication sur un autre site.</b>"
#: .\photo21\templates\index.html:29 #: photo21/templates/index.html:30
msgid ""
"If you want a photo to be deleted, please let us know: <a "
"href=\"mailto:photos@crans.org?subject=[ABUS] Nouvelle requête\" class=\"btn "
"btn-secondary btn-sm\">Abuse request</a>"
msgstr ""
"Si vous souhaitez qu'une photo soit supprimée, signalez le nous : <a "
"href=\"mailto:photos@crans.org?subject=[ABUS] Nouvelle requête\" class=\"btn "
"btn-secondary btn-sm\">Signaler un abus</a>"
#: .\photo21\templates\index.html:36
msgid "" msgid ""
"If you want to obtain the right to upload pictures, please let us know: <a " "If you want to obtain the right to upload pictures, please let us know: <a "
"href=\"mailto:photos@crans.org?subject=[Photographe] Demande de droits " "href=\"mailto:sinfonie@ens-rennes.fr?subject=[Photographe] Demande de droits "
"photographe\" class=\"btn btn-secondary btn-sm\">Become a photograph</a>" "photographe\" class=\"btn btn-secondary btn-sm\">Become a photograph</a>"
msgstr "" msgstr ""
"Si vous souhaitez obtenir les droits photographes pour téléverser vos " "Si vous souhaitez obtenir les droits photographes pour téléverser vos "
"photos, signalez le nous : <a href=\"mailto:photos@crans.org?" "photos, contactez-nous : <a href=\"mailto:sinfonie@ens-rennes.fr?"
"subject=[Photographe] Demande de droits photographe\" class=\"btn btn-" "subject=[Photographe] Demande de droits photographe\" class=\"btn btn-"
"secondary btn-sm\">Devenir photographe</a>" "secondary btn-sm\">Devenir photographe</a>"
#: .\photo21\templates\index.html:43 #: photo21/templates/index.html:38
msgid "Last galleries" msgid "Last galleries"
msgstr "Galeries récentes" msgstr "Galeries récentes"
#: .\photo21\templates\index.html:52 #: photo21/templates/index.html:47
msgid "Behind the scene" msgid "Behind the scene"
msgstr "Derrière la scène" msgstr "Behind the scene"
#: .\photo21\templates\index.html:54 #: photo21/templates/index.html:49
msgid "" msgid ""
"Because we value your privacy, we do not sell the data on this site, unlike " "<!-- This project if a fork of <a href=\"https://gitlab.crans.org/bde/"
"many free online platforms. The dedicated server running this website is " "photo21/\">Photo21</a>. --> <!-- Because we value your privacy, we do not "
"kindly hosted by the <a href=\"https://www.crans.org/\">Crans</a> at the ENS " "sell the data on this site, --> <!-- unlike many free online platforms. --> "
"Paris-Saclay basement. It is not managed by the Crans. Current active " "The dedicated server running this website is kindly hosted by <a "
"administrators are:" "href=\"https://sinfonie.org/\">Sinfonie</a> at the ENS Rennes. <!-- Current "
"active administrators are: --> <!--"
msgstr "" msgstr ""
"Comme nous accordons une grande importance au respect de la vie privée, nous " "<!-- Ce projet est un fork de <a href=\"https://gitlab.crans.org/bde/"
"ne vendons pas les données de ce site, contrairement à de nombreuses " "photo21/\">Photo21</a>. --> <!-- Comme nous accordons une grande importance "
"plateformes en ligne gratuites. Le serveur dédié qui fait fonctionner ce " "au respect de la vie privée, nous ne vendons pas les données de ce site, --> "
"site est gentiment hébergé par le <a href=\"https://www.crans.org/\">Crans</" "<!-- contrairement à de nombreuses plateformes en ligne gratuites. --> "
"a> au sous-sol de l'ENS Paris-Saclay. <b>Il n'est pas géré par le Crans.</b> " "Le serveur qui fait fonctionner ce site est gentiment hébergé par "
"Les administrateur·trices sont :" "<a href=\"https://sinfonie.org/\">Sinfonie</a> à l'ENS Rennes. "
"<!-- Les administrateur·trices actuel·les sont : --> <!--"
#: .\photo21\templates\index.html:63 #: photo21/templates/index.html:58
msgid "They should be contacted at" msgid "They should be contacted at"
msgstr "Ils peuvent être contactés à" msgstr "Ils peuvent être contactés à"
#: .\photo21\templates\socialaccount\connections.html:8 #: photo21/templates/socialaccount/connections.html:8
msgid "Account Connections" msgid "Account Connections"
msgstr "" msgstr "Connexions de compte"
#: .\photo21\templates\socialaccount\connections.html:25 #: photo21/templates/socialaccount/connections.html:25
msgid "" msgid ""
"You can sign in to your account using any of the following third party " "You can sign in to your account using any of the following third party "
"accounts:" "accounts:"
msgstr "" msgstr ""
"Vous pouvez vous connecter à votre compte en utilisant l'un des comptes "
"tiers suivants :"
#: .\photo21\templates\socialaccount\connections.html:53 #: photo21/templates/socialaccount/connections.html:53
msgid "" msgid ""
"You currently have no social network accounts connected to this account." "You currently have no social network accounts connected to this account."
msgstr "" msgstr ""
"Vous n'avez actuellement aucun compte de réseau social connecté à ce compte."
#: .\photo21\templates\socialaccount\connections.html:56 #: photo21/templates/socialaccount/connections.html:56
msgid "Add a 3rd Party Account" msgid "Add a 3rd Party Account"
msgstr "" msgstr "Ajouter un compte tiers"
#: .\photo21\templates\socialaccount\snippets\provider_list.html:20 #: photo21/templates/socialaccount/snippets/provider_list.html:20
msgid "Sign in with" msgid "Sign in with"
msgstr "Se Connecter avec" msgstr "Se Connecter avec"
#~ msgid ""
#~ "If you want a photo to be deleted, please let us know: <a "
#~ "href=\"mailto:photos@crans.org?subject=[ABUS] Nouvelle requête\" "
#~ "class=\"btn btn-secondary btn-sm\">Abuse request</a>"
#~ msgstr ""
#~ "Si vous souhaitez qu'une photo soit supprimée, signalez le nous : <a "
#~ "href=\"mailto:photos@crans.org?subject=[ABUS] Nouvelle requête\" "
#~ "class=\"btn btn-secondary btn-sm\">Signaler un abus</a>"

View file

@ -198,9 +198,7 @@ USE_TZ = True
# Limit available languages to this subset # Limit available languages to this subset
LANGUAGES = [ LANGUAGES = [
("de", _("German")),
("en", _("English")), ("en", _("English")),
("es", _("Spanish")),
("fr", _("French")), ("fr", _("French")),
] ]

View file

@ -2,10 +2,9 @@
// Copyright (C) 2022 Amicale des élèves de l'ENS Paris-Saclay // Copyright (C) 2022 Amicale des élèves de l'ENS Paris-Saclay
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// On language selection, submit form document.querySelectorAll('[data-lang]').forEach(btn => {
const langSelect = document.getElementsByName("language")[0]; btn.addEventListener('click', () => {
if (langSelect) { document.getElementById('lang-input').value = btn.dataset.lang;
langSelect.addEventListener("change", (e) => { document.getElementById('lang-form').submit();
e.target.form.submit();
}); });
} });

View file

@ -56,6 +56,21 @@ SPDX-License-Identifier: GPL-3.0-or-later
{% endif %} {% endif %}
</ul> </ul>
<ul class="navbar-nav"> <ul class="navbar-nav">
{% get_available_languages as LANGUAGES %}
<li class="nav-item dropdown">
<button class="btn nav-link dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
{{ LANGUAGE_CODE|upper }}
</button>
<ul class="dropdown-menu dropdown-menu-end">
{% for lang_code, lang_name in LANGUAGES %}
<li>
<button class="dropdown-item{% if lang_code == LANGUAGE_CODE %} active{% endif %}" type="button" data-lang="{{ lang_code }}">
{{ lang_name }}
</button>
</li>
{% endfor %}
</ul>
</li>
{% if request.user.is_authenticated %} {% if request.user.is_authenticated %}
<li class="nav-item"> <li class="nav-item">
{% url 'account_email' as url %} {% url 'account_email' as url %}
@ -112,26 +127,18 @@ SPDX-License-Identifier: GPL-3.0-or-later
{% endblock %} {% endblock %}
</main> </main>
<footer> <footer>
<form action="{% url 'set_language' %}" method="post">
{% csrf_token %}
<p class="small text-center text-muted mt-1"> <p class="small text-center text-muted mt-1">
{% if request.user.is_authenticated %} {% if request.user.is_authenticated %}
{% trans "Connected as" %} <code>{{ request.user.username }}</code> &middot; {% trans "Connected as" %} <code>{{ request.user.username }}</code> &middot;
{% endif %} {% endif %}
<a class="text-reset" href="https://github.com/krek0/photo21">{% trans "Source code" %}</a> &middot; <a class="text-reset" href="https://git.sinfonie.org/sinfonie/photo26">{% trans "Source code" %}</a>
<!-- <select title="language" name="language" class="lang-select"> -->
<!-- {% get_current_language as LANGUAGE_CODE %} -->
<!-- {% get_available_languages as LANGUAGES %} -->
<!-- {% for lang_code, lang_name in LANGUAGES %} -->
<!-- <option value="{{ lang_code }}" {% if lang_code == LANGUAGE_CODE %}selected{% endif %}> -->
<!-- {{ lang_name }} ({{ lang_code }}) -->
<!-- </option> -->
<!-- {% endfor %} -->
<!-- </select> -->
<noscript><input type="submit"></noscript>
</p> </p>
</form>
</footer> </footer>
<form id="lang-form" action="{% url 'set_language' %}" method="post" hidden>
{% csrf_token %}
<input type="hidden" name="language" id="lang-input">
<input type="hidden" name="next" value="{{ request.path }}">
</form>
<script src="{% static "lang-select.js" %}"></script> <script src="{% static "lang-select.js" %}"></script>
<script src="{% static "bootstrap5/js/bootstrap.bundle.min.js" %}"></script> <script src="{% static "bootstrap5/js/bootstrap.bundle.min.js" %}"></script>

View file

@ -47,11 +47,11 @@ SPDX-License-Identifier: GPL-3.0-or-later
<h3 class="mt-4">{% trans "Behind the scene" %}</h3> <h3 class="mt-4">{% trans "Behind the scene" %}</h3>
<p> <p>
{% blocktrans trimmed %} {% blocktrans trimmed %}
This project if a fork of <a href="https://gitlab.crans.org/bde/photo21/">Photo21</a>. <!-- This project if a fork of <a href="https://gitlab.crans.org/bde/photo21/">Photo21</a>. -->
Because we value your privacy, we do not sell the data on this site, <!-- Because we value your privacy, we do not sell the data on this site, -->
unlike many free online platforms. <!-- unlike many free online platforms. -->
<!-- The dedicated server running this website is kindly hosted by --> The dedicated server running this website is kindly hosted by
<!-- <a href="https://sinfonie.org/">Sinfonie</a> at the ENS Rennes. --> <a href="https://sinfonie.org/">Sinfonie</a> at the ENS Rennes.
<!-- Current active administrators are: --> <!-- Current active administrators are: -->
<!-- {% endblocktrans %} --> <!-- {% endblocktrans %} -->
<!-- {% for user in superusers %} <code>{{ user.username }}</code>{% endfor %}. --> <!-- {% for user in superusers %} <code>{{ user.username }}</code>{% endfor %}. -->

View file

@ -10,7 +10,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Photologue\n" "Project-Id-Version: Photologue\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-05 15:30+0100\n" "POT-Creation-Date: 2026-05-03 21:01+0000\n"
"PO-Revision-Date: 2017-12-03 14:47+0000\n" "PO-Revision-Date: 2017-12-03 14:47+0000\n"
"Last-Translator: Richard Barran <richard@arbee-design.co.uk>\n" "Last-Translator: Richard Barran <richard@arbee-design.co.uk>\n"
"Language-Team: French (http://www.transifex.com/richardbarran/django-" "Language-Team: French (http://www.transifex.com/richardbarran/django-"
@ -21,24 +21,23 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: .\photologue\admin.py:26 .\photologue\models.py:168 #: photologue/admin.py:25 photologue/models.py:168 photologue/models.py:802
#: .\photologue\models.py:786
msgid "tags" msgid "tags"
msgstr "balises" msgstr "balises"
#: .\photologue\admin.py:63 .\photologue\forms.py:68 #: photologue/admin.py:62 photologue/forms.py:69
msgid "Gallery" msgid "Gallery"
msgstr "Galerie" msgstr "Galerie"
#: .\photologue\admin.py:67 .\photologue\models.py:529 #: photologue/admin.py:66 photologue/models.py:542
msgid "owner" msgid "owner"
msgstr "propriétaire" msgstr "propriétaire"
#: .\photologue\forms.py:70 #: photologue/forms.py:71
msgid "-- Create a new gallery --" msgid "-- Create a new gallery --"
msgstr "-- Créer une nouvelle galerie --" msgstr "-- Créer une nouvelle galerie --"
#: .\photologue\forms.py:72 #: photologue/forms.py:73
msgid "" msgid ""
"Select a gallery to add these images to. Leave this empty to create a new " "Select a gallery to add these images to. Leave this empty to create a new "
"gallery from the supplied title." "gallery from the supplied title."
@ -46,117 +45,108 @@ msgstr ""
"Sélectionner une galerie à laquelle ajouter ces images. Laisser ce champ " "Sélectionner une galerie à laquelle ajouter ces images. Laisser ce champ "
"vide pour créer une nouvelle galerie à partir du titre indiqué." "vide pour créer une nouvelle galerie à partir du titre indiqué."
#: .\photologue\forms.py:77 #: photologue/forms.py:78
msgid "New gallery title" msgid "New gallery title"
msgstr "Titre de la nouvelle galerie" msgstr "Titre de la nouvelle galerie"
#: .\photologue\forms.py:82 #: photologue/forms.py:83
msgid "New gallery event start date" msgid "New gallery event start date"
msgstr "Date de début de l'évènement de la nouvelle galerie" msgstr "Date de début de l'évènement de la nouvelle galerie"
#: .\photologue\forms.py:87 #: photologue/forms.py:89
msgid "New gallery event end date" msgid "New gallery event end date"
msgstr "Date de fin de l'évènement de la nouvelle galerie" msgstr "Date de fin de l'évènement de la nouvelle galerie"
#: .\photologue\forms.py:93 #: photologue/forms.py:96
#, fuzzy #, fuzzy
#| msgid "description" #| msgid "description"
msgid "Description" msgid "Description"
msgstr "description" msgstr "description"
#: .\photologue\forms.py:98 #: photologue/forms.py:101
msgid "New gallery tags" msgid "New gallery tags"
msgstr "Balises de la nouvelle galerie" msgstr "Balises de la nouvelle galerie"
#: .\photologue\forms.py:101 #: photologue/forms.py:129 photologue/templates/photologue/upload.html:8
msgid "" #: photologue/templates/photologue/upload.html:17
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
msgstr ""
#: .\photologue\forms.py:120 .\photologue\templates\photologue\upload.html:8
#: .\photologue\templates\photologue\upload.html:15
msgid "Upload" msgid "Upload"
msgstr "Télécharger" msgstr "Télécharger"
#: .\photologue\forms.py:126 #: photologue/forms.py:141
msgid "A gallery with that title already exists."
msgstr "Une galerie portant ce nom existe déjà."
#: .\photologue\forms.py:138
msgid "Select an existing gallery, or enter a title for a new gallery." msgid "Select an existing gallery, or enter a title for a new gallery."
msgstr "" msgstr ""
"Sélectionner une galerie existante ou entrer un titre pour une nouvelle " "Sélectionner une galerie existante ou entrer un titre pour une nouvelle "
"galerie." "galerie."
#: .\photologue\models.py:88 #: photologue/models.py:88
msgid "Very Low" msgid "Very Low"
msgstr "Très Bas" msgstr "Très Bas"
#: .\photologue\models.py:89 #: photologue/models.py:89
msgid "Low" msgid "Low"
msgstr "Bas" msgstr "Bas"
#: .\photologue\models.py:90 #: photologue/models.py:90
msgid "Medium-Low" msgid "Medium-Low"
msgstr "Moyen-Bas" msgstr "Moyen-Bas"
#: .\photologue\models.py:91 #: photologue/models.py:91
msgid "Medium" msgid "Medium"
msgstr "Moyen" msgstr "Moyen"
#: .\photologue\models.py:92 #: photologue/models.py:92
msgid "Medium-High" msgid "Medium-High"
msgstr "Moyen-Haut" msgstr "Moyen-Haut"
#: .\photologue\models.py:93 #: photologue/models.py:93
msgid "High" msgid "High"
msgstr "Haut" msgstr "Haut"
#: .\photologue\models.py:94 #: photologue/models.py:94
msgid "Very High" msgid "Very High"
msgstr "Très Haut" msgstr "Très Haut"
#: .\photologue\models.py:99 #: photologue/models.py:99
msgid "Top" msgid "Top"
msgstr "Sommet" msgstr "Sommet"
#: .\photologue\models.py:100 #: photologue/models.py:100
msgid "Right" msgid "Right"
msgstr "Droite" msgstr "Droite"
#: .\photologue\models.py:101 #: photologue/models.py:101
msgid "Bottom" msgid "Bottom"
msgstr "Bas" msgstr "Bas"
#: .\photologue\models.py:102 #: photologue/models.py:102
msgid "Left" msgid "Left"
msgstr "Gauche" msgstr "Gauche"
#: .\photologue\models.py:103 #: photologue/models.py:103
msgid "Center (Default)" msgid "Center (Default)"
msgstr "Centré (par défaut)" msgstr "Centré (par défaut)"
#: .\photologue\models.py:107 #: photologue/models.py:107
msgid "Flip left to right" msgid "Flip left to right"
msgstr "Inversion de gauche à droite" msgstr "Inversion de gauche à droite"
#: .\photologue\models.py:108 #: photologue/models.py:108
msgid "Flip top to bottom" msgid "Flip top to bottom"
msgstr "Inversion de haut en bas" msgstr "Inversion de haut en bas"
#: .\photologue\models.py:109 #: photologue/models.py:109
msgid "Rotate 90 degrees counter-clockwise" msgid "Rotate 90 degrees counter-clockwise"
msgstr "Rotation de 90 degrés dans le sens anti-horloger" msgstr "Rotation de 90 degrés dans le sens anti-horloger"
#: .\photologue\models.py:110 #: photologue/models.py:110
msgid "Rotate 90 degrees clockwise" msgid "Rotate 90 degrees clockwise"
msgstr "Rotation de 90 degrés dans le sens horloger" msgstr "Rotation de 90 degrés dans le sens horloger"
#: .\photologue\models.py:111 #: photologue/models.py:111
msgid "Rotate 180 degrees" msgid "Rotate 180 degrees"
msgstr "Rotation de 180 degrés" msgstr "Rotation de 180 degrés"
#: .\photologue\models.py:125 #: photologue/models.py:125
#, python-format #, python-format
msgid "" msgid ""
"Chain multiple filters using the following pattern \"FILTER_ONE->FILTER_TWO-" "Chain multiple filters using the following pattern \"FILTER_ONE->FILTER_TWO-"
@ -167,116 +157,119 @@ msgstr ""
">FILTRE_DEUX->FILTRE_TROIS\". Les filtres d'image seront appliqués dans " ">FILTRE_DEUX->FILTRE_TROIS\". Les filtres d'image seront appliqués dans "
"l'ordre. Les filtres suivants sont disponibles: %s." "l'ordre. Les filtres suivants sont disponibles: %s."
#: .\photologue\models.py:148 .\photologue\models.py:517 #: photologue/models.py:148 photologue/models.py:530
msgid "title" msgid "title"
msgstr "titre" msgstr "titre"
#: .\photologue\models.py:150 #: photologue/models.py:150
msgid "title slug" msgid "title slug"
msgstr "version abrégée du titre" msgstr "version abrégée du titre"
#: .\photologue\models.py:153 .\photologue\models.py:522 #: photologue/models.py:153 photologue/models.py:535 photologue/models.py:796
#: .\photologue\models.py:780
msgid "A \"slug\" is a unique URL-friendly title for an object." msgid "A \"slug\" is a unique URL-friendly title for an object."
msgstr "" msgstr ""
"Un \"slug\" est un titre abrégé et unique, compatible avec les URL, pour un " "Un \"slug\" est un titre abrégé et unique, compatible avec les URL, pour un "
"objet." "objet."
#: .\photologue\models.py:157 #: photologue/models.py:157
msgid "start date" msgid "start date"
msgstr "date de début" msgstr "date de début"
#: .\photologue\models.py:162 #: photologue/models.py:162
msgid "end date" msgid "end date"
msgstr "date de fin" msgstr "date de fin"
#: .\photologue\models.py:164 #: photologue/models.py:164
msgid "description" msgid "description"
msgstr "description" msgstr "description"
#: .\photologue\models.py:174 .\photologue\models.py:548 #: photologue/models.py:174 photologue/models.py:561
msgid "photos" msgid "photos"
msgstr "photos" msgstr "photos"
#: .\photologue\models.py:181 #: photologue/models.py:178
msgid "public token"
msgstr ""
#: photologue/models.py:188
msgid "gallery" msgid "gallery"
msgstr "galerie" msgstr "galerie"
#: .\photologue\models.py:182 #: photologue/models.py:189
msgid "galleries" msgid "galleries"
msgstr "galleries" msgstr "galleries"
#: .\photologue\models.py:214 #: photologue/models.py:221
msgid "count" msgid "count"
msgstr "nombre" msgstr "nombre"
#: .\photologue\models.py:215 #: photologue/models.py:222
msgid "private count" msgid "private count"
msgstr "nombre de photos privées" msgstr "nombre de photos privées"
#: .\photologue\models.py:220 #: photologue/models.py:227
msgid "image" msgid "image"
msgstr "image" msgstr "image"
#: .\photologue\models.py:223 #: photologue/models.py:236
msgid "date taken" msgid "date taken"
msgstr "date de prise de vue" msgstr "date de prise de vue"
#: .\photologue\models.py:226 #: photologue/models.py:239
msgid "Date image was taken; is obtained from the image EXIF data." msgid "Date image was taken; is obtained from the image EXIF data."
msgstr "" msgstr ""
"La date à laquelle l'image a été prise ; obtenue à partir des données EXIF " "La date à laquelle l'image a été prise ; obtenue à partir des données EXIF "
"de l'image." "de l'image."
#: .\photologue\models.py:228 #: photologue/models.py:241
msgid "view count" msgid "view count"
msgstr "nombre" msgstr "nombre"
#: .\photologue\models.py:230 #: photologue/models.py:243
msgid "crop from" msgid "crop from"
msgstr "découper à partir de" msgstr "découper à partir de"
#: .\photologue\models.py:254 #: photologue/models.py:267
msgid "An \"admin_thumbnail\" photo size has not been defined." msgid "An \"admin_thumbnail\" photo size has not been defined."
msgstr "Une taille de photo \"admin_thumbnail\" n'a pas encore été définie." msgstr "Une taille de photo \"admin_thumbnail\" n'a pas encore été définie."
#: .\photologue\models.py:267 #: photologue/models.py:280
msgid "Thumbnail" msgid "Thumbnail"
msgstr "Miniature" msgstr "Miniature"
#: .\photologue\models.py:519 .\photologue\models.py:779 #: photologue/models.py:532 photologue/models.py:795
msgid "slug" msgid "slug"
msgstr "libellé court" msgstr "libellé court"
#: .\photologue\models.py:524 #: photologue/models.py:537
msgid "caption" msgid "caption"
msgstr "légende" msgstr "légende"
#: .\photologue\models.py:525 #: photologue/models.py:538
msgid "date added" msgid "date added"
msgstr "date d'ajout" msgstr "date d'ajout"
#: .\photologue\models.py:534 #: photologue/models.py:547
msgid "license" msgid "license"
msgstr "licence" msgstr "licence"
#: .\photologue\models.py:537 #: photologue/models.py:550
msgid "is public" msgid "is public"
msgstr "est public" msgstr "est public"
#: .\photologue\models.py:539 #: photologue/models.py:552
msgid "Public photographs will be displayed in the default views." msgid "Public photographs will be displayed in the default views."
msgstr "Les photographies publique seront affichées dans les vues par défaut." msgstr "Les photographies publique seront affichées dans les vues par défaut."
#: .\photologue\models.py:547 #: photologue/models.py:560
msgid "photo" msgid "photo"
msgstr "photo" msgstr "photo"
#: .\photologue\models.py:610 .\photologue\models.py:774 #: photologue/models.py:626 photologue/models.py:790
msgid "name" msgid "name"
msgstr "nom" msgstr "nom"
#: .\photologue\models.py:614 #: photologue/models.py:630
msgid "" msgid ""
"Photo size name should contain only letters, numbers and underscores. " "Photo size name should contain only letters, numbers and underscores. "
"Examples: \"thumbnail\", \"display\", \"small\", \"main_page_widget\"." "Examples: \"thumbnail\", \"display\", \"small\", \"main_page_widget\"."
@ -285,41 +278,41 @@ msgstr ""
"chiffres et des caractères de soulignement. Exemples: \"miniature\", " "chiffres et des caractères de soulignement. Exemples: \"miniature\", "
"\"affichage\", \"petit\", \"widget_page_principale\"." "\"affichage\", \"petit\", \"widget_page_principale\"."
#: .\photologue\models.py:626 #: photologue/models.py:642
msgid "width" msgid "width"
msgstr "largeur" msgstr "largeur"
#: .\photologue\models.py:629 #: photologue/models.py:645
msgid "" msgid ""
"If width is set to \"0\" the image will be scaled to the supplied height." "If width is set to \"0\" the image will be scaled to the supplied height."
msgstr "" msgstr ""
"Si la largeur est réglée à \"0\" l l'image sera redimensionnée par rapport à " "Si la largeur est réglée à \"0\" l l'image sera redimensionnée par rapport à "
"la hauteur fournie." "la hauteur fournie."
#: .\photologue\models.py:633 #: photologue/models.py:649
msgid "height" msgid "height"
msgstr "hauteur" msgstr "hauteur"
#: .\photologue\models.py:636 #: photologue/models.py:652
msgid "" msgid ""
"If height is set to \"0\" the image will be scaled to the supplied width" "If height is set to \"0\" the image will be scaled to the supplied width"
msgstr "" msgstr ""
"Si la hauteur est réglée à \"0\" l l'image sera redimensionnée par rapport à " "Si la hauteur est réglée à \"0\" l l'image sera redimensionnée par rapport à "
"la largeur fournie." "la largeur fournie."
#: .\photologue\models.py:640 #: photologue/models.py:656
msgid "quality" msgid "quality"
msgstr "qualité" msgstr "qualité"
#: .\photologue\models.py:643 #: photologue/models.py:659
msgid "JPEG image quality." msgid "JPEG image quality."
msgstr "Qualité JPEG de l'image." msgstr "Qualité JPEG de l'image."
#: .\photologue\models.py:646 #: photologue/models.py:662
msgid "upscale images?" msgid "upscale images?"
msgstr "agrandir les images ?" msgstr "agrandir les images ?"
#: .\photologue\models.py:649 #: photologue/models.py:665
msgid "" msgid ""
"If selected the image will be scaled up if necessary to fit the supplied " "If selected the image will be scaled up if necessary to fit the supplied "
"dimensions. Cropped sizes will be upscaled regardless of this setting." "dimensions. Cropped sizes will be upscaled regardless of this setting."
@ -328,11 +321,11 @@ msgstr ""
"dimensions fournies. Les dimensions ajustées seront agrandies sans prendre " "dimensions fournies. Les dimensions ajustées seront agrandies sans prendre "
"en compte ce paramètre." "en compte ce paramètre."
#: .\photologue\models.py:655 #: photologue/models.py:671
msgid "crop to fit?" msgid "crop to fit?"
msgstr "découper pour adapter à la taille ?" msgstr "découper pour adapter à la taille ?"
#: .\photologue\models.py:658 #: photologue/models.py:674
msgid "" msgid ""
"If selected the image will be scaled and cropped to fit the supplied " "If selected the image will be scaled and cropped to fit the supplied "
"dimensions." "dimensions."
@ -340,21 +333,21 @@ msgstr ""
"Si sélectionné l'image sera redimensionnée et recadrée pour coïncider avec " "Si sélectionné l'image sera redimensionnée et recadrée pour coïncider avec "
"les dimensions fournies." "les dimensions fournies."
#: .\photologue\models.py:663 #: photologue/models.py:679
msgid "pre-cache?" msgid "pre-cache?"
msgstr "mise en cache ?" msgstr "mise en cache ?"
#: .\photologue\models.py:666 #: photologue/models.py:682
msgid "If selected this photo size will be pre-cached as photos are added." msgid "If selected this photo size will be pre-cached as photos are added."
msgstr "" msgstr ""
"Si sélectionné cette taille de photo sera mise en cache au moment au les " "Si sélectionné cette taille de photo sera mise en cache au moment au les "
"photos sont ajoutées." "photos sont ajoutées."
#: .\photologue\models.py:670 #: photologue/models.py:686
msgid "increment view count?" msgid "increment view count?"
msgstr "incrémenter le nombre d'affichages ?" msgstr "incrémenter le nombre d'affichages ?"
#: .\photologue\models.py:673 #: photologue/models.py:689
msgid "" msgid ""
"If selected the image's \"view_count\" will be incremented when this photo " "If selected the image's \"view_count\" will be incremented when this photo "
"size is displayed." "size is displayed."
@ -362,79 +355,95 @@ msgstr ""
"Si sélectionné le \"view_count\" (nombre d'affichage) de l'image sera " "Si sélectionné le \"view_count\" (nombre d'affichage) de l'image sera "
"incrémenté quand cette taille de photo sera affichée." "incrémenté quand cette taille de photo sera affichée."
#: .\photologue\models.py:680 #: photologue/models.py:696
msgid "photo size" msgid "photo size"
msgstr "taille de la photo" msgstr "taille de la photo"
#: .\photologue\models.py:681 #: photologue/models.py:697
msgid "photo sizes" msgid "photo sizes"
msgstr "tailles des photos" msgstr "tailles des photos"
#: .\photologue\models.py:699 #: photologue/models.py:715
msgid "Can only crop photos if both width and height dimensions are set." msgid "Can only crop photos if both width and height dimensions are set."
msgstr "" msgstr ""
"La hauteur et la largeur doivent être toutes les deux définies pour " "La hauteur et la largeur doivent être toutes les deux définies pour "
"retailler des photos." "retailler des photos."
#: .\photologue\models.py:785 #: photologue/models.py:801
msgid "tag" msgid "tag"
msgstr "" msgstr ""
#: .\photologue\templates\photologue\gallery_archive.html:9 #: photologue/templates/photologue/gallery_archive.html:9
msgid "Latest photo galleries" msgid "Latest photo galleries"
msgstr "Dernières galeries de photos" msgstr "Dernières galeries de photos"
#: .\photologue\templates\photologue\gallery_archive.html:14 #: photologue/templates/photologue/gallery_archive.html:14
#: .\photologue\templates\photologue\gallery_archive_year.html:14 #: photologue/templates/photologue/gallery_archive_year.html:14
msgid "Filter by year" msgid "Filter by year"
msgstr "Filtrer par année" msgstr "Filtrer par année"
#: .\photologue\templates\photologue\gallery_archive.html:31 #: photologue/templates/photologue/gallery_archive.html:31
msgid "No galleries were found" msgid "No galleries were found"
msgstr "Aucune galerie trouvée" msgstr "Aucune galerie trouvée"
#: .\photologue\templates\photologue\gallery_archive_year.html:9 #: photologue/templates/photologue/gallery_archive_year.html:9
#, python-format #, python-format
msgid "Galleries for %(show_year)s" msgid "Galleries for %(show_year)s"
msgstr "Galeries de %(show_year)s" msgstr "Galeries de %(show_year)s"
#: .\photologue\templates\photologue\gallery_archive_year.html:31 #: photologue/templates/photologue/gallery_archive_year.html:31
msgid "No galleries were found." msgid "No galleries were found."
msgstr "Aucune galerie trouvée." msgstr "Aucune galerie trouvée."
#: .\photologue\templates\photologue\gallery_detail.html:42 #: photologue/templates/photologue/gallery_detail.html:48
msgid "to" msgid "to"
msgstr "au" msgstr "au"
#: .\photologue\templates\photologue\gallery_detail.html:59 #: photologue/templates/photologue/gallery_detail.html:53
msgid "Public link:"
msgstr ""
#: photologue/templates/photologue/gallery_detail.html:55
msgid "Copy"
msgstr ""
#: photologue/templates/photologue/gallery_detail.html:56
msgid "Revoke"
msgstr ""
#: photologue/templates/photologue/gallery_detail.html:59
msgid "Generate public link"
msgstr ""
#: photologue/templates/photologue/gallery_detail.html:78
msgid "All pictures" msgid "All pictures"
msgstr "Toutes les photos" msgstr "Toutes les photos"
#: .\photologue\templates\photologue\gallery_detail.html:85 #: photologue/templates/photologue/gallery_detail.html:106
msgid "Download all gallery" msgid "Download all gallery"
msgstr "Télécharger toute la galerie" msgstr "Télécharger toute la galerie"
#: .\photologue\templates\photologue\photo_confirm_delete.html:9 #: photologue/templates/photologue/photo_confirm_delete.html:9
#: .\photologue\templates\photologue\photo_confirm_delete.html:14 #: photologue/templates/photologue/photo_confirm_delete.html:14
msgid "Delete confirmation" msgid "Delete confirmation"
msgstr "Confirmation de la suppression" msgstr "Confirmation de la suppression"
#: .\photologue\templates\photologue\photo_confirm_delete.html:17 #: photologue/templates/photologue/photo_confirm_delete.html:17
#, python-format #, python-format
msgid "Are you sure you want to delete <code>%(object)s</code>?" msgid "Are you sure you want to delete <code>%(object)s</code>?"
msgstr "Es tu sure que tu veux supprimer <code>%(object)s</code> ?" msgstr "Es tu sure que tu veux supprimer <code>%(object)s</code> ?"
#: .\photologue\templates\photologue\photo_confirm_delete.html:22 #: photologue/templates/photologue/photo_confirm_delete.html:22
#: .\photologue\templates\photologue\photo_confirm_report.html:22 #: photologue/templates/photologue/photo_confirm_report.html:22
msgid "Confirm" msgid "Confirm"
msgstr "Confimer" msgstr "Confimer"
#: .\photologue\templates\photologue\photo_confirm_report.html:9 #: photologue/templates/photologue/photo_confirm_report.html:9
#: .\photologue\templates\photologue\photo_confirm_report.html:14 #: photologue/templates/photologue/photo_confirm_report.html:14
msgid "Report confirmation" msgid "Report confirmation"
msgstr "Raporter la confirmation" msgstr "Raporter la confirmation"
#: .\photologue\templates\photologue\photo_confirm_report.html:17 #: photologue/templates/photologue/photo_confirm_report.html:17
#, python-format #, python-format
msgid "" msgid ""
"Are you sure you want to report <code>%(object)s</code>? This photo will no " "Are you sure you want to report <code>%(object)s</code>? This photo will no "
@ -443,14 +452,17 @@ msgstr ""
"Es-tu sur de signaler <code>%(object)s</code>? Cette photo ne va plus être " "Es-tu sur de signaler <code>%(object)s</code>? Cette photo ne va plus être "
"publique, et les administrateur vont être notifiés." "publique, et les administrateur vont être notifiés."
#: .\photologue\templates\photologue\photo_detail.html:15 #: photologue/templates/photologue/photo_detail.html:15
msgid "Published" msgid "Published"
msgstr "Publiée le" msgstr "Publiée le"
#: .\photologue\templates\photologue\upload.html:20 #: photologue/templates/photologue/upload.html:22
msgid "Drag and drop photos here" msgid "Drag and drop photos here"
msgstr "Glissez et déposez les photos ici" msgstr "Glissez et déposez les photos ici"
#: .\photologue\templates\photologue\upload.html:24 #: photologue/templates/photologue/upload.html:26
msgid "Owner will be" msgid "Owner will be"
msgstr "Le propriétaire sera" msgstr "Le propriétaire sera"
#~ msgid "A gallery with that title already exists."
#~ msgstr "Une galerie portant ce nom existe déjà."