Merge photologue_custom into photologue
This commit is contained in:
parent
8beedb3626
commit
d865a6eb1f
36 changed files with 549 additions and 566 deletions
|
|
@ -8,7 +8,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-29 21:58+0000\n"
|
"POT-Creation-Date: 2022-01-30 09:55+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"
|
||||||
|
|
@ -40,19 +40,19 @@ msgstr ""
|
||||||
msgid "hash"
|
msgid "hash"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:162
|
#: photo21/settings.py:161
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:163
|
#: photo21/settings.py:162
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:164
|
#: photo21/settings.py:163
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:165
|
#: photo21/settings.py:164
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -199,6 +199,16 @@ msgstr ""
|
||||||
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:11
|
||||||
|
#: photo21/templates/account/logout.html:20
|
||||||
|
msgid "Sign Out"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photo21/templates/account/logout.html:14
|
||||||
|
msgid "Are you sure you want to sign out?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/signup.html:6
|
#: photo21/templates/account/signup.html:6
|
||||||
msgid "Signup"
|
msgid "Signup"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,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-29 21:58+0000\n"
|
"POT-Creation-Date: 2022-01-30 09:55+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"
|
||||||
|
|
@ -39,19 +39,19 @@ msgstr ""
|
||||||
msgid "hash"
|
msgid "hash"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:162
|
#: photo21/settings.py:161
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:163
|
#: photo21/settings.py:162
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:164
|
#: photo21/settings.py:163
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:165
|
#: photo21/settings.py:164
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -198,6 +198,16 @@ msgstr ""
|
||||||
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:11
|
||||||
|
#: photo21/templates/account/logout.html:20
|
||||||
|
msgid "Sign Out"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photo21/templates/account/logout.html:14
|
||||||
|
msgid "Are you sure you want to sign out?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/signup.html:6
|
#: photo21/templates/account/signup.html:6
|
||||||
msgid "Signup"
|
msgid "Signup"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,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 07:09+0000\n"
|
"POT-Creation-Date: 2022-01-30 10:06+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"
|
||||||
|
|
@ -42,19 +42,19 @@ msgstr ""
|
||||||
msgid "hash"
|
msgid "hash"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:162
|
#: photo21/settings.py:160
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:163
|
#: photo21/settings.py:161
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:164
|
#: photo21/settings.py:162
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/settings.py:165
|
#: photo21/settings.py:163
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -206,6 +206,18 @@ msgstr ""
|
||||||
msgid "If any problem, please contact the server owners at"
|
msgid "If any problem, please contact the server owners at"
|
||||||
msgstr "En cas de problème, contactez les administrateurs à"
|
msgstr "En cas de problème, contactez les administrateurs à"
|
||||||
|
|
||||||
|
#: photo21/templates/account/logout.html:6
|
||||||
|
#: photo21/templates/account/logout.html:11
|
||||||
|
#: photo21/templates/account/logout.html:20
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Sign up"
|
||||||
|
msgid "Sign Out"
|
||||||
|
msgstr "Inscription"
|
||||||
|
|
||||||
|
#: photo21/templates/account/logout.html:14
|
||||||
|
msgid "Are you sure you want to sign out?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: photo21/templates/account/signup.html:6
|
#: photo21/templates/account/signup.html:6
|
||||||
msgid "Signup"
|
msgid "Signup"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -333,48 +345,3 @@ msgstr ""
|
||||||
#: photo21/templates/socialaccount/connections.html:54
|
#: photo21/templates/socialaccount/connections.html:54
|
||||||
msgid "Add a 3rd Party Account"
|
msgid "Add a 3rd Party Account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#~ msgid "owner"
|
|
||||||
#~ msgstr "propriétaire"
|
|
||||||
|
|
||||||
#~ msgid "Gallery"
|
|
||||||
#~ msgstr "Galerie"
|
|
||||||
|
|
||||||
#~ msgid "-- Create a new gallery --"
|
|
||||||
#~ msgstr "-- Créer une nouvelle galerie --"
|
|
||||||
|
|
||||||
#~ msgid "New gallery title"
|
|
||||||
#~ msgstr "Titre de la nouvelle galerie"
|
|
||||||
|
|
||||||
#~ msgid "New gallery event start date"
|
|
||||||
#~ msgstr "Date de début de l'évènement de la nouvelle galerie"
|
|
||||||
|
|
||||||
#~ msgid "New gallery event end date"
|
|
||||||
#~ msgstr "Date de fin de l'évènement de la nouvelle galerie"
|
|
||||||
|
|
||||||
#~ msgid "New gallery tags"
|
|
||||||
#~ msgstr "Tags de la nouvelle galerie"
|
|
||||||
|
|
||||||
#~ msgid "start date"
|
|
||||||
#~ msgstr "date de début"
|
|
||||||
|
|
||||||
#~ msgid "end date"
|
|
||||||
#~ msgstr "date de fin"
|
|
||||||
|
|
||||||
#~ msgid "license"
|
|
||||||
#~ msgstr "licence"
|
|
||||||
|
|
||||||
#~ msgid "to"
|
|
||||||
#~ msgstr "au"
|
|
||||||
|
|
||||||
#~ msgid "All pictures"
|
|
||||||
#~ msgstr "Toutes les photos"
|
|
||||||
|
|
||||||
#~ msgid "Download all gallery"
|
|
||||||
#~ msgstr "Télécharger toute la galerie"
|
|
||||||
|
|
||||||
#~ msgid "Drag and drop photos here"
|
|
||||||
#~ msgstr "Glissez et déposez les photos ici"
|
|
||||||
|
|
||||||
#~ msgid "Owner will be"
|
|
||||||
#~ msgstr "Le propriétaire sera"
|
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,6 @@ INSTALLED_APPS = [
|
||||||
'allauth.socialaccount',
|
'allauth.socialaccount',
|
||||||
'allauth_note_kfet',
|
'allauth_note_kfet',
|
||||||
'crispy_forms',
|
'crispy_forms',
|
||||||
'photologue_custom',
|
|
||||||
'photologue',
|
'photologue',
|
||||||
'taggit',
|
'taggit',
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,8 @@ from crispy_forms.layout import Div, Layout, Submit
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.utils.text import slugify
|
from django.utils.text import slugify
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from photologue.models import Gallery, Tag
|
|
||||||
|
from .models import Gallery, Tag
|
||||||
|
|
||||||
|
|
||||||
class UploadForm(forms.Form):
|
class UploadForm(forms.Form):
|
||||||
|
|
@ -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 07:09+0000\n"
|
"POT-Creation-Date: 2022-01-30 09:55+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,75 +22,79 @@ 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/models.py:86
|
#: photologue/admin.py:30 photologue/models.py:499
|
||||||
|
msgid "owner"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/models.py:84
|
||||||
msgid "Very Low"
|
msgid "Very Low"
|
||||||
msgstr "Sehr niedrig"
|
msgstr "Sehr niedrig"
|
||||||
|
|
||||||
#: photologue/models.py:87
|
#: photologue/models.py:85
|
||||||
msgid "Low"
|
msgid "Low"
|
||||||
msgstr "Niedrig"
|
msgstr "Niedrig"
|
||||||
|
|
||||||
#: photologue/models.py:88
|
#: photologue/models.py:86
|
||||||
msgid "Medium-Low"
|
msgid "Medium-Low"
|
||||||
msgstr "Mittel-niedrig"
|
msgstr "Mittel-niedrig"
|
||||||
|
|
||||||
#: photologue/models.py:89
|
#: photologue/models.py:87
|
||||||
msgid "Medium"
|
msgid "Medium"
|
||||||
msgstr "Mittel"
|
msgstr "Mittel"
|
||||||
|
|
||||||
#: photologue/models.py:90
|
#: photologue/models.py:88
|
||||||
msgid "Medium-High"
|
msgid "Medium-High"
|
||||||
msgstr "Mittel-hoch"
|
msgstr "Mittel-hoch"
|
||||||
|
|
||||||
#: photologue/models.py:91
|
#: photologue/models.py:89
|
||||||
msgid "High"
|
msgid "High"
|
||||||
msgstr "Hoch"
|
msgstr "Hoch"
|
||||||
|
|
||||||
#: photologue/models.py:92
|
#: photologue/models.py:90
|
||||||
msgid "Very High"
|
msgid "Very High"
|
||||||
msgstr "Sehr hoch"
|
msgstr "Sehr hoch"
|
||||||
|
|
||||||
#: photologue/models.py:97
|
#: photologue/models.py:95
|
||||||
msgid "Top"
|
msgid "Top"
|
||||||
msgstr "Oben"
|
msgstr "Oben"
|
||||||
|
|
||||||
#: photologue/models.py:98
|
#: photologue/models.py:96
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "Rechts"
|
msgstr "Rechts"
|
||||||
|
|
||||||
#: photologue/models.py:99
|
#: photologue/models.py:97
|
||||||
msgid "Bottom"
|
msgid "Bottom"
|
||||||
msgstr "Unten"
|
msgstr "Unten"
|
||||||
|
|
||||||
#: photologue/models.py:100
|
#: photologue/models.py:98
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "Links"
|
msgstr "Links"
|
||||||
|
|
||||||
#: photologue/models.py:101
|
#: photologue/models.py:99
|
||||||
msgid "Center (Default)"
|
msgid "Center (Default)"
|
||||||
msgstr "Mitte (Standard)"
|
msgstr "Mitte (Standard)"
|
||||||
|
|
||||||
#: photologue/models.py:105
|
#: photologue/models.py:103
|
||||||
msgid "Flip left to right"
|
msgid "Flip left to right"
|
||||||
msgstr "Horizontal spiegeln"
|
msgstr "Horizontal spiegeln"
|
||||||
|
|
||||||
#: photologue/models.py:106
|
#: photologue/models.py:104
|
||||||
msgid "Flip top to bottom"
|
msgid "Flip top to bottom"
|
||||||
msgstr "Vertikal spiegeln"
|
msgstr "Vertikal spiegeln"
|
||||||
|
|
||||||
#: photologue/models.py:107
|
#: photologue/models.py:105
|
||||||
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:108
|
#: photologue/models.py:106
|
||||||
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:109
|
#: photologue/models.py:107
|
||||||
msgid "Rotate 180 degrees"
|
msgid "Rotate 180 degrees"
|
||||||
msgstr "Um 180° drehen"
|
msgstr "Um 180° drehen"
|
||||||
|
|
||||||
#: photologue/models.py:119
|
#: photologue/models.py:117
|
||||||
#, 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-"
|
||||||
|
|
@ -101,106 +105,122 @@ 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:141
|
#: photologue/models.py:139
|
||||||
msgid "date published"
|
msgid "date published"
|
||||||
msgstr "Veröffentlichungsdatum"
|
msgstr "Veröffentlichungsdatum"
|
||||||
|
|
||||||
#: photologue/models.py:143 photologue/models.py:474
|
#: photologue/models.py:141 photologue/models.py:485
|
||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr "Titel"
|
msgstr "Titel"
|
||||||
|
|
||||||
#: photologue/models.py:146
|
#: photologue/models.py:144
|
||||||
msgid "title slug"
|
msgid "title slug"
|
||||||
msgstr "Kurztitel"
|
msgstr "Kurztitel"
|
||||||
|
|
||||||
#: photologue/models.py:149 photologue/models.py:480
|
#: photologue/models.py:147 photologue/models.py:491 photologue/models.py:697
|
||||||
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:150
|
||||||
|
msgid "start date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/models.py:155
|
||||||
|
msgid "end date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/models.py:157
|
||||||
msgid "description"
|
msgid "description"
|
||||||
msgstr "Beschreibung"
|
msgstr "Beschreibung"
|
||||||
|
|
||||||
#: photologue/models.py:152 photologue/models.py:485
|
#: photologue/models.py:162 photologue/models.py:703
|
||||||
|
msgid "tags"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/models.py:165 photologue/models.py:506
|
||||||
msgid "is public"
|
msgid "is public"
|
||||||
msgstr "ist öffentlich"
|
msgstr "ist öffentlich"
|
||||||
|
|
||||||
#: photologue/models.py:154
|
#: photologue/models.py:167
|
||||||
msgid "Public galleries will be displayed in the default views."
|
msgid "Public galleries will be displayed in the default views."
|
||||||
msgstr "Öffentliche Galerien werden in den Standard-Views angezeigt."
|
msgstr "Öffentliche Galerien werden in den Standard-Views angezeigt."
|
||||||
|
|
||||||
#: photologue/models.py:158 photologue/models.py:495
|
#: photologue/models.py:171 photologue/models.py:514
|
||||||
msgid "photos"
|
msgid "photos"
|
||||||
msgstr "Fotos"
|
msgstr "Fotos"
|
||||||
|
|
||||||
#: photologue/models.py:166
|
#: photologue/models.py:177
|
||||||
msgid "gallery"
|
msgid "gallery"
|
||||||
msgstr "Galerie"
|
msgstr "Galerie"
|
||||||
|
|
||||||
#: photologue/models.py:167
|
#: photologue/models.py:178
|
||||||
msgid "galleries"
|
msgid "galleries"
|
||||||
msgstr "Galerien"
|
msgstr "Galerien"
|
||||||
|
|
||||||
#: photologue/models.py:202
|
#: photologue/models.py:213
|
||||||
msgid "count"
|
msgid "count"
|
||||||
msgstr "Anzahl"
|
msgstr "Anzahl"
|
||||||
|
|
||||||
#: photologue/models.py:210
|
#: photologue/models.py:221
|
||||||
msgid "image"
|
msgid "image"
|
||||||
msgstr "Bild"
|
msgstr "Bild"
|
||||||
|
|
||||||
#: photologue/models.py:213
|
#: photologue/models.py:224
|
||||||
msgid "date taken"
|
msgid "date taken"
|
||||||
msgstr "Aufnahmedatum"
|
msgstr "Aufnahmedatum"
|
||||||
|
|
||||||
#: photologue/models.py:216
|
#: photologue/models.py:227
|
||||||
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:217
|
#: photologue/models.py:228
|
||||||
msgid "view count"
|
msgid "view count"
|
||||||
msgstr "Anzahl an Aufrufen"
|
msgstr "Anzahl an Aufrufen"
|
||||||
|
|
||||||
#: photologue/models.py:220
|
#: photologue/models.py:231
|
||||||
msgid "crop from"
|
msgid "crop from"
|
||||||
msgstr "Beschneiden von"
|
msgstr "Beschneiden von"
|
||||||
|
|
||||||
#: photologue/models.py:243
|
#: photologue/models.py:254
|
||||||
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:250
|
#: photologue/models.py:261
|
||||||
msgid "Thumbnail"
|
msgid "Thumbnail"
|
||||||
msgstr "Vorschaubild"
|
msgstr "Vorschaubild"
|
||||||
|
|
||||||
#: photologue/models.py:477
|
#: photologue/models.py:488 photologue/models.py:696
|
||||||
msgid "slug"
|
msgid "slug"
|
||||||
msgstr "Kurztitel"
|
msgstr "Kurztitel"
|
||||||
|
|
||||||
#: photologue/models.py:481
|
#: photologue/models.py:492
|
||||||
msgid "caption"
|
msgid "caption"
|
||||||
msgstr "Bildunterschrift"
|
msgstr "Bildunterschrift"
|
||||||
|
|
||||||
#: photologue/models.py:483
|
#: photologue/models.py:494
|
||||||
msgid "date added"
|
msgid "date added"
|
||||||
msgstr "Datum des Eintrags"
|
msgstr "Datum des Eintrags"
|
||||||
|
|
||||||
#: photologue/models.py:487
|
#: photologue/models.py:504
|
||||||
|
msgid "license"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/models.py:508
|
||||||
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:494
|
#: photologue/models.py:513
|
||||||
msgid "photo"
|
msgid "photo"
|
||||||
msgstr "Foto"
|
msgstr "Foto"
|
||||||
|
|
||||||
#: photologue/models.py:556
|
#: photologue/models.py:575 photologue/models.py:691
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "Name"
|
msgstr "Name"
|
||||||
|
|
||||||
#: photologue/models.py:560
|
#: photologue/models.py:579
|
||||||
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\"."
|
||||||
|
|
@ -209,41 +229,41 @@ msgstr ""
|
||||||
"enthalten. Beispiele: \"thumbnail\", \"display\", \"small\", "
|
"enthalten. Beispiele: \"thumbnail\", \"display\", \"small\", "
|
||||||
"\"main_page_widget\"."
|
"\"main_page_widget\"."
|
||||||
|
|
||||||
#: photologue/models.py:567
|
#: photologue/models.py:586
|
||||||
msgid "width"
|
msgid "width"
|
||||||
msgstr "Breite"
|
msgstr "Breite"
|
||||||
|
|
||||||
#: photologue/models.py:570
|
#: photologue/models.py:589
|
||||||
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:571
|
#: photologue/models.py:590
|
||||||
msgid "height"
|
msgid "height"
|
||||||
msgstr "Höhe"
|
msgstr "Höhe"
|
||||||
|
|
||||||
#: photologue/models.py:574
|
#: photologue/models.py:593
|
||||||
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:575
|
#: photologue/models.py:594
|
||||||
msgid "quality"
|
msgid "quality"
|
||||||
msgstr "Qualität"
|
msgstr "Qualität"
|
||||||
|
|
||||||
#: photologue/models.py:578
|
#: photologue/models.py:597
|
||||||
msgid "JPEG image quality."
|
msgid "JPEG image quality."
|
||||||
msgstr "JPEG-Bildqualität"
|
msgstr "JPEG-Bildqualität"
|
||||||
|
|
||||||
#: photologue/models.py:579
|
#: photologue/models.py:598
|
||||||
msgid "upscale images?"
|
msgid "upscale images?"
|
||||||
msgstr "Bilder hochskalieren?"
|
msgstr "Bilder hochskalieren?"
|
||||||
|
|
||||||
#: photologue/models.py:581
|
#: photologue/models.py:600
|
||||||
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."
|
||||||
|
|
@ -252,32 +272,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:585
|
#: photologue/models.py:604
|
||||||
msgid "crop to fit?"
|
msgid "crop to fit?"
|
||||||
msgstr "Zuschneiden?"
|
msgstr "Zuschneiden?"
|
||||||
|
|
||||||
#: photologue/models.py:587
|
#: photologue/models.py:606
|
||||||
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:589
|
#: photologue/models.py:608
|
||||||
msgid "pre-cache?"
|
msgid "pre-cache?"
|
||||||
msgstr "Vorausspeichern?"
|
msgstr "Vorausspeichern?"
|
||||||
|
|
||||||
#: photologue/models.py:591
|
#: photologue/models.py:610
|
||||||
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:592
|
#: photologue/models.py:611
|
||||||
msgid "increment view count?"
|
msgid "increment view count?"
|
||||||
msgstr "Bildzähler?"
|
msgstr "Bildzähler?"
|
||||||
|
|
||||||
#: photologue/models.py:594
|
#: photologue/models.py:613
|
||||||
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."
|
||||||
|
|
@ -285,32 +305,32 @@ 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:599
|
#: photologue/models.py:618
|
||||||
msgid "photo size"
|
msgid "photo size"
|
||||||
msgstr "Foto-Größe"
|
msgstr "Foto-Größe"
|
||||||
|
|
||||||
#: photologue/models.py:600
|
#: photologue/models.py:619
|
||||||
msgid "photo sizes"
|
msgid "photo sizes"
|
||||||
msgstr "Foto-Größen"
|
msgstr "Foto-Größen"
|
||||||
|
|
||||||
#: photologue/models.py:617
|
#: photologue/models.py:636
|
||||||
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_custom/admin.py:43 photologue_custom/models.py:51
|
#: photologue/models.py:702
|
||||||
msgid "owner"
|
msgid "tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:34
|
#: photologue_custom/forms.py:22
|
||||||
msgid "Gallery"
|
msgid "Gallery"
|
||||||
msgstr "Galerie"
|
msgstr "Galerie"
|
||||||
|
|
||||||
#: photologue_custom/forms.py:36
|
#: photologue_custom/forms.py:24
|
||||||
msgid "-- Create a new gallery --"
|
msgid "-- Create a new gallery --"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:37
|
#: photologue_custom/forms.py:25
|
||||||
msgid ""
|
msgid ""
|
||||||
"Select a gallery to add these images to. Leave this empty to create a new "
|
"Select a gallery to add these images to. Leave this empty to create a new "
|
||||||
"gallery from the supplied title."
|
"gallery from the supplied title."
|
||||||
|
|
@ -318,59 +338,43 @@ msgstr ""
|
||||||
"Wähle eine Galerie aus, zu der diese Bilder hinzugefügt werden sollen. Lasse "
|
"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."
|
"dieses Feld leer, um eine neue Galerie mit dem angegeben Titel zu erzeugen."
|
||||||
|
|
||||||
#: photologue_custom/forms.py:41
|
#: photologue_custom/forms.py:29
|
||||||
#, fuzzy
|
|
||||||
#| msgid "View all galleries"
|
|
||||||
msgid "New gallery title"
|
msgid "New gallery title"
|
||||||
msgstr "Zeige alle Galerien."
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:46
|
#: photologue_custom/forms.py:34
|
||||||
msgid "New gallery event start date"
|
msgid "New gallery event start date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:51
|
#: photologue_custom/forms.py:39
|
||||||
msgid "New gallery event end date"
|
msgid "New gallery event end date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:57
|
#: photologue_custom/forms.py:45
|
||||||
#, fuzzy
|
|
||||||
#| msgid "gallery"
|
|
||||||
msgid "New gallery tags"
|
msgid "New gallery tags"
|
||||||
msgstr "Galerie"
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:59
|
#: photologue_custom/forms.py:47
|
||||||
msgid ""
|
msgid ""
|
||||||
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:76
|
#: photologue_custom/forms.py:64
|
||||||
#: photologue_custom/templates/photologue/upload.html:6
|
#: photologue_custom/templates/photologue/upload.html:6
|
||||||
#: photologue_custom/templates/photologue/upload.html:73
|
#: photologue_custom/templates/photologue/upload.html:73
|
||||||
msgid "Upload"
|
msgid "Upload"
|
||||||
msgstr "Hochladen"
|
msgstr "Hochladen"
|
||||||
|
|
||||||
#: photologue_custom/forms.py:82
|
#: photologue_custom/forms.py:70
|
||||||
msgid "A gallery with that title already exists."
|
msgid "A gallery with that title already exists."
|
||||||
msgstr "Es existiert bereits eine Gallerie mit diesem Titel."
|
msgstr "Es existiert bereits eine Gallerie mit diesem Titel."
|
||||||
|
|
||||||
#: photologue_custom/forms.py:91
|
#: photologue_custom/forms.py:79
|
||||||
msgid "Select an existing gallery, or enter a title for a new gallery."
|
msgid "Select an existing gallery, or enter a title for a new gallery."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wähle eine existierende Galerie aus oder gib einen Titel für eine neue "
|
"Wähle eine existierende Galerie aus oder gib einen Titel für eine neue "
|
||||||
"Galerie ein."
|
"Galerie ein."
|
||||||
|
|
||||||
#: photologue_custom/models.py:23
|
|
||||||
msgid "start date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/models.py:28
|
|
||||||
msgid "end date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/models.py:56
|
|
||||||
msgid "license"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive.html:7
|
#: photologue_custom/templates/photologue/gallery_archive.html:7
|
||||||
#: photologue_custom/templates/photologue/gallery_archive.html:12
|
#: photologue_custom/templates/photologue/gallery_archive.html:12
|
||||||
msgid "Latest photo galleries"
|
msgid "Latest photo galleries"
|
||||||
|
|
@ -403,16 +407,12 @@ msgid "to"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_detail.html:57
|
#: photologue_custom/templates/photologue/gallery_detail.html:57
|
||||||
#, fuzzy
|
|
||||||
#| msgid "All photos"
|
|
||||||
msgid "All pictures"
|
msgid "All pictures"
|
||||||
msgstr "Alle Fotos"
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_detail.html:78
|
#: photologue_custom/templates/photologue/gallery_detail.html:78
|
||||||
#, fuzzy
|
|
||||||
#| msgid "View all galleries"
|
|
||||||
msgid "Download all gallery"
|
msgid "Download all gallery"
|
||||||
msgstr "Zeige alle Galerien."
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/photo_detail.html:13
|
#: photologue_custom/templates/photologue/photo_detail.html:13
|
||||||
msgid "Published"
|
msgid "Published"
|
||||||
|
|
|
||||||
|
|
@ -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 07:09+0000\n"
|
"POT-Creation-Date: 2022-01-30 09:55+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,75 +23,79 @@ 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/models.py:86
|
#: photologue/admin.py:30 photologue/models.py:499
|
||||||
|
msgid "owner"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/models.py:84
|
||||||
msgid "Very Low"
|
msgid "Very Low"
|
||||||
msgstr "Muy bajo"
|
msgstr "Muy bajo"
|
||||||
|
|
||||||
#: photologue/models.py:87
|
#: photologue/models.py:85
|
||||||
msgid "Low"
|
msgid "Low"
|
||||||
msgstr "Bajo"
|
msgstr "Bajo"
|
||||||
|
|
||||||
#: photologue/models.py:88
|
#: photologue/models.py:86
|
||||||
msgid "Medium-Low"
|
msgid "Medium-Low"
|
||||||
msgstr "Medio-bajo"
|
msgstr "Medio-bajo"
|
||||||
|
|
||||||
#: photologue/models.py:89
|
#: photologue/models.py:87
|
||||||
msgid "Medium"
|
msgid "Medium"
|
||||||
msgstr "Medio"
|
msgstr "Medio"
|
||||||
|
|
||||||
#: photologue/models.py:90
|
#: photologue/models.py:88
|
||||||
msgid "Medium-High"
|
msgid "Medium-High"
|
||||||
msgstr "Medio-alto"
|
msgstr "Medio-alto"
|
||||||
|
|
||||||
#: photologue/models.py:91
|
#: photologue/models.py:89
|
||||||
msgid "High"
|
msgid "High"
|
||||||
msgstr "Alto"
|
msgstr "Alto"
|
||||||
|
|
||||||
#: photologue/models.py:92
|
#: photologue/models.py:90
|
||||||
msgid "Very High"
|
msgid "Very High"
|
||||||
msgstr "Muy alto"
|
msgstr "Muy alto"
|
||||||
|
|
||||||
#: photologue/models.py:97
|
#: photologue/models.py:95
|
||||||
msgid "Top"
|
msgid "Top"
|
||||||
msgstr "Arriba"
|
msgstr "Arriba"
|
||||||
|
|
||||||
#: photologue/models.py:98
|
#: photologue/models.py:96
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "Derecha"
|
msgstr "Derecha"
|
||||||
|
|
||||||
#: photologue/models.py:99
|
#: photologue/models.py:97
|
||||||
msgid "Bottom"
|
msgid "Bottom"
|
||||||
msgstr "Abajo"
|
msgstr "Abajo"
|
||||||
|
|
||||||
#: photologue/models.py:100
|
#: photologue/models.py:98
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "Izquierda"
|
msgstr "Izquierda"
|
||||||
|
|
||||||
#: photologue/models.py:101
|
#: photologue/models.py:99
|
||||||
msgid "Center (Default)"
|
msgid "Center (Default)"
|
||||||
msgstr "Centro (por defecto)"
|
msgstr "Centro (por defecto)"
|
||||||
|
|
||||||
#: photologue/models.py:105
|
#: photologue/models.py:103
|
||||||
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:106
|
#: photologue/models.py:104
|
||||||
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:107
|
#: photologue/models.py:105
|
||||||
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:108
|
#: photologue/models.py:106
|
||||||
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:109
|
#: photologue/models.py:107
|
||||||
msgid "Rotate 180 degrees"
|
msgid "Rotate 180 degrees"
|
||||||
msgstr "Rotar 180 grados"
|
msgstr "Rotar 180 grados"
|
||||||
|
|
||||||
#: photologue/models.py:119
|
#: photologue/models.py:117
|
||||||
#, 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-"
|
||||||
|
|
@ -102,103 +106,119 @@ 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:141
|
#: photologue/models.py:139
|
||||||
msgid "date published"
|
msgid "date published"
|
||||||
msgstr "fecha de publicación"
|
msgstr "fecha de publicación"
|
||||||
|
|
||||||
#: photologue/models.py:143 photologue/models.py:474
|
#: photologue/models.py:141 photologue/models.py:485
|
||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr "título"
|
msgstr "título"
|
||||||
|
|
||||||
#: photologue/models.py:146
|
#: photologue/models.py:144
|
||||||
msgid "title slug"
|
msgid "title slug"
|
||||||
msgstr "título slug"
|
msgstr "título slug"
|
||||||
|
|
||||||
#: photologue/models.py:149 photologue/models.py:480
|
#: photologue/models.py:147 photologue/models.py:491 photologue/models.py:697
|
||||||
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:150
|
||||||
|
msgid "start date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/models.py:155
|
||||||
|
msgid "end date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/models.py:157
|
||||||
msgid "description"
|
msgid "description"
|
||||||
msgstr "descripción"
|
msgstr "descripción"
|
||||||
|
|
||||||
#: photologue/models.py:152 photologue/models.py:485
|
#: photologue/models.py:162 photologue/models.py:703
|
||||||
|
msgid "tags"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/models.py:165 photologue/models.py:506
|
||||||
msgid "is public"
|
msgid "is public"
|
||||||
msgstr "es público"
|
msgstr "es público"
|
||||||
|
|
||||||
#: photologue/models.py:154
|
#: photologue/models.py:167
|
||||||
msgid "Public galleries will be displayed in the default views."
|
msgid "Public galleries will be displayed in the default views."
|
||||||
msgstr "Las galerías públicas serán mostradas en las vistas por defecto."
|
msgstr "Las galerías públicas serán mostradas en las vistas por defecto."
|
||||||
|
|
||||||
#: photologue/models.py:158 photologue/models.py:495
|
#: photologue/models.py:171 photologue/models.py:514
|
||||||
msgid "photos"
|
msgid "photos"
|
||||||
msgstr "fotos"
|
msgstr "fotos"
|
||||||
|
|
||||||
#: photologue/models.py:166
|
#: photologue/models.py:177
|
||||||
msgid "gallery"
|
msgid "gallery"
|
||||||
msgstr "galería"
|
msgstr "galería"
|
||||||
|
|
||||||
#: photologue/models.py:167
|
#: photologue/models.py:178
|
||||||
msgid "galleries"
|
msgid "galleries"
|
||||||
msgstr "galerías"
|
msgstr "galerías"
|
||||||
|
|
||||||
#: photologue/models.py:202
|
#: photologue/models.py:213
|
||||||
msgid "count"
|
msgid "count"
|
||||||
msgstr "contar"
|
msgstr "contar"
|
||||||
|
|
||||||
#: photologue/models.py:210
|
#: photologue/models.py:221
|
||||||
msgid "image"
|
msgid "image"
|
||||||
msgstr "imagen"
|
msgstr "imagen"
|
||||||
|
|
||||||
#: photologue/models.py:213
|
#: photologue/models.py:224
|
||||||
msgid "date taken"
|
msgid "date taken"
|
||||||
msgstr "fecha en la que se tomó"
|
msgstr "fecha en la que se tomó"
|
||||||
|
|
||||||
#: photologue/models.py:216
|
#: photologue/models.py:227
|
||||||
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:217
|
#: photologue/models.py:228
|
||||||
msgid "view count"
|
msgid "view count"
|
||||||
msgstr "Contador de visitas"
|
msgstr "Contador de visitas"
|
||||||
|
|
||||||
#: photologue/models.py:220
|
#: photologue/models.py:231
|
||||||
msgid "crop from"
|
msgid "crop from"
|
||||||
msgstr "Recortar desde"
|
msgstr "Recortar desde"
|
||||||
|
|
||||||
#: photologue/models.py:243
|
#: photologue/models.py:254
|
||||||
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:250
|
#: photologue/models.py:261
|
||||||
msgid "Thumbnail"
|
msgid "Thumbnail"
|
||||||
msgstr "Miniatura"
|
msgstr "Miniatura"
|
||||||
|
|
||||||
#: photologue/models.py:477
|
#: photologue/models.py:488 photologue/models.py:696
|
||||||
msgid "slug"
|
msgid "slug"
|
||||||
msgstr "slug"
|
msgstr "slug"
|
||||||
|
|
||||||
#: photologue/models.py:481
|
#: photologue/models.py:492
|
||||||
msgid "caption"
|
msgid "caption"
|
||||||
msgstr "pie de foto"
|
msgstr "pie de foto"
|
||||||
|
|
||||||
#: photologue/models.py:483
|
#: photologue/models.py:494
|
||||||
msgid "date added"
|
msgid "date added"
|
||||||
msgstr "fecha añadida"
|
msgstr "fecha añadida"
|
||||||
|
|
||||||
#: photologue/models.py:487
|
#: photologue/models.py:504
|
||||||
|
msgid "license"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/models.py:508
|
||||||
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:494
|
#: photologue/models.py:513
|
||||||
msgid "photo"
|
msgid "photo"
|
||||||
msgstr "foto"
|
msgstr "foto"
|
||||||
|
|
||||||
#: photologue/models.py:556
|
#: photologue/models.py:575 photologue/models.py:691
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "nombre"
|
msgstr "nombre"
|
||||||
|
|
||||||
#: photologue/models.py:560
|
#: photologue/models.py:579
|
||||||
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\"."
|
||||||
|
|
@ -206,41 +226,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:567
|
#: photologue/models.py:586
|
||||||
msgid "width"
|
msgid "width"
|
||||||
msgstr "anchura"
|
msgstr "anchura"
|
||||||
|
|
||||||
#: photologue/models.py:570
|
#: photologue/models.py:589
|
||||||
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:571
|
#: photologue/models.py:590
|
||||||
msgid "height"
|
msgid "height"
|
||||||
msgstr "altura"
|
msgstr "altura"
|
||||||
|
|
||||||
#: photologue/models.py:574
|
#: photologue/models.py:593
|
||||||
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:575
|
#: photologue/models.py:594
|
||||||
msgid "quality"
|
msgid "quality"
|
||||||
msgstr "calidad"
|
msgstr "calidad"
|
||||||
|
|
||||||
#: photologue/models.py:578
|
#: photologue/models.py:597
|
||||||
msgid "JPEG image quality."
|
msgid "JPEG image quality."
|
||||||
msgstr "Calidad de imagen JPEG."
|
msgstr "Calidad de imagen JPEG."
|
||||||
|
|
||||||
#: photologue/models.py:579
|
#: photologue/models.py:598
|
||||||
msgid "upscale images?"
|
msgid "upscale images?"
|
||||||
msgstr "¿Aumentar imágenes?"
|
msgstr "¿Aumentar imágenes?"
|
||||||
|
|
||||||
#: photologue/models.py:581
|
#: photologue/models.py:600
|
||||||
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."
|
||||||
|
|
@ -249,11 +269,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:585
|
#: photologue/models.py:604
|
||||||
msgid "crop to fit?"
|
msgid "crop to fit?"
|
||||||
msgstr "¿Recortar hasta ajustar?"
|
msgstr "¿Recortar hasta ajustar?"
|
||||||
|
|
||||||
#: photologue/models.py:587
|
#: photologue/models.py:606
|
||||||
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."
|
||||||
|
|
@ -261,21 +281,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:589
|
#: photologue/models.py:608
|
||||||
msgid "pre-cache?"
|
msgid "pre-cache?"
|
||||||
msgstr "¿pre-cachear?"
|
msgstr "¿pre-cachear?"
|
||||||
|
|
||||||
#: photologue/models.py:591
|
#: photologue/models.py:610
|
||||||
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:592
|
#: photologue/models.py:611
|
||||||
msgid "increment view count?"
|
msgid "increment view count?"
|
||||||
msgstr "¿incrementar contador de visualizaciones?"
|
msgstr "¿incrementar contador de visualizaciones?"
|
||||||
|
|
||||||
#: photologue/models.py:594
|
#: photologue/models.py:613
|
||||||
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."
|
||||||
|
|
@ -283,31 +303,31 @@ 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:599
|
#: photologue/models.py:618
|
||||||
msgid "photo size"
|
msgid "photo size"
|
||||||
msgstr "tamaño de foto"
|
msgstr "tamaño de foto"
|
||||||
|
|
||||||
#: photologue/models.py:600
|
#: photologue/models.py:619
|
||||||
msgid "photo sizes"
|
msgid "photo sizes"
|
||||||
msgstr "tamaños de foto"
|
msgstr "tamaños de foto"
|
||||||
|
|
||||||
#: photologue/models.py:617
|
#: photologue/models.py:636
|
||||||
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_custom/admin.py:43 photologue_custom/models.py:51
|
#: photologue/models.py:702
|
||||||
msgid "owner"
|
msgid "tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:34
|
#: photologue_custom/forms.py:22
|
||||||
msgid "Gallery"
|
msgid "Gallery"
|
||||||
msgstr "Galería"
|
msgstr "Galería"
|
||||||
|
|
||||||
#: photologue_custom/forms.py:36
|
#: photologue_custom/forms.py:24
|
||||||
msgid "-- Create a new gallery --"
|
msgid "-- Create a new gallery --"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:37
|
#: photologue_custom/forms.py:25
|
||||||
msgid ""
|
msgid ""
|
||||||
"Select a gallery to add these images to. Leave this empty to create a new "
|
"Select a gallery to add these images to. Leave this empty to create a new "
|
||||||
"gallery from the supplied title."
|
"gallery from the supplied title."
|
||||||
|
|
@ -315,58 +335,42 @@ msgstr ""
|
||||||
"Seleccione una galería para agregarle estas imágenes. Déjelo vacío para "
|
"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."
|
"crear una nueva galería a partir de este título."
|
||||||
|
|
||||||
#: photologue_custom/forms.py:41
|
#: photologue_custom/forms.py:29
|
||||||
#, fuzzy
|
|
||||||
#| msgid "View all galleries"
|
|
||||||
msgid "New gallery title"
|
msgid "New gallery title"
|
||||||
msgstr "Ver todas las galerías"
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:46
|
#: photologue_custom/forms.py:34
|
||||||
msgid "New gallery event start date"
|
msgid "New gallery event start date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:51
|
#: photologue_custom/forms.py:39
|
||||||
msgid "New gallery event end date"
|
msgid "New gallery event end date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:57
|
#: photologue_custom/forms.py:45
|
||||||
#, fuzzy
|
|
||||||
#| msgid "gallery"
|
|
||||||
msgid "New gallery tags"
|
msgid "New gallery tags"
|
||||||
msgstr "galería"
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:59
|
#: photologue_custom/forms.py:47
|
||||||
msgid ""
|
msgid ""
|
||||||
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:76
|
#: photologue_custom/forms.py:64
|
||||||
#: photologue_custom/templates/photologue/upload.html:6
|
#: photologue_custom/templates/photologue/upload.html:6
|
||||||
#: photologue_custom/templates/photologue/upload.html:73
|
#: photologue_custom/templates/photologue/upload.html:73
|
||||||
msgid "Upload"
|
msgid "Upload"
|
||||||
msgstr "Subir"
|
msgstr "Subir"
|
||||||
|
|
||||||
#: photologue_custom/forms.py:82
|
#: photologue_custom/forms.py:70
|
||||||
msgid "A gallery with that title already exists."
|
msgid "A gallery with that title already exists."
|
||||||
msgstr "Ya existe una galería con ese título."
|
msgstr "Ya existe una galería con ese título."
|
||||||
|
|
||||||
#: photologue_custom/forms.py:91
|
#: photologue_custom/forms.py:79
|
||||||
msgid "Select an existing gallery, or enter a title for a new gallery."
|
msgid "Select an existing gallery, or enter a title for a new gallery."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Seleccione una galería existente o ingrese un nuevo nombre para la galería."
|
"Seleccione una galería existente o ingrese un nuevo nombre para la galería."
|
||||||
|
|
||||||
#: photologue_custom/models.py:23
|
|
||||||
msgid "start date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/models.py:28
|
|
||||||
msgid "end date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/models.py:56
|
|
||||||
msgid "license"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive.html:7
|
#: photologue_custom/templates/photologue/gallery_archive.html:7
|
||||||
#: photologue_custom/templates/photologue/gallery_archive.html:12
|
#: photologue_custom/templates/photologue/gallery_archive.html:12
|
||||||
msgid "Latest photo galleries"
|
msgid "Latest photo galleries"
|
||||||
|
|
@ -399,16 +403,12 @@ msgid "to"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_detail.html:57
|
#: photologue_custom/templates/photologue/gallery_detail.html:57
|
||||||
#, fuzzy
|
|
||||||
#| msgid "All photos"
|
|
||||||
msgid "All pictures"
|
msgid "All pictures"
|
||||||
msgstr "Todas las fotos"
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_detail.html:78
|
#: photologue_custom/templates/photologue/gallery_detail.html:78
|
||||||
#, fuzzy
|
|
||||||
#| msgid "View all galleries"
|
|
||||||
msgid "Download all gallery"
|
msgid "Download all gallery"
|
||||||
msgstr "Ver todas las galerías"
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/photo_detail.html:13
|
#: photologue_custom/templates/photologue/photo_detail.html:13
|
||||||
msgid "Published"
|
msgid "Published"
|
||||||
|
|
|
||||||
|
|
@ -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-01-30 07:09+0000\n"
|
"POT-Creation-Date: 2022-01-30 10:06+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,75 +21,131 @@ 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/models.py:86
|
#: photologue/admin.py:30 photologue/models.py:499
|
||||||
|
msgid "owner"
|
||||||
|
msgstr "propriétaire"
|
||||||
|
|
||||||
|
#: photologue/forms.py:23
|
||||||
|
msgid "Gallery"
|
||||||
|
msgstr "Galerie"
|
||||||
|
|
||||||
|
#: photologue/forms.py:25
|
||||||
|
msgid "-- Create a new gallery --"
|
||||||
|
msgstr "-- Créer une nouvelle galerie --"
|
||||||
|
|
||||||
|
#: photologue/forms.py:26
|
||||||
|
msgid ""
|
||||||
|
"Select a gallery to add these images to. Leave this empty to create a new "
|
||||||
|
"gallery from the supplied title."
|
||||||
|
msgstr ""
|
||||||
|
"Sélectionner une galerie à laquelle ajouter ces images. Laisser ce champ "
|
||||||
|
"vide pour créer une nouvelle galerie à partir du titre indiqué."
|
||||||
|
|
||||||
|
#: photologue/forms.py:30
|
||||||
|
msgid "New gallery title"
|
||||||
|
msgstr "Titre de la nouvelle galerie"
|
||||||
|
|
||||||
|
#: photologue/forms.py:35
|
||||||
|
msgid "New gallery event start date"
|
||||||
|
msgstr "Date de début de l'évènement de la nouvelle galerie"
|
||||||
|
|
||||||
|
#: photologue/forms.py:40
|
||||||
|
msgid "New gallery event end date"
|
||||||
|
msgstr "Date de fin de l'évènement de la nouvelle galerie"
|
||||||
|
|
||||||
|
#: photologue/forms.py:46
|
||||||
|
msgid "New gallery tags"
|
||||||
|
msgstr "Balises de la nouvelle galerie"
|
||||||
|
|
||||||
|
#: photologue/forms.py:48
|
||||||
|
msgid ""
|
||||||
|
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: photologue/forms.py:65 photologue/templates/photologue/upload.html:6
|
||||||
|
#: photologue/templates/photologue/upload.html:73
|
||||||
|
msgid "Upload"
|
||||||
|
msgstr "Télécharger"
|
||||||
|
|
||||||
|
#: photologue/forms.py:71
|
||||||
|
msgid "A gallery with that title already exists."
|
||||||
|
msgstr "Une galerie portant ce nom existe déjà."
|
||||||
|
|
||||||
|
#: photologue/forms.py:80
|
||||||
|
msgid "Select an existing gallery, or enter a title for a new gallery."
|
||||||
|
msgstr ""
|
||||||
|
"Sélectionner une galerie existante ou entrer un titre pour une nouvelle "
|
||||||
|
"galerie."
|
||||||
|
|
||||||
|
#: photologue/models.py:84
|
||||||
msgid "Very Low"
|
msgid "Very Low"
|
||||||
msgstr "Très Bas"
|
msgstr "Très Bas"
|
||||||
|
|
||||||
#: photologue/models.py:87
|
#: photologue/models.py:85
|
||||||
msgid "Low"
|
msgid "Low"
|
||||||
msgstr "Bas"
|
msgstr "Bas"
|
||||||
|
|
||||||
#: photologue/models.py:88
|
#: photologue/models.py:86
|
||||||
msgid "Medium-Low"
|
msgid "Medium-Low"
|
||||||
msgstr "Moyen-Bas"
|
msgstr "Moyen-Bas"
|
||||||
|
|
||||||
#: photologue/models.py:89
|
#: photologue/models.py:87
|
||||||
msgid "Medium"
|
msgid "Medium"
|
||||||
msgstr "Moyen"
|
msgstr "Moyen"
|
||||||
|
|
||||||
#: photologue/models.py:90
|
#: photologue/models.py:88
|
||||||
msgid "Medium-High"
|
msgid "Medium-High"
|
||||||
msgstr "Moyen-Haut"
|
msgstr "Moyen-Haut"
|
||||||
|
|
||||||
#: photologue/models.py:91
|
#: photologue/models.py:89
|
||||||
msgid "High"
|
msgid "High"
|
||||||
msgstr "Haut"
|
msgstr "Haut"
|
||||||
|
|
||||||
#: photologue/models.py:92
|
#: photologue/models.py:90
|
||||||
msgid "Very High"
|
msgid "Very High"
|
||||||
msgstr "Très Haut"
|
msgstr "Très Haut"
|
||||||
|
|
||||||
#: photologue/models.py:97
|
#: photologue/models.py:95
|
||||||
msgid "Top"
|
msgid "Top"
|
||||||
msgstr "Sommet"
|
msgstr "Sommet"
|
||||||
|
|
||||||
#: photologue/models.py:98
|
#: photologue/models.py:96
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "Droite"
|
msgstr "Droite"
|
||||||
|
|
||||||
#: photologue/models.py:99
|
#: photologue/models.py:97
|
||||||
msgid "Bottom"
|
msgid "Bottom"
|
||||||
msgstr "Bas"
|
msgstr "Bas"
|
||||||
|
|
||||||
#: photologue/models.py:100
|
#: photologue/models.py:98
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "Gauche"
|
msgstr "Gauche"
|
||||||
|
|
||||||
#: photologue/models.py:101
|
#: photologue/models.py:99
|
||||||
msgid "Center (Default)"
|
msgid "Center (Default)"
|
||||||
msgstr "Centré (par défaut)"
|
msgstr "Centré (par défaut)"
|
||||||
|
|
||||||
#: photologue/models.py:105
|
#: photologue/models.py:103
|
||||||
msgid "Flip left to right"
|
msgid "Flip left to right"
|
||||||
msgstr "Inversion de gauche à droite"
|
msgstr "Inversion de gauche à droite"
|
||||||
|
|
||||||
#: photologue/models.py:106
|
#: photologue/models.py:104
|
||||||
msgid "Flip top to bottom"
|
msgid "Flip top to bottom"
|
||||||
msgstr "Inversion de haut en bas"
|
msgstr "Inversion de haut en bas"
|
||||||
|
|
||||||
#: photologue/models.py:107
|
#: photologue/models.py:105
|
||||||
msgid "Rotate 90 degrees counter-clockwise"
|
msgid "Rotate 90 degrees counter-clockwise"
|
||||||
msgstr "Rotation de 90 degrés dans le sens anti-horloger"
|
msgstr "Rotation de 90 degrés dans le sens anti-horloger"
|
||||||
|
|
||||||
#: photologue/models.py:108
|
#: photologue/models.py:106
|
||||||
msgid "Rotate 90 degrees clockwise"
|
msgid "Rotate 90 degrees clockwise"
|
||||||
msgstr "Rotation de 90 degrés dans le sens horloger"
|
msgstr "Rotation de 90 degrés dans le sens horloger"
|
||||||
|
|
||||||
#: photologue/models.py:109
|
#: photologue/models.py:107
|
||||||
msgid "Rotate 180 degrees"
|
msgid "Rotate 180 degrees"
|
||||||
msgstr "Rotation de 180 degrés"
|
msgstr "Rotation de 180 degrés"
|
||||||
|
|
||||||
#: photologue/models.py:119
|
#: photologue/models.py:117
|
||||||
#, 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-"
|
||||||
|
|
@ -100,107 +156,123 @@ 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:141
|
#: photologue/models.py:139
|
||||||
msgid "date published"
|
msgid "date published"
|
||||||
msgstr "date de publication"
|
msgstr "date de publication"
|
||||||
|
|
||||||
#: photologue/models.py:143 photologue/models.py:474
|
#: photologue/models.py:141 photologue/models.py:485
|
||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr "titre"
|
msgstr "titre"
|
||||||
|
|
||||||
#: photologue/models.py:146
|
#: photologue/models.py:144
|
||||||
msgid "title slug"
|
msgid "title slug"
|
||||||
msgstr "version abrégée du titre"
|
msgstr "version abrégée du titre"
|
||||||
|
|
||||||
#: photologue/models.py:149 photologue/models.py:480
|
#: photologue/models.py:147 photologue/models.py:491 photologue/models.py:697
|
||||||
msgid "A \"slug\" is a unique URL-friendly title for an object."
|
msgid "A \"slug\" is a unique URL-friendly title for an object."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Un \"slug\" est un titre abrégé et unique, compatible avec les URL, pour un "
|
"Un \"slug\" est un titre abrégé et unique, compatible avec les URL, pour un "
|
||||||
"objet."
|
"objet."
|
||||||
|
|
||||||
#: photologue/models.py:150
|
#: photologue/models.py:150
|
||||||
|
msgid "start date"
|
||||||
|
msgstr "date de début"
|
||||||
|
|
||||||
|
#: photologue/models.py:155
|
||||||
|
msgid "end date"
|
||||||
|
msgstr "date de fin"
|
||||||
|
|
||||||
|
#: photologue/models.py:157
|
||||||
msgid "description"
|
msgid "description"
|
||||||
msgstr "description"
|
msgstr "description"
|
||||||
|
|
||||||
#: photologue/models.py:152 photologue/models.py:485
|
#: photologue/models.py:162 photologue/models.py:703
|
||||||
|
msgid "tags"
|
||||||
|
msgstr "balises"
|
||||||
|
|
||||||
|
#: photologue/models.py:165 photologue/models.py:506
|
||||||
msgid "is public"
|
msgid "is public"
|
||||||
msgstr "est public"
|
msgstr "est public"
|
||||||
|
|
||||||
#: photologue/models.py:154
|
#: photologue/models.py:167
|
||||||
msgid "Public galleries will be displayed in the default views."
|
msgid "Public galleries will be displayed in the default views."
|
||||||
msgstr "Les galeries publiques seront affichée dans les vues par défaut."
|
msgstr "Les galeries publiques seront affichée dans les vues par défaut."
|
||||||
|
|
||||||
#: photologue/models.py:158 photologue/models.py:495
|
#: photologue/models.py:171 photologue/models.py:514
|
||||||
msgid "photos"
|
msgid "photos"
|
||||||
msgstr "photos"
|
msgstr "photos"
|
||||||
|
|
||||||
#: photologue/models.py:166
|
#: photologue/models.py:177
|
||||||
msgid "gallery"
|
msgid "gallery"
|
||||||
msgstr "galerie"
|
msgstr "galerie"
|
||||||
|
|
||||||
#: photologue/models.py:167
|
#: photologue/models.py:178
|
||||||
msgid "galleries"
|
msgid "galleries"
|
||||||
msgstr "galleries"
|
msgstr "galleries"
|
||||||
|
|
||||||
#: photologue/models.py:202
|
#: photologue/models.py:213
|
||||||
msgid "count"
|
msgid "count"
|
||||||
msgstr "nombre"
|
msgstr "nombre"
|
||||||
|
|
||||||
#: photologue/models.py:210
|
#: photologue/models.py:221
|
||||||
msgid "image"
|
msgid "image"
|
||||||
msgstr "image"
|
msgstr "image"
|
||||||
|
|
||||||
#: photologue/models.py:213
|
#: photologue/models.py:224
|
||||||
msgid "date taken"
|
msgid "date taken"
|
||||||
msgstr "date de prise de vue"
|
msgstr "date de prise de vue"
|
||||||
|
|
||||||
#: photologue/models.py:216
|
#: photologue/models.py:227
|
||||||
msgid "Date image was taken; is obtained from the image EXIF data."
|
msgid "Date image was taken; is obtained from the image EXIF data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"La date à laquelle l'image a été prise ; obtenue à partir des données EXIF "
|
"La date à laquelle l'image a été prise ; obtenue à partir des données EXIF "
|
||||||
"de l'image."
|
"de l'image."
|
||||||
|
|
||||||
#: photologue/models.py:217
|
#: photologue/models.py:228
|
||||||
msgid "view count"
|
msgid "view count"
|
||||||
msgstr "nombre"
|
msgstr "nombre"
|
||||||
|
|
||||||
#: photologue/models.py:220
|
#: photologue/models.py:231
|
||||||
msgid "crop from"
|
msgid "crop from"
|
||||||
msgstr "découper à partir de"
|
msgstr "découper à partir de"
|
||||||
|
|
||||||
#: photologue/models.py:243
|
#: photologue/models.py:254
|
||||||
msgid "An \"admin_thumbnail\" photo size has not been defined."
|
msgid "An \"admin_thumbnail\" photo size has not been defined."
|
||||||
msgstr "Une taille de photo \"admin_thumbnail\" n'a pas encore été définie."
|
msgstr "Une taille de photo \"admin_thumbnail\" n'a pas encore été définie."
|
||||||
|
|
||||||
#: photologue/models.py:250
|
#: photologue/models.py:261
|
||||||
msgid "Thumbnail"
|
msgid "Thumbnail"
|
||||||
msgstr "Miniature"
|
msgstr "Miniature"
|
||||||
|
|
||||||
#: photologue/models.py:477
|
#: photologue/models.py:488 photologue/models.py:696
|
||||||
msgid "slug"
|
msgid "slug"
|
||||||
msgstr "libellé court"
|
msgstr "libellé court"
|
||||||
|
|
||||||
#: photologue/models.py:481
|
#: photologue/models.py:492
|
||||||
msgid "caption"
|
msgid "caption"
|
||||||
msgstr "légende"
|
msgstr "légende"
|
||||||
|
|
||||||
#: photologue/models.py:483
|
#: photologue/models.py:494
|
||||||
msgid "date added"
|
msgid "date added"
|
||||||
msgstr "date d'ajout"
|
msgstr "date d'ajout"
|
||||||
|
|
||||||
#: photologue/models.py:487
|
#: photologue/models.py:504
|
||||||
|
msgid "license"
|
||||||
|
msgstr "licence"
|
||||||
|
|
||||||
|
#: photologue/models.py:508
|
||||||
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:494
|
#: photologue/models.py:513
|
||||||
msgid "photo"
|
msgid "photo"
|
||||||
msgstr "photo"
|
msgstr "photo"
|
||||||
|
|
||||||
#: photologue/models.py:556
|
#: photologue/models.py:575 photologue/models.py:691
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "nom"
|
msgstr "nom"
|
||||||
|
|
||||||
#: photologue/models.py:560
|
#: photologue/models.py:579
|
||||||
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\"."
|
||||||
|
|
@ -209,41 +281,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:567
|
#: photologue/models.py:586
|
||||||
msgid "width"
|
msgid "width"
|
||||||
msgstr "largeur"
|
msgstr "largeur"
|
||||||
|
|
||||||
#: photologue/models.py:570
|
#: photologue/models.py:589
|
||||||
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:571
|
#: photologue/models.py:590
|
||||||
msgid "height"
|
msgid "height"
|
||||||
msgstr "hauteur"
|
msgstr "hauteur"
|
||||||
|
|
||||||
#: photologue/models.py:574
|
#: photologue/models.py:593
|
||||||
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:575
|
#: photologue/models.py:594
|
||||||
msgid "quality"
|
msgid "quality"
|
||||||
msgstr "qualité"
|
msgstr "qualité"
|
||||||
|
|
||||||
#: photologue/models.py:578
|
#: photologue/models.py:597
|
||||||
msgid "JPEG image quality."
|
msgid "JPEG image quality."
|
||||||
msgstr "Qualité JPEG de l'image."
|
msgstr "Qualité JPEG de l'image."
|
||||||
|
|
||||||
#: photologue/models.py:579
|
#: photologue/models.py:598
|
||||||
msgid "upscale images?"
|
msgid "upscale images?"
|
||||||
msgstr "agrandir les images ?"
|
msgstr "agrandir les images ?"
|
||||||
|
|
||||||
#: photologue/models.py:581
|
#: photologue/models.py:600
|
||||||
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."
|
||||||
|
|
@ -252,11 +324,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:585
|
#: photologue/models.py:604
|
||||||
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:587
|
#: photologue/models.py:606
|
||||||
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."
|
||||||
|
|
@ -264,21 +336,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:589
|
#: photologue/models.py:608
|
||||||
msgid "pre-cache?"
|
msgid "pre-cache?"
|
||||||
msgstr "mise en cache ?"
|
msgstr "mise en cache ?"
|
||||||
|
|
||||||
#: photologue/models.py:591
|
#: photologue/models.py:610
|
||||||
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:592
|
#: photologue/models.py:611
|
||||||
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:594
|
#: photologue/models.py:613
|
||||||
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."
|
||||||
|
|
@ -286,148 +358,75 @@ 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:599
|
#: photologue/models.py:618
|
||||||
msgid "photo size"
|
msgid "photo size"
|
||||||
msgstr "taille de la photo"
|
msgstr "taille de la photo"
|
||||||
|
|
||||||
#: photologue/models.py:600
|
#: photologue/models.py:619
|
||||||
msgid "photo sizes"
|
msgid "photo sizes"
|
||||||
msgstr "tailles des photos"
|
msgstr "tailles des photos"
|
||||||
|
|
||||||
#: photologue/models.py:617
|
#: photologue/models.py:636
|
||||||
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_custom/admin.py:43 photologue_custom/models.py:51
|
#: photologue/models.py:702
|
||||||
msgid "owner"
|
msgid "tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: photologue_custom/forms.py:34
|
#: photologue/templates/photologue/gallery_archive.html:7
|
||||||
msgid "Gallery"
|
#: photologue/templates/photologue/gallery_archive.html:12
|
||||||
msgstr "Galerie"
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:36
|
|
||||||
msgid "-- Create a new gallery --"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:37
|
|
||||||
msgid ""
|
|
||||||
"Select a gallery to add these images to. Leave this empty to create a new "
|
|
||||||
"gallery from the supplied title."
|
|
||||||
msgstr ""
|
|
||||||
"Sélectionner une galerie à laquelle ajouter ces images. Laisser ce champ "
|
|
||||||
"vide pour créer une nouvelle galerie à partir du titre indiqué."
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:41
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "View all galleries"
|
|
||||||
msgid "New gallery title"
|
|
||||||
msgstr "Afficher toutes les galeries"
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:46
|
|
||||||
msgid "New gallery event start date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:51
|
|
||||||
msgid "New gallery event end date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:57
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "gallery uploads"
|
|
||||||
msgid "New gallery tags"
|
|
||||||
msgstr "gallery uploads"
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:59
|
|
||||||
msgid ""
|
|
||||||
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:76
|
|
||||||
#: photologue_custom/templates/photologue/upload.html:6
|
|
||||||
#: photologue_custom/templates/photologue/upload.html:73
|
|
||||||
msgid "Upload"
|
|
||||||
msgstr "Télécharger"
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:82
|
|
||||||
msgid "A gallery with that title already exists."
|
|
||||||
msgstr "Une galerie portant ce nom existe déjà."
|
|
||||||
|
|
||||||
#: photologue_custom/forms.py:91
|
|
||||||
msgid "Select an existing gallery, or enter a title for a new gallery."
|
|
||||||
msgstr ""
|
|
||||||
"Sélectionner une galerie existante ou entrer un titre pour une nouvelle "
|
|
||||||
"galerie."
|
|
||||||
|
|
||||||
#: photologue_custom/models.py:23
|
|
||||||
msgid "start date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/models.py:28
|
|
||||||
msgid "end date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: photologue_custom/models.py:56
|
|
||||||
msgid "license"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: 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 "Dernières galeries de photos"
|
msgstr "Dernières galeries de photos"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive.html:18
|
#: photologue/templates/photologue/gallery_archive.html:18
|
||||||
msgid "Filter by year"
|
msgid "Filter by year"
|
||||||
msgstr "Filtrer par année"
|
msgstr "Filtrer par année"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive.html:35
|
#: photologue/templates/photologue/gallery_archive.html:35
|
||||||
msgid "No galleries were found"
|
msgid "No galleries were found"
|
||||||
msgstr "Aucune galerie trouvée"
|
msgstr "Aucune galerie trouvée"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive_year.html:7
|
#: photologue/templates/photologue/gallery_archive_year.html:7
|
||||||
#: photologue_custom/templates/photologue/gallery_archive_year.html:12
|
#: photologue/templates/photologue/gallery_archive_year.html:12
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Galleries for %(show_year)s"
|
msgid "Galleries for %(show_year)s"
|
||||||
msgstr "Galeries de %(show_year)s"
|
msgstr "Galeries de %(show_year)s"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive_year.html:17
|
#: photologue/templates/photologue/gallery_archive_year.html:17
|
||||||
msgid "View all galleries"
|
msgid "View all galleries"
|
||||||
msgstr "Afficher toutes les galeries"
|
msgstr "Afficher toutes les galeries"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_archive_year.html:29
|
#: photologue/templates/photologue/gallery_archive_year.html:29
|
||||||
msgid "No galleries were found."
|
msgid "No galleries were found."
|
||||||
msgstr "Aucune galerie trouvée."
|
msgstr "Aucune galerie trouvée."
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_detail.html:41
|
#: photologue/templates/photologue/gallery_detail.html:41
|
||||||
msgid "to"
|
msgid "to"
|
||||||
msgstr ""
|
msgstr "au"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_detail.html:57
|
#: photologue/templates/photologue/gallery_detail.html:57
|
||||||
#, fuzzy
|
|
||||||
#| msgid "All photos"
|
|
||||||
msgid "All pictures"
|
msgid "All pictures"
|
||||||
msgstr "Toutes les photos"
|
msgstr "Toutes les photos"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/gallery_detail.html:78
|
#: photologue/templates/photologue/gallery_detail.html:78
|
||||||
#, fuzzy
|
|
||||||
#| msgid "View all galleries"
|
|
||||||
msgid "Download all gallery"
|
msgid "Download all gallery"
|
||||||
msgstr "Afficher toutes les galeries"
|
msgstr "Télécharger toute la galerie"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/photo_detail.html:13
|
#: photologue/templates/photologue/photo_detail.html:13
|
||||||
msgid "Published"
|
msgid "Published"
|
||||||
msgstr "Publiée le"
|
msgstr "Publiée le"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/photo_detail.html:25
|
#: photologue/templates/photologue/photo_detail.html:25
|
||||||
msgid "This photo is found in the following galleries"
|
msgid "This photo is found in the following galleries"
|
||||||
msgstr "Cette photo se trouve dans les galeries suivantes"
|
msgstr "Cette photo se trouve dans les galeries suivantes"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/upload.html:78
|
#: photologue/templates/photologue/upload.html:78
|
||||||
msgid "Drag and drop photos here"
|
msgid "Drag and drop photos here"
|
||||||
msgstr ""
|
msgstr "Glissez et déposez les photos ici"
|
||||||
|
|
||||||
#: photologue_custom/templates/photologue/upload.html:82
|
#: photologue/templates/photologue/upload.html:82
|
||||||
msgid "Owner will be"
|
msgid "Owner will be"
|
||||||
msgstr ""
|
msgstr "Le propriétaire sera"
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
|
import hashlib
|
||||||
|
|
||||||
from django.core.management.base import BaseCommand, CommandError
|
from django.core.management.base import BaseCommand, CommandError
|
||||||
from photologue.models import Gallery
|
from photologue.models import Gallery
|
||||||
|
|
||||||
import hashlib
|
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
help = 'List all duplicate for chosen galleries'
|
help = 'List all duplicate for chosen galleries'
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
from pathlib import Path
|
|
||||||
import os
|
import os
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
from django.core.management.base import BaseCommand
|
from django.core.management.base import BaseCommand
|
||||||
from photologue.models import Gallery
|
from photologue.models import Gallery
|
||||||
from django.conf import settings
|
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
# Generated by Django 3.2.11 on 2022-01-30 08:32
|
# Generated by Django 3.2.11 on 2022-01-30 08:32
|
||||||
|
|
||||||
from django.conf import settings
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
import django.db.models.deletion
|
||||||
import django.utils.timezone
|
import django.utils.timezone
|
||||||
import taggit.managers
|
import taggit.managers
|
||||||
|
from django.conf import settings
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
|
from django.db import migrations, models
|
||||||
from django.template.defaultfilters import slugify
|
from django.template.defaultfilters import slugify
|
||||||
|
|
||||||
numens = User.objects.get(username="Numens").id
|
numens = User.objects.get(username="Numens").id
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
|
|
@ -1,7 +1,8 @@
|
||||||
from django.urls import path, re_path
|
from django.urls import path, re_path
|
||||||
from photologue_custom.views import CustomGalleryDetailView, GalleryDownload, GalleryUpload, TagDetail
|
|
||||||
|
|
||||||
from .views import GalleryArchiveIndexView, GalleryYearArchiveView, PhotoDetailView
|
from .views import (CustomGalleryDetailView, GalleryArchiveIndexView,
|
||||||
|
GalleryDownload, GalleryUpload, GalleryYearArchiveView,
|
||||||
|
PhotoDetailView, TagDetail)
|
||||||
|
|
||||||
app_name = 'photologue'
|
app_name = 'photologue'
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,26 @@
|
||||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
# Copyright (C) 2021 by BDE ENS Paris-Saclay
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
import os
|
||||||
|
import zipfile
|
||||||
|
from io import BytesIO
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from django.contrib import messages
|
||||||
|
from django.contrib.auth.mixins import (LoginRequiredMixin,
|
||||||
|
PermissionRequiredMixin)
|
||||||
|
from django.core.mail import mail_managers
|
||||||
|
from django.db import IntegrityError
|
||||||
|
from django.http import HttpResponse
|
||||||
|
from django.urls import reverse_lazy
|
||||||
|
from django.utils.text import slugify
|
||||||
from django.views.generic.dates import ArchiveIndexView, YearArchiveView
|
from django.views.generic.dates import ArchiveIndexView, YearArchiveView
|
||||||
from django.views.generic.detail import DetailView
|
from django.views.generic.detail import DetailView
|
||||||
|
from django.views.generic.edit import FormView
|
||||||
|
from PIL import Image
|
||||||
|
|
||||||
from .models import Gallery, Photo
|
from .forms import UploadForm
|
||||||
|
from .models import Gallery, Photo, Tag
|
||||||
|
|
||||||
|
|
||||||
class GalleryDateView(LoginRequiredMixin):
|
class GalleryDateView(LoginRequiredMixin):
|
||||||
|
|
@ -22,3 +40,125 @@ class GalleryYearArchiveView(GalleryDateView, YearArchiveView):
|
||||||
|
|
||||||
class PhotoDetailView(LoginRequiredMixin, DetailView):
|
class PhotoDetailView(LoginRequiredMixin, DetailView):
|
||||||
queryset = Photo.objects.filter(is_public=True)
|
queryset = Photo.objects.filter(is_public=True)
|
||||||
|
|
||||||
|
|
||||||
|
class TagDetail(LoginRequiredMixin, DetailView):
|
||||||
|
model = Tag
|
||||||
|
|
||||||
|
def get_context_data(self, **kwargs):
|
||||||
|
"""
|
||||||
|
Insert the single object into the context dict.
|
||||||
|
"""
|
||||||
|
current_tag = self.get_object().slug
|
||||||
|
context = super().get_context_data(**kwargs)
|
||||||
|
context['galleries'] = Gallery.objects.filter(is_public=True) \
|
||||||
|
.filter(tags__slug=current_tag) \
|
||||||
|
.order_by('-date_start')
|
||||||
|
return context
|
||||||
|
|
||||||
|
|
||||||
|
class CustomGalleryDetailView(LoginRequiredMixin, DetailView):
|
||||||
|
"""
|
||||||
|
Custom gallery detail view to filter on photo owner
|
||||||
|
"""
|
||||||
|
queryset = Gallery.objects.filter(is_public=True)
|
||||||
|
|
||||||
|
def get_context_data(self, **kwargs):
|
||||||
|
context = super().get_context_data(**kwargs)
|
||||||
|
|
||||||
|
# Query with owner to reduce database lag
|
||||||
|
context['photos'] = self.object.public().select_related('owner')
|
||||||
|
|
||||||
|
# List owners
|
||||||
|
context['owners'] = []
|
||||||
|
for photo in context['photos']:
|
||||||
|
if photo.owner not in context['owners']:
|
||||||
|
context['owners'].append(photo.owner)
|
||||||
|
|
||||||
|
# Filter on owner
|
||||||
|
if 'owner' in self.kwargs:
|
||||||
|
context['photos'] = context['photos'].filter(owner__id=self.kwargs['owner'])
|
||||||
|
|
||||||
|
return context
|
||||||
|
|
||||||
|
|
||||||
|
class GalleryDownload(LoginRequiredMixin, DetailView):
|
||||||
|
model = Gallery
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
Download a zip file of the gallery on GET request.
|
||||||
|
"""
|
||||||
|
# Create zip file with pictures
|
||||||
|
gallery = self.get_object()
|
||||||
|
byte_data = BytesIO()
|
||||||
|
zip_file = zipfile.ZipFile(byte_data, "w")
|
||||||
|
for photo in gallery.public():
|
||||||
|
filename = os.path.basename(os.path.normpath(photo.image.path))
|
||||||
|
zip_file.write(photo.image.path, filename)
|
||||||
|
zip_file.close()
|
||||||
|
|
||||||
|
# Return zip file
|
||||||
|
response = HttpResponse(byte_data.getvalue(), content_type='application/x-zip-compressed')
|
||||||
|
response['Content-Disposition'] = f"attachment; filename={gallery.slug}.zip"
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
class GalleryUpload(PermissionRequiredMixin, FormView):
|
||||||
|
"""
|
||||||
|
Form to upload new photos in a gallery
|
||||||
|
"""
|
||||||
|
form_class = UploadForm
|
||||||
|
template_name = "photologue/upload.html"
|
||||||
|
success_url = reverse_lazy("photologue:pl-gallery-upload")
|
||||||
|
permission_required = 'photologue.add_gallery'
|
||||||
|
|
||||||
|
def form_valid(self, form):
|
||||||
|
# Upload photos
|
||||||
|
# We take files from the request to support multiple upload
|
||||||
|
files = self.request.FILES.getlist('file_field')
|
||||||
|
gallery = form.get_or_create_gallery()
|
||||||
|
gallery_year = Path(str(gallery.date_start.year))
|
||||||
|
gallery_dir = gallery_year / gallery.slug
|
||||||
|
failed_upload = 0
|
||||||
|
for photo_file in files:
|
||||||
|
# Check that we have a valid image
|
||||||
|
try:
|
||||||
|
opened = Image.open(photo_file)
|
||||||
|
opened.verify()
|
||||||
|
except Exception:
|
||||||
|
# Pillow doesn't recognize it as an image, skip it
|
||||||
|
messages.error(self.request, f"{photo_file.name} was not recognized as an image")
|
||||||
|
failed_upload += 1
|
||||||
|
continue
|
||||||
|
|
||||||
|
title = f"{gallery.title} - {photo_file.name}"
|
||||||
|
try:
|
||||||
|
photo = Photo(
|
||||||
|
title=title,
|
||||||
|
slug=slugify(title),
|
||||||
|
owner=self.request.user,
|
||||||
|
)
|
||||||
|
photo_name = str(gallery_dir / photo_file.name)
|
||||||
|
photo.image.save(photo_name, photo_file)
|
||||||
|
photo.save()
|
||||||
|
photo.galleries.set([gallery])
|
||||||
|
except IntegrityError:
|
||||||
|
messages.error(self.request, f"{photo_file.name} was not uploaded. Maybe the photo was already uploaded.")
|
||||||
|
failed_upload += 1
|
||||||
|
|
||||||
|
# Notify user then managers
|
||||||
|
if not failed_upload:
|
||||||
|
messages.success(self.request, "All photos has been successfully uploaded.")
|
||||||
|
else:
|
||||||
|
n_success = len(files) - failed_upload
|
||||||
|
messages.warning(self.request, f"Only {n_success} photos were successfully uploaded !")
|
||||||
|
|
||||||
|
gallery_title = form.cleaned_data['gallery'] or form.cleaned_data.get('new_gallery_title', '')
|
||||||
|
photos = ", ".join(f.name for f in files)
|
||||||
|
mail_managers(
|
||||||
|
subject="New photos upload",
|
||||||
|
message=f"{self.request.user.username} has uploaded in `{gallery_title}`: {photos}",
|
||||||
|
)
|
||||||
|
|
||||||
|
return super().form_valid(form)
|
||||||
|
|
|
||||||
|
|
@ -1,144 +0,0 @@
|
||||||
# Copyright (C) 2021 by BDE ENS Paris-Saclay
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
import os
|
|
||||||
import zipfile
|
|
||||||
from io import BytesIO
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
from django.contrib import messages
|
|
||||||
from django.contrib.auth.mixins import (LoginRequiredMixin,
|
|
||||||
PermissionRequiredMixin)
|
|
||||||
from django.core.mail import mail_managers
|
|
||||||
from django.db import IntegrityError
|
|
||||||
from django.http import HttpResponse
|
|
||||||
from django.urls import reverse_lazy
|
|
||||||
from django.utils.text import slugify
|
|
||||||
from django.views.generic.detail import DetailView
|
|
||||||
from django.views.generic.edit import FormView
|
|
||||||
from photologue.models import Gallery, Photo, Tag
|
|
||||||
from PIL import Image
|
|
||||||
|
|
||||||
from .forms import UploadForm
|
|
||||||
|
|
||||||
|
|
||||||
class TagDetail(LoginRequiredMixin, DetailView):
|
|
||||||
model = Tag
|
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
|
||||||
"""
|
|
||||||
Insert the single object into the context dict.
|
|
||||||
"""
|
|
||||||
current_tag = self.get_object().slug
|
|
||||||
context = super().get_context_data(**kwargs)
|
|
||||||
context['galleries'] = Gallery.objects.filter(is_public=True) \
|
|
||||||
.filter(tags__slug=current_tag) \
|
|
||||||
.order_by('-date_start')
|
|
||||||
return context
|
|
||||||
|
|
||||||
|
|
||||||
class CustomGalleryDetailView(LoginRequiredMixin, DetailView):
|
|
||||||
"""
|
|
||||||
Custom gallery detail view to filter on photo owner
|
|
||||||
"""
|
|
||||||
queryset = Gallery.objects.filter(is_public=True)
|
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
|
||||||
context = super().get_context_data(**kwargs)
|
|
||||||
|
|
||||||
# Query with owner to reduce database lag
|
|
||||||
context['photos'] = self.object.public().select_related('owner')
|
|
||||||
|
|
||||||
# List owners
|
|
||||||
context['owners'] = []
|
|
||||||
for photo in context['photos']:
|
|
||||||
if photo.owner not in context['owners']:
|
|
||||||
context['owners'].append(photo.owner)
|
|
||||||
|
|
||||||
# Filter on owner
|
|
||||||
if 'owner' in self.kwargs:
|
|
||||||
context['photos'] = context['photos'].filter(owner__id=self.kwargs['owner'])
|
|
||||||
|
|
||||||
return context
|
|
||||||
|
|
||||||
|
|
||||||
class GalleryDownload(LoginRequiredMixin, DetailView):
|
|
||||||
model = Gallery
|
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
|
||||||
"""
|
|
||||||
Download a zip file of the gallery on GET request.
|
|
||||||
"""
|
|
||||||
# Create zip file with pictures
|
|
||||||
gallery = self.get_object()
|
|
||||||
byte_data = BytesIO()
|
|
||||||
zip_file = zipfile.ZipFile(byte_data, "w")
|
|
||||||
for photo in gallery.public():
|
|
||||||
filename = os.path.basename(os.path.normpath(photo.image.path))
|
|
||||||
zip_file.write(photo.image.path, filename)
|
|
||||||
zip_file.close()
|
|
||||||
|
|
||||||
# Return zip file
|
|
||||||
response = HttpResponse(byte_data.getvalue(), content_type='application/x-zip-compressed')
|
|
||||||
response['Content-Disposition'] = f"attachment; filename={gallery.slug}.zip"
|
|
||||||
return response
|
|
||||||
|
|
||||||
|
|
||||||
class GalleryUpload(PermissionRequiredMixin, FormView):
|
|
||||||
"""
|
|
||||||
Form to upload new photos in a gallery
|
|
||||||
"""
|
|
||||||
form_class = UploadForm
|
|
||||||
template_name = "photologue/upload.html"
|
|
||||||
success_url = reverse_lazy("photologue:pl-gallery-upload")
|
|
||||||
permission_required = 'photologue.add_gallery'
|
|
||||||
|
|
||||||
def form_valid(self, form):
|
|
||||||
# Upload photos
|
|
||||||
# We take files from the request to support multiple upload
|
|
||||||
files = self.request.FILES.getlist('file_field')
|
|
||||||
gallery = form.get_or_create_gallery()
|
|
||||||
gallery_year = Path(str(gallery.date_start.year))
|
|
||||||
gallery_dir = gallery_year / gallery.slug
|
|
||||||
failed_upload = 0
|
|
||||||
for photo_file in files:
|
|
||||||
# Check that we have a valid image
|
|
||||||
try:
|
|
||||||
opened = Image.open(photo_file)
|
|
||||||
opened.verify()
|
|
||||||
except Exception:
|
|
||||||
# Pillow doesn't recognize it as an image, skip it
|
|
||||||
messages.error(self.request, f"{photo_file.name} was not recognized as an image")
|
|
||||||
failed_upload += 1
|
|
||||||
continue
|
|
||||||
|
|
||||||
title = f"{gallery.title} - {photo_file.name}"
|
|
||||||
try:
|
|
||||||
photo = Photo(
|
|
||||||
title=title,
|
|
||||||
slug=slugify(title),
|
|
||||||
owner=self.request.user,
|
|
||||||
)
|
|
||||||
photo_name = str(gallery_dir / photo_file.name)
|
|
||||||
photo.image.save(photo_name, photo_file)
|
|
||||||
photo.save()
|
|
||||||
photo.galleries.set([gallery])
|
|
||||||
except IntegrityError:
|
|
||||||
messages.error(self.request, f"{photo_file.name} was not uploaded. Maybe the photo was already uploaded.")
|
|
||||||
failed_upload += 1
|
|
||||||
|
|
||||||
# Notify user then managers
|
|
||||||
if not failed_upload:
|
|
||||||
messages.success(self.request, "All photos has been successfully uploaded.")
|
|
||||||
else:
|
|
||||||
n_success = len(files) - failed_upload
|
|
||||||
messages.warning(self.request, f"Only {n_success} photos were successfully uploaded !")
|
|
||||||
|
|
||||||
gallery_title = form.cleaned_data['gallery'] or form.cleaned_data.get('new_gallery_title', '')
|
|
||||||
photos = ", ".join(f.name for f in files)
|
|
||||||
mail_managers(
|
|
||||||
subject="New photos upload",
|
|
||||||
message=f"{self.request.user.username} has uploaded in `{gallery_title}`: {photos}",
|
|
||||||
)
|
|
||||||
|
|
||||||
return super().form_valid(form)
|
|
||||||
4
tox.ini
4
tox.ini
|
|
@ -12,7 +12,7 @@ deps =
|
||||||
-r{toxinidir}/requirements.txt
|
-r{toxinidir}/requirements.txt
|
||||||
coverage
|
coverage
|
||||||
commands =
|
commands =
|
||||||
coverage run --omit='photo21/wsgi.py' --source=photo21,photologue,photologue_custom ./manage.py test
|
coverage run --omit='photo21/wsgi.py' --source=photo21,photologue ./manage.py test
|
||||||
coverage report -m
|
coverage report -m
|
||||||
|
|
||||||
[testenv:linters]
|
[testenv:linters]
|
||||||
|
|
@ -26,7 +26,7 @@ deps =
|
||||||
pep8-naming
|
pep8-naming
|
||||||
pyflakes
|
pyflakes
|
||||||
commands =
|
commands =
|
||||||
flake8 photo21 photologue photologue_custom
|
flake8 photo21 photologue
|
||||||
|
|
||||||
[flake8]
|
[flake8]
|
||||||
ignore = W503, I100, I101
|
ignore = W503, I100, I101
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue