diff --git a/lang/fr.json b/lang/fr.json new file mode 100644 index 0000000..d727d28 --- /dev/null +++ b/lang/fr.json @@ -0,0 +1,217 @@ +{ + "scrying-pool": { + "badge": { + "state": { + "hidden": "Masqué de la table", + "self-muted": "Caméra en pause", + "offline": "Non connecté", + "cam-lost": "Caméra indisponible", + "reconnecting": "Rejoindre la vue", + "never-connected": "Pas encore connecté", + "ghost": "Quitte la session" + } + }, + "firstEncounterPanel": { + "title": "Votre visibilité caméra a changé.", + "body": "L'audio continue normalement.", + "gotIt": "Compris" + }, + "detailsPanel": { + "close": "Fermer", + "audienceSuppressed": "Les autres joueurs ne peuvent pas voir votre flux", + "staleData": "Les données peuvent être obsolètes", + "audioReassurance": "Votre audio est actif pour tous les participants." + }, + "notifications": { + "gmHid": "Le MJ a masqué la caméra de {name}", + "gmShowed": "Le MJ a affiché la caméra de {name}", + "personalHidden": "Le MJ a masqué votre caméra. Votre portrait est affiché aux autres participants.", + "personalShowed": "Votre caméra est maintenant visible à la table.", + "avConfigGMOnly": "Les paramètres audio/vidéo sont gérés par le MJ.", + "AVDisabled": "L'audio/vidéo n'est pas disponible dans cette instance de FoundryVTT. Les fonctionnalités de contrôle caméra de Scrying Pool sont désactivées." + }, + "settings": { + "showGMSelfFeed": { + "label": "Afficher le flux du MJ", + "hint": "Lorsque activé, le propre flux caméra du MJ est affiché dans la barre Scrying Pool." + }, + "notificationVerbosity": { + "label": "Verbosité des notifications", + "hint": "Contrôle quelles notifications de changement d'état de caméra vous voyez. 'Toutes' affiche chaque changement ; 'MJ uniquement' affiche uniquement les changements pour le MJ et le participant concerné ; 'Silencieux' supprime toutes les notifications sauf vos propres changements de caméra.", + "choices": { + "all": "Toutes", + "gm-only": "MJ uniquement", + "silent": "Silencieux" + } + } + }, + "directorsBoard": { + "title": "Tableau du Réalisateur", + "close": "Fermer", + "empty": "Aucun participant connecté.", + "openButton": "Ouvrir le Tableau du Réalisateur", + "dockLayout": { + "label": "Disposition de la vue", + "vertical-sm": "Verticale petite", + "vertical-md": "Verticale grande", + "horizontal-sm": "Horizontale petite", + "horizontal-md": "Horizontale grande", + "mosaic-sm": "Mosaïque petite", + "mosaic-md": "Mosaïque grande" + }, + "widgetWidth": { + "label": "Largeurs des widgets vidéo", + "small": "Petite :", + "large": "Grande :" + }, + "footer": { + "savePreset": "Sauvegarder la disposition", + "loadPreset": "Charger la disposition", + "exportPresets": "Exporter", + "importPresets": "Importer", + "autoApplySettings": "Application auto...", + "avModeEnable": "Activer A/V", + "avModeDisable": "Désactiver A/V", + "avConfig": "Paramètres A/V...", + "avConfigTitle": "Ouvrir les paramètres du serveur A/V de Foundry (serveur de signalisation, LiveKit, etc.)" + }, + "bulk": { + "showAll": "Tout afficher", + "hideAll": "Tout masquer", + "undo": "Annuler", + "restore": "Rétablir", + "spotlight": "Mettre en avant" + }, + "shortcuts": { + "title": "Raccourcis clavier", + "openBoard": "Ouvrir/Fermer le tableau", + "showAll": "Afficher tous les participants", + "hideAll": "Masquer tous les participants", + "spotlight": "Mettre le participant sélectionné en avant", + "openPanel": "Ouvrir la référence des raccourcis" + } + }, + "keybindings": { + "showAll": { + "name": "Afficher tous les participants", + "hint": "Définir tous les flux des participants non-fantômes sur visible" + }, + "hideAll": { + "name": "Masquer tous les participants", + "hint": "Définir tous les flux des participants non-fantômes sur masqué" + }, + "spotlightParticipant": { + "name": "Mettre le participant en avant", + "hint": "Affiche le participant sélectionné et masques tous les autres" + } + }, + "presets": { + "save": { + "saveButton": "Sauvegarder la disposition", + "cancelButton": "Annuler", + "title": "Sauvegarder la disposition caméra", + "nameLabel": "Nom de la disposition", + "namePlaceholder": "ex. Combat, Jeu de rôle, Introduction...", + "descriptionHint": "Sauvegarde la disposition actuelle de visibilité des caméras pour tous les participants." + }, + "load": { + "loadButton": "Charger", + "cancelButton": "Annuler", + "title": "Charger la disposition caméra", + "emptyMessage": "Aucune disposition sauvegardée pour l'instant. Utilisez 'Sauvegarder la disposition' pour en créer une." + }, + "notifications": { + "saved": "Disposition '{name}' sauvegardée.", + "applied": "Disposition '{name}' appliquée.", + "scene-applied": "Scène changée : disposition caméra mise à jour" + } + }, + "scenePresetPanel": { + "title": "Paramètres d'application automatique", + "enableAutoApply": "Activer l'application automatique", + "preset": "Disposition", + "selectPreset": "Sélectionner une disposition...", + "preDelay": "Pré-délai", + "globalSettingsHint": "L'application automatique peut aussi être activée/désactivée globalement dans les paramètres du module.", + "noScene": "Aucune scène n'est actuellement active.", + "notifications": { + "enabled": "Application automatique activée pour cette scène.", + "disabled": "Application automatique désactivée pour cette scène.", + "presetSelected": "Disposition d'application automatique définie sur : {name}" + } + }, + "presetExport": { + "title": "Exporter les dispositions caméra", + "description": "Téléchargez toutes les dispositions caméra sous forme de fichier JSON pouvant être importé dans un autre monde.", + "scene": "Scène", + "presetCount": "Dispositions", + "filename": "Nom du fichier", + "export": "Exporter", + "cancel": "Annuler", + "exporting": "Exportation en cours...", + "exportSuccess": "Dispositions caméra exportées avec succès.", + "exportFailed": "Échec de l'export des dispositions" + }, + "presetImport": { + "title": "Importer les dispositions caméra", + "description": "Chargez un fichier JSON contenant des dispositions caméra à ajouter à cette scène.", + "selectFile": "Sélectionner un fichier", + "chooseFile": "Choisir un fichier JSON...", + "importMode": "Mode d'import", + "importModeMerge": "Fusionner", + "importModeReplace": "Remplacer", + "importModeMergeHint": "Ajoute de nouvelles dispositions, ignore les doublons", + "importModeReplaceHint": "Supprime toutes les dispositions existantes et importe les nouvelles", + "previewTitle": "Aperçu", + "previewWillImport": "Va importer", + "previewWillSkip": "Va ignorer (déjà existe)", + "import": "Importer", + "confirmReplace": "Remplacer tout", + "cancel": "Annuler", + "importing": "Importation en cours...", + "importFailed": "Échec de l'import des dispositions", + "selectFileFirst": "Veuillez sélectionner un fichier d'abord", + "existingPresetsWarning": "Cette scène a {existingPresetCount} disposition(s) existante(s).", + "replaceConfirmation": "Cela va supprimer toutes les {existingPresetCount} disposition(s) existante(s) et les remplacer par les nouvelles. Cette action ne peut pas être annulée." + } + }, + "SCRYING_POOL": { + "UnknownScene": "Scène inconnue", + "firstBadgeEncounter": "Première rencontre avec le badge", + "PrivacyPanel": { + "title": "Panneau de confidentialité du joueur", + "sectionHeader": "Consentements d'automatisation", + "sectionDescription": "Contrôlez quelles fonctionnalités d'automatisation peuvent affecter votre caméra et votre présence à l'écran.", + "reactionCamLabel": "Caméra de réaction", + "reactionCamDescription": "Affiche automatiquement votre caméra pendant les moments clés (combats, jets de dés, etc.)", + "toggleOn": "Activé", + "toggleOff": "Désactivé", + "readOnlyNotice": "Les paramètres de confidentialité de ce joueur sont en lecture seule. Vous ne pouvez pas modifier les préférences de consentement d'un autre joueur.", + "savedNotification": "Paramètres de confidentialité sauvegardés", + "saveError": "Échec de la sauvegarde des paramètres de confidentialité", + "portraitFallbackLabel": "Portrait de secours", + "portraitFallbackDescription": "Image à afficher lorsque votre caméra n'est pas disponible ou ne fonctionne pas.", + "chooseImageLabel": "Choisir une image", + "removeImageLabel": "Supprimer l'image personnalisée", + "removeImageConfirm": "Êtes-vous sûr de vouloir supprimer votre portrait personnalisé ? Votre avatar FoundryVTT sera utilisé à la place.", + "portraitSaved": "Portrait mis à jour avec succès", + "portraitRemoved": "Portrait personnalisé supprimé", + "portraitErrorUnsupported": "Format non pris en charge. Veuillez utiliser PNG, JPG, WEBP ou GIF statique.", + "portraitErrorTooLarge": "L'image est trop volumineuse. Veuillez utiliser une image de moins de 5 Mo.", + "portraitErrorInvalid": "Fichier image invalide. Veuillez en essayer un autre." + }, + "Settings": { + "PlayerPrivacyPanel": "Panneau de confidentialité du joueur", + "PlayerPrivacyPanelLabel": "Contrôlez les effets d'automatisation sur votre caméra", + "PlayerPrivacyPanelHint": "Acceptez ou refusez les fonctionnalités Caméra de réaction et autres automatisations", + "GMPlayerPrivacySelector": "Voir les paramètres de confidentialité du joueur", + "GMPlayerPrivacySelectorLabel": "Voir et gérer les paramètres de consentement de confidentialité des joueurs", + "GMPlayerPrivacySelectorHint": "Sélectionnez un joueur pour voir ses préférences de consentement d'automatisation (lecture seule)", + "Title": "Paramètres Scrying Pool", + "Hint": "Configurer le comportement du module Scrying Pool", + "StripStatus": "État de la barre", + "ReopenStrip": "Ouvrir la barre", + "CloseStrip": "Fermer la barre" + } + } +} diff --git a/module.json b/module.json index f37671a..7428012 100644 --- a/module.json +++ b/module.json @@ -23,10 +23,13 @@ "lang": "en", "name": "English", "path": "lang/en.json" + }, + { + "lang": "fr", + "name": "French", + "path": "lang/fr.json" } ], - "packs": [ - ], "url": "${url}", "manifest": "${manifest}", "download": "${download}",