{
  "common": {
    "save": "Save",
    "cancel": "Cancel",
    "delete": "Delete",
    "edit": "Edit",
    "create": "Create",
    "close": "Close",
    "dismiss": "Dismiss",
    "loading": "Loading...",
    "refresh": "Refresh",
    "all": "All",
    "name": "Name",
    "description": "Description",
    "status": "Status",
    "type": "Type",
    "error": "Error",
    "success": "Success",
    "confirm": "Confirm",
    "yes": "Yes",
    "no": "No",
    "online": "online",
    "offline": "offline",
    "connected": "Connected",
    "disconnected": "Disconnected",
    "search": "Search",
    "noResults": "No results found",
    "continue": "Continue",
    "back": "Back",
    "done": "Done"
  },
  "nav": {
    "chat": "Chat",
    "knowledge": "Knowledge",
    "tasks": "Tasks",
    "cameras": "Cameras",
    "rooms": "Rooms",
    "speakers": "Speakers",
    "smarthome": "Smart Home",
    "plugins": "Plugins",
    "integrations": "Integrations",
    "users": "Users",
    "roles": "Roles",
    "satellites": "Satellites",
    "presence": "Presence",
    "knowledgeGraph": "Knowledge Graph",
    "memory": "Memories",
    "brain": "Second Brain",
    "brainReview": "Review",
    "federationAudit": "Federation log",
    "circles": "Circles",
    "intents": "Intents",
    "routingDashboard": "Routing Dashboard",
    "maintenance": "Maintenance",
    "paperlessAudit": "Paperless Audit",
    "settings": "Settings",
    "admin": "Admin",
    "skipToContent": "Skip to content",
    "openMenu": "Open menu",
    "closeMenu": "Close menu",
    "mainNavigation": "Main navigation",
    "wissensbasis": "Wissensbasis"
  },
  "auth": {
    "login": "Login",
    "logout": "Logout",
    "register": "Register",
    "signIn": "Sign In",
    "signOut": "Sign Out",
    "signInToAccount": "Sign in to your account",
    "username": "Username",
    "password": "Password",
    "enterUsername": "Enter your username",
    "enterPassword": "Enter your password",
    "loginFailed": "Login failed. Please check your credentials.",
    "enterCredentials": "Please enter username and password",
    "dontHaveAccount": "Don't have an account?",
    "createOne": "Create one",
    "loggedInAs": "Logged in as",
    "personalAssistant": "Personal AI Assistant",
    "createYourAccount": "Create your account",
    "accountCreatedSuccess": "Account created successfully!",
    "redirectingToLogin": "Redirecting to login...",
    "fillAllRequiredFields": "Please fill in all required fields",
    "usernameTooShort": "Username must be at least 3 characters",
    "passwordTooShort": "Password must be at least 8 characters",
    "passwordsDoNotMatch": "Passwords do not match",
    "registrationFailed": "Registration failed. Please try again.",
    "chooseUsername": "Choose a username",
    "createPassword": "Create a password",
    "confirmPassword": "Confirm Password",
    "confirmYourPassword": "Confirm your password",
    "atLeast3Chars": "At least 3 characters",
    "atLeast8Chars": "At least 8 characters",
    "email": "Email",
    "emailPlaceholder": "your@email.com",
    "optional": "optional",
    "alreadyHaveAccount": "Already have an account?",
    "createAccount": "Create Account",
    "signInWithSso": "Sign in with SSO",
    "ssoOrDivider": "or",
    "oidcError": {
      "oidc_state_invalid": "Login session expired. Try again.",
      "oidc_token_invalid": "Could not verify identity. Try again.",
      "oidc_code_invalid": "Login link expired. Try again.",
      "oidc_disabled": "Your account has been disabled. Contact your administrator.",
      "oidc_idp_unreachable": "Identity provider is temporarily unavailable. Try password login below.",
      "oidc_idp_error": "Identity provider returned an error. Try again.",
      "oidc_cancelled": "Login was cancelled.",
      "oidc_internal": "An internal error occurred. Try again or contact support."
    }
  },
  "chat": {
    "title": "Chat",
    "subtitle": "Chat with {{appName}}",
    "placeholder": "Type a message...",
    "send": "Send",
    "sendMessage": "Send message",
    "yourMessage": "Your message",
    "assistantResponse": "Response from {{appName}}",
    "readAloud": "Read aloud",
    "albumArt": "Album art",
    "intent": "Intent",
    "startConversation": "Start a conversation with {{appName}}",
    "useTextOrMic": "You can type text or use the microphone",
    "loadingConversation": "Loading conversation...",
    "deleteConversation": "This conversation will be permanently deleted.",
    "deleteConversationTitle": "Delete conversation?",
    "deleteConversationConfirm": "Delete",
    "deleteConversationLabel": "Delete conversation",
    "newConversation": "New conversation",
    "conversationLabel": "Conversation",
    "messageCount": "{{count}} message",
    "messageCount_other": "{{count}} messages",
    "openConversations": "Open conversations",
    "newChat": "New Chat",
    "conversations": "Conversations",
    "noConversations": "No conversations yet",
    "today": "Today",
    "yesterday": "Yesterday",
    "thisWeek": "This Week",
    "older": "Older",
    "processingMessage": "Please wait, processing message",
    "thinkingStatus": "{{appName}} is thinking...",
    "attachFile": "Attach file",
    "uploading": "Uploading...",
    "uploadSuccess": "Uploaded",
    "uploadFailed": "Upload failed",
    "unsupportedFormat": "Unsupported file format",
    "fileTooLarge": "File too large (max. {{size}}MB)",
    "removeAttachment": "Remove attachment",
    "documentUploaded": "Document uploaded: {{filename}}",
    "documentAttached": "{{count}} document(s) attached",
    "dropFileHere": "Drop file to attach",
    "quickActions": "Quick actions",
    "addToKb": "Add to Knowledge Base",
    "sendToPaperless": "Send to Paperless",
    "sendToPaperlessAndKb": "Send to Paperless + Knowledge Base",
    "sendToPaperlessAndKbSuccess": "Sent to Paperless and Knowledge Base",
    "sendToPaperlessAndKbFailed": "Send partially failed: {{detail}}",
    "summarizeDocument": "Summarize",
    "summarizePrompt": "Summarize the document \"{{filename}}\"",
    "indexingSuccess": "Added to Knowledge Base",
    "indexingFailed": "Failed to add to Knowledge Base",
    "paperlessSuccess": "Sent to Paperless",
    "paperlessFailed": "Failed to send to Paperless",
    "alreadyIndexed": "Already indexed",
    "sendViaEmail": "Send via Email",
    "emailDialogTitle": "Send Document via Email",
    "emailTo": "Recipient",
    "emailSubject": "Subject",
    "emailBody": "Message (optional)",
    "emailSend": "Send",
    "emailSuccess": "Sent via Email",
    "emailFailed": "Failed to send email",
    "documentIndexing": "Indexing to KB...",
    "documentIndexed": "Indexed to KB",
    "agentThinking": "Thinking...",
    "agentStepsCount": "{{count}} step completed",
    "agentStepsCount_other": "{{count}} steps completed",
    "federationProgress": {
      "waking_up": "Connecting to {{name}}'s {{appName}}...",
      "retrieving": "{{name}}'s {{appName}} is searching...",
      "synthesizing": "{{name}}'s {{appName}} is drafting a reply...",
      "complete": "{{name}}'s {{appName}} is done.",
      "failed": "{{name}}'s {{appName}} couldn't answer.",
      "fallback": "Asking {{name}}'s {{appName}}..."
    },
    "exampleWeather": "How's the weather?",
    "exampleLight": "Turn on the living room light",
    "exampleMusic": "Play some jazz music"
  },
  "voice": {
    "startRecording": "Start voice recording",
    "stopRecording": "Stop recording",
    "recording": "Recording",
    "listening": "Listening...",
    "speechDetected": "Speech detected",
    "silenceDetected": "Silence detected...",
    "autoStopIn": "Auto-stop in {{seconds}}s",
    "level": "Level",
    "clickToStop": "Click to stop manually",
    "recordingTooShort": "Recording was too short. Please speak for at least 1 second.",
    "microphoneError": "Could not access microphone",
    "processingError": "Sorry, I could not process the voice input.",
    "noSpeechRecognized": "No speech recognized"
  },
  "wakeword": {
    "enable": "Enable wake word",
    "disable": "Disable wake word",
    "listening": "Listening for \"{{keyword}}\"...",
    "detected": "Wake word detected! Starting recording...",
    "paused": "Wake word paused",
    "notAvailable": "Wake word not available",
    "browserNotSupported": "Wake word not supported in this browser. Use Chrome/Edge/Safari or the manual mic button.",
    "settings": "Wake Word Settings",
    "keyword": "Wake Word",
    "sensitivity": "Sensitivity",
    "moreSensitive": "More sensitive",
    "lessFalsePositives": "Less false positives",
    "lastDetection": "Last"
  },
  "rag": {
    "knowledge": "Knowledge",
    "enableKnowledge": "Enable knowledge base",
    "disableKnowledge": "Disable knowledge base",
    "allDocuments": "All documents",
    "searchesInDocuments": "Searches in uploaded documents"
  },
  "rooms": {
    "title": "Room Management",
    "subtitle": "Manage rooms and synchronize with Home Assistant",
    "newRoom": "New Room",
    "createRoom": "Create new room",
    "editRoom": "Edit room",
    "deleteRoom": "Delete room?",
    "deleteRoomConfirm": "Do you really want to delete \"{{name}}\"? This action cannot be undone.",
    "roomCreated": "Room \"{{name}}\" created",
    "roomUpdated": "Room \"{{name}}\" updated",
    "roomDeleted": "Room \"{{name}}\" deleted",
    "roomsCount": "Rooms ({{count}})",
    "noRooms": "No rooms yet",
    "createFirstRoom": "Create first room",
    "loadingRooms": "Loading rooms...",
    "couldNotLoad": "Could not load rooms",
    "nameRequired": "Name is required",
    "icon": "Icon (optional)",
    "iconHint": "Material Design Icon (e.g. mdi:sofa)",
    "alias": "Alias",
    "devices": "Devices",
    "refreshRooms": "Refresh rooms",
    "haSync": "HA Sync",
    "haLinked": "Linked",
    "haNotLinked": "Not linked",
    "linkToHA": "Link",
    "unlinkFromHA": "Unlink",
    "unlinkConfirm": "Do you really want to unlink \"{{name}}\" from Home Assistant?",
    "linkUnlinked": "Link removed",
    "linkToHAArea": "Link to HA Area",
    "selectArea": "Select area",
    "selectAreaPlaceholder": "-- Select area --",
    "noHAAreas": "No Home Assistant areas found",
    "allAreasLinked": "All HA areas are already linked",
    "linkedWith": "Room linked with HA area",
    "linkFailed": "Linking failed",
    "unlinkTitle": "Remove link?",
    "unlinkFailed": "Could not remove link",
    "couldNotLoadAreas": "Could not load Home Assistant areas",
    "pleaseSelectArea": "Please select an area",
    "importFailed": "Import failed",
    "exportFailed": "Export failed",
    "syncFailed": "Sync failed",
    "haSyncTitle": "Home Assistant Synchronization",
    "conflictResolution": "Conflict resolution",
    "conflictSkip": "Skip (on name collision)",
    "conflictLink": "Link (connect existing room with HA)",
    "conflictOverwrite": "Overwrite (replace HA link)",
    "import": "Import",
    "export": "Export",
    "sync": "Sync",
    "importResult": "Import: {{imported}} new, {{linked}} linked, {{skipped}} skipped",
    "exportResult": "Export: {{exported}} created, {{linked}} linked",
    "syncResult": "Sync: {{imported}} imported, {{exported}} exported",
    "haAreasCount": "Home Assistant Areas ({{count}})",
    "haNotConnected": "No HA areas found. Is Home Assistant connected?",
    "owner": "Owner",
    "noOwner": "No owner",
    "ownerHint": "Room owner has priority in Media Follow Me conflicts",
    "deleteDevice": "Delete device?",
    "deleteDeviceConfirm": "Do you really want to remove \"{{name}}\"?",
    "removeOutputDevice": "Remove output device",
    "removeOutputDeviceConfirm": "Really remove this output device?",
    "dlnaRenderer": "DLNA Renderer",
    "dlnaRendererDesc": "DLNA renderers are discovered via SSDP on the network. Availability is checked at playback time.",
    "outputAudioLabel": "Audio output",
    "outputVisualLabel": "Visual output",
    "outputVisualNoneConfigured": "No visual output device configured.",
    "outputAudioNoneConfigured": "No output devices configured.",
    "outputAudioNoneConfiguredDetail": "TTS will play on the input device.",
    "outputAddVisualButton": "Add visual output device",
    "outputAddAudioButton": "Add audio output device",
    "outputAddDialogVisualTitle": "Add visual output device",
    "outputAddDialogAudioTitle": "Add audio output device",
    "outputDialogRoomLabel": "Room: {{name}}",
    "outputDeviceTypeLabel": "Device type:",
    "outputDeviceTypeHomeAssistant": "HA Media Player",
    "outputDeviceType{{appName}}": "{{appName}} Device",
    "outputDeviceLabel": "Device:",
    "outputDeviceSelectPlaceholder": "-- Select a device --",
    "outputNoAvailableDevices": "No devices available",
    "outputTtsVolumeLabel": "TTS volume: {{percent}}%",
    "outputTtsVolumeHint": "Volume for TTS output (0 = no change)",
    "outputAllowInterruption": "Allow interruption",
    "outputAllowInterruptionHint": "When enabled, currently playing audio will be interrupted",
    "outputDismissError": "OK",
    "outputCancelButton": "Cancel",
    "outputAddButton": "Add",
    "outputErrorSelectDevice": "Please select a device",
    "outputErrorAddFailed": "Failed to add device",
    "outputErrorUpdateFailed": "Failed to update device",
    "outputErrorDeleteFailed": "Failed to remove device",
    "outputErrorReorderFailed": "Failed to reorder devices",
    "outputDeviceEnable": "Enable",
    "outputDeviceDisable": "Disable",
    "outputDeviceRemove": "Remove",
    "outputDeviceInterruptHint": "Interrupts currently playing audio"
  },
  "speakers": {
    "title": "Speaker Recognition",
    "subtitle": "Manage speakers and voice samples",
    "newSpeaker": "New Speaker",
    "createSpeaker": "Create new speaker",
    "editSpeaker": "Edit speaker",
    "deleteSpeaker": "Delete speaker?",
    "deleteSpeakerConfirm": "Do you really want to delete \"{{name}}\"? All voice samples will be lost.",
    "speakerCreated": "Speaker \"{{name}}\" created",
    "speakerUpdated": "Speaker \"{{name}}\" updated",
    "speakerDeleted": "Speaker \"{{name}}\" deleted",
    "registeredSpeakers": "Registered Speakers ({{count}})",
    "noSpeakers": "No speakers registered yet",
    "createFirstSpeaker": "Create first speaker",
    "loadingSpeakers": "Loading speakers...",
    "couldNotLoad": "Could not load speakers",
    "nameAndAliasRequired": "Name and alias are required",
    "aliasLabel": "Alias (for addressing)",
    "adminPermission": "Administrator permission",
    "voiceSamples": "Voice Samples",
    "voiceSamplesCount": "{{count}} {{status}}",
    "voiceSamplesGood": "(good)",
    "voiceSamplesMore": "(more recommended)",
    "voiceSamplesNone": "(none)",
    "record": "Record",
    "recordVoiceSample": "Record voice sample",
    "recordFor": "For: {{name}}",
    "readyToRecord": "Ready to record",
    "speakAnySentence": "Speak any sentence",
    "speak3to10seconds": "Speak clearly for 3-10 seconds",
    "recordingReady": "Recording ready",
    "stop": "Stop",
    "serviceActive": "Speaker Recognition active",
    "serviceNotAvailable": "Speaker Recognition not available",
    "identifySpeaker": "Identify speaker",
    "identifySubtitle": "Record a voice sample to identify the speaker",
    "readyToIdentify": "Ready for identification",
    "identify": "Identify",
    "speakerIdentified": "Speaker identified",
    "speakerNotIdentified": "Speaker not identified",
    "noRegisteredSpeakerFound": "No registered speaker found",
    "confidence": "Confidence",
    "recordAgain": "Record again",
    "recordFirstSample": "Please record a sample first",
    "voiceSampleSaved": "Voice sample saved",
    "voiceSampleFailed": "Could not save voice sample",
    "identificationFailed": "Identification failed",
    "micAccessFailed": "Could not access microphone",
    "refreshSpeakers": "Refresh speaker list",
    "merge": "Merge",
    "mergeSpeakers": "Merge speakers",
    "mergeSubtitle": "Merge \"{{name}}\" with another speaker. All voice samples will be transferred.",
    "mergeTarget": "Merge with",
    "mergeTargetPlaceholder": "-- Select target speaker --",
    "mergeWarning": "\"{{name}}\" will be deleted after merging. This action cannot be undone.",
    "selectSourceAndTarget": "Please select source and target speaker",
    "sameSourceAndTarget": "Source and target speaker cannot be the same",
    "mergeConfirm": "\"{{source}}\" will be merged into \"{{target}}\". All voice samples will be transferred and \"{{source}}\" will be deleted.",
    "mergeFailed": "Merge failed"
  },
  "tasks": {
    "title": "Tasks",
    "subtitle": "Overview of all tasks and their status",
    "loadingTasks": "Loading tasks...",
    "noTasks": "No tasks found",
    "noTasksDesc": "Tasks will appear here when {{appName}} runs asynchronous actions.",
    "taskType": "Type: {{type}}",
    "created": "Created",
    "completed": "Completed",
    "pending": "Pending",
    "running": "Running",
    "failed": "Failed",
    "couldNotLoad": "Could not load tasks"
  },
  "cameras": {
    "title": "Camera Monitoring",
    "subtitle": "Monitor your cameras and events",
    "cameras": "Cameras",
    "noCameras": "No cameras configured. Connect Frigate to see camera feeds.",
    "latestEvents": "Latest Events",
    "loadingEvents": "Loading events...",
    "noEvents": "No events found",
    "refreshCameras": "Refresh cameras and events",
    "person": "Person",
    "car": "Car",
    "dog": "Dog",
    "cat": "Cat",
    "confidence": "Confidence"
  },
  "knowledge": {
    "title": "Knowledge Base",
    "subtitle": "Upload documents and index for RAG queries",
    "newKnowledgeBase": "New Knowledge Base",
    "createKnowledgeBase": "Create new knowledge base",
    "deleteKnowledgeBase": "Delete knowledge base",
    "deleteKnowledgeBaseConfirm": "Really delete knowledge base \"{{name}}\" and all associated documents?",
    "knowledgeBases": "Knowledge Bases",
    "documents": "Documents",
    "indexed": "Indexed",
    "chunks": "Chunks",
    "uploadDocument": "Upload document",
    "uploadDragDrop": "Click or drag file here",
    "uploadProcessing": "Processing...",
    "supportedFormats": "Supported formats: PDF, DOCX, TXT, MD, HTML, PPTX, XLSX",
    "uploadSuccess": "Successfully uploaded!",
    "uploadFailed": "Upload failed",
    "processing": "Processing {{filename}}...",
    "searchInDocuments": "Search in documents",
    "searchPlaceholder": "Enter search term...",
    "resultsFound": "{{count}} results found",
    "relevance": "{{percent}}% relevance",
    "page": "Page",
    "section": "Section",
    "loadingDocuments": "Loading documents...",
    "noDocuments": "No documents found",
    "uploadToFill": "Upload a document to fill the knowledge base.",
    "statusCompleted": "Completed",
    "statusProcessing": "Processing",
    "statusPending": "Pending",
    "statusFailed": "Failed",
    "deleteDocument": "Really delete document \"{{filename}}\"?",
    "deleteFailed": "Error deleting document",
    "reindex": "Reindex",
    "reindexFailed": "Error reindexing document",
    "pages": "Pages",
    "size": "Size",
    "errorLabel": "Error",
    "moveDocument": "Move",
    "moveDocuments": "Move ({{count}})",
    "selectTargetKb": "Select target knowledge base",
    "documentsMovedSuccess": "{{count}} document(s) moved",
    "alreadyInTargetKb": "All documents are already in the target KB",
    "statusQueued": "Queued",
    "statusQueuePosition": "Position {{position}}",
    "stageParsing": "Reading document…",
    "stageOcr": "Recognizing text… Page {{current}} of {{total}}",
    "stageOcrNoPages": "Recognizing text…",
    "stageChunking": "Splitting into sections…",
    "stageEmbedding": "Adding to knowledge base…",
    "longProcessingHint": "Large PDFs can take a minute.",
    "uploadQueued": "Uploaded. Processing will start shortly.",
    "workerUnavailable": "Document processing is currently unavailable. Please retry in a minute.",
    "retry": "Retry",
    "duplicateTitle": "This document already exists",
    "duplicateBody": "\"{{filename}}\" was already uploaded on {{date}}.",
    "duplicateAction": "Go to the existing entry",
    "fileTooLarge": "File too large. Maximum: {{maxMb}} MB.",
    "formatNotSupported": "File format not supported. Allowed: {{allowed}}.",
    "serverError": "Something went wrong during upload.",
    "showDetails": "Show details",
    "hideDetails": "Hide details",
    "failedRetry": "Upload again",
    "pollingTimeout": "Processing of \"{{filename}}\" is taking longer than expected. Please refresh to see the current status."
  },
  "memory": {
    "title": "Memories",
    "subtitle": "Assistant's long-term memory",
    "addMemory": "Add Memory",
    "editMemory": "Edit Memory",
    "deleteTitle": "Delete memory?",
    "deleteConfirm": "Do you really want to delete this memory?",
    "created": "Memory created",
    "updated": "Memory updated",
    "deleted": "Memory deleted",
    "noMemories": "No memories yet",
    "count": "{{count}} memories",
    "couldNotLoad": "Could not load memories",
    "content": "Content",
    "importance": "Importance",
    "accessCount": "Access count",
    "categories": {
      "all": "All",
      "preference": "Preference",
      "fact": "Fact",
      "instruction": "Instruction",
      "context": "Context"
    }
  },
  "homeassistant": {
    "title": "Smart Home",
    "subtitle": "Control your smart home devices",
    "devices": "Devices",
    "devicesCount": "Devices ({{count}})",
    "areas": "Areas",
    "entities": "Entities",
    "state": "State",
    "turnOn": "Turn on",
    "turnOff": "Turn off",
    "toggle": "Toggle",
    "on": "on",
    "off": "off",
    "lights": "Lights",
    "switches": "Switches",
    "climate": "Climate",
    "covers": "Covers",
    "searchDevices": "Search devices",
    "searchDevicesPlaceholder": "Search devices...",
    "loadingDevices": "Loading devices...",
    "noDevices": "No devices found",
    "brightness": "Brightness",
    "brightnessPercent": "Brightness {{percent}} percent"
  },
  "users": {
    "title": "User Management",
    "subtitle": "Manage user accounts and permissions",
    "loading": "Loading users...",
    "failedToLoad": "Failed to load users",
    "failedToSave": "Failed to save user",
    "failedToDelete": "Failed to delete user",
    "failedToLink": "Failed to link speaker",
    "failedToUnlink": "Failed to unlink speaker",
    "createUser": "Create User",
    "editUser": "Edit User",
    "updateUser": "Update User",
    "deleteUser": "Delete User",
    "deleteUserConfirm": "Are you sure you want to delete \"{{username}}\"? This action cannot be undone.",
    "userCreated": "User created successfully",
    "userUpdated": "User updated successfully",
    "userDeleted": "User deleted successfully",
    "noUsersFound": "No users found",
    "cannotDeleteOwnAccount": "You cannot delete your own account",
    "you": "You",
    "inactive": "Inactive",
    "voiceLinked": "Voice linked",
    "lastLogin": "Last login",
    "unlinkSpeaker": "Unlink speaker",
    "unlinkSpeakerConfirm": "Are you sure you want to unlink the speaker from this user? Voice authentication will no longer work for this user.",
    "unlink": "Unlink",
    "linkSpeaker": "Link speaker",
    "linkSpeakerProfile": "Link Speaker Profile",
    "selectSpeakerForVoice": "Select a speaker profile to link with this user for voice authentication.",
    "noAvailableSpeakers": "No available speaker profiles",
    "allSpeakersLinked": "All speaker profiles are already linked to users",
    "voiceSamplesCount": "{{count}} voice samples",
    "speakerLinked": "Speaker linked successfully",
    "speakerUnlinked": "Speaker unlinked successfully",
    "role": "Role",
    "selectRole": "Select a role",
    "leaveEmptyToKeep": "leave empty to keep current",
    "accountActive": "Account is active",
    "firstName": "First Name",
    "lastName": "Last Name",
    "firstNamePlaceholder": "e.g. John",
    "lastNamePlaceholder": "e.g. Doe",
    "personalityStyle": "Communication Style",
    "personalityPrompt": "Personality Fine-tuning",
    "personalityPromptPlaceholder": "e.g. Use emojis, always respond with a joke...",
    "styles": {
      "freundlich": "Friendly",
      "direkt": "Direct",
      "formell": "Formal",
      "casual": "Casual"
    }
  },
  "roles": {
    "title": "Role Management",
    "subtitle": "Manage roles and their permissions",
    "loading": "Loading roles...",
    "failedToLoad": "Failed to load roles",
    "failedToSave": "Failed to save role",
    "failedToDelete": "Failed to delete role",
    "createRole": "Create Role",
    "editRole": "Edit Role",
    "updateRole": "Update Role",
    "deleteRole": "Delete Role",
    "deleteRoleConfirm": "Are you sure you want to delete the role \"{{name}}\"? Users with this role will need to be reassigned.",
    "roleCreated": "Role created successfully",
    "roleUpdated": "Role updated successfully",
    "roleDeleted": "Role deleted successfully",
    "noRolesFound": "No roles found",
    "systemRoleCannotDelete": "System roles cannot be deleted",
    "system": "System",
    "more": "+{{count}} more",
    "roleName": "Role Name",
    "roleNamePlaceholder": "e.g., Technician",
    "descriptionPlaceholder": "Brief description of the role",
    "permissions": "Permissions",
    "selected": "{{count}} selected",
    "selectAll": "Select all",
    "clear": "Clear",
    "systemRole": "System Role",
    "systemRoleInfo": "This is a system role. You can modify its permissions but cannot rename or delete it."
  },
  "integrations": {
    "title": "Integrations",
    "subtitle": "Manage MCP server connections",
    "loading": "Loading integrations...",
    "loadError": "Failed to load integrations",
    "refresh": "Refresh",
    "refreshSuccess": "Connections refreshed successfully",
    "refreshError": "Failed to refresh connections",
    "mcpServers": "MCP Servers",
    "mcpTools": "MCP Tools",
    "enabled": "Enabled",
    "disabled": "Disabled",
    "servers": "Servers",
    "connected": "Connected",
    "disconnected": "Disconnected",
    "tools": "Tools",
    "online": "Online",
    "offline": "Offline",
    "noServers": "No MCP servers configured",
    "mcpDisabledHint": "MCP is disabled (MCP_ENABLED=false)",
    "availableTools": "Available Tools",
    "noTools": "No tools available",
    "lastError": "Last Error",
    "toolDetails": "Tool Details",
    "toolName": "Tool Name (MCP)",
    "server": "Server",
    "description": "Description",
    "inputSchema": "Input Schema",
    "toolActive": "Active",
    "toolInactive": "Inactive",
    "resetDefaults": "Reset to defaults",
    "toolToggleError": "Failed to update tool activation",
    "activeTools": "active"
  },
  "intents": {
    "title": "Intent Overview",
    "subtitle": "All available intents and integration status",
    "failedToLoad": "Failed to load intents",
    "viewPrompt": "View Prompt",
    "totalIntents": "Total Intents",
    "enabledIntegrations": "Enabled Integrations",
    "mcpTools": "MCP Tools",
    "coreIntegrations": "Core Integrations",
    "intentsAvailable": "intents available",
    "enabled": "Enabled",
    "disabled": "Disabled",
    "intentName": "Intent Name",
    "description": "Description",
    "parameters": "Parameters",
    "server": "Server",
    "generatedPrompt": "Generated Prompt",
    "intentTypes": "Intent Types",
    "examples": "Examples"
  },
  "device": {
    "setup": "Setup device",
    "status": "Device status",
    "notConnected": "Not connected",
    "notRegistered": "Not registered",
    "room": "Room",
    "type": "Type",
    "capabilities": "Capabilities",
    "microphone": "Microphone",
    "speaker": "Speaker",
    "wakeword": "Wake Word",
    "connecting": "Connecting...",
    "thisDevice": "This Device",
    "deviceId": "Device ID",
    "disconnect": "Disconnect",
    "connect": "Connect",
    "deviceType": "Device Type",
    "deviceName": "Device Name",
    "deviceNameOptional": "Device name (optional)",
    "deviceNamePlaceholder": "e.g. Living Room iPad",
    "selectRoom": "Select room...",
    "addNewRoom": "Add new room",
    "refreshRooms": "Refresh rooms",
    "newRoomName": "Name of new room",
    "newRoomPlaceholder": "Name of new room...",
    "createRoom": "Create room",
    "couldNotLoadRooms": "Could not load rooms",
    "couldNotCreateRoom": "Could not create room",
    "pleaseSelectRoom": "Please select a room",
    "configureVoice": "Configure your device for voice interaction",
    "permissionGranted": "Permission granted",
    "permissionDenied": "Permission denied",
    "permissionRequired": "Permission required",
    "allow": "Allow",
    "speakerTts": "Speaker (TTS)",
    "playVoiceResponses": "Play voice responses",
    "handsfreActivation": "Hands-free activation",
    "stationaryDevice": "Stationary Device",
    "staysInOneRoom": "This device stays in one room",
    "descriptionPanel": "Stationary display (wall-mounted iPad/tablet)",
    "descriptionTablet": "Mobile tablet that can move between rooms",
    "descriptionBrowser": "Desktop or laptop browser",
    "descriptionKiosk": "Touch-screen kiosk or terminal"
  },
  "theme": {
    "light": "Light",
    "dark": "Dark",
    "system": "System"
  },
  "language": {
    "label": "Language",
    "german": "Deutsch",
    "english": "English"
  },
  "satellites": {
    "caps": {
      "wakeWord": "Wake Word",
      "speaker": "Speaker",
      "leds_one": "1 LED",
      "leds_other": "{{count}} LEDs",
      "mics_one": "1 Mic",
      "mics_other": "{{count}} Mics",
      "camera": "Camera",
      "display": "Display",
      "enviro": "Environment Sensor"
    },
    "title": "Satellite Monitor",
    "subtitle": "Live status of connected satellites",
    "loadError": "Failed to load satellites",
    "online": "Online",
    "active": "Active",
    "autoRefresh": "Auto-refresh",
    "noSatellites": "No satellites connected",
    "noSatellitesDesc": "Satellites will appear here when they connect to the server.",
    "uptime": "Uptime",
    "lastHeartbeat": "Last Heartbeat",
    "sessions1h": "Sessions (1h)",
    "errors1h": "Errors (1h)",
    "audioLevels": "Audio Levels",
    "vad": "VAD",
    "speechDetected": "Speech detected",
    "silence": "Silence",
    "system": "System",
    "lastWakeword": "Last Wake Word",
    "activeSession": "Active Session",
    "duration": "Duration",
    "audioChunks": "Audio chunks",
    "justNow": "just now",
    "secondsAgo": "{{count}}s ago",
    "minutesAgo": "{{count}}m ago",
    "hoursAgo": "{{count}}h ago",
    "states": {
      "idle": "IDLE",
      "listening": "LISTENING",
      "processing": "PROCESSING",
      "speaking": "SPEAKING",
      "error": "ERROR"
    },
    "software": "Software",
    "currentVersion": "Current Version",
    "latestVersion": "Latest Version",
    "updateAvailable": "Update",
    "updating": "Updating...",
    "updateNow": "Update Now",
    "upToDate": "Up to date",
    "updateInProgress": "Update in progress...",
    "updateFailed": "Update Failed",
    "updateError": "Failed to trigger update",
    "updateStage": {
      "idle": "Ready",
      "downloading": "Downloading package...",
      "verifying": "Verifying integrity...",
      "backing_up": "Creating backup...",
      "extracting": "Extracting files...",
      "installing": "Installing update...",
      "restarting": "Restarting service...",
      "completed": "Completed",
      "failed": "Failed",
      "rolling_back": "Restoring backup..."
    }
  },
  "presence": {
    "title": "Presence",
    "subtitle": "Who is where — room presence via BLE, voice, and web",
    "roomOccupancy": "Room Occupancy",
    "noData": "No presence data available",
    "presenceDisabled": "Presence detection is disabled (PRESENCE_ENABLED=false)",
    "noOccupants": "No occupants detected — presence updates when satellites scan BLE devices or recognize speakers",
    "trackedUsers": "Tracked Users",
    "occupiedRooms": "Occupied Rooms",
    "confidence": "Confidence",
    "lastSeen": "Last seen",
    "alone": "Alone",
    "notAlone": "Not alone",
    "devices": "Tracking Devices",
    "addDevice": "Add Device",
    "deleteDevice": "Delete Device",
    "deleteDeviceConfirm": "Really remove device \"{{name}}\"? It will no longer be used for presence detection.",
    "macAddress": "MAC Address",
    "deviceName": "Device Name",
    "deviceType": "Device Type",
    "user": "User",
    "selectUser": "Select user",
    "phone": "Smartphone",
    "watch": "Smartwatch",
    "tracker": "Tracker",
    "enabled": "Active",
    "detectionMethod": "Detection Method",
    "detectionBle": "BLE (Standard)",
    "detectionClassicBt": "Bluetooth Classic (Apple)",
    "classicBtHint": "Find your MAC in iPhone Settings > General > About > Bluetooth",
    "toggleDetectionMethod": "Toggle detection method",
    "noDevices": "No devices registered",
    "noDevicesDesc": "Register BLE or Bluetooth Classic devices (smartphones, smartwatches) to detect people in rooms.",
    "deviceAdded": "Device \"{{name}}\" registered",
    "deviceDeleted": "Device removed",
    "macInvalid": "Invalid MAC format (XX:XX:XX:XX:XX:XX)",
    "macDuplicate": "This MAC address is already registered",
    "loadError": "Failed to load presence data",
    "justNow": "just now",
    "secondsAgo": "{{count}}s ago",
    "minutesAgo": "{{count}}min ago",
    "autoRefresh": "Auto-refresh",
    "tabLive": "Live",
    "tabAnalytics": "Analytics",
    "heatmapTitle": "Room Activity Heatmap",
    "predictionsTitle": "Presence Predictions",
    "dailySummaryTitle": "Daily Activity",
    "allUsers": "All Users",
    "timeRange": "Time Range",
    "days7": "7 days",
    "days30": "30 days",
    "days60": "60 days",
    "days90": "90 days",
    "selectUserForPrediction": "Select a user to see predictions",
    "noAnalyticsData": "No analytics data yet. Presence events will be recorded as users move between rooms.",
    "entriesCount": "{{count}} entries",
    "probability": "Probability",
    "daySun": "Sun",
    "dayMon": "Mon",
    "dayTue": "Tue",
    "dayWed": "Wed",
    "dayThu": "Thu",
    "dayFri": "Fri",
    "daySat": "Sat"
  },
  "settings": {
    "title": "Settings",
    "subtitle": "Manage system-wide settings",
    "failedToLoad": "Failed to load settings",
    "failedToSave": "Failed to save settings",
    "settingsSaved": "Settings saved. All connected devices have been updated.",
    "unsavedChanges": "Unsaved changes",
    "wakeword": {
      "title": "Wake Word Settings",
      "description": "Configure the wake word for all connected devices (satellites, web panels, browsers).",
      "keyword": "Wake Word",
      "threshold": "Detection Sensitivity",
      "moreSensitive": "More sensitive",
      "lessFalsePositives": "Less false positives",
      "thresholdHint": "Lower values detect the wake word more easily but may cause more false positives.",
      "cooldown": "Cooldown between detections",
      "cooldownHint": "Time that must pass after a detection before the wake word can be detected again.",
      "connectedDevices": "{{count}} devices connected receiving these settings",
      "broadcastHint": "Changes are automatically sent to all connected devices.",
      "syncStatus": "Device Synchronization",
      "pending": "Pending",
      "syncWarning": "{{count}} device(s) could not be synchronized"
    }
  },
  "feedback": {
    "wrongIntent": "Wrong classification?",
    "wrongTool": "Wrong tool?",
    "wrongComplexity": "Wrong complexity?",
    "shouldBeComplex": "Should have used agent",
    "shouldBeSimple": "Was too complex",
    "selectCorrectIntent": "Select correct intent:",
    "selectComplexity": "Select correct complexity:",
    "correctionSaved": "Correction saved! {{appName}} will learn from this.",
    "proactiveQuestion": "Was this the right classification?",
    "intentConversation": "General conversation",
    "intentKnowledge": "Knowledge base",
    "intentHomeAssistant": "Smart Home",
    "intentWebSearch": "Web search",
    "intentWeather": "Weather",
    "intentNews": "News"
  },
  "notifications": {
    "title": "Notifications",
    "acknowledge": "Acknowledge",
    "dismiss": "Dismiss",
    "suppress": "Don't notify again",
    "suppressConfirm": "Similar notifications will be suppressed",
    "moreQueued": "+{{count}} more",
    "critical": "Critical",
    "info": "Information",
    "low": "Low"
  },
  "errors": {
    "generic": "An error occurred",
    "networkError": "Network error",
    "notFound": "Not found",
    "unauthorized": "Unauthorized",
    "forbidden": "Access denied",
    "serverError": "Server error",
    "validationError": "Validation error",
    "couldNotProcess": "Sorry, there was an error processing your request."
  },
  "errorBoundary": {
    "title": "Something went wrong",
    "message": "An unexpected error occurred. Please try again or reload the page.",
    "showDetails": "Show technical details",
    "retry": "Try again",
    "reload": "Reload page"
  },
  "confirmDialog": {
    "defaultTitle": "Confirmation",
    "confirm": "Confirm",
    "cancel": "Cancel",
    "loading": "Processing..."
  },
  "maintenance": {
    "title": "Maintenance",
    "subtitle": "System maintenance and diagnostic tools",
    "searchIndexing": {
      "title": "Search & Indexing",
      "description": "Manage full-text search and Home Assistant keywords",
      "reindexFts": "Reindex FTS",
      "reindexFtsDescription": "Rebuild the full-text search index of all knowledge base documents",
      "reindexFtsSuccess": "FTS index updated successfully",
      "updatedCount": "Updated documents",
      "ftsConfig": "FTS configuration",
      "refreshKeywords": "Refresh HA Keywords",
      "refreshKeywordsDescription": "Reload device names and keywords from Home Assistant",
      "refreshKeywordsSuccess": "Keywords refreshed successfully",
      "keywordsCount": "Keyword count",
      "sampleKeywords": "Sample keywords"
    },
    "embeddings": {
      "title": "Embeddings",
      "description": "Re-calculate all vectors after changing the embedding model",
      "reembedAll": "Re-embed All",
      "reembedWarning": "This operation takes 10–30 minutes. Only run after changing the embedding model.",
      "reembedSuccess": "Vectors re-calculated successfully",
      "reembedModel": "Model",
      "reembedTable": "Table",
      "reembedErrors": "Errors",
      "confirmReembed": "Re-embed all vectors? This can take 10–30 minutes."
    },
    "debug": {
      "title": "Debug",
      "description": "Diagnostic tools for intent recognition",
      "testIntent": "Test Intent",
      "testIntentDescription": "Enter a message to test intent recognition",
      "messagePlaceholder": "e.g. Turn on the living room light",
      "extractedIntent": "Extracted Intent",
      "noMessage": "Please enter a message"
    },
    "errors": {
      "reindexFailed": "FTS reindex failed",
      "refreshKeywordsFailed": "Keyword refresh failed",
      "reembedFailed": "Re-embedding failed",
      "intentTestFailed": "Intent test failed"
    }
  },
  "knowledgeGraph": {
    "title": "Knowledge Graph",
    "subtitle": "Entities and relations from conversations",
    "entities": "Entities",
    "relations": "Relations",
    "stats": "Statistics",
    "graph": "Graph",
    "noEntities": "No entities extracted yet",
    "graphError": "Could not load graph.",
    "graphAriaLabel": "Knowledge Graph Visualization",
    "switchToTable": "Table view",
    "mentions": "Mentions",
    "entityName": "Name",
    "entityType": "Type",
    "entityTypes": "Types",
    "lastSeen": "Last Seen",
    "predicate": "Relationship",
    "subject": "Subject",
    "object": "Object",
    "merge": "Merge",
    "mergeConfirm": "Merge \"{{source}}\" into \"{{target}}\"? All relations will be transferred.",
    "mergeSelectFirst": "Select the first entity to merge",
    "mergeSelectSecond": "Select the target for \"{{name}}\"",
    "deleteConfirm": "Delete \"{{name}}\" and all its relations?",
    "deleteRelationConfirm": "Really delete this relation?",
    "noRelations": "No relations found",
    "searchPlaceholder": "Search entities...",
    "showRelations": "Show relations",
    "filteredByEntity": "Filtered by entity",
    "clearFilter": "Clear filter",
    "typeDistribution": "Distribution by type",
    "couldNotLoad": "Could not load data",
    "person": "Person",
    "place": "Place",
    "organization": "Organization",
    "thing": "Thing",
    "event": "Event",
    "concept": "Concept",
    "personal": "Personal",
    "family": "Family",
    "public": "Public",
    "scopeFilter": "Scope",
    "changeScope": "Change scope",
    "scopeUpdated": "{{name}} is now {{scope}}",
    "editRelation": "Edit Relation",
    "createRelation": "Create Relation",
    "selectEntity": "Select entity...",
    "predicateLabel": "Relationship type",
    "confidenceLabel": "Confidence",
    "selfLinkError": "Subject and object must be different"
  },
  "paperlessAudit": {
    "title": "Paperless Document Audit",
    "tabs": {
      "control": "Audit Control",
      "review": "Review Queue",
      "ocr": "OCR Issues",
      "completeness": "Completeness",
      "duplicates": "Duplicates",
      "correspondents": "Correspondents",
      "stats": "Statistics"
    },
    "control": {
      "start": "Start Audit",
      "stop": "Stop",
      "mode": "Mode",
      "modeNewOnly": "New documents only",
      "modeFull": "All documents",
      "fixMode": "Fix Mode",
      "fixReview": "Manual review",
      "fixAutoThreshold": "Auto (above threshold)",
      "fixAutoAll": "Auto (all)",
      "confidenceThreshold": "Confidence Threshold",
      "running": "Audit running...",
      "progress": "{{current}} of {{total}} documents"
    },
    "review": {
      "docId": "Doc ID",
      "currentTitle": "Current Title",
      "suggestedTitle": "Suggested Title",
      "correspondent": "Correspondent",
      "type": "Document Type",
      "tags": "Tags",
      "date": "Date",
      "language": "Language",
      "storagePath": "Storage Path",
      "missing": "Missing Fields",
      "confidence": "Confidence",
      "reasoning": "Reasoning",
      "approve": "Approve",
      "skip": "Skip",
      "approveSelected": "Approve Selected",
      "skipSelected": "Skip Selected",
      "noResults": "No pending changes",
      "noSearchResults": "No results for this search",
      "searchPlaceholder": "Search title, correspondent, type..."
    },
    "ocr": {
      "quality": "OCR Quality",
      "issues": "Issues",
      "reocr": "Re-process",
      "noIssues": "No OCR issues found"
    },
    "completeness": {
      "score": "Completeness",
      "issues": "Issues",
      "noIssues": "No completeness issues found"
    },
    "duplicates": {
      "detect": "Detect Duplicates",
      "group": "Group",
      "noGroups": "No duplicate groups found"
    },
    "correspondents": {
      "threshold": "Similarity Threshold",
      "scan": "Scan",
      "noClusters": "No similar correspondents found"
    },
    "stats": {
      "totalAudited": "Audited",
      "changesNeeded": "Changes Needed",
      "applied": "Applied",
      "skipped": "Skipped",
      "pending": "Pending",
      "failed": "Failed",
      "missingMetadata": "Missing Metadata",
      "duplicateGroups": "Duplicate Groups",
      "avgConfidence": "Avg. Confidence",
      "ocrDistribution": "OCR Quality Distribution",
      "languageDistribution": "Language Distribution",
      "completenessDistribution": "Completeness Distribution"
    },
    "notConfigured": "Paperless Audit is not configured. Enable PAPERLESS_AUDIT_ENABLED=true and ensure the Paperless MCP server is connected.",
    "error": "Failed to load audit data"
  },
  "circles": {
    "tier": {
      "0": "Self",
      "1": "Trusted",
      "2": "Household",
      "3": "Extended",
      "4": "Public"
    },
    "tierDescription": {
      "0": "Visible only to me.",
      "1": "Visible to trusted people.",
      "2": "Visible to everyone in the household.",
      "3": "Visible to the extended circle.",
      "4": "Publicly visible."
    },
    "tierAriaLabel": "Circle tier {{tier}}: {{label}}",
    "tierPickerLabel": "Choose a circle tier",
    "brainTitle": "Second Brain",
    "brainSubtitle": "Search every atom — documents, facts, notes, memories.",
    "brainSearchPlaceholder": "Type a query...",
    "brainEmpty": "No results yet. Type a query to search.",
    "brainNoMatches": "No matching atoms found.",
    "reviewTitle": "Review Queue",
    "reviewSubtitle": "Atoms captured in the last {{days}} days. Check the tier.",
    "reviewDaysLabel": "Window",
    "reviewEmpty": "No new atoms to review.",
    "reviewTierChanged": "Tier updated.",
    "settingsTitle": "Circles & Members",
    "settingsSubtitle": "Manage your tiers and who is invited into each.",
    "defaultCaptureTier": "Default capture tier",
    "defaultCaptureHint": "New atoms are captured at this tier by default.",
    "members": "Members",
    "addMember": "Add member",
    "addMemberUser": "User",
    "addMemberUserIdHint": "User list unavailable (admin permission required). Enter a user_id manually.",
    "addMemberTier": "Tier",
    "noMembers": "No members in your circles yet.",
    "removeMember": "Remove member",
    "removeMemberConfirm": "Remove {{name}} from all circles?",
    "atomType": {
      "kb_document": "Document",
      "kg_node": "Entity",
      "kg_edge": "Relation",
      "conversation_memory": "Memory"
    },
    "couldNotLoad": "Could not load data.",
    "couldNotSave": "Could not save changes.",
    "score": "Relevance",
    "capturedAt": "Captured",
    "peersTitle": "Connected {{appName}} instances",
    "peersSubtitle": "Paired {{appName}} instances from other household members.",
    "peersManageHint": "You pair new peers from the circles settings page:",
    "peersEmptyHeadline": "No paired {{appName}}s yet.",
    "peersEmptyHint": "Pair two {{appName}} instances through the QR-code handshake to enable federated queries.",
    "peersCouldNotLoad": "Could not load peer list.",
    "peerNeverSeen": "Not seen yet",
    "peerJustNow": "Just now",
    "peerMinutesAgo": "{{n}}m ago",
    "peerHoursAgo": "{{n}}h ago",
    "peerDaysAgo": "{{n}}d ago",
    "revokePeer": "Revoke pairing",
    "peerShowAudit": "Show queries to this peer",
    "revokePeerTitle": "Revoke pairing?",
    "revokePeerConfirm": "Really end pairing with {{name}}? This {{appName}} will no longer be able to query your shared atoms.",
    "peerRevoked": "Pairing with {{name}} revoked.",
    "peerRevokeFailed": "Could not revoke the pairing.",
    "pairingTitle": "{{appName}} pairing",
    "pairingSubtitle": "Pair your {{appName}} with another household member's for federated queries.",
    "pairingManageLinkText": "Manage paired peers →",
    "pairInitiate": "Start a new pairing",
    "pairAccept": "Accept a pairing invitation",
    "pairInitiateTitle": "Start a new pairing",
    "pairInitiateStep1Explanation": "A signed invitation will be generated. Show the QR code to the other {{appName}} — they'll scan it and send back a signed response.",
    "pairInitiateStep2Instruction": "Show this QR code to the other {{appName}}. Once they respond, paste the response JSON below.",
    "pairInitiateStep3Instruction": "Almost done — what tier do you want to grant {{name}}?",
    "pairPasteResponse": "Paste response JSON",
    "pairResponseRequired": "Please paste the response JSON.",
    "pairResponseMalformed": "Response JSON is not valid.",
    "pairResponseMissingField": "Field \"{{field}}\" is missing from the response.",
    "pairResponseWrongNonce": "Response doesn't match this invitation.",
    "pairGenerateOffer": "Generate invitation",
    "pairCopyJson": "Copy JSON",
    "pairCompleteButton": "Complete pairing",
    "pairOfferFailed": "Couldn't generate the invitation.",
    "pairCompleteFailed": "Pairing failed.",
    "pairSuccess": "Paired successfully.",
    "pairSuccessHint": "The paired {{appName}} will now appear in your peer list.",
    "pairUnknownPeer": "Unknown peer",
    "pairAcceptTitle": "Accept a pairing invitation",
    "pairAcceptStep1Instruction": "Paste the invitation JSON the other {{appName}} sent you (from their QR code or via copy/paste).",
    "pairAcceptStep2Instruction": "Accept pairing with {{name}}. What tier do you want to grant them?",
    "pairAcceptStep3Instruction": "Show this QR code to the other {{appName}} so they can finish the handshake.",
    "pairAcceptStep3Hint": "You can close this window — your side of the pairing is already saved. The other side will finish the handshake after scanning this code.",
    "pairTierForThem": "Tier you grant this peer",
    "pairOffer": "Invitation",
    "pairOfferRequired": "Please paste the invitation JSON.",
    "pairOfferMalformed": "Invitation JSON is not valid.",
    "pairOfferMissingField": "Field \"{{field}}\" is missing from the invitation.",
    "pairOfferExpired": "Invitation expired. Please request a new one.",
    "pairAcceptButton": "Accept pairing",
    "pairAcceptFailed": "Couldn't accept the invitation.",
    "pairQrCodeOfferAria": "QR code containing signed pairing invitation",
    "pairQrCodeResponseAria": "QR code containing signed pairing response"
  },
  "federationAudit": {
    "title": "Federation history",
    "subtitle": "Every query you've sent to a paired {{appName}}.",
    "loadFailed": "Couldn't load audit history.",
    "retentionNote": "Entries are kept for 90 days and then automatically removed.",
    "filteredByPeer": "Filtered to {{name}}.",
    "clearFilter": "Clear filter",
    "managePeersLink": "Manage peers →",
    "emptyHeadline": "No federated queries yet",
    "emptyHint": "Once you ask a paired {{appName}} a question, it shows up here.",
    "queryLabel": "Your question",
    "answerLabel": "Answer",
    "errorLabel": "Error",
    "durationSubSecond": "< 1 sec",
    "durationSeconds": "{{n}} sec",
    "durationMinutes": "{{n}} min",
    "status": {
      "success": "Answered successfully",
      "failed": "Failed",
      "unknown": "Unknown status (cancelled)"
    }
  },
  "wissensbasis": {
    "page": {
      "title": "Wissensbasis",
      "description": "Composed view of recent reasoning and focused entity neighborhood.",
      "reasoningSection": "Reasoning subgraph",
      "reasoningHeading": "Recent reasoning",
      "focusSection": "Focus neighborhood",
      "focusHeading": "Entity neighborhood"
    },
    "panel": {
      "ariaLabel": "Wissensbasis composed view",
      "heading": "Wissensbasis",
      "expand": "Open Wissensbasis panel",
      "expandShort": "Wissensbasis",
      "collapse": "Collapse panel",
      "reasoningHeading": "Reasoning",
      "focusHeading": "Focus",
      "defaultMix": "default mix"
    },
    "subgraph": {
      "loading": "Loading…",
      "empty": "No reasoning steps captured for this answer.",
      "inlineHeading": "Entities the agent used",
      "relationsToggle": "Relations ({{count}})",
      "altListToggle": "Show as list ({{count}} entities)",
      "canvasLabel": "Reasoning graph visualization"
    },
    "search": {
      "label": "Search an entity by name — releases, tickets, people, documents",
      "placeholder": "e.g. PRODUCT-A 1.3.5 or REVA-100",
      "hint": "Direct entry. Start typing the name of the thing you want to focus on.",
      "noResults": "Nothing found for \"{{q}}\". Try a different name or paste an ID.",
      "mentions": "{{count}} mentions",
      "couldNotLoad": "Search failed"
    },
    "focus": {
      "empty": "Click a citation chip in the answer to focus an entity here.",
      "directNeighbors": "Direct neighbors",
      "indirectNeighbors": "Two hops away",
      "overflow": "+{{count}} more",
      "overflowTooltip": "Open the standalone view to browse all neighbors",
      "importance": "importance {{pct}}%",
      "importanceTooltip": "Connectivity score",
      "couldNotLoad": "Could not load focus neighborhood",
      "observedFields": "Observed values",
      "observedFieldsTooltip": "Field values pinned at observation time — source for audit replay",
      "observedAt": "as of {{when}}",
      "observedFieldsMore": "+{{count}} more values",
      "sourcePriority1": "From cached snapshots",
      "sourcePriority2": "From knowledge graph",
      "sourcePriority3": "From recent session trace"
    },
    "chip": {
      "ariaLabel": "Focus on {{label}}",
      "missingTooltip": "Could not resolve entity"
    },
    "nextAction": {
      "ariaLabel": "Suggested next action",
      "delegate": "Delegate: {{name}}",
      "draftButton": "Draft message to {{name}}",
      "unavailableButton": "{{name}} unavailable",
      "draftDisabled": "Draft action ships in T19.2"
    },
    "trace": {
      "couldNotLoad": "Could not load reasoning trace"
    },
    "mix": {
      "couldNotLoad": "Could not load layout configuration"
    }
  }
}