L'email de test reprend le modèle en cours d'édition, balises remplies avec le planning d'un bénévole au choix (premier avec un créneau par défaut), option lien de connexion sans vrai jeton, sujet « [Test] … » — même fonction de rendu que l'envoi réel. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
112 lines
8.3 KiB
JSON
112 lines
8.3 KiB
JSON
{
|
|
"health.ok": "Service opérationnel",
|
|
"error.not_found": "Ressource introuvable",
|
|
"error.forbidden": "Accès refusé",
|
|
"error.unauthorized": "Authentification requise",
|
|
"error.validation_failed": "La validation a échoué",
|
|
"error.conflict": "Conflit avec une ressource existante.",
|
|
"error.too_many_requests": "Trop de tentatives, réessayez dans un instant",
|
|
"edition.dates_inconsistent": "La date de fin doit être postérieure ou égale à la date de début.",
|
|
"day_part.code_required": "Le code du créneau type ne peut pas être vide.",
|
|
"day_part.duplicate_code": "Un créneau type porte déjà ce code dans l'édition.",
|
|
"shift.ends_not_after_starts": "La fin du créneau doit être postérieure à son début.",
|
|
"shift.position_wrong_edition": "Le poste n'appartient pas à cette édition.",
|
|
"position.lead_must_be_referent_account": "Le référent d'un poste doit être un compte référent (rôle LEAD) de cette édition.",
|
|
"artist.name_required": "Le nom de l'artiste ne peut pas être vide.",
|
|
"artist.duplicate": "Un artiste porte déjà ce nom à cette date dans l'édition.",
|
|
"artist.unknown": "Un des artistes choisis n'appartient pas à cette édition.",
|
|
"position.unknown": "Un des postes choisis n'appartient pas à cette édition.",
|
|
"volunteer.unknown": "Un des bénévoles choisis n'appartient pas à cette édition.",
|
|
"volunteer.cannot_wish_self": "Un bénévole ne peut pas se souhaiter lui-même comme compagnon.",
|
|
"assignment.wrong_edition": "Le bénévole ou le créneau n'appartient pas à cette édition.",
|
|
"assignment.duplicate": "Ce bénévole est déjà affecté à ce créneau.",
|
|
"auth.invalid_token": "Lien de connexion invalide ou expiré.",
|
|
"auth.invalid_credentials": "Identifiant ou mot de passe incorrect.",
|
|
"auth.password_too_short": "Le mot de passe doit contenir au moins {min} caractères.",
|
|
"account.duplicate": "Un compte existe déjà pour cet email ou ce bénévole.",
|
|
"account.volunteer_wrong_edition": "Le bénévole n'appartient pas à cette édition.",
|
|
"account.password_required": "Un compte coordination requiert un mot de passe d'au moins {min} caractères.",
|
|
"account.password_not_allowed": "Un compte référent ou bénévole se connecte par lien magique, sans mot de passe.",
|
|
"account.role_change_not_allowed": "Un compte coordination ne peut pas changer de rôle ainsi.",
|
|
"import.error.empty_file": "Le fichier est vide.",
|
|
"import.error.encoding": "L'encodage du fichier n'est pas reconnu.",
|
|
"import.error.unreadable_file": "Fichier illisible ou format non pris en charge.",
|
|
"import.error.file_too_large": "Le fichier est trop volumineux.",
|
|
"import.mapping.invalid": "Le paramétrage des colonnes est invalide.",
|
|
"import.mapping.required_field_missing": "Le champ « {field} » doit être associé à une colonne.",
|
|
"import.mapping.column_not_found": "La colonne « {column} » est absente du fichier.",
|
|
"import.row.missing_required_field": "Champ obligatoire manquant : {field}.",
|
|
"import.row.invalid_email": "Adresse email invalide : {value}.",
|
|
"import.row.duplicate_email_in_file": "Même bénévole (nom et email) déjà présent à la ligne {first_line} du fichier.",
|
|
"import.row.shared_email": "Email déjà utilisé par un autre bénévole à la ligne {first_line} du fichier.",
|
|
"import.row.duplicate_name_in_file": "Nom et prénom déjà présents à la ligne {first_line} du fichier.",
|
|
"import.row.updated_existing": "Bénévole existant mis à jour.",
|
|
"import.row.possible_duplicate_name": "Un bénévole portant le même nom existe déjà dans l'édition.",
|
|
"validation.SHIFT_OVERLAP": "Chevauchement avec un autre créneau du bénévole.",
|
|
"notification.no_recipients": "Aucun bénévole ciblé.",
|
|
"email.magic_link.subject": "Ton lien de connexion",
|
|
"email.magic_link.body": "Bonjour,\n\nVoici ton lien de connexion, valable {minutes} minutes :\n\n{link}\n\nSi tu n'es pas à l'origine de cette demande, ignore simplement cet email.",
|
|
"email.registration_confirmation.subject": "Ton inscription bénévole est confirmée",
|
|
"email.registration_confirmation.body": "Bonjour {prenom},\n\nTon inscription comme bénévole a bien été enregistrée. La coordination du festival prendra contact avec toi si besoin.\n\nÀ bientôt !",
|
|
"email.registration_confirmation_paid.subject": "Ton inscription bénévole est confirmée — paiement reçu",
|
|
"email.registration_confirmation_paid.body": "Bonjour {prenom},\n\nTon inscription comme bénévole a bien été enregistrée, et nous confirmons la réception de ton paiement :\n\n{label} — {montant} €\n\nLa coordination du festival prendra contact avec toi si besoin.\n\nÀ bientôt !",
|
|
"email.registration_confirmation_paid.mecenat_receipt_note": "Tu trouveras en pièce jointe ton reçu fiscal au titre des dons (cerfa n° 11580*05), à conserver pour ta déclaration de revenus.",
|
|
"email.planning.default_subject": "Ton planning bénévole",
|
|
"email.planning.default_body": "Bonjour {prenom},\n\nTon planning a été mis à jour : {nb_creneaux} créneau(x), soit {nb_heures} h au total.\n\n{creneaux}\n\nÀ très vite sur le festival !",
|
|
"email.test.subject_prefix": "[Test] {subject}",
|
|
"email.test.example_first_name": "Camille",
|
|
"email.test.example_last_name": "Exemple",
|
|
"notifications.invalid_email": "Adresse email invalide.",
|
|
"email.planning.no_shifts": "Aucun créneau ne t'est affecté pour le moment.",
|
|
"email.planning.shift_line": "- {position} : {start} → {end}",
|
|
"badge.image_type_not_supported": "L'image doit être au format PNG ou JPEG.",
|
|
"badge.image_unreadable": "L'image est illisible ou corrompue.",
|
|
"badge.empty_image": "L'image est vide.",
|
|
"badge.image_too_large": "L'image est trop volumineuse.",
|
|
"badge.duplicate_field_type": "Le champ « {field_type} » ne peut apparaître qu'une fois.",
|
|
"badge.invalid_size": "La taille du badge doit être strictement positive.",
|
|
"badge.invalid_color": "La couleur « {color} » n'est pas valide (format attendu : #rrggbb).",
|
|
"badge.no_fields": "Aucun champ n'est configuré sur le badge.",
|
|
"badge.no_volunteers": "Aucun bénévole ne correspond à cette sélection.",
|
|
"badge.role.referent": "Référent",
|
|
"badge.role.volunteer": "Bénévole",
|
|
"position_sheets.footer_title": "Message de l'organisation",
|
|
"badge.table.day_label": "{weekday} {day}",
|
|
"badge.weekday.0": "Lundi",
|
|
"badge.weekday.1": "Mardi",
|
|
"badge.weekday.2": "Mercredi",
|
|
"badge.weekday.3": "Jeudi",
|
|
"badge.weekday.4": "Vendredi",
|
|
"badge.weekday.5": "Samedi",
|
|
"badge.weekday.6": "Dimanche",
|
|
"position.category.bar": "Bar",
|
|
"position.category.ticketing": "Billetterie",
|
|
"position.category.welcome": "Accueil",
|
|
"position.category.parking": "Parking",
|
|
"position.category.cleaning": "Propreté",
|
|
"position.category.catering": "Catering",
|
|
"position.category.setup": "Montage",
|
|
"position.category.stage": "Régie",
|
|
"position.category.other": "Autre",
|
|
"form.closed": "Les inscriptions sont actuellement fermées.",
|
|
"form.captcha_failed": "Vérification anti-robot invalide, réessayez.",
|
|
"form.invalid_payload": "Données du formulaire invalides.",
|
|
"form.photo_type_not_supported": "La photo doit être au format PNG ou JPEG.",
|
|
"volunteer.empty_photo": "Le fichier de la photo est vide.",
|
|
"form.photo_too_large": "La photo est trop volumineuse.",
|
|
"form.logo_type_not_supported": "Le logo doit être au format PNG ou JPEG.",
|
|
"form.logo_empty": "Le logo est vide.",
|
|
"form.logo_too_large": "Le logo est trop volumineux.",
|
|
"form.invalid_sumup_amount": "Le montant doit être supérieur à 0.",
|
|
"form.invalid_free_amount": "Le montant doit être compris entre {min} € et {max} €, avec au plus deux décimales.",
|
|
"form.unknown_payment_option": "Ce type de paiement n'existe pas pour cette édition.",
|
|
"form.duplicate_payment_option_label": "Un type de paiement porte déjà ce libellé.",
|
|
"form.pending_already_paid": "Cette inscription est déjà payée.",
|
|
"form.pending_not_awaiting_info": "Cette inscription n'attend pas ces informations.",
|
|
"form.too_many_position_wishes": "Deux vœux de poste au maximum.",
|
|
"form.too_many_artists_same_day": "Un seul artiste souhaité par soir de festival.",
|
|
"position_sheets.no_positions": "Aucun poste ne correspond à cette sélection.",
|
|
"position_sheets.no_shifts": "Aucun créneau à imprimer pour ces postes.",
|
|
"mecenat.no_receipts": "Aucun bénévole n'a payé la cotisation en mécénat pour cette édition."
|
|
}
|