Merge branch 'erdnaxe_dec2022' into 'master'
End of year fixes See merge request bde/photo21!28
This commit is contained in:
commit
b3bc9651e4
21 changed files with 721 additions and 758 deletions
167
README.md
167
README.md
|
|
@ -1,149 +1,80 @@
|
||||||
# Serveur photos 2021
|
# Photo server 2021-2023
|
||||||
|
|
||||||
[](https://www.gnu.org/licenses/gpl-3.0.txt)
|
[](https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
|
||||||
Le serveur photos est un projet Django permettant de gérer les photos de la vie
|
This is the source code for the webserver hosting pictures from the
|
||||||
associative de l'ENS Paris-Saclay.
|
ENS Paris-Saclay student life.
|
||||||
|
|
||||||
## Table des matières
|
The philosophy of this project is to keep this code as simple as possible to
|
||||||
|
run and to maintain.
|
||||||
|
|
||||||
- [Installation d'une instance de développement](#installation-dune-instance-de-développement)
|
## Setup
|
||||||
- [Installation d'une instance de production](#installation-dune-instance-de-production)
|
|
||||||
|
|
||||||
## Installation d'une instance de développement
|
1. **Dependency installation.**
|
||||||
|
If you are not using Debian, please feel free to adapt the following instructions.
|
||||||
L'instance de développement installe la majorité des dépendances dans un environnement Python isolé.
|
|
||||||
Bien que cela permette de créer une instance sur toutes les distributions,
|
|
||||||
**cela veut dire que vos dépendances ne seront pas mises à jour automatiquement.**
|
|
||||||
|
|
||||||
1. **Installation des dépendances de la distribution.**
|
|
||||||
Il y a quelques dépendances qui ne sont pas trouvable dans PyPI.
|
|
||||||
On donne ci-dessous l'exemple pour une distribution basée sur Debian, mais vous pouvez facilement adapter pour ArchLinux ou autre.
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ sudo apt update
|
sudo apt install git gettext python3-django python3-django-allauth python3-django-crispy-forms python3-docutils python3-exifread python3-pil
|
||||||
$ sudo apt install --no-install-recommends -y \
|
|
||||||
ipython3 python3-setuptools python3-venv python3-dev \
|
# Only for production
|
||||||
gettext git
|
sudo apt install nginx uwsgi uwsgi-plugin-python3 python3-certbot-nginx
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **Clonage du dépot** là où vous voulez :
|
2. **Cloning.**
|
||||||
|
Change directory to where you want the project to be.
|
||||||
|
In production, we usually use `/var/www/photos/` as the `root` user.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ git clone git@gitlab.crans.org:bde/photo21.git && cd photo21
|
git clone https://gitlab.crans.org/bde/photo21.git && cd photo21
|
||||||
```
|
```
|
||||||
|
|
||||||
3. **Création d'un environment de travail Python décorrélé du système.**
|
3. **Configuration (production only).**
|
||||||
On n'utilise pas `--system-site-packages` ici pour ne pas avoir des clashs de versions de modules avec le système.
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ python3 -m venv env
|
# Only for production
|
||||||
$ source env/bin/activate # entrer dans l'environnement
|
sudo mkdir static media
|
||||||
(env)$ pip3 install -r requirements.txt
|
sudo chown www-data:www-data -R static media
|
||||||
(env)$ deactivate # sortir de l'environnement
|
sudo chmod g+rwx -R static media
|
||||||
|
sudo cp docs/uwsgi_photos.ini /etc/uwsgi/apps-available/uwsgi_photos.ini
|
||||||
|
sudo ln -s /etc/uwsgi/apps-available/uwsgi_photos.ini /etc/uwsgi/apps-enabled/
|
||||||
|
sudo cp docs/nginx_photos /etc/nginx/sites-available/photos.crans.org
|
||||||
|
sudo ln -s /etc/nginx/sites-available/photos.crans.org /etc/nginx/sites-enabled/
|
||||||
|
sudo cp docs/letsencrypt_photos.crans.org /etc/letsencrypt/conf.d/photos.crans.org
|
||||||
|
sudo cp docs/renewal-hooks_post_nginx /etc/letsencrypt/renewal-hooks/post/nginx
|
||||||
|
sudo certbot --config /etc/letsencrypt/conf.d/photos.crans.org.ini certonly
|
||||||
```
|
```
|
||||||
|
|
||||||
4. **Migrations et chargement des données initiales.**
|
4. **Database (production only).**
|
||||||
Pour initialiser la base de données avec de quoi travailler.
|
In development, you may use SQLite (no setup).
|
||||||
|
In production, we use PostgreSQL which require a bit of setup:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
(env)$ ./manage.py compilemessages
|
sudo apt install postgresql postgresql-contrib
|
||||||
(env)$ ./manage.py migrate
|
sudo -u postgres psql
|
||||||
(env)$ ./manage.py loaddata initial
|
|
||||||
(env)$ ./manage.py createsuperuser # Création d'un utilisateur initial
|
|
||||||
```
|
|
||||||
|
|
||||||
6. **Activation du mode déboguage.**
|
|
||||||
Dans `photo21/settings.py`, changer `DEBUG` à `True`.
|
|
||||||
|
|
||||||
7. Enjoy :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
(env)$ ./manage.py runserver 0.0.0.0:8000
|
|
||||||
```
|
|
||||||
|
|
||||||
En mettant `0.0.0.0:8000` après `runserver`, vous rendez votre instance Django
|
|
||||||
accessible depuis l'ensemble de votre réseau, pratique pour tester le rendu
|
|
||||||
de la note sur un téléphone !
|
|
||||||
|
|
||||||
## Installation d'une instance de production
|
|
||||||
|
|
||||||
**En production on souhaite utiliser les modules Python packagées
|
|
||||||
dans le gestionnaire de paquet.** Cela permet de mettre à jour facilement les
|
|
||||||
dépendances critiques telles que Django. L'installation d'une instance de
|
|
||||||
production néccessite **une installation de Debian Bullseye ou plus récent**.
|
|
||||||
|
|
||||||
1. **Installation des dépendances APT.**
|
|
||||||
On tire les dépendances le plus possible à partir des dépôts de Debian.
|
|
||||||
|
|
||||||
```
|
|
||||||
$ sudo apt install nginx git gettext uwsgi uwsgi-plugin-python3 python3-venv \
|
|
||||||
python3-certbot-nginx python3-django python3-django-crispy-forms \
|
|
||||||
python3-pil python3-exifread python3-django-allauth python3-docutils
|
|
||||||
```
|
|
||||||
|
|
||||||
2. **Clonage du dépot dans `/var/www/photos/photo21`**
|
|
||||||
|
|
||||||
```
|
|
||||||
# on se place dans /var/www/photos/
|
|
||||||
$ sudo git clone https://gitlab.crans.org/bde/photo21.git && cd photo21
|
|
||||||
$ sudo mkdir static media
|
|
||||||
$ sudo chown www-data:www-data -R static media
|
|
||||||
$ sudo chmod g+rwx -R static media
|
|
||||||
```
|
|
||||||
|
|
||||||
3. **Configuration de UWSGI, NGINX et Let's Encrypt.**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ sudo cp docs/uwsgi_photos.ini /etc/uwsgi/apps-available/uwsgi_photos.ini
|
|
||||||
$ sudo ln -s /etc/uwsgi/apps-available/uwsgi_photos.ini /etc/uwsgi/apps-enabled/
|
|
||||||
$ sudo cp docs/nginx_photos /etc/nginx/sites-available/photos.crans.org
|
|
||||||
$ sudo ln -s /etc/nginx/sites-available/photos.crans.org /etc/nginx/sites-enabled/
|
|
||||||
$ sudo cp docs/letsencrypt_photos.crans.org /etc/letsencrypt/conf.d/photos.crans.org
|
|
||||||
$ sudo cp docs/renewal-hooks_post_nginx /etc/letsencrypt/renewal-hooks/post/nginx
|
|
||||||
$ sudo certbot --config /etc/letsencrypt/conf.d/photos.crans.org.ini certonly
|
|
||||||
```
|
|
||||||
|
|
||||||
4. **Base de données.**
|
|
||||||
En production on utilise PostgreSQL.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ sudo apt install postgresql postgresql-contrib
|
|
||||||
$ sudo -u postgres psql
|
|
||||||
postgres=# CREATE USER photo21 WITH PASSWORD 'un_mot_de_passe_sur';
|
postgres=# CREATE USER photo21 WITH PASSWORD 'un_mot_de_passe_sur';
|
||||||
postgres=# CREATE DATABASE photo21 OWNER photo21;
|
postgres=# CREATE DATABASE photo21 OWNER photo21;
|
||||||
```
|
```
|
||||||
|
|
||||||
5. **Migrations et collecte des fichiers statiques**,
|
5. **Initialization.**,
|
||||||
|
In production, please use `www-data` user.
|
||||||
|
|
||||||
```
|
```
|
||||||
$ sudo -u www-data ./manage.py collectstatic
|
./manage.py collectstatic
|
||||||
$ sudo -u www-data ./manage.py check
|
./manage.py check
|
||||||
$ sudo -u www-data ./manage.py migrate
|
./manage.py migrate
|
||||||
$ sudo -u www-data ./manage.py loaddata initial
|
./manage.py compilemessages
|
||||||
$ sudo ./manage.py compilemessages
|
|
||||||
|
# Only when creating a new database
|
||||||
|
./manage.py loaddata initial
|
||||||
|
./manage.py createsuperuser
|
||||||
|
# change DEBUG to True in photo21/settings.py
|
||||||
```
|
```
|
||||||
|
|
||||||
6. *Enjoy \o/*
|
6. *Enjoy \o/*
|
||||||
|
|
||||||
## Documentation
|
In production, the NGINX site should now work.
|
||||||
|
In development, you can launch the development server using:
|
||||||
|
|
||||||
La documentation des classes et fonctions est directement dans le code et est explorable à partir de la partie documentation de l'interface d'administration de Django.
|
```bash
|
||||||
**Commentez votre code !**
|
(env)$ ./manage.py runserver
|
||||||
|
```
|
||||||
## FAQ
|
|
||||||
|
|
||||||
### Regénérer les fichiers de traduction
|
|
||||||
|
|
||||||
Pour regénérer les traductions vous pouvez vous placer à la racine du projet et lancer le script `makemessages`.
|
|
||||||
Il faut penser à ignorer les dossiers ne contenant pas notre code, dont le virtualenv.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
python3 manage.py makemessages -i env
|
|
||||||
```
|
|
||||||
|
|
||||||
Une fois les fichiers édités, vous pouvez compiler les nouvelles traductions avec
|
|
||||||
|
|
||||||
```bash
|
|
||||||
python3 manage.py compilemessages
|
|
||||||
```
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-01-30 09:55+0000\n"
|
"POT-Creation-Date: 2022-12-25 23:02+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
@ -17,259 +17,242 @@ 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"
|
||||||
|
|
||||||
#: photo21/forms.py:12
|
#: photo21/forms.py:16
|
||||||
msgid ""
|
msgid ""
|
||||||
"Please enter a valid email address ending with `@crans.org` or `@ens-paris-"
|
"Please enter a valid email address ending with `@crans.org` or `@ens-paris-"
|
||||||
"saclay.fr`."
|
"saclay.fr`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/forms.py:23
|
#: photo21/forms.py:29
|
||||||
msgid "Must end with `@crans.org` or `@ens-paris-saclay.fr`."
|
msgid "Must end with `@crans.org` or `@ens-paris-saclay.fr`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/hashers.py:42
|
#: photo21/settings.py:151
|
||||||
msgid "algorithm"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photo21/hashers.py:43
|
|
||||||
msgid "salt"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photo21/hashers.py:44
|
|
||||||
msgid "hash"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photo21/settings.py:161
|
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:162
|
#: photo21/settings.py:152
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:163
|
#: photo21/settings.py:153
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:164
|
#: photo21/settings.py:154
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/400.html:10
|
#: photo21/templates/400.html:12
|
||||||
msgid "Bad request"
|
msgid "Bad request"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/400.html:14
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/403.html:10
|
#: photo21/templates/403.html:12
|
||||||
msgid "Permission denied"
|
msgid "Permission denied"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/403.html:13
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/403.html:15 photo21/templates/404.html:19
|
#: photo21/templates/403.html:17 photo21/templates/404.html:21
|
||||||
msgid "Exception message:"
|
msgid "Exception message:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/404.html:10
|
#: photo21/templates/404.html:12
|
||||||
msgid "Page not found"
|
msgid "Page not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/404.html:14
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/500.html:10
|
#: photo21/templates/500.html:12
|
||||||
msgid "Server error"
|
msgid "Server error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/500.html:14
|
#: 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 now drink a beer."
|
"soon. You can now drink a beer."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:6
|
#: photo21/templates/account/email.html:8
|
||||||
#: photo21/templates/account/email.html:14
|
#: photo21/templates/account/email.html:16
|
||||||
#: photo21/templates/socialaccount/connections.html:14
|
#: photo21/templates/socialaccount/connections.html:16
|
||||||
msgid "E-mail Addresses"
|
msgid "E-mail Addresses"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:9 photo21/templates/base.html:59
|
#: photo21/templates/account/email.html:11 photo21/templates/base.html:63
|
||||||
#: photo21/templates/socialaccount/connections.html:9
|
#: photo21/templates/socialaccount/connections.html:11
|
||||||
msgid "Account"
|
msgid "Account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:17
|
#: photo21/templates/account/email.html:19
|
||||||
#: photo21/templates/socialaccount/connections.html:17
|
#: photo21/templates/socialaccount/connections.html:19
|
||||||
msgid "Social connections"
|
msgid "Social connections"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:23
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:34
|
#: photo21/templates/account/email.html:36
|
||||||
msgid "Verified"
|
msgid "Verified"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:36
|
#: photo21/templates/account/email.html:38
|
||||||
msgid "Unverified"
|
msgid "Unverified"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:38
|
#: photo21/templates/account/email.html:40
|
||||||
msgid "Primary"
|
msgid "Primary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:44
|
#: photo21/templates/account/email.html:46
|
||||||
msgid "Make Primary"
|
msgid "Make Primary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:45
|
#: photo21/templates/account/email.html:47
|
||||||
msgid "Re-send Verification"
|
msgid "Re-send Verification"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:46
|
#: photo21/templates/account/email.html:48
|
||||||
#: photo21/templates/socialaccount/connections.html:45
|
#: photo21/templates/socialaccount/connections.html:47
|
||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:51
|
#: photo21/templates/account/email.html:53
|
||||||
msgid "Warning:"
|
msgid "Warning:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:51
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:55
|
#: photo21/templates/account/email.html:57
|
||||||
msgid "Add E-mail Address"
|
msgid "Add E-mail Address"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:60
|
#: photo21/templates/account/email.html:62
|
||||||
msgid "Add E-mail"
|
msgid "Add E-mail"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:68
|
#: photo21/templates/account/login.html:8
|
||||||
msgid "Do you really want to remove the selected e-mail address?"
|
#: photo21/templates/account/login.html:36
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:6
|
|
||||||
#: photo21/templates/account/login.html:11
|
|
||||||
#: photo21/templates/account/login.html:39
|
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:16
|
#: 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 href="
|
"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:"
|
"\"%(signup_url)s\">sign up</a> for a %(site_name)s account and sign in below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:24
|
#: photo21/templates/account/login.html:26
|
||||||
msgid "or"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:30
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you have not created an account yet, then please <a href=\"%(signup_url)s"
|
"If you have not created an account yet, then please <a href=\"%(signup_url)s"
|
||||||
"\">sign up</a> first."
|
"\">sign up</a> first."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:40
|
#: photo21/templates/account/login.html:39
|
||||||
msgid "Forgot Password?"
|
msgid "Forgot Password?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:44
|
#: 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 ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/logout.html:6
|
#: photo21/templates/account/logout.html:8
|
||||||
#: photo21/templates/account/logout.html:11
|
#: photo21/templates/account/logout.html:13
|
||||||
#: photo21/templates/account/logout.html:20
|
#: photo21/templates/account/logout.html:22
|
||||||
msgid "Sign Out"
|
msgid "Sign Out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/logout.html:14
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/account/signup.html:6
|
#: photo21/templates/account/signup.html:8
|
||||||
msgid "Signup"
|
msgid "Signup"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/signup.html:11
|
#: photo21/templates/account/signup.html:13
|
||||||
#: photo21/templates/account/signup.html:22
|
#: photo21/templates/account/signup.html:24
|
||||||
msgid "Sign Up"
|
msgid "Sign Up"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/signup.html:14
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:12
|
#: photo21/templates/base.html:16
|
||||||
msgid "The ENS Paris-Saclay pictures server."
|
msgid "The ENS Paris-Saclay pictures server."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:37
|
#: photo21/templates/base.html:41
|
||||||
msgid "Galleries"
|
msgid "Galleries"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:42
|
#: photo21/templates/base.html:46
|
||||||
msgid "Upload"
|
msgid "Upload"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:47
|
#: photo21/templates/base.html:51
|
||||||
msgid "Manage"
|
msgid "Manage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:68
|
#: photo21/templates/base.html:72
|
||||||
msgid "Log out"
|
msgid "Log out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:78
|
#: photo21/templates/base.html:82
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:87
|
#: photo21/templates/base.html:91
|
||||||
msgid "Sign up"
|
msgid "Sign up"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:109
|
#: photo21/templates/base.html:116
|
||||||
|
msgid "Connected as"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photo21/templates/base.html:118
|
||||||
msgid "Source code"
|
msgid "Source code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:6
|
#: photo21/templates/index.html:8
|
||||||
msgid "Home"
|
msgid "Home"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:9
|
#: photo21/templates/index.html:11
|
||||||
msgid "Welcome to the pictures server!"
|
msgid "Welcome to the pictures server!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:11
|
#: 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-Saclay or involving its students."
|
"life of ENS Paris-Saclay or involving its students."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:18
|
#: 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 "
|
||||||
|
|
@ -278,47 +261,60 @@ msgid ""
|
||||||
"republication on another platform. </b>"
|
"republication on another platform. </b>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:27
|
#: photo21/templates/index.html:29
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you want a photo to be deleted, please let us know: <a href=\"mailto:"
|
"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-dark btn-"
|
"photos@crans.org?subject=[ABUS] Nouvelle requête\" class=\"btn btn-secondary "
|
||||||
"sm\">Abuse request</a>"
|
"btn-sm\">Abuse request</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:33
|
#: 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:photos@crans.org?subject=[Photographe] Demande de droits "
|
||||||
"photographe\" class=\"btn btn-dark btn-sm\">Become a photograph</a>"
|
"photographe\" class=\"btn btn-secondary btn-sm\">Become a photograph</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:39
|
#: photo21/templates/index.html:43
|
||||||
msgid "Last galleries"
|
msgid "Last galleries"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:50
|
#: photo21/templates/index.html:52
|
||||||
msgid "Connected as"
|
msgid "Behind the scene"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:53
|
#: photo21/templates/index.html:54
|
||||||
msgid "Select another language:"
|
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 ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/socialaccount/connections.html:6
|
#: photo21/templates/index.html:63
|
||||||
|
msgid "They should be contacted at"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photo21/templates/socialaccount/connections.html:8
|
||||||
msgid "Account Connections"
|
msgid "Account Connections"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/socialaccount/connections.html:23
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/socialaccount/connections.html:51
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/socialaccount/connections.html:54
|
#: photo21/templates/socialaccount/connections.html:56
|
||||||
msgid "Add a 3rd Party Account"
|
msgid "Add a 3rd Party Account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: photo21/templates/socialaccount/snippets/provider_list.html:20
|
||||||
|
msgid "Sign in with"
|
||||||
|
msgstr ""
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-01-30 09:55+0000\n"
|
"POT-Creation-Date: 2022-12-25 23:02+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
@ -16,259 +16,242 @@ msgstr ""
|
||||||
"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"
|
||||||
|
|
||||||
#: photo21/forms.py:12
|
#: photo21/forms.py:16
|
||||||
msgid ""
|
msgid ""
|
||||||
"Please enter a valid email address ending with `@crans.org` or `@ens-paris-"
|
"Please enter a valid email address ending with `@crans.org` or `@ens-paris-"
|
||||||
"saclay.fr`."
|
"saclay.fr`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/forms.py:23
|
#: photo21/forms.py:29
|
||||||
msgid "Must end with `@crans.org` or `@ens-paris-saclay.fr`."
|
msgid "Must end with `@crans.org` or `@ens-paris-saclay.fr`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/hashers.py:42
|
#: photo21/settings.py:151
|
||||||
msgid "algorithm"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photo21/hashers.py:43
|
|
||||||
msgid "salt"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photo21/hashers.py:44
|
|
||||||
msgid "hash"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photo21/settings.py:161
|
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:162
|
#: photo21/settings.py:152
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:163
|
#: photo21/settings.py:153
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:164
|
#: photo21/settings.py:154
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/400.html:10
|
#: photo21/templates/400.html:12
|
||||||
msgid "Bad request"
|
msgid "Bad request"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/400.html:14
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/403.html:10
|
#: photo21/templates/403.html:12
|
||||||
msgid "Permission denied"
|
msgid "Permission denied"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/403.html:13
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/403.html:15 photo21/templates/404.html:19
|
#: photo21/templates/403.html:17 photo21/templates/404.html:21
|
||||||
msgid "Exception message:"
|
msgid "Exception message:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/404.html:10
|
#: photo21/templates/404.html:12
|
||||||
msgid "Page not found"
|
msgid "Page not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/404.html:14
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/500.html:10
|
#: photo21/templates/500.html:12
|
||||||
msgid "Server error"
|
msgid "Server error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/500.html:14
|
#: 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 now drink a beer."
|
"soon. You can now drink a beer."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:6
|
#: photo21/templates/account/email.html:8
|
||||||
#: photo21/templates/account/email.html:14
|
#: photo21/templates/account/email.html:16
|
||||||
#: photo21/templates/socialaccount/connections.html:14
|
#: photo21/templates/socialaccount/connections.html:16
|
||||||
msgid "E-mail Addresses"
|
msgid "E-mail Addresses"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:9 photo21/templates/base.html:59
|
#: photo21/templates/account/email.html:11 photo21/templates/base.html:63
|
||||||
#: photo21/templates/socialaccount/connections.html:9
|
#: photo21/templates/socialaccount/connections.html:11
|
||||||
msgid "Account"
|
msgid "Account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:17
|
#: photo21/templates/account/email.html:19
|
||||||
#: photo21/templates/socialaccount/connections.html:17
|
#: photo21/templates/socialaccount/connections.html:19
|
||||||
msgid "Social connections"
|
msgid "Social connections"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:23
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:34
|
#: photo21/templates/account/email.html:36
|
||||||
msgid "Verified"
|
msgid "Verified"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:36
|
#: photo21/templates/account/email.html:38
|
||||||
msgid "Unverified"
|
msgid "Unverified"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:38
|
#: photo21/templates/account/email.html:40
|
||||||
msgid "Primary"
|
msgid "Primary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:44
|
#: photo21/templates/account/email.html:46
|
||||||
msgid "Make Primary"
|
msgid "Make Primary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:45
|
#: photo21/templates/account/email.html:47
|
||||||
msgid "Re-send Verification"
|
msgid "Re-send Verification"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:46
|
#: photo21/templates/account/email.html:48
|
||||||
#: photo21/templates/socialaccount/connections.html:45
|
#: photo21/templates/socialaccount/connections.html:47
|
||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:51
|
#: photo21/templates/account/email.html:53
|
||||||
msgid "Warning:"
|
msgid "Warning:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:51
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:55
|
#: photo21/templates/account/email.html:57
|
||||||
msgid "Add E-mail Address"
|
msgid "Add E-mail Address"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:60
|
#: photo21/templates/account/email.html:62
|
||||||
msgid "Add E-mail"
|
msgid "Add E-mail"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:68
|
#: photo21/templates/account/login.html:8
|
||||||
msgid "Do you really want to remove the selected e-mail address?"
|
#: photo21/templates/account/login.html:36
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:6
|
|
||||||
#: photo21/templates/account/login.html:11
|
|
||||||
#: photo21/templates/account/login.html:39
|
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:16
|
#: 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 href="
|
"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:"
|
"\"%(signup_url)s\">sign up</a> for a %(site_name)s account and sign in below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:24
|
#: photo21/templates/account/login.html:26
|
||||||
msgid "or"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:30
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you have not created an account yet, then please <a href=\"%(signup_url)s"
|
"If you have not created an account yet, then please <a href=\"%(signup_url)s"
|
||||||
"\">sign up</a> first."
|
"\">sign up</a> first."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:40
|
#: photo21/templates/account/login.html:39
|
||||||
msgid "Forgot Password?"
|
msgid "Forgot Password?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:44
|
#: 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 ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/logout.html:6
|
#: photo21/templates/account/logout.html:8
|
||||||
#: photo21/templates/account/logout.html:11
|
#: photo21/templates/account/logout.html:13
|
||||||
#: photo21/templates/account/logout.html:20
|
#: photo21/templates/account/logout.html:22
|
||||||
msgid "Sign Out"
|
msgid "Sign Out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/logout.html:14
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/account/signup.html:6
|
#: photo21/templates/account/signup.html:8
|
||||||
msgid "Signup"
|
msgid "Signup"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/signup.html:11
|
#: photo21/templates/account/signup.html:13
|
||||||
#: photo21/templates/account/signup.html:22
|
#: photo21/templates/account/signup.html:24
|
||||||
msgid "Sign Up"
|
msgid "Sign Up"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/signup.html:14
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:12
|
#: photo21/templates/base.html:16
|
||||||
msgid "The ENS Paris-Saclay pictures server."
|
msgid "The ENS Paris-Saclay pictures server."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:37
|
#: photo21/templates/base.html:41
|
||||||
msgid "Galleries"
|
msgid "Galleries"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:42
|
#: photo21/templates/base.html:46
|
||||||
msgid "Upload"
|
msgid "Upload"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:47
|
#: photo21/templates/base.html:51
|
||||||
msgid "Manage"
|
msgid "Manage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:68
|
#: photo21/templates/base.html:72
|
||||||
msgid "Log out"
|
msgid "Log out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:78
|
#: photo21/templates/base.html:82
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:87
|
#: photo21/templates/base.html:91
|
||||||
msgid "Sign up"
|
msgid "Sign up"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:109
|
#: photo21/templates/base.html:116
|
||||||
|
msgid "Connected as"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photo21/templates/base.html:118
|
||||||
msgid "Source code"
|
msgid "Source code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:6
|
#: photo21/templates/index.html:8
|
||||||
msgid "Home"
|
msgid "Home"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:9
|
#: photo21/templates/index.html:11
|
||||||
msgid "Welcome to the pictures server!"
|
msgid "Welcome to the pictures server!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:11
|
#: 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-Saclay or involving its students."
|
"life of ENS Paris-Saclay or involving its students."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:18
|
#: 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 "
|
||||||
|
|
@ -277,47 +260,60 @@ msgid ""
|
||||||
"republication on another platform. </b>"
|
"republication on another platform. </b>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:27
|
#: photo21/templates/index.html:29
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you want a photo to be deleted, please let us know: <a href=\"mailto:"
|
"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-dark btn-"
|
"photos@crans.org?subject=[ABUS] Nouvelle requête\" class=\"btn btn-secondary "
|
||||||
"sm\">Abuse request</a>"
|
"btn-sm\">Abuse request</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:33
|
#: 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:photos@crans.org?subject=[Photographe] Demande de droits "
|
||||||
"photographe\" class=\"btn btn-dark btn-sm\">Become a photograph</a>"
|
"photographe\" class=\"btn btn-secondary btn-sm\">Become a photograph</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:39
|
#: photo21/templates/index.html:43
|
||||||
msgid "Last galleries"
|
msgid "Last galleries"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:50
|
#: photo21/templates/index.html:52
|
||||||
msgid "Connected as"
|
msgid "Behind the scene"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/index.html:53
|
#: photo21/templates/index.html:54
|
||||||
msgid "Select another language:"
|
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 ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/socialaccount/connections.html:6
|
#: photo21/templates/index.html:63
|
||||||
|
msgid "They should be contacted at"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photo21/templates/socialaccount/connections.html:8
|
||||||
msgid "Account Connections"
|
msgid "Account Connections"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/socialaccount/connections.html:23
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/socialaccount/connections.html:51
|
#: 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 ""
|
||||||
|
|
||||||
#: photo21/templates/socialaccount/connections.html:54
|
#: photo21/templates/socialaccount/connections.html:56
|
||||||
msgid "Add a 3rd Party Account"
|
msgid "Add a 3rd Party Account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: photo21/templates/socialaccount/snippets/provider_list.html:20
|
||||||
|
msgid "Sign in with"
|
||||||
|
msgstr ""
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-04-17 09:13+0000\n"
|
"POT-Creation-Date: 2022-12-25 23:02+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
@ -29,31 +29,19 @@ msgstr ""
|
||||||
msgid "Must end with `@crans.org` or `@ens-paris-saclay.fr`."
|
msgid "Must end with `@crans.org` or `@ens-paris-saclay.fr`."
|
||||||
msgstr "Doit finir par `@crans.org` ou `@ens-paris-saclay.fr`."
|
msgstr "Doit finir par `@crans.org` ou `@ens-paris-saclay.fr`."
|
||||||
|
|
||||||
#: photo21/hashers.py:48
|
#: photo21/settings.py:151
|
||||||
msgid "algorithm"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photo21/hashers.py:49
|
|
||||||
msgid "salt"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photo21/hashers.py:50
|
|
||||||
msgid "hash"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photo21/settings.py:157
|
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:158
|
#: photo21/settings.py:152
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:159
|
#: photo21/settings.py:153
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:160
|
#: photo21/settings.py:154
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -107,7 +95,7 @@ msgstr ""
|
||||||
msgid "E-mail Addresses"
|
msgid "E-mail Addresses"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:11 photo21/templates/base.html:64
|
#: photo21/templates/account/email.html:11 photo21/templates/base.html:63
|
||||||
#: photo21/templates/socialaccount/connections.html:11
|
#: photo21/templates/socialaccount/connections.html:11
|
||||||
msgid "Account"
|
msgid "Account"
|
||||||
msgstr "Compte"
|
msgstr "Compte"
|
||||||
|
|
@ -158,19 +146,18 @@ msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/email.html:57
|
#: photo21/templates/account/email.html:57
|
||||||
msgid "Add E-mail Address"
|
msgid "Add E-mail Address"
|
||||||
msgstr ""
|
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 ""
|
msgstr "Ajouter un E-mail"
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:8
|
#: photo21/templates/account/login.html:8
|
||||||
#: photo21/templates/account/login.html:13
|
#: photo21/templates/account/login.html:36
|
||||||
#: photo21/templates/account/login.html:41
|
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr ""
|
msgstr "Se Connecter"
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:18
|
#: 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 href="
|
"Please sign in with one of your existing third party accounts. Or, <a href="
|
||||||
|
|
@ -181,10 +168,6 @@ msgstr ""
|
||||||
"identifiez-vous ci-dessous :"
|
"identifiez-vous ci-dessous :"
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:26
|
#: photo21/templates/account/login.html:26
|
||||||
msgid "or"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:32
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you have not created an account yet, then please <a href=\"%(signup_url)s"
|
"If you have not created an account yet, then please <a href=\"%(signup_url)s"
|
||||||
|
|
@ -193,11 +176,11 @@ msgstr ""
|
||||||
"Si vous n'avez pas déjà créé de compte, veuillez vous <a href="
|
"Si vous n'avez pas déjà créé de compte, veuillez vous <a href="
|
||||||
"\"%(signup_url)s\">inscrire</a>."
|
"\"%(signup_url)s\">inscrire</a>."
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:42
|
#: photo21/templates/account/login.html:39
|
||||||
msgid "Forgot Password?"
|
msgid "Forgot Password?"
|
||||||
msgstr ""
|
msgstr "Mot de passe oublié ?"
|
||||||
|
|
||||||
#: photo21/templates/account/login.html:46
|
#: 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 à"
|
||||||
|
|
||||||
|
|
@ -230,35 +213,35 @@ msgstr ""
|
||||||
msgid "The ENS Paris-Saclay pictures server."
|
msgid "The ENS Paris-Saclay pictures server."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:42
|
#: photo21/templates/base.html:41
|
||||||
msgid "Galleries"
|
msgid "Galleries"
|
||||||
msgstr "Galeries"
|
msgstr "Galeries"
|
||||||
|
|
||||||
#: photo21/templates/base.html:47
|
#: photo21/templates/base.html:46
|
||||||
msgid "Upload"
|
msgid "Upload"
|
||||||
msgstr "Téléversement"
|
msgstr "Téléversement"
|
||||||
|
|
||||||
#: photo21/templates/base.html:52
|
#: photo21/templates/base.html:51
|
||||||
msgid "Manage"
|
msgid "Manage"
|
||||||
msgstr "Gestion"
|
msgstr "Gestion"
|
||||||
|
|
||||||
#: photo21/templates/base.html:73
|
#: photo21/templates/base.html:72
|
||||||
msgid "Log out"
|
msgid "Log out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:83
|
#: photo21/templates/base.html:82
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/base.html:92
|
#: photo21/templates/base.html:91
|
||||||
msgid "Sign up"
|
msgid "Sign up"
|
||||||
msgstr "Inscription"
|
msgstr "Inscription"
|
||||||
|
|
||||||
#: photo21/templates/base.html:117
|
#: photo21/templates/base.html:116
|
||||||
msgid "Connected as"
|
msgid "Connected as"
|
||||||
msgstr "Connecté en tant que"
|
msgstr "Connecté en tant que"
|
||||||
|
|
||||||
#: photo21/templates/base.html:119
|
#: photo21/templates/base.html:118
|
||||||
msgid "Source code"
|
msgid "Source code"
|
||||||
msgstr "Code source"
|
msgstr "Code source"
|
||||||
|
|
||||||
|
|
@ -294,23 +277,23 @@ msgstr ""
|
||||||
#: photo21/templates/index.html:29
|
#: photo21/templates/index.html:29
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you want a photo to be deleted, please let us know: <a href=\"mailto:"
|
"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-dark btn-"
|
"photos@crans.org?subject=[ABUS] Nouvelle requête\" class=\"btn btn-secondary "
|
||||||
"sm\">Abuse request</a>"
|
"btn-sm\">Abuse request</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si vous souhaitez qu'une photo soit supprimée, signalez le nous : <a href="
|
"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-"
|
"\"mailto:photos@crans.org?subject=[ABUS] Nouvelle requête\" class=\"btn btn-"
|
||||||
"dark btn-sm\">Signaler un abus</a>"
|
"secondary btn-sm\">Signaler un abus</a>"
|
||||||
|
|
||||||
#: photo21/templates/index.html:36
|
#: 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:photos@crans.org?subject=[Photographe] Demande de droits "
|
||||||
"photographe\" class=\"btn btn-dark 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, signalez le nous : <a href=\"mailto:photos@crans.org?"
|
||||||
"subject=[Photographe] Demande de droits photographe\" class=\"btn btn-dark "
|
"subject=[Photographe] Demande de droits photographe\" class=\"btn btn-"
|
||||||
"btn-sm\">Devenir photographe</a>"
|
"secondary btn-sm\">Devenir photographe</a>"
|
||||||
|
|
||||||
#: photo21/templates/index.html:43
|
#: photo21/templates/index.html:43
|
||||||
msgid "Last galleries"
|
msgid "Last galleries"
|
||||||
|
|
@ -357,3 +340,7 @@ msgstr ""
|
||||||
#: 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 ""
|
||||||
|
|
||||||
|
#: photo21/templates/socialaccount/snippets/provider_list.html:20
|
||||||
|
msgid "Sign in with"
|
||||||
|
msgstr "Se Connecter avec"
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
7
photo21/static/bootstrap5/js/bootstrap.bundle.min.js
vendored
Normal file
7
photo21/static/bootstrap5/js/bootstrap.bundle.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -4,6 +4,18 @@ 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
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Use dark scrollbar */
|
||||||
|
:root {
|
||||||
|
color-scheme: dark;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Bootstrap icons */
|
||||||
|
.bi {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: -0.125em;
|
||||||
|
fill: currentcolor;
|
||||||
|
}
|
||||||
|
|
||||||
/* Login view */
|
/* Login view */
|
||||||
.login {
|
.login {
|
||||||
max-width: 35rem;
|
max-width: 35rem;
|
||||||
|
|
|
||||||
|
|
@ -28,9 +28,9 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<fieldset class="blockLabels">
|
<fieldset class="blockLabels">
|
||||||
{% for emailaddress in user.emailaddress_set.all %}
|
{% for emailaddress in user.emailaddress_set.all %}
|
||||||
<div class="ctrlHolder">
|
<div class="form-check">
|
||||||
<label for="email_radio_{{forloop.counter}}" class="{% if emailaddress.primary %}primary_email{%endif%}">
|
<input class="form-check-input" id="email_radio_{{forloop.counter}}" type="radio" name="email" {% if emailaddress.primary or user.emailaddress_set.count == 1 %}checked="checked"{% endif %} value="{{ emailaddress.email }}"/>
|
||||||
<input id="email_radio_{{forloop.counter}}" type="radio" name="email" {% if emailaddress.primary or user.emailaddress_set.count == 1 %}checked="checked"{%endif %} value="{{emailaddress.email}}"/>
|
<label class="form-check-label" for="email_radio_{{forloop.counter}}">
|
||||||
{{ emailaddress.email }}
|
{{ emailaddress.email }}
|
||||||
{% if emailaddress.verified %}
|
{% if emailaddress.verified %}
|
||||||
<span class="badge bg-success">{% trans "Verified" %}</span>
|
<span class="badge bg-success">{% trans "Verified" %}</span>
|
||||||
|
|
@ -41,7 +41,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
<div class="mt-2 mb-4">
|
<div class="mt-2 mb-4">
|
||||||
<button class="btn btn-sm btn-secondary" type="submit" name="action_primary" >{% trans 'Make Primary' %}</button>
|
<button class="btn btn-sm btn-secondary" type="submit" name="action_primary" >{% trans 'Make Primary' %}</button>
|
||||||
<button class="btn btn-sm btn-secondary" type="submit" name="action_send" >{% trans 'Re-send Verification' %}</button>
|
<button class="btn btn-sm btn-secondary" type="submit" name="action_send" >{% trans 'Re-send Verification' %}</button>
|
||||||
|
|
@ -52,10 +52,10 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
{% else %}
|
{% else %}
|
||||||
<p><strong>{% trans 'Warning:'%}</strong> {% trans "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." %}</p>
|
<p><strong>{% trans 'Warning:'%}</strong> {% trans "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." %}</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if can_add_email %}
|
{% if can_add_email %}
|
||||||
<h2>{% trans "Add E-mail Address" %}</h2>
|
<h2>{% trans "Add E-mail Address" %}</h2>
|
||||||
|
|
||||||
<form method="post" action="{% url 'account_email' %}" class="add_email">
|
<form method="post" action="{% url 'account_email' %}" class="add_email">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{{ form|crispy }}
|
{{ form|crispy }}
|
||||||
|
|
|
||||||
|
|
@ -9,22 +9,16 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="card mx-auto login">
|
<div class="card mx-auto login">
|
||||||
<h3 class="card-header text-center">
|
|
||||||
{% trans "Sign In" %}
|
|
||||||
</h3>
|
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{% get_providers as socialaccount_providers %}
|
{% get_providers as socialaccount_providers %}
|
||||||
{% if socialaccount_providers %}
|
{% if socialaccount_providers %}
|
||||||
<p>{% blocktrans trimmed with site.name as site_name %}Please sign in with one
|
<div class="d-grid col-6 mx-auto">
|
||||||
of your existing third party accounts. Or, <a href="{{ signup_url }}">sign up</a>
|
|
||||||
for a {{ site_name }} account and sign in below:{% endblocktrans %}</p>
|
|
||||||
|
|
||||||
<div class="socialaccount_ballot">
|
|
||||||
<ul class="socialaccount_providers">
|
|
||||||
{% include "socialaccount/snippets/provider_list.html" with process="login" %}
|
{% include "socialaccount/snippets/provider_list.html" with process="login" %}
|
||||||
</ul>
|
|
||||||
<div class="login-or">{% trans 'or' %}</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<hr/>
|
||||||
|
<p>{% blocktrans trimmed with site.name as site_name %}Please sign in with one
|
||||||
|
of your existing third party accounts. Or, <a href="{{ signup_url }}">sign up</a>
|
||||||
|
for a {{ site_name }} account and sign in below:{% endblocktrans %}</p>
|
||||||
|
|
||||||
{% include "socialaccount/snippets/login_extra.html" %}
|
{% include "socialaccount/snippets/login_extra.html" %}
|
||||||
|
|
||||||
|
|
@ -38,9 +32,11 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
{% if redirect_field_value %}
|
{% if redirect_field_value %}
|
||||||
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
|
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<button type="submit" class="btn btn-primary mt-2">{% trans "Sign In" %}</button>
|
<div class="d-grid col-6 mx-auto">
|
||||||
<a class="btn mt-2" href="{% url 'account_reset_password' %}">{% trans "Forgot Password?" %}</a>
|
<button type="submit" class="btn btn-primary btn-lg my-2">{% trans "Sign In" %}</button>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
<a class="link-secondary" href="{% url 'account_reset_password' %}">{% trans "Forgot Password?" %}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="small text-center mt-1">{% trans "If any problem, please contact the server owners at" %} <code>photos[at]crans.org</code>.</p>
|
<p class="small text-center mt-1">{% trans "If any problem, please contact the server owners at" %} <code>photos[at]crans.org</code>.</p>
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
{% load static i18n %}
|
{% load static i18n %}
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
{% get_current_language as LANGUAGE_CODE %}{% get_current_language_bidi as LANGUAGE_BIDI %}
|
{% get_current_language as LANGUAGE_CODE %}{% get_current_language_bidi as LANGUAGE_BIDI %}
|
||||||
<html lang="{{ LANGUAGE_CODE|default:"en" }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
|
<html lang="{{ LANGUAGE_CODE|default:"en" }}"{% if LANGUAGE_BIDI %} dir="rtl"{% endif %} data-bs-theme="dark">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
@ -15,7 +15,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
<title>{% block title %}{{ title }}{% endblock title %} - {{ request.site.name }}</title>
|
<title>{% block title %}{{ title }}{% endblock title %} - {{ request.site.name }}</title>
|
||||||
<meta name="description" content="{% trans "The ENS Paris-Saclay pictures server." %}">
|
<meta name="description" content="{% trans "The ENS Paris-Saclay pictures server." %}">
|
||||||
<link rel="stylesheet" href="{% static "bootstrap5/css/bootstrap.min.css" %}">
|
<link rel="stylesheet" href="{% static "bootstrap5/css/bootstrap.min.css" %}">
|
||||||
<link rel="stylesheet" href="{% static "bootstrap5/css/bootstrap-dark-plugin.min.css" %}">
|
|
||||||
<link rel="stylesheet" href="{% static "layout.css" %}">
|
<link rel="stylesheet" href="{% static "layout.css" %}">
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="{% static "favicon-16x16.png" %}">
|
<link rel="icon" type="image/png" sizes="16x16" href="{% static "favicon-16x16.png" %}">
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="{% static "favicon-32x32.png" %}">
|
<link rel="icon" type="image/png" sizes="32x32" href="{% static "favicon-32x32.png" %}">
|
||||||
|
|
@ -23,7 +22,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
{% block extracss %}{% endblock %}
|
{% block extracss %}{% endblock %}
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<nav class="navbar navbar-expand-lg navbar-dark bg-dark py-0">
|
<nav class="navbar navbar-expand-lg bg-body-tertiary py-0">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<a class="navbar-brand" href="{% url 'index' %}">
|
<a class="navbar-brand" href="{% url 'index' %}">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 16 20">
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 16 20">
|
||||||
|
|
@ -132,7 +131,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script src="{% static "lang-select.js" %}"></script>
|
<script src="{% static "lang-select.js" %}"></script>
|
||||||
<script src="{% static "bootstrap5/js/bootstrap.min.js" %}"></script>
|
<script src="{% static "bootstrap5/js/bootstrap.bundle.min.js" %}"></script>
|
||||||
{% block extrajs %}{% endblock %}
|
{% block extrajs %}{% endblock %}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -10,33 +10,33 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h2>{% trans "Welcome to the pictures server!" %}</h2>
|
<h2>{% trans "Welcome to the pictures server!" %}</h2>
|
||||||
<p>
|
<p>
|
||||||
{% blocktranslate trimmed %}
|
{% blocktrans trimmed %}
|
||||||
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 Paris-Saclay or involving its students.
|
||||||
{% endblocktranslate %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
{% url 'photologue:pl-gallery-archive' as gallery_archive_url %}
|
{% url 'photologue:pl-gallery-archive' as gallery_archive_url %}
|
||||||
{% blocktranslate trimmed %}
|
{% blocktrans trimmed %}
|
||||||
The pictures are visible in <a href="{{ gallery_archive_url }}">the galleries</a>
|
The pictures are visible in <a href="{{ gallery_archive_url }}">the galleries</a>
|
||||||
and are downloadable.
|
and are downloadable.
|
||||||
<b>However, the agreement of the photographer and the persons present
|
<b>However, the agreement of the photographer and the persons present
|
||||||
on the photo is necessary before any republication on another platform. </b>
|
on the photo is necessary before any republication on another platform. </b>
|
||||||
{% endblocktranslate %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
{% blocktranslate trimmed %}
|
{% blocktrans trimmed %}
|
||||||
If you want a photo to be deleted, please let us know:
|
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-dark btn-sm">Abuse request</a>
|
<a href="mailto:photos@crans.org?subject=[ABUS] Nouvelle requête" class="btn btn-secondary btn-sm">Abuse request</a>
|
||||||
{% endblocktranslate %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
{% if not perms.photologue.add_photo %}
|
{% if not perms.photologue.add_photo %}
|
||||||
<p>
|
<p>
|
||||||
{% blocktranslate trimmed %}
|
{% blocktrans trimmed %}
|
||||||
If you want to obtain the right to upload pictures, please let us know:
|
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-dark btn-sm">Become a photograph</a>
|
<a href="mailto:photos@crans.org?subject=[Photographe] Demande de droits photographe" class="btn btn-secondary btn-sm">Become a photograph</a>
|
||||||
{% endblocktranslate %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
@ -51,14 +51,14 @@ 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>
|
||||||
{% blocktranslate trimmed %}
|
{% blocktrans trimmed %}
|
||||||
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
|
The dedicated server running this website is kindly hosted by the
|
||||||
<a href="https://www.crans.org/">Crans</a> at the ENS Paris-Saclay
|
<a href="https://www.crans.org/">Crans</a> at the ENS Paris-Saclay
|
||||||
basement.
|
basement.
|
||||||
It is not managed by the Crans. Current active administrators are:
|
It is not managed by the Crans. Current active administrators are:
|
||||||
{% endblocktranslate %}
|
{% endblocktrans %}
|
||||||
{% for user in superusers %} <code>{{ user.username }}</code>{% endfor %}.
|
{% for user in superusers %} <code>{{ user.username }}</code>{% endfor %}.
|
||||||
{% trans "They should be contacted at" %}
|
{% trans "They should be contacted at" %}
|
||||||
<a href="mailto:photos@crans.org">photos@crans.org</a>.
|
<a href="mailto:photos@crans.org">photos@crans.org</a>.
|
||||||
|
|
|
||||||
21
photo21/templates/socialaccount/snippets/provider_list.html
Normal file
21
photo21/templates/socialaccount/snippets/provider_list.html
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
{% comment %}
|
||||||
|
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
|
||||||
|
{% endcomment %}
|
||||||
|
{% load i18n socialaccount %}
|
||||||
|
|
||||||
|
{% get_providers as socialaccount_providers %}
|
||||||
|
|
||||||
|
{% for provider in socialaccount_providers %}
|
||||||
|
{% if provider.id == "openid" %}
|
||||||
|
{% for brand in provider.get_brands %}
|
||||||
|
<a title="{{brand.name}}"
|
||||||
|
class="btn btn-success"
|
||||||
|
href="{% provider_login_url provider.id openid=brand.openid_url process=process %}"
|
||||||
|
>{{brand.name}}</a>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
<a title="{{provider.name}}" class="btn btn-success"
|
||||||
|
href="{% provider_login_url provider.id process=process scope=scope auth_params=auth_params %}">{% trans "Sign in with" %} {{provider.name}}</a>
|
||||||
|
{% endfor %}
|
||||||
|
|
@ -11,7 +11,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: 2022-01-30 09:55+0000\n"
|
"POT-Creation-Date: 2022-12-25 23:02+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: German (http://www.transifex.com/richardbarran/django-"
|
"Language-Team: German (http://www.transifex.com/richardbarran/django-"
|
||||||
|
|
@ -22,79 +22,135 @@ 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:30 photologue/models.py:499
|
#: photologue/admin.py:26 photologue/models.py:162 photologue/models.py:772
|
||||||
|
msgid "tags"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/admin.py:50 photologue/models.py:521
|
||||||
msgid "owner"
|
msgid "owner"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue/models.py:84
|
#: photologue/forms.py:29
|
||||||
|
msgid "Gallery"
|
||||||
|
msgstr "Galerie"
|
||||||
|
|
||||||
|
#: photologue/forms.py:31
|
||||||
|
msgid "-- Create a new gallery --"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/forms.py:33
|
||||||
|
msgid ""
|
||||||
|
"Select a gallery to add these images to. Leave this empty to create a new "
|
||||||
|
"gallery from the supplied title."
|
||||||
|
msgstr ""
|
||||||
|
"Wähle eine Galerie aus, zu der diese Bilder hinzugefügt werden sollen. Lasse "
|
||||||
|
"dieses Feld leer, um eine neue Galerie mit dem angegeben Titel zu erzeugen."
|
||||||
|
|
||||||
|
#: photologue/forms.py:38
|
||||||
|
msgid "New gallery title"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/forms.py:43
|
||||||
|
msgid "New gallery event start date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/forms.py:48
|
||||||
|
msgid "New gallery event end date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/forms.py:54
|
||||||
|
msgid "New gallery tags"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/forms.py:57
|
||||||
|
msgid ""
|
||||||
|
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/forms.py:75 photologue/templates/photologue/upload.html:8
|
||||||
|
#: photologue/templates/photologue/upload.html:15
|
||||||
|
msgid "Upload"
|
||||||
|
msgstr "Hochladen"
|
||||||
|
|
||||||
|
#: photologue/forms.py:81
|
||||||
|
msgid "A gallery with that title already exists."
|
||||||
|
msgstr "Es existiert bereits eine Gallerie mit diesem Titel."
|
||||||
|
|
||||||
|
#: photologue/forms.py:93
|
||||||
|
msgid "Select an existing gallery, or enter a title for a new gallery."
|
||||||
|
msgstr ""
|
||||||
|
"Wähle eine existierende Galerie aus oder gib einen Titel für eine neue "
|
||||||
|
"Galerie ein."
|
||||||
|
|
||||||
|
#: photologue/models.py:82
|
||||||
msgid "Very Low"
|
msgid "Very Low"
|
||||||
msgstr "Sehr niedrig"
|
msgstr "Sehr niedrig"
|
||||||
|
|
||||||
#: photologue/models.py:85
|
#: photologue/models.py:83
|
||||||
msgid "Low"
|
msgid "Low"
|
||||||
msgstr "Niedrig"
|
msgstr "Niedrig"
|
||||||
|
|
||||||
#: photologue/models.py:86
|
#: photologue/models.py:84
|
||||||
msgid "Medium-Low"
|
msgid "Medium-Low"
|
||||||
msgstr "Mittel-niedrig"
|
msgstr "Mittel-niedrig"
|
||||||
|
|
||||||
#: photologue/models.py:87
|
#: photologue/models.py:85
|
||||||
msgid "Medium"
|
msgid "Medium"
|
||||||
msgstr "Mittel"
|
msgstr "Mittel"
|
||||||
|
|
||||||
#: photologue/models.py:88
|
#: photologue/models.py:86
|
||||||
msgid "Medium-High"
|
msgid "Medium-High"
|
||||||
msgstr "Mittel-hoch"
|
msgstr "Mittel-hoch"
|
||||||
|
|
||||||
#: photologue/models.py:89
|
#: photologue/models.py:87
|
||||||
msgid "High"
|
msgid "High"
|
||||||
msgstr "Hoch"
|
msgstr "Hoch"
|
||||||
|
|
||||||
#: photologue/models.py:90
|
#: photologue/models.py:88
|
||||||
msgid "Very High"
|
msgid "Very High"
|
||||||
msgstr "Sehr hoch"
|
msgstr "Sehr hoch"
|
||||||
|
|
||||||
#: photologue/models.py:95
|
#: photologue/models.py:93
|
||||||
msgid "Top"
|
msgid "Top"
|
||||||
msgstr "Oben"
|
msgstr "Oben"
|
||||||
|
|
||||||
#: photologue/models.py:96
|
#: photologue/models.py:94
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "Rechts"
|
msgstr "Rechts"
|
||||||
|
|
||||||
#: photologue/models.py:97
|
#: photologue/models.py:95
|
||||||
msgid "Bottom"
|
msgid "Bottom"
|
||||||
msgstr "Unten"
|
msgstr "Unten"
|
||||||
|
|
||||||
#: photologue/models.py:98
|
#: photologue/models.py:96
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "Links"
|
msgstr "Links"
|
||||||
|
|
||||||
#: photologue/models.py:99
|
#: photologue/models.py:97
|
||||||
msgid "Center (Default)"
|
msgid "Center (Default)"
|
||||||
msgstr "Mitte (Standard)"
|
msgstr "Mitte (Standard)"
|
||||||
|
|
||||||
#: photologue/models.py:103
|
#: photologue/models.py:101
|
||||||
msgid "Flip left to right"
|
msgid "Flip left to right"
|
||||||
msgstr "Horizontal spiegeln"
|
msgstr "Horizontal spiegeln"
|
||||||
|
|
||||||
#: photologue/models.py:104
|
#: photologue/models.py:102
|
||||||
msgid "Flip top to bottom"
|
msgid "Flip top to bottom"
|
||||||
msgstr "Vertikal spiegeln"
|
msgstr "Vertikal spiegeln"
|
||||||
|
|
||||||
#: photologue/models.py:105
|
#: photologue/models.py:103
|
||||||
msgid "Rotate 90 degrees counter-clockwise"
|
msgid "Rotate 90 degrees counter-clockwise"
|
||||||
msgstr "Um 90° nach links drehen"
|
msgstr "Um 90° nach links drehen"
|
||||||
|
|
||||||
#: photologue/models.py:106
|
#: photologue/models.py:104
|
||||||
msgid "Rotate 90 degrees clockwise"
|
msgid "Rotate 90 degrees clockwise"
|
||||||
msgstr "Um 90° nach rechts drehen"
|
msgstr "Um 90° nach rechts drehen"
|
||||||
|
|
||||||
#: photologue/models.py:107
|
#: photologue/models.py:105
|
||||||
msgid "Rotate 180 degrees"
|
msgid "Rotate 180 degrees"
|
||||||
msgstr "Um 180° drehen"
|
msgstr "Um 180° drehen"
|
||||||
|
|
||||||
#: photologue/models.py:117
|
#: photologue/models.py:119
|
||||||
#, 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-"
|
||||||
|
|
@ -105,11 +161,7 @@ msgstr ""
|
||||||
"\". Bildfilter werden nach der Reihe angewendet. Folgende Filter sind "
|
"\". Bildfilter werden nach der Reihe angewendet. Folgende Filter sind "
|
||||||
"verfügbar: %s."
|
"verfügbar: %s."
|
||||||
|
|
||||||
#: photologue/models.py:139
|
#: photologue/models.py:142 photologue/models.py:509
|
||||||
msgid "date published"
|
|
||||||
msgstr "Veröffentlichungsdatum"
|
|
||||||
|
|
||||||
#: photologue/models.py:141 photologue/models.py:485
|
|
||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr "Titel"
|
msgstr "Titel"
|
||||||
|
|
||||||
|
|
@ -117,110 +169,108 @@ msgstr "Titel"
|
||||||
msgid "title slug"
|
msgid "title slug"
|
||||||
msgstr "Kurztitel"
|
msgstr "Kurztitel"
|
||||||
|
|
||||||
#: photologue/models.py:147 photologue/models.py:491 photologue/models.py:697
|
#: photologue/models.py:147 photologue/models.py:514 photologue/models.py:766
|
||||||
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 ""
|
||||||
"Ein Kurztitel (\"slug\") ist ein eindeutiger, URL-geeigneter Titel für ein "
|
"Ein Kurztitel (\"slug\") ist ein eindeutiger, URL-geeigneter Titel für ein "
|
||||||
"Objekt."
|
"Objekt."
|
||||||
|
|
||||||
#: photologue/models.py:150
|
#: photologue/models.py:151
|
||||||
msgid "start date"
|
msgid "start date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue/models.py:155
|
#: photologue/models.py:156
|
||||||
msgid "end date"
|
msgid "end date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue/models.py:157
|
#: photologue/models.py:158
|
||||||
msgid "description"
|
msgid "description"
|
||||||
msgstr "Beschreibung"
|
msgstr "Beschreibung"
|
||||||
|
|
||||||
#: photologue/models.py:162 photologue/models.py:703
|
#: photologue/models.py:168 photologue/models.py:540
|
||||||
msgid "tags"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue/models.py:165 photologue/models.py:506
|
|
||||||
msgid "is public"
|
|
||||||
msgstr "ist öffentlich"
|
|
||||||
|
|
||||||
#: photologue/models.py:167
|
|
||||||
msgid "Public galleries will be displayed in the default views."
|
|
||||||
msgstr "Öffentliche Galerien werden in den Standard-Views angezeigt."
|
|
||||||
|
|
||||||
#: photologue/models.py:171 photologue/models.py:514
|
|
||||||
msgid "photos"
|
msgid "photos"
|
||||||
msgstr "Fotos"
|
msgstr "Fotos"
|
||||||
|
|
||||||
#: photologue/models.py:177
|
#: photologue/models.py:175
|
||||||
msgid "gallery"
|
msgid "gallery"
|
||||||
msgstr "Galerie"
|
msgstr "Galerie"
|
||||||
|
|
||||||
#: photologue/models.py:178
|
#: photologue/models.py:176
|
||||||
msgid "galleries"
|
msgid "galleries"
|
||||||
msgstr "Galerien"
|
msgstr "Galerien"
|
||||||
|
|
||||||
#: photologue/models.py:213
|
#: photologue/models.py:206
|
||||||
msgid "count"
|
msgid "count"
|
||||||
msgstr "Anzahl"
|
msgstr "Anzahl"
|
||||||
|
|
||||||
#: photologue/models.py:221
|
#: photologue/models.py:207
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "view count"
|
||||||
|
msgid "private count"
|
||||||
|
msgstr "Anzahl an Aufrufen"
|
||||||
|
|
||||||
|
#: photologue/models.py:212
|
||||||
msgid "image"
|
msgid "image"
|
||||||
msgstr "Bild"
|
msgstr "Bild"
|
||||||
|
|
||||||
#: photologue/models.py:224
|
#: photologue/models.py:215
|
||||||
msgid "date taken"
|
msgid "date taken"
|
||||||
msgstr "Aufnahmedatum"
|
msgstr "Aufnahmedatum"
|
||||||
|
|
||||||
#: photologue/models.py:227
|
#: photologue/models.py:218
|
||||||
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 ""
|
||||||
"Datum, an dem das Foto geschossen wurde; ausgelesen aus den EXIF-Daten."
|
"Datum, an dem das Foto geschossen wurde; ausgelesen aus den EXIF-Daten."
|
||||||
|
|
||||||
#: photologue/models.py:228
|
#: photologue/models.py:220
|
||||||
msgid "view count"
|
msgid "view count"
|
||||||
msgstr "Anzahl an Aufrufen"
|
msgstr "Anzahl an Aufrufen"
|
||||||
|
|
||||||
#: photologue/models.py:231
|
#: photologue/models.py:222
|
||||||
msgid "crop from"
|
msgid "crop from"
|
||||||
msgstr "Beschneiden von"
|
msgstr "Beschneiden von"
|
||||||
|
|
||||||
#: photologue/models.py:254
|
#: photologue/models.py:246
|
||||||
msgid "An \"admin_thumbnail\" photo size has not been defined."
|
msgid "An \"admin_thumbnail\" photo size has not been defined."
|
||||||
msgstr "Es ist keine Fotogröße \"admin_thumbnail\" definiert."
|
msgstr "Es ist keine Fotogröße \"admin_thumbnail\" definiert."
|
||||||
|
|
||||||
#: photologue/models.py:261
|
#: photologue/models.py:259
|
||||||
msgid "Thumbnail"
|
msgid "Thumbnail"
|
||||||
msgstr "Vorschaubild"
|
msgstr "Vorschaubild"
|
||||||
|
|
||||||
#: photologue/models.py:488 photologue/models.py:696
|
#: photologue/models.py:511 photologue/models.py:765
|
||||||
msgid "slug"
|
msgid "slug"
|
||||||
msgstr "Kurztitel"
|
msgstr "Kurztitel"
|
||||||
|
|
||||||
#: photologue/models.py:492
|
#: photologue/models.py:516
|
||||||
msgid "caption"
|
msgid "caption"
|
||||||
msgstr "Bildunterschrift"
|
msgstr "Bildunterschrift"
|
||||||
|
|
||||||
#: photologue/models.py:494
|
#: photologue/models.py:517
|
||||||
msgid "date added"
|
msgid "date added"
|
||||||
msgstr "Datum des Eintrags"
|
msgstr "Datum des Eintrags"
|
||||||
|
|
||||||
#: photologue/models.py:504
|
#: photologue/models.py:526
|
||||||
msgid "license"
|
msgid "license"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue/models.py:508
|
#: photologue/models.py:529
|
||||||
|
msgid "is public"
|
||||||
|
msgstr "ist öffentlich"
|
||||||
|
|
||||||
|
#: photologue/models.py:531
|
||||||
msgid "Public photographs will be displayed in the default views."
|
msgid "Public photographs will be displayed in the default views."
|
||||||
msgstr "Öffentliche Fotos werden in den Standard-Views angezeigt."
|
msgstr "Öffentliche Fotos werden in den Standard-Views angezeigt."
|
||||||
|
|
||||||
#: photologue/models.py:513
|
#: photologue/models.py:539
|
||||||
msgid "photo"
|
msgid "photo"
|
||||||
msgstr "Foto"
|
msgstr "Foto"
|
||||||
|
|
||||||
#: photologue/models.py:575 photologue/models.py:691
|
#: photologue/models.py:602 photologue/models.py:760
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "Name"
|
msgstr "Name"
|
||||||
|
|
||||||
#: photologue/models.py:579
|
#: photologue/models.py:606
|
||||||
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\"."
|
||||||
|
|
@ -229,41 +279,41 @@ msgstr ""
|
||||||
"enthalten. Beispiele: \"thumbnail\", \"display\", \"small\", "
|
"enthalten. Beispiele: \"thumbnail\", \"display\", \"small\", "
|
||||||
"\"main_page_widget\"."
|
"\"main_page_widget\"."
|
||||||
|
|
||||||
#: photologue/models.py:586
|
#: photologue/models.py:618
|
||||||
msgid "width"
|
msgid "width"
|
||||||
msgstr "Breite"
|
msgstr "Breite"
|
||||||
|
|
||||||
#: photologue/models.py:589
|
#: photologue/models.py:621
|
||||||
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 ""
|
||||||
"Wenn die Breite auf \"0\" gesetzt ist, wird das Bild proportional auf die "
|
"Wenn die Breite auf \"0\" gesetzt ist, wird das Bild proportional auf die "
|
||||||
"angebene Höhe skaliert."
|
"angebene Höhe skaliert."
|
||||||
|
|
||||||
#: photologue/models.py:590
|
#: photologue/models.py:625
|
||||||
msgid "height"
|
msgid "height"
|
||||||
msgstr "Höhe"
|
msgstr "Höhe"
|
||||||
|
|
||||||
#: photologue/models.py:593
|
#: photologue/models.py:628
|
||||||
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 ""
|
||||||
"Wenn die Höhe auf \"0\" gesetzt ist, wird das Bild proportional auf die "
|
"Wenn die Höhe auf \"0\" gesetzt ist, wird das Bild proportional auf die "
|
||||||
"angebene Breite skaliert."
|
"angebene Breite skaliert."
|
||||||
|
|
||||||
#: photologue/models.py:594
|
#: photologue/models.py:632
|
||||||
msgid "quality"
|
msgid "quality"
|
||||||
msgstr "Qualität"
|
msgstr "Qualität"
|
||||||
|
|
||||||
#: photologue/models.py:597
|
#: photologue/models.py:635
|
||||||
msgid "JPEG image quality."
|
msgid "JPEG image quality."
|
||||||
msgstr "JPEG-Bildqualität"
|
msgstr "JPEG-Bildqualität"
|
||||||
|
|
||||||
#: photologue/models.py:598
|
#: photologue/models.py:638
|
||||||
msgid "upscale images?"
|
msgid "upscale images?"
|
||||||
msgstr "Bilder hochskalieren?"
|
msgstr "Bilder hochskalieren?"
|
||||||
|
|
||||||
#: photologue/models.py:600
|
#: photologue/models.py:641
|
||||||
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."
|
||||||
|
|
@ -272,32 +322,32 @@ msgstr ""
|
||||||
"Beschnittene Größen werden unabhängig von dieser Einstellung bei Bedarf "
|
"Beschnittene Größen werden unabhängig von dieser Einstellung bei Bedarf "
|
||||||
"hochskaliert."
|
"hochskaliert."
|
||||||
|
|
||||||
#: photologue/models.py:604
|
#: photologue/models.py:647
|
||||||
msgid "crop to fit?"
|
msgid "crop to fit?"
|
||||||
msgstr "Zuschneiden?"
|
msgstr "Zuschneiden?"
|
||||||
|
|
||||||
#: photologue/models.py:606
|
#: photologue/models.py:650
|
||||||
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."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Soll das Bild auf das angegebene Format skaliert und beschnitten werden?"
|
"Soll das Bild auf das angegebene Format skaliert und beschnitten werden?"
|
||||||
|
|
||||||
#: photologue/models.py:608
|
#: photologue/models.py:655
|
||||||
msgid "pre-cache?"
|
msgid "pre-cache?"
|
||||||
msgstr "Vorausspeichern?"
|
msgstr "Vorausspeichern?"
|
||||||
|
|
||||||
#: photologue/models.py:610
|
#: photologue/models.py:658
|
||||||
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 ""
|
||||||
"Soll diese Bildgröße im Voraus gespeichert (pre-cached) werden, wenn Fotos "
|
"Soll diese Bildgröße im Voraus gespeichert (pre-cached) werden, wenn Fotos "
|
||||||
"hinzugefügt werden?"
|
"hinzugefügt werden?"
|
||||||
|
|
||||||
#: photologue/models.py:611
|
#: photologue/models.py:662
|
||||||
msgid "increment view count?"
|
msgid "increment view count?"
|
||||||
msgstr "Bildzähler?"
|
msgstr "Bildzähler?"
|
||||||
|
|
||||||
#: photologue/models.py:613
|
#: photologue/models.py:665
|
||||||
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."
|
||||||
|
|
@ -305,127 +355,92 @@ msgstr ""
|
||||||
"Soll der Ansichts-Zähler (view-count) hochgezählt werden, wenn ein Foto "
|
"Soll der Ansichts-Zähler (view-count) hochgezählt werden, wenn ein Foto "
|
||||||
"dieser Größe angezeigt wird?"
|
"dieser Größe angezeigt wird?"
|
||||||
|
|
||||||
#: photologue/models.py:618
|
#: photologue/models.py:672
|
||||||
msgid "photo size"
|
msgid "photo size"
|
||||||
msgstr "Foto-Größe"
|
msgstr "Foto-Größe"
|
||||||
|
|
||||||
#: photologue/models.py:619
|
#: photologue/models.py:673
|
||||||
msgid "photo sizes"
|
msgid "photo sizes"
|
||||||
msgstr "Foto-Größen"
|
msgstr "Foto-Größen"
|
||||||
|
|
||||||
#: photologue/models.py:636
|
#: photologue/models.py:691
|
||||||
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 ""
|
||||||
"Fotos können nur zugeschnitten werden, wenn Breite und Höhe angegeben sind."
|
"Fotos können nur zugeschnitten werden, wenn Breite und Höhe angegeben sind."
|
||||||
|
|
||||||
#: photologue/models.py:702
|
#: photologue/models.py:771
|
||||||
msgid "tag"
|
msgid "tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:22
|
#: photologue/templates/photologue/gallery_archive.html:9
|
||||||
msgid "Gallery"
|
|
||||||
msgstr "Galerie"
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:24
|
|
||||||
msgid "-- Create a new gallery --"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:25
|
|
||||||
msgid ""
|
|
||||||
"Select a gallery to add these images to. Leave this empty to create a new "
|
|
||||||
"gallery from the supplied title."
|
|
||||||
msgstr ""
|
|
||||||
"Wähle eine Galerie aus, zu der diese Bilder hinzugefügt werden sollen. Lasse "
|
|
||||||
"dieses Feld leer, um eine neue Galerie mit dem angegeben Titel zu erzeugen."
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:29
|
|
||||||
msgid "New gallery title"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:34
|
|
||||||
msgid "New gallery event start date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:39
|
|
||||||
msgid "New gallery event end date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:45
|
|
||||||
msgid "New gallery tags"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:47
|
|
||||||
msgid ""
|
|
||||||
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:64
|
|
||||||
#: photologue_custom/templates/photologue/upload.html:6
|
|
||||||
#: photologue_custom/templates/photologue/upload.html:73
|
|
||||||
msgid "Upload"
|
|
||||||
msgstr "Hochladen"
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:70
|
|
||||||
msgid "A gallery with that title already exists."
|
|
||||||
msgstr "Es existiert bereits eine Gallerie mit diesem Titel."
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:79
|
|
||||||
msgid "Select an existing gallery, or enter a title for a new gallery."
|
|
||||||
msgstr ""
|
|
||||||
"Wähle eine existierende Galerie aus oder gib einen Titel für eine neue "
|
|
||||||
"Galerie ein."
|
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive.html:7
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive.html:12
|
|
||||||
msgid "Latest photo galleries"
|
msgid "Latest photo galleries"
|
||||||
msgstr "Aktuelle Fotogalerien"
|
msgstr "Aktuelle Fotogalerien"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive.html:18
|
#: photologue/templates/photologue/gallery_archive.html:14
|
||||||
|
#: photologue/templates/photologue/gallery_archive_year.html:14
|
||||||
msgid "Filter by year"
|
msgid "Filter by year"
|
||||||
msgstr "Filtere nach Jahr"
|
msgstr "Filtere nach Jahr"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive.html:35
|
#: photologue/templates/photologue/gallery_archive.html:31
|
||||||
msgid "No galleries were found"
|
msgid "No galleries were found"
|
||||||
msgstr "Es wurden keine Galerien gefunden."
|
msgstr "Es wurden keine Galerien gefunden."
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive_year.html:7
|
#: photologue/templates/photologue/gallery_archive_year.html:9
|
||||||
#: photologue_custom/templates/photologue/gallery_archive_year.html:12
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Galleries for %(show_year)s"
|
msgid "Galleries for %(show_year)s"
|
||||||
msgstr "Gallerien von %(show_year)s"
|
msgstr "Gallerien von %(show_year)s"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive_year.html:17
|
#: photologue/templates/photologue/gallery_archive_year.html:31
|
||||||
msgid "View all galleries"
|
|
||||||
msgstr "Zeige alle Galerien."
|
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive_year.html:29
|
|
||||||
msgid "No galleries were found."
|
msgid "No galleries were found."
|
||||||
msgstr "Es wurden keine Galerien gefunden."
|
msgstr "Es wurden keine Galerien gefunden."
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_detail.html:41
|
#: photologue/templates/photologue/gallery_detail.html:41
|
||||||
msgid "to"
|
msgid "to"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_detail.html:57
|
#: photologue/templates/photologue/gallery_detail.html:58
|
||||||
msgid "All pictures"
|
msgid "All pictures"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_detail.html:78
|
#: photologue/templates/photologue/gallery_detail.html:79
|
||||||
msgid "Download all gallery"
|
msgid "Download all gallery"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/photo_detail.html:13
|
#: photologue/templates/photologue/photo_confirm_delete.html:9
|
||||||
|
#: photologue/templates/photologue/photo_confirm_delete.html:14
|
||||||
|
msgid "Delete confirmation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/templates/photologue/photo_confirm_delete.html:17
|
||||||
|
#, python-format
|
||||||
|
msgid "Are you sure you want to delete <code>%(object)s</code>?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/templates/photologue/photo_confirm_delete.html:22
|
||||||
|
#: photologue/templates/photologue/photo_confirm_report.html:22
|
||||||
|
msgid "Confirm"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/templates/photologue/photo_confirm_report.html:9
|
||||||
|
#: photologue/templates/photologue/photo_confirm_report.html:14
|
||||||
|
msgid "Report confirmation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/templates/photologue/photo_confirm_report.html:17
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"Are you sure you want to report <code>%(object)s</code>? This photo will no "
|
||||||
|
"longer be public, and administrators will be notified."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/templates/photologue/photo_detail.html:15
|
||||||
msgid "Published"
|
msgid "Published"
|
||||||
msgstr "Veröffentlicht"
|
msgstr "Veröffentlicht"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/photo_detail.html:25
|
#: photologue/templates/photologue/upload.html:20
|
||||||
msgid "This photo is found in the following galleries"
|
|
||||||
msgstr "Dieses Foto befindet sich in folgenden Galerien"
|
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/upload.html:78
|
|
||||||
msgid "Drag and drop photos here"
|
msgid "Drag and drop photos here"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/upload.html:82
|
#: photologue/templates/photologue/upload.html:24
|
||||||
msgid "Owner will be"
|
msgid "Owner will be"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,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: 2022-01-30 09:55+0000\n"
|
"POT-Creation-Date: 2022-12-25 23:02+0000\n"
|
||||||
"PO-Revision-Date: 2017-12-03 14:46+0000\n"
|
"PO-Revision-Date: 2017-12-03 14:46+0000\n"
|
||||||
"Last-Translator: Richard Barran <richard@arbee-design.co.uk>\n"
|
"Last-Translator: Richard Barran <richard@arbee-design.co.uk>\n"
|
||||||
"Language-Team: Spanish (Spain) (http://www.transifex.com/richardbarran/"
|
"Language-Team: Spanish (Spain) (http://www.transifex.com/richardbarran/"
|
||||||
|
|
@ -23,79 +23,134 @@ 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:30 photologue/models.py:499
|
#: photologue/admin.py:26 photologue/models.py:162 photologue/models.py:772
|
||||||
|
msgid "tags"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/admin.py:50 photologue/models.py:521
|
||||||
msgid "owner"
|
msgid "owner"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue/models.py:84
|
#: photologue/forms.py:29
|
||||||
|
msgid "Gallery"
|
||||||
|
msgstr "Galería"
|
||||||
|
|
||||||
|
#: photologue/forms.py:31
|
||||||
|
msgid "-- Create a new gallery --"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/forms.py:33
|
||||||
|
msgid ""
|
||||||
|
"Select a gallery to add these images to. Leave this empty to create a new "
|
||||||
|
"gallery from the supplied title."
|
||||||
|
msgstr ""
|
||||||
|
"Seleccione una galería para agregarle estas imágenes. Déjelo vacío para "
|
||||||
|
"crear una nueva galería a partir de este título."
|
||||||
|
|
||||||
|
#: photologue/forms.py:38
|
||||||
|
msgid "New gallery title"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/forms.py:43
|
||||||
|
msgid "New gallery event start date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/forms.py:48
|
||||||
|
msgid "New gallery event end date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/forms.py:54
|
||||||
|
msgid "New gallery tags"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/forms.py:57
|
||||||
|
msgid ""
|
||||||
|
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/forms.py:75 photologue/templates/photologue/upload.html:8
|
||||||
|
#: photologue/templates/photologue/upload.html:15
|
||||||
|
msgid "Upload"
|
||||||
|
msgstr "Subir"
|
||||||
|
|
||||||
|
#: photologue/forms.py:81
|
||||||
|
msgid "A gallery with that title already exists."
|
||||||
|
msgstr "Ya existe una galería con ese título."
|
||||||
|
|
||||||
|
#: photologue/forms.py:93
|
||||||
|
msgid "Select an existing gallery, or enter a title for a new gallery."
|
||||||
|
msgstr ""
|
||||||
|
"Seleccione una galería existente o ingrese un nuevo nombre para la galería."
|
||||||
|
|
||||||
|
#: photologue/models.py:82
|
||||||
msgid "Very Low"
|
msgid "Very Low"
|
||||||
msgstr "Muy bajo"
|
msgstr "Muy bajo"
|
||||||
|
|
||||||
#: photologue/models.py:85
|
#: photologue/models.py:83
|
||||||
msgid "Low"
|
msgid "Low"
|
||||||
msgstr "Bajo"
|
msgstr "Bajo"
|
||||||
|
|
||||||
#: photologue/models.py:86
|
#: photologue/models.py:84
|
||||||
msgid "Medium-Low"
|
msgid "Medium-Low"
|
||||||
msgstr "Medio-bajo"
|
msgstr "Medio-bajo"
|
||||||
|
|
||||||
#: photologue/models.py:87
|
#: photologue/models.py:85
|
||||||
msgid "Medium"
|
msgid "Medium"
|
||||||
msgstr "Medio"
|
msgstr "Medio"
|
||||||
|
|
||||||
#: photologue/models.py:88
|
#: photologue/models.py:86
|
||||||
msgid "Medium-High"
|
msgid "Medium-High"
|
||||||
msgstr "Medio-alto"
|
msgstr "Medio-alto"
|
||||||
|
|
||||||
#: photologue/models.py:89
|
#: photologue/models.py:87
|
||||||
msgid "High"
|
msgid "High"
|
||||||
msgstr "Alto"
|
msgstr "Alto"
|
||||||
|
|
||||||
#: photologue/models.py:90
|
#: photologue/models.py:88
|
||||||
msgid "Very High"
|
msgid "Very High"
|
||||||
msgstr "Muy alto"
|
msgstr "Muy alto"
|
||||||
|
|
||||||
#: photologue/models.py:95
|
#: photologue/models.py:93
|
||||||
msgid "Top"
|
msgid "Top"
|
||||||
msgstr "Arriba"
|
msgstr "Arriba"
|
||||||
|
|
||||||
#: photologue/models.py:96
|
#: photologue/models.py:94
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "Derecha"
|
msgstr "Derecha"
|
||||||
|
|
||||||
#: photologue/models.py:97
|
#: photologue/models.py:95
|
||||||
msgid "Bottom"
|
msgid "Bottom"
|
||||||
msgstr "Abajo"
|
msgstr "Abajo"
|
||||||
|
|
||||||
#: photologue/models.py:98
|
#: photologue/models.py:96
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "Izquierda"
|
msgstr "Izquierda"
|
||||||
|
|
||||||
#: photologue/models.py:99
|
#: photologue/models.py:97
|
||||||
msgid "Center (Default)"
|
msgid "Center (Default)"
|
||||||
msgstr "Centro (por defecto)"
|
msgstr "Centro (por defecto)"
|
||||||
|
|
||||||
#: photologue/models.py:103
|
#: photologue/models.py:101
|
||||||
msgid "Flip left to right"
|
msgid "Flip left to right"
|
||||||
msgstr "Voltear de izquerda a derecha"
|
msgstr "Voltear de izquerda a derecha"
|
||||||
|
|
||||||
#: photologue/models.py:104
|
#: photologue/models.py:102
|
||||||
msgid "Flip top to bottom"
|
msgid "Flip top to bottom"
|
||||||
msgstr "Voltear de arriba a abajo"
|
msgstr "Voltear de arriba a abajo"
|
||||||
|
|
||||||
#: photologue/models.py:105
|
#: photologue/models.py:103
|
||||||
msgid "Rotate 90 degrees counter-clockwise"
|
msgid "Rotate 90 degrees counter-clockwise"
|
||||||
msgstr "Rotar 90 grados en sentido horario"
|
msgstr "Rotar 90 grados en sentido horario"
|
||||||
|
|
||||||
#: photologue/models.py:106
|
#: photologue/models.py:104
|
||||||
msgid "Rotate 90 degrees clockwise"
|
msgid "Rotate 90 degrees clockwise"
|
||||||
msgstr "Rotar 90 grados en sentido antihorario"
|
msgstr "Rotar 90 grados en sentido antihorario"
|
||||||
|
|
||||||
#: photologue/models.py:107
|
#: photologue/models.py:105
|
||||||
msgid "Rotate 180 degrees"
|
msgid "Rotate 180 degrees"
|
||||||
msgstr "Rotar 180 grados"
|
msgstr "Rotar 180 grados"
|
||||||
|
|
||||||
#: photologue/models.py:117
|
#: photologue/models.py:119
|
||||||
#, 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-"
|
||||||
|
|
@ -106,11 +161,7 @@ msgstr ""
|
||||||
">FILTRO_DOS->FILTRO_TRES\". Los filtros de imagen se aplicarán en orden. Los "
|
">FILTRO_DOS->FILTRO_TRES\". Los filtros de imagen se aplicarán en orden. Los "
|
||||||
"siguientes filtros están disponibles: %s."
|
"siguientes filtros están disponibles: %s."
|
||||||
|
|
||||||
#: photologue/models.py:139
|
#: photologue/models.py:142 photologue/models.py:509
|
||||||
msgid "date published"
|
|
||||||
msgstr "fecha de publicación"
|
|
||||||
|
|
||||||
#: photologue/models.py:141 photologue/models.py:485
|
|
||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr "título"
|
msgstr "título"
|
||||||
|
|
||||||
|
|
@ -118,107 +169,105 @@ msgstr "título"
|
||||||
msgid "title slug"
|
msgid "title slug"
|
||||||
msgstr "título slug"
|
msgstr "título slug"
|
||||||
|
|
||||||
#: photologue/models.py:147 photologue/models.py:491 photologue/models.py:697
|
#: photologue/models.py:147 photologue/models.py:514 photologue/models.py:766
|
||||||
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 "Un \"slug\" es un único título URL-amigable para un objeto."
|
msgstr "Un \"slug\" es un único título URL-amigable para un objeto."
|
||||||
|
|
||||||
#: photologue/models.py:150
|
#: photologue/models.py:151
|
||||||
msgid "start date"
|
msgid "start date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue/models.py:155
|
#: photologue/models.py:156
|
||||||
msgid "end date"
|
msgid "end date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue/models.py:157
|
#: photologue/models.py:158
|
||||||
msgid "description"
|
msgid "description"
|
||||||
msgstr "descripción"
|
msgstr "descripción"
|
||||||
|
|
||||||
#: photologue/models.py:162 photologue/models.py:703
|
#: photologue/models.py:168 photologue/models.py:540
|
||||||
msgid "tags"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue/models.py:165 photologue/models.py:506
|
|
||||||
msgid "is public"
|
|
||||||
msgstr "es público"
|
|
||||||
|
|
||||||
#: photologue/models.py:167
|
|
||||||
msgid "Public galleries will be displayed in the default views."
|
|
||||||
msgstr "Las galerías públicas serán mostradas en las vistas por defecto."
|
|
||||||
|
|
||||||
#: photologue/models.py:171 photologue/models.py:514
|
|
||||||
msgid "photos"
|
msgid "photos"
|
||||||
msgstr "fotos"
|
msgstr "fotos"
|
||||||
|
|
||||||
#: photologue/models.py:177
|
#: photologue/models.py:175
|
||||||
msgid "gallery"
|
msgid "gallery"
|
||||||
msgstr "galería"
|
msgstr "galería"
|
||||||
|
|
||||||
#: photologue/models.py:178
|
#: photologue/models.py:176
|
||||||
msgid "galleries"
|
msgid "galleries"
|
||||||
msgstr "galerías"
|
msgstr "galerías"
|
||||||
|
|
||||||
#: photologue/models.py:213
|
#: photologue/models.py:206
|
||||||
msgid "count"
|
msgid "count"
|
||||||
msgstr "contar"
|
msgstr "contar"
|
||||||
|
|
||||||
#: photologue/models.py:221
|
#: photologue/models.py:207
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "view count"
|
||||||
|
msgid "private count"
|
||||||
|
msgstr "Contador de visitas"
|
||||||
|
|
||||||
|
#: photologue/models.py:212
|
||||||
msgid "image"
|
msgid "image"
|
||||||
msgstr "imagen"
|
msgstr "imagen"
|
||||||
|
|
||||||
#: photologue/models.py:224
|
#: photologue/models.py:215
|
||||||
msgid "date taken"
|
msgid "date taken"
|
||||||
msgstr "fecha en la que se tomó"
|
msgstr "fecha en la que se tomó"
|
||||||
|
|
||||||
#: photologue/models.py:227
|
#: photologue/models.py:218
|
||||||
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 "La fecha de la imagen fue obtenida por información EXIF de la imagen."
|
msgstr "La fecha de la imagen fue obtenida por información EXIF de la imagen."
|
||||||
|
|
||||||
#: photologue/models.py:228
|
#: photologue/models.py:220
|
||||||
msgid "view count"
|
msgid "view count"
|
||||||
msgstr "Contador de visitas"
|
msgstr "Contador de visitas"
|
||||||
|
|
||||||
#: photologue/models.py:231
|
#: photologue/models.py:222
|
||||||
msgid "crop from"
|
msgid "crop from"
|
||||||
msgstr "Recortar desde"
|
msgstr "Recortar desde"
|
||||||
|
|
||||||
#: photologue/models.py:254
|
#: photologue/models.py:246
|
||||||
msgid "An \"admin_thumbnail\" photo size has not been defined."
|
msgid "An \"admin_thumbnail\" photo size has not been defined."
|
||||||
msgstr "El tamaño de foto de \"miniatura de admin\" no ha sido definido."
|
msgstr "El tamaño de foto de \"miniatura de admin\" no ha sido definido."
|
||||||
|
|
||||||
#: photologue/models.py:261
|
#: photologue/models.py:259
|
||||||
msgid "Thumbnail"
|
msgid "Thumbnail"
|
||||||
msgstr "Miniatura"
|
msgstr "Miniatura"
|
||||||
|
|
||||||
#: photologue/models.py:488 photologue/models.py:696
|
#: photologue/models.py:511 photologue/models.py:765
|
||||||
msgid "slug"
|
msgid "slug"
|
||||||
msgstr "slug"
|
msgstr "slug"
|
||||||
|
|
||||||
#: photologue/models.py:492
|
#: photologue/models.py:516
|
||||||
msgid "caption"
|
msgid "caption"
|
||||||
msgstr "pie de foto"
|
msgstr "pie de foto"
|
||||||
|
|
||||||
#: photologue/models.py:494
|
#: photologue/models.py:517
|
||||||
msgid "date added"
|
msgid "date added"
|
||||||
msgstr "fecha añadida"
|
msgstr "fecha añadida"
|
||||||
|
|
||||||
#: photologue/models.py:504
|
#: photologue/models.py:526
|
||||||
msgid "license"
|
msgid "license"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue/models.py:508
|
#: photologue/models.py:529
|
||||||
|
msgid "is public"
|
||||||
|
msgstr "es público"
|
||||||
|
|
||||||
|
#: photologue/models.py:531
|
||||||
msgid "Public photographs will be displayed in the default views."
|
msgid "Public photographs will be displayed in the default views."
|
||||||
msgstr "Las fotos públicas serán mostradas en las vistas por defecto."
|
msgstr "Las fotos públicas serán mostradas en las vistas por defecto."
|
||||||
|
|
||||||
#: photologue/models.py:513
|
#: photologue/models.py:539
|
||||||
msgid "photo"
|
msgid "photo"
|
||||||
msgstr "foto"
|
msgstr "foto"
|
||||||
|
|
||||||
#: photologue/models.py:575 photologue/models.py:691
|
#: photologue/models.py:602 photologue/models.py:760
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "nombre"
|
msgstr "nombre"
|
||||||
|
|
||||||
#: photologue/models.py:579
|
#: photologue/models.py:606
|
||||||
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\"."
|
||||||
|
|
@ -226,41 +275,41 @@ msgstr ""
|
||||||
"El nombre del tamaño solo puede contener letras, números y subrayados. Por "
|
"El nombre del tamaño solo puede contener letras, números y subrayados. Por "
|
||||||
"ejemplo:\"miniaturas\", \"muestra\", \"muestra_principal\"."
|
"ejemplo:\"miniaturas\", \"muestra\", \"muestra_principal\"."
|
||||||
|
|
||||||
#: photologue/models.py:586
|
#: photologue/models.py:618
|
||||||
msgid "width"
|
msgid "width"
|
||||||
msgstr "anchura"
|
msgstr "anchura"
|
||||||
|
|
||||||
#: photologue/models.py:589
|
#: photologue/models.py:621
|
||||||
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 anchura se establece a \"0\" la imagen será escalada hasta la altura "
|
"Si la anchura se establece a \"0\" la imagen será escalada hasta la altura "
|
||||||
"proporcionada"
|
"proporcionada"
|
||||||
|
|
||||||
#: photologue/models.py:590
|
#: photologue/models.py:625
|
||||||
msgid "height"
|
msgid "height"
|
||||||
msgstr "altura"
|
msgstr "altura"
|
||||||
|
|
||||||
#: photologue/models.py:593
|
#: photologue/models.py:628
|
||||||
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 altura se establece a \"0\" la imagen será escalada hasta la anchura "
|
"Si la altura se establece a \"0\" la imagen será escalada hasta la anchura "
|
||||||
"proporcionada"
|
"proporcionada"
|
||||||
|
|
||||||
#: photologue/models.py:594
|
#: photologue/models.py:632
|
||||||
msgid "quality"
|
msgid "quality"
|
||||||
msgstr "calidad"
|
msgstr "calidad"
|
||||||
|
|
||||||
#: photologue/models.py:597
|
#: photologue/models.py:635
|
||||||
msgid "JPEG image quality."
|
msgid "JPEG image quality."
|
||||||
msgstr "Calidad de imagen JPEG."
|
msgstr "Calidad de imagen JPEG."
|
||||||
|
|
||||||
#: photologue/models.py:598
|
#: photologue/models.py:638
|
||||||
msgid "upscale images?"
|
msgid "upscale images?"
|
||||||
msgstr "¿Aumentar imágenes?"
|
msgstr "¿Aumentar imágenes?"
|
||||||
|
|
||||||
#: photologue/models.py:600
|
#: photologue/models.py:641
|
||||||
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."
|
||||||
|
|
@ -269,11 +318,11 @@ msgstr ""
|
||||||
"las dimensiones proporcionadas. Los tamaños recortados serán aumentados de "
|
"las dimensiones proporcionadas. Los tamaños recortados serán aumentados de "
|
||||||
"acuerdo a esta opción."
|
"acuerdo a esta opción."
|
||||||
|
|
||||||
#: photologue/models.py:604
|
#: photologue/models.py:647
|
||||||
msgid "crop to fit?"
|
msgid "crop to fit?"
|
||||||
msgstr "¿Recortar hasta ajustar?"
|
msgstr "¿Recortar hasta ajustar?"
|
||||||
|
|
||||||
#: photologue/models.py:606
|
#: photologue/models.py:650
|
||||||
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."
|
||||||
|
|
@ -281,21 +330,21 @@ msgstr ""
|
||||||
"Si se selecciona la imagen será escalada y recortada para ajustarse a las "
|
"Si se selecciona la imagen será escalada y recortada para ajustarse a las "
|
||||||
"dimensiones proporcionadas."
|
"dimensiones proporcionadas."
|
||||||
|
|
||||||
#: photologue/models.py:608
|
#: photologue/models.py:655
|
||||||
msgid "pre-cache?"
|
msgid "pre-cache?"
|
||||||
msgstr "¿pre-cachear?"
|
msgstr "¿pre-cachear?"
|
||||||
|
|
||||||
#: photologue/models.py:610
|
#: photologue/models.py:658
|
||||||
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 se selecciona, este tamaño de foto será pre-cacheado cuando se añadan "
|
"Si se selecciona, este tamaño de foto será pre-cacheado cuando se añadan "
|
||||||
"nuevas fotos."
|
"nuevas fotos."
|
||||||
|
|
||||||
#: photologue/models.py:611
|
#: photologue/models.py:662
|
||||||
msgid "increment view count?"
|
msgid "increment view count?"
|
||||||
msgstr "¿incrementar contador de visualizaciones?"
|
msgstr "¿incrementar contador de visualizaciones?"
|
||||||
|
|
||||||
#: photologue/models.py:613
|
#: photologue/models.py:665
|
||||||
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."
|
||||||
|
|
@ -303,125 +352,91 @@ msgstr ""
|
||||||
"Si se selecciona el \"contador de visualizaciones\" se incrementará cuando "
|
"Si se selecciona el \"contador de visualizaciones\" se incrementará cuando "
|
||||||
"esta foto sea visualizada."
|
"esta foto sea visualizada."
|
||||||
|
|
||||||
#: photologue/models.py:618
|
#: photologue/models.py:672
|
||||||
msgid "photo size"
|
msgid "photo size"
|
||||||
msgstr "tamaño de foto"
|
msgstr "tamaño de foto"
|
||||||
|
|
||||||
#: photologue/models.py:619
|
#: photologue/models.py:673
|
||||||
msgid "photo sizes"
|
msgid "photo sizes"
|
||||||
msgstr "tamaños de foto"
|
msgstr "tamaños de foto"
|
||||||
|
|
||||||
#: photologue/models.py:636
|
#: photologue/models.py:691
|
||||||
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 "Solo puede recortar las fotos si ancho y alto están establecidos."
|
msgstr "Solo puede recortar las fotos si ancho y alto están establecidos."
|
||||||
|
|
||||||
#: photologue/models.py:702
|
#: photologue/models.py:771
|
||||||
msgid "tag"
|
msgid "tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:22
|
#: photologue/templates/photologue/gallery_archive.html:9
|
||||||
msgid "Gallery"
|
|
||||||
msgstr "Galería"
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:24
|
|
||||||
msgid "-- Create a new gallery --"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:25
|
|
||||||
msgid ""
|
|
||||||
"Select a gallery to add these images to. Leave this empty to create a new "
|
|
||||||
"gallery from the supplied title."
|
|
||||||
msgstr ""
|
|
||||||
"Seleccione una galería para agregarle estas imágenes. Déjelo vacío para "
|
|
||||||
"crear una nueva galería a partir de este título."
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:29
|
|
||||||
msgid "New gallery title"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:34
|
|
||||||
msgid "New gallery event start date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:39
|
|
||||||
msgid "New gallery event end date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:45
|
|
||||||
msgid "New gallery tags"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:47
|
|
||||||
msgid ""
|
|
||||||
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:64
|
|
||||||
#: photologue_custom/templates/photologue/upload.html:6
|
|
||||||
#: photologue_custom/templates/photologue/upload.html:73
|
|
||||||
msgid "Upload"
|
|
||||||
msgstr "Subir"
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:70
|
|
||||||
msgid "A gallery with that title already exists."
|
|
||||||
msgstr "Ya existe una galería con ese título."
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:79
|
|
||||||
msgid "Select an existing gallery, or enter a title for a new gallery."
|
|
||||||
msgstr ""
|
|
||||||
"Seleccione una galería existente o ingrese un nuevo nombre para la galería."
|
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive.html:7
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive.html:12
|
|
||||||
msgid "Latest photo galleries"
|
msgid "Latest photo galleries"
|
||||||
msgstr "Fotos de galerías mas recientes"
|
msgstr "Fotos de galerías mas recientes"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive.html:18
|
#: photologue/templates/photologue/gallery_archive.html:14
|
||||||
|
#: photologue/templates/photologue/gallery_archive_year.html:14
|
||||||
msgid "Filter by year"
|
msgid "Filter by year"
|
||||||
msgstr "Filtrar por año"
|
msgstr "Filtrar por año"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive.html:35
|
#: photologue/templates/photologue/gallery_archive.html:31
|
||||||
msgid "No galleries were found"
|
msgid "No galleries were found"
|
||||||
msgstr "No se encontraron galerías"
|
msgstr "No se encontraron galerías"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive_year.html:7
|
#: photologue/templates/photologue/gallery_archive_year.html:9
|
||||||
#: photologue_custom/templates/photologue/gallery_archive_year.html:12
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Galleries for %(show_year)s"
|
msgid "Galleries for %(show_year)s"
|
||||||
msgstr "Galerías por %(show_year)s"
|
msgstr "Galerías por %(show_year)s"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive_year.html:17
|
#: photologue/templates/photologue/gallery_archive_year.html:31
|
||||||
msgid "View all galleries"
|
|
||||||
msgstr "Ver todas las galerías"
|
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive_year.html:29
|
|
||||||
msgid "No galleries were found."
|
msgid "No galleries were found."
|
||||||
msgstr "No se encontraron galerías"
|
msgstr "No se encontraron galerías"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_detail.html:41
|
#: photologue/templates/photologue/gallery_detail.html:41
|
||||||
msgid "to"
|
msgid "to"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_detail.html:57
|
#: photologue/templates/photologue/gallery_detail.html:58
|
||||||
msgid "All pictures"
|
msgid "All pictures"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_detail.html:78
|
#: photologue/templates/photologue/gallery_detail.html:79
|
||||||
msgid "Download all gallery"
|
msgid "Download all gallery"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/photo_detail.html:13
|
#: photologue/templates/photologue/photo_confirm_delete.html:9
|
||||||
|
#: photologue/templates/photologue/photo_confirm_delete.html:14
|
||||||
|
msgid "Delete confirmation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/templates/photologue/photo_confirm_delete.html:17
|
||||||
|
#, python-format
|
||||||
|
msgid "Are you sure you want to delete <code>%(object)s</code>?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/templates/photologue/photo_confirm_delete.html:22
|
||||||
|
#: photologue/templates/photologue/photo_confirm_report.html:22
|
||||||
|
msgid "Confirm"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/templates/photologue/photo_confirm_report.html:9
|
||||||
|
#: photologue/templates/photologue/photo_confirm_report.html:14
|
||||||
|
msgid "Report confirmation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/templates/photologue/photo_confirm_report.html:17
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"Are you sure you want to report <code>%(object)s</code>? This photo will no "
|
||||||
|
"longer be public, and administrators will be notified."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/templates/photologue/photo_detail.html:15
|
||||||
msgid "Published"
|
msgid "Published"
|
||||||
msgstr "Publicado"
|
msgstr "Publicado"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/photo_detail.html:25
|
#: photologue/templates/photologue/upload.html:20
|
||||||
msgid "This photo is found in the following galleries"
|
|
||||||
msgstr "Esta foto se encontró en las siguientes galerías"
|
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/upload.html:78
|
|
||||||
msgid "Drag and drop photos here"
|
msgid "Drag and drop photos here"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/upload.html:82
|
#: photologue/templates/photologue/upload.html:24
|
||||||
msgid "Owner will be"
|
msgid "Owner will be"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
||||||
|
|
@ -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: 2022-04-17 09:13+0000\n"
|
"POT-Creation-Date: 2022-12-25 23:02+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,11 +21,11 @@ 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:162 photologue/models.py:770
|
#: photologue/admin.py:26 photologue/models.py:162 photologue/models.py:772
|
||||||
msgid "tags"
|
msgid "tags"
|
||||||
msgstr "balises"
|
msgstr "balises"
|
||||||
|
|
||||||
#: photologue/admin.py:50 photologue/models.py:519
|
#: photologue/admin.py:50 photologue/models.py:521
|
||||||
msgid "owner"
|
msgid "owner"
|
||||||
msgstr "propriétaire"
|
msgstr "propriétaire"
|
||||||
|
|
||||||
|
|
@ -160,7 +160,7 @@ 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:142 photologue/models.py:507
|
#: photologue/models.py:142 photologue/models.py:509
|
||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr "titre"
|
msgstr "titre"
|
||||||
|
|
||||||
|
|
@ -168,7 +168,7 @@ msgstr "titre"
|
||||||
msgid "title slug"
|
msgid "title slug"
|
||||||
msgstr "version abrégée du titre"
|
msgstr "version abrégée du titre"
|
||||||
|
|
||||||
#: photologue/models.py:147 photologue/models.py:512 photologue/models.py:764
|
#: photologue/models.py:147 photologue/models.py:514 photologue/models.py:766
|
||||||
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 "
|
||||||
|
|
@ -186,7 +186,7 @@ msgstr "date de fin"
|
||||||
msgid "description"
|
msgid "description"
|
||||||
msgstr "description"
|
msgstr "description"
|
||||||
|
|
||||||
#: photologue/models.py:168 photologue/models.py:538
|
#: photologue/models.py:168 photologue/models.py:540
|
||||||
msgid "photos"
|
msgid "photos"
|
||||||
msgstr "photos"
|
msgstr "photos"
|
||||||
|
|
||||||
|
|
@ -236,39 +236,39 @@ msgstr "Une taille de photo \"admin_thumbnail\" n'a pas encore été définie."
|
||||||
msgid "Thumbnail"
|
msgid "Thumbnail"
|
||||||
msgstr "Miniature"
|
msgstr "Miniature"
|
||||||
|
|
||||||
#: photologue/models.py:509 photologue/models.py:763
|
#: photologue/models.py:511 photologue/models.py:765
|
||||||
msgid "slug"
|
msgid "slug"
|
||||||
msgstr "libellé court"
|
msgstr "libellé court"
|
||||||
|
|
||||||
#: photologue/models.py:514
|
#: photologue/models.py:516
|
||||||
msgid "caption"
|
msgid "caption"
|
||||||
msgstr "légende"
|
msgstr "légende"
|
||||||
|
|
||||||
#: photologue/models.py:515
|
#: photologue/models.py:517
|
||||||
msgid "date added"
|
msgid "date added"
|
||||||
msgstr "date d'ajout"
|
msgstr "date d'ajout"
|
||||||
|
|
||||||
#: photologue/models.py:524
|
#: photologue/models.py:526
|
||||||
msgid "license"
|
msgid "license"
|
||||||
msgstr "licence"
|
msgstr "licence"
|
||||||
|
|
||||||
#: photologue/models.py:527
|
#: photologue/models.py:529
|
||||||
msgid "is public"
|
msgid "is public"
|
||||||
msgstr "est public"
|
msgstr "est public"
|
||||||
|
|
||||||
#: photologue/models.py:529
|
#: photologue/models.py:531
|
||||||
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:537
|
#: photologue/models.py:539
|
||||||
msgid "photo"
|
msgid "photo"
|
||||||
msgstr "photo"
|
msgstr "photo"
|
||||||
|
|
||||||
#: photologue/models.py:600 photologue/models.py:758
|
#: photologue/models.py:602 photologue/models.py:760
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "nom"
|
msgstr "nom"
|
||||||
|
|
||||||
#: photologue/models.py:604
|
#: photologue/models.py:606
|
||||||
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\"."
|
||||||
|
|
@ -277,41 +277,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:616
|
#: photologue/models.py:618
|
||||||
msgid "width"
|
msgid "width"
|
||||||
msgstr "largeur"
|
msgstr "largeur"
|
||||||
|
|
||||||
#: photologue/models.py:619
|
#: photologue/models.py:621
|
||||||
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:623
|
#: photologue/models.py:625
|
||||||
msgid "height"
|
msgid "height"
|
||||||
msgstr "hauteur"
|
msgstr "hauteur"
|
||||||
|
|
||||||
#: photologue/models.py:626
|
#: photologue/models.py:628
|
||||||
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:630
|
#: photologue/models.py:632
|
||||||
msgid "quality"
|
msgid "quality"
|
||||||
msgstr "qualité"
|
msgstr "qualité"
|
||||||
|
|
||||||
#: photologue/models.py:633
|
#: photologue/models.py:635
|
||||||
msgid "JPEG image quality."
|
msgid "JPEG image quality."
|
||||||
msgstr "Qualité JPEG de l'image."
|
msgstr "Qualité JPEG de l'image."
|
||||||
|
|
||||||
#: photologue/models.py:636
|
#: photologue/models.py:638
|
||||||
msgid "upscale images?"
|
msgid "upscale images?"
|
||||||
msgstr "agrandir les images ?"
|
msgstr "agrandir les images ?"
|
||||||
|
|
||||||
#: photologue/models.py:639
|
#: photologue/models.py:641
|
||||||
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."
|
||||||
|
|
@ -320,11 +320,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:645
|
#: photologue/models.py:647
|
||||||
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:648
|
#: photologue/models.py:650
|
||||||
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."
|
||||||
|
|
@ -332,21 +332,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:653
|
#: photologue/models.py:655
|
||||||
msgid "pre-cache?"
|
msgid "pre-cache?"
|
||||||
msgstr "mise en cache ?"
|
msgstr "mise en cache ?"
|
||||||
|
|
||||||
#: photologue/models.py:656
|
#: photologue/models.py:658
|
||||||
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:660
|
#: photologue/models.py:662
|
||||||
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:663
|
#: photologue/models.py:665
|
||||||
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."
|
||||||
|
|
@ -354,21 +354,21 @@ 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:670
|
#: photologue/models.py:672
|
||||||
msgid "photo size"
|
msgid "photo size"
|
||||||
msgstr "taille de la photo"
|
msgstr "taille de la photo"
|
||||||
|
|
||||||
#: photologue/models.py:671
|
#: photologue/models.py:673
|
||||||
msgid "photo sizes"
|
msgid "photo sizes"
|
||||||
msgstr "tailles des photos"
|
msgstr "tailles des photos"
|
||||||
|
|
||||||
#: photologue/models.py:689
|
#: photologue/models.py:691
|
||||||
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:769
|
#: photologue/models.py:771
|
||||||
msgid "tag"
|
msgid "tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@ class lgAdmin {
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
const adminIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" fill=\"currentColor\" class=\"bi bi-gear-fill\" viewBox=\"0 0 16 16\"><path d=\"M9.405 1.05c-.413-1.4-2.397-1.4-2.81 0l-.1.34a1.464 1.464 0 0 1-2.105.872l-.31-.17c-1.283-.698-2.686.705-1.987 1.987l.169.311c.446.82.023 1.841-.872 2.105l-.34.1c-1.4.413-1.4 2.397 0 2.81l.34.1a1.464 1.464 0 0 1 .872 2.105l-.17.31c-.698 1.283.705 2.686 1.987 1.987l.311-.169a1.464 1.464 0 0 1 2.105.872l.1.34c.413 1.4 2.397 1.4 2.81 0l.1-.34a1.464 1.464 0 0 1 2.105-.872l.31.17c1.283.698 2.686-.705 1.987-1.987l-.169-.311a1.464 1.464 0 0 1 .872-2.105l.34-.1c1.4-.413 1.4-2.397 0-2.81l-.34-.1a1.464 1.464 0 0 1-.872-2.105l.17-.31c.698-1.283-.705-2.686-1.987-1.987l-.311.169a1.464 1.464 0 0 1-2.105-.872l-.1-.34zM8 10.93a2.929 2.929 0 1 1 0-5.86 2.929 2.929 0 0 1 0 5.858z\"/></svg>";
|
const adminIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" fill=\"currentColor\" class=\"bi bi-gear-fill\" viewBox=\"0 0 16 16\"><path d=\"M9.405 1.05c-.413-1.4-2.397-1.4-2.81 0l-.1.34a1.464 1.464 0 0 1-2.105.872l-.31-.17c-1.283-.698-2.686.705-1.987 1.987l.169.311c.446.82.023 1.841-.872 2.105l-.34.1c-1.4.413-1.4 2.397 0 2.81l.34.1a1.464 1.464 0 0 1 .872 2.105l-.17.31c-.698 1.283.705 2.686 1.987 1.987l.311-.169a1.464 1.464 0 0 1 2.105.872l.1.34c.413 1.4 2.397 1.4 2.81 0l.1-.34a1.464 1.464 0 0 1 2.105-.872l.31.17c1.283.698 2.686-.705 1.987-1.987l-.169-.311a1.464 1.464 0 0 1 .872-2.105l.34-.1c1.4-.413 1.4-2.397 0-2.81l-.34-.1a1.464 1.464 0 0 1-.872-2.105l.17-.31c.698-1.283-.705-2.686-1.987-1.987l-.311.169a1.464 1.464 0 0 1-2.105-.872l-.1-.34zM8 10.93a2.929 2.929 0 1 1 0-5.86 2.929 2.929 0 0 1 0 5.858z\"/></svg>";
|
||||||
const deleteIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" fill=\"currentColor\" viewBox=\"0 0 16 16\"><path d=\"M11 1.5v1h3.5a.5.5 0 0 1 0 1h-.538l-.853 10.66A2 2 0 0 1 11.115 16h-6.23a2 2 0 0 1-1.994-1.84L2.038 3.5H1.5a.5.5 0 0 1 0-1H5v-1A1.5 1.5 0 0 1 6.5 0h3A1.5 1.5 0 0 1 11 1.5Zm-5 0v1h4v-1a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5ZM4.5 5.029l.5 8.5a.5.5 0 1 0 .998-.06l-.5-8.5a.5.5 0 1 0-.998.06Zm6.53-.528a.5.5 0 0 0-.528.47l-.5 8.5a.5.5 0 0 0 .998.058l.5-8.5a.5.5 0 0 0-.47-.528ZM8 4.5a.5.5 0 0 0-.5.5v8.5a.5.5 0 0 0 1 0V5a.5.5 0 0 0-.5-.5Z\"/></svg>";;
|
const deleteIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" fill=\"currentColor\" class=\"bi\" viewBox=\"0 0 16 16\"><path d=\"M11 1.5v1h3.5a.5.5 0 0 1 0 1h-.538l-.853 10.66A2 2 0 0 1 11.115 16h-6.23a2 2 0 0 1-1.994-1.84L2.038 3.5H1.5a.5.5 0 0 1 0-1H5v-1A1.5 1.5 0 0 1 6.5 0h3A1.5 1.5 0 0 1 11 1.5Zm-5 0v1h4v-1a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5ZM4.5 5.029l.5 8.5a.5.5 0 1 0 .998-.06l-.5-8.5a.5.5 0 1 0-.998.06Zm6.53-.528a.5.5 0 0 0-.528.47l-.5 8.5a.5.5 0 0 0 .998.058l.5-8.5a.5.5 0 0 0-.47-.528ZM8 4.5a.5.5 0 0 0-.5.5v8.5a.5.5 0 0 0 1 0V5a.5.5 0 0 0-.5-.5Z\"/></svg>";;
|
||||||
const reportIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" fill=\"currentColor\" viewBox=\"0 0 16 16\"><path d=\"M11.46.146A.5.5 0 0 0 11.107 0H4.893a.5.5 0 0 0-.353.146L.146 4.54A.5.5 0 0 0 0 4.893v6.214a.5.5 0 0 0 .146.353l4.394 4.394a.5.5 0 0 0 .353.146h6.214a.5.5 0 0 0 .353-.146l4.394-4.394a.5.5 0 0 0 .146-.353V4.893a.5.5 0 0 0-.146-.353L11.46.146zM8 4c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995A.905.905 0 0 1 8 4zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z\"/></svg>";
|
const reportIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" fill=\"currentColor\" class=\"bi\" viewBox=\"0 0 16 16\"><path d=\"M11.46.146A.5.5 0 0 0 11.107 0H4.893a.5.5 0 0 0-.353.146L.146 4.54A.5.5 0 0 0 0 4.893v6.214a.5.5 0 0 0 .146.353l4.394 4.394a.5.5 0 0 0 .353.146h6.214a.5.5 0 0 0 .353-.146l4.394-4.394a.5.5 0 0 0 .146-.353V4.893a.5.5 0 0 0-.146-.353L11.46.146zM8 4c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995A.905.905 0 0 1 8 4zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z\"/></svg>";
|
||||||
|
|
||||||
// Add button linking to Django admin page
|
// Add button linking to Django admin page
|
||||||
this.core.$toolbar.append(`<a href="#" target="_blank" id="lg-admin" title="Go to admin" class="lg-icon lg-bi-icon">${adminIcon}</a>`);
|
this.core.$toolbar.append(`<a href="#" target="_blank" id="lg-admin" title="Go to admin" class="lg-icon lg-bi-icon">${adminIcon}</a>`);
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
{{ gallery.title }}
|
{{ gallery.title }}
|
||||||
{% if request.user.is_staff and perms.photologue.change_gallery %}
|
{% if request.user.is_staff and perms.photologue.change_gallery %}
|
||||||
<a href="{% url 'admin:photologue_gallery_change' gallery.id %}">
|
<a href="{% url 'admin:photologue_gallery_change' gallery.id %}">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="#555" class="bi bi-gear" viewBox="0 0 16 18">
|
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" class="bi bi-gear" viewBox="0 0 16 18">
|
||||||
<path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492zM5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0z"/>
|
<path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492zM5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0z"/>
|
||||||
<path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52l-.094-.319zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.377l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115l.094-.319z"/>
|
<path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52l-.094-.319zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.377l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115l.094-.319z"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
@ -76,7 +76,13 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer">
|
<div class="card-footer">
|
||||||
<a href="{% url 'photologue:pl-gallery-download' gallery.slug %}" class="btn btn-secondary btn-sm">{% trans 'Download all gallery' %}</a>
|
<a href="{% url 'photologue:pl-gallery-download' gallery.slug %}" class="btn btn-secondary btn-sm">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-download" viewBox="0 0 16 16">
|
||||||
|
<path d="M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z"/>
|
||||||
|
<path d="M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z"/>
|
||||||
|
</svg>
|
||||||
|
{% trans 'Download all gallery' %}
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,9 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
<h1>{% trans "Delete confirmation" %}</h1>
|
<h1>{% trans "Delete confirmation" %}</h1>
|
||||||
<form method="post">{% csrf_token %}
|
<form method="post">{% csrf_token %}
|
||||||
<p>
|
<p>
|
||||||
{% blocktranslate trimmed %}
|
{% blocktrans trimmed %}
|
||||||
Are you sure you want to delete <code>{{ object }}</code>?
|
Are you sure you want to delete <code>{{ object }}</code>?
|
||||||
{% endblocktranslate %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
{{ form }}
|
{{ form }}
|
||||||
<input type="submit" class="btn btn-danger" value="{% trans "Confirm" %}">
|
<input type="submit" class="btn btn-danger" value="{% trans "Confirm" %}">
|
||||||
|
|
|
||||||
|
|
@ -14,10 +14,10 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
<h1>{% trans "Report confirmation" %}</h1>
|
<h1>{% trans "Report confirmation" %}</h1>
|
||||||
<form method="post">{% csrf_token %}
|
<form method="post">{% csrf_token %}
|
||||||
<p>
|
<p>
|
||||||
{% blocktranslate trimmed %}
|
{% blocktrans trimmed %}
|
||||||
Are you sure you want to report <code>{{ object }}</code>?
|
Are you sure you want to report <code>{{ object }}</code>?
|
||||||
This photo will no longer be public, and administrators will be notified.
|
This photo will no longer be public, and administrators will be notified.
|
||||||
{% endblocktranslate %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
<input type="submit" class="btn btn-warning" value="{% trans "Confirm" %}">
|
<input type="submit" class="btn btn-warning" value="{% trans "Confirm" %}">
|
||||||
</form>
|
</form>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue