diff --git a/aircox/locale/fr/LC_MESSAGES/django.mo b/aircox/locale/fr/LC_MESSAGES/django.mo index bea7402..f0687bf 100644 Binary files a/aircox/locale/fr/LC_MESSAGES/django.mo and b/aircox/locale/fr/LC_MESSAGES/django.mo differ diff --git a/aircox/locale/fr/LC_MESSAGES/django.po b/aircox/locale/fr/LC_MESSAGES/django.po index f3016db..938ebfa 100755 --- a/aircox/locale/fr/LC_MESSAGES/django.po +++ b/aircox/locale/fr/LC_MESSAGES/django.po @@ -1,64 +1,68 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# French translation of Aircox +# Copyright (C) Aarys +# Copyright (C) Bkfox +# This file is distributed under the same license as the Aircox package. +# Aarys, 2016. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: Aircox 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-17 20:54+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"POT-Creation-Date: 2017-12-14 15:52+0100\n" +"PO-Revision-Date: 2016-10-10 16:00+02\n" +"Last-Translator: Aarys\n" +"Language-Team: Aircox's translators team\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: admin.py:82 models.py:728 +#: aircox/admin.py:81 aircox/models.py:737 msgid "Schedule" msgstr "Horaire" -#: admin.py:111 models.py:490 +#: aircox/admin.py:110 +msgid "start" +msgstr "" + +#: aircox/admin.py:114 aircox/models.py:452 aircox/models.py:1475 msgid "end" msgstr "fin" -#: admin.py:153 +#: aircox/admin.py:156 msgid "Program" msgstr "Programme" -#: admin.py:157 +#: aircox/admin.py:160 msgid "Day" msgstr "Jour" -#: admin.py:161 +#: aircox/admin.py:164 msgid "Rerun" msgstr "Rediffusion" -#: models.py:84 +#: aircox/models.py:83 msgid "name" msgstr "nom" -#: models.py:116 +#: aircox/models.py:115 msgid "title" msgstr "titre" -#: models.py:120 +#: aircox/models.py:119 msgid "artist" msgstr "artiste" -#: models.py:124 +#: aircox/models.py:123 msgid "tags" msgstr "tags" -#: models.py:128 +#: aircox/models.py:127 msgid "information" msgstr "information" -#: models.py:131 +#: aircox/models.py:130 msgid "" "additional informations about this track, such as the version, if is it a " "remix, features, etc." @@ -66,378 +70,362 @@ msgstr "" "informations additionnelles à propos de ce morceau, telles que la version, " "s'ils'agit d'un remix, les fonctionnalités, etc" -#: models.py:136 +#: aircox/models.py:135 msgid "position in the playlist" msgstr "position dans la playlist" -#: models.py:139 +#: aircox/models.py:138 msgid "in seconds" msgstr "en secondes" -#: models.py:141 +#: aircox/models.py:140 msgid "position in the playlist is expressed in seconds" msgstr "position dans la playlist exprimée en secondes" -#: models.py:148 templates/aircox/controllers/stats.html:59 +#: aircox/models.py:147 aircox/models.py:1501 +#: aircox/templates/aircox/controllers/stats.html:58 msgid "Track" msgstr "Morceau" -#: models.py:149 +#: aircox/models.py:148 msgid "Tracks" msgstr "Morceaux" -#: models.py:165 +#: aircox/models.py:163 msgid "path" msgstr "chemin" -#: models.py:166 +#: aircox/models.py:164 msgid "path to the working directory" msgstr "chemin vers le repertoire courant" -#: models.py:171 +#: aircox/models.py:169 #, fuzzy #| msgid "station" msgid "default station" -msgstr "station" +msgstr "station par défaut" -#: models.py:173 +#: aircox/models.py:171 msgid "if checked, this station is used as the main one" -msgstr "" +msgstr "si coché, cette station est utilisée comme station principale" -#: models.py:370 models.py:1181 models.py:1318 +#: aircox/models.py:332 aircox/models.py:1222 aircox/models.py:1457 msgid "station" msgstr "station" -#: models.py:373 models.py:1193 +#: aircox/models.py:335 aircox/models.py:1234 msgid "active" msgstr "actif" -#: models.py:375 +#: aircox/models.py:337 msgid "if not checked this program is no longer active" msgstr "si selectionné, ce programme n'est plus actif" -#: models.py:378 +#: aircox/models.py:340 msgid "syncronise" msgstr "synchroniser" -#: models.py:380 +#: aircox/models.py:342 msgid "update later diffusions according to schedule changes" msgstr "" "mettre à jour les diffusions suivantes selon les changements de l'horaire" -#: models.py:476 models.py:521 +#: aircox/models.py:438 aircox/models.py:483 msgid "related program" msgstr "programme apparenté" -#: models.py:479 +#: aircox/models.py:441 msgid "delay" msgstr "délai" -#: models.py:481 +#: aircox/models.py:443 msgid "minimal delay between two sound plays" msgstr "délai minimum entre deux sons" -#: models.py:484 +#: aircox/models.py:446 msgid "begin" msgstr "début" -#: models.py:486 models.py:492 +#: aircox/models.py:448 aircox/models.py:454 msgid "used to define a time range this stream isplayed" msgstr "" "utilisé pour définir un intervalle de temps pendant lequel ce stream est joué" -#: models.py:524 models.py:1330 +#: aircox/models.py:486 aircox/models.py:1469 msgid "date" msgstr "date" -#: models.py:525 -#, fuzzy -#| msgid "start of the diffusion" +#: aircox/models.py:487 msgid "date of the first diffusion" -msgstr "début de la diffusion" +msgstr "date de la première diffusion" -#: models.py:528 models.py:995 +#: aircox/models.py:490 +msgid "timezone" +msgstr "zone horaire" + +#: aircox/models.py:492 +msgid "timezone used for the date" +msgstr "zone horaire utilisée pour la date" + +#: aircox/models.py:495 aircox/models.py:1036 msgid "duration" msgstr "durée" -#: models.py:529 +#: aircox/models.py:496 msgid "regular duration" msgstr "durée normale" -#: models.py:532 +#: aircox/models.py:499 msgid "frequency" msgstr "fréquence" -#: models.py:535 +#: aircox/models.py:502 msgid "ponctual" msgstr "ponctuel" -#: models.py:536 +#: aircox/models.py:503 msgid "first week of the month" msgstr "première semaine du mois" -#: models.py:537 +#: aircox/models.py:504 msgid "second week of the month" msgstr "deuxième semaine du mois" -#: models.py:538 +#: aircox/models.py:505 msgid "third week of the month" msgstr "troisième semaine du mois" -#: models.py:539 +#: aircox/models.py:506 msgid "fourth week of the month" msgstr "quatrième semaine du mois" -#: models.py:540 +#: aircox/models.py:507 msgid "last week of the month" msgstr "dernière semaine du mois" -#: models.py:541 +#: aircox/models.py:508 msgid "first and third weeks of the month" msgstr "première et troisième semaines du mois" -#: models.py:542 +#: aircox/models.py:509 msgid "second and fourth weeks of the month" msgstr "deuxième et quatrième semaines du mois" -#: models.py:543 +#: aircox/models.py:510 msgid "every week" msgstr "toutes les semaines" -#: models.py:544 +#: aircox/models.py:511 msgid "one week on two" msgstr "une semaine sur deux" -#: models.py:550 +#: aircox/models.py:517 msgid "initial schedule" msgstr "horaire initial" -#: models.py:729 +#: aircox/models.py:738 msgid "Schedules" msgstr "Horaires" -#: models.py:826 models.py:965 +#: aircox/models.py:832 aircox/models.py:1004 msgid "program" msgstr "programme" -#: models.py:830 models.py:976 models.py:1188 models.py:1312 +#: aircox/models.py:836 aircox/models.py:1016 aircox/models.py:1229 +#: aircox/models.py:1451 msgid "type" msgstr "type" -#: models.py:835 +#: aircox/models.py:841 msgid "initial diffusion" msgstr "diffusion initiale" -#: models.py:837 +#: aircox/models.py:844 msgid "the diffusion is a rerun of this one" msgstr "la diffusion est une rediffusion de celle-ci" -#: models.py:847 models.py:849 +#: aircox/models.py:855 aircox/models.py:857 msgid "conflicts" msgstr "" -#: models.py:852 +#: aircox/models.py:860 msgid "start of the diffusion" msgstr "début de la diffusion" -#: models.py:853 +#: aircox/models.py:861 msgid "end of the diffusion" msgstr "fin de la diffusion" -#: models.py:944 views.py:198 +#: aircox/models.py:983 aircox/models.py:1487 aircox/views.py:220 msgid "Diffusion" msgstr "Diffusion" -#: models.py:945 templates/aircox/controllers/monitor.html:151 +#: aircox/models.py:984 aircox/templates/aircox/controllers/monitor.html:151 msgid "Diffusions" msgstr "Diffusions" -#: models.py:948 +#: aircox/models.py:987 msgid "edit the diffusion's planification" msgstr "éditer la planification de la diffusion" -#: models.py:967 +#: aircox/models.py:1006 msgid "program related to it" msgstr "programme apparenté à celui-ci" -#: models.py:971 +#: aircox/models.py:1010 msgid "diffusion" msgstr "diffusion" -#: models.py:973 +#: aircox/models.py:1013 msgid "initial diffusion related it" msgstr "diffusion initiale apparentée" -#: models.py:981 +#: aircox/models.py:1021 msgid "file" msgstr "fichier" -#: models.py:990 +#: aircox/models.py:1031 msgid "embed HTML code" msgstr "code HTML intégré" -#: models.py:992 +#: aircox/models.py:1033 msgid "HTML code used to embed a sound from external plateform" msgstr "" "code HTML utilisé pour intégrer un son depuis une plateforme extérieure" -#: models.py:997 +#: aircox/models.py:1038 msgid "duration of the sound" msgstr "durée du son" -#: models.py:1000 +#: aircox/models.py:1041 msgid "modification time" msgstr "temps de la modification" -#: models.py:1002 +#: aircox/models.py:1043 msgid "last modification date and time" msgstr "date et heure de la dernière modification" -#: models.py:1005 +#: aircox/models.py:1046 msgid "good quality" msgstr "bonne qualité" -#: models.py:1006 +#: aircox/models.py:1047 msgid "sound's quality is okay" msgstr "la qualité du son est okay" -#: models.py:1010 +#: aircox/models.py:1051 msgid "public" msgstr "public" -#: models.py:1012 +#: aircox/models.py:1053 msgid "the sound is accessible to the public" msgstr "ce son est accessible au public" -#: models.py:1072 +#: aircox/models.py:1113 msgid "unknown" msgstr "" -#: models.py:1148 +#: aircox/models.py:1189 aircox/models.py:1494 msgid "Sound" msgstr "Son" -#: models.py:1149 +#: aircox/models.py:1190 msgid "Sounds" msgstr "Sons" -#: models.py:1184 -#, fuzzy -#| msgid "duration" +#: aircox/models.py:1225 msgid "direction" -msgstr "durée" +msgstr "direction" -#: models.py:1195 -#, fuzzy -#| msgid "this output is active" +#: aircox/models.py:1236 msgid "this port is active" -msgstr "cette sortie est active" +msgstr "ce port est actif" -#: models.py:1198 -#, fuzzy -#| msgid "output settings" +#: aircox/models.py:1239 msgid "port settings" -msgstr "paramètres de sortie" +msgstr "paramètres du port" -#: models.py:1199 -#, fuzzy -#| msgid "" -#| "list of comma separated params available; this is put in the output " -#| "config as raw code; plugin related" +#: aircox/models.py:1240 msgid "" "list of comma separated params available; this is put in the output config " "file as raw code; plugin related" msgstr "" -"liste des paramètres disponibles séparés par des virgules; placé dans la " -"configuration de sortieen temps que code brut; plugin apparenté" +"liste des paramètres disponibles séparés par des virgules; placé dans le " +"fichier de configuration en tant que code brut; relatif au plugin utilisé" -#: models.py:1319 -#, fuzzy -#| msgid "regular duration" +#: aircox/models.py:1458 msgid "related station" -msgstr "durée normale" +msgstr "station relative" -#: models.py:1324 +#: aircox/models.py:1463 msgid "source" msgstr "source" -#: models.py:1326 +#: aircox/models.py:1465 msgid "identifier of the source related to this log" -msgstr "" +msgstr "identifiant de la source relative à ce log" -#: models.py:1334 +#: aircox/models.py:1480 msgid "comment" msgstr "commentaire" -#: templates/aircox/controllers/monitor.html:6 -msgid "Monitoring streamer" -msgstr "" +#: aircox/templates/aircox/controllers/monitor.html:6 +#: aircox/templates/aircox/controllers/monitor.html:112 +#, fuzzy +#| msgid "Streamer Monitor" +msgid "Streamer monitor" +msgstr "Moniteur de stream" -#: templates/aircox/controllers/monitor.html:112 -msgid "Monitor Streamer" -msgstr "" - -#: templates/aircox/controllers/monitor.html:115 +#: aircox/templates/aircox/controllers/monitor.html:115 msgid "refresh" -msgstr "" +msgstr "rafraîchir" -#: templates/aircox/controllers/monitor.html:129 -#, fuzzy, python-format -#| msgid "" -#| "\n" -#| " %(items_count)s items, with a total of " -#| "%(tracks_count)s tracks\n" -#| " " +#: aircox/templates/aircox/controllers/monitor.html:129 +#, python-format msgid "" "\n" " Current source: %(current_source)s\n" " " msgstr "" "\n" -" %(items_counts)s items, avec un total de %(tracks_count)s " -"tracks\n" +" Source courante: %(current_source)s\n" +" " -#: templates/aircox/controllers/monitor.html:136 -#: templates/aircox/controllers/monitor.html:175 +#: aircox/templates/aircox/controllers/monitor.html:136 +#: aircox/templates/aircox/controllers/monitor.html:175 msgid "restart" -msgstr "" +msgstr "redémarrer" -#: templates/aircox/controllers/monitor.html:138 -#: templates/aircox/controllers/monitor.html:177 +#: aircox/templates/aircox/controllers/monitor.html:138 +#: aircox/templates/aircox/controllers/monitor.html:177 msgid "skip" msgstr "passer" -#: templates/aircox/controllers/monitor.html:143 -#, fuzzy -#| msgid "source" +#: aircox/templates/aircox/controllers/monitor.html:143 msgid "Source" -msgstr "source" +msgstr "Source" -#: templates/aircox/controllers/monitor.html:144 +#: aircox/templates/aircox/controllers/monitor.html:144 msgid "File" -msgstr "" +msgstr "Fichier" -#: templates/aircox/controllers/monitor.html:145 +#: aircox/templates/aircox/controllers/monitor.html:145 msgid "Actions*" -msgstr "" +msgstr "Actions" -#: templates/aircox/controllers/monitor.html:158 +#: aircox/templates/aircox/controllers/monitor.html:158 msgid "current" -msgstr "" +msgstr "courant" -#: templates/aircox/controllers/monitor.html:161 -#, fuzzy -#| msgid "diffusion" +#: aircox/templates/aircox/controllers/monitor.html:161 msgid "diffusions" -msgstr "diffusion" +msgstr "diffusions" -#: templates/aircox/controllers/monitor.html:163 -#, fuzzy -#| msgid "Stream" +#: aircox/templates/aircox/controllers/monitor.html:163 msgid "stream" -msgstr "Stream" +msgstr "stream" -#: templates/aircox/controllers/monitor.html:186 +#: aircox/templates/aircox/controllers/monitor.html:186 msgid "" "\n" " *: Due to some technical issues, it might take up to 30 seconds to " @@ -445,55 +433,59 @@ msgid "" " " msgstr "" -#: templates/aircox/controllers/stats.html:9 -#: templates/aircox/controllers/stats.html:14 +#: aircox/templates/aircox/controllers/stats.html:9 +#: aircox/templates/aircox/controllers/stats.html:14 msgid "Statistics of the stations" msgstr "Statistiques des stations" -#: templates/aircox/controllers/stats.html:19 +#: aircox/templates/aircox/controllers/stats.html:18 +msgid "Go to this date:" +msgstr "Aller à cette date:" + +#: aircox/templates/aircox/controllers/stats.html:19 msgid "day" msgstr "jour" -#: templates/aircox/controllers/stats.html:21 +#: aircox/templates/aircox/controllers/stats.html:21 msgid "month" msgstr "mois" -#: templates/aircox/controllers/stats.html:23 +#: aircox/templates/aircox/controllers/stats.html:23 msgid "year" msgstr "année" -#: templates/aircox/controllers/stats.html:25 +#: aircox/templates/aircox/controllers/stats.html:25 msgid "Show" -msgstr "" +msgstr "Montrer" -#: templates/aircox/controllers/stats.html:39 +#: aircox/templates/aircox/controllers/stats.html:38 msgid "Date" msgstr "Date" -#: templates/aircox/controllers/stats.html:40 +#: aircox/templates/aircox/controllers/stats.html:39 msgid "Type" msgstr "Type" #. Translators "Header for statistics view" -#: templates/aircox/controllers/stats.html:42 +#: aircox/templates/aircox/controllers/stats.html:41 msgid "Diffusion or sound played" msgstr "Diffusion ou son joué" -#: templates/aircox/controllers/stats.html:43 +#: aircox/templates/aircox/controllers/stats.html:42 msgid "Tags" msgstr "Tags" -#: templates/aircox/controllers/stats.html:68 +#: aircox/templates/aircox/controllers/stats.html:67 msgid "Total" msgstr "Total" -#: templates/aircox/controllers/stats.html:72 +#: aircox/templates/aircox/controllers/stats.html:71 #, fuzzy, python-format #| msgid "" #| "\n" -#| " %(items_count)s items, with a total of " -#| "%(tracks_count)s tracks\n" -#| " " +#| " %(items_count)s items, with a total of %(tracks_count)s " +#| "tracks\n" +#| " " msgid "" "\n" " %(items_count)s items, with a total of %(tracks_count)s " @@ -501,18 +493,10 @@ msgid "" " " msgstr "" "\n" -" %(items_counts)s items, avec un total de %(tracks_count)s " -"tracks\n" +" %(items_counts)s items, avec un total de %(tracks_count)s " +"pistes\n" +" " -#: views.py:216 +#: aircox/views.py:230 msgid "Stream" msgstr "Stream" - -#~ msgid "station on which the event occured" -#~ msgstr "station sur laquelle l'événement a eu lieu" - -#~ msgid "source id that make it happen on the station" -#~ msgstr "id de la source qui le fait arriver sur la station" - -#~ msgid "update" -#~ msgstr "mettre à jour" diff --git a/aircox/models.py b/aircox/models.py index 2aa8be8..7c1221b 100755 --- a/aircox/models.py +++ b/aircox/models.py @@ -633,7 +633,8 @@ class Schedule(models.Model): if self.frequency == Schedule.Frequency.ponctual: return [] - date = utils.date_or_default(date, True).replace(day=1) + # set to 12h in order to avoid potential bugs with dst + date = utils.date_or_default(date, True).replace(day=1, hour=12) freq = self.frequency # last of the month diff --git a/aircox/templates/aircox/controllers/monitor.html b/aircox/templates/aircox/controllers/monitor.html index 31a485c..660f43a 100755 --- a/aircox/templates/aircox/controllers/monitor.html +++ b/aircox/templates/aircox/controllers/monitor.html @@ -3,7 +3,7 @@ {% load static %} {% block title %} -{% trans "Monitoring streamer" %} +{% trans "Streamer monitor" %} {% endblock %} {% block content %} @@ -109,7 +109,7 @@ Monitor.update(50000);
-

