diff --git a/chrono/locale/fr/LC_MESSAGES/django.po b/chrono/locale/fr/LC_MESSAGES/django.po index db51acba..88a10af2 100644 --- a/chrono/locale/fr/LC_MESSAGES/django.po +++ b/chrono/locale/fr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: chrono 0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-03-04 19:01+0000\n" +"POT-Creation-Date: 2020-03-20 12:08+0000\n" "PO-Revision-Date: 2018-02-13 17:33+0100\n" "Last-Translator: Frederic Peters \n" "Language: French\n" @@ -26,95 +26,116 @@ msgstr "Événements" msgid "Meetings" msgstr "Rendez-vous" -#: agendas/models.py:73 agendas/models.py:270 agendas/models.py:307 -#: agendas/models.py:513 +#: agendas/models.py:46 +msgid "Virtual" +msgstr "Virtuel" + +#: agendas/models.py:74 agendas/models.py:464 agendas/models.py:502 +#: agendas/models.py:724 msgid "Label" msgstr "Libellé" -#: agendas/models.py:74 agendas/models.py:271 agendas/models.py:313 -#: agendas/models.py:514 +#: agendas/models.py:75 agendas/models.py:465 agendas/models.py:508 +#: agendas/models.py:725 msgid "Identifier" msgstr "identifiant" -#: agendas/models.py:75 +#: agendas/models.py:76 msgid "Kind" msgstr "Type" -#: agendas/models.py:76 +#: agendas/models.py:78 msgid "Minimal booking delay (in days)" msgstr "Délai de réservation minimal (en jours)" -#: agendas/models.py:78 +#: agendas/models.py:81 msgid "Maximal booking delay (in days)" msgstr "Délai de réservation maximal (en jours)" -#: agendas/models.py:86 manager/forms.py:50 +#: agendas/models.py:96 manager/forms.py:51 msgid "Edit Role" msgstr "Rôle d’édition" -#: agendas/models.py:95 manager/forms.py:53 +#: agendas/models.py:105 manager/forms.py:54 msgid "View Role" msgstr "Rôle de visualisation" -#: agendas/models.py:164 +#: agendas/models.py:244 #, python-format msgid "Missing \"%s\" role" msgstr "Rôle « %s » manquant" -#: agendas/models.py:204 +#: agendas/models.py:292 +msgid "" +"This agenda does not have the same meeting types provided by the virtual " +"agenda." +msgstr "" +"Cet agenda n’a pas les mêmes types de rendez-vous que ceux de l’agenda " +"virtuel." + +#: agendas/models.py:307 +#, python-format +msgid "" +"Meeting type \"%(label)s\" (%(duration)s minutes) (identifier: %(slug)s) " +"does no exist." +msgstr "" +"Le type de rendez-vous « %(label)s » (%(duration)s minutes) " +"(identifiant %(slug)s) n’existe pas." + +#: agendas/models.py:349 msgid "Week day" msgstr "Jour de la semaine" -#: agendas/models.py:205 +#: agendas/models.py:350 msgid "Start" msgstr "Début" -#: agendas/models.py:206 +#: agendas/models.py:351 msgid "End" msgstr "Fin" -#: agendas/models.py:272 +#: agendas/models.py:466 msgid "Duration (in minutes)" msgstr "Durée (en minutes)" -#: agendas/models.py:303 +#: agendas/models.py:498 msgid "Date/time" msgstr "Date et heure" -#: agendas/models.py:304 +#: agendas/models.py:499 msgid "Places" msgstr "Places" -#: agendas/models.py:305 +#: agendas/models.py:500 msgid "Places in waiting list" msgstr "Places dans la liste d’attente" -#: agendas/models.py:311 +#: agendas/models.py:506 msgid "Optional label to identify this date." msgstr "Libellé optionnel pour identifier la date." -#: agendas/models.py:315 +#: agendas/models.py:510 msgid "Description" msgstr "Description" -#: agendas/models.py:315 +#: agendas/models.py:510 msgid "Optional event description." msgstr "Description optionnelle pour l’événement." -#: agendas/models.py:317 +#: agendas/models.py:512 msgid "Pricing" msgstr "Tarif" -#: agendas/models.py:318 manager/forms.py:271 +#: agendas/models.py:513 manager/forms.py:327 #: manager/templates/chrono/manager_sample_events.txt:1 msgid "URL" msgstr "URL" -#: agendas/models.py:452 +#: agendas/models.py:648 msgid "Label displayed to user" msgstr "Libellé affiché à l’usager" -#: agendas/models.py:577 +#: agendas/models.py:789 #, python-format msgid "" "Failed to retrieve remote calendar (%(url)s, HTTP error %(status_code)s)." @@ -122,149 +143,169 @@ msgstr "" "Erreur à la récupération du calendrier distant (%(url)s, Erreur HTTP " "%(status_code)s)." -#: agendas/models.py:582 +#: agendas/models.py:794 #, python-format msgid "Failed to retrieve remote calendar (%(url)s, %(exception)s)." msgstr "" "Erreur à la récupération du calendrier distant (%(url)s, %(exception)s)." -#: agendas/models.py:606 +#: agendas/models.py:818 msgid "File format is invalid." msgstr "Le format de fichier n’est pas reconnu." -#: agendas/models.py:611 +#: agendas/models.py:823 msgid "The file doesn't contain any events." msgstr "Le fichier ne contient aucun événement." -#: agendas/models.py:624 +#: agendas/models.py:836 msgid "Exception" msgstr "Exception" -#: agendas/models.py:632 +#: agendas/models.py:844 #, python-format msgid "Event \"%s\" has no start date." msgstr "L’événement « %s » n’a pas de date de début." -#: agendas/models.py:720 +#: agendas/models.py:932 msgid "Optional Label" msgstr "Libellé optionnel" -#: agendas/models.py:721 +#: agendas/models.py:933 msgid "Exception start time" msgstr "Début de l’exception" -#: agendas/models.py:722 +#: agendas/models.py:934 msgid "Exception end time" msgstr "Fin de l’exception" -#: agendas/models.py:724 +#: agendas/models.py:936 msgid "Recurrence ID" msgstr "ID de la récurrence" -#: agendas/models.py:761 +#: agendas/models.py:973 msgid "One or several bookings exists within this time slot." msgstr "Des réservatons existent dans cette période." -#: api/views.py:433 +#: api/views.py:472 api/views.py:965 msgid "invalid payload" msgstr "contenu de requête invalide" -#: api/views.py:447 +#: api/views.py:486 msgid "slots list cannot be empty" msgstr "la liste des créneaux ne peut pas être vide" -#: api/views.py:463 +#: api/views.py:502 #, python-format msgid "invalid value for count (%s)" msgstr "valeur invalide pour « count » (%s)" -#: api/views.py:475 +#: api/views.py:514 msgid "count cannot be less than or equal to zero" msgstr "« count » ne peut pas être inférieur ou égal à zéro" -#: api/views.py:490 +#: api/views.py:529 msgid "cancel_booking_id is not an integer" msgstr "« cancel_booking_id » n’est pas un nombre entier" -#: api/views.py:500 +#: api/views.py:539 msgid "cancel booking: booking already cancelled" msgstr "annulation de réservation : réservation déjà annulée" -#: api/views.py:507 +#: api/views.py:546 msgid "cancel booking: count is different" msgstr "annulation de réservation : nombre différent" -#: api/views.py:509 +#: api/views.py:548 msgid "cancel booking: booking does no exist" msgstr "annulation de réservation : réservation inexistante" -#: api/views.py:534 +#: api/views.py:573 #, python-format msgid "invalid slot: %s" msgstr "créneau invalide : %s" -#: api/views.py:544 +#: api/views.py:583 #, python-format msgid "all slots must have the same meeting type id (%s)" msgstr "tous les créneaux doivent être pour le même type d’événement (%s)" -#: api/views.py:568 +#: api/views.py:649 msgid "no more desk available" msgstr "plus de guichet disponible" -#: api/views.py:601 +#: api/views.py:688 msgid "unknown event identifiers or slugs" msgstr "identifiants ou slugs inconnus" -#: api/views.py:610 +#: api/views.py:697 msgid "no waiting list" msgstr "pas de liste d’attente" -#: api/views.py:622 api/views.py:625 +#: api/views.py:709 api/views.py:712 api/views.py:1012 msgid "sold out" msgstr "complet" -#: api/views.py:746 +#: api/views.py:834 msgid "already cancelled" msgstr "déjà annulée" -#: api/views.py:773 api/views.py:807 +#: api/views.py:841 api/views.py:876 api/views.py:923 api/views.py:985 +msgid "secondary booking" +msgstr "réservation secondaire" + +#: api/views.py:869 api/views.py:916 api/views.py:978 msgid "booking is cancelled" msgstr "la réservation est annulée" -#: api/views.py:780 +#: api/views.py:883 msgid "booking is not in waiting list" msgstr "la réservation n’est pas dans la liste d’attente" -#: api/views.py:814 +#: api/views.py:930 msgid "booking is already in waiting list" msgstr "la réservation est déjà dans la liste d’attente" -#: manager/forms.py:103 +#: api/views.py:996 +msgid "can not resize multi event booking" +msgstr "impossible de redimensionner une réservation multi-événements" + +#: manager/forms.py:105 +msgid "" +"Can't add a meetingtype to an agenda that is included in a virtual agenda." +msgstr "" +"Impossible d’ajouter un type de rendez-vous à un agenda inclus dans un " +"agenda virtuel." + +#: manager/forms.py:129 +#, python-format +msgid "This meetingtype is used by a virtual agenda: %s" +msgstr "Ce type de rendez-vous est utilisé par l'agenda virtuel : %s" + +#: manager/forms.py:135 msgid "Days" msgstr "Jours" -#: manager/forms.py:105 +#: manager/forms.py:137 msgid "Start Time" msgstr "Heure du début" -#: manager/forms.py:106 +#: manager/forms.py:138 msgid "End Time" msgstr "Heure de fin" -#: manager/forms.py:110 manager/forms.py:126 +#: manager/forms.py:142 manager/forms.py:167 msgid "End time must come after start time." msgstr "L’heure de fin doit venir après l’heure de début." -#: manager/forms.py:160 +#: manager/forms.py:201 msgid "End datetime must be greater than start datetime." msgstr "La date de fin doit venir après la date de début." -#: manager/forms.py:166 +#: manager/forms.py:222 msgid "Events File" msgstr "Fichier d’événements" -#: manager/forms.py:169 +#: manager/forms.py:225 msgid "" "CSV file with date, time, number of places, number of places in waiting " "list, label, and optionally, identifier, description, pricing and URL as " @@ -274,50 +315,50 @@ msgstr "" "nombre de places sur la liste d’attente, le libellé et de manière " "facultative un identifiant, une description, un tarif et une URL." -#: manager/forms.py:184 +#: manager/forms.py:240 msgid "Invalid file format." msgstr "Format de fichier invalide." -#: manager/forms.py:205 +#: manager/forms.py:261 #, python-format msgid "Invalid file format. (line %d)" msgstr "Format de fichier invalide. (ligne %d)" -#: manager/forms.py:206 manager/templates/chrono/manager_sample_events.txt:1 +#: manager/forms.py:262 manager/templates/chrono/manager_sample_events.txt:1 msgid "date" msgstr "date" -#: manager/forms.py:206 +#: manager/forms.py:262 msgid "Date" msgstr "Date" -#: manager/forms.py:224 +#: manager/forms.py:280 #, python-format msgid "Invalid file format. (date/time format, line %d)" msgstr "Format de fichier invalide. (format date/heure, ligne %d)" -#: manager/forms.py:228 +#: manager/forms.py:284 #, python-format msgid "Invalid file format. (number of places, line %d)" msgstr "Format de fichier invalide. (nombre de places, ligne %d)" -#: manager/forms.py:234 +#: manager/forms.py:290 #, python-format msgid "Invalid file format. (number of places in waiting list, line %d)" msgstr "" "Format de fichier invalide. (nombre de places sur la liste d’attente, ligne " "%d)" -#: manager/forms.py:253 +#: manager/forms.py:309 #, python-format msgid "Invalid file format. (%(label)s: %(errors)s, line %(line)d)" msgstr "Format de fichier invalide. (%(label)s : %(errors)s, ligne %(line)d)" -#: manager/forms.py:264 manager/forms.py:288 +#: manager/forms.py:320 manager/forms.py:344 msgid "ICS File" msgstr "Fichier ICS" -#: manager/forms.py:267 +#: manager/forms.py:323 msgid "" "ICS file containing events which will be considered as exceptions. Will be " "synchronised hourly" @@ -325,20 +366,20 @@ msgstr "" "Fichier au format ICS dont les événements seront ajoutés comme exceptions. " "Il sera synchronisé toutes les heures." -#: manager/forms.py:273 +#: manager/forms.py:329 msgid "URL to remote calendar which will be synchronised hourly." msgstr "Adresse du calendrier distant qui sera synchronisé toutes les heures." -#: manager/forms.py:283 +#: manager/forms.py:339 msgid "Please provide an ICS File or an URL." msgstr "Veuillez fournir un fichier ou l’adresse d’un fichier ICS." -#: manager/forms.py:290 +#: manager/forms.py:346 msgid "ICS file containing events which will be considered as exceptions." msgstr "" "Fichier au format ICS dont les événements seront ajoutés comme exceptions." -#: manager/forms.py:305 +#: manager/forms.py:361 msgid "Agendas Export File" msgstr "Fichier d’agendas" @@ -359,6 +400,7 @@ msgstr "Importer" #: manager/templates/chrono/manager_confirm_event_delete.html:21 #: manager/templates/chrono/manager_confirm_exception_delete.html:16 #: manager/templates/chrono/manager_confirm_source_delete.html:16 +#: manager/templates/chrono/manager_confirm_virtual_member_delete.html:16 #: manager/templates/chrono/manager_desk_form.html:36 #: manager/templates/chrono/manager_event_form.html:35 #: manager/templates/chrono/manager_import_events.html:28 @@ -367,6 +409,7 @@ msgstr "Importer" #: manager/templates/chrono/manager_replace_exceptions.html:17 #: manager/templates/chrono/manager_time_period_exception_form.html:36 #: manager/templates/chrono/manager_time_period_form.html:36 +#: manager/templates/chrono/manager_virtual_member_form.html:25 msgid "Cancel" msgstr "Annuler" @@ -394,7 +437,7 @@ msgid "Month view" msgstr "Vue mensuelle" #: manager/templates/chrono/manager_agenda_day_view.html:77 -#: manager/templates/chrono/manager_meetings_agenda_month_view.html:40 +#: manager/templates/chrono/manager_meetings_agenda_month_view.html:41 msgid "booked" msgstr "réservé" @@ -416,11 +459,13 @@ msgstr "Nouvel agenda" #: manager/templates/chrono/manager_meeting_type_form.html:33 #: manager/templates/chrono/manager_time_period_exception_form.html:35 #: manager/templates/chrono/manager_time_period_form.html:35 +#: manager/templates/chrono/manager_virtual_member_form.html:24 msgid "Save" msgstr "Enregistrer" #: manager/templates/chrono/manager_agenda_settings.html:15 #: manager/templates/chrono/manager_meetings_agenda_settings.html:31 +#: manager/templates/chrono/manager_virtual_agenda_settings.html:45 msgid "identifier:" msgstr "identifiant :" @@ -484,7 +529,7 @@ msgstr "Délai de réservation maximal :" #: manager/templates/chrono/manager_base.html:10 #: manager/templates/chrono/manager_base.html:16 #: manager/templates/chrono/manager_base.html:26 -#: manager/templates/chrono/manager_home.html:5 manager/views.py:1084 +#: manager/templates/chrono/manager_home.html:5 manager/views.py:1231 msgid "Agendas" msgstr "Agendas" @@ -509,6 +554,18 @@ msgstr "Êtes-vous sûr·e de vouloir supprimer cette exception ?" msgid "Are you sure you want to delete this exception source?" msgstr "Êtes-vous sûr·e de vouloir supprimer cette source d’exceptions ?" +#: manager/templates/chrono/manager_confirm_virtual_member_delete.html:5 +msgid "Exclude Agenda" +msgstr "Exclure l’agenda" + +#: manager/templates/chrono/manager_confirm_virtual_member_delete.html:12 +msgid "Are you sure you want to exclude this agenda from the virtual agenda ?" +msgstr "Êtes-vous sûr·e de vouloir exclure cet agenda de l’agenda virtuel ?" + +#: manager/templates/chrono/manager_confirm_virtual_member_delete.html:15 +msgid "Exclude" +msgstr "Exclure" + #: manager/templates/chrono/manager_desk_form.html:14 #: manager/templates/chrono/manager_desk_form.html:25 #: manager/templates/chrono/manager_meetings_agenda_settings.html:17 @@ -599,6 +656,8 @@ msgstr "Importer des événements" #: manager/templates/chrono/manager_meetings_agenda_settings.html:67 #: manager/templates/chrono/manager_meetings_agenda_settings.html:78 #: manager/templates/chrono/manager_time_period_exception_list.html:24 +#: manager/templates/chrono/manager_virtual_agenda_settings.html:20 +#: manager/templates/chrono/manager_virtual_agenda_settings.html:71 msgid "remove" msgstr "supprimer" @@ -612,7 +671,7 @@ msgid "" msgstr "" "\n" "Cet agenda ne comporte encore aucun événement. Cliquez sur le bouton " -"« Nouvel événement » dans le coin supérieur droite de la page pour en " +"« Nouvel événement » dans le coin supérieur droit de la page pour en " "ajouter un premier.\n" " " @@ -669,15 +728,17 @@ msgstr "Nouveau type de rendez-vous" msgid "Day view" msgstr "Vue journalière" -#: manager/templates/chrono/manager_meetings_agenda_month_view.html:57 +#: manager/templates/chrono/manager_meetings_agenda_month_view.html:58 msgid "No opening hours this month." msgstr "Pas d’heures d’ouverture ce mois." #: manager/templates/chrono/manager_meetings_agenda_settings.html:23 +#: manager/templates/chrono/manager_virtual_agenda_settings.html:37 msgid "Meeting Types" msgstr "Types de rendez-vous" #: manager/templates/chrono/manager_meetings_agenda_settings.html:30 +#: manager/templates/chrono/manager_virtual_agenda_settings.html:44 msgid "minutes" msgstr "minutes" @@ -691,7 +752,7 @@ msgid "" msgstr "" "\n" "Cet agenda ne comporte encore aucun type de rendez-vous. Cliquez sur le " -"bouton « Nouveau type de rendez-vous » dans le coin supérieur droite de la " +"bouton « Nouveau type de rendez-vous » dans le coin supérieur droit de la " "page pour en ajouter un premier.\n" " " @@ -734,7 +795,7 @@ msgid "" msgstr "" "\n" "Cet agenda ne comporte encore aucun guichet. Cliquez sur le bouton " -"« Nouveau guichet » dans le coin supérieur droite de la page pour en ajouter " +"« Nouveau guichet » dans le coin supérieur droit de la page pour en ajouter " "un premier.\n" " " @@ -808,60 +869,125 @@ msgstr "Nouvelle période horaire" msgid "Edit Time Period" msgstr "Modification de la période horaire" +#: manager/templates/chrono/manager_virtual_agenda_settings.html:5 +msgid "Add Excluded Period" +msgstr "Ajouter une période d’exclusion" + +#: manager/templates/chrono/manager_virtual_agenda_settings.html:6 +#: manager/templates/chrono/manager_virtual_member_form.html:11 +#: manager/templates/chrono/manager_virtual_member_form.html:15 +msgid "Include Agenda" +msgstr "Inclure un agenda" + +#: manager/templates/chrono/manager_virtual_agenda_settings.html:12 +#: manager/templates/chrono/manager_virtual_agenda_view.html:6 +msgid "Included Agendas" +msgstr "Agendas inclus" + +#: manager/templates/chrono/manager_virtual_agenda_settings.html:26 +msgid "" +"\n" +" This virtual agenda doesn't include any agenda yet. Click on the \"Include " +"Agenda\" button in\n" +" the top right of the page to include a first one.\n" +" " +msgstr "" +"\n" +"Cet agenda virtuel n’inclut encore aucun agenda. Cliquez sur le bouton " +"« Inclure un agenda » dans le coin supérieur droit de la page pour en " +"inclure un premier.\n" +" " + +#: manager/templates/chrono/manager_virtual_agenda_settings.html:52 +msgid "" +"\n" +" This virtual agenda doesn't have any meeting type.\n" +" It is probably because its included agendas have incompatible meeting " +"types\n" +" and it makes this virtual agenda unusable.\n" +" " +msgstr "" +"\n" +" Cet agenda virtuel n’a aucun type de rendez-vous.\n" +" C’est probablement parce que les agendas inclus ont des types " +" de rendez-vous incompatibles.\n" +" " + +#: manager/templates/chrono/manager_virtual_agenda_settings.html:65 +msgid "Excluded Periods" +msgstr "Périodes exclues" + +#: manager/templates/chrono/manager_virtual_agenda_view.html:18 +msgid "" +"\n" +" This virtual agenda is empty.\n" +" " +msgstr "" +"\n" +" Cet agenda virtuel est vide.\n" +" " + #: manager/templates/registration/login.html:8 msgid "Log in" msgstr "Se connecter" -#: manager/views.py:78 +#: manager/views.py:81 msgid "This cannot be removed as there are bookings for a future date." msgstr "" "La suppression ne peut pas avoir lieu parce qu’il y a des réservations pour " "une date future." -#: manager/views.py:109 +#: manager/views.py:112 msgid "Desk 1" msgstr "Guichet 1" -#: manager/views.py:134 +#: manager/views.py:137 msgid "File is not in the expected JSON format." msgstr "Le fichier n’est pas dans le format JSON attendu." -#: manager/views.py:144 +#: manager/views.py:147 msgid "No agendas were found." msgstr "Aucun agenda trouvé." -#: manager/views.py:147 +#: manager/views.py:150 msgid "No agenda created." msgstr "Aucun agenda créé." -#: manager/views.py:150 +#: manager/views.py:153 #, python-format msgid "An agenda has been created." msgid_plural "%(count)d agendas have been created." msgstr[0] "Un agenda a été créé." msgstr[1] "%(count)d agendas on t été créés." -#: manager/views.py:154 +#: manager/views.py:157 msgid "No agenda updated." msgstr "Aucun agenda mis à jour." -#: manager/views.py:157 +#: manager/views.py:160 #, python-format msgid "An agenda has been updated." msgid_plural "%(count)d agendas have been updated." msgstr[0] "Un agenda a été mis à jour." msgstr[1] "%(count)d agendas ont été mis à jour." -#: manager/views.py:724 +#: manager/views.py:781 msgid "Duplicated event identifier" msgstr "Doublon d’identifiant d’événement" -#: manager/views.py:726 +#: manager/views.py:783 #, python-format msgid "%d events have been imported." msgstr "%d événements ont été importés." -#: manager/views.py:1001 manager/views.py:1043 manager/views.py:1070 +#: manager/views.py:900 +#, python-format +msgid "This cannot be removed as it used by a virtual agenda: %(agenda)s" +msgstr "" +"La suppression ne peut pas avoir lieu parce qu’il est utilisé dans un " +"agenda virtuel : %(agenda)s" + +#: manager/views.py:1148 manager/views.py:1190 manager/views.py:1217 #, python-format msgid "An exception has been imported." msgid_plural "%(count)d exceptions have been imported."