const messages = {
  common: {
    cancel: "Annuler",
    create: "Créer",
    save: "Enregistrer",
    saving: "Enregistrement…",
    saveChanges: "Enregistrer les modifications",
    connected: "Connecté",
    notConnected: "Non connecté",
    disconnect: "Déconnecter",
    disconnecting: "Déconnexion...",
  },
  root: {
    commandActions: "Opérations",
    commandSearch: "Rechercher",
    commandAppearance: "Apparence",
    toggleTheme: "Changer de thème",
    extensionSignedInTitle: "Connecté",
    extensionSignedInDescription:
      "Ouvrez à nouveau l’extension Clips pour commencer l’enregistrement.",
    gotIt: "Compris",
  },
  builderCredits: {
    pausedTitle: "Crédits Jami Studio en pause",
    transcriptionDescription:
      "Mettez Jami Studio à niveau pour reprendre la transcription de secours. Les transcriptions natives existantes restent visibles.",
    cleanupDescription:
      "Mettez Jami Studio à niveau pour reprendre le nettoyage des transcriptions, les résumés et les titres IA. La transcription native a été conservée.",
    settingsDescription:
      "Mettez Jami Studio à niveau pour reprendre la transcription de secours, le nettoyage des transcriptions, les résumés et les titres IA. Les transcriptions natives existantes restent visibles.",
    titleDescription:
      "La génération de titres IA est en pause. Votre transcription fonctionne toujours.",
    upgrade: "Mettre Jami Studio à niveau",
    retryAfterUpgrade: "Réessayer après la mise à niveau",
    openAiSetup: "Configuration IA",
    featureBackupTranscription: "Transcription de secours",
    featureCleanup: "Nettoyage de transcription",
    featureSummaries: "Résumés",
    featureTitles: "Titres IA",
  },
  recorder: {
    cameraBlurTitle: "Flouter l'arrière-plan",
    cameraBlurDescription: "Restez net et floutez ce qui est derrière vous",
    cameraBlurToggle: "Flouter l'arrière-plan de la caméra",
    cameraBlurIntensityLabel: "Intensité",
    cameraBlurIntensityAria: "Intensité du flou d'arrière-plan",
  },
  navigation: {
    brand: "Clips",
    library: "Bibliothèque",
    spaces: "Espaces",
    meetings: "Réunions",
    dictate: "Dicter",
    archive: "Archiver",
    trash: "Corbeille",
    settings: "Paramètres",
    notifications: "Alertes",
    insights: "Analyses",
    space: "Espace",
    folder: "Dossier",
    extensions: "Rallonges",
    newRecording: "Nouvel enregistrement",
    folders: "Dossiers",
    newFolder: "Nouveau dossier",
    noSpaces: "Aucun espace pour le moment",
    desktopCta: "Obtenir l’app de bureau",
    desktopTitle: "Obtenez l’app de bureau Clips.",
    desktopBody:
      "Enregistrez depuis la barre de menus, utilisez un raccourci global et profitez des mises à jour automatiques.",
    expandSidebar: "Développer la barre latérale",
    collapseSidebar: "Réduire la barre latérale",
    agentEmptyState: "Comment puis-je vous aider avec vos enregistrements ?",
    agentSuggestionSummary: "Résume mon dernier enregistrement",
    agentSuggestionPricing: "Trouve où j’ai mentionné les prix",
    agentSuggestionFiller: "Supprime les mots de remplissage de ce clip",
    createFolderError: "Échec de la création",
    folderCreated: "Dossier créé",
    folderNamePlaceholder: "Nom du dossier",
  },
  empty: {
    library: {
      title: "Votre bibliothèque est vide",
      body: "Capturez votre premier enregistrement d’écran et il apparaîtra ici, prêt à partager.",
      cta: "Enregistrer votre premier Clip",
    },
    folder: {
      title: "Ce dossier est vide",
      body: "Glissez-y des enregistrements ou lancez l’enregistrement pour commencer dans ce dossier.",
      cta: "Enregistrer ici",
    },
    space: {
      title: "Aucun enregistrement dans cet espace pour le moment",
      body: "Partagez un enregistrement avec l’espace ou créez-en un nouveau ; votre équipe le verra ici.",
      cta: "Enregistrer pour cet espace",
    },
    archive: {
      title: "Rien dans l’archive",
      body: "Les enregistrements archivés sont masqués de la bibliothèque, mais conservés. Vous pourrez toujours les restaurer plus tard.",
    },
    trash: {
      title: "La corbeille est vide",
      body: "Les enregistrements supprimés restent ici pendant 30 jours avant d’être supprimés définitivement.",
    },
    search: {
      title: "Aucun résultat",
      body: "Essayez un autre terme de recherche ou vérifiez vos filtres.",
    },
  },
  trashRoute: {
    title: "Corbeille",
    selected: "{{count}} sélectionné(s)",
    deselectAll: "Tout désélectionner",
    selectAll: "Tout sélectionner",
    restore: "Restaurer",
    deleteForever: "Supprimer définitivement",
    deleteForeverTitle: "Supprimer définitivement ?",
    bulkDeleteDescription:
      "Enregistrements à supprimer définitivement : {{count}}. Cette action est irréversible.",
    singleDeleteDescription:
      "Cet enregistrement sera supprimé définitivement. Cette action est irréversible.",
    restored: "Restauré",
    restoreFailed: "Échec de la restauration",
    permanentlyDeleted: "Supprimé définitivement",
    deleteFailed: "Échec de la suppression",
    clipsRestored: "{{count}} clips restaurés",
    clipsRestoreFailed: "{{count}} clips n’ont pas pu être restaurés",
    clipsPermanentlyDeleted: "{{count}} clips supprimés définitivement",
    clipsDeleteFailed: "{{count}} clips n’ont pas pu être supprimés",
  },
  recordingRoute: {
    pageTitle: "Enregistrement du clip · Clips",
  },
  meetingDetailRoute: {
    pageTitle: "Réunion · Clips",
  },
  recordingPage: {
    untitledClip: "Extrait sans titre",
    recordingNotFound: "Enregistrement introuvable",
    noAccess: "Vous n’aurez peut-être pas accès à ce clip.",
    backToLibrary: "Retour à la bibliothèque",
    storageStillDisconnected: "Le stockage n'est toujours pas connecté",
    finishBuilderOrS3:
      "Terminez la fenêtre contextuelle Jami Studio ou configurez le stockage S3, puis réessayez.",
    loomImportResumed: "L'importation de Loom a repris",
    clipUploadResumed: "Le téléchargement du clip a repris",
    couldNotRetryLoom: "Impossible de réessayer l'importation Loom",
    couldNotResumeUpload: "Impossible de reprendre le téléchargement",
    tryAgainMoment: "Réessayez dans un instant.",
    aiRequestFailed: "La requête IA a échoué",
    titleUpdated: "Titre mis à jour",
    transcriptNotReady: "La transcription n'est pas encore prête",
    tryAfterTranscription: "Réessayez une fois la transcription terminée.",
    titleGenerationQueued: "Génération de titres en file d'attente",
    descriptionQueued: "Demande de description en file d'attente",
    chapterQueued: "Demande de chapitre en file d'attente",
    fillerQueued: "Suppression des mots de remplissage en file d'attente",
    silenceQueued: "Suppression du silence en file d'attente",
    workflowQueued: "Demande de workflow en file d'attente",
    pageTitle: "Enregistrement de clips · Clips",
    loomMissingUrl: "Cet enregistrement Loom n'a pas sa source URL.",
    finalizeFailed: "Échec de la finalisation ({{status}})",
    uploadTooLarge:
      "Clips a essayé de compresser cet enregistrement de bureau, mais il est encore trop volumineux pour être téléchargé. L'original est enregistré localement et peut être réessayé à partir du menu Clips.",
    desktopSavedUploadFailed:
      "L'enregistreur de bureau a terminé et a enregistré une copie locale, mais Clips n'a pas pu la télécharger. Vous pouvez réessayer à partir du menu Clips sans réenregistrer.",
    retryLibrary: "Vous pouvez réessayer depuis la bibliothèque.",
    processingStuck:
      "Le traitement n'est pas terminé après 30 secondes (status={{status}}). Le téléchargement du clip n'est peut-être pas terminé – vérifiez les journaux du serveur pour les messages de fragmentation/finalisation.",
    uploadingAssembling:
      "Télécharger et assembler votre vidéo : cela ne prend généralement que quelques secondes.",
    connectStorageImportLoom: "Connectez le stockage pour importer ce Loom.",
    connectStorageFinishClip:
      "Connectez le stockage pour terminer l’enregistrement de ce clip.",
    uploadPausedSaved:
      "Téléchargement interrompu ; clip enregistré localement.",
    savingWentWrong:
      "Une erreur s'est produite lors de l'enregistrement de ce clip.",
    finishingClip: "Je termine votre clip…",
    loomSourcePreserved:
      "Le lien source Loom est conservé. Connectez le stockage Jami Studio ou S3 et Clips réessayera d'enregistrer sa propre copie.",
    clipDataPreserved:
      "Vos données de clip sont toujours conservées. Connectez le stockage Jami Studio ou S3 et Clips le téléchargera automatiquement.",
    details: "Détails",
    importingLoom: "Importation de Loom...",
    uploadingSavedClip: "Téléchargement du clip enregistré…",
    storageConnectedSavingLoom:
      "Le stockage est connecté. Clips enregistre maintenant sa propre copie.",
    storageConnectedFinishing:
      "Le stockage est connecté. Clips termine le téléchargement maintenant.",
    connectStorageImportLoomTitle: "Connecter le stockage pour importer Loom",
    connectStorageFinishSaving:
      "Connectez le stockage pour terminer la sauvegarde",
    chooseStorageRetryLoom:
      "Choisissez où Clips doit stocker les vidéos. Une fois connecté, Clips réessayera cette importation Loom.",
    chooseStorageUpload:
      "Choisissez où Clips doit stocker les vidéos. Une fois connecté, ce clip enregistré sera téléchargé automatiquement.",
    storageConnectedImporting: "Stockage connecté. Importation de Loom...",
    storageConnectedUploading:
      "Stockage connecté. Téléchargement de ce clip...",
    retryImport: "Réessayer l'importation",
    retryUpload: "Réessayez de télécharger",
    checkAgain: "Revérifier",
    back: "Dos",
    done: "Terminé",
    edit: "Modifier",
    aiTools: "Outils d'IA",
    enhanceRecording: "Améliorer cet enregistrement",
    includeFullVideo: "Inclure la vidéo complète",
    includeFullVideoDescription:
      "Lorsque c'est activé, les outils d'IA regardent l'enregistrement (Gemini uniquement) pour le contexte à l'écran — pas seulement la transcription audio. S'applique aussi à la génération par défaut du titre et de la description. Nécessite un modèle Gemini via Builder ou GEMINI_API_KEY.",
    includeFullVideoOn:
      "Les outils d'IA utiliseront la vidéo complète (Gemini)",
    includeFullVideoOff:
      "Les outils d'IA utiliseront uniquement la transcription",
    regenerateTitle: "Régénérer le titre",
    regenerateDescription: "Régénérer la description",
    autoChapters: "Chapitres automatiques",
    removeFillerWords: "Supprimer les mots de remplissage",
    removeSilences: "Supprimer les silences (>1,2s)",
    generatePrSummary: "Générer un résumé des relations publiques",
    generateSop: "Générer SOP",
    generateSopTooltip:
      "SOP signifie Standard Operating Procedure : un runbook réutilisable étape par étape généré à partir de ce clip.",
    generateTicket: "Générer un ticket",
    generateEmail: "Générer un e-mail",
    share: "Partager",
    fromMeeting: "De la réunion :",
    untitled: "Sans titre",
    agent: "Traduit: Agent",
    activity: "Activité",
    transcript: "Transcription",
    insights: "Connaissances",
    settings: "Paramètres",
    askAboutClip: "Renseignez-vous sur ce clip…",
    summarizeClip: "Résumez ce clip",
    generateChapters: "Générer des chapitres à partir de la transcription",
    findActionItems: "Rechercher des actions et des suivis",
    draftRecap: "Rédigez un récapitulatif partageable",
    findKeyMoments: "Retrouvez les moments clés",
    listFollowUpActions: "Répertorier les actions de suivi",
    draftQuestions: "Projet de questions pour l'auteur",
    retryFailed: "Échec de la nouvelle tentative : {{message}}",
    networkError: "erreur réseau",
    ownerInsights: "Points de vue du propriétaire",
    ownerInsightsDescription:
      "Les vues, la complétion et les détails du spectateur sont visibles pour les éditeurs de ce clip.",
  },
  sharePage: {
    agentReadableContext: "Contexte de clip lisible par l'agent",
    agentInstructions:
      "Récupérez agentContextUrl pour la transcription et le cadre JPEG URLs. Récupérez le cadre URLs pour VOIR l'écran, pas seulement lire la transcription.",
    untitledClip: "Extrait sans titre",
    incorrectPassword: "Mot de passe incorrect",
    passwordProtected: "Ce clip est protégé par mot de passe",
    linkExpired: "Lien expiré",
    linkExpiredMessage:
      "Le créateur a fixé une expiration sur ce lien de partage.",
    clipUnavailable: "Extrait indisponible",
    clipUnavailableMessage:
      "Cet enregistrement n'est pas public ou le lien n'est pas valide. S'il s'agit de votre clip, connectez-vous pour vérifier l'accès.",
    signIn: "Se connecter",
    somethingWentWrong: "Quelque chose s'est mal passé",
    pleaseTryAgain: "Veuillez réessayer.",
    connectStorageFinish: "Connectez le stockage pour terminer ce clip.",
    needsAttention: "Ce clip a besoin d’attention pour être terminé.",
    savingWentWrong:
      "Une erreur s'est produite lors de l'enregistrement de ce clip.",
    finishingClip: "Je termine ce clip...",
    loomPreservedManage:
      "Le lien source Loom est conservé. Connectez le stockage Jami Studio ou S3, puis réessayez l'importation.",
    videoPreservedManage:
      "La vidéo est conservée. Connectez le stockage Jami Studio ou S3 et Clips terminera de le télécharger.",
    creatorNeedsStorage:
      "Le créateur doit connecter le stockage Jami Studio ou S3 avant que ce clip puisse se terminer.",
    signInStorage:
      "S'il s'agit de votre clip, connectez-vous ici pour connecter le stockage Jami Studio ou S3 et terminer le téléchargement.",
    uploadNotCompleteSession:
      "Le téléchargement n'est pas encore terminé. Ouvrez le tableau de bord de ce clip ou demandez au créateur de vérifier le stockage.",
    uploadNotCompleteSignIn:
      "Le téléchargement n'est pas encore terminé. S'il s'agit de votre clip, connectez-vous pour ouvrir les commandes du propriétaire et vérifier le stockage.",
    creatorMayRetry: "Le créateur devra peut-être réessayer.",
    uploadingAssembling:
      "Téléchargement et assemblage de la vidéo. Cette page sera mise à jour automatiquement.",
    details: "Détails",
    connectStorageFinishSaving:
      "Connectez le stockage pour terminer la sauvegarde",
    chooseStorageCheck:
      "Choisissez où Clips doit stocker les vidéos. Une fois connectée, cette page sera vérifiée à nouveau.",
    storageConnectedChecking: "Stockage connecté. Je vérifie ce clip...",
    signInToFinish: "Connectez-vous pour terminer",
    signInIfYours: "Connectez-vous si c'est le vôtre",
    openDashboard: "Ouvrir le tableau de bord",
    checkAgain: "Revérifier",
    backToHome: "Retour à la maison",
    generatingTitle: "Génération du titre",
    tryClips: "Essayez Clips",
    clipOptions: "Options de clips",
    downloading: "Téléchargement...",
    downloadMp4: "Télécharger MP4",
    share: "Partager",
    agent: "Traduit: Agent",
    comments: "Commentaires",
    transcript: "Transcription",
    insights: "Connaissances",
    downloadForMac: "Télécharger pour Mac",
    downloadForWindows: "Télécharger pour Windows",
    downloadDesktopApp: "Téléchargez l'application de bureau",
    agentNativeClips: "Agent-Native Clips",
    agentNativeClipsIntro: "est une alternative gratuite,",
    openSource: "open source",
    agentFriendly: "compatible avec les agents",
    loomAlternative: "à Loom",
    signUp: "S’inscrire",
    ownerInsights: "Insights du propriétaire",
    ownerInsightsDescription:
      "Les vues, l’achèvement et les détails des spectateurs sont visibles par les éditeurs de ce clip.",
  },
  meetingDetail: {
    untitledMeeting: "Réunion sans titre",
    unassigned: "Non attribué",
    them: "Eux",
    me: "Moi",
    regeneratingNotes: "Régénération du résumé",
    meetingRemoved: "Réunion supprimée",
    couldNotRemoveMeeting: "Impossible de supprimer la réunion",
    couldNotLoadMeeting: "Impossible de charger cette réunion.",
    transcriptCopied: "Transcription copiée",
    couldNotCopyTranscript: "Impossible de copier la transcription",
    allMeetings: "Toutes les réunions",
    live: "En direct",
    generatingNotesInline: "Génération du résumé…",
    regenerateNotes: "Régénérer le résumé",
    share: "Partager",
    meetingOptions: "Options de réunion",
    removeMeeting: "Supprimer la réunion",
    removeThisMeeting: "Supprimer cette réunion ?",
    removeDescription:
      "Cela supprime la réunion de Clips. Il ne supprimera aucune transcription liée ni ne modifiera votre Google Calendar.",
    cancel: "Annuler",
    removing: "Suppression...",
    remove: "Retirer",
    desktopHint:
      "Pour démarrer les notes, ouvrez Clips Desktop dans la barre de menus et choisissez Start Meeting Notes, ou cliquez sur Start notes lorsque le rappel apparaît. Clips capture le micro et l'audio système, puis écrit la transcription ici.",
    getDesktopApp: "Obtenir l'application de bureau",
    generateNotesFailed: "Impossible de générer le résumé. Essayer à nouveau.",
    attendee_one: "participant {{count}}",
    attendee_other: "participants {{count}}",
    joinCall: "Rejoindre l'appel",
    myNotes: "Mes notes",
    aiNotes: "Notes sur l'IA",
    summary: "Résumé",
    actionItems: "Éléments d'action",
    working: "Fonctionnement…",
    noActionItems:
      "Aucune action pour l'instant. Ils apparaissent ici après la génération des notes à partir d'une transcription.",
    transcript: "Transcription",
    segments: "segments {{count}}",
    copyTranscript: "Copier la transcription",
    copyFullTranscript: "Copier la transcription complète",
    attendee_many: "{{count}} attendees",
    timeRemaining_one: "{{count}} min restante",
    timeRemaining_other: "{{count}} min restantes",
    timeRemaining_many: "{{count}} min restantes",
    endMeeting: "Terminer la réunion",
    endThisMeeting: "Terminer cette réunion ?",
    endMeetingDescription:
      "Cela arrête l'enregistrement et la transcription de cette réunion. Vous pourrez toujours générer des notes à partir de ce qui a été capturé jusqu'ici.",
    couldNotEndMeeting: "Impossible de terminer la réunion",
  },
  transcriptPanel: {
    transcribing: "Transcription…",
    pendingDescription:
      "La transcription en direct apparaît dès que la parole est capturée. Le nettoyage se poursuit en arrière-plan.",
    noSpeechDetected: "Aucune parole détectée",
    noSpeechDescription:
      "Nous n'avons capté aucun discours dans cet enregistrement. Si c’était intentionnel, vous êtes prêt. Sinon, vérifiez vos autorisations de microphone et de parole, puis réessayez la transcription.",
    retry: "Réessayer",
    transcriptUnavailable: "Transcription indisponible : {{reason}}",
    transcriptUnavailableTitle: "Transcription indisponible",
    providerNeedsAttention: "Le fournisseur demande une action",
    providerNeedsAttentionDescription:
      "Le fournisseur actuel a mis cette demande en pause. Passez à Jami Studio ou mettez la clé à jour, puis réessayez.",
    enableTranscriptionTitle: "Activer la transcription",
    enableTranscriptionDescription:
      "Activez les sous-titres, la recherche dans la transcription et les résumés pour ce Clip.",
    searchPlaceholder: "Rechercher la transcription",
    copyTranscript: "Copier la transcription",
    downloadSrt: "Télécharger .srt",
    cleanupRunning: "Nettoyage de la transcription en arrière-plan.",
    noMatches: "Aucun match.",
    noTranscript: "Pas encore de transcription.",
    noTranscriptCaptured: "Aucune transcription n’a été capturée.",
    backupFailed:
      "Aucune parole n’a été capturée localement et la transcription de sauvegarde n’a pas été terminée. Réessayez ou vérifiez les autorisations du microphone et de la parole.",
    backupNotSetup:
      "Aucune parole n’a été capturée localement et la transcription de sauvegarde n’est pas configurée.",
    cleanupKept:
      "Le nettoyage n'a pas pu se terminer. La transcription native a été conservée.",
    cleanupBuilderFailed:
      "Le nettoyage n'a pas pu se terminer même si Jami Studio est connecté. La transcription native a été conservée.",
    cleanupPaused:
      "Le nettoyage est suspendu. Connectez l’IA dans Paramètres : Jami Studio (crédits gratuits) ou votre propre clé LLM.",
    builderNoResponse:
      "Je n'ai pas eu de réponse de Jami Studio. Autorisez les fenêtres contextuelles et réessayez.",
    saveFailed: "Échec de l'enregistrement ({{status}})",
    savedRetrying: "Sauvé. Nouvelle tentative de transcription…",
    getGroqKey: "Obtenez la clé Groq",
    groqKeysStart: "Les touches Groq commencent par",
    waiting: "En attendant…",
    nativeSpeechPrimary:
      "La reconnaissance vocale native reste la source principale de transcription.",
  },
  thumbnailPicker: {
    failedCapture: "Échec de la capture de l'image",
    failedGif: "Échec de la génération de GIF : essayez une portée plus courte",
    nothingToApply: "Rien à postuler pour l'instant",
    updated: "Miniature mise à jour",
    failedUpdate: "Échec de la mise à jour de la vignette",
    thumbnail: "Miniature",
    upload: "Importer",
    frame: "Image",
    animatedGif: "GIF animé",
    uploadImage: "Télécharger une image",
    uploadedPreview: "Aperçu téléchargé",
    currentThumbnail: "Miniature actuelle",
    frameAt: "Cadre à {{time}}",
    captureFrame: "Capturer l'image",
    preview: "Aperçu",
    capturedFrame: "Cadre capturé",
    capturePreview: "Capturer une image pour prévisualiser",
    start: "Début : {{time}}",
    duration: "Durée : {{time}}",
    generateGif: "Générer GIF",
    animatedPreview: "Aperçu miniature animé",
    generateGifPreview: "Générez un GIF pour prévisualiser",
    cancel: "Annuler",
    saveThumbnail: "Enregistrer la miniature",
  },
  shareDialog: {
    publicDescription:
      "Toute personne disposant du lien peut voir — connectez-vous pour commenter ou réagir",
    shareRecording: "Partager l'enregistrement",
    shareTitle: 'Partager "{{title}}"',
    link: "Lien",
    invite: "Inviter",
    embed: "Intégrer",
    shareLink: "Lien de partage",
    shareWithAgents: "Partager avec les agents",
    copyAgentPrompt: "Copier le prompt pour agent",
    agentPrompt:
      "Récupère cette URL de contexte Clips pour agent : {{agentContextUrl}}. Utilise transcript.segments pour le contexte parlé, récupère recommendedFrames ou les URLs de l'API d'images pour voir l'écran, et consulte browserDiagnostics s'il est présent pour les journaux de console expurgés et les métadonnées de requêtes fetch/XHR.",
    agentTokenDescription:
      "Cette URL temporaire pour agents permet de lire le clip sans le rendre public. Elle expire dans deux heures.",
    agentLinkUnavailable: "Impossible de créer le lien pour agents.",
    retryAgentLink: "Réessayer",
    gifPreview: "aperçu de GIF",
    openPlayer: "Joueur ouvert",
    downloadMp4: "Télécharger MP4",
    embedsNeedPublic: "Les intégrations nécessitent un clip public",
    embedPublicDescription:
      "Ce clip est actuellement {{visibility}}. Les iframes intégrées se chargent de manière anonyme, le clip doit donc être public pour que les spectateurs puissent le regarder.",
    makingPublic: "Rendre public…",
    makePublic: "Rendre public",
    askOwnerPublic: "Demandez au propriétaire de le rendre public.",
    responsive: "Réactif (16:9)",
    fixedSize: "Taille fixe",
    embedIframeTitle: "Video Clips",
    width: "Largeur",
    height: "Hauteur",
    autoplay: "Lecture automatique",
    startAt: "Commencer à (secondes)",
    embedCode: "Code d’intégration",
    sharePlainTitle: "Partager {{title}}",
  },
  shareUi: {
    owner: "Propriétaire : {{email}}",
    generalAccess: "Accès général",
    restrictedLinkDescription:
      "Ce lien ne fonctionnera que pour les personnes qui y ont déjà accès.",
    makingPublic: "Rendre public…",
    makePublicAndCopy: "Rendre public et copier",
    copy: "Copie",
    addPeopleByEmail: "Ajouter des personnes par email",
    notifyPeople: "Avertir les gens",
    peopleWithAccess: "Personnes ayant accès",
    ownerRole: "Propriétaire",
    remove: "Retirer",
    noAccessYet: "Personne n'y a encore accès.",
    visibility: {
      private: {
        label: "Privé",
        description: "Seules les personnes ayant accès peuvent voir",
      },
      org: {
        label: "Organisation",
        description: "Tout le monde dans votre organisation peut voir",
      },
      public: {
        label: "Publique",
        description: "Toute personne disposant du lien peut voir",
      },
    },
    roles: {
      viewer: "Téléspectateur",
      editor: "Éditeur",
      admin: "Administrateur",
    },
  },
  quickAsk: {
    title: "Renseignez-vous sur cette réunion",
    toggleHint: "pour basculer · Esc pour fermer",
    quickPrompts: "Invites rapides",
    whatDidIMiss: "Qu'est-ce que j'ai raté ?",
    whatDidIMissPrompt: "Qu'est-ce que j'ai raté ?",
    suggestQuestions: "Suggérer des questions à poser",
    suggestQuestionsPrompt:
      "Suggérez-moi quelques bonnes questions à poser ensuite dans cette réunion, en vous basant sur ce qui a été discuté jusqu'ici.",
    makeMeSoundSmart: "Faites-moi paraître brillant",
    makeMeSoundSmartPrompt:
      "Donnez-moi un commentaire ou une question pertinente et perspicace que je pourrais ajouter maintenant, d'après cette réunion.",
    summarizeLastFive: "Résumez les 5 dernières minutes",
    summarizeLastFivePrompt:
      "Résumez les 5 dernières minutes de cette réunion en 3 à 5 puces.",
    actionItemsForMe: "Points d'action pour moi",
    actionItemsForMePrompt:
      "Répertoriez les actions de cette réunion qui me sont assignées. Utilisez des puces de case à cocher.",
    history: "Histoire",
    emptyDescription:
      "Demandez n'importe quoi. L’agent dispose de la transcription complète et du contexte de la réunion.",
    placeholder: "Demandez n'importe quoi…",
    send: "Envoyer",
    sentToChat:
      "Envoyé pour discuter : consultez la barre latérale de l'agent pour la réponse.",
  },
  brandingEditor: {
    title: "Image de marque",
    uploadImageFile: "Veuillez télécharger un fichier image.",
    logoUploaded: "Logo téléchargé",
    uploadFailed: "Échec du téléchargement",
    brandingUpdated: "Image de marque mise à jour",
    saveFailed: "Échec de l'enregistrement",
    organizationName: "Nom de l'organisation",
    brandColor: "Couleur de la marque",
    brandColorPicker: "Sélecteur de couleurs de marque",
    useColor: "Utilisez {{color}}",
    logo: "Logo",
    logoPreview: "Aperçu du logo",
    dropReplace: "Déposez une nouvelle image à remplacer",
    dropHere: "Déposez un PNG / JPG / SVG ici",
    uploading: "Téléchargement…",
    chooseFile: "Choisir un fichier",
    remove: "Retirer",
    preview: "Aperçu",
    organizationFallback: "Organisation",
    saving: "Économie…",
    save: "Sauvegarder",
  },
  downloadRoute: {
    pageTitle: "Télécharger Clips Desktop",
    description:
      "Enregistrez votre écran à partir de la barre de menu. Application de bureau à mise à jour automatique pour macOS et Windows.",
    macSublabel: "Universel (Apple Silicon + Intel)",
    windowsSublabel: "Programme d'installation de MSI 64 bits",
    downloadFor: "Télécharger pour {{platform}}",
    alsoFor: "Également disponible pour {{platform}}",
    backToLibrary: "Retour à la bibliothèque",
    clipsDesktop: "Clips Desktop",
    heroDescription:
      "Un enregistreur de barre de menus pour l’écran, la caméra et écran + caméra. Démarrage en un clic, bulle caméra déplaçable et lien de partage instantané à l’arrêt.",
    versionReleased: "Version {{version}} — publiée {{date}}",
    version: "Traduit: Version {{version}}",
    manifestError:
      "Impossible de charger le manifeste de version : choisissez un programme d'installation sur la page des versions.",
    loadingRelease: "Chargement de la dernière version…",
    chromeTitle: "Extension Chrome pour les journaux du navigateur",
    chromeDescription:
      "Utilisez l'extension lorsque vous souhaitez un enregistrement plus une console expurgée et récupérez les diagnostics/XHR à partir de l'onglet à partir duquel vous lancez. L'application de bureau reste l'enregistreur quotidien le plus fluide.",
    installChrome: "Installer l'extension Chrome",
    chromePending: "Chrome Web Store URL en attente",
  },
  inviteRoute: {
    missingToken: "Jeton d'invitation manquant.",
    notFound: "Invitation introuvable ou expirée.",
    loadFailed: "Échec du chargement de l'invitation",
    joined: "A rejoint {{team}}",
    theTeam: "l'équipe",
    acceptFailed: "Échec de l'acceptation de l'invitation",
    declined: "Invitation refusée",
    declineFailed: "Échec du refus",
    signInRequired: "Connexion requise",
    signInDescription:
      "Vous devez vous connecter avant de pouvoir accepter une invitation.",
    signIn: "Se connecter",
    invited: "Vous avez été invité",
    loading: "Chargement…",
    role: "Rôle:",
    invitedToJoin: "{{inviter}} vous a invité à rejoindre {{team}} sur Clips.",
    emailMismatch:
      "Attention : cette invitation a été envoyée à {{inviteEmail}}. Vous êtes connecté en tant que {{sessionEmail}}. L'acceptation fonctionnera toujours, mais l'e-mail de votre compte sera celui qui rejoindra.",
    decline: "Refuser",
    joining: "Adhésion…",
    acceptInvite: "Accepter l’invitation",
    declineInvite: "Refuser cette invitation ?",
    declineDescription:
      "L'invitation sera supprimée. L'administrateur peut toujours vous en envoyer un nouveau.",
    cancel: "Annuler",
    pageTitle: "Rejoindre l’équipe · Clips",
  },
  settings: {
    openAgentSettings: "Ouvrir les paramètres de l’agent",
    agentDescription:
      "Ouvrez les paramètres de l’agent dans la barre latérale pour les modèles, clés API, automatisations, voix et autres contrôles.",
    agentTitle: "Paramètres de l’agent",
    title: "Paramètres",
    pageTitle: "Paramètres · Clips",
    intro: "Préférences et services connectés pour cet espace Clips.",
    languageTitle: "Langue",
    languageDescription:
      "Choisissez la langue de l’interface pour ce compte. Clips s’en souviendra sur tous vos appareils.",
    languageLabel: "Langue de l’interface",
    whatsNew: "Nouveautés",
    changelogEmpty: "Aucune mise à jour pour le moment.",
    viewAllUpdates: "Voir toutes les mises à jour",
    expand: "Développer",
    collapse: "Replier",
    changelogMarkdown: `# Journal des modifications

Tous les changements visibles par les utilisateurs de Clips sont documentés ici. Vous pouvez l’ouvrir à tout moment depuis le menu de commandes (Cmd+K -> "Nouveautés") ou depuis les paramètres.

## 2026-06-23

### Ajouté

- Vous pouvez maintenant voir les nouveautés directement dans Clips. Le journal des modifications est disponible dans le menu de commandes (Cmd+K) et dans les paramètres.`,
    profile: "Profil",
    email: "E-mail",
    displayName: "Nom affiché",
    displayNamePlaceholder: "Votre nom",
    playback: "Lecture",
    defaultPlaybackSpeed: "Vitesse de lecture par défaut",
    playbackDescription:
      "Appliquée automatiquement quand vous ouvrez un enregistrement.",
    transcript: "Transcription",
    transcriptCleanup: "Nettoyage en arrière-plan",
    transcriptCleanupDescription:
      "Affichez immédiatement la transcription native, puis nettoyez-la en arrière-plan lorsqu’elle est disponible.",
    notifications: "Alertes",
    emailNotifications: "Notifications par e-mail",
    emailNotificationsDescription:
      "Recevez un e-mail lorsqu’une personne commente, réagit ou partage un enregistrement avec vous.",
    saved: "Paramètres enregistrés",
    saveFailed: "Échec de l’enregistrement",
    builderConnectedToast: "Jami Studio connecté",
    videoStorage: "Stockage vidéo",
    videoStorageDescription:
      "Jami Studio est le chemin de stockage principal pour les téléversements Clips. S3 est disponible si vous devez utiliser votre propre bucket.",
    checkingBuilder: "Vérification de Jami Studio",
    builderConnected: "Jami Studio connecté",
    connectBuilder: "Utiliser Jami Studio (gratuit)",
    builderConnectedFor: "Utilisation de Jami Studio pour {{orgName}}.",
    builderConnectedGeneric:
      "Les nouveaux clips utilisent le fournisseur Jami Studio connecté.",
    builderIncludes:
      "Inclut le stockage objet, les téléversements et la transcription gérée pour les nouveaux clips.",
    s3Title: "Stockage compatible S3",
    secondary: "Secondaire",
    active: "Actif",
    s3BuilderConnectedDescription:
      "À utiliser uniquement si cet espace doit téléverser vers votre propre bucket plutôt que Jami Studio.",
    s3CurrentProvider: "Utilisation actuelle de {{providerName}}.",
    s3OwnBucketDescription:
      "Utilisez votre propre bucket si vous ne voulez pas du stockage Jami Studio.",
    configureS3: "Configurer S3",
    hideS3: "Masquer S3",
    saveStorage: "Enregistrer le stockage",
    storageSaved: "Paramètres de stockage enregistrés",
    storageRequired:
      "Endpoint, bucket, access key et secret sont obligatoires.",
    s3EndpointLabel: "URL du point de terminaison",
    s3BucketLabel: "Seau",
    s3AccessKeyLabel: "ID de clé d’accès",
    s3SecretAccessKeyLabel: "Clé d’accès secrète",
    s3RegionLabel: "Région",
    s3PublicBaseUrlLabel: "URL de base publique",
    s3UrlInvalid:
      "Doit être une URL valide (ex. https://s3.us-east-1.amazonaws.com)",
    s3BucketInvalid:
      "Le nom du bucket doit contenir 3–63 lettres minuscules, chiffres ou tirets",
    s3RegionInvalid: 'Doit être une région valide (ex. us-east-1) ou "auto"',
    apiSetup: "Configuration IA",
    apiSetupDescription:
      "Connectez l’IA avec les crédits gratuits Jami Studio ou vos propres clés LLM.",
    builderEasySetup: "Crédits gratuits Jami Studio",
    builderAiAvailable:
      "Les crédits IA inclus et la transcription gérée sont disponibles pour Clips.",
    builderAiDescription:
      "Utilisez d’abord Jami Studio pour les crédits IA inclus, le stockage objet, les téléversements et la transcription gérée.",
    providerKeyTitle: "Utiliser votre propre clé fournisseur",
    providerKeyDescription:
      "Ajoutez des clés Anthropic, OpenAI, Gemini, Groq ou OpenRouter pour une utilisation facturée par fournisseur.",
    providerKeysSet: "{{count}} définies",
    checkingProviderKeys: "Vérification des clés fournisseur…",
    keySet: "Définie",
    keyCleared: "Identifiants de stockage effacés",
    clearAllS3: "Effacer les identifiants",
    replaceKey: "Remplacer la clé…",
    pasteProviderKey: "Collez d’abord une clé fournisseur.",
    apiKeySaved: "Clé API enregistrée",
    apiKeyFailed: "Échec de l’enregistrement de la clé",
    slackTitle: "Agent-Native Clips pour Slack",
    slackDescription:
      "Partagez un clip public, collez le lien dans Slack, et il se lit directement, sans étape supplémentaire pour les spectateurs. Connectez chaque espace une seule fois.",
    checkingSlack: "Vérification de Slack",
    slackConnected_one: "{{count}} espace connecté",
    slackConnected_many: "{{count}} espaces connectés",
    slackConnected_other: "{{count}} espaces connectés",
    slackOauthNeeded: "Identifiants OAuth requis",
    slackPreviewDescription:
      "Les liens Clips publics peuvent s’afficher comme aperçus lisibles dans Slack.",
    connectSlack: "Connecter Slack",
    slackClientMissing:
      "Définissez SLACK_CLIENT_ID et SLACK_CLIENT_SECRET pour ce déploiement avant de connecter des espaces.",
    slackSigningMissing:
      "Définissez SLACK_SIGNING_SECRET afin de vérifier les callbacks d’événements Slack.",
    connectedBy: "Connecté par {{email}}",
    disconnectSlackLabel: "Déconnecter {{team}}",
    slackConnectedToast: "Slack connecté",
    slackCheckedToast: "Connexion Slack vérifiée",
    slackDisconnectedToast: "Slack déconnecté",
    slackConnectFailed: "Échec de la connexion à Slack",
    slackDisconnectFailed: "Échec de la déconnexion de Slack",
    disconnectSlackTitle: "Déconnecter Slack ?",
    disconnectSlackDescription:
      "Clips supprimera le token bot stocké pour {{team}} et cessera d’envoyer des aperçus Slack lisibles.",
    thisWorkspace: "cet espace",
    slackConnected: "Slack connecté",
  },
  insightsHub: {
    title: "Insights",
    period: "Période",
    last7Days: "7 derniers jours",
    last14Days: "14 derniers jours",
    last30Days: "30 derniers jours",
    last90Days: "90 derniers jours",
    exportCsv: "Exporter en CSV",
    description:
      "Engagement dans votre organisation sur les {{days}} derniers jours.",
    views: "Vues",
    reactions: "Réactions",
    comments: "Commentaires",
    recordings: "Enregistrements",
    engagementTrend: "Tendance d’engagement",
    topVideos: "Meilleures vidéos",
    topCreators: "Meilleurs créateurs",
  },
  folderTree: {
    noFolders: "Aucun dossier pour le moment",
    rename: "Renommer",
    newSubfolder: "Nouveau sous-dossier",
    delete: "Supprimer",
    renameFolder: "Renommer le dossier",
    renamed: "Dossier renommé",
    renameFailed: "Échec du renommage",
    createInside: "Créer un dossier dans « {{name}} ».",
    folderName: "Nom du dossier",
    created: "Dossier créé",
    createFailed: "Échec de la création",
    deleteFolder: "Supprimer le dossier ?",
    deleteDescription:
      "Les enregistrements qu’il contient seront déplacés vers le niveau parent (racine de la bibliothèque ou dossier parent). Les sous-dossiers imbriqués seront supprimés. Cette action est irréversible.",
    deleted: "Dossier supprimé",
    deleteFailed: "Échec de la suppression",
  },
  organizationSettings: {
    pageTitle: "Paramètres de l’organisation · Clips",
    title: "Organisation · Paramètres",
    namedTitle: "{{name}} · Paramètres",
    noOrganization:
      "Aucune organisation pour le moment. Créez-en une depuis le sélecteur d’organisation pour commencer.",
    description:
      "Administration de l’organisation : marque, membres, invitations.",
    adminsOnlyBranding: "Seuls les administrateurs peuvent modifier la marque.",
    members: "Membres",
    pendingInvites: "Invitations en attente",
    noPendingInvites: "Aucune invitation en attente.",
    email: "E-mail",
    role: "Rôle",
    sent: "Envoyé",
  },
  recordingInsights: {
    loading: "Chargement des insights…",
    noData: "Aucune donnée pour le moment.",
    views: "Vues",
    uniqueViewers: "Spectateurs uniques",
    completion: "Achèvement",
    ctaConversion: "Conversion CTA",
    dropOff: "Abandon",
    viewersCount: "{{count}} spectateurs",
    watching: "Regarde",
    recentViewers: "Spectateurs récents",
    noViewers: "Aucun spectateur pour le moment.",
    anonymous: "Anonyme",
    anon: "Anon",
    moreViewers: "+{{count}} de plus",
    viewedBy: "Vu par",
    someone: "Quelqu’un",
    noViewsYet: "Aucune vue pour le moment.",
  },
  libraryGrid: {
    spaceRoot: "Racine de l’espace",
    libraryRoot: "Racine de la bibliothèque",
    clipsMoved: "{{count}} clips déplacés",
    moveFailed: "Échec du déplacement des clips",
    titleRequired: "Le titre ne peut pas être vide",
    clipRenamed: "Clip renommé",
    renameFailed: "Échec du renommage du clip",
    renameClip: "Renommer le clip",
    clipTitle: "Titre du clip",
    movedToTrash: "Déplacé vers la corbeille",
    restoredFromArchive: "Restauré depuis l’archive",
    archived: "Archivé",
    clipsArchived: "{{count}} clips archivés",
    clipsArchiveFailed: "{{count}} clips n’ont pas pu être archivés",
    clipsMovedToTrash: "{{count}} clips déplacés vers la corbeille",
    clipsTrashFailed:
      "{{count}} clips n’ont pas pu être déplacés vers la corbeille",
    loadFailedTitle: "Impossible de charger vos enregistrements",
    loadFailedBody:
      "Une erreur s’est produite lors du chargement de cette liste. Vos enregistrements sont en sécurité — réessayez.",
    retry: "Réessayer",
  },
  notificationsRoute: {
    pageTitle: "Alertes · Clips",
    title: "Notifications",
    description:
      "Commentaires, réactions, mentions et partages sur vos enregistrements au cours des 30 derniers jours.",
    replySent: "Réponse envoyée",
    sendFailed: "Échec de l’envoi",
    all: "Tout",
    comments: "Commentaires",
    reactions: "Réactions",
    mentions: "Mentions",
    shares: "Partages",
    loading: "Chargement…",
    replyTo: "Répondre à {{email}} sur",
    replyPlaceholder: "Écrire une réponse…",
  },
  stitchManager: {
    defaultTitle: "Enregistrement assemblé",
    title: "Assembler des enregistrements",
    pickAtLeastTwo: "Choisissez au moins 2 enregistrements à assembler",
    videoUrlMissing:
      "Un ou plusieurs enregistrements n’ont pas encore d’URL vidéo prête",
    connectStorage:
      "Connectez le stockage avant d’assembler des enregistrements : Jami Studio (stockage + IA sur l’offre gratuite) ou stockage compatible S3.",
    created: "Enregistrement assemblé créé",
    failed: "Échec de l’assemblage des enregistrements",
    noOtherRecordings: "Aucun autre enregistrement disponible.",
    combineOrder: "Ordre de combinaison",
    emptyQueue:
      "Cliquez sur des enregistrements à gauche pour les ajouter ici. Faites glisser pour réordonner.",
    titleLabel: "Titre",
    combining:
      "Combinaison avec ffmpeg.wasm — {{progress}} %. Les grands assemblages peuvent prendre une minute.",
    combine: "Combiner",
  },
  inviteDialog: {
    title: "Inviter des membres",
    description:
      "Collez un ou plusieurs e-mails séparés par des virgules ou des retours à la ligne. Les invitations expirent dans 7 jours.",
    enterEmail: "Saisissez au moins une adresse e-mail.",
    invalidEmails: "E-mail(s) non valide(s) : {{emails}}",
    emailFailed: "{{email}} : {{message}}",
    failed: "Échec",
    sent: "{{count}} invitations envoyées.",
    sentWithFailures: "{{sent}} invitations envoyées, {{failed}} échecs.",
    emails: "E-mails",
    memberRole: "Membre — enregistrer, modifier, partager",
    adminRole: "Admin — contrôle total",
    sending: "Envoi…",
    sendInvites: "Envoyer les invitations",
  },
  membersList: {
    memberRole: "Membre",
    adminRole: "Admin",
    roleUpdated: "Rôle de {{email}} mis à jour en {{role}}",
    updateFailed: "Échec de la mise à jour du rôle",
    removed: "{{email}} retiré de l’organisation",
    removeFailed: "Échec de la suppression du membre",
    noMembers: "Aucun membre pour le moment.",
    member: "Membre",
    joined: "A rejoint",
    you: "(vous)",
    removeMemberLabel: "Retirer {{email}}",
    removeTitle: "Retirer le membre ?",
    removeDescription:
      "{{email}} perdra l’accès à cette organisation. Vous pourrez toujours l’inviter à nouveau.",
    remove: "Retirer",
  },
  slackShareHint: {
    playsInline: "Lecture inline dans Slack",
    connectedDescription:
      "Collez ce lien dans n’importe quel espace connecté pour le lire inline.",
    makeInline: "Le lire inline dans Slack",
    connectDescription:
      "Connectez un espace pour que ce lien se déplie en vidéo.",
    connect: "Connecter",
  },
  commentsPanel: {
    disabled: "Les commentaires sont désactivés pour cet enregistrement.",
    beFirst: "Soyez le premier à commenter",
    leaveNotePanel: "Laissez une note en haut de ce panneau.",
    leaveNoteTimestamp: "Laissez une note à l’horodatage actuel.",
    leaveComment: "Laisser un commentaire...",
    signInToComment: "Connectez-vous pour laisser un commentaire.",
    signIn: "Se connecter",
    replyingTo: "Réponse à",
    commentAt: "Commentaire à",
    writeReply: "Écrire une réponse...",
    commentButton: "Commenter",
    composerPlaceholder: "Ajouter un commentaire…",
    mentionSomeone: "Mentionner quelqu'un",
    addEmoji: "Ajouter un emoji",
  },
  shareMeeting: {
    pageTitle: "Notes de réunion · Clips",
    description: "Notes de réunion IA partagées via Clips.",
    unavailable: "Cette réunion est privée ou n’est plus disponible.",
    tryClips: "Essayer Clips",
    attendees: "{{count}} participants",
    noAiNotes: "Aucun résumé n’a encore été généré pour cette réunion.",
    summary: "Résumé",
    keyPoints: "Points clés",
    actionItems: "Actions à faire",
  },
  deleteRecordingMenu: {
    movedToTrash: "Clip déplacé vers la corbeille",
    deleteFailed: "Échec de la suppression du clip",
    clipOptions: "Options du clip",
    delete: "Supprimer",
    moveTitle: "Déplacer ce clip vers la corbeille ?",
    moveDescription:
      "Cela retire le clip de votre bibliothèque. Vous pourrez le restaurer depuis la corbeille ou le supprimer définitivement plus tard.",
    deleting: "Suppression...",
    moveToTrash: "Déplacer vers la corbeille",
  },
  recordingToolbar: {
    controls: "Commandes d’enregistrement",
    resumeRecording: "Reprendre l’enregistrement",
    pauseRecording: "Mettre l’enregistrement en pause",
    resumeShortcut: "Reprendre (⌥⇧P)",
    pauseShortcut: "Pause (⌥⇧P)",
    stop: "Arrêter l’enregistrement",
    elapsed: "Temps écoulé",
    cancel: "Annuler l’enregistrement",
    cancelShortcut: "Annuler (⌥⇧C)",
  },
  countdownOverlay: {
    startsIn: "L’enregistrement commence dans {{count}}",
    cancel: "Annuler l’enregistrement",
    skip: "Ignorer le compte à rebours et démarrer maintenant",
    hint: "Esc pour annuler · Entrée pour démarrer maintenant",
  },
  videoPlayer: {
    loomVideo: "Vidéo Loom",
    noVideo: "Aucune vidéo disponible",
    thanks: "Merci d’avoir regardé",
    playClip: "Lire le clip",
    unsupportedFormat:
      "Ce navigateur ne peut pas lire cette vidéo. Essayez d’ouvrir le lien dans Chrome, Edge ou Firefox.",
  },
  searchBar: {
    placeholder: "Rechercher des enregistrements…",
    clear: "Effacer la recherche",
    searching: "Recherche…",
    noMatchesFor: "Aucun résultat pour",
    titleTranscript: "Titre + transcription",
    titleComment: "Titre + commentaire",
    transcript: "Transcription",
    comment: "Commentaire",
    titleOrDescription: "Titre ou description",
  },
  organizationSwitcher: {
    noOrganization: "Aucune organisation",
    organizationCount: "{{count}} organisations",
    organizations: "Organisations",
    noOrganizations: "Aucune organisation pour le moment",
    switchFailed: "Échec du changement d’organisation",
    newOrganization: "Nouvelle organisation",
    createOrganization: "Créer une organisation",
    organizationName: "Nom de l’organisation",
    created: "« {{name}} » créée",
    createFailed: "Échec de la création de l’organisation",
    creating: "Création…",
  },
  playerControls: {
    playbackSpeed: "Vitesse de lecture",
  },
  autoRecordPrompt: {
    notesStarted: "Notes démarrées.",
    cancelWithSeconds: "Annuler ({{count}} s)",
    startNotesQuestion: "C’est l’heure de cette réunion. Démarrer les notes ?",
    autoStartsIn: "Démarrage automatique dans {{count}} s",
    startNotes: "Démarrer les notes",
    dismiss: "Fermer",
  },
  meetingCanvas: {
    noAiNotes:
      "Aucune note IA pour le moment. Générez des notes à partir d’une transcription terminée.",
    noNotes: "Aucune note.",
    yourNotes: "Vos notes…",
    clickToEdit: "Cliquer pour modifier",
  },
  meetingCard: {
    live: "En direct",
    transcript: "Transcription",
    aiNotesReady: "Notes IA prêtes",
    noSummary: "Aucun résumé pour le moment",
    transcriptSource: "Source de transcription",
    now: "Maintenant",
    started: "Démarrée",
    inMinutes: "dans {{count}} min",
    inHours: "dans {{count}} h",
    join: "Rejoindre",
    openNotes: "Ouvrir les notes",
    open: "Ouvrir les notes",
    startFromDesktopNow:
      "Démarrez les notes en direct depuis le rappel bureau ou la barre de menus.",
    startFromDesktopLater:
      "Clips Desktop affichera Start notes au moment voulu.",
  },
  transcriptBubbles: {
    listening: "Écoute…",
    noTranscript: "Aucune transcription pour le moment.",
    liveTranscriptDescription:
      "La transcription en direct apparaîtra ici lorsque les notes commenceront.",
    me: "Moi",
    them: "Eux",
    searchTranscript: "Rechercher dans la transcription",
    searchPlaceholder: "Rechercher dans la transcription…",
    searchMatchCount: "{{current}} sur {{total}}",
    searchNoMatches: "Aucun résultat",
    searchPrevMatch: "Résultat précédent",
    searchNextMatch: "Résultat suivant",
    searchClose: "Fermer la recherche",
  },
  editorLayout: {
    trimmed: "Découpé",
    trimFailed: "Échec du découpage",
    cut: "Coupé",
    cutFailed: "Échec de la coupe",
    split: "Divisé",
    splitFailed: "Échec de la division",
    loadingRecording: "Chargement de l’enregistrement…",
    recordingNotFound: "Enregistrement introuvable",
    noVideoYet: "Aucune vidéo disponible pour le moment.",
  },
  transcriptEditor: {
    transcript: "Transcription",
    selectionRange: "· sélection {{start}} → {{end}}",
    selectTextToTrim: "· sélectionnez du texte à découper",
    cutSelection: "Couper la sélection",
    noTranscript: "Aucune transcription pour le moment.",
  },
  createSpaceDialog: {
    newSpace: "Nouvel espace",
    description: "Créez un espace dans l’organisation actuelle.",
    name: "Nom",
    color: "Couleur",
    useColor: "Utiliser la couleur {{color}}",
    spaceCreated: "Espace créé",
    createFailed: "Impossible de créer l’espace",
  },
  signInPrompt: {
    title: "Connectez-vous pour {{intent}}",
    description:
      "Créez un compte ou connectez-vous pour {{intent}} sur ce clip. Nous vous ramènerons ici lorsque vous aurez terminé.",
    notNow: "Pas maintenant",
    signIn: "Se connecter",
  },
  embedRoute: {
    passwordRequired: "Mot de passe requis",
    unavailable: "Clip indisponible.",
  },
  cameraVisualizer: {
    bubble: "Bulle",
    live: "En direct",
    waiting: "En attente",
    opening: "Ouverture",
    stop: "Arrêter",
    openingEllipsis: "Ouverture...",
    test: "Tester",
    selectedPreview: "Aperçu de la caméra sélectionnée",
    preview: "Aperçu caméra",
    setBubbleSize: "Définir la taille de la bulle caméra {{size}}",
  },
  storageSetup: {
    builderTimeout:
      "Aucune réponse de Jami Studio après 5 minutes. Vérifiez la fenêtre contextuelle et réessayez.",
    builderConnected: "Jami Studio connecté",
    waitingForBuilder: "En attente de Jami Studio...",
    connectBuilder: "Utiliser Jami Studio (gratuit)",
    free: "Gratuit",
    configureS3: "configurer un stockage compatible S3",
    whyPrompt: "Pourquoi vois-je ceci ?",
    whyDescription:
      "Clips est 100 % gratuit et open source, vous devez donc connecter un moyen de stocker vos clips. Connectez le stockage avec Jami Studio pour le stockage et l’IA sur l’offre gratuite, ou utilisez un stockage compatible S3 et vos propres clés LLM.",
  },
  captureInstall: {
    title: "Choose your recorder (Localisé)",
    description:
      "Use Chrome when you need browser logs, or desktop for the smoothest everyday capture. (Localisé)",
    chromeTitle: "Chrome extension (Localisé)",
    chromeDescription:
      "Best when you want redacted console and network diagnostics from the browser tab. (Localisé)",
    chromePendingDescription:
      "Browser logs option is ready, pending the Chrome Web Store URL. (Localisé)",
    desktopTitle: "Desktop app (Localisé)",
    desktopDescription:
      "Most seamless for global shortcuts, menu-bar recording, meetings, and repeat captures. (Localisé)",
  },
  editableTitle: {
    untitled: "Untitled Clip (Localisé)",
    renameFailed: "Failed to rename clip (Localisé)",
    emptyTitle: "Title cannot be empty (Localisé)",
    generatingTitle: "Generating title (Localisé)",
    placeholder: "Clip title (Localisé)",
    editLabel: "Edit clip title (Localisé)",
  },
  chapters: {
    title: "Chapters (Localisé)",
    addHere: "Add here (Localisé)",
    empty: "No chapters yet. (Localisé)",
    remove: "Remove chapter (Localisé)",
    saveFailed: "Failed to save chapters (Localisé)",
    duplicateAtPoint: "A chapter already exists at this point (Localisé)",
    defaultTitle: "Chapter {{count}} (Localisé)",
    seekTo: "Seek to {{time}} (Localisé)",
  },
  editorToolbar: {
    undoTooltip: "Undo (Cmd/Ctrl+Z) (Localisé)",
    playPauseTooltip: "Play / Pause (Space) (Localisé)",
    sourceDuration: "({{duration}} src) (Localisé)",
    previewSpeed: "Preview speed (Localisé)",
    previewSpeedTooltip: "Preview speed while trimming (Localisé)",
    cutSelection: "Cut selection (Localisé)",
    cutSelectedRange: "Cut selected range (Localisé)",
    edit: "Edit (Localisé)",
    playheadEdits: "Playhead edits (Localisé)",
    splitAtPlayhead: "Split at playhead (Localisé)",
    cutBeforePlayhead: "Cut before playhead (Localisé)",
    cutAfterPlayhead: "Cut after playhead (Localisé)",
    panels: "Panels (Localisé)",
    hideChapters: "Hide chapters (Localisé)",
    showChapters: "Show chapters (Localisé)",
    thumbnail: "Thumbnail (Localisé)",
    stitchClips: "Stitch clips (Localisé)",
    zoom: "Zoom (Localisé)",
    zoomOut: "Zoom out (Localisé)",
    fitToWidth: "Fit to width (Localisé)",
    zoomIn: "Zoom in (Localisé)",
    clearAllEdits: "Clear all edits (Localisé)",
    loadingFfmpeg: "Loading ffmpeg… (Localisé)",
    exportMp4: "Export MP4 (Localisé)",
    longExportTitle: "This export is long (Localisé)",
    longExportDescription:
      "The edited video is {{duration}}. ffmpeg.wasm runs in your browser and may run out of memory for very long exports. You can try anyway or download the original file instead. (Localisé)",
    downloadOriginal: "Download original (Localisé)",
    exportAnyway: "Export anyway (Localisé)",
    clearAllEditsTitle: "Clear all edits? (Localisé)",
    clearAllEditsDescription:
      "This removes every trim, blur, and the custom thumbnail from this recording. The original video is never modified. (Localisé)",
    clearEdits: "Clear edits (Localisé)",
    nothingToUndo: "Nothing to undo (Localisé)",
    undoFailed: "Undo failed (Localisé)",
    editsCleared: "Edits cleared (Localisé)",
    clearFailed: "Clear failed (Localisé)",
    selectRangeFirst:
      "Select a range on the waveform or transcript first (Localisé)",
    selectionCut: "Selection cut (Localisé)",
    trimFailed: "Trim failed (Localisé)",
    movePlayheadPastIntro:
      "Move the playhead past the intro you want to cut (Localisé)",
    startCut: "Start cut (Localisé)",
    movePlayheadBeforeEnding:
      "Move the playhead before the ending you want to cut (Localisé)",
    endCut: "End cut (Localisé)",
    splitAdded: "Split added (Localisé)",
    splitFailed: "Split failed (Localisé)",
    videoNotReady: "Video not ready yet (Localisé)",
    exportedMp4: "Exported MP4 (Localisé)",
    exportFailed:
      "Export failed — ffmpeg.wasm can't always handle long videos. Try shorter edits or use the original file. (Localisé)",
  },
  preRecord: {
    modeScreenCamera: "Screen + cam (Localisé)",
    modeScreenOnly: "Screen only (Localisé)",
    modeCameraOnly: "Camera only (Localisé)",
    surfaceWindow: "Window (Localisé)",
    surfaceWindowDescription: "Best for slides or one app (Localisé)",
    surfaceBrowser: "Browser tab (Localisé)",
    surfaceBrowserDescription: "Choose an open tab (Localisé)",
    surfaceScreen: "Screen (Localisé)",
    surfaceScreenDescription: "Capture everything (Localisé)",
    microphoneSelectionUnsupported:
      "This browser does not support microphone device selection. (Localisé)",
    enumerateFailed: "Could not enumerate devices (Localisé)",
    noMicrophone: "No microphone (Localisé)",
    defaultMicrophone: "Default microphone (Localisé)",
    shortMicLabel: "Mic {{id}} (Localisé)",
    defaultCamera: "Default camera (Localisé)",
    shortCameraLabel: "Camera {{id}} (Localisé)",
    noAudio: "No audio (Localisé)",
    noCamera: "No camera (Localisé)",
    loomImportFailed: "Could not import that Loom. (Localisé)",
    fixMicrophoneAccess:
      "Fix microphone access or turn audio off before recording. (Localisé)",
    fixCameraAccess:
      "Fix camera access or switch to Screen mode before recording. (Localisé)",
    captureSource: "Capture source (Localisé)",
    selectedSurface: "{{surface}} selected (Localisé)",
    change: "Change (Localisé)",
    audioAndCamera: "Audio & camera (Localisé)",
    audio: "Audio (Localisé)",
    check: "Check (Localisé)",
    choose: "Choose (Localisé)",
    defaultMicPlaceholder: "Default mic (Localisé)",
    openingMicrophone: "Opening microphone... (Localisé)",
    chooseMicrophone: "Choose microphone... (Localisé)",
    includeAudioAria: "Include audio in this recording (Localisé)",
    tryClipsDesktop: "Try Clips Desktop. (Localisé)",
    cameraOff: "Camera off (Localisé)",
    includeCameraAria: "Include camera in this recording (Localisé)",
    startRecording: "Start recording (Localisé)",
    uploadVideo: "Upload video (Localisé)",
    importLoom: "Import Loom (Localisé)",
    importing: "Importing... (Localisé)",
    import: "Import (Localisé)",
  },
  playerSettings: {
    title: "Settings (Localisé)",
    privacy: "Privacy (Localisé)",
    visibility: "Visibility (Localisé)",
    visibilityPrivate: "Private (Localisé)",
    visibilityOrg: "Organization (Localisé)",
    visibilityPublic: "Public (Localisé)",
    passwordProtection: "Password protection (Localisé)",
    passwordSetPlaceholder:
      "Password is set — type to replace, leave empty + Save to clear (Localisé)",
    noPasswordPlaceholder: "No password (Localisé)",
    expiry: "Expiry (Localisé)",
    viewerOptions: "Viewer options (Localisé)",
    comments: "Comments (Localisé)",
    reactions: "Reactions (Localisé)",
    allowDownloads: "Allow downloads (Localisé)",
    animatedThumbnail: "Animated thumbnail (Localisé)",
    defaultPlaybackSpeed: "Default playback speed (Localisé)",
    callToAction: "Call to action (Localisé)",
    defaultCtaLabel: "Learn more (Localisé)",
    addCta: "+ Add (Localisé)",
    noCtas:
      "No CTAs yet. Add a button that appears during or after the video. (Localisé)",
    buttonLabelPlaceholder: "Button label (Localisé)",
    placementThroughout: "Throughout (Localisé)",
    placementEnd: "At end (Localisé)",
    delete: "Delete (Localisé)",
  },
  recordRoute: {
    pageTitle: "New recording — Clips (Localisé)",
    uploadFailed: "Upload failed (Localisé)",
    uploadFailedAtChunk:
      "Upload failed at chunk {{chunk}}/{{total}}: {{message}} (Localisé)",
    couldNotStartRecording: "Could not start recording (Localisé)",
    couldNotStartRecorder: "Could not start recorder (Localisé)",
    openSettings: "Open settings (Localisé)",
    openedRecorderInNewTab: "Opened recorder in a new tab (Localisé)",
    videoReadyToUpload: "Video is ready to upload (Localisé)",
    videoUploaded: "Video uploaded (Localisé)",
    videoTooLarge: "Video is too large (Localisé)",
    storageNeededToFinishLoomImport:
      "Storage needed to finish Loom import (Localisé)",
    loomImported: "Loom imported (Localisé)",
    couldNotImportLoom: "Could not import that Loom. (Localisé)",
    recordingReadyToUpload: "Recording is ready to upload (Localisé)",
    recordingSaved: "Recording saved (Localisé)",
    noLocalRecordingData:
      "No local recording data is available to download. (Localisé)",
    recordingDownloadStarted: "Recording download started (Localisé)",
    backToLibrary: "Back to library (Localisé)",
    clipsRecorder: "Clips recorder (Localisé)",
    preparingSources: "Preparing sources… (Localisé)",
    recordingScreen:
      "Recording your screen — switch to the window you want to capture (Localisé)",
    largeClipsNeedReencode:
      "Large clips need a quick re-encode before upload. (Localisé)",
    savingRecording: "Saving your recording… (Localisé)",
    sessionExpired: "Session expired (Localisé)",
    sessionExpiredDescription:
      "Your login session has expired. Log in again to start recording. (Localisé)",
    logIn: "Log in (Localisé)",
    betterInDesktop: "Better in the desktop app (Localisé)",
    desktopAppDescription:
      "Menu-bar launch, global shortcuts, auto-updates, and smoother repeat recordings. (Localisé)",
    downloadDesktopApp: "Download desktop app (Localisé)",
    technicalDetails: "Technical details (Localisé)",
    whatToCheck: "What to check (Localisé)",
    downloadRecording: "Download recording (Localisé)",
    openRecorderInTab: "Open recorder in tab (Localisé)",
    connectStorageToFinish:
      "Connectez le stockage sur l’écran suivant : Jami Studio (stockage + IA sur l’offre gratuite) ou stockage compatible S3. Clips terminera l’enregistrement.",
    connectStorageToRetryLoom:
      "Connectez le stockage sur l’écran suivant : Jami Studio (stockage + IA sur l’offre gratuite) ou stockage compatible S3. Clips relancera l’import.",
  },
  dictateRoute: {
    pageTitle: "Dictate · Clips (Localisé)",
    howToUse: "How to use Dictate (Localisé)",
    browserDictation: "Browser dictation (Localisé)",
    browserDictationDescription:
      "Use the button on this page, or press the shortcut while this tab is focused. Browser dictation saves here for copy and cleanup. (Localisé)",
    browserDictationDescriptionDesktop:
      "Use the button below to capture a note right here on this page. It does not paste into other apps — for that, use the desktop shortcut on the right. (Localisé)",
    quickNoteTitle: "Quick dictation note (Localisé)",
    quickNoteHint:
      "Captures here without leaving this page — it does not paste into other apps. Use the button to start and stop. (Localisé)",
    desktopShortcuts: "Desktop shortcuts (Localisé)",
    desktopShortcutsDescriptionSuffix: ", in the desktop app. (Localisé)",
    holdFn: "Hold Fn (Localisé)",
    browserUnavailable:
      "Browser speech recognition is unavailable here. Use Chrome or the desktop app for global dictation. (Localisé)",
    browserUnavailableShort:
      "Browser speech recognition is unavailable here (Localisé)",
    startSpeaking: "Start speaking... (Localisé)",
    replacedOriginal: "Replaced original with cleaned text (Localisé)",
    noText: "No text (Localisé)",
    emptyTranscript: "Empty transcript (Localisé)",
    replaceOriginal: "Replace original with cleaned (Localisé)",
    cleanupWithAi: "Cleanup with AI (Localisé)",
    cleanupHint:
      'Click "Cleanup with AI" to fix punctuation, casing, and filler words. (Localisé)',
    startFirst: "Start your first dictation (Localisé)",
    emptyDesktopDescription:
      "Hold {{fnKey}} anywhere on your Mac, or press {{modifierKey}} ⇧ Space. Your history will live here. (Localisé)",
    emptyWebDescription:
      "Dictation runs through the desktop app for global shortcuts that work in any app — Slack, your editor, anywhere. (Localisé)",
    downloadDesktopApp: "Download Clips desktop app (Localisé)",
    holdToDictate: "hold to dictate (Localisé)",
    toggle: "toggle (Localisé)",
    desktopCtaTitle: "Dictate from anywhere with the desktop app (Localisé)",
    desktopCtaDescription:
      "Press {{modifierKey}} ⇧ Space in any app. Browser dictation is unreliable — the desktop app is the way to use this. (Localisé)",
    noSpeechCaptured: "No speech captured (Localisé)",
    dictationSaved: "Dictation saved (Localisé)",
    voiceToTextDescription:
      "Voice-to-text dictation with AI cleanup. Get the desktop app to dictate from anywhere with a global shortcut. (Localisé)",
    loadFailed: "Couldn't load dictations. (Localisé)",
    noFilterMatches: "No dictations matching this filter. (Localisé)",
    dictionaryTitle: "Dictionary (Localisé)",
    dictionaryDescription:
      "Terms here bias speech recognition toward your preferred spellings — auto-learned from corrections, or add your own. (Localisé)",
    dictionaryTermPlaceholder: "Term (Localisé)",
    dictionaryReplacementPlaceholder: "Replacement (optional) (Localisé)",
    dictionaryAdd: "Add (Localisé)",
    dictionaryLoading: "Loading dictionary... (Localisé)",
    dictionaryEmpty: "No learned terms yet. (Localisé)",
    dictionaryUsesCount: "Used {{count}}x (Localisé)",
    dictionaryRemove: "Remove (Localisé)",
    vocabularyAddFailed: "Couldn't add term (Localisé)",
    vocabularyRemoveFailed: "Couldn't remove term (Localisé)",
  },
  clipsFinalRaw: {
    splitAtPlayhead: "Couper à la tête de lecture (S)",
    selectedCount: "{{count}} sélectionnés",
    move: "Déplacer",
    moveSelected: "Déplacer {{count}} sélectionnés",
    current: "Actuel",
    clearSelection: "Effacer la sélection",
    waitingForStorage: "En attente du stockage",
    savedLocally: "Enregistré localement",
    uploadFailed: "Échec de l’envoi",
    connectStorageToFinish:
      "Ouvrez pour connecter le stockage et terminer l’enregistrement.",
    retryFromClipsMenu:
      "Réessayez depuis le menu Clips ; inutile de réenregistrer.",
    removeFailedClip: "Supprimer ce clip en échec.",
    remove: "Supprimer",
    viewsCount: "{{count}} vues",
    recordingMenu: "Menu de l’enregistrement",
    moveToFolder: "Déplacer vers un dossier",
    unarchive: "Désarchiver",
    shareNamedMeeting: "Partager « {{title}} »",
    shareMeeting: "Partager la réunion",
    shareLink: "Lien de partage",
    alreadyHaveIt: "Je l’ai déjà",
    link: "Lien",
    invite: "Inviter",
    inviteFailed: "Impossible d’inviter la personne",
    removePersonFailed: "Impossible de supprimer la personne",
    passwordProtectedDescription:
      "Cette vidéo est protégée. Saisissez le mot de passe pour la regarder.",
    password: "Mot de passe",
    unlock: "Déverrouiller",
    noEngagementData: "Aucune donnée d’engagement pour le moment.",
    allCaughtUp: "Vous êtes à jour.",
    someone: "Quelqu’un",
    view: "Voir",
    reply: "Répondre",
    commentedOn: "a commenté",
    reactedTo: "a réagi à",
    mentionedYouIn: "vous a mentionné dans",
    shared: "a partagé",
    noCreatorsYet: "Aucun créateur pour le moment.",
    creator: "Créateur",
    engagement: "Engagement",
    selectedMicrophoneWaveform: "Forme d’onde du micro sélectionné",
    goHome: "Aller à l’accueil",
    testMic: "Tester le micro",
    archivePageTitle: "Archives · Clips",
    insightsPageTitle: "Analyses · Clips",
    folderPageTitle: "Dossier · Clips",
    spacePageTitle: "Espace · Clips",
    spacesPageTitle: "Espaces · Clips",
    trashPageTitle: "Corbeille · Clips",
  },
  bugReportRoute: {
    pageTitle: "Rapport de bug · Clips",
    donePageTitle: "Rapport de bug envoyé · Clips",
    eyebrow: "Rapport de bug",
    title: "Enregistrer un rapport de bug",
    description:
      "Capturez une courte reproduction avec écran, voix et contexte navigateur expurgé pour votre équipe.",
    issueTitleLabel: "Titre du problème",
    issueTitlePlaceholder: "Qu'est-ce qui n'a pas fonctionné ?",
    detailsLabel: "Détails",
    detailsPlaceholder: "Que deviez-vous voir se produire ?",
    emailLabel: "Votre e-mail",
    emailPlaceholder: "vous@example.com",
    severityLabel: "Gravité",
    severityLow: "Faible",
    severityNormal: "Normale",
    severityHigh: "Élevée",
    severityUrgent: "Urgente",
    sourceLabel: "Source",
    sourceUnknown: "Page produit actuelle",
    startRecording: "Enregistrer l'écran",
    privacyNote:
      "Clips enregistre la capture avec l'accès espace de travail par défaut. Les URL et métadonnées sont expurgées avant l'enregistrement.",
    doneTitle: "Rapport de bug envoyé",
    doneDescription:
      "L'enregistrement est sauvegardé dans Clips et le produit hôte a été notifié.",
    openRecording: "Ouvrir l'enregistrement",
    copyLink: "Copier le lien",
    copied: "Copié",
    returnToProduct: "Retour au produit",
    missingRecording: "Enregistrement introuvable",
  },
  meetingsRoute: {
    pageTitle: "Meetings · Clips (Localisé)",
    transcriptPending: "Transcript pending (Localisé)",
    notesPending: "Notes pending (Localisé)",
    pastRecordings: "Past recordings (Localisé)",
    calendarNeedsReconnect:
      "Google Calendar needs to be reconnected to keep showing your upcoming meetings. (Localisé)",
    connectGoogleCalendar: "Connect Google Calendar (Localisé)",
    desktopReminder:
      "Connect Google Calendar, keep Clips Desktop open, then click Start notes from the reminder or the menu bar when your meeting begins. (Localisé)",
    getDesktopApp: "Get desktop app (Localisé)",
    requiredForReminders:
      "Desktop captures mic + system audio for meeting transcription. (Localisé)",
    calendarConnected: "Calendar connected (Localisé)",
    calendarDisconnected: "Calendar disconnected (Localisé)",
    calendarSettings: "Calendar settings (Localisé)",
    connectCalendarReminder:
      "Connect Google Calendar for meeting reminders. (Localisé)",
    disconnectGoogleCalendarTitle: "Disconnect Google Calendar? (Localisé)",
    title: "Meetings (Localisé)",
    intro:
      "Upcoming calendar meetings and your recorded notes. Start live notes from Clips Desktop at meeting time. (Localisé)",
    searchPlaceholder: "Search meetings... (Localisé)",
    clearSearch: "Clear search (Localisé)",
    noMeetingsYet: "No meetings yet (Localisé)",
    noMeetingsDescription:
      "Connect your calendar and keep Clips Desktop open. When a meeting starts, use Start notes from the reminder or menu bar. (Localisé)",
    noMeetingsMatch: 'No meetings match "{{query}}" (Localisé)',
    refreshing: "Refreshing… (Localisé)",
    howToTriggerTitle: "How to trigger meeting notes (Localisé)",
    howToTriggerDescription:
      "Meeting notes are the Granola-style flow in Clips: calendar events appear here, the desktop app captures mic and system audio, and the transcript plus AI notes land back in this history. (Localisé)",
    guideCalendarTitle: "Connect Google Calendar (Localisé)",
    guideCalendarDescription:
      "Meetings are pulled from your calendar so Clips knows when to remind you. (Localisé)",
    guideDesktopTitle: "Keep Clips Desktop open (Localisé)",
    guideDesktopDescription:
      "Desktop capture is required for mic plus system-audio transcription. (Localisé)",
    guideStartTitle: "Click Start notes (Localisé)",
    guideStartDescription:
      "Use the desktop reminder or the menu-bar Start Meeting Notes item when the call begins. (Localisé)",
  },
};

export default messages;