{% trans "Monitor Streamer" %}

+

{% trans "Streamer monitor" %}

diff --git a/aircox/templates/aircox/controllers/stats.html b/aircox/templates/aircox/controllers/stats.html index cacdc8e..b879db1 100755 --- a/aircox/templates/aircox/controllers/stats.html +++ b/aircox/templates/aircox/controllers/stats.html @@ -15,7 +15,7 @@ {# TODO here #}
- Go to this date: + {% trans "Go to this date:" %} 1);\n" -#: forms.py:17 +#: aircox_cms/forms.py:17 msgid "your name" msgstr "nom" -#: forms.py:20 +#: aircox_cms/forms.py:20 msgid "your email (optional)" msgstr "email (optionnel)" -#: forms.py:23 +#: aircox_cms/forms.py:23 msgid "your website (optional)" msgstr "site internet (optionnel)" -#: forms.py:26 +#: aircox_cms/forms.py:26 msgid "your comment" msgstr "commentaire" -#: forms.py:39 +#: aircox_cms/forms.py:39 msgid "You are a bot, that is not cool" msgstr "Vous êtes un robot. Pas cool !" -#: forms.py:42 +#: aircox_cms/forms.py:42 msgid "No publication found for this comment" msgstr "Aucune publication n'a été trouvée pour ce commentaire" -#: models.py:42 +#: aircox_cms/models.py:42 msgid "aircox station" msgstr "station aircox" -#: models.py:47 +#: aircox_cms/models.py:47 msgid "" "refers to an Aircox's station; it is used to make the link between the " "website and Aircox" @@ -54,64 +55,64 @@ msgstr "" "fait référence à une station Aircox; utilisé pour faire le lien entre le " "site internet et Aircox" -#: models.py:54 +#: aircox_cms/models.py:54 msgid "favicon" msgstr "favicon" -#: models.py:56 +#: aircox_cms/models.py:56 msgid "small logo for the website displayed in the browser" msgstr "petit logo pour le site affiché dans le navigateur" -#: models.py:59 models.py:284 +#: aircox_cms/models.py:59 aircox_cms/models.py:373 msgid "tags" msgstr "tags" -#: models.py:62 +#: aircox_cms/models.py:62 msgid "tags describing the website; used for referencing" msgstr "tags pour décrire le site internet; utilisés pour le référencement" -#: models.py:65 +#: aircox_cms/models.py:65 msgid "public description" msgstr "description publique" -#: models.py:68 +#: aircox_cms/models.py:68 msgid "public description of the website; used for referencing" msgstr "description publique du site internet; utilisée pour le référencement" -#: models.py:72 +#: aircox_cms/models.py:72 msgid "page for lists" msgstr "page pour les listes" -#: models.py:73 +#: aircox_cms/models.py:73 msgid "page used to display the results of a search and other lists" msgstr "" "page utilisée pour afficher les résultats d'une recherche et d'autres listes" -#: models.py:81 models.py:85 +#: aircox_cms/models.py:81 aircox_cms/models.py:85 msgid "publish comments automatically without verifying" msgstr "publier les commentaires automatiquement sans vérification" -#: models.py:88 +#: aircox_cms/models.py:88 msgid "success message" msgstr "message de réussite" -#: models.py:89 +#: aircox_cms/models.py:89 msgid "Your comment has been successfully posted!" msgstr "Votre commentaire a bien été posté !" -#: models.py:91 +#: aircox_cms/models.py:91 msgid "message displayed when a comment has been successfully posted" msgstr "message à afficher quand un commentaire a bien été posté" -#: models.py:95 +#: aircox_cms/models.py:95 msgid "waiting message" msgstr "message d'attente" -#: models.py:96 +#: aircox_cms/models.py:96 msgid "Your comment is awaiting for approval." msgstr "Votre message est en attente d'approbation" -#: models.py:98 +#: aircox_cms/models.py:98 msgid "" "message displayed when a comment has been sent, but waits for website " "administrators' approval." @@ -119,16 +120,16 @@ msgstr "" "message affiché quand un commentaire a été envoyé, mais est en attente de " "l'approbation des administrateurs du site" -#: models.py:103 +#: aircox_cms/models.py:103 msgid "error message" msgstr "message d'erreur" -#: models.py:104 +#: aircox_cms/models.py:104 msgid "We could not save your message. Please correct the error(s) below." msgstr "" "Votre message n'a pas pu être sauvegardé. Veuillez corriger l'erreur suivante" -#: models.py:106 +#: aircox_cms/models.py:106 msgid "" "message displayed when the form of the comment has been submitted but there " "is an error, such as an incomplete field" @@ -136,11 +137,11 @@ msgstr "" "message affiché quand le formulaire a été envoyé mais qu'il y a une erreur " "telle qu'un champ incomplet" -#: models.py:112 +#: aircox_cms/models.py:112 msgid "synchronize with Aircox" msgstr "synchroniser avec Aircox" -#: models.py:115 +#: aircox_cms/models.py:115 msgid "" "create publication for each object added to an Aircox's station; for example " "when there is a new program, or when a diffusion has been added to the " @@ -150,13 +151,13 @@ msgstr "" "exemple quand il y a un nouveau programme, ou quand une diffusion a été " "ajoutée au calendrier. Note: cela ne concerne pas les Stations elles-mêmes" -#: models.py:125 +#: aircox_cms/models.py:125 #, fuzzy #| msgid "default program parent page" msgid "default programs page" msgstr "Page des programmes par défault" -#: models.py:128 +#: aircox_cms/models.py:128 msgid "" "when a new program is saved and a publication is created, put this " "publication as a child of this page. If no page has been specified, try to " @@ -168,343 +169,379 @@ msgstr "" "été spécifiée, placez cette publication en tant qu'enfant de la page racine " "du site (sinon, ne créez pas la page)." -#: models.py:147 -#, fuzzy -#| msgid "promotion" +#: aircox_cms/models.py:147 msgid "Promotion" -msgstr "promotion" +msgstr "Promotion" -#: models.py:154 templates/aircox_cms/snippets/comments.html:6 -#: wagtail_hooks.py:162 +#: aircox_cms/models.py:154 +#: aircox_cms/templates/aircox_cms/snippets/comments.html:6 +#: aircox_cms/wagtail_hooks.py:163 msgid "Comments" msgstr "Commentaires" -#: models.py:158 +#: aircox_cms/models.py:158 msgid "Programs and controls" msgstr "Programmes et contrôles" -#: models.py:162 +#: aircox_cms/models.py:162 msgid "website settings" msgstr "paramètres du site internet" -#: models.py:172 -#, fuzzy -#| msgid "Publication" -msgid "publication" -msgstr "Publication" +#: aircox_cms/models.py:169 aircox_cms/sections.py:611 +msgid "page" +msgstr "page" -#: models.py:175 -#, fuzzy -#| msgid "Published by" +#: aircox_cms/models.py:172 msgid "published" -msgstr "Publié par" +msgstr "publié" -#: models.py:179 +#: aircox_cms/models.py:176 msgid "author" msgstr "auteur" -#: models.py:183 models.py:401 +#: aircox_cms/models.py:180 aircox_cms/models.py:439 msgid "email" msgstr "email" -#: models.py:187 +#: aircox_cms/models.py:184 msgid "website" msgstr "site internet" -#: models.py:191 models.py:243 +#: aircox_cms/models.py:188 aircox_cms/models.py:345 msgid "date" msgstr "date" -#: models.py:195 models.py:199 +#: aircox_cms/models.py:192 aircox_cms/models.py:196 msgid "comment" msgstr "commentaire" -#: models.py:200 +#: aircox_cms/models.py:197 #, fuzzy #| msgid "comment" msgid "comments" msgstr "commentaire" #. Translators: text shown in the comments list (in admin) -#: models.py:204 +#: aircox_cms/models.py:201 #, python-brace-format msgid "{date}, {author}: {content}..." msgstr "{date}, {author}: {content}..." -#: models.py:249 -msgid "publish as program" -msgstr "publier en tant que programme" - -#: models.py:252 -msgid "use this program as the author of the publication" -msgstr "utiliser ce programme en tant qu'auteur de la publication" - -#: models.py:255 -msgid "focus" -msgstr "focus" - -#: models.py:257 -msgid "the publication is highlighted;" -msgstr "la publication est mise en avant;" - -#: models.py:260 models.py:262 -msgid "allow comments" -msgstr "autoriser les commentaires" - -#: models.py:266 models.py:632 models.py:657 +#: aircox_cms/models.py:229 msgid "body" -msgstr "corps du texte" +msgstr "corps de texte" -#: models.py:268 +#: aircox_cms/models.py:231 msgid "the publication itself" -msgstr "le contenu de la publication elle-même" +msgstr "contenu de la publication elle-même" -#: models.py:272 +#: aircox_cms/models.py:235 msgid "cover" msgstr "couverture" -#: models.py:276 +#: aircox_cms/models.py:239 msgid "image to use as cover of the publication" msgstr "image à utiliser comme couverture de la publication" -#: models.py:279 -msgid "headline" -msgstr "entête" +#: aircox_cms/models.py:242 aircox_cms/models.py:244 aircox_cms/models.py:362 +#: aircox_cms/models.py:364 +msgid "allow comments" +msgstr "autoriser les commentaires" -#: models.py:281 -#, fuzzy -#| msgid "headline of the publication" -msgid "headline of the publication, use it as an introduction" -msgstr "entête de la publication" - -#: models.py:290 models.py:291 -msgid "Publication" -msgstr "Publication" - -#: models.py:299 models.py:305 models.py:518 models.py:641 models.py:669 +#: aircox_cms/models.py:253 aircox_cms/models.py:388 aircox_cms/models.py:394 +#: aircox_cms/models.py:552 msgid "Content" msgstr "Contenu" -#: models.py:306 models.py:519 sections.py:773 +#: aircox_cms/models.py:351 +msgid "publish as program" +msgstr "publier en tant que programme" + +#: aircox_cms/models.py:354 +msgid "use this program as the author of the publication" +msgstr "utiliser ce programme en tant qu'auteur de la publication" + +#: aircox_cms/models.py:357 +msgid "focus" +msgstr "focus" + +#: aircox_cms/models.py:359 +msgid "the publication is highlighted;" +msgstr "la publication est mise en avant;" + +#: aircox_cms/models.py:368 +msgid "headline" +msgstr "entête" + +#: aircox_cms/models.py:370 +msgid "headline of the publication, use it as an introduction" +msgstr "entête de la publication, utiliée comme introduction" + +#: aircox_cms/models.py:379 aircox_cms/models.py:380 +msgid "Publication" +msgstr "Publication" + +#: aircox_cms/models.py:395 aircox_cms/models.py:553 aircox_cms/sections.py:865 msgid "Links" msgstr "Liens" -#: models.py:393 +#: aircox_cms/models.py:432 msgid "program" msgstr "programme" -#: models.py:404 +#: aircox_cms/models.py:442 msgid "email is public" msgstr "l'email est public" -#: models.py:406 +#: aircox_cms/models.py:444 msgid "the email addess is accessible to the public" msgstr "l'adresse email est accessible au public" -#: models.py:410 wagtail_hooks.py:49 +#: aircox_cms/models.py:448 aircox_cms/wagtail_hooks.py:49 msgid "Program" msgstr "Programme" -#: models.py:411 signals.py:85 signals.py:97 wagtail_hooks.py:38 -#: wagtail_hooks.py:370 +#: aircox_cms/models.py:449 aircox_cms/signals.py:87 aircox_cms/signals.py:99 +#: aircox_cms/wagtail_hooks.py:38 aircox_cms/wagtail_hooks.py:377 msgid "Programs" msgstr "Programmes" -#: models.py:489 +#: aircox_cms/models.py:524 msgid "diffusion" msgstr "diffusion" -#: models.py:501 +#: aircox_cms/models.py:535 msgid "publish archive" msgstr "publier l'archive" -#: models.py:503 +#: aircox_cms/models.py:537 msgid "publish the podcast of the complete diffusion" msgstr "publier le podcast de la diffusion complète" -#: models.py:507 templates/aircox_cms/snippets/list_item.html:37 -#: wagtail_hooks.py:80 +#: aircox_cms/models.py:541 +#: aircox_cms/templates/aircox_cms/snippets/list_item.html:38 +#: aircox_cms/wagtail_hooks.py:80 msgid "Diffusion" msgstr "Diffusion" -#: models.py:508 wagtail_hooks.py:55 +#: aircox_cms/models.py:542 aircox_cms/wagtail_hooks.py:55 msgid "Diffusions" msgstr "Diffusions" -#: models.py:511 +#: aircox_cms/models.py:545 msgid "Tracks" msgstr "Pistes" -#: models.py:554 +#: aircox_cms/models.py:591 #, python-format msgid "Rerun of %(date)s" msgstr "Rediffusion du %(date)s" -#: models.py:558 +#: aircox_cms/models.py:595 msgid "Cancelled" msgstr "Annulé" -#: models.py:634 models.py:659 -msgid "add an extra description for this list" -msgstr "ajouter une description supplémentaire pour cette liste" - -#: models.py:645 +#: aircox_cms/models.py:700 msgid "Dynamic List Page" msgstr "Page avec liste dynamique" -#: models.py:646 +#: aircox_cms/models.py:701 msgid "Dynamic List Pages" msgstr "Pages avec liste dynamique" -#: models.py:704 models.py:765 sections.py:866 sections.py:925 +#: aircox_cms/models.py:745 aircox_cms/models.py:810 aircox_cms/sections.py:941 +#: aircox_cms/sections.py:1000 msgid "station" msgstr "station" -#: models.py:705 models.py:766 sections.py:926 +#: aircox_cms/models.py:748 aircox_cms/models.py:813 +#: aircox_cms/sections.py:1001 msgid "(required) related station" -msgstr "" +msgstr "(requis) station" -#: models.py:708 +#: aircox_cms/models.py:751 msgid "maximum age" msgstr "âge maximum" -#: models.py:710 +#: aircox_cms/models.py:753 msgid "maximum days in the past allowed to be shown. 0 means no limit" msgstr "" "nombre de jours maximum dans le passé autorisés à être affichés. 0 signifie " "qu'il n'y a pas de limite" -#: models.py:714 +#: aircox_cms/models.py:757 msgid "reverse list" -msgstr "" +msgstr "inverser la liste" -#: models.py:716 +#: aircox_cms/models.py:759 msgid "print logs in ascending order by date" msgstr "afficher les logs de manière ascendante par date" -#: models.py:720 models.py:721 wagtail_hooks.py:127 +#: aircox_cms/models.py:763 aircox_cms/models.py:764 +#: aircox_cms/wagtail_hooks.py:127 msgid "Logs" msgstr "Logs" -#: models.py:728 models.py:772 +#: aircox_cms/models.py:771 aircox_cms/models.py:819 msgid "Configuration" msgstr "Configuration" -#: models.py:776 models.py:777 signals.py:71 +#: aircox_cms/models.py:823 aircox_cms/models.py:824 +#: aircox_cms/sections.py:1021 aircox_cms/signals.py:73 msgid "Timetable" msgstr "Grille horaire" -#: sections.py:82 +#: aircox_cms/sections.py:82 msgid "url" msgstr "url" -#: sections.py:84 +#: aircox_cms/sections.py:84 msgid "URL of the link" msgstr "URL du lien" -#: sections.py:92 +#: aircox_cms/sections.py:92 msgid "Use a page instead of a URL" msgstr "Utiliser une page au lieu d'une URL" -#: sections.py:96 +#: aircox_cms/sections.py:96 msgid "icon" msgstr "icône" -#: sections.py:101 +#: aircox_cms/sections.py:101 msgid "icon from the gallery" msgstr "icône de la gallerie" -#: sections.py:105 +#: aircox_cms/sections.py:105 msgid "icon path" msgstr "chemin de l'icône" -#: sections.py:109 +#: aircox_cms/sections.py:109 msgid "icon from a given URL or path in the directory of static files" msgstr "icône d'une URL donnée ou chemin dans le des fichiers statiques" -#: sections.py:113 +#: aircox_cms/sections.py:113 msgid "text" msgstr "texte" -#: sections.py:116 +#: aircox_cms/sections.py:116 msgid "text of the link" msgstr "texte du lien" -#: sections.py:119 +#: aircox_cms/sections.py:119 msgid "info" msgstr "info" -#: sections.py:123 +#: aircox_cms/sections.py:123 msgid "description displayed in a popup when the mouse hovers the link" msgstr "" "description affichée dans une fenêtre popup quand la souris passe au dessus " "du lien" -#: sections.py:139 +#: aircox_cms/sections.py:139 msgid "link" msgstr "lien" -#: sections.py:182 -msgid "filter by date" -msgstr "filtrer par date" +#: aircox_cms/sections.py:189 +msgid "focus available" +msgstr "focus disponible" -#: sections.py:189 -msgid "filter by type" -msgstr "filtrer par type" +#: aircox_cms/sections.py:191 +msgid "if true, highlight the first focused article found" +msgstr "si vrai, surligner le premier article en focus trouvé" -#: sections.py:192 -msgid "if set, select only elements that are of this type" -msgstr "si actif, séléctionne seulement des éléments de ce type" +#: aircox_cms/sections.py:194 aircox_cms/sections.py:947 +msgid "count" +msgstr "compte" -#: sections.py:197 -msgid "filter by a related page" -msgstr "filtrer par page apparentée" +#: aircox_cms/sections.py:196 +msgid "number of items to display in the list" +msgstr "nombre d'objets à afficher dans la liste" -#: sections.py:200 -msgid "if set, select children or siblings related to this page" -msgstr "" -"si actif, selectionne les enfants ou les sœurs apparentées à cette page" - -#: sections.py:203 -msgid "select siblings of related" -msgstr "selectionne les sœurs de la page apparentée" - -#: sections.py:206 -msgid "if checked, related publications are siblings instead of the children." -msgstr "" -"si coché, les publications apparentées sont les sœurs au lieu des enfants." - -#: sections.py:211 +#: aircox_cms/sections.py:199 msgid "ascending order" msgstr "ordre ascendant" -#: sections.py:213 +#: aircox_cms/sections.py:201 msgid "if selected sort list in the ascending order by date" msgstr "si selectionné, affiche la liste dans l'ordre ascendant par date" -#: sections.py:224 +#: aircox_cms/sections.py:206 +msgid "filter on date" +msgstr "filtrer par date" + +#: aircox_cms/sections.py:211 +msgid "select pages whose date follows the given constraint" +msgstr "" + +#: aircox_cms/sections.py:216 +msgid "filter on page type" +msgstr "filtrer par type de page" + +#: aircox_cms/sections.py:219 +msgid "if set, select only elements that are of this type" +msgstr "si actif, séléctionne seulement des éléments de ce type" + +#: aircox_cms/sections.py:224 +msgid "related page" +msgstr "page apparentée" + +#: aircox_cms/sections.py:228 +msgid "if set, select children or siblings of this page" +msgstr "" +"si actif, selectionne les enfants ou les sœurs apparentées à cette page" + +#: aircox_cms/sections.py:233 +msgid "relation" +msgstr "relation" + +#: aircox_cms/sections.py:238 +msgid "" +"when the list is related to a page, only select pages that correspond to " +"this relationship" +msgstr "" +"quand une liste est relative à une page, sélectionner uniquement les pages " +"correspondant à cette relation" + +#: aircox_cms/sections.py:243 +msgid "filter on search" +msgstr "filtre sur cette recherche" + +#: aircox_cms/sections.py:247 +msgid "keep only pages that matches the given search" +msgstr "garder seulement les pages qui correspondent à cette recherche" + +#: aircox_cms/sections.py:251 +msgid "filter on tag" +msgstr "filtrer par date" + +#: aircox_cms/sections.py:255 +msgid "keep only pages with the given tags (separated by a colon)" +msgstr "" +"garder seulement les pages avec les tags suivants (séparés par une virgule" + +#: aircox_cms/sections.py:264 +msgid "rendering" +msgstr "rendu" + +#: aircox_cms/sections.py:272 msgid "filters" msgstr "filtres" -#: sections.py:228 -msgid "sorting" -msgstr "tri" - -#: sections.py:394 +#: aircox_cms/sections.py:486 msgid "navigation days count" msgstr "compte des jours de navigation" -#: sections.py:396 +#: aircox_cms/sections.py:488 msgid "number of days to display in the navigation header when we use dates" msgstr "" "nombre de jours à afficher dans l'entête de la navigation quand des dates " "sont utilisées" -#: sections.py:400 +#: aircox_cms/sections.py:492 msgid "navigation per week" msgstr "navigation par semaine" -#: sections.py:402 +#: aircox_cms/sections.py:494 msgid "" "if selected, show dates navigation per weeks instead of show days equally " "around the current date" @@ -512,47 +549,47 @@ msgstr "" "si sélectionné, montre les dates de navigation par semaine au lieu de " "montrer les date ségalement autour de la date actuelle" -#: sections.py:406 +#: aircox_cms/sections.py:498 msgid "hide icons" msgstr "cacher les icones" -#: sections.py:408 +#: aircox_cms/sections.py:500 msgid "if selected, images of publications will not be displayed in the list" msgstr "si sélectionné, la liste n'affiche pas les images des publications" -#: sections.py:420 sections.py:945 +#: aircox_cms/sections.py:512 msgid "Navigation" msgstr "Navigation" -#: sections.py:492 +#: aircox_cms/sections.py:584 msgid "name" msgstr "nom" -#: sections.py:495 +#: aircox_cms/sections.py:587 msgid "name of this section (not displayed)" msgstr "nom de cette section (pas affiché)" -#: sections.py:498 +#: aircox_cms/sections.py:590 msgid "position" msgstr "position" -#: sections.py:501 +#: aircox_cms/sections.py:593 msgid "name of the template block in which the section must be set" msgstr "nom du bloc modèle dans lequel la section doit être activée" -#: sections.py:505 sections.py:579 +#: aircox_cms/sections.py:597 aircox_cms/sections.py:671 msgid "order" msgstr "ordre" -#: sections.py:507 sections.py:581 +#: aircox_cms/sections.py:599 aircox_cms/sections.py:673 msgid "order of rendering, the higher the latest" msgstr "ordre d'affichage, le plus élevé étant affiché en dernier" -#: sections.py:511 +#: aircox_cms/sections.py:603 msgid "model" msgstr "modèle" -#: sections.py:513 +#: aircox_cms/sections.py:605 msgid "" "this section is displayed only when the current page or publication is of " "this type" @@ -560,43 +597,39 @@ msgstr "" "cette section n'est affichée que quand la page ou publication courante est " "de ce type" -#: sections.py:519 -msgid "page" -msgstr "page" - -#: sections.py:521 +#: aircox_cms/sections.py:613 msgid "this section is displayed only on this page" msgstr "cette section n'est affichée que sur cette page" -#: sections.py:530 sections.py:610 +#: aircox_cms/sections.py:622 aircox_cms/sections.py:702 msgid "General" msgstr "Général" -#: sections.py:588 +#: aircox_cms/sections.py:680 msgid "title" msgstr "titre" -#: sections.py:593 +#: aircox_cms/sections.py:685 msgid "show title" msgstr "montrer le titre" -#: sections.py:595 +#: aircox_cms/sections.py:687 msgid "if set show a title at the head of the section" msgstr "si actif, montre un titre dans l'entête de cette section" -#: sections.py:598 +#: aircox_cms/sections.py:690 msgid "CSS class" msgstr "classe CSS" -#: sections.py:601 +#: aircox_cms/sections.py:693 msgid "section container's \"class\" attribute" msgstr "attribut \"class\" de la balise HTML de la section" -#: sections.py:636 +#: aircox_cms/sections.py:728 msgid "is related" msgstr "est apparenté" -#: sections.py:639 +#: aircox_cms/sections.py:731 msgid "" "if set, section is related to the page being processed e.g rendering a list " "of links will use thoses of the publication instead of an assigned one." @@ -604,11 +637,11 @@ msgstr "" "si actif, la section est apparentée à la page traitée e.g. fournir une liste " "de liens utilisera ceux de la publication au lieu de celle assignée" -#: sections.py:684 +#: aircox_cms/sections.py:776 msgid "image" msgstr "image" -#: sections.py:688 +#: aircox_cms/sections.py:780 msgid "" "If this item is related to the current page, this image will be used only " "when the page has not a cover" @@ -616,156 +649,136 @@ msgstr "" "Si cet objet est apparenté à la page actuelle, cette page sera utilisée " "seulement quand la page n'a pas de couverture" -#: sections.py:693 +#: aircox_cms/sections.py:785 msgid "width" msgstr "largeur" -#: sections.py:695 +#: aircox_cms/sections.py:787 msgid "if set and > 0, sets a maximum width for the image" msgstr "si actif et > 0, fixe une largeur maximum pour l'image" -#: sections.py:698 +#: aircox_cms/sections.py:790 msgid "height" msgstr "hauteur" -#: sections.py:700 +#: aircox_cms/sections.py:792 msgid "if set 0 and > 0, sets a maximum height for the image" msgstr "si actif et > 0, fixe une hauteur maximum pour l'image" -#: sections.py:703 +#: aircox_cms/sections.py:795 msgid "resize mode" msgstr "mode de redimensionnement" -#: sections.py:706 +#: aircox_cms/sections.py:798 msgid "if the image is resized, set the resizing mode" msgstr "si l'image est redimensionnée, fixer le mode de redimensionnement" -#: sections.py:715 +#: aircox_cms/sections.py:807 msgid "Resizing" msgstr "Redimensionner" -#: sections.py:806 -msgid "focus available" -msgstr "focus disponible" - -#: sections.py:808 -msgid "if true, highlight the first focused article found" -msgstr "si vrai, surligner le premier article en focus trouvé" - -#: sections.py:811 sections.py:872 -msgid "count" -msgstr "compte" - -#: sections.py:813 -msgid "number of items to display in the list" -msgstr "nombre d'objets à afficher dans la liste" - -#: sections.py:816 +#: aircox_cms/sections.py:900 msgid "text of the url" msgstr "texte de l'url" -#: sections.py:819 +#: aircox_cms/sections.py:903 msgid "" -"use this text to display an URL to the complete list. If empty, does not " -"print an address" +"use this text to display an URL to the complete list. If empty, no link is " +"displayed" msgstr "" -"utiliser ce texte pour afficher un URL dans la liste complète. Si vide, " -"n'imprime pas une adresse" +"utiliser ce texte pour afficher un URL dans la liste complète. Si vide " +"aucune adresse est affichée." -#: sections.py:828 -msgid "Rendering" -msgstr "Rendu" - -#: sections.py:869 +#: aircox_cms/sections.py:944 msgid "(required) the station on which the logs happened" -msgstr "(obliatoire) la station sur laquelle les logs se sont produits" +msgstr "(requis) la station sur laquelle les logs se sont produits" -#: sections.py:874 +#: aircox_cms/sections.py:949 msgid "number of items to display in the list (max 100)" msgstr "nombre d'objets à afficher dans la liste (max 100)" -#: sections.py:878 +#: aircox_cms/sections.py:953 msgid "list of logs" msgstr "liste des logs" -#: sections.py:879 +#: aircox_cms/sections.py:954 msgid "lists of logs" msgstr "listes des logs" -#: sections.py:920 +#: aircox_cms/sections.py:995 msgid "Section: Timetable" msgstr "Section: Grille horaire" -#: sections.py:921 +#: aircox_cms/sections.py:996 msgid "Sections: Timetable" msgstr "Sections: Grilles horaire" -#: sections.py:930 +#: aircox_cms/sections.py:1005 msgid "timetable page" msgstr "Page de Grille horaire" -#: sections.py:932 +#: aircox_cms/sections.py:1007 msgid "select a timetable page used to show complete timetable" msgstr "" "sélectionner une page de grille horaire pour afficher l'horaire complet" -#: sections.py:935 +#: aircox_cms/sections.py:1010 msgid "show date navigation" msgstr "afficher les dates de navigation" -#: sections.py:937 +#: aircox_cms/sections.py:1012 msgid "if checked, navigation dates will be shown" msgstr "si coché, les dates de navigation sont affichées" -#: sections.py:970 +#: aircox_cms/sections.py:1046 msgid "Section: publication's info" msgstr "Section: info de la publication" -#: sections.py:971 +#: aircox_cms/sections.py:1047 msgid "Sections: publication's info" msgstr "Sections: info de la publication" -#: sections.py:976 +#: aircox_cms/sections.py:1052 msgid "default text" msgstr "texte par défaut" -#: sections.py:978 +#: aircox_cms/sections.py:1054 msgid "search" msgstr "recherche" -#: sections.py:979 +#: aircox_cms/sections.py:1055 msgid "text to display when the search field is empty" msgstr "texte à afficher quand le champ de recherche est vide" -#: sections.py:983 +#: aircox_cms/sections.py:1059 msgid "Section: search field" msgstr "Section: champ de recherche" -#: sections.py:984 +#: aircox_cms/sections.py:1060 msgid "Sections: search field" msgstr "Sections: champ de recherche" -#: sections.py:1000 +#: aircox_cms/sections.py:1070 msgid "live title" msgstr "titre du direct" -#: sections.py:1002 +#: aircox_cms/sections.py:1072 msgid "text to display when it plays live" msgstr "texte à afficher quand le direct est activé" -#: sections.py:1005 +#: aircox_cms/sections.py:1075 msgid "audio streams" msgstr "streams audio" -#: sections.py:1006 +#: aircox_cms/sections.py:1076 msgid "one audio stream per line" msgstr "un stream audio par ligne" -#: sections.py:1010 +#: aircox_cms/sections.py:1080 msgid "Section: Player" msgstr "Section: Player" -#: signals.py:31 +#: aircox_cms/signals.py:33 #, python-brace-format msgid "" "If you see this page, then Aircox is running for the station {station.name}. " @@ -774,298 +787,236 @@ msgstr "" "Si vous voyez cette page, Aircox fonctionne pour la station {station.name}. " "Vous devriez peut-être la change pour une meilleure station. " -#: signals.py:62 +#: aircox_cms/signals.py:64 #, python-brace-format msgid "The website of the {name} radio" msgstr "Site internet de la radio {name}" #. Translators: tags set by default in description of the website -#: signals.py:66 +#: aircox_cms/signals.py:68 #, python-brace-format msgid "radio,{station.name}" msgstr "radio,{station.name}" -#: signals.py:78 +#: aircox_cms/signals.py:80 msgid "Search" msgstr "Recherche" -#: signals.py:90 +#: aircox_cms/signals.py:92 msgid "programs" msgstr "programmes" -#: signals.py:98 +#: aircox_cms/signals.py:100 msgid "All programs" msgstr "Tous les programmes" -#: signals.py:108 +#: aircox_cms/signals.py:110 msgid "Previously on air" msgstr "Précédemment on air" #. Translators: default content of a page for program -#: signals.py:137 +#: aircox_cms/signals.py:139 #, python-brace-format msgid "{program.name} is a program on {station.name}." msgstr "{program.name} est un programme sur {station.name}" -#: templates/aircox_cms/diffusion_page.html:8 +#: aircox_cms/templates/aircox_cms/diffusion_page.html:8 msgid "Playlist" msgstr "Playlist" -#: templates/aircox_cms/diffusion_page.html:23 +#: aircox_cms/templates/aircox_cms/diffusion_page.html:23 msgid "Dates of diffusion" msgstr "Dates de diffusion" -#: templates/aircox_cms/diffusion_page.html:38 +#: aircox_cms/templates/aircox_cms/diffusion_page.html:38 msgid "Podcasts" msgstr "Podcasts" -#: templates/aircox_cms/dynamic_list_page.html:14 +#: aircox_cms/templates/aircox_cms/dynamic_list_page.html:14 #, python-format msgid "Search in publications for %(terms)s" msgstr "Chercher %(terms)s dans les publications" -#: templates/aircox_cms/dynamic_list_page.html:19 +#: aircox_cms/templates/aircox_cms/dynamic_list_page.html:19 #, python-format msgid "Related to %(title)s" msgstr "Relatif à %(title)s" -#: templates/aircox_cms/dynamic_list_page.html:23 +#: aircox_cms/templates/aircox_cms/dynamic_list_page.html:23 msgid "All the publications" msgstr "Toutes les publications" -#: templates/aircox_cms/dynamic_list_page.html:35 +#: aircox_cms/templates/aircox_cms/dynamic_list_page.html:36 msgid "More about it" msgstr "Plus d'informations" -#: templates/aircox_cms/event_page.html:6 +#: aircox_cms/templates/aircox_cms/event_page.html:6 msgid "Practical information" msgstr "Informations pratiques" -#: templates/aircox_cms/event_page.html:10 +#: aircox_cms/templates/aircox_cms/event_page.html:10 msgid "Date" msgstr "Date" -#: templates/aircox_cms/event_page.html:13 +#: aircox_cms/templates/aircox_cms/event_page.html:13 msgid "Place" msgstr "Lieu" -#: templates/aircox_cms/event_page.html:15 +#: aircox_cms/templates/aircox_cms/event_page.html:15 msgid "Price" msgstr "Prix" -#: templates/aircox_cms/program_page.html:12 wagtail_hooks.py:101 +#: aircox_cms/templates/aircox_cms/program_page.html:12 +#: aircox_cms/wagtail_hooks.py:101 msgid "Schedule" msgstr "Horaire" -#: templates/aircox_cms/program_page.html:18 +#: aircox_cms/templates/aircox_cms/program_page.html:18 #, python-format msgid "" "%(day)s at %(start)s until %(end)s, %(frequency)s" msgstr "" "%(day)s de %(start)s à %(end)s, %(frequency)s" -#: templates/aircox_cms/program_page.html:24 +#: aircox_cms/templates/aircox_cms/program_page.html:24 msgid "Rerun" -msgstr "Redifussion" +msgstr "Rediffusion" -#: templates/aircox_cms/program_page.html:30 +#: aircox_cms/templates/aircox_cms/program_page.html:30 msgid "This program is no longer active" msgstr "Ce programme n'est plus actif" -#: templates/aircox_cms/publication.html:35 -msgid "Go back to the publication" -msgstr "Retourner à la publication" - -#: templates/aircox_cms/sections/section_publication_info.html:14 -#: templates/aircox_cms/sections/section_publication_info.html:15 +#: aircox_cms/templates/aircox_cms/sections/section_publication_info.html:14 +#: aircox_cms/templates/aircox_cms/sections/section_publication_info.html:15 msgid "Parent pages" msgstr "Pages parentes" -#: templates/aircox_cms/sections/section_publication_info.html:31 -#: templates/aircox_cms/sections/section_publication_info.html:32 +#: aircox_cms/templates/aircox_cms/sections/section_publication_info.html:31 +#: aircox_cms/templates/aircox_cms/sections/section_publication_info.html:32 msgid "Tags" msgstr "Tags" -#: templates/aircox_cms/sections/section_publication_info.html:49 -#: templates/aircox_cms/sections/section_publication_info.html:50 +#: aircox_cms/templates/aircox_cms/sections/section_publication_info.html:49 +#: aircox_cms/templates/aircox_cms/sections/section_publication_info.html:50 msgid "Author" msgstr "Auteur" -#: templates/aircox_cms/sections/section_publication_info.html:52 +#: aircox_cms/templates/aircox_cms/sections/section_publication_info.html:52 #, python-format msgid "Published by %(author)s" msgstr "Publié par %(author)s" -#: templates/aircox_cms/sections/section_publication_info.html:62 -#: templates/aircox_cms/sections/section_publication_info.html:63 +#: aircox_cms/templates/aircox_cms/sections/section_publication_info.html:62 +#: aircox_cms/templates/aircox_cms/sections/section_publication_info.html:63 msgid "Date of publication" msgstr "Date de publication" -#: templates/aircox_cms/sections/section_publication_info.html:72 -#: templates/aircox_cms/sections/section_publication_info.html:73 +#: aircox_cms/templates/aircox_cms/sections/section_publication_info.html:72 +#: aircox_cms/templates/aircox_cms/sections/section_publication_info.html:73 msgid "Share" msgstr "Partager" -#: templates/aircox_cms/snippets/comments.html:21 +#: aircox_cms/templates/aircox_cms/snippets/comments.html:21 msgid "show more options" msgstr "montrer plus d'options" -#: templates/aircox_cms/snippets/comments.html:34 +#: aircox_cms/templates/aircox_cms/snippets/comments.html:34 msgid "Post!" msgstr "Poster!" -#: templates/aircox_cms/snippets/date_list.html:8 +#: aircox_cms/templates/aircox_cms/snippets/date_list.html:8 msgid "go to today" msgstr "aujourd'hui" -#: templates/aircox_cms/snippets/date_list.html:11 +#: aircox_cms/templates/aircox_cms/snippets/date_list.html:11 msgid "previous days" msgstr "jours précédents" -#: templates/aircox_cms/snippets/date_list.html:27 +#: aircox_cms/templates/aircox_cms/snippets/date_list.html:27 msgid "next days" msgstr "jours suivants" -#: templates/aircox_cms/snippets/list.html:24 +#: aircox_cms/templates/aircox_cms/snippets/date_list_item.html:21 +#: aircox_cms/templates/aircox_cms/snippets/date_list_item.html:22 +msgid "on air" +msgstr "en onde" + +#: aircox_cms/templates/aircox_cms/snippets/list.html:29 msgid "previous page" msgstr "page précédente" -#: templates/aircox_cms/snippets/list.html:54 +#: aircox_cms/templates/aircox_cms/snippets/list.html:59 msgid "next page" msgstr "page suivante" -#: templates/aircox_cms/snippets/player.html:5 +#: aircox_cms/templates/aircox_cms/snippets/player.html:5 msgid "Your browser does not support the audio element." msgstr "Votre navigateur ne supporte pas l'élément audio" -#: templates/aircox_cms/snippets/player.html:16 +#: aircox_cms/templates/aircox_cms/snippets/player.html:16 msgid "play" msgstr "jouer" -#: templates/aircox_cms/snippets/player.html:18 +#: aircox_cms/templates/aircox_cms/snippets/player.html:18 msgid "pause" msgstr "pause" -#: templates/aircox_cms/snippets/player.html:20 +#: aircox_cms/templates/aircox_cms/snippets/player.html:20 msgid "loading..." msgstr "chargement..." -#: templates/aircox_cms/snippets/player.html:32 +#: aircox_cms/templates/aircox_cms/snippets/player.html:32 msgid "add to the player" msgstr "ajouter au player" -#: templates/aircox_cms/snippets/player.html:33 +#: aircox_cms/templates/aircox_cms/snippets/player.html:33 msgid "more informations" msgstr "plus d'informations" -#: templates/aircox_cms/snippets/player.html:34 +#: aircox_cms/templates/aircox_cms/snippets/player.html:34 msgid "remove this sound" msgstr "enlever ce son" -#: templates/aircox_cms/snippets/player.html:47 +#: aircox_cms/templates/aircox_cms/snippets/player.html:47 msgid "enable and disable single mode" msgstr "activer et désactiver le mode solo" -#: templates/aircox_cms/snippets/sound_list_item.html:39 +#: aircox_cms/templates/aircox_cms/snippets/sound_list_item.html:39 msgid "add this sound to the playlist" msgstr "ajouter ce son à la playlist" -#: wagtail_hooks.py:86 +#: aircox_cms/wagtail_hooks.py:86 msgid "Schedules" msgstr "Horaires" -#: wagtail_hooks.py:107 +#: aircox_cms/wagtail_hooks.py:107 msgid "Streams" msgstr "Streams" -#: wagtail_hooks.py:121 -#, fuzzy -#| msgid "Streams" +#: aircox_cms/wagtail_hooks.py:121 msgid "Stream" -msgstr "Streams" +msgstr "Stream" -#: wagtail_hooks.py:146 -#, fuzzy -#| msgid "Logs" +#: aircox_cms/wagtail_hooks.py:142 msgid "Log" msgstr "Logs" -#: wagtail_hooks.py:153 +#: aircox_cms/wagtail_hooks.py:147 +msgid "Related objects" +msgstr "Objects relatifs" + +#: aircox_cms/wagtail_hooks.py:154 msgid "Advanced" msgstr "Avancé" -#: wagtail_hooks.py:173 +#: aircox_cms/wagtail_hooks.py:174 msgid "Sounds" msgstr "Sons" -#: wagtail_hooks.py:331 +#: aircox_cms/wagtail_hooks.py:338 msgid "Today's Diffusions" msgstr "Diffusions du jour" -#: wagtail_hooks.py:403 +#: aircox_cms/wagtail_hooks.py:410 msgid "Current Station" -msgstr "" - -#~ msgid "public" -#~ msgstr "public" - -#~ msgid "message to display when a post waits to be reviewed" -#~ msgstr "message à afficher quand une publication attend d'être approuvée" - -#~ msgid "message to display there is an error an incomplete form." -#~ msgstr "" -#~ "message à afficher quand il y a une erreur dans un formulaire incomplet" - -#~ msgid "" -#~ "Create automatically new publications for new programs and diffusions in " -#~ "the timetable. If set, please complete other options of this panel" -#~ msgstr "" -#~ "Crée automatiquement de nouvelles publications pour de nouveaux " -#~ "programmes et de nouvelles diffusions dans l'horaire. Si actif, veuillez " -#~ "complèter les autres options de ce pannel" - -#~ msgid "" -#~ "Default parent page for program's pages. It is used to assign a page to " -#~ "the publication of a newly created program and can be changed later" -#~ msgstr "" -#~ "Page parent par défaut pour les pages d'un programme. Est utilisé pour " -#~ "assigner une page à la publication d'un programme nouvellement créé et " -#~ "peut être changé plus tard" - -#~ msgid "list from the request" -#~ msgstr "liste de la requête" - -#~ msgid "" -#~ "if set, the page print a list based on the request made by the website " -#~ "visitor, and its title will be adapted to this request. Can be usefull " -#~ "for search pages, etc. and should only be set on one page." -#~ msgstr "" -#~ "si actif, la page imprime une liste basée sur la requête effectuée par le " -#~ "visiteurdu site internet, et son titre sera adapté à cette requête. Peut " -#~ "être utile pour chercherdes pages, etc. et ne devrait être activé que sur " -#~ "une seule page" - -#~ msgid "Generic Page" -#~ msgstr "Page générique" - -#~ msgid "icon to display before the url" -#~ msgstr "icône à afficher avant l'url" - -#~ msgid "text to display of the link" -#~ msgstr "texte du lien à afficher" - -#~ msgid "Section Items" -#~ msgstr "Éléments de la section" - -#~ msgid "item" -#~ msgstr "objet" - -#~ msgid "links" -#~ msgstr "liens" - -#~ msgid "" -#~ "If the list is related to the current page, theses links will be used " -#~ "when there is no links found for this publication" -#~ msgstr "" -#~ "Si la liste est apparentée à la page actuelle, ces liens seront utilisés " -#~ "quand il n'y a pas de liens trouvés pour cette application" +msgstr "Station courante" diff --git a/aircox_cms/static/aircox_cms/css/layout.css b/aircox_cms/static/aircox_cms/css/layout.css index 7d40e6d..80dcedd 100755 --- a/aircox_cms/static/aircox_cms/css/layout.css +++ b/aircox_cms/static/aircox_cms/css/layout.css @@ -1,44 +1,45 @@ /** * Define rules for the default layouts, and some useful classes */ + +/** general **/ body { - max-width: 92em; - margin: 0em auto; - padding: 0em; + background-color: #F2F2F2; + font-family: "Myriad Pro",Calibri,Helvetica,Arial,sans-serif; } h1, h2, h3, h4, h5 { + font-family: "Myriad Pro",Calibri,Helvetica,Arial,sans-serif; margin: 0.4em 0em; } -ul { - margin: 0em; +h1:first-letter, h2:first-letter, h3:first-letter, h4:first-letter { + text-transform: capitalize; } +h1 { font-size: 1.4em; } +h2 { font-size: 1.2em; } +h3 { font-size: 0.9em; } +h4 { font-size: 0.8em; } -/** classes **/ -.float_right { - float: right; +h1 > *, h2 > *, h3 > *, h4 > * { vertical-align: middle; } + + +a { + cursor: pointer; + text-decoration: none; + color: #616161; } -.float_left { - float: left; -} +a:hover { color: #007EDF; } +a:hover > .small_icon { box-shadow: 0em 0em 0.1em #007EDF; } -.small { - font-size: 0.8em; -} +ul { margin: 0em; } -.icon { - max-width: 2em; - max-height: 2em; - vertical-align: middle; -} -.small_icon { - max-height: 1.5em; - vertical-align: middle; -} +/**** position & box ****/ +.float_right { float: right; } +.float_left { float: left; } .flex_row { @@ -62,7 +63,48 @@ ul { } -/** content: menus **/ +.small { + font-size: 0.8em; +} + + + +/**** indicators & info ****/ +time, .tags { + font-size: 0.9em; + color: #616161; +} + +.info { + font-size: 0.9em; + padding: 0.1em; + color: #007EDF; +} + +.error { color: red; } +.warning { color: orange; } +.success { color: green; } + +.icon { + max-width: 2em; + max-height: 2em; + vertical-align: middle; +} + +.small_icon { + max-height: 1.5em; + vertical-align: middle; +} + + +/** main layout **/ +body > * { + max-width: 92em; + margin: 0em auto; + padding: 0em; +} + + .menu { padding: 0.4em; } @@ -71,35 +113,40 @@ ul { display: none; } - body > .top *, - body > .header * { - vertical-align: middle; - } - body > .top section, - body > .header section { - display: inline-block; - } +.menu.row section { + display: inline-block; +} - body > .top a, - body > .header a { - display: inline-block; - margin: 0.2em 1em; - } +.menu.col > section { + margin-bottom: 1em; +} + +/**** top + header layout ****/ body > .top { position: fixed; z-index: 10000000; top: 0; - width: calc(100% - 0.8em); - max-width: calc(92em - 0.8em); - height: 2.5em; + left: 0; + width: 100%; + max-width: 100%; + margin: 0em auto; background-color: white; - box-shadow: 0em 0em 0.2em black; + border-bottom: 0.1em #dfdfdf solid; + box-shadow: 0em 0.1em 0.1em rgba(255,255,255,0.7); + box-shadow: 0em 0.1em 0.5em rgba(0,0,0,0.1); + transition: opacity 1.5s; } + body > .top > .menu { + max-width: 92em; + height: 2.5em; + margin: 0em auto; + } + body[scrollY] > .top { opacity: 0.1; transition: opacity 1.5s 1s; @@ -117,6 +164,7 @@ body > .header { margin-bottom: 1em; } + /** FIXME: remove this once image slides impled **/ body > .header > div { width: 15000%; } @@ -127,29 +175,142 @@ body > .header { } -.page_left { margin-right: 2em; } -.page_right { margin-left: 2em; } -.page_left, .page_right { +/**** page layout ****/ +.page { + display: flex; +} + +.page > main { + flex: auto; + + overflow: hidden; + margin: 0em 0em; + border-radius: 0.4em; + border: 0.1em #dfdfdf solid; + + background-color: rgba(255,255,255,0.9); + box-shadow: inset 0.1em 0.1em 0.2em rgba(255, 255, 255, 0.8); +} + + +.page > nav { + flex: 1; + width: 20em; + overflow: hidden; max-width: 16em; } -.page_left > section, -.page_right > section { - margin-bottom: 1em; + .page > .menu.col:first-child { margin-right: 2em; } + .page > main + .menu.col { margin-left: 2em; } + + + +/**** page main ****/ +main:not(.detail) h1 { + margin: 0em 0em 0.4em 0em; } - .page_left .section_link_list a, - .page_right .section_link_list a { - display: block; +main .post_content { + display: block; +} + +main .post_content section { + display: inline-block; + width: calc(50% - 1em); + vertical-align: top; +} + + +main.detail { + padding: 0em; + margin: 0em; +} + + main > .content { + padding: 1em; + } + + main > header { + margin: 0em; + padding: 1em; + position: relative; + } + + main > header .foreground { + position: absolute; + left: 0em; + top: 0em; + width: calc(100% - 2em); + padding: 1em; + } + + main > header h1 { + width: calc(100% - 2em); + margin: 0em; + margin-bottom: 0.8em; + } + + main header .headline { + display: inline-block; + width: calc(60% - 0.8em); + min-height: 1.2em; + font-size: 1.2em; + font-weight: bold; + } + + main > header .background { + margin: -1em; + height: 17em; + overflow: hidden; + position: relative; + } + + main > header .background img { + position: absolute; + /*! top: -40%; */ + /*! left: -40%; */ + width: 100%; + min-height: 100%; + filter: blur(20px); + opacity: 0.3; + } + + main > header .cover { + right: 0em; + top: 1em; + width: auto; + max-height: calc(100% - 2em); + max-width: calc(40% - 2em); + margin: 1em; + position: absolute; + box-shadow: 0em 0em 4em rgba(0, 0, 0, 0.4); } + +/** sections **/ body section ul { padding: 0em; padding-left: 1em; } + +/**** link list ****/ +.menu.row .section_link_list > a { + display: inline-block; + margin: 0.2em 1em; +} + +.menu.col .section_link_list > a { + display: block; +} + + + + + +/** content: menus **/ /** content: list & items **/ .list { width: 100%; diff --git a/aircox_cms/static/aircox_cms/css/theme.css b/aircox_cms/static/aircox_cms/css/theme.css index 49958f5..8345bba 100755 --- a/aircox_cms/static/aircox_cms/css/theme.css +++ b/aircox_cms/static/aircox_cms/css/theme.css @@ -16,163 +16,8 @@ * - active: #007EDF */ -/** main **/ -body { - background-color: #F2F2F2; - font-family: "Myriad Pro",Calibri,Helvetica,Arial,sans-serif; - padding: 0em; -} - - -h1, h2, h3 { - font-family: "Myriad Pro",Calibri,Helvetica,Arial,sans-serif; -} - -h1:first-letter, h2:first-letter, h3:first-letter { - text-transform: capitalize; -} - -h1 { font-size: 1.4em; } -h2 { font-size: 1.2em; } -h3 { font-size: 0.9em; } - - -h2 * { vertical-align: middle; } - - - -/** info **/ -time, .tags { - font-size: 0.9em; - color: #616161; -} - -.info { - font-size: 0.9em; - padding: 0.1em; - color: #007EDF; -} - - -a { - cursor: pointer; - text-decoration: none; - color: #616161; -} - -a:hover { - color: #007EDF; -} - -a:hover > .small_icon { - box-shadow: 0em 0em 0.1em #007EDF; -} - - -.error { color: red; } -.warning { color: orange; } -.success { color: green; } - - -/** page **/ -.page > nav { - width: 20em; - overflow: hidden; -} - -main { - background-color: rgba(255,255,255,0.9); - margin: 0em 0em; - box-shadow: 0em 0em 0.2em black; - width: 60%; -} - - main > .content { - /*! margin: 1em; */ - } - - - main:not(.detail) h1 { - margin: 0em 0em 0.4em 0em; - } - -main .post_content { - display: block; -} - -main .post_content section { - display: inline-block; - width: calc(50% - 1em); - vertical-align: top; -} - /** detail view **/ -main.detail { - padding: 0em; - margin: 0em; -} - - main > .content { - padding: 1em; - } - - main > header { - margin: 0em; - padding: 1em; - position: relative; - } - - main > header .foreground { - position: absolute; - left: 0em; - top: 0em; - width: calc(100% - 2em); - padding: 1em; - } - - main > header h1 { - width: calc(100% - 2em); - margin: 0em; - margin-bottom: 0.8em; - } - - main header .headline { - display: inline-block; - width: calc(60% - 0.8em); - min-height: 1.2em; - font-size: 1.2em; - font-weight: bold; - } - - main > header .background { - margin: -1em; - height: 17em; - overflow: hidden; - position: relative; - } - - main > header .background img { - position: absolute; - /*! top: -40%; */ - /*! left: -40%; */ - width: 100%; - min-height: 100%; - filter: blur(20px); - opacity: 0.3; - } - - main > header .cover { - right: 0em; - top: 1em; - width: auto; - max-height: calc(100% - 2em); - max-width: calc(40% - 2em); - margin: 1em; - position: absolute; - box-shadow: 0em 0em 4em rgba(0, 0, 0, 0.4); - } - /** player **/ .player[state='playing'] .item[selected] .button > img { diff --git a/aircox_cms/templates/aircox_cms/base_site.html b/aircox_cms/templates/aircox_cms/base_site.html index dbbb485..8a03893 100755 --- a/aircox_cms/templates/aircox_cms/base_site.html +++ b/aircox_cms/templates/aircox_cms/base_site.html @@ -34,22 +34,24 @@ {% spaceless %} - + -
+
-
diff --git a/scripts/cron_diffusions b/scripts/cron similarity index 88% rename from scripts/cron_diffusions rename to scripts/cron index 567e6e3..0224e0c 100755 --- a/scripts/cron_diffusions +++ b/scripts/cron @@ -9,7 +9,7 @@ scripts/launch_in_venv ./manage.py diffusions --update --next-month --mode auto cd - # - archiver monitoring for the next month -scripts/launch_in_venv ./manage.py archiver -a 60 +scripts/launch_in_venv ./manage.py archiver -a 90 cd -