{
  "a11y_block.body_required": "AI Control needs accessibility access to control your device remotely. This permission allows the app to read screen content, perform gestures, and interact with other apps on your behalf.",
  "a11y_block.body_stopped": "AI Control's accessibility service was stopped by the system (likely after a crash, an OS memory-trim, or Samsung's 'restrict when unused' setting). Open Accessibility Settings, toggle AI Control OFF then back ON to restore it.",
  "a11y_block.btn_enable": "Enable Accessibility",
  "a11y_block.btn_open_settings": "Open Accessibility Settings",
  "a11y_block.path_required": "Settings > Accessibility > AI Control > Enable",
  "a11y_block.path_stopped": "Settings > Accessibility > Installed services > AI Control > toggle off then on",
  "a11y_block.title_required": "Accessibility Access Required",
  "a11y_block.title_stopped": "Accessibility service stopped",
  "about.built_with": "Built with .NET 8 + Claude Code CLI",
  "about.built_with_macos": "Swift 5.9 + Claude Code CLI",
  "about.tagline": "Give Claude AI full control of your Windows PC through 70+ native tools.",
  "about.tagline_android": "Full control of your Android device with Claude AI. 290+ tools for shell, UI automation, files, settings, and more.",
  "about.tagline_macos": "Give Claude AI full control of your Mac through native tools and remote desktop.",
  "about.title": "About AI Control",
  "about.version": "Version {version} · {tag}",
  "about.version_with_sha": "Version {version} · {tag}@{sha}",
  "about.website": "Website",
  "account.balance": "Balance:",
  "account.credits_remaining": "Credits remaining",
  "account.heartbeat_identity": "Heartbeat identity",
  "account.login_first_topup": "Log in first, then top up",
  "account.logout": "Logout",
  "account.not_logged_in": "Not logged in",
  "account.opening_checkout": "Opening NOWPayments checkout…",
  "account.status": "Status",
  "account.title": "Account",
  "account.top_up_credits": "Top up credits",
  "account.topup_failed": "Top-up failed: {error}",
  "account.via_provider": "via {provider}",
  "adb.already_connected": "Already Connected",
  "adb.btn_start_ai_setup": "Start AI Setup",
  "adb.connected": "ADB Connected",
  "adb.connected_on_port": "ADB connected on port {port}",
  "adb.connected_with_msg": "Connected: {msg}",
  "adb.dialog_body": "AI will navigate your device settings to enable wireless debugging and connect ADB automatically.",
  "adb.dialog_title": "Wireless ADB Setup",
  "adb.disconnected": "ADB Disconnected",
  "adb.failed_with_msg": "Failed: {msg}",
  "adb.not_connected": "ADB not connected",
  "adb_setup.paused_navigated_away_toast": "ADB setup paused — you navigated away. Will retry in {seconds}s.",
  "adb_setup.wifi_not_connected": "Wi-Fi is not connected to any network",
  "adb_setup.wifi_off": "Wi-Fi is OFF",
  "adb_setup.wifi_required_toast": "{reason} — connect to a Wi-Fi network to pair ADB",
  "app.about_aicontrol": "About AiControl",
  "browser_install.action_installing": "Installing",
  "browser_install.action_updating": "Updating",
  "browser_install.btn_install_now": "Install now",
  "browser_install.btn_open_browser": "Open Browser",
  "browser_install.btn_update_to": "Update to v{version}",
  "browser_install.checking": "Checking server for browser manifest…",
  "browser_install.couldnt_reach": "Couldn't reach the server.",
  "browser_install.description": "A private Chromium-based browser the AI agent can drive — navigate pages, fill forms, take screenshots, run scripts. Installs to %LOCALAPPDATA%\\AI Control\\Browser.",
  "browser_install.downloading": "Downloading Ai Browser v{version}…",
  "browser_install.downloading_stage": "Downloading {version}…",
  "browser_install.header_couldnt_reach": "Couldn't reach server",
  "browser_install.header_install": "Install Ai Browser",
  "browser_install.header_installing": "Installing Ai Browser…",
  "browser_install.header_not_published": "Browser not yet published",
  "browser_install.header_up_to_date": "Ai Browser is up to date",
  "browser_install.header_update": "Update Ai Browser",
  "browser_install.install_failed": "Install failed.",
  "browser_install.install_note": "Clicking Install will download ({size}), verify SHA-256, and unpack to ~/Applications/Ai Browser.app.",
  "browser_install.kv_available": "Available",
  "browser_install.kv_git_sha": "Git SHA",
  "browser_install.kv_installed": "Installed",
  "browser_install.kv_size": "Size",
  "browser_install.kv_version": "Version",
  "browser_install.manifest_unreachable_toast": "AI Control Browser: couldn't reach manifest",
  "browser_install.not_published_msg": "No browser build has been published yet ({reason}).",
  "browser_install.not_published_timeout_toast": "AI Control Browser: APK not published after 30 min — try later",
  "browser_install.subtitle_installed": "Installed: v{version} at {path}",
  "browser_install.subtitle_peruser": "Per-user install at {path}",
  "browser_install.title": "AI Control Browser",
  "browser_install.unsigned_note": "Note: AI Control Browser is currently unsigned (dev build). Windows SmartScreen may warn on first launch — click 'More info' → 'Run anyway'.",
  "browser_install.up_to_date_msg": "Ai Browser v{version} is up to date.",
  "browser_install.update_note": "Update will replace the existing ~/Applications/Ai Browser.app in place.",
  "browser_install.waiting_publish_subtitle": "Waiting for {platform} APK to publish…",
  "browser_manager.clone": "Clone",
  "browser_manager.close": "Close",
  "browser_manager.delete": "Delete",
  "browser_manager.launch": "Launch chrome.exe",
  "browser_manager.rename": "Rename",
  "chat.agent_working": "Agent is working...",
  "chat.cancel_selection": "Cancel selection",
  "chat.close_all_tabs": "Close all tabs",
  "chat.close_tabs_right": "Close tabs to the right",
  "chat.copy_chat": "Copy chat",
  "chat.copy_message": "Copy message",
  "chat.empty_subtitle": "Ask Claude to control your Android device",
  "chat.empty_subtitle_macos": "Your messages stream back in real time and persist across relaunches.",
  "chat.empty_title": "Ask Claude anything",
  "chat.export_chat": "Export chat",
  "chat.forward": "Forward",
  "chat.forward_to": "Forward to...",
  "chat.forwarded_toast": "{count} message(s) forwarded to {tab}",
  "chat.help_attach_file": "Attach file",
  "chat.help_copy_conversation": "Copy conversation (⌘⇧C)",
  "chat.help_new_chat": "New chat",
  "chat.help_paste_image": "Paste image from clipboard",
  "chat.help_record_voice": "Record voice (click to start/stop)",
  "chat.help_send": "Send (↩ or ⌘↩)",
  "chat.help_stop": "Stop generating",
  "chat.help_stop_recording": "Stop recording & transcribe",
  "chat.input_hint": "Message Claude...",
  "chat.input_placeholder": "Message…",
  "chat.menu": "Menu",
  "chat.new_tab": "New Tab",
  "chat.no_internet_message": "Wi-Fi and mobile data are both off. Please connect to the internet to use the app.",
  "chat.no_internet_title": "No Internet",
  "chat.no_other_tabs": "No other tabs available",
  "chat.retrying": "Retrying...",
  "chat.selected_count": "{count} selected",
  "chat.send": "Send",
  "chat.server_unreachable_message": "Cannot reach the server. Please check your internet connection.",
  "chat.server_unreachable_title": "Server Unreachable",
  "chat.share": "Share",
  "chat.stop": "Stop",
  "chat.switch_to_latest_dev": "Switch to latest dev",
  "chat.switch_to_latest_release": "Switch to latest release",
  "chat.thinking": "Thinking...",
  "chat.tool_fallback": "tool",
  "chat.tool_result_fallback": "result",
  "chat.update_to_latest_dev": "Update to latest dev",
  "chat.update_to_latest_release": "Update to latest release",
  "chat.voice_aec_hardware": "✓ Hardware AEC",
  "chat.voice_aec_hardware_desc": "Speaker bleed cancelled by the audio HAL — barge-in is reliable.",
  "chat.voice_aec_software": "⚠ Software-only AEC",
  "chat.voice_aec_software_desc": "OS has no HW echo canceller; relying on software AEC. Barge-in may false-trigger.",
  "chat.voice_dialog_title": "Start voice chat",
  "chat.voice_end": "End voice session",
  "chat.voice_language_label": "Language",
  "chat.voice_local_tts": "Local device TTS",
  "chat.voice_start": "Start voice session",
  "chat.voice_start_btn": "Start",
  "chat.voice_tts_available": "Play AI replies with the phone's built-in voice engine{engine}. Lower latency; quality depends on the device.",
  "chat.voice_tts_checking": "Checking on-device voices…",
  "chat.voice_tts_unavailable": "{name} voice not installed in the current TTS engine{engine}. Open Settings → System → Languages → Text-to-speech to install voices, or pick a different default engine.",
  "chat.waiting_for_connection": "Waiting for connection...",
  "common.add": "Add",
  "common.apply": "Apply",
  "common.back": "Back",
  "common.cancel": "Cancel",
  "common.cancelled": "Cancelled",
  "common.close": "Close",
  "common.connect": "Connect",
  "common.copy": "Copy",
  "common.delete": "Delete",
  "common.disconnect": "Disconnect",
  "common.dismiss": "Dismiss",
  "common.edit": "Edit",
  "common.exit": "Exit",
  "common.install": "Install",
  "common.loading": "Loading…",
  "common.not_now": "Not now",
  "common.ok": "OK",
  "common.quit": "Quit",
  "common.refresh": "Refresh",
  "common.retry": "Retry",
  "common.revoke": "Revoke",
  "common.run": "Run",
  "common.save": "Save",
  "common.select_all": "Select all",
  "common.skip": "Skip",
  "common.start": "Start",
  "confirm.title": "Confirm",
  "confirm.yes": "Yes",
  "devices.count_summary": "{count} {noun}, {online} online",
  "devices.empty": "No devices registered",
  "devices.noun_plural": "devices",
  "devices.noun_singular": "device",
  "devices.remove": "Remove",
  "devices.this_device": "this device",
  "devices_list.btn_apk_word": "APK",
  "devices_list.btn_dev": "⬆ Dev",
  "devices_list.btn_dev_word": "Dev",
  "devices_list.col_battery": "Battery",
  "devices_list.col_device": "Device",
  "devices_list.col_ip": "IP",
  "devices_list.col_last_seen": "Last seen",
  "devices_list.col_platform": "Platform",
  "devices_list.col_signal": "Signal",
  "devices_list.col_sim": "SIM / Carrier",
  "devices_list.col_status": "Status",
  "devices_list.col_temp": "Temp",
  "devices_list.col_update": "Update",
  "devices_list.col_version": "Version",
  "devices_list.dev_apk_title": "Dev APK",
  "devices_list.dev_update_title": "Dev update",
  "devices_list.exit_badge": "exit",
  "devices_list.filter_all": "All",
  "devices_list.filter_all_platforms": "All platforms",
  "devices_list.filter_offline": "Offline",
  "devices_list.filter_online": "Online",
  "devices_list.help_push_apk": "Push current Android dev APK to this peer",
  "devices_list.help_push_dev": "Push current dev build to this Windows peer",
  "devices_list.help_push_stable": "Push stable v{version} to this peer",
  "devices_list.no_android_dev_build": "No Android dev build available on the server yet.",
  "devices_list.no_dev_build": "No dev build available on the server yet.",
  "devices_list.platform_android": "Android",
  "devices_list.platform_macos": "macOS",
  "devices_list.platform_other": "Other",
  "devices_list.platform_windows": "Windows",
  "devices_list.push_failed": "Push failed: {channel} → {device}",
  "devices_list.push_ok": "Pushed {channel} to {device}",
  "devices_list.push_ok_detail": "The remote will pull, verify, swap, and relaunch.",
  "devices_list.search_placeholder": "Search by name, ID, IP, SIM, version...",
  "devices_list.subtitle": "Source: /devices/sessions · click Revoke to sign a device out",
  "devices_list.this_device": " (this device)",
  "devices_list.this_device_paren": "(this device)",
  "devices_list.title": "Devices",
  "devices_list.tooltip_apk_push": "Install the latest dev APK on this Android peer (pm install -r via InputBridge — no on-device prompt).",
  "devices_list.tooltip_dev_push": "Push the latest dev-channel build (server-gated; only testers see this).",
  "devices_list.tooltip_release_push": "Push the latest GitHub release to this peer. The remote pulls, verifies, swaps + relaunches silently.",
  "devices_list.tooltip_revoke": "Sign this device out and revoke its access key. The device will need to log in again.",
  "dialog.update.downloading": "Downloading {filename}",
  "dialog.update.installing": "Installing",
  "dialog.update.verifying": "Verifying SHA-256",
  "disclaimer.accept": "I Accept",
  "disclaimer.accept_checkbox": "I have read and accept the Terms of Use and Risk Disclaimer.",
  "disclaimer.decline": "Decline",
  "disclaimer.header": "Important Notice",
  "disclaimer.subheader": "Please read and accept before continuing",
  "disclaimer.title": "AI Control — Terms of Use",
  "export.format_csv": "CSV",
  "export.format_markdown": "Markdown",
  "export.format_text": "Text",
  "figma_install.description": "A standalone WPF tool that turns Figma frames into pixel-perfect HTML/CSS or React via the Claude Figma plugin. Installs to %LOCALAPPDATA%\\AiControlFigma.",
  "figma_install.title": "AI Control Figma",
  "git_bash.advanced": "If Git is already installed in a custom path, set the environment variable ",
  "git_bash.advanced_2": " to the full path of your ",
  "git_bash.advanced_3": " and relaunch.",
  "git_bash.body": "Claude Code requires Git for Windows to run on this machine. Without it, chat returns a generic error and never starts.",
  "git_bash.install_btn": "Install Git",
  "git_bash.instructions": "Click ",
  "git_bash.instructions_2": " below to open the download page. Use the default installer options — AiControl picks up ",
  "git_bash.instructions_3": " automatically on the next launch.",
  "git_bash.subtitle": "AiControl needs git-bash to run Claude Code",
  "git_bash.title": "Git for Windows required",
  "git_bash.window_title": "AI Control — Git for Windows required",
  "log_viewer.auto_scroll": "Auto-scroll",
  "log_viewer.clear": "Clear",
  "log_viewer.entries_count": "{shown} / {total} entries",
  "log_viewer.filter_placeholder": "Filter...",
  "log_viewer.level_debug": "DEBUG",
  "log_viewer.level_error": "ERROR",
  "log_viewer.level_info": "INFO",
  "log_viewer.level_warn": "WARN",
  "log_viewer.logs_copied": "Logs copied ({count} entries)",
  "log_viewer.search_placeholder": "Search…",
  "log_viewer.shortcut_hint": "  (Win+Shift+E)",
  "log_viewer.title": "Log Viewer",
  "log_viewer.window_title": "Log Viewer - AI Control",
  "log_viewer.zero_entries": "0 entries",
  "login.advanced": "Advanced",
  "login.button": "Login",
  "login.continue_github": "Continue with GitHub",
  "login.continue_google": "Continue with Google",
  "login.email": "Email",
  "login.oauth_hint_macos": "Opens your browser. After you sign in, the token returns via the aicontrol:// URL scheme and is stored in macOS Keychain.",
  "login.password": "Password",
  "login.required_hint": "Login required to use AI Control",
  "login.server_url_label": "Server URL (for self-hosted deployments)",
  "login.sign_in_to_continue": "Sign in to continue",
  "login.sign_in_to_start": "Sign in to start",
  "login.signing_in": "Signing in…",
  "login.tagline": "Full control of your Android device with Claude AI",
  "login.tagline_pc": "Login to control your PC with AI",
  "login.with_github": "Login with GitHub",
  "login.with_google": "Login with Google",
  "mcp_tester.arguments_json": "Arguments (JSON):",
  "mcp_tester.execute": "Execute",
  "mcp_tester.result": "Result:",
  "mcp_tester.running": "Running...",
  "mcp_tester.title": "MCP Tool Tester",
  "mcp_tester.tools_count": "{count} tools",
  "menu.about": "About",
  "menu.about_aicontrol": "About AiControl",
  "menu.account": "Account",
  "menu.browser": "Browser",
  "menu.chat": "Chat",
  "menu.chat.clear": "Clear Chat",
  "menu.chat.copy_all": "Copy All",
  "menu.chat.export_csv": "Export as CSV...",
  "menu.chat.export_markdown": "Export as Markdown...",
  "menu.chat.export_pdf": "Export as PDF (via browser)...",
  "menu.chat.export_text": "Export as Text...",
  "menu.chat.new": "New Chat",
  "menu.click_top_up": "Click to top up",
  "menu.devices": "Devices",
  "menu.devices.list": "List...",
  "menu.devices.mesh_vpn": "Mesh VPN...",
  "menu.devices.remote_desktop": "Remote Desktop",
  "menu.devices.test_remote_peers": "Test remote peers...",
  "menu.devices_ellipsis": "Devices…",
  "menu.file": "File",
  "menu.file.exit": "Exit",
  "menu.file.settings": "Settings",
  "menu.help": "Help",
  "menu.help.about": "About",
  "menu.help.check_updates": "Check for Updates",
  "menu.help.shortcuts": "Keyboard Shortcuts",
  "menu.help.switch_dev": "Switch to latest dev build...",
  "menu.help.switch_release": "Switch to latest release...",
  "menu.help.update_browser": "Update AI Control Browser...",
  "menu.help.update_dev": "Update to latest dev build...",
  "menu.help.update_release": "Update to latest release...",
  "menu.install_ai_browser": "Install Ai Browser…",
  "menu.install_browser": "Install Browser",
  "menu.logout": "Logout",
  "menu.logs_ellipsis": "Logs…",
  "menu.mcp_tester": "MCP Tester",
  "menu.mesh_vpn": "Mesh VPN",
  "menu.mesh_vpn_ellipsis": "Mesh VPN…",
  "menu.open_ai_browser": "Open Ai Browser",
  "menu.open_browser_control_panel": "Open Browser Control Panel",
  "menu.permissions_ellipsis": "Permissions…",
  "menu.pin_hint": "Pin to right edge (always on top)",
  "menu.prompt_templates": "Prompt Templates",
  "menu.proxy_ellipsis": "Proxy…",
  "menu.quit_aicontrol": "Quit AiControl",
  "menu.remote_desktop": "Remote Desktop",
  "menu.remote_desktop_ellipsis": "Remote Desktop…",
  "menu.sessions": "Sessions",
  "menu.sessions_ellipsis": "Sessions…",
  "menu.settings": "Settings",
  "menu.settings_ellipsis": "Settings…",
  "menu.setup_adb": "Setup ADB",
  "menu.sign_in": "Sign in",
  "menu.sign_in_hint": "Sign in via browser (opens aicontrol.pc.am)",
  "menu.sign_out": "Sign out",
  "menu.switch_latest_dev": "Switch to latest dev build…",
  "menu.switch_latest_release": "Switch to latest release…",
  "menu.tools": "Tools",
  "menu.tools.install_browser": "Install AI Control Browser",
  "menu.tools.install_figma": "Install AI Control Figma",
  "menu.tools.language": "Language",
  "menu.tools.log_viewer": "Log Viewer",
  "menu.tools.open_browser": "Open AI Control Browser",
  "menu.tools.open_browser_manager": "Open Browser Control Panel",
  "menu.tools.open_figma": "Open AI Control Figma",
  "menu.unpin_hint": "Unpin (restore window)",
  "menu.update_ai_browser_to_v": "Update Ai Browser to v{version}…",
  "menu.update_browser_to_v": "Update Browser to v{version}",
  "menu.update_latest_dev": "Update to latest dev build…",
  "menu.update_latest_release": "Update to latest release…",
  "mesh.advertise_exit": "Advertise as exit node",
  "mesh.advertise_exit_hint": "Share this PC's internet with Android / other Windows peers. (Admin elevation required.)",
  "mesh.advertise_exit_hint_android": "Other devices in your account can route traffic through this phone.",
  "mesh.advertise_exit_hint_mac": "Other peers may route their traffic through this Mac.",
  "mesh.advertise_subnets": "Advertise subnets (F4 subnet router)",
  "mesh.advertise_subnets_cidr_hint": "Type a CIDR (e.g. 192.168.1.0/24) to announce a reachable subnet. Other devices in your account will route that range through this phone.",
  "mesh.advertise_subnets_dialog_hint": "Comma-separated CIDR list. Example: 192.168.1.0/24,10.0.0.0/24",
  "mesh.advertise_subnets_hint": "Comma-separated CIDRs. Peers will route traffic for these subnets through this device.",
  "mesh.advertise_subnets_hint_mac": "Comma-separated CIDRs this Mac announces into the mesh.",
  "mesh.advertise_subnets_label": "Advertise subnets",
  "mesh.advertise_subnets_none": "None — this device doesn't route any LAN traffic for peers.",
  "mesh.advertising_exit": "Advertising as exit node",
  "mesh.advertising_exit_hint": "Other devices on your account will see this phone in their Client picker. Connected clients are listed below.",
  "mesh.age_s_ago": "{age}s ago",
  "mesh.available_exit_nodes": "Available exit nodes ({count})",
  "mesh.connected": "Connected",
  "mesh.connected_coordinator": "Connected to coordinator",
  "mesh.connecting": "Connecting…",
  "mesh.coordinator": "Coordinator: ",
  "mesh.disconnected": "Disconnected",
  "mesh.enabled_hint": "Join the mesh and keep the coordinator connection alive.",
  "mesh.enabled_toggle": "Mesh enabled",
  "mesh.endpoint_plural": "endpoints",
  "mesh.endpoint_singular": "endpoint",
  "mesh.error": "Error",
  "mesh.excluded_summary": "{excluded} excluded · {total} apps shown",
  "mesh.exit_badge": "Exit",
  "mesh.exit_node": "Exit node: ",
  "mesh.failed": "Failed",
  "mesh.handshake_ago": "handshake {n}s ago",
  "mesh.handshake_label": "Handshake",
  "mesh.incoming_clients": "Incoming clients",
  "mesh.incoming_clients_hint": "Peers tunnelling through this PC right now. Disappears automatically when a peer goes idle.",
  "mesh.last_error": "Last error: ",
  "mesh.my_ip": "My mesh IP: ",
  "mesh.my_ip_inline": "my ip {ip}",
  "mesh.my_ip_label": "My mesh IP",
  "mesh.no_clients_connected": "No clients connected.",
  "mesh.no_exit_nodes_yet": "No exit nodes announced yet. Start the app on another device and pick Exit Node there.",
  "mesh.no_incoming": "No incoming clients — nobody is routing through this PC.",
  "mesh.none": "None",
  "mesh.notification_title": "AI Control mesh",
  "mesh.peer_label": "Peer",
  "mesh.peers": "Peers",
  "mesh.reset_identity": "Reset identity",
  "mesh.search_apps": "Search apps…",
  "mesh.selected": "Selected",
  "mesh.split_tunnel_intro": "Apps you check will bypass the mesh VPN — their traffic uses your phone's normal network instead of the tunnel. AI Control itself is always excluded (can't be unchecked) so signaling doesn't loop back through the VPN.",
  "mesh.split_tunnel_title": "Split tunneling",
  "mesh.stat_direct": "direct",
  "mesh.stat_relay": "relay",
  "mesh.subtitle": "Join the AiControl mesh — tunnel through an Android exit node, or share this PC's internet.",
  "mesh.title": "Mesh VPN",
  "mesh.tunnel": "Tunnel: ",
  "mesh.tunnel_connected_direct": "Tunnel: connected (direct)",
  "mesh.tunnel_connected_relay": "Tunnel: connected (via relay)",
  "mesh.tunnel_failed": "Tunnel: failed",
  "mesh.tunnel_punching": "Tunnel: punching…",
  "mesh.use_local_network": "Use local network — no exit node",
  "mesh.via": "Via: ",
  "mesh.via_label": "Via",
  "mesh.via_relay": "Via relay",
  "mesh.vpn_off": "Mesh VPN is off",
  "mesh.vpn_off_hint": "Flip the switch in the top bar to join the mesh. Your saved role and peer will be restored.",
  "mesh.window_title": "Mesh VPN — AI Control",
  "model.change_title": "Change Model",
  "model.open_new_tab": "Open in new tab",
  "model.reset_chat": "Reset this chat",
  "model.switching_prompt": "Switching to {model}. This chat has messages — what would you like to do?",
  "model_change.body": "This chat has an active {old} session. Switching to {new} requires a fresh session.",
  "model_change.requires_fresh": " requires a fresh session.",
  "model_change.session": " session.",
  "model_change.switch_title": "Switch model?",
  "model_change.switching_to": "Switching to ",
  "model_change.this_chat_has": "This chat has an active ",
  "model_change.title": "Change Model",
  "permissions.footer_hint": "Toggles flipped in System Settings update here automatically when you return to AiControl.",
  "permissions.manage": "Manage",
  "permissions.manage_hint": "Open this permission's pane in System Settings",
  "permissions.recheck_hint": "Re-check all permissions now",
  "permissions.title": "Privacy & Security",
  "prompt_templates.cat_apps": "Apps",
  "prompt_templates.cat_coding": "Coding",
  "prompt_templates.cat_contacts": "Contacts",
  "prompt_templates.cat_files": "Files",
  "prompt_templates.cat_media": "Media",
  "prompt_templates.cat_network": "Network",
  "prompt_templates.cat_screen": "Screen",
  "prompt_templates.cat_settings": "Settings",
  "prompt_templates.cat_system": "System",
  "prompt_templates.label_app_info": "App Info",
  "prompt_templates.label_battery_status": "Battery Status",
  "prompt_templates.label_bluetooth": "Bluetooth",
  "prompt_templates.label_brightness": "Brightness",
  "prompt_templates.label_create_file": "Create File",
  "prompt_templates.label_dark_mode": "Dark Mode",
  "prompt_templates.label_debug": "Debug",
  "prompt_templates.label_explain_code": "Explain Code",
  "prompt_templates.label_find_button": "Find Button",
  "prompt_templates.label_find_contact": "Find Contact",
  "prompt_templates.label_installed_apps": "Installed Apps",
  "prompt_templates.label_ip_address": "IP Address",
  "prompt_templates.label_list_contacts": "List Contacts",
  "prompt_templates.label_list_files": "List Files",
  "prompt_templates.label_mute": "Mute",
  "prompt_templates.label_open_app": "Open App",
  "prompt_templates.label_optimize": "Optimize",
  "prompt_templates.label_read_screen": "Read Screen",
  "prompt_templates.label_running_apps": "Running Apps",
  "prompt_templates.label_screenshot": "Screenshot",
  "prompt_templates.label_search_files": "Search Files",
  "prompt_templates.label_set_volume": "Set Volume",
  "prompt_templates.label_speed_test": "Speed Test",
  "prompt_templates.label_storage": "Storage",
  "prompt_templates.label_system_info": "System Info",
  "prompt_templates.label_volume": "Volume",
  "prompt_templates.label_wifi_info": "WiFi Info",
  "prompt_templates.label_write_script": "Write Script",
  "prompt_templates.prompt_app_info": "Show info about the Chrome app",
  "prompt_templates.prompt_battery_status": "What is my battery level and charging status?",
  "prompt_templates.prompt_bluetooth": "Turn on Bluetooth",
  "prompt_templates.prompt_brightness": "Set my screen brightness to 80%",
  "prompt_templates.prompt_create_file": "Create a text file on my device with a reminder",
  "prompt_templates.prompt_dark_mode": "Enable dark mode",
  "prompt_templates.prompt_debug": "Help me debug this error",
  "prompt_templates.prompt_explain_code": "Explain what this code does",
  "prompt_templates.prompt_find_button": "Find all clickable buttons on the current screen",
  "prompt_templates.prompt_find_contact": "Find contact named John",
  "prompt_templates.prompt_installed_apps": "List all installed apps",
  "prompt_templates.prompt_ip_address": "What is my current IP address?",
  "prompt_templates.prompt_list_contacts": "Show my contacts list",
  "prompt_templates.prompt_list_files": "List files in my Downloads folder",
  "prompt_templates.prompt_mute": "Mute my device",
  "prompt_templates.prompt_open_app": "Open the Settings app",
  "prompt_templates.prompt_optimize": "Optimize this code for performance",
  "prompt_templates.prompt_read_screen": "Read all text visible on my screen",
  "prompt_templates.prompt_running_apps": "List all running apps and their memory usage",
  "prompt_templates.prompt_screenshot": "Take a screenshot of my screen",
  "prompt_templates.prompt_search_files": "Search for all PDF files on my device",
  "prompt_templates.prompt_set_volume": "Set my volume to 50%",
  "prompt_templates.prompt_speed_test": "Test my internet connection speed",
  "prompt_templates.prompt_storage": "How much storage space is available on my device?",
  "prompt_templates.prompt_system_info": "Show my device system information",
  "prompt_templates.prompt_volume": "What is my current volume level?",
  "prompt_templates.prompt_wifi_info": "Show my WiFi connection details",
  "prompt_templates.prompt_write_script": "Write a shell script that backs up my photos",
  "proxy.apply_hint": "Apply proxy via networksetup. Will prompt for admin password once.",
  "proxy.clear": "Clear",
  "proxy.clear_hint": "Disable proxy on every active network service. Will prompt for admin password.",
  "proxy.configure": "Configure",
  "proxy.current_state": "Current state",
  "proxy.host": "Host",
  "proxy.no_proxy_active": "No system proxy is active",
  "proxy.note_admin_prompt": "• You'll see one admin password prompt when you click Apply or Clear. Settings stay in place after that — no per-launch prompts.",
  "proxy.note_mesh_mutex": "• Activating a proxy will disconnect any active mesh exit-node tunnel (proxy/mesh mutex — same routing decision).",
  "proxy.note_persists": "• Applies to every active network service (Wi-Fi, Ethernet, …) via /usr/sbin/networksetup. Persists across reboots.",
  "proxy.note_settings_sync": "• System Settings → Network → Proxies edits the same backing plist; this panel and that pane stay in sync.",
  "proxy.notes": "Notes",
  "proxy.open_system_settings": "Open System Settings",
  "proxy.open_system_settings_hint": "Open Network → Proxies pane to inspect / edit by hand",
  "proxy.password_optional": "Password (optional)",
  "proxy.port": "Port",
  "proxy.reread_hint": "Re-read live system proxy state via scutil --proxy",
  "proxy.saved_cfg": "Saved cfg: {cfg}",
  "proxy.title": "System Proxy",
  "proxy.type": "Type",
  "proxy.user_optional": "User (optional)",
  "rd.account_scope_help": "This is the account this Mac is signed in to. Devices here are scoped to this account.",
  "rd.available_devices": "Available Devices",
  "rd.chat_empty_hint": "Send a message to control {name}",
  "rd.chat_error": "Error: {error}",
  "rd.chat_title": "Chat — {name}",
  "rd.click_device_hint": "Click a device to open its stream in a new window. Each stream window runs independently.",
  "rd.close_chat": "Close chat",
  "rd.connected_to": "Connected to {name} [{protocol}]",
  "rd.connecting": "Connecting…",
  "rd.connection_failed": "Connection failed ({code})",
  "rd.device_offline": "Device is offline",
  "rd.device_unreachable": "Device is unreachable",
  "rd.disconnect": "Disconnect",
  "rd.disconnected": "Disconnected",
  "rd.failed_load_devices": "Failed to load devices: {error}",
  "rd.kv_device_id": "Device id",
  "rd.kv_local_port": "Local port",
  "rd.kv_tunnel_name": "Tunnel name",
  "rd.kv_tunnel_state": "Tunnel state",
  "rd.label_audio_in": "In:",
  "rd.label_audio_out": "Out:",
  "rd.label_bitrate": "Bitrate:",
  "rd.label_box": "Box:",
  "rd.label_fps": "FPS:",
  "rd.label_keyframe": "Keyframe:",
  "rd.label_protocol": "Protocol:",
  "rd.label_quality": "Quality:",
  "rd.label_resolution": "Resolution:",
  "rd.message_placeholder": "Message...",
  "rd.mic_start_help": "Record voice → transcribe → insert into prompt",
  "rd.mic_stop_help": "Stop recording & transcribe",
  "rd.new_session_help": "Start a new session — wipes the persistent session id so the device creates a fresh chat.",
  "rd.no_devices": "No online devices found",
  "rd.no_peers_found": "No peers found on this account.",
  "rd.no_peers_reason": "Most common reason: this Mac is signed in to a different account than your Windows / Android peers. Check the email above — it must match the account those devices were signed in with. If it doesn't, sign out (Settings → Sign out) and sign back in with the right one.",
  "rd.no_saved_sessions": "No saved sessions",
  "rd.online_devices": "Online Devices",
  "rd.protocol_label": "Protocol: ",
  "rd.push_stable_help": "Push stable v{target} to this peer (silent install + relaunch)",
  "rd.reconnecting": "Reconnecting…",
  "rd.reconnecting_attempt": "Reconnecting… (attempt {attempt})",
  "rd.refresh_device_list": "Refresh device list",
  "rd.refresh_sessions_help": "Refresh session list from device",
  "rd.remote_screen": "Remote Screen",
  "rd.remote_session": "Remote Session",
  "rd.remote_thinking": "remote AI is thinking…",
  "rd.session_id_help": "Active session id (persisted across sends)",
  "rd.stream_error": "Stream error: {reason}",
  "rd.toggle_sessions": "Show / hide past chat sessions on the remote device",
  "rd.toggle_side_chat": "Toggle side-chat (⌘\\)",
  "rd.tunnel_diagnostics": "Tunnel diagnostics",
  "rd.tunnel_diagnostics_desc": "This Mac registers a reverse FRP tunnel automatically while you're signed in, so your other AiControl devices can pick it from their Available Devices list. Stops on logout. No manual toggle — same model as the WinApp.",
  "rd.window_title": "Remote Session - AI Control",
  "remote_test.auto_close_hint": "Window auto-closes ~3s after the run completes.",
  "remote_test.banner": "Admin RD test — {name}",
  "remote_test.duration": "Duration",
  "remote_test.first_frame": "1st frame",
  "remote_test.fps_avg": "FPS avg",
  "remote_test.fps_over_time": "FPS over time",
  "remote_test.heading": "Test remote peers",
  "remote_test.latency_over_time": "Latency p95 over time (lower is better — 500 ms threshold)",
  "remote_test.no_active_stream": "No active stream",
  "remote_test.pick_targets_hint": "Pick one or more targets and click Run.",
  "remote_test.preview": "preview",
  "remote_test.protocols": "Protocols",
  "remote_test.stat_elapsed": "elapsed",
  "remote_test.stat_err": "err",
  "remote_test.stat_first": "first",
  "remote_test.stat_fps": "fps",
  "remote_test.stat_frames": "frames",
  "remote_test.stat_status": "status",
  "remote_test.status_connecting": "Connecting…",
  "remote_test.status_eof": "EOF (waiting deadline)",
  "remote_test.status_finished": "finished",
  "remote_test.status_http": "HTTP {code}",
  "remote_test.status_streaming": "streaming",
  "remote_test.subtitle": "Same stream-client path the real RD window uses. Live video + graphs below.",
  "remote_test.targets": "Targets",
  "remote_test.title": "Admin-driven test",
  "remote_test.waiting_first_frame": "waiting for first frame…",
  "remote_test.window_title": "AI Control — Test remote peers",
  "service_install.benefit_1": "Keeps your device reachable for Remote Desktop and tools even when no one is signed in.",
  "service_install.benefit_2": "Stays connected after you sign out of Windows.",
  "service_install.benefit_3": "Required for the device to appear online to your other AI Control devices.",
  "service_install.header": "Install AI Control Service?",
  "service_install.title": "Install AI Control Service",
  "service_install.uac_note": "Requires administrator approval (UAC). You can install later from Settings.",
  "session_browser.chat_sessions": "Chat sessions",
  "session_browser.header": "Chat History",
  "session_browser.msg_count_one": "{count} msg",
  "session_browser.msg_count_other": "{count} msgs",
  "session_browser.open": "Open",
  "session_browser.title": "Sessions",
  "session_browser.title_placeholder": "Title",
  "session_browser.tooltip_delete": "Delete session",
  "session_browser.tooltip_local": "On this device",
  "session_browser.tooltip_rename": "Rename session",
  "session_browser.tooltip_synced": "Synced to server",
  "sessions.empty": "No sessions found",
  "sessions.local": "local",
  "sessions.rename": "Rename",
  "sessions.search_placeholder": "Search sessions...",
  "sessions.synced": "synced",
  "settings.account.access_key": "Access key",
  "settings.account.access_key_hint": "Paste the key from your /login page. Only needed when you can't sign in via the browser flow.",
  "settings.autostart_macos": "Launch when macOS starts",
  "settings.background_service": "Background service",
  "settings.browser.btn_check": "Check",
  "settings.browser.btn_recheck": "Recheck",
  "settings.browser.btn_update_to": "Update to {version}",
  "settings.browser.check_failed": "Couldn't reach manifest: {error}",
  "settings.browser.checking": "Checking…",
  "settings.browser.confirm_install_body": "Downloads the latest APK (~280 MB), verifies the SHA-256 hash, and installs it. With InputBridge up the install is silent; otherwise Android shows a confirm dialog you'll need to tap.",
  "settings.browser.confirm_install_title": "Install AI Control Browser?",
  "settings.browser.confirm_proceed": "Proceed?",
  "settings.browser.confirm_reinstall_body": "You already have {version}. Reinstalling re-downloads the APK and re-runs the installer.",
  "settings.browser.confirm_reinstall_title": "Reinstall AI Control Browser?",
  "settings.browser.confirm_update_body": "Installed: {installed}\nLatest: {latest}\n\nDownloads ~{size} MB, verifies SHA-256, then installs. With InputBridge up the install is silent; otherwise Android shows a confirm dialog.",
  "settings.browser.confirm_update_title": "Update AI Control Browser?",
  "settings.browser.not_installed": "Not installed",
  "settings.browser.not_yet_published": "Not yet published · {reason}",
  "settings.browser.tap_check": "Tap Check to query the manifest",
  "settings.browser.up_to_date": "Up to date",
  "settings.browser.up_to_date_status": "Up to date · {version}",
  "settings.browser.update_available_status": "Update available · {installed} → {latest}",
  "settings.btn_install": "Install",
  "settings.btn_setup_adb_now": "Set up ADB now (one-shot)",
  "settings.default_model_hint": "New chat tabs open with this model. Per-tab override stays available in the chat header.",
  "settings.general.autostart": "Launch when Windows starts",
  "settings.general.autostart_disable_failed": "Could not disable autostart:\n{msg}",
  "settings.general.autostart_enable_failed": "Could not enable autostart:\n{msg}",
  "settings.general.autostart_hint": "Registers HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\AiControl — per-user, no admin needed.",
  "settings.general.credits": "Credits: ${amount}",
  "settings.general.default_model": "Default model",
  "settings.general.default_model_hint": "The model used for new chat tabs and as the voice-mode default. Existing tabs keep their own model.",
  "settings.lifecycle.allow_reboot_hint": "Last rung, ~7 min red. 30 min cooldown between reboots.",
  "settings.lifecycle.allow_reboot_title": "Allow reboot",
  "settings.lifecycle.allow_usb_debug_hint": "Tick \"Always allow\" + tap Allow on the USB-debug + wireless-debugging-on-this-network auth dialogs. Required for ADB to bootstrap on a freshly paired device.",
  "settings.lifecycle.allow_usb_debug_title": "Allow USB / wireless debugging",
  "settings.lifecycle.auto_confirm_intro": "Each toggle gates one type of system popup. Default values come from the Role preset; flip individually for fine control.",
  "settings.lifecycle.auto_setup_adb_hint": "When ON, the device pairs Wireless Debugging silently in the background. When OFF, all ADB activity stops — no port probes, no auto-pairing, no setup dialog. The ADB indicator stays red until you flip this back on (or tap \"Set up ADB now\" below).",
  "settings.lifecycle.auto_setup_adb_title": "Auto-set up ADB",
  "settings.lifecycle.autostart_hint": "Bring mesh + FRP back without manual launch after reboot.",
  "settings.lifecycle.autostart_title": "Auto-start on boot",
  "settings.lifecycle.confirm_update_hint": "Auto-tap Update on the PackageInstaller dialog when AiControl itself is being updated. Scoped to our app — never taps Update on a third-party install dialog.",
  "settings.lifecycle.confirm_update_title": "Confirm AiControl update popup",
  "settings.lifecycle.grant_unknown_hint": "When the OEM shows the install-source permission page, auto-flip the \"Allow from this source\" Switch and back out. Personal phones default OFF so the human-driven retry can use the shell-install bypass.",
  "settings.lifecycle.grant_unknown_title": "Grant 'Install unknown apps'",
  "settings.lifecycle.keep_awake_hint": "Never sleep, wake screen back on if it does. Worker / Exit roles enable this automatically.",
  "settings.lifecycle.keep_awake_title": "Keep device awake",
  "settings.lifecycle.open_security_settings": "Open Security settings →",
  "settings.lifecycle.radio_blink_hint": "`svc data disable/enable` after ~2 min of red.",
  "settings.lifecycle.radio_blink_title": "Allow cellular radio blink",
  "settings.lifecycle.secure_lock_hint": "The app can't disable it automatically — open Security settings and set screen lock to None or Swipe for a truly unattended setup.",
  "settings.lifecycle.secure_lock_warning": "⚠ Device has a secure lock (PIN / pattern / password).",
  "settings.lifecycle.self_heal_hint": "Every 30 s health check; escalates soft → radio blink → reboot.",
  "settings.lifecycle.self_heal_title": "Self-heal supervisor",
  "settings.lifecycle.trust_wifi_hint": "Auto-tap Allow / Trust / Yes / Connect on captive-portal and \"Trust this network\" dialogs. Without this, a fleet device can strand offline waiting for a human tap.",
  "settings.lifecycle.trust_wifi_title": "Trust Wi-Fi networks",
  "settings.network.autoconnect_hint": "Every 60 s, join the highest-priority profile in range.",
  "settings.network.autoconnect_title": "Auto-connect to saved Wi-Fi",
  "settings.network.hotspot_gateway_hint": "Broadcast a Wi-Fi softAP (SSID = device serial) for sibling exit nodes whose ADB went dark. Drops your Wi-Fi so cellular egress stays alive.",
  "settings.network.hotspot_gateway_title": "Hotspot gateway",
  "settings.network.hotspot_gateway_unavailable": "Hotspot gateway only meaningful when device role is Dedicated exit. Switch in the Role tab to expose it.",
  "settings.not_logged_in": "Not logged in",
  "settings.open_login_items": "Open Login Items in System Settings",
  "settings.role.custom": "Custom (manual overrides)",
  "settings.role.dedicated_exit": "Dedicated exit node",
  "settings.role.dedicated_worker": "Dedicated worker (plugin runner)",
  "settings.role.personal": "Personal remote device (default)",
  "settings.role.preset_hint": "Picks a coordinated set of toggles (auto-start, self-heal, hotspot, etc). Pick \"Custom\" by toggling individual settings in the other tabs after applying a preset here.",
  "settings.role.preset_label": "Device role (preset)",
  "settings.section.account": "Account",
  "settings.section.auto_confirm_popups": "Auto-confirm system popups",
  "settings.section.boot_reconnect": "Boot + reconnect",
  "settings.section.browser": "AI Control Browser",
  "settings.section.default_model": "Default Model (for new chats)",
  "settings.section.display": "Display",
  "settings.section.exit_node_networking": "Exit-node networking",
  "settings.section.self_heal": "Self-heal supervisor",
  "settings.section.server": "Server",
  "settings.section.wifi": "Wi-Fi",
  "settings.service.daemon_value": "Daemon: {value}",
  "settings.service.description": "aicontrolsvc keeps this device reachable for Remote Desktop after you sign out of Windows. Without it the device disappears from the fleet when no user is logged in.",
  "settings.service.description_mac": "Keeps the device reachable when no one is signed in. Mirrors aicontrolsvc on Windows.",
  "settings.service.exe_not_found": "AiControl.exe not found beside this dialog — service install isn't supported.",
  "settings.service.install": "Install Service",
  "settings.service.plist_value": "Plist: {value}",
  "settings.service.status_checking": "(checking…)",
  "settings.service.status_not_installed": "Not installed — click Install to keep this device reachable while you're signed out.",
  "settings.service.status_running": "Running — tunnel {tunnel} up. Device stays reachable after logout.",
  "settings.service.status_stopped": "Installed but stopped. Run `AiControl.exe --repair` (admin) to restart.",
  "settings.service.status_tunnel_starting": "Running but FRP tunnel is starting up…",
  "settings.service.status_waiting_creds": "Running, waiting for credentials. Sign in to wake the service tunnel.",
  "settings.service.uninstall": "Uninstall Service",
  "settings.service.uninstall_confirm_body": "This stops + removes aicontrolsvc but leaves AiControl.exe + your account untouched. After uninstall, the device disappears from Remote Desktop when you sign out of Windows.",
  "settings.service.uninstall_confirm_title": "Uninstall the AI Control service?",
  "settings.service.uninstall_confirm_yes": "Uninstall",
  "settings.status_value": "Status: {value}",
  "settings.tab.account": "Account",
  "settings.tab.general": "General",
  "settings.tab.lifecycle": "Lifecycle",
  "settings.tab.network": "Network",
  "settings.tab.role": "Role",
  "settings.tab.service": "Background Service",
  "settings.tab.voice": "Voice",
  "settings.title": "Settings",
  "settings.voice.available": "Available",
  "settings.voice.badge_fail": "✗ FAIL",
  "settings.voice.badge_ok": "✓ OK",
  "settings.voice.btn_preview_tts": "Preview TTS volume (\"hello, this is the on-device voice\")",
  "settings.voice.btn_test_mic_3s": "Test microphone (3 s)",
  "settings.voice.calibration": "Calibration",
  "settings.voice.calibration_hint": "Verify your mic + speaker work end-to-end before opening voice mode. The mic test runs the recording through the same Whisper STT engine the live gateway uses, so a green check here proves the entire stack is wired correctly.",
  "settings.voice.calibration_intro": "Run these before starting a voice chat to confirm your phone hears your voice and the speaker actually plays. If the mic test stays red after a few tries, bump mic gain or drop noise gate above and try again.",
  "settings.voice.device_tts_hint": "Pre-tick the dialog's Local-TTS switch. Lower latency on phones with strong on-device voices; per-session toggle stays available.",
  "settings.voice.device_tts_title": "Local device TTS by default",
  "settings.voice.didnt_hear": "Didn't hear",
  "settings.voice.engine": "Engine",
  "settings.voice.hw_aec": "Hardware AEC",
  "settings.voice.hw_agc": "Hardware AGC",
  "settings.voice.hw_ns": "Hardware NS",
  "settings.voice.i_heard_it": "I heard it",
  "settings.voice.language": "Voice language (STT hint)",
  "settings.voice.language_auto": "Auto-detect",
  "settings.voice.language_hint": "Pre-fills the per-session VoiceStartDialog. Auto-detect uses Whisper but needs ≥3 sec of audio to settle.",
  "settings.voice.languages": "Languages",
  "settings.voice.mic_accepted": "✓ accepted",
  "settings.voice.mic_gain": "Microphone gain",
  "settings.voice.mic_gain_detail": "Software gain applied per frame before the noise gate. Bump higher on quiet mics (some Samsung Galaxy units captured -42 dB at full volume vs Moto's -1 dB). Capped at 16×.",
  "settings.voice.mic_gain_hint": "Software boost applied to every PCM frame before send. 1× passthrough, 4× ≈ +12 dB. Drop to 1× if Windows mic-boost is on; raise above 4× for quiet HD-Audio headsets.",
  "settings.voice.mic_gain_value": "Mic gain — {value}×",
  "settings.voice.mic_heard": "Heard: \"{text}\"",
  "settings.voice.mic_input": "Microphone (input)",
  "settings.voice.mic_network_error": "Network error: {msg}",
  "settings.voice.mic_no_speech": "Whisper didn't recognise any speech. Try speaking louder or check the mic is the right device.",
  "settings.voice.mic_open_failed": "Couldn't open microphone: {msg}",
  "settings.voice.mic_record_again": "● Record (4 s) again",
  "settings.voice.mic_recording": "● Recording…",
  "settings.voice.mic_server_error": "Server error ({code}): {body}",
  "settings.voice.mic_state_error": "Error: {error}",
  "settings.voice.mic_state_heard": "Heard: \"{transcript}\"  ·  RMS avg={avg} peak={peak}",
  "settings.voice.mic_state_idle": "Tap, then say \"testing, one two three\" loudly. Indicator goes green if Whisper recognised your voice.",
  "settings.voice.mic_state_recording": "Recording… speak NOW: \"The quick brown fox jumps over the lazy dog\"",
  "settings.voice.mic_state_uploading": "Sending audio to server for Whisper transcription…",
  "settings.voice.mic_test": "Microphone test",
  "settings.voice.mic_too_little": "Recorded too little audio. Make sure the mic is connected.",
  "settings.voice.no_mic_warning": "No microphone detected. Plug in a mic and the dropdown will refresh automatically.",
  "settings.voice.noise_gate": "Noise gate (RMS)",
  "settings.voice.noise_gate_detail": "Frames whose post-gain RMS is below this get zeroed before being sent. Lower if your mic is quiet (otherwise speech disappears under the gate); raise to filter ambient noise. 0 disables. Default 300.",
  "settings.voice.noise_gate_hint": "0 = off (default). Higher values reject quieter sounds (AC hum, fans). Try 200-400 for office. Mirrors Android's client-side noise gate.",
  "settings.voice.noise_gate_off": "off",
  "settings.voice.noise_gate_value": "Noise gate — {value} RMS",
  "settings.voice.not_available": "Not available",
  "settings.voice.open_tts_settings": "Open system TTS settings →",
  "settings.voice.play_tone": "Play tone",
  "settings.voice.recommend_no_aec": "No hardware AEC reported. Software AEC handles speaker bleed in server-TTS mode but device-TTS mode has no reference to cancel against. Recommend: mic gain 4×, noise gate 150, TTS volume 40-50% — gives user voice headroom to barge in.",
  "settings.voice.recommend_with_aec": "Strong hardware AEC detected. Defaults work well: mic gain 2×, noise gate 300, TTS volume 60%. Bump TTS to 80% if you find the AI too quiet.",
  "settings.voice.section.calibration": "Calibration",
  "settings.voice.section.hw_audio": "Hardware audio",
  "settings.voice.section.on_device_tts": "On-device TTS engine",
  "settings.voice.section.recommended": "Recommended for this device",
  "settings.voice.section.strategy": "Capture / playback strategy",
  "settings.voice.speaker_test": "Speaker test",
  "settings.voice.speaker_test_hint": "Plays a 600 ms tone through the speaker. Tap \"I heard it\" if the speaker is working.",
  "settings.voice.speaker_test_phrase": "This is a speaker test. If you can hear this, click I heard it.",
  "settings.voice.speaker_test_title": "Speaker test",
  "settings.voice.speakers": "Speakers (output)",
  "settings.voice.speakers_hint": "Where the AI's spoken reply plays. The mic-monitor side-channel (admin voice tests) uses the same device.",
  "settings.voice.test_mic": "🎤 Test microphone",
  "settings.voice.test_mic_accept": "✓ Mic works — accept",
  "settings.voice.test_mic_instruction": "Click Record, then say:",
  "settings.voice.test_mic_phrase": "\"Hello, this is a microphone test.\"",
  "settings.voice.test_mic_record": "● Record (4 s)",
  "settings.voice.test_speaker": "🔊 Test speaker",
  "settings.voice.test_speaker_heard": "✓ I heard it",
  "settings.voice.test_speaker_instruction": "Click Play to hear a test phrase via the selected output device + TTS engine.",
  "settings.voice.test_speaker_not_heard": "✗ I didn't",
  "settings.voice.test_speaker_play": "▶ Play test",
  "settings.voice.tts_device": "Windows local TTS (offline) — fastest",
  "settings.voice.tts_engine": "AI voice engine",
  "settings.voice.tts_engine_hint": "Server TTS streams gpt-4o-mini-tts (~600 ms first audio). Local TTS uses Windows SAPI (~150 ms, offline, depends on installed voices).",
  "settings.voice.tts_preview_phrase": "Hello, this is the on-device voice. Adjust the slider above if I'm too loud or too quiet.",
  "settings.voice.tts_server": "OpenAI TTS (server) — best quality",
  "settings.voice.tts_start_failed": "Couldn't start TTS:\n{msg}",
  "settings.voice.tts_volume_detail": "How loud the on-device TextToSpeech plays the AI's reply. Lower it on weak-AEC phones so the user's barge-in (\"Please stop now\") can clear the speaker bleed in the mic. Default 60%. Only affects Local-device-TTS mode.",
  "settings.voice.tts_volume_value": "Local TTS playback volume — {value}%",
  "settings.voice.use_aec_hint": "WebRTC AEC3 — full-duplex barge-in even on weak hardware AEC. Disable to fall back to walkie-talkie (mute mic during AI speech).",
  "settings.voice.use_aec_title": "Use software AEC pipeline",
  "settings.window_title": "Settings - AI Control",
  "settings_popup.access_key": "Access Key",
  "settings_popup.access_key_tooltip": "Paste access key from login page",
  "settings_popup.default_model": "Default Model",
  "settings_popup.new_tab": "New Tab",
  "settings_popup.reset_chat": "Reset Chat",
  "settings_popup.view_log": "View log",
  "setup.adb.body_idle": "Wireless debugging will be enabled automatically and the device will pair without user input.",
  "setup.adb.body_running": "Walking the Wireless Debugging settings — pairing automatically. Don't touch the screen.",
  "setup.adb.skip_without_adb": "Skip — use without ADB",
  "setup.adb.title_running": "ADB setup in progress",
  "setup.btn_connect_adb": "Connect ADB",
  "setup.btn_enable_manually": "Enable Manually",
  "setup.btn_let_ai_enable": "Let AI Enable It",
  "setup.dev_options.body": "Enable Developer Options for full device control.",
  "setup.dev_options.title": "Developer Options",
  "share.chooser_title": "Share Messages",
  "share.export_chat_title": "Export Chat",
  "status.offline": "Offline",
  "status.online": "Online",
  "time.days_ago": "{n}d ago",
  "time.hours_ago": "{n}h ago",
  "time.just_now": "just now",
  "time.minutes_ago": "{n}m ago",
  "toast.already_current": "Already on the current {channel} build.",
  "toast.browser_manifest_unreachable": "Browser manifest unreachable: {error}",
  "toast.browser_not_published": "AI Control Browser: {reason}",
  "toast.browser_up_to_date": "AI Control Browser already up to date ({version})",
  "toast.checking_update": "Checking {channel} update…",
  "toast.copied": "Copied",
  "toast.copied_clipboard": "Copied to clipboard",
  "toast.mic_denied": "Microphone permission denied — voice mode disabled",
  "toast.update_trigger_threw": "Update trigger threw — check logs",
  "tooltip.attach_file": "Attach file",
  "tooltip.click_to_top_up": "Click to top up",
  "tooltip.devices_list": "Full device fleet — IP, version, battery, SIM, signal, last active. Same source as the webapp /app/devices view. Revoke action lives here too.",
  "tooltip.dock_right_edge": "Dock to right edge",
  "tooltip.frp_dot": "FRP tunnel: blue = connected, gray = disconnected",
  "tooltip.hide_to_tray": "Hide to tray",
  "tooltip.mesh_dot": "Mesh VPN: green = connected, yellow = connecting, red = error, gray = off",
  "tooltip.model_for_chat": "Model for this chat. Pricing is per 1 million tokens: input price (your prompts + tool results) / output price (the model's reply).",
  "tooltip.new_chat": "New Chat (Ctrl+N)",
  "tooltip.remove_attachment": "Remove attachment",
  "tooltip.server_dot": "Server: green = connected, red = disconnected",
  "tooltip.switch_light_theme": "Switch to light theme",
  "tooltip.test_remote_peers": "Run stream-quality tests against online peers. Visible to dev-channel (test) users only.",
  "topup.balance": "Balance",
  "topup.coming_soon": "Payment integration coming soon",
  "topup.current_balance": "Current balance: ",
  "topup.header": "Top Up Credits",
  "topup.select_amount": "Select amount:",
  "topup.title": "Top Up",
  "uninstall.description": "Removing service, registry, app data, shortcuts, and program files.",
  "uninstall.title": "Uninstalling AI Control",
  "update.android_dev_none_available": "No Android dev build available on the server yet.",
  "update.android_dev_title": "Dev APK",
  "update.available": "Update available",
  "update.channel_dev": "dev",
  "update.channel_dev_full": "Dev channel",
  "update.channel_release": "release",
  "update.channel_release_full": "Release",
  "update.check_device_after": "Check the device after 30s",
  "update.contacting_github": "Contacting GitHub…",
  "update.dev_install_explainer": "Clicking Install will download, verify SHA-256, replace AiControl.app, and relaunch.",
  "update.dev_none_available": "No dev build available on the server yet.",
  "update.dev_title": "Dev update",
  "update.download_failed": "Download failed{version}",
  "update.downloading_apk": "Downloading {channel} APK{version}…",
  "update.downloading_apk_shellless": "Downloading {channel} APK{version} (shell-less)…",
  "update.downloading_apk_via": "Downloading {channel} APK{version} ({via})…",
  "update.downloading_indeterminate": "Downloading…",
  "update.install_failed": "Install failed",
  "update.install_failed_toast": "Install failed: {error}",
  "update.install_failed_v": "Install failed{version}",
  "update.install_now": "Install now",
  "update.install_restart": "Install and restart",
  "update.installed_ok": "Installed",
  "update.installed_ok_v": "Installed{version}",
  "update.installing": "Installing{version}…",
  "update.later": "Later",
  "update.open_in_browser": "Open in browser",
  "update.please_wait": "Please wait...",
  "update.preparing": "Preparing…",
  "update.relaunching": "Relaunching…",
  "update.replacing_app": "Replacing AiControl.app + relaunching…",
  "update.still_installing": "Still installing{version}…",
  "update.title": "AI Control Update",
  "update.updating_app_title": "Updating AI Control",
  "update.updating_browser_title": "Updating AI Control Browser",
  "voice_start.header": "Start voice mode",
  "voice_start.language": "Language",
  "voice_start.mic_gain": "Mic gain",
  "voice_start.noise_gate": "Noise gate (RMS threshold)",
  "voice_start.noise_gate_hint": "0 = off. Higher values reject quieter sounds (AC hum, fan). Try 200-400 for office.",
  "voice_start.title": "Voice mode",
  "voice_start.tts_device": "Windows local TTS (offline) — fastest",
  "voice_start.tts_device_hint": "Speaks via Windows SAPI. ~150 ms first-audio. Works offline. Quality depends on installed voices.",
  "voice_start.tts_engine": "AI voice engine",
  "voice_start.tts_server": "OpenAI TTS (server) — best quality",
  "voice_start.tts_server_hint": "Streamed from gateway. ~600 ms first-audio. Highest quality voices."
}