{
  "pageTitle": "VDO.Ninja Panneau de Contrôle OBS",
  "mainHeading": "Contrôle VDO.Ninja OBS",
  "languageSwitcher": {
    "label": "Langue :"
  },
  "collapsible": {
    "clickToExpand": "Cliquez pour développer",
    "clickToCollapse": "Cliquez pour réduire"
  },
  "customCss": {
    "title": "CSS Personnalisé",
    "label": "Entrez votre CSS personnalisé ici :",
    "description": "Ce CSS sera appliqué aux sources."
  },
  "obsConnection": {
    "title": "Connexion WebSocket OBS",
    "websocketUrlLabel": "URL WebSocket :",
    "passwordLabel": "Mot de passe :",
    "cameraPrefixLabel": "Préfixe général des caméras :",
    "reactionPrefixLabel": "Préfixe Réaction : VDO.",
    "highlightPrefixLabel": "Préfixe Surbrillance : VDO.",
    "reactionPrefixDynamicLabel": "Préfixe Réaction : {{prefix}}{{separator}}{{subPrefix}}",
    "highlightPrefixDynamicLabel": "Préfixe Surbrillance : {{prefix}}{{separator}}{{subPrefix}}",
    "connectButton": "Se connecter",
    "disconnectButton": "Se déconnecter",
    "statusDisconnected": "Statut : Déconnecté",
    "statusConnected": "Statut : Connecté",
    "statusConnecting": "Statut : Connexion en cours...",
    "statusError": "Statut : Erreur",
    "statusErrorUrlMissing": "Statut : Erreur - URL manquante",
    "statusErrorTimeout": "Statut : Erreur - Délai de connexion dépassé",
    "statusErrorCameraPrefixMissing": "Statut : Erreur - Préfixe de caméra manquant"
  },
  "vdoNinjaSettings": {
    "title": "Paramètres VDO.Ninja",
    "baseUrlLabel": "URL de base VDO.Ninja :",
    "baseUrlPlaceholder": "https://vdo.ninja",
    "roomNameLabel": "Nom de la salle :",
    "roomNamePlaceholder": "p.ex., MaSalleNinja",
    "passwordLabel": "Mot de passe :",
    "passwordPlaceholder": "Salle ou &password",
    "streamIdsLabel": "IDs de flux :",
    "streamIdsPlaceholder": "idFlux1,idFlux2",
    "roomOrStreamIdsNeeded": "Nom de salle ou ID(s) de flux requis",
    "connectButton": "Se connecter",
    "disconnectButton": "Se déconnecter",
    "cancelButton": "Annuler",
    "statusDisconnected": "Statut : Déconnecté",
    "statusConnected": "Statut : Connecté",
    "statusConnecting": "Statut : Connexion en cours...",
    "statusConnectionFailed": "Statut : Échec de connexion",
    "statusConnectionLost": "Statut : Connexion perdue"
  },
  "streamIdMappings": {
    "title": "Correspondances des ID de flux",
    "addNewMappingButton": "Ajouter une nouvelle correspondance",
    "ruleTitle": "Règle de correspondance de flux",
    "streamIdPlaceholder": "ID de flux",
    "streamIdTooltip": "ID de flux VDO.Ninja",
    "labelPlaceholder": "Étiquette (optionnel)",
    "labelTooltip": "Étiquette de flux VDO.Ninja",
    "matchTypeTooltip": "Comment faire correspondre le flux",
    "matchType": {
        "idOnly": "ID uniquement",
        "labelOnly": "Étiquette uniquement",
        "bothRequired": "Les deux requis",
        "eitherMatch": "L'un ou l'autre"
    },
    "targetSceneTooltip": "Scène OBS cible",
    "selectSceneOption": "Sélectionnez une scène...",
    "removeRuleTooltip": "Supprimer cette règle de correspondance",
    "cloneToMainSceneLabel": "Cloner vers la scène principale",
    "switchToSceneOnAddLabel": "Basculer vers la scène lors de l'ajout",
    "ruleDescription": "Définir comment les flux entrants sont acheminés vers les scènes OBS."
  },
  "obsTargetSettings": {
    "title": "Paramètres de cible OBS",
    "sourceCreationScenesLabel": "Scènes pour la création de sources :",
    "sourceCreationScenesDesc": "Sélectionnez une ou plusieurs scènes. La première sera la principale, les autres pour la copie.",
    "loadingScenes": "Chargement des scènes...",
    "noScenesFound": "Aucune scène trouvée",
    "refetchScenesButton": "Recharger les scènes",
    "screenShareSettings": {
        "title": "Paramètres de partage d'écran :",
        "widthLabel": "Largeur :",
        "heightLabel": "Hauteur :",
        "resolutionNote": "Cette résolution sera utilisée pour les sources de partage d'écran dans les scènes avec une disposition 'Réaction'."
    },
    "autoAddSourcesLabel": "Ajouter automatiquement les nouveaux flux comme sources",
    "autoRemoveSourcesLabel": "Supprimer automatiquement les sources lors de la déconnexion",
    "newSourceSizing": {
        "label": "Dimensionnement par défaut des sources :",
        "defaultSizeOption": "Par défaut (1920x1080 à 0,0)",
        "bestFitOption": "Meilleur ajustement (Conserver le ratio)",
        "stretchToFillOption": "Étirer pour remplir l'écran",
        "overrideNote": "Les dispositions spécifiques définies dans la section \"Dispositions\" remplaceront celles-ci pour ces scènes."
    },
    "codec": {
        "label": "Codec :",
        "noneOption": "aucun",
        "learnMoreTitle": "En savoir plus sur les options de codec"
    }
  },
  "sceneLayouts": {
    "title": "Dispositions de scène",
    "addNewLayoutButton": "Ajouter une nouvelle disposition",
    "description": "Définir des dispositions automatiques pour des scènes OBS spécifiques. Celles-ci remplaceront le dimensionnement par défaut des sources pour les scènes configurées.",
    "sceneLabel": "Scène :",
    "selectSceneOption": "Sélectionner une scène...",
    "layoutLabel": "Disposition :",
    "selectLayoutOption": "Sélectionner une disposition...",
    "layoutTypes": {
        "grid": "Grille",
        "reaction": "Réaction",
        "highlight": "Surbrillance"
    },
    "noActiveLayouts": "Aucune disposition active",
    "removeLayoutTooltip": "Supprimer cette configuration de disposition",
    "sceneAlreadyConfiguredTooltip": "(Déjà utilisée)",
    "sceneAlreadyConfiguredAlert": "La scène '{{sceneName}}' est déjà utilisée par une autre configuration de disposition.",
    "controls": {
        "margin": "Marge",
        "spacing": "Espacement",
        "offsetX": "Décalage X",
        "offsetY": "Décalage Y",
        "gridSplitScreenTwoCameras": "Écran partagé pour 2 caméras (Grille)",
        "distributeCameras": "Distribuer les caméras (Réaction/Surbrillance)"
    }
  },
  "activeStreams": {
    "title": "Flux actifs",
    "noActiveStreams": "Aucun flux actif",
    "streamIdLabel": "ID : {{id}}",
    "labelLabel": "Étiquette : {{label}}",
    "targetSceneLabelText": "Scène cible : {{sceneName}}",
    "notSet": "Non défini",
    "defaultSceneTag": "par défaut",
    "mappedSceneTag": "associé",
    "addedToObs": "✓ Ajouté à OBS",
    "notInObs": "✗ Pas dans OBS",
    "buttons": {
        "addToObs": "Ajouter à OBS",
        "removeFromObs": "Retirer d'OBS",
        "highlight": "Surligner",
        "unhighlight": "Retirer la surbrillance",
        "screenShare": "Partage d'écran",
        "stopScreenShare": "Arrêter le partage"
    }
  },
  "log": {
    "title": "Journal"
  },
  "vdoNinja": {
    "defaultStreamLabel": "Flux {{id}}"
  },
  "logMessages": {
    "settingsSaved": "Paramètres enregistrés.",
    "settingsLoaded": "Paramètres chargés depuis localStorage.",
    "customCssChangedWillApplyToSource": "CSS personnalisé modifié. Il sera appliqué directement aux paramètres de source OBS lors de la prochaine création/mise à jour.",
    "errorLoadingSettings": "Erreur lors du chargement des paramètres depuis localStorage : {{message}}. Utilisation des valeurs par défaut.",
    "noSavedSettings": "Aucun paramètre enregistré trouvé. Utilisation des valeurs par défaut.",
    "appInitialized": "Panneau de Contrôle VDO.Ninja OBS initialisé. Bienvenue !",
    "jsShaLoaded": "Bibliothèque jsSHA chargée avec succès (solution de secours pour Web Crypto).",
    "errorLoadingJsSha": "Erreur : Échec du chargement de la bibliothèque jsSHA. L'authentification OBS pourrait échouer si Web Crypto est également indisponible.",
    "loadedStreamMappings": "{{count}} correspondances de flux chargées.",
    "errorLoadingStreamMappings": "Erreur lors du chargement des correspondances de flux depuis localStorage : {{message}}",
    "warningStreamMappingElementsNotFound": "Avertissement : Impossible de trouver tous les éléments attendus dans une interface de correspondance de flux.",
    "loadedLayoutConfigs": "{{count}} configurations de disposition de scène chargées.",
    "errorLoadingLayoutConfigs": "Erreur lors du chargement des configurations de disposition de scène : {{message}}",
    "savedLayoutConfigs": "{{count}} configurations de disposition de scène enregistrées.",
    "errorSavingLayoutsDuplicateScene": "Erreur lors de l'enregistrement des dispositions : La scène '{{sceneName}}' est configurée plusieurs fois. Assurez-vous que chaque scène n'a qu'une seule disposition.",
    "layoutSceneNotFound": "La scène enregistrée '{{sceneName}}' pour la disposition n'a pas été trouvée dans les scènes OBS actuelles.",
    "errorHidingSource": "Erreur lors du masquage de l'élément source {{sourceName}} dans {{sceneName}} : {{message}}",
    "sceneAlreadyConfiguredError": "La scène '{{sceneName}}' est déjà configurée pour une autre disposition. Annulation de la sélection.",
    "vdoNinja": {
        "disconnected": "Déconnecté de VDO.Ninja.",
        "alreadyConnected": "Déjà connecté à VDO.Ninja.",
        "errorRoomOrStreamIdNeeded": "Erreur VDO.Ninja : Le nom de salle ou le(s) ID(s) de flux doivent être fournis.",
        "connectionTimeout": "Délai de connexion VDO.Ninja dépassé. Aucune activité reçue de l'iframe.",
        "roomOrStreamIdNeededForConnect": "VDO.Ninja : Le nom de salle ou le(s) ID(s) de flux spécifiques doivent être fournis pour se connecter.",
        "streamIdsEmptyAfterTrim": "VDO.Ninja : Les IDs de flux fournis étaient vides après suppression des espaces.",
        "initializingIframe": "Initialisation de l'iframe VDO.Ninja avec l'URL : {{url}}",
        "invalidBaseUrl": "URL de base VDO.Ninja invalide dans les paramètres : {{url}}",
        "iframeConnectedActive": "Connexion iframe VDO.Ninja établie et active.",
        "streamConnectedActive": "Flux VDO.Ninja connecté/actif : \"{{label}}\" (ID : {{id}})",
        "autoAddingStream": "Ajout automatique du flux {{id}} à OBS.",
        "streamDisconnectedInactive": "Flux VDO.Ninja déconnecté/inactif : \"{{label}}\" (ID : {{id}})",
        "autoRemovingStream": "Suppression automatique du flux {{id}} d'OBS.",
        "streamLabelUpdated": "Étiquette de flux VDO.Ninja mise à jour pour l'ID {{id}} : \"{{newLabel}}\" (était \"{{oldLabel}}\")",
        "connectionLostResetting": "Connexion VDO.Ninja perdue (aucune activité de l'iframe). Tentative de réinitialisation."
    },
    "obs": {
        "disconnecting": "Déconnexion du WebSocket OBS...",
        "errorCameraPrefixRequired": "Erreur : Le préfixe général de caméra est requis pour la connexion OBS.",
        "errorUrlRequired": "Erreur : L'URL WebSocket OBS est requise.",
        "attemptingConnection": "Tentative de connexion au WebSocket OBS à {{url}}...",
        "connectionTimeout": "Délai de tentative de connexion WebSocket OBS dépassé.",
        "connectionOpenedWaitingHello": "Connexion WebSocket OBS ouverte. En attente du Hello du serveur...",
        "receivedHelloSendingIdentify": "Hello reçu d'OBS. Envoi de l'Identify...",
        "authDataPrepared": "Données d'authentification préparées pour le message Identify.",
        "warningAuthRequiredNoPassword": "Avertissement : Le serveur OBS nécessite une authentification, mais aucun mot de passe n'a été fourni.",
        "authSuccessConnected": "Authentification WebSocket OBS réussie ! Connexion établie.",
        "requestError": "Erreur de requête OBS (Type : {{type}}, ID : {{id}}) : {{error}} (Code : {{code}})",
        "eventSceneListChanged": "Événement OBS : La liste des scènes a changé. Rechargement des scènes.",
        "errorProcessingMessage": "Erreur lors du traitement du message WebSocket OBS : {{message}}. Données : {{data}}",
        "webSocketError": "Erreur WebSocket OBS : {{error}}",
        "authFailedReason": "Échec de l'authentification - mot de passe incorrect ou authentification requise et non fournie.",
        "connectionClosedReasonCode": "Code : {{code}}{{wasClean}}",
        "uncleanDisconnection": " (Déconnexion non propre)",
        "connectionClosed": "Connexion WebSocket OBS fermée. Raison : {{reason}}",
        "errorCreatingConnection": "Erreur lors de la création de la connexion WebSocket OBS : {{message}}",
        "authGenerationError": "Erreur de génération d'authentification OBS : {{message}}",
        "cannotSendRequestNotConnected": "Impossible d'envoyer la requête '{{requestType}}' : Non connecté à OBS.",
        "errorSendingRequest": "Erreur lors de l'envoi de la requête OBS '{{requestType}}' : {{message}}",
        "requestTimeout": "Délai dépassé pour la requête OBS '{{requestType}}' (ID : {{id}}).",
        "connectionEstablishedFetchingData": "Connexion OBS entièrement établie. Récupération des données initiales...",
        "errorPostConnectionSetup": "Erreur lors de la configuration post-connexion OBS (récupération des scènes) : {{message}}",
        "connectionClosedOrLost": "La connexion OBS a été fermée ou perdue.",
        "cannotFetchScenesNotConnected": "Impossible de récupérer les scènes OBS : Non connecté à OBS.",
        "fetchingScenes": "Récupération des scènes OBS...",
        "fetchedScenesCount": "{{count}} scènes récupérées depuis OBS.",
        "failedToFetchScenes": "Échec de la récupération des scènes OBS ou aucune scène retournée.",
        "errorFetchingScenes": "Erreur lors de la récupération des scènes OBS : {{message}}",
        "cannotHighlightNotConnected": "Impossible de surligner : Non connecté à OBS.",
        "highlightLayoutActiveManualLegacy": "La scène '{{sceneName}}' utilise la nouvelle disposition Surbrillance. Le bouton de surbrillance manuel peut avoir un effet limité ou être remplacé.",
        "stoppingScreenShareForHighlight": "Un partage d'écran est actif ({{id}}). Arrêt avant la mise en surbrillance.",
        "cannotScreenShareNotConnected": "Impossible de démarrer le partage d'écran : Non connecté à OBS.",
        "unhighlightingForScreenShare": "Une caméra est en surbrillance ({{id}}). Retrait de la surbrillance avant de démarrer le partage d'écran.",
        "cannotAddScreenShareNotConnected": "Impossible d'ajouter le partage d'écran : Non connecté à OBS.",
        "cannotAddScreenShareNoRoom": "Impossible d'ajouter le partage d'écran : Le nom de salle VDO.Ninja est requis pour les URLs de partage d'écran.",
        "cannotAddScreenShareNoReactionLayoutScene": "Impossible d'ajouter le partage d'écran : Aucune scène n'est configurée avec une disposition 'Réaction'.",
        "addingUpdatingScreenShareToReactionScenes": "Ajout/Mise à jour de la source de partage d'écran '{{sourceName}}' (URL : {{url}}) aux scènes Réaction. Création principale dans '{{primaryScene}}'. ({{count}} scènes au total)",
        "reconfiguringExistingScreenShare": "Reconfiguration de la source de partage d'écran existante '{{oldName}}' pour devenir '{{newName}}'.",
        "reconfiguredRenamedScreenShare": "Source de partage d'écran existante reconfigurée et renommée en '{{sourceName}}'.",
        "screenShareExistsUpdating": "La source de partage d'écran '{{sourceName}}' existe déjà. Mise à jour de ses paramètres.",
        "creatingNewScreenShareInScene": "Création d'une nouvelle source de partage d'écran '{{sourceName}}' dans la scène '{{sceneName}}'.",
        "ensuredTransformedScreenShareReaction": "Source de partage d'écran '{{sourceName}}' assurée et transformée dans la scène Réaction '{{sceneName}}'.",
        "sourceFoundInSceneEnabled": "Source '{{sourceName}}' trouvée dans la scène '{{sceneName}}', ID d'élément : {{itemId}}. Vérification qu'elle est activée.",
        "sourceAddedToScene": "Source '{{sourceName}}' ajoutée à la scène '{{sceneName}}', ID d'élément : {{itemId}}.",
        "errorCreatingSceneItem": "Erreur lors de la création de l'élément de scène pour '{{sourceName}}' dans '{{sceneName}}' : {{message}}",
        "errorCheckingSceneForItem": "Erreur lors de la vérification de '{{sourceName}}' dans la scène '{{sceneName}}' : {{message}}",
        "errorApplyingInitialTransform": "Erreur lors de l'application de la transformation par défaut initiale à '{{sourceName}}' dans '{{sceneName}}' : {{message}}",
        "successConfigScreenShare": "Partage d'écran configuré avec succès pour le flux {{streamId}} ({{label}}).",
        "errorAddingUpdatingScreenShare": "Erreur lors de l'ajout/mise à jour de la source de partage d'écran '{{sourceName}}' : {{message}}.",
        "cannotToggleHighlightNotConnected": "Impossible de basculer la surbrillance : Non connecté à OBS.",
        "streamUnhighlighted": "Flux {{id}} non surligné (renommé de {{oldName}} à {{newName}}).",
        "streamSuccessfullyUnhighlighted": "Flux {{id}} non surligné avec succès (renommé en {{newName}}).",
        "streamSuccessfullyHighlighted": "Flux {{id}} surligné avec succès (renommé en {{newName}}).",
        "unhighlightError": "Impossible de retirer la surbrillance (renommer) {{sourceName}}, il pourrait ne pas exister ou autre erreur : {{message}}",
        "highlightError": "Impossible de surligner (renommer) {{sourceName}}, il pourrait ne pas exister ou autre erreur : {{message}}",
        "legacyHighlightUnhighlightOnRemove": "Le flux {{id}} était surligné (ancien système). Retrait de la surbrillance.",
        "cannotAddStreamNotConnected": "Impossible d'ajouter le flux \"{{label}}\" ({{id}}) à OBS : Non connecté à OBS.",
        "cannotAddStreamNoTargetSceneName": "Impossible d'ajouter le flux \"{{label}}\" ({{id}}) : Le nom de la scène OBS cible est requis mais non défini (pas de défaut ni de correspondance).",
        "foundExistingStandardSource": "Source standard existante '{{sourceName}}' trouvée pour le flux {{streamId}}.",
        "foundExistingHighlightForConnectingStream": "Source OBS existante '{{sourceName}}' trouvée qui correspond au nommage de surbrillance pour le flux connecté {{streamId}}. Mise à jour de l'état de surbrillance interne.",
        "foundExistingHighlightedSource": "Source surlignée existante '{{sourceName}}' trouvée pour le flux {{streamId}}.",
        "noExistingSourceFoundWillCreate": "Ni la source standard ('{{baseSourceName}}') ni la source surlignée ('{{highlightedSourceName}}') n'ont été trouvées pour le flux {{streamId}}. Création d'une nouvelle.",
        "noExistingStandardSourceSamePrefix": "Source standard '{{sourceName}}' non trouvée pour le flux {{streamId}} (le préfixe de surbrillance est identique). Création d'une nouvelle.",
        "errorGettingCanvasSize": "Erreur lors de l'obtention de la taille du canvas OBS : {{message}}. Utilisation par défaut de {{width}}x{{height}}.",
        "sourceNotGlobalCreating": "La source '{{sourceName}}' n'existe pas globalement. Création dans la scène '{{sceneName}}'.",
        "sourceCreatedAddedToScene": "Source '{{sourceName}}' créée et ajoutée à la scène '{{sceneName}}'.",
        "sourceGlobalUpdatingWithUrl": "La source '{{sourceName}}' existe déjà globalement. Mise à jour de ses paramètres. URL : {{url}}",
        "sourceFoundAsItemInScene": "Source '{{sourceName}}' trouvée comme élément dans la scène '{{sceneName}}'.",
        "sourceNotInSceneAdding": "Source '{{sourceName}}' pas dans la scène '{{sceneName}}'. Ajout en cours.",
        "cloningToMainScene": "Clonage de la source '{{sourceName}}' vers la scène principale (depuis les cases cochées) '{{sceneName}}' en raison de la règle de correspondance.",
        "addingSourceToOtherScene": "Ajout de la source '{{sourceName}}' comme élément à l'autre scène sélectionnée '{{sceneName}}'.",
        "switchingProgramScene": "Basculement de la scène de programme OBS actuelle vers '{{sceneName}}'.",
        "successfullyProcessedStream": "Flux \"{{label}}\" ({{id}}) traité avec succès, source OBS effective : '{{sourceName}}'.",
        "errorManagingStream": "Erreur lors de la gestion du flux '{{sourceName}}' (\"{{label}}\") dans OBS : {{message}}",
        "applyTransformAndGridCalled": "applyTransformAndGrid appelé pour {{sourceName}} dans {{sceneName}}. Déclenchement de la mise à jour complète de la disposition pour la scène.",
        "triggeringLayoutUpdate": "Déclenchement de la mise à jour de la disposition pour la scène '{{sceneName}}'...",
        "gridFallbackSourceChanged": "Les paramètres de grille pour '{{sourceGridScene}}' (candidat principal de secours) ont changé. Déclenchement de la mise à jour pour la scène Réaction/Surbrillance '{{dependentScene}}'.",
        "noSceneItemsForLayout": "Aucun élément de scène trouvé dans la scène '{{sceneName}}' pour la mise à jour de la disposition.",
        "applyingConfiguredLayout": "Application de la disposition '{{layoutType}}' à la scène '{{sceneName}}'. ({{count}} éléments)",
        "unknownLayoutType": "Type de disposition '{{layoutType}}' inconnu pour la scène '{{sceneName}}'. Application du dimensionnement par défaut.",
        "noSpecificLayoutApplyingDefault": "Pas de disposition spécifique pour la scène '{{sceneName}}'. Application du dimensionnement par défaut des sources ('{{sizing}}').",
        "errorTriggeringLayoutUpdate": "Erreur lors de la mise à jour de la disposition pour la scène '{{sceneName}}' : {{message}}",
        "applyingDefaultSizing": "Application du dimensionnement par défaut des sources ('{{sizing}}') à {{count}} éléments dans la scène '{{sceneName}}'.",
        "errorApplyingDefaultTransformItem": "Erreur lors de l'application de la transformation par défaut à {{sourceName}} dans {{sceneName}} : {{message}}",
        "noSourcesForGridLayout": "Aucune source de caméra VDO.Ninja pour appliquer la disposition Grille dans la scène '{{sceneName}}'.",
        "applyingGridLayoutScene": "Application de la disposition Grille à {{count}} sources de caméra VDO.Ninja dans la scène '{{sceneName}}'.",
        "applyingGridSplitScreen": "Application de la disposition grille à écran partagé 2 caméras à la scène '{{sceneName}}'.",
        "reactionMainNotFoundFallbackGrid": "Contenu principal pour la disposition Réaction dans la scène '{{sceneName}}' non trouvé/visible. Application de la grille de caméras de secours.",
        "highlightMainNotFoundFallbackGrid": "Contenu principal pour la disposition Surbrillance dans la scène '{{sceneName}}' non trouvé/visible. Application de la grille de caméras de secours.",
        "usingGridSceneFallbackSettings": "Utilisation des paramètres de grille de la première scène de disposition 'Grille' configurée ('{{sceneName}}') comme secours pour '{{targetScene}}'.",
        "usingDefaultGridFallbackSettings": "Aucune scène de disposition 'Grille' trouvée. Utilisation des paramètres de grille par défaut comme secours pour '{{targetScene}}'.",
        "applyingFallbackGridToCameras": "Application de la disposition Grille de secours à {{count}} sources de caméra dans la scène '{{sceneName}}'.",
        "noCamerasForFallbackGridHidingAll": "Aucun élément de caméra à afficher dans la grille de secours pour la scène '{{sceneName}}'. Toutes les sources VDO dans cette scène seront masquées.",
        "cannotRemoveStreamNotConnected": "Impossible de retirer le flux {{id}} d'OBS : Non connecté à OBS.",
        "triggeredRemoval": "Suppression déclenchée par l'utilisateur ou automatique du flux '{{id}}' d'OBS. Source de base : '{{baseName}}'.",
        "streamScreenSharingRemoving": "Le flux {{id}} partageait activement l'écran. Lancement de la suppression du partage d'écran.",
        "finishedRemovingSourceItems": "Suppression terminée des éléments source pour le flux {{id}} des scènes OBS spécifiées.",
        "cannotRemoveScreenShareNotConnected": "Impossible de retirer le partage d'écran : Non connecté à OBS.",
        "attemptingRemoveScreenShareSource": "Tentative de suppression complète de la source de partage d'écran '{{sourceName}}' d'OBS (toutes les scènes et entrée).",
        "removingGlobalInput": "Suppression de l'entrée globale '{{sourceName}}' d'OBS.",
        "successfullyRemovedInput": "Entrée '{{sourceName}}' supprimée avec succès.",
        "errorScreenShareRemovalProcess": "Erreur lors du processus de suppression du partage d'écran pour '{{sourceName}}' : {{message}}",
        "removingSourceItemFromScene": "Suppression de l'élément source '{{sourceName}}' (ID : {{itemId}}) de la scène '{{sceneName}}'.",
        "errorTryingRemoveSourceItem": "Erreur lors de la tentative de suppression de l'élément source '{{sourceName}}' de la scène '{{sceneName}}' : {{message}}",
        "codecChangedUpdatingSources": "Codec changé en : {{codec}}. Mise à jour des sources OBS...",
        "codecChangedNotConnected": "OBS n'est pas connecté. Les sources ne seront pas mises à jour avec le nouveau codec jusqu'à la reconnexion et une nouvelle action.",
        "sourceUpdatedWithUrlAndCss": "Source '{{sourceName}}' mise à jour avec l'URL : {{url}} et CSS personnalisé.",
        "screenShareSourceUpdatedWithUrlAndCss": "Source de partage d'écran '{{sourceName}}' mise à jour avec l'URL : {{url}} et CSS personnalisé.",
        "codecUpdateComplete": "Mise à jour du codec pour les sources OBS terminée.",
        "codecCssUpdateComplete": "Mise à jour du codec/CSS pour les sources OBS terminée.",
        "inputNameChanged": "Événement OBS : Le nom d'entrée a changé de '{{oldName}}' à '{{newName}}'. Vérification des scènes pertinentes pour les mises à jour de disposition.",
        "foundPreExistingHighlight": "Source surlignée préexistante trouvée dans OBS : '{{sourceName}}'. Définition de la surbrillance active sur l'ID de flux : {{streamId}}.",
        "errorCheckingMainContentEnabled": "Erreur lors de la vérification si le contenu principal {{sourceName}} est activé : {{message}}"
    }
  }
}