Files
scrying-pool/lang/en.json
T
uberwald 6bbde5c1cf
CI / ci (push) Successful in 46s
Add settings panel with strip reopen button and AV disabled notification
Features:
- Added ScryingPoolSettings application with reopen/close strip buttons
- Registered settings menu in module settings (GM only)
- Added template for settings panel with styled buttons
- Added translations for settings UI
- Added info notification when AV is not available

Files:
- src/ui/gm/ScryingPoolSettings.js: New settings application
- templates/settings.hbs: Settings panel template
- lang/en.json: Added translations
- module.js: Registered settings menu and AV notification

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-05-25 15:57:58 +02:00

218 lines
8.7 KiB
JSON

{
"scrying-pool": {
"badge": {
"state": {
"hidden": "Hidden from table",
"self-muted": "Camera paused",
"offline": "Not connected",
"cam-lost": "Camera unavailable",
"reconnecting": "Rejoining view",
"never-connected": "Not yet connected",
"ghost": "Leaving"
}
},
"firstEncounterPanel": {
"title": "Your camera visibility changed.",
"body": "Audio continues normally.",
"gotIt": "Got it"
},
"detailsPanel": {
"close": "Close",
"audienceSuppressed": "Other players cannot see your feed",
"staleData": "Data may be outdated",
"audioReassurance": "Your audio is active for all participants."
},
"notifications": {
"gmHid": "GM hid {name}'s camera",
"gmShowed": "GM showed {name}'s camera",
"personalHidden": "GM has hidden your camera. Your portrait is shown to other Participants.",
"personalShowed": "Your camera is now visible to the table.",
"avConfigGMOnly": "A/V settings are managed by the GM.",
"AVDisabled": "Audio/Video is not available in this FoundryVTT instance. Scrying Pool camera control features are disabled."
},
"settings": {
"showGMSelfFeed": {
"label": "Show GM Self Feed",
"hint": "When enabled, the GM's own camera feed is shown in the Scrying Pool strip."
},
"notificationVerbosity": {
"label": "Notification Verbosity",
"hint": "Controls which camera-state notifications you see. 'All' shows every change; 'GM Only' shows changes only to the GM and affected participant; 'Silent' suppresses all notifications except your own camera changes.",
"choices": {
"all": "All",
"gm-only": "GM Only",
"silent": "Silent"
}
}
},
"directorsBoard": {
"title": "Director's Board",
"close": "Close",
"empty": "No participants connected.",
"openButton": "Open Director's Board",
"dockLayout": {
"label": "View Layout",
"vertical-sm": "Vertical Small",
"vertical-md": "Vertical Large",
"horizontal-sm": "Horizontal Small",
"horizontal-md": "Horizontal Large",
"mosaic-sm": "Mosaic Small",
"mosaic-md": "Mosaic Large"
},
"widgetWidth": {
"label": "Video Widget Widths",
"small": "Small:",
"large": "Large:"
},
"footer": {
"savePreset": "Save Layout",
"loadPreset": "Load Layout",
"exportPresets": "Export",
"importPresets": "Import",
"autoApplySettings": "Auto-Apply…",
"avModeEnable": "Enable A/V",
"avModeDisable": "Disable A/V",
"avConfig": "A/V Settings…",
"avConfigTitle": "Open Foundry A/V server settings (signaling server, LiveKit, etc.)"
},
"bulk": {
"showAll": "Show All",
"hideAll": "Hide All",
"undo": "Undo",
"restore": "Restore",
"spotlight": "Spotlight"
},
"shortcuts": {
"title": "Keyboard Shortcuts",
"openBoard": "Open/Close Board",
"showAll": "Show All Participants",
"hideAll": "Hide All Participants",
"spotlight": "Spotlight Focused Participant",
"openPanel": "Open Shortcut Reference"
}
},
"keybindings": {
"showAll": {
"name": "Show All Participants",
"hint": "Sets all non-ghost participant feeds to visible"
},
"hideAll": {
"name": "Hide All Participants",
"hint": "Sets all non-ghost participant feeds to hidden"
},
"spotlightParticipant": {
"name": "Spotlight Focused Participant",
"hint": "Shows the focused participant and hides all others"
}
},
"presets": {
"save": {
"saveButton": "Save Layout",
"cancelButton": "Cancel",
"title": "Save Camera Layout",
"nameLabel": "Layout Name",
"namePlaceholder": "e.g. Combat, Roleplay, Intro…",
"descriptionHint": "Saves the current camera visibility layout for all participants."
},
"load": {
"loadButton": "Load",
"cancelButton": "Cancel",
"title": "Load Camera Layout",
"emptyMessage": "No layouts saved yet. Use 'Save Layout' to create one."
},
"notifications": {
"saved": "Layout '{name}' saved.",
"applied": "Layout '{name}' applied.",
"scene-applied": "Scene changed: camera layout updated"
}
},
"scenePresetPanel": {
"title": "Auto-Apply Settings",
"enableAutoApply": "Enable Auto-Apply",
"preset": "Layout",
"selectPreset": "Select a layout…",
"preDelay": "Pre-Delay",
"globalSettingsHint": "Auto-apply can also be toggled globally in module settings.",
"noScene": "No scene is currently active.",
"notifications": {
"enabled": "Auto-Apply enabled for this scene.",
"disabled": "Auto-Apply disabled for this scene.",
"presetSelected": "Auto-Apply layout set to: {name}"
}
},
"presetExport": {
"title": "Export Camera Layouts",
"description": "Download all camera layouts as a JSON file that can be imported into another world.",
"scene": "Scene",
"presetCount": "Layouts",
"filename": "Filename",
"export": "Export",
"cancel": "Cancel",
"exporting": "Exporting…",
"exportSuccess": "Camera layouts exported successfully.",
"exportFailed": "Failed to export layouts"
},
"presetImport": {
"title": "Import Camera Layouts",
"description": "Upload a JSON file containing camera layouts to add to this scene.",
"selectFile": "Select File",
"chooseFile": "Choose a JSON file…",
"importMode": "Import Mode",
"importModeMerge": "Merge",
"importModeReplace": "Replace",
"importModeMergeHint": "Add new layouts, skip duplicates",
"importModeReplaceHint": "Delete all existing layouts and import new ones",
"previewTitle": "Preview",
"previewWillImport": "Will import",
"previewWillSkip": "Will skip (already exists)",
"import": "Import",
"confirmReplace": "Replace All",
"cancel": "Cancel",
"importing": "Importing…",
"importFailed": "Failed to import layouts",
"selectFileFirst": "Please select a file first",
"existingPresetsWarning": "This scene has {existingPresetCount} existing layout(s).",
"replaceConfirmation": "This will delete all {existingPresetCount} existing layout(s) and replace them with the imported ones. This cannot be undone."
}
},
"SCRYING_POOL": {
"UnknownScene": "Unknown Scene",
"firstBadgeEncounter": "First Badge Encounter",
"PrivacyPanel": {
"title": "Player Privacy Panel",
"sectionHeader": "Automation Opt-ins",
"sectionDescription": "Control which automation features can affect your camera and on-screen presence.",
"reactionCamLabel": "Reaction Cam",
"reactionCamDescription": "Automatically show your camera during key moments (combat, rolls, etc.)",
"toggleOn": "Enabled",
"toggleOff": "Disabled",
"readOnlyNotice": "This player's privacy settings are read-only. You cannot modify another player's consent preferences.",
"savedNotification": "Privacy settings saved",
"saveError": "Failed to save privacy settings",
"portraitFallbackLabel": "Portrait Fallback",
"portraitFallbackDescription": "Image to display when your camera is unavailable or not working.",
"chooseImageLabel": "Choose Image",
"removeImageLabel": "Remove custom image",
"removeImageConfirm": "Are you sure you want to remove your custom portrait? Your FoundryVTT avatar will be used instead.",
"portraitSaved": "Portrait updated successfully",
"portraitRemoved": "Custom portrait removed",
"portraitErrorUnsupported": "Unsupported format. Please use PNG, JPG, WEBP, or static GIF.",
"portraitErrorTooLarge": "Image is too large. Please use an image under 5MB.",
"portraitErrorInvalid": "Invalid image file. Please try another."
},
"Settings": {
"PlayerPrivacyPanel": "Player Privacy Panel",
"PlayerPrivacyPanelLabel": "Control automation effects for your camera",
"PlayerPrivacyPanelHint": "Opt in or out of Reaction Cam and other automation features",
"GMPlayerPrivacySelector": "View Player Privacy Settings",
"GMPlayerPrivacySelectorLabel": "View and manage player privacy consent settings",
"GMPlayerPrivacySelectorHint": "Select a player to view their automation opt-in preferences (read-only)",
"Title": "Scrying Pool Settings",
"Hint": "Configure Scrying Pool module behavior",
"StripStatus": "Strip Status",
"ReopenStrip": "Open Strip",
"CloseStrip": "Close Strip"
}
}
}