{
  "@@locale": "en",
  "@@x-source-of-truth": "DEC-015 (register v0.9.5). Template ARB for English. Server-provided content is NOT translated (ADR-008 / DEC-015).",

  "appTitle": "Chanora",

  "homeNotProductionReadyBanner": "Beta build — voice in/out wired; not production ready.",

  "fieldServerHost": "Server address",
  "fieldNickname": "Nickname",
  "fieldServerPassword": "Server password",
  "fieldServerPasswordHelp": "Leave blank if the server does not require one.",
  "fieldPassword": "Password",
  "fieldDisplayName": "Display name",

  "connectAction": "Connect",
  "disconnectAction": "Leave server",
  "disconnectConfirmTitle": "Leave server?",
  "disconnectConfirmBody": "You will disconnect from the current server.",
  "disconnectConfirmCancel": "Stay",
  "disconnectConfirmAction": "Leave",
  "refreshAction": "Refresh",
  "diagnosticsAction": "Diagnostics",
  "diagnosticsSaveAction": "Save export",
  "diagnosticsLiveUpdating": "Live updating",
  "shareAction": "Share",
  "diagnosticsSaved": "Diagnostic export saved to {path}",
  "@diagnosticsSaved": {
    "placeholders": { "path": { "type": "String" } }
  },
  "aboutAction": "About",
  "aboutVersion": "Version {version}",
  "@aboutVersion": {
    "placeholders": { "version": { "type": "String" } }
  },
  "aboutAuthor": "Author: Edison Jwa",
  "aboutNonAffiliation": "Chanora is independent and is not affiliated with, endorsed by, sponsored by, or officially associated with TeamSpeak.",
  "aboutLicenseHeading": "License",
  "aboutLicenseBody": "Chanora is dual-licensed under the Apache License, Version 2.0 or the MIT License, at your option. The full license texts ship as LICENSE-APACHE and LICENSE-MIT at the repository root.",
  "aboutThirdPartyHeading": "Third-party software",
  "aboutThirdPartyBody": "Chanora is built on tsclientlib, flutter_rust_bridge, platform-native audio backends, rusqlite, and the Flutter framework, among others. See the NOTICE file at the repository root for the current attribution list.",
  "copyAction": "Copy",
  "closeAction": "Close",
  "openAction": "Open",
  "cancelAction": "Cancel",
  "retryAction": "Retry",
  "chatAction": "Chat",
  "chatCloseAction": "Close chat",
  "chatNewPrivateAction": "New private chat",
  "chatSearchClientsHint": "Search clients...",
  "chatDirectMessageAction": "Private message",
  "chatPokeAction": "Poke",
  "clientInfoAction": "Info",
  "startAudioAction": "Start audio",
  "pttHoldToTalk": "Hold to talk",
  "pttTransmitting": "Transmitting…",
  "pttHoldToTalkSemanticsHint": "Press and hold to transmit voice; release to stop.",
  "pttCapabilityBadge": "PTT: {level} ({backend})",
  "@pttCapabilityBadge": {
    "placeholders": {
      "level": { "type": "String" },
      "backend": { "type": "String" }
    }
  },
  "pttCapabilityBoundKey": "Key: {key}",
  "@pttCapabilityBoundKey": {
    "placeholders": {
      "key": { "type": "String" }
    }
  },
  "pttCapabilityExplainTitle": "Push-to-Talk capability",
  "pttCapabilityExplainFocusedHeading": "Focused PTT",
  "pttCapabilityExplainFocusedBody": "Chanora is currently using Focused Push-to-Talk: the binding only fires while the Chanora window is focused. This is the universal fallback used on every platform when a global capture path is not available.",
  "pttCapabilityExplainGoGlobalWindows": "On Windows, Global PTT is engaged automatically once you bind a key. No additional permission is required.",
  "pttCapabilityExplainGoGlobalMacos": "On macOS, Global PTT requires Input Monitoring permission. Open System Settings → Privacy & Security → Input Monitoring, allow Chanora, then re-bind the key.",
  "pttCapabilityExplainGoGlobalLinux": "On Linux, Global PTT requires a GNOME-Wayland desktop with the GlobalShortcuts portal. Re-bind the key and accept the desktop's shortcut dialog when it appears.",
  "pttCapabilityExplainGoGlobalIos": "On iOS, Apple does not expose global hotkeys to apps. Chanora uses the on-screen Push-to-Talk button and only transmits while the app is in the foreground.",
  "pttCapabilityExplainGoGlobalGeneric": "Global PTT is not available in this environment. Focused PTT will keep working while the Chanora window has focus.",
  "pttConfigureAction": "Configure",
  "pttConfigureTitle": "Configure Push-to-Talk binding",
  "pttConfigurePrompt": "Press the key or mouse side button you want to use for Push-to-Talk.",
  "pttConfigureWaiting": "(waiting for input…)",
  "pttConfigureCaptured": "Captured",
  "pttConfigurePrivacyNote": "Chanora never logs the actual key value. Only the input class (keyboard / mouse-side-button) and a platform-neutral label leave this dialog.",
  "pttConfigureSaveAction": "Save",
  "pttConfigurePortalRedirect": "Your desktop environment will open its own shortcut dialog. Pick the key you want to use for Push-to-Talk.",
  "inputMuteAction": "Mute mic",
  "inputUnmuteAction": "Unmute mic",
  "outputMuteAction": "Mute speaker",
  "outputUnmuteAction": "Unmute speaker",
  "joinChannelAction": "Join channel",
  "leaveChannelAction": "Leave channel",
  "channelPasswordTitle": "Channel password",
  "bookmarksHeading": "Bookmarks",
  "bookmarksEmpty": "No bookmarks yet. Enter a server above and tap \"Save bookmark\".",
  "bookmarkAddAction": "Save bookmark",
  "bookmarkAddTitle": "Save bookmark",
  "bookmarkDeleteAction": "Delete bookmark",

  "statusIdle": "Not connected",
  "statusConnecting": "Connecting…",
  "statusConnected": "Connected to {server}",
  "@statusConnected": {
    "placeholders": { "server": { "type": "String" } }
  },
  "statusError": "Error: {message}",
  "@statusError": {
    "placeholders": { "message": { "type": "String" } }
  },

  "statusReconnecting": "Reconnecting… attempt {attempt}, in {delay}s",
  "@statusReconnecting": {
    "placeholders": {
      "attempt": { "type": "int" },
      "delay": { "type": "int" }
    }
  },
  "statusConnectionLost": "Connection lost: {reason}",
  "@statusConnectionLost": {
    "placeholders": { "reason": { "type": "String" } }
  },

  "audioStatsLine": "TX {sent} frames • RX {received} frames • Mic {ptt}",
  "@audioStatsLine": {
    "placeholders": {
      "sent": { "type": "int" },
      "received": { "type": "int" },
      "ptt": { "type": "String" }
    }
  },

  "channelsHeading": "Channels",
  "clientsHeading": "Online clients",
  "serverWelcomeHeading": "Server welcome message",
  "countChannelsAndClients": "{channels} channels • {clients} online",
  "@countChannelsAndClients": {
    "placeholders": {
      "channels": { "type": "int" },
      "clients":  { "type": "int" }
    }
  },

  "voiceModePtt": "PTT",
  "voiceModeContinuous": "Continuous",
  "voiceModeVoiceActivity": "Voice activity",
  "voiceModeComingSoon": "Coming soon",
  "voiceModeLabel": "Transmit mode",
  "voiceReleaseTailLabel": "Release tail",
  "voiceReleaseTailHint": "ms",
  "voiceLeaveAction": "Leave voice",
  "voiceHardMuteLabel": "Mute microphone",
  "voiceOutputMuteLabel": "Mute speakers",
  "voiceSettingsTitle": "Voice settings",
  "voiceBindKeyAction": "Bind PTT key",
  "voiceBoundKeyLabel": "Bound key",
  "voicePttHoldHint": "Hold the button",
  "voiceMicOn": "on",
  "voiceMicOff": "off",
  "voiceSheetTitle": "Voice",
  "audioOutputLabel": "Audio output",
  "audioRouteSpeaker": "Speaker",
  "audioRouteReceiver": "iPhone receiver",
  "audioRouteBluetooth": "Bluetooth",
  "audioRouteWiredHeadset": "Wired headset",
  "audioRouteCarAudio": "Car audio",
  "audioRouteAirplay": "AirPlay",
  "audioRouteUnknown": "Unknown",
  "channelJoinAlreadyIn": "Already in this channel.",
  "channelJoinFailedPermission": "Insufficient permission to join this channel.",
  "channelJoinFailedPassword": "Wrong channel password.",
  "channelJoinFailedFull": "Channel is full.",
  "channelJoinFailedFamilyFull": "Channel family limit reached.",
  "channelJoinFailedPrivate": "This channel is private.",
  "channelJoinFailedTimeout": "Could not join channel: the server didn't respond in time.",
  "channelJoinFailedGeneric": "Could not join channel: {message}",
  "@channelJoinFailedGeneric": {
    "placeholders": {
      "message": { "type": "String" }
    }
  },
  "networkPermissionTitle": "Network Permission Required",
  "networkPermissionBody": "Chanora needs permission to access the network. On macOS, go to System Settings → Privacy & Security → Local Network and enable Chanora, then try again.",
  "networkPermissionOpenSettings": "Open System Settings",
  "microphonePermissionTitle": "Microphone Permission Required",
  "microphonePermissionBody": "Chanora needs permission to access the microphone. On macOS, go to System Settings → Privacy & Security → Microphone and enable Chanora.",
  "microphonePermissionRequiredForVoice": "Microphone permission is required for voice transmission.",
  "permissionGrantAction": "Grant",
  "startupPermissionsTitle": "Permissions",
  "startupPermissionsBody": "Chanora requests microphone, Bluetooth headset, and notification permissions at startup so voice, headset routing, and the foreground session work correctly.",
  "startupPermissionsNotNow": "Not now",
  "startupPermissionsAllow": "Allow",
  "audioRouteSystemDefault": "System default",
  "audioRouteEarpiece": "Earpiece",
  "audioRouteUsbHeadset": "USB headset",
  "audioRouteOtherDevice": "Other device",
  "audioRouteRefreshDevices": "Refresh audio devices",
  "audioRouteCannotSelect": "This output cannot be selected.",
  "audioRouteChangeFailed": "Could not change audio output.",
  "iosAudioInterrupted": "Audio interrupted by system (phone call)",
  "iosAudioResuming": "Audio resuming",
  "linkTrustTitle": "Open external link?",
  "linkTrustBody": "You are about to open a link to:\n\n{domain}",
  "@linkTrustBody": {
    "placeholders": {
      "domain": { "type": "String" }
    }
  },
  "linkTrustRememberDomain": "Trust all links from this domain",
  "clientInfoFetchingProfile": "Fetching TeamSpeak profile",
  "clientInfoLoadingProfile": "Loading profile...",
  "clientInfoProfileUnavailable": "Profile unavailable",
  "clientInfoProfileUnavailableBody": "The server did not return profile details for this client.",
  "clientInfoIdentitySection": "Identity",
  "clientInfoMembershipSection": "Membership",
  "clientInfoConnectionSection": "Connection",
  "clientInfoHistorySection": "History",
  "clientInfoTransferSection": "Transfer",
  "clientInfoClientId": "Client ID",
  "clientInfoDatabaseId": "Database ID",
  "clientInfoUniqueId": "Unique ID",
  "clientInfoDescription": "Description",
  "clientInfoAvatar": "Avatar",
  "clientInfoServerGroups": "Server groups",
  "clientInfoChannelGroup": "Channel group",
  "clientInfoChannelId": "Channel ID",
  "clientInfoOnline": "Online",
  "clientInfoIdle": "Idle",
  "clientInfoPing": "Ping",
  "clientInfoAddress": "Address",
  "clientInfoPacketLossClientToServer": "Packet loss C->S",
  "clientInfoPacketLossServerToClient": "Packet loss S->C",
  "clientInfoFirstConnected": "First connected",
  "clientInfoLastConnected": "Last connected",
  "clientInfoConnections": "Connections",
  "clientInfoDownloadedMonth": "Downloaded this month",
  "clientInfoUploadedMonth": "Uploaded this month",
  "clientInfoDownloadedTotal": "Downloaded total",
  "clientInfoUploadedTotal": "Uploaded total",
  "clientInfoUnknown": "Unknown",
  "clientInfoHidden": "Hidden",
  "clientInfoNone": "None",
  "pokeSnackBarClearAction": "Clear",
  "pokeSnackBarMoreIndicator": "...",
  "pokeSnackBarIncomingNoMessage": "{sender} pokes you",
  "@pokeSnackBarIncomingNoMessage": {
    "placeholders": {
      "sender": { "type": "String" }
    }
  },
  "pokeSnackBarIncomingWithMessage": "{sender} pokes you: {message}",
  "@pokeSnackBarIncomingWithMessage": {
    "placeholders": {
      "sender": { "type": "String" },
      "message": { "type": "String" }
    }
  },
  "pokeHistorySelfNoMessage": "<{time}> You poked \"{target}\".",
  "@pokeHistorySelfNoMessage": {
    "placeholders": {
      "time": { "type": "String" },
      "target": { "type": "String" }
    }
  },
  "pokeHistorySelfWithMessage": "<{time}> You poked \"{target}\" with message: {message}",
  "@pokeHistorySelfWithMessage": {
    "placeholders": {
      "time": { "type": "String" },
      "target": { "type": "String" },
      "message": { "type": "String" }
    }
  },
  "pokeHistoryIncomingNoMessage": "<{time}> \"{sender}\" pokes you",
  "@pokeHistoryIncomingNoMessage": {
    "placeholders": {
      "time": { "type": "String" },
      "sender": { "type": "String" }
    }
  },
  "pokeHistoryIncomingWithMessage": "<{time}> \"{sender}\" pokes you: {message}",
  "@pokeHistoryIncomingWithMessage": {
    "placeholders": {
      "time": { "type": "String" },
      "sender": { "type": "String" },
      "message": { "type": "String" }
    }
  },
  "permissionDenied": "Permission Denied"
}
