fr: password_policy: hint: "Au moins 8 caractères, avec au moins 3 parmi : minuscules, majuscules, chiffres et symboles." activerecord: attributes: user: password: Mot de passe admin_account: password: Mot de passe errors: models: user: attributes: password: too_short: "est trop court (minimum %{count} caractères)" too_long: "est trop long (maximum %{count} caractères)" complexity: "doit inclure au moins 3 parmi : minuscules, majuscules, chiffres et symboles" admin_account: attributes: password: too_short: "est trop court (minimum %{count} caractères)" too_long: "est trop long (maximum %{count} caractères)" complexity: "doit inclure au moins 3 parmi : minuscules, majuscules, chiffres et symboles" app_announcement: no_channel: Choisissez au moins une destination (apps, site public ou espace connecté). club: back_to_club: "← Club" sport_label: Sport principal branding_legend: Logo et couleurs du club branding: legend: Identité visuelle inherit_hint: Laissez vide pour utiliser le logo et les couleurs du club. logo_file_label: Logo (image) logo_preview_alt: Aperçu du logo no_logo_placeholder: "Aucun logo — choisissez un fichier pour l'aperçu" logo_url_label: Logo (URL alternative) primary_color_label: Couleur principale secondary_color_label: Couleur secondaire choose_color: Choisir une couleur quick_colors: Couleurs rapides header_preview_label: Aperçu de l'en-tête name_placeholder: Nom du club / de l'équipe dashboard: title: "%{name} — Club" plan_label: "Forfait :" teams_count_label: "Équipes :" edit_club: Modifier le club subscription: Abonnement new_team: Nouvelle équipe live_streams: Directs replay_archive: Archives replay replay_heading: Replay available: disponibles expiring_soon: "bientôt expirés (7 j)" space_used: espace utilisé views: vues teams_heading: Équipes team_col: Équipe branding_col: Image de marque branding_custom: Personnalisée branding_inherited: Hérite du club public_page: Page publique details: Détails matches: Matchs edit: Modifier no_teams_html: "Aucune équipe. %{link}." add_first_team: Ajouter la première footer_note: "Chaque équipe a ses propres responsables diffusion. Le score depuis un autre téléphone utilise le lien régie (sans compte). L'abonnement couvre tout le club." edit: title: "Modifier le club — %{name}" heading: Modifier le club name_label: Nom du club save: Enregistrer new: title: "Inscrire un club — Match Live TV" meta_description: Crée ton club sportif et sa première équipe sur Match Live TV. heading: Ton club lead: "Inscris le club : tu pourras ajouter d'autres équipes (Under 13, Under 15, Serie C…)." section_club: Club name_label: Nom du club name_placeholder: "ex. Crazy Volley Rozzano" section_first_team: Première équipe default_first_team_name: Première équipe first_team_name_label: Nom de l'équipe first_team_name_placeholder: "ex. Under 15" plan_label: "Forfait de départ (pour tout le club)" plan_free: "Gratuit — 1 compte diffuseur par équipe, 1 direct" plan_light: "Premium Light — 59 €/an" plan_full: "Premium Full — 199 €/an" plan_hint: "Carte, virement ou mensualité se choisissent ensuite, sur la page Abonnement. Le forfait payant ne s'active qu'après le paiement." submit: Créer le club billing: title: "Abonnement — %{name}" comped: title: Abonnement offert par Match Live TV plan_prefix: "— forfait" no_payment_html: "Aucun paiement n'est requis. Pour toute modification ou passage à un forfait payant, contacte %{email_link}." youtube: heading: YouTube Live connected_notice: Chaîne YouTube du club connectée avec succès. light_body_html: "Avec le forfait Premium Light, les directs YouTube de toutes les équipes passent sur la chaîne officielle Match Live TV. Pas besoin de connecter une chaîne du club." light_ready: "Chaîne prête · sélectionne « YouTube Live » dans l'application mobile." light_configuring: Chaîne Match Live TV en cours de configuration côté serveur. Contacte le support si YouTube n'apparaît pas dans l'application. full_connected_html: "Chaîne connectée pour tout le club : %{channel}" full_connected_hint: Toutes les équipes peuvent diffuser sur cette chaîne lorsqu'elles choisissent la chaîne du club dans l'application. disconnect: Déconnecter la chaîne disconnect_confirm: Déconnecter la chaîne YouTube ? Les directs utiliseront la chaîne Match Live TV jusqu'à ce que tu reconnectes la tienne. full_not_connected_html: "Sans chaîne connectée, les directs YouTube depuis l'application passent sur la chaîne officielle Match Live TV. Connecte ici la chaîne YouTube du club (valable pour toutes les équipes)." ready_in_app: "YouTube prêt dans l'application (chaîne Match Live TV tant que tu n'as pas connecté la tienne)." connect: Connecter la chaîne YouTube du club oauth_not_configured: OAuth YouTube pas encore configuré sur le serveur. requires_full: YouTube sur la chaîne du club nécessite le forfait Premium Full. see_plans: Voir les forfaits team: back_to_details: "← Détails équipe" sport_label: Sport details: title: "Détails — %{name}" meta_description: "Détails de l'équipe %{name} sur Match Live TV." nav_aria: Fil d'Ariane équipe edit_team: Modifier l'équipe plan_label: "Forfait :" plan_scope_club: (club) staff_label: "Responsables diffusion :" active_matches_label: "Matchs actifs :" unlimited: illimités no_description: Aucune description. add_description_link: Ajoute-en une depuis la modification de l'équipe roster_count_label: dans l'effectif no_photo: Photo d'équipe pas encore ajoutée add_photo_link: Ajoute-la depuis la modification de l'équipe public_page: Page publique streaming_managers: Responsables diffusion schedule_matches: Programmer des matchs live_streams: Directs no_people_in_category: Personne dans cette catégorie pour le moment. youtube_hint_html: "La chaîne YouTube du club se configure depuis la page %{club_link} (section YouTube Live)." footer_note: Utilise l'application mobile avec les mêmes identifiants pour démarrer les matchs et les directs. edit: title: "Modifier l'équipe — %{name}" club_label: "Club :" name_label: Nom de l'équipe description_label: Description de l'équipe description_placeholder: "Présentation de l'équipe, palmarès, objectifs de la saison…" photo_label: "Photo d'équipe (groupe ou écusson)" photo_alt: Photo d'équipe branding_legend: Image de marque de l'équipe (personnalisation) slug_label: Adresse de la page publique slug_hint_html: "Parents et supporters trouvent l'équipe sur %{base_url}/squadre/%{slug}" slug_title: "Uniquement des lettres minuscules, des chiffres et des tirets" roster_public_label: Afficher l'effectif sur la page publique roster_public_hint: Si activé, joueurs et staff sont visibles par toute personne ayant le lien. Tu peux le laisser désactivé pour plus de confidentialité. club_colors_label: "Couleurs du club :" submit: Enregistrer l'équipe new: title: "Nouvelle équipe — %{name}" heading: Nouvelle équipe club_label: "Club :" name_label: Nom de l'équipe name_placeholder: "ex. Under 13, Serie C" branding_legend: Personnalisation de l'image de marque (facultatif) submit: Ajouter l'équipe invite: title: "Staff diffusion — %{name}" heading: Responsables diffusion assigned_label: "Assignés :" per_team_note: (par équipe, renouvellement annuel) info: "Le responsable diffusion démarre le direct depuis l'application (caméra sur trépied). Pour le score depuis un second téléphone, aucun compte n'est nécessaire : il partage le lien régie depuis l'écran de diffusion (WhatsApp, e-mail, SMS, etc.)." self_assign_hint_html: "%{email} — tu peux gérer toi-même la caméra et le score, ou inviter d'autres personnes pour la diffusion." self_assign_submit: C'est moi — responsable diffusion invite_other_heading: Inviter un autre e-mail email_label: E-mail du responsable diffusion submit: Envoyer l'invitation par e-mail share_hint: "Lien aussi envoyé par e-mail (valable 7 jours) :" billing: title: "Abonnement — %{name}" team_label: "Équipe :" current_plan_label: "Forfait actuel :" staff_line: "Staff diffusion : %{count} / an" matches_line: "Matchs : %{count} en simultané" replay_line: "Replay : %{value}" replay_days: "%{count} jours" replay_none: "non" youtube_line: "YouTube : %{value}" youtube_mltv: Match Live TV youtube_club: chaîne du club youtube_none: "non" current_plan: Forfait actuel manage_club_subscription: Gérer l'abonnement du club stripe_not_configured: Stripe non configuré contact_lead: "Besoins différents ?" contact_cta: Contacte-nous contact_trailer: pour une offre sur mesure. club_payments_link: Paiements et factures du club streaming_staff: principal_heading: Compte principal principal_body_html: "Le compte utilisé pour enregistrer le club (%{email}) est celui désigné pour cette équipe : c’est avec lui que tu te connectes à l’app et que tu lances le direct." principal_score_hint_html: "Pour le score depuis un autre téléphone, pendant le direct partage le lien régie (pas besoin d’un second compte)." extra_staff_heading: Autres comptes autorisés à diffuser self_account_heading: "Ton compte (%{email})" self_account_hint: "Tu peux gérer la diffusion depuis l'application. Pour le score depuis un autre téléphone, partage le lien régie pendant le direct (pas besoin d'un second compte)." self_assign_submit: C'est moi — responsable diffusion staff_heading: Responsables diffusion (application) col_name: Nom col_email: E-mail col_role: Rôle role_transmission: Diffusion you_suffix: (toi) clear_self_staff: Retirer le rôle staff clear_self_staff_confirm: Retirer le rôle staff de ton compte ? revoke: Révoquer revoke_confirm: "Révoquer l'accès de %{name} ?" no_staff: Aucun responsable diffusion pour le moment. invite_someone: Inviter quelqu'un invite_form_heading: Inviter un compte à diffuser invite_form_hint: "Ce n’est pas l’effectif (joueurs/staff sur le terrain). Saisissez l’e-mail : nous envoyons le lien automatiquement ; vous pouvez aussi le copier et le partager." invite_once_note: "Si besoin, copiez aussi le lien ci-dessous pour un second envoi (WhatsApp, SMS)." copied: Copié pending_invitations_heading: Invitations en attente col_email_short: E-mail col_expires: Expire cancel_invitation: Annuler no_pending: Aucune demande en attente. archive_heading: Archives replay col_match: Match col_date: Date col_duration: Durée col_expiry: Expiration col_status: Statut watch: Regarder manage_all_replays: Gérer tous les replays no_recordings: Aucun replay pour le moment. Les enregistrements apparaissent ici à la fin des directs Premium. matches: back_to_list: "← Liste des matchs" opponent_label: Adversaire opponent_placeholder: "ex. Volley Milano" location_label: "Lieu (facultatif)" location_placeholder: "Gymnase, ville" datetime_label: Date et heure form_hint: "Le direct ne démarre pas tout seul : il apparaîtra dans l'application et sur le site. Tu lanceras le streaming depuis ton téléphone une fois sur place." edit: title: "Modifier le match — %{name}" heading: Modifier le match submit: Enregistrer les modifications new: title: "Programmer un match — %{name}" heading: Programmer un match submit: Enregistrer au programme index: title: "Matchs — %{name}" heading: "Matchs — %{name}" lead: "Programme ici depuis ton ordinateur la date, l'adversaire et le lieu. Une fois au gymnase, ouvre l'application Match Live TV, sélectionne cette équipe et lance le direct du match." schedule_match: Programmer un match team_details: Détails équipe live_and_schedule: Directs et programme col_opponent: Adversaire col_datetime: "Date et heure" col_location: Lieu col_status: Statut no_time: Sans horaire no_location: "—" edit: Modifier delete: Supprimer delete_confirm: Supprimer ce match ? empty_html: "Aucun match programmé. %{link}." schedule_first: Programme le premier club_new: title: "Programmer un match — %{name}" back_link: "← Directs et matchs" heading: Programmer un match admin_hint: "· Tu peux choisir n'importe quelle équipe du club" staff_hint: "· Seulement les équipes où tu es responsable diffusion" team_label: Équipe submit: Enregistrer au programme status: active: En cours / à reprendre scheduled: Programmé ready: Prêt no_time: Sans horaire roster: back_to_details: "← Détails équipe" category: staff: Staff coach: Entraîneurs manager: Dirigeants player: Joueurs role: coach: Entraîneur manager: Dirigeant staff: Staff player: Joueur player_numbered: "Joueur n°%{number}" errors: role_invalid: n'est pas un rôle valide pour ce sport photo_invalid_type: doit être au format PNG, JPEG ou WebP role_select_blank: "— Sélectionner un rôle —" edit: title: "Modifier — %{name}" member_form: edit_heading: Modifier la fiche new_heading: Ajouter une personne lead: Remplis les champs et enregistre pour mettre à jour l'effectif. category_label: Groupe full_name_label: Nom et prénom full_name_placeholder: "ex. Mario Rossi" role_player_label: Rôle sur le terrain role_other_label: "Rôle (facultatif)" role_other_placeholder: "ex. Entraîneur principal, Président, Kinésithérapeute" jersey_label: Numéro de maillot jersey_placeholder: "ex. 7" bio_label: Courte description bio_placeholder: "Brève présentation pour la fiche…" photo_label: Photo photo_hint: Sans photo, un avatar aux couleurs de l'équipe sera affiché. submit_edit: Enregistrer la fiche submit_new: Ajouter à l'effectif person_card: edit: Modifier remove: Retirer remove_confirm: "Retirer %{name} de l'effectif ?" billing: heading: Abonnement entity_types: company: "Club / association avec numéro de TVA" individual: Personne physique nonprofit: Association à but non lucratif profile_errors: entity_type: Type de titulaire legal_name: Raison sociale ou nom du titulaire email: E-mail de facturation address: Adresse city: Ville province: "Province (code à 2 lettres)" postal_code: Code postal country: "Pays (ISO)" vat_number: Numéro de TVA fiscal_code: Code fiscal vat_or_fiscal: Numéro de TVA ou code fiscal sdi_or_pec: "Code destinataire SDI (7 caractères) ou PEC" sdi_invalid: "Code destinataire SDI (7 caractères)" actions: current_plan: Forfait actuel contact_for_free: "Pour passer au forfait gratuit, contacte le support." stripe_not_configured: Stripe non configuré stripe_prices_not_configured: Tarifs Stripe non configurés complete_billing_prefix: Complète tes données de facturation avant d'activer un forfait premium. profile_incomplete_default: Complète tes données de facturation avant d'activer un forfait premium. profile_missing: "Manquant(s) : %{fields}." profile: title: "Données de facturation — %{name}" heading: Données de facturation lead: "Club : %{name}. Saisis les données pour l'en-tête des factures et l'envoi via SDI ou PEC." required_notice: Obligatoires pour souscrire à un forfait premium. after_save_hint_html: "Après l'enregistrement, tu pourras procéder au paiement de %{plan}." submit: Enregistrer les données de facturation back_to_billing: "← Abonnement" fields: legend: Données de facturation legend_hint: "Tous les champs marqués sont obligatoires pour souscrire à un forfait premium et pour émettre les factures. Les clubs ont besoin d'un numéro de TVA ; les personnes physiques d'un code fiscal. Il faut le SDI ou le PEC. Les paiements restent gérés en toute sécurité par Stripe." entity_type_label: "Type de titulaire *" legal_name_label: "Raison sociale / nom et prénom *" legal_name_placeholder: "ex. ASD Tigers Volley" vat_number_label: "Numéro de TVA * (club)" fiscal_code_label: "Code fiscal * (personne physique)" fiscal_code_placeholder: RSSMRA80A01H501U email_label: "E-mail de facturation *" email_placeholder: administration@club.fr phone_label: "Téléphone (facultatif)" address_label: "Adresse *" address_placeholder: "1 rue de Rome" city_label: "Ville *" province_label: "Prov. *" province_placeholder: MI postal_code_label: "Code postal *" country_label: "Pays (ISO) *" recipient_code_label: "Code destinataire SDI (7 car.) *" recipient_code_placeholder: XXXXXXX pec_label: "PEC (alternative au SDI) *" pec_placeholder: pec@club.fr documents: heading: Paiements et factures lead: Historique des paiements du club et des factures émises par Match Live TV. incomplete_title: Données de facturation incomplètes. incomplete_body: Renseigne la raison sociale, l'adresse, le numéro de TVA/code fiscal et le SDI ou PEC pour recevoir les factures par e-mail. complete_now: Compléter maintenant holder_label: "Titulaire : %{summary}" edit_data: Modifier les données table_heading: Paiements et factures col_date: Date col_description: Description col_amount: Montant col_status: Statut du paiement col_invoice: Facture download_pdf: Télécharger le PDF pdf_preparing: PDF en préparation no_payments: Aucun paiement enregistré. Il apparaîtra ici après un abonnement premium. subscription_status: club_label: "Club : %{name}" current_plan_label: "Forfait actuel : %{plan}" comped_suffix: (offert par Match Live TV) valid_for_all_teams: (valable pour toutes les équipes) manage_subscription: Gérer l'abonnement cancel_scheduled_html: "Abonnement valable jusqu'au %{date}, puis forfait gratuit." change_pending_html: "À partir du %{date} tu passeras à %{plan}%{interval}. D'ici là, %{current_plan} reste actif." end_of_period: fin de la période next_renewal: prochain renouvellement next_renewal_label: "Prochain renouvellement : %{date}" plan_change_info: trigger_label: Infos sur le changement de forfait et la facturation title: Changement de forfait et facturation subscription_cancel: scheduled_title: Résiliation programmée. scheduled_body_html: "Le forfait %{plan} reste actif jusqu'au %{date}. À partir de ce jour, le club passera automatiquement au forfait Gratuit." scheduled_end_of_period: fin de la période déjà payée scheduled_support_hint: Pour rétablir l'abonnement avant son expiration, contacte le support Match Live TV. info: "Tu peux résilier à tout moment : l'abonnement reste valable jusqu'à la fin de la période déjà payée, puis tu passes au forfait Gratuit sans frais supplémentaires." cancel_button: Résilier l'abonnement confirm_with_date: "Confirmes-tu la résiliation ? Le forfait %{plan} restera actif jusqu'au %{date}, puis tu passeras au Gratuit." confirm_default: "Confirmes-tu la résiliation de l'abonnement ?" stripe_secure: compact_html: "Paiements premium traités en toute sécurité via Stripe." full_html: "Les paiements des forfaits premium sont traités de manière sécurisée via Stripe (certification PCI DSS). Match Live TV ne stocke jamais les numéros complets de carte." messages: upgrade_completed_with_amount: "Passage à %{plan} (%{interval}) terminé. Débit immédiat : %{amount}." upgrade_completed_pending_charge: "Passage à %{plan} (%{interval}) terminé. Le débit de la différence est en cours de traitement sur la carte enregistrée." next_renewal: le prochain renouvellement current_plan_generic: le forfait actuel downgrade_scheduled: "Passage à %{plan} (%{interval}) programmé : vous restez sur %{current_name} jusqu'au %{when}. Aucun débit supplémentaire maintenant ; à partir du prochain cycle, vous paierez le nouveau prix." activate_button: "Activer %{plan} — %{price}" switch_button: "Passer à %{plan} — %{price}" upgrade_info_line: "Upgrade (forfait supérieur ou passage à la facturation annuelle) : la différence est débitée immédiatement sur la carte Stripe enregistrée." downgrade_info_line: "Downgrade entre forfaits payants (ex. Full → Light) : le nouveau forfait est actif dès le prochain renouvellement ; jusque-là, les fonctionnalités du forfait actuel restent actives, sans débit supplémentaire pour l'instant." already_requested_line: "Vous avez déjà demandé %{plan} à partir du %{when} : jusque-là, %{current_plan} reste actif." prices: yearly: "%{amount}/an" monthly: "%{amount}/mois" regia: meta_title_fallback: "Régie — Match Live TV" title: "Régie — %{home} vs %{away}" subtitle_prefix: "Régie ·" status: ended: Terminé paused: En pause live: En direct waiting: En attente live_share_label: Direct share_live: Partager le direct share_action: Partager copy_link: Copier le lien copy_action: Copier copy_live: Copier live copy_regia: Copier régie links_nav: Actions rapides regia_share_label: Régie stream_controls_label: Live share_regia: Partager le lien régie preview_ended: Direct terminé preview_waiting: Aperçu en attente du signal… preview_hide: Masquer l'aperçu preview_show: Afficher l'aperçu preview_off_hint: Aperçu désactivé · aucun téléchargement vidéo pause: Mettre en pause resume: Reprendre le direct mute: Couper l'audio unmute: Réactiver l'audio stop: Terminer le direct min_quality: label: Qualité minimale de transmission summary: Qualité hint: L'encodeur ne descend pas en dessous de ce niveau. Automatique adapte le débit pour limiter les coupures. recommend: "Automatique est conseillé : s'adapte au réseau et au téléphone, sans forcer le maximum." auto: Automatique telemetry: label: Téléphone waiting: En attente du téléphone… stale: Téléphone sans réponse just_now: maintenant seconds_ago: "il y a %{n}s" publisher_on: RTMP ok publisher_off: RTMP absent battery: Batterie network: Réseau bitrate: Débit bitrate_max: "max %{n}" bitrate_title: "%{current} Mbps actuels · max %{target} Mbps" bitrate_tap: Touchez pour définir la qualité minimale fps: FPS thermal: Temp. thermal_nominal: OK thermal_fair: Chaude thermal_serious: Très chaude thermal_critical: Critique modal: set_won_title: Set gagné confirm: Terminer le set confirm_action: Confirmer cancel: Annuler board: next_period: Quart-temps suivant next_half: Mi-temps suivante close_set: Terminer le set free_score: Score libre stopwatch: Chronomètre generic_score: Score start: Démarrer pause: Pause reset: Réinitialiser points_suffix: pts partials_prefix: "Partiels :" set_label: "Set %{number}" js: period_updated: Période mise à jour now_in_period: "Maintenant en %{period}" set_won_body: "%{winner} a remporté le set. Clôturer le set ?" match_won_title: Match remporté match_won_body: "%{winner} a remporté le match. Clôturer le direct ?" close_set_confirm: Confirmez la clôture du set en cours ? score_update_error: Erreur de mise à jour du score generic_error: Erreur sets_line: "Set %{current} · Sets remportés %{home}-%{away}" quarter_label: "Q%{n}" half_label: "%{n}e mi-temps" overtime_basket: "Prol.%{n}" overtime_other: Prol. unknown_period: "—" resumed: Direct repris paused_cover: "Direct en pause — habillage à l'antenne" muted: "Audio coupé — YouTube ne reçoit pas le micro" unmuted: "Audio du micro rétabli" closed: Direct terminé resume_error: Erreur lors de la reprise du direct pause_error: Erreur lors de la mise en pause du direct mute_error: Erreur lors de la coupure audio close_error: Erreur de clôture close_confirm: Clôturer définitivement le direct ? pause_confirm_title: Mettre le direct en pause ? pause_confirm_body: La couverture restera à l'antenne jusqu'à la reprise. resume_confirm_title: Reprendre le direct ? resume_confirm_body: La caméra reviendra à l'antenne à la place de la couverture. mute_confirm_title: Couper l'audio ? mute_confirm_body: Le micro ne sera plus envoyé au flux tant que vous ne le réactivez pas. unmute_confirm_title: Réactiver l'audio ? unmute_confirm_body: Le micro sera à nouveau actif sur le flux. advance_period_title: Passer à la période suivante ? advance_period_body: Le tableau passera à la période suivante et le score de la période en cours sera enregistré. stop_confirm_title: Terminer le direct ? link_unavailable: Lien non disponible link_copied: Lien copié copy_prompt: "Copiez le lien :" share_regia_text: "Ouvrez ce lien pour gérer le score du direct :" share_live_text: "Regardez le direct sur Match Live TV :" min_quality_updated: Qualité minimale mise à jour min_quality_error: Erreur de mise à jour de la qualité minimale recordings: archive: back_prefix: "←" heading: Archives replay admin_suffix: (admin) lead_html: "Gère les enregistrements, la visibilité et les téléchargements. Privé = lien non indexé, n'apparaît pas sur la page publique /replay. La suppression d'un replay supprime aussi les fichiers sur le serveur et la vidéo YouTube associée." kpi_available: Replays disponibles kpi_expiring: "Bientôt expirés (7 j)" kpi_space: Espace d'archive kpi_views: Vues totales team_label: Équipe team_all: Toutes status_label: Statut status_all: Tous status_ready: Disponibles status_processing: En traitement status_expired: Expirés / erreur col_preview: Aperçu col_match: Match col_team: Équipe col_details: Détails col_status: Statut et visibilité col_actions: Actions watch_replay: Regarder le replay processing_title: Traitement en cours not_available_title: Replay non disponible views_suffix: vues expires_prefix: Expire le expires_days: "(%{count} j)" no_expiry: Aucune expiration new_expiry_title: Nouvelle date d'expiration save: Enregistrer extend_days: "+%{count} j" extend_title: "Prolonger l'expiration de %{count} jours" privacy_public: Public privacy_private: Privé privacy_hint_public: "Visible par tous — cliquer pour rendre privé" privacy_hint_private: "Uniquement avec le lien — cliquer pour rendre public" download_mp4: MP4 download_mp4_title: Télécharger le MP4 publish_youtube: "YT" publish_youtube_title: Publier sur YouTube open_youtube_title: Ouvrir sur YouTube delete_title: Supprimer le replay delete_confirm: Choisis où supprimer le replay. Action irréversible. no_recordings: Aucun enregistrement pour les filtres sélectionnés. confirm: choice_title: Que veux-tu supprimer ? choice_message: Choisis où supprimer le replay. Action irréversible. choice_site_label: Seulement du site choice_site_hint_with_youtube: La vidéo reste sur YouTube choice_site_hint_only: Supprime les fichiers du site choice_youtube_label: Seulement de YouTube choice_youtube_hint_with_site: Reste disponible sur le site choice_youtube_hint_only: Supprime uniquement la vidéo YouTube choice_both_label: Du site et de YouTube choice_both_hint: Suppression complète youtube_title: Supprimer de YouTube ? youtube_message: La vidéo sera retirée de YouTube. Le replay restera disponible sur le site. youtube_ok: Supprimer de YouTube site_title: Supprimer du site ? site_message_with_youtube: Le replay sera retiré du site. La vidéo sur YouTube restera en ligne. site_message_only: Tu es sur le point de supprimer définitivement ce replay du site. Action irréversible. site_ok: Supprimer du site status: deleted: Supprimé expired: Expiré failed: Erreur processing: En traitement expiring_soon: Bientôt expiré available: Disponible flash: web_base: login_required: Connecte-toi pour continuer access_denied: Accès non autorisé clubs: already_registered: Tu as déjà inscrit un club created: Club et première équipe créés. created_complete_subscription: Club créé. Termine l'abonnement sur cette page. updated: Club mis à jour. complete_billing_first: Complète tes données de facturation avant d'activer un forfait premium. comped_change_denied: "Ce forfait est un abonnement offert géré par Match Live TV. Pour passer à un abonnement payant, contacte le support." stripe_not_configured: Paiements pas encore configurés sur le serveur already_on_plan: "Tu es déjà sur %{plan} (%{price})." change_already_scheduled: "Le passage à %{plan} est déjà programmé à partir du %{date}." stripe_error: "Erreur Stripe : %{message}" youtube_oauth_not_configured: OAuth YouTube non configuré sur le serveur youtube_disconnected: Chaîne YouTube du club déconnectée portal_not_configured: Portail de paiement non configuré checkout_success: "Paiement effectué ! Plan actif : %{plan}." checkout_canceled: Paiement annulé. Aucun débit n'a été effectué. club_billing: profile_saved_proceed_payment: Données enregistrées. Procède au paiement. profile_updated: Données de facturation mises à jour. stripe_not_configured: Stripe non configuré. subscription_canceled: "Abonnement résilié. Il reste actif jusqu'au %{date} ; à partir de ce jour tu passeras au forfait Gratuit." stripe_error: "Erreur Stripe : %{message}" invoice_pdf_unavailable: PDF de la facture non disponible. club_recordings: not_authorized: Non autorisé teams: added: "Équipe « %{name} » ajoutée." updated: Équipe mise à jour. now_staff: Ton compte est maintenant responsable diffusion. staff_role_removed: Rôle staff retiré de ton compte. invite_link_generated: "Lien d'invitation généré (valable 7 jours)" invite_email_sent: "Invitation envoyée à %{email} (lien valable 7 jours)" invite_email_failed: "Invitation créée, mais l'e-mail à %{email} n'a pas pu être envoyé. Copiez et partagez le lien ci-dessous." access_revoked: Accès révoqué invitation_canceled: Invitation annulée youtube_disconnected: Chaîne YouTube du club déconnectée matches: scheduled: "Match programmé : %{opponent}. Lance le streaming depuis l'application une fois sur place." updated: Match mis à jour. close_live_before_delete: Termine le direct avant de supprimer ce match. deleted: Match supprimé. schedule_denied: Seul un responsable diffusion ou le titulaire du club peut programmer des matchs. club_matches: invalid_team: Sélectionne une équipe valide. scheduled: "Match programmé : %{team} vs %{opponent}." no_schedulable_teams: Tu n'as pas les autorisations pour programmer des matchs dans ce club. team_roster_members: added: "%{name} ajouté(e) à l'effectif." updated: Fiche mise à jour. removed: "%{name} retiré(e) de l'effectif." invitations: invalid_or_expired: Invitation invalide ou expirée invalid: Invitation invalide wrong_email: "Cette invitation est destinée à %{email}" joined_team: Tu as rejoint l'équipe ! signup_to_accept: "Inscris-toi avec %{email} pour accepter l'invitation" registrations: accept_terms_required: Tu dois accepter la politique de confidentialité et les conditions d'utilisation pour t'inscrire. welcome_to_team: Bienvenue dans l'équipe ! account_created: Compte créé. Inscris maintenant ton club. sessions: welcome_back: Bon retour ! invalid_credentials: E-mail ou mot de passe invalide logged_out: Déconnecté unauthorized: Non autorisé invalid_token: Jeton invalide password_resets: email_sent: Si l'e-mail est enregistré, tu recevras bientôt un lien pour réinitialiser le mot de passe. invalid_or_expired_link: Lien invalide ou expiré. Demande une nouvelle réinitialisation du mot de passe. password_min_length: Le mot de passe doit comporter au moins 8 caractères password_too_short: Le mot de passe doit comporter au moins 8 caractères password_too_long: Le mot de passe ne peut pas dépasser 72 caractères password_too_weak: "Le mot de passe doit inclure au moins 3 parmi : minuscules, majuscules, chiffres et symboles" password_same_as_current: "Le nouveau mot de passe doit être différent de l'actuel" password_mismatch: Les mots de passe ne correspondent pas password_updated: Mot de passe mis à jour. Tu peux maintenant te connecter. accounts: name_required: Le nom est obligatoire profile_updated: Profil mis à jour. password_current_incorrect: Le mot de passe actuel est incorrect password_too_short: Le mot de passe doit contenir au moins 8 caractères password_too_long: Le mot de passe ne peut pas dépasser 72 caractères password_too_weak: "Le mot de passe doit inclure au moins 3 parmi : minuscules, majuscules, chiffres et symboles" password_same_as_current: "Le nouveau mot de passe doit être différent de l'actuel" password_mismatch: Les mots de passe ne correspondent pas password_updated: Mot de passe mis à jour. password_update_failed: Impossible de mettre à jour le mot de passe replay: download_unavailable: Téléchargement non disponible not_available: Replay non disponible live: index: meta_title: "Matchs jeunes en direct en ce moment — Match Live TV" meta_description: "Regardez les matchs jeunes en direct en ce moment et les prochains matchs programmés. Recherchez votre équipe et ouvrez le lien sans installer d'application." club_back_link: "← %{name}" club_title: "Directs et matchs — %{name}" club_hint: "Uniquement les équipes de ce club : directs en cours et matchs programmés depuis l'application ou le site." club_replay_link: "Replays de %{name}" default_title: "Directs et matchs programmés" default_hint: "Recherchez par club, équipe, adversaire ou lieu : retrouvez les directs actifs et les matchs programmés." replay_archive_link: "Directs passés — archive des replays" schedule_match_link: "Programmer un match" search_placeholder_club: "Rechercher club, équipe, adversaire ou lieu…" search_placeholder_default: "Ex. Crazy Volley, Série D, adversaire…" search_aria_label: "Rechercher une équipe" search_button: "Rechercher" reset_link: "Réinitialiser" results_hint: "Résultats pour «%{query}»%{club_suffix} : %{live_count} en direct · %{upcoming_count} à venir" results_hint_club_suffix: " dans %{name}" section_live_now: "En direct maintenant" badge_on_air: "À l'antenne" badge_live: "Live" badge_paused: "En pause" badge_reconnecting: "Reconnexion" badge_starting: "Démarrage" badge_scheduled: "Programmé" watch_link: "Regarder le direct →" section_upcoming: "Prochains matchs" upcoming_hint: "Programmés depuis l'application ou le site : le direct commencera dès que le staff lancera la diffusion." empty_soft_title: "Aucun direct pour le moment." empty_soft_body: "Revenez à l'heure indiquée : dès que l'équipe lancera le streaming, le match apparaîtra dans « En direct maintenant »." empty_club_title: "Aucun direct ou match programmé pour %{name}." empty_club_schedule_link: "Programmer le premier match" empty_club_schedule_suffix: " ou depuis l'application Match Live TV." empty_club_ask_staff: "Demandez au responsable du club ou à un responsable diffusion de programmer un match." empty_club_add_team_html: "Ajoutez une équipe depuis la %{club_link} et programmez le premier match." empty_club_page_link: "page du club" empty_club_back_link: "← Retour au club" empty_hero_title: "Aucun direct pour le moment — mais vous pouvez déjà vous organiser" empty_hero_body: "Si votre équipe utilise Match Live TV, le match peut être programmé depuis le téléphone avec une date et une heure. Parents et proches retrouveront ici le direct dès que le coup d'envoi approchera." empty_hero_list_item1: "Programmez le match depuis l'application (sans démarrer le direct tout de suite)" empty_hero_list_item2: "Le match apparaît dans « Prochains matchs » avec l'heure et le terrain" empty_hero_list_item3: "Le streaming ne démarre que lorsque vous appuyez sur démarrer dans la salle" empty_hero_cta_signup: "Inscrivez votre équipe" empty_hero_cta_features: "Découvrez comment ça marche" demo_aria_label: "Exemple de direct actif" demo_label: "Exemple — voici à quoi ressemble un direct actif" demo_meta: "PalaTigers · Match Live TV" demo_sets: "Set 2 · Sets gagnés 1-0" show: back_to_all: "← Tous les directs" title: "%{club_name} · %{team_name} vs %{opponent_name} — Direct" meta_description: "Suivez %{club_name} en direct — %{team_name} vs %{opponent_name}%{location}. Regardez depuis votre navigateur, sans installer d'application." meta_description_location: " — %{location}" stream_ended_title: "Direct terminé" stream_ended_body: "La diffusion de ce match a été arrêtée." stream_ended_closed_at: "Terminé le %{date}" stream_ended_hint: "Le score est visible dans la vidéo si le direct était encore en cours." stream_ended_reload_hint: "Rechargez la page pour le dernier état enregistré." all_live_link: "Tous les directs" youtube_title: "Direct sur YouTube" youtube_available_body: "Ce match est diffusé sur la chaîne YouTube Match Live TV, pas sur le lecteur du site." youtube_watch_link: "Regarder sur YouTube" youtube_preparing_body: "Nous préparons le direct sur la chaîne YouTube. Actualisez dans quelques secondes." youtube_hint: "Partagez uniquement le lien YouTube avec les supporters et le club." play_hint: "▶ Démarrer le direct" offline_msg: "Le direct n'est pas encore disponible. Il se met à jour automatiquement dès qu'il reprend l'antenne." awaiting_msg: "En attente du signal du téléphone — ouvrez la caméra dans l'application et vérifiez que le direct est bien démarré (pas en pause)." paused_msg: "Diffusion en pause — le flux continue (écran de couverture serveur)." js_reconnecting_awaiting: "Reconnexion en cours - en attente de la vidéo de l'événement" overlays: badge_ended: "Terminé" badge_waiting: "En attente" replay: index: meta_title: "Replay — Match Live TV" meta_description: "Archive des replays des directs sportifs sur Match Live TV. Recherchez par club, équipe ou adversaire." back_to_live: "← Directs en cours" title: "Directs passés" hint: "Replays publics des clubs sportifs — concerne les matchs déjà diffusés." search_placeholder: "Ex. Tigers Volley, adversaire, club, lieu…" search_aria_label: "Rechercher un replay" search_button: "Rechercher" reset_link: "Réinitialiser" club_filter_label: "Club" club_filter_all: "Tous les clubs" results_hint: "Résultats pour «%{query}»%{club_suffix} : %{count} replays" results_hint_club_suffix: " · %{name}" empty_filtered_title: "Aucun replay trouvé" empty_filtered_suffix: " avec les filtres sélectionnés." empty_filtered_show_all: "Afficher tous les replays publics" empty_default_title: "Aucun replay public pour le moment." empty_default_body: "Quand un club rend un enregistrement public, il apparaîtra ici." empty_default_live_link: "Voir les directs en cours" show: title: "Replay — %{title}" meta_description: "Replay %{title} sur Match Live TV." back_to_replays: "← Directs passés" processing_title: "Replay en cours de traitement" processing_body: "L'enregistrement est en cours de préparation. Vous recevrez un e-mail dès qu'il sera prêt." badge_label: "REPLAY" meta_line_duration: "Durée %{value}" meta_line_until: "Jusqu'au %{date}" meta_line_public: "Public" meta_line_private: "Privé (lien)" download_link: "Télécharger le MP4" youtube_link: "Ouvrir sur YouTube" youtube_only_body: "Replay sur YouTube (aucune copie serveur disponible)." file_missing_title: "Fichier non disponible" file_missing_body: "La vidéo n'est plus sur le serveur (archive supprimée ou en migration)." file_missing_meta: "Durée enregistrée : %{duration} · %{size}" failed_title: "Replay non disponible" failed_default_body: "Erreur lors du traitement de l'enregistrement." unavailable_title: "Replay non disponible" unavailable_body: "Cet enregistrement n'est plus accessible." team_pages: index: meta_title: "Équipes sur Match Live TV — Directs et replays sports jeunes" meta_description: "Découvrez les équipes sportives jeunes qui diffusent sur Match Live TV. Recherchez par nom, filtrez par sport, trouvez les directs en cours et les archives de replays." heading: "Équipes sur Match Live TV" hint: "Clubs et équipes avec des directs, des replays publics ou des matchs programmés. Recherchez votre équipe et ouvrez la page pour suivre le calendrier et l'archive." search_placeholder: "Nom de l'équipe, club, ville ou salle…" search_aria_label: "Rechercher une équipe" search_button: "Rechercher" sport_label: "Sport" sport_all: "Tous les sports" chips_label: "Afficher" chip_live: "En direct" chip_replays: "Avec replays" reset_link: "Réinitialiser" results_found: "%{count} équipes trouvées" results_active: "%{count} équipes actives" results_query_suffix: " pour «%{query}»" results_sport_suffix: " · %{sport}" badge_live: "En direct" badge_upcoming: "%{count} à venir" badge_replay: "%{count} replays" empty_filtered_title: "Aucune équipe trouvée" empty_filtered_suffix: " avec les filtres sélectionnés." empty_filtered_show_all: "Afficher toutes les équipes actives" empty_default_title: "Aucune équipe active pour le moment." empty_default_body: "Quand un club démarrera un direct ou publiera des replays, il apparaîtra ici." empty_default_live_link: "Voir les directs en cours" footer_live_link: "Directs en cours" footer_replay_link: "Archive des replays" show: title: "%{team} — %{club} | Match Live TV" meta_description: "Suivez %{team} (%{club}) : directs, calendrier des matchs et replays sur Match Live TV." breadcrumb_all_teams: "← Toutes les équipes" live_now_label: "En direct maintenant" watch_live_link: "Regarder le direct" all_live_link: "Tous les directs" replay_archive_link: "Archive des replays" section_live_now: "En direct maintenant" section_upcoming: "Prochains matchs" upcoming_hint: "Programmés par le club : le direct commencera dès que le staff lancera la diffusion." section_replays: "Replays récents" replays_more_link: "Voir tous les replays de %{team} →" section_roster: "Effectif" empty_title: "Aucun direct ou replay pour le moment." empty_body: "Revenez avant les prochains matchs : les directs, le calendrier et l'archive de l'équipe apparaîtront ici." empty_link: "Voir tous les directs" score: timer_label: "Chronomètre" generic_label: "Score" sets_label: "Set %{set} · Sets gagnés %{home}-%{away}" partial_entry: "Set %{set} %{home}-%{away}" partial_entry_no_number: "Set %{home}-%{away}" partials_prefix: "Partiels : %{value}" points_label: "%{team} %{home} - %{away} %{opponent}" fallback: "—" default_club_name: "Club" scheduled_date_format: "%d/%m/%Y à %H:%M" scheduled_today: "Aujourd'hui à %{time}" scheduled_tomorrow: "Demain à %{time}"