{
  "terminal": {
    "local": {
      "title": "Local Terminal",
      "shell": "Shell: {{shell}}",
      "shell_unknown": "Unknown",
      "session_ended": "Session ended",
      "exit_code": "Process exited with code: {{code}}",
      "process_terminated": "Process terminated"
    },
    "search": {
      "visible_buffer": "Visible Buffer",
      "deep_history": "Deep History",
      "deep_history_tooltip": "Search entire session history (beyond scrollback)",
      "placeholder_active": "Search visible terminal...",
      "placeholder_deep": "Search full history...",
      "searching": "Searching...",
      "searching_archived": "{{count}} matches so far ({{ms}}ms), searching archived history...",
      "error": "Error",
      "no_results_history": "No results in history",
      "matches_count": "{{count}} matches ({{ms}}ms)",
      "no_results": "No results",
      "matches_exceeded": "{{count}}+ matches",
      "previous_match": "Previous match (Shift+Enter)",
      "next_match": "Next match (Enter)",
      "search_full_history": "Search full history (Enter)",
      "search_button": "Search",
      "close": "Close (Esc)",
      "case_sensitive": "Case Sensitive",
      "regex": "Use Regular Expression",
      "whole_word": "Match Whole Word",
      "click_to_jump": "Click to jump to match location",
      "line_number": "Line {{line}}",
      "recent_match": "Recent",
      "archived_match": "Archived",
      "archived_preview": "Archived Preview",
      "showing_first": "Showing first 100 of {{total}} matches",
      "partial_results": "Partial results: some archived chunks could not be searched.",
      "no_matches_in_history": "No matches found in session history",
      "visible_terminal": "Visible terminal",
      "full_history": "Full history",
      "visible_terminal_hint": "Search the main terminal visible scrollback.",
      "full_history_hint": "Search backend hot history and archived excerpts. Results open in Scrollback Viewer.",
      "results_map": "Results map",
      "results_map_hint": "Click to jump"
    },
    "ai": {
      "title": "OxideSens",
      "api_key_required": "API Key Required",
      "api_key_hint": "Configure your API key in Settings → AI to use this feature.",
      "context": "Context:",
      "context_selection": "Selection",
      "context_visible": "Visible",
      "context_none": "None",
      "tokens_estimate": "~{{count}} tokens",
      "prompt_placeholder": "Ask AI for help with commands...",
      "inline_placeholder": "Ask AI for a command...",
      "selection_placeholder": "Asking about selection...",
      "send_shortcut": "to send",
      "close_shortcut": "to close",
      "to_send": "send",
      "to_insert": "insert",
      "to_run": "run",
      "generating": "Generating...",
      "copy": "Copy",
      "copied": "Copied",
      "insert": "Insert",
      "execute": "Run",
      "regenerate": "Retry"
    },
    "paste": {
      "title": "Multiple lines detected ({{count}} lines)",
      "more_lines": "... {{count}} more lines",
      "confirm": "Confirm",
      "cancel": "Cancel",
      "paste": "Paste"
    },
    "ssh": {
      "initialized": "Initialized OxideTerm",
      "connecting": "Connecting to {{user}}@{{host}}...",
      "connected": "Connected.",
      "reconnecting": "Reconnecting to {{user}}@{{host}}...",
      "reconnected": "Reconnected successfully!",
      "connection_closed": "Connection closed.",
      "connection_closed_code": "Connection closed (code: {{code}})",
      "ws_error": "WebSocket error: {{error}}",
      "ws_reconnect_error": "WebSocket reconnection error",
      "ws_establish_failed": "Failed to establish WebSocket: {{error}}",
      "server_error": "Server error: {{error}}",
      "no_ws_url": "No WebSocket URL available for session.",
      "connection_lost": "[OxideTerm] Connection lost. Reconnecting...",
      "connection_lost_reconnect": "[OxideTerm] SSH connection lost. Please reconnect.",
      "attempting_reconnect": "[OxideTerm] Attempting to reconnect...",
      "link_restored": "[OxideTerm] Link restored. Shell session reset.",
      "connection_failed": "[OxideTerm] Connection permanently failed.",
      "history_match": "History Match (Line {{line}})",
      "buffer_empty": "⚠ Buffer empty - showing cached snapshot:",
      "buffer_rotated": "⚠ Buffer rotated - live context may not match. Showing cached + current:",
      "cached_match": "Cached match:",
      "current_line": "Current line at index {{index}}:",
      "fetch_context_failed": "⚠ Failed to fetch context - showing cached snapshot:"
    },
    "trzsz": {
      "select_upload_directory_title": "Select a folder to upload",
      "select_upload_directory_description": "Choose the local directory that should be sent through trzsz.",
      "select_upload_files_title": "Select files to upload",
      "select_upload_files_description": "Choose one or more local files for this trzsz transfer.",
      "select_download_directory_title": "Choose where downloads should be saved",
      "select_download_directory_description": "Pick a local folder for incoming trzsz files.",
      "cancelled_title": "Transfer cancelled",
      "cancelled_description": "The trzsz transfer was cancelled before completion.",
      "completed_title": "Transfer completed",
      "completed_description": "The trzsz transfer finished successfully.",
      "failed_title": "Transfer failed",
      "failed_description": "OxideTerm could not complete the trzsz transfer.",
      "connection_lost_title": "Transfer interrupted by connection loss",
      "connection_lost_description": "The SSH connection changed while a trzsz transfer was active. Start the transfer again after reconnecting.",
      "partial_cleanup_title": "Transfer cleanup incomplete",
      "partial_cleanup_description": "Temporary transfer state could not be fully cleaned up. You can keep using the terminal, but stale transfer files may remain.",
      "version_mismatch_title": "trzsz protocol mismatch",
      "version_mismatch_description": "The remote trzsz runtime is incompatible with this OxideTerm build.",
      "path_invalid_title": "Download path rejected",
      "path_invalid_description": "OxideTerm blocked this trzsz transfer because the selected path was invalid or outside the approved download root.",
      "symlink_not_supported_title": "Symlink transfer not supported",
      "symlink_not_supported_description": "OxideTerm does not write symbolic links through the current trzsz bridge.",
      "conflict_detected_title": "File conflict detected",
      "conflict_detected_description": "A file or folder with the same name already exists at the destination.",
      "directory_not_allowed_title": "Directory transfer disabled",
      "directory_not_allowed_description": "Current terminal settings do not allow trzsz directory transfers.",
      "max_file_count_title": "Too many files selected",
      "max_file_count_description": "This transfer includes {{selected}} files, exceeding the configured limit of {{max}}.",
      "max_total_bytes_title": "Transfer size limit exceeded",
      "max_total_bytes_description": "This transfer needs {{selected}}, exceeding the configured limit of {{max}}.",
      "disabled_title": "trzsz is not enabled",
      "disabled_description": "The remote server initiated a trzsz transfer, but in-band file transfer is disabled. Enable it in Settings → Terminal to use trzsz."
    },
    "standby": {
      "connection_lost": "Connection Lost",
      "reconnecting": "Reconnecting...",
      "input_locked": "Input is locked during reconnection"
    },
    "disconnected": {
      "message": "Connection disconnected",
      "retry": "Reconnect"
    },
    "pane": {
      "split_horizontal": "Split Horizontal",
      "split_vertical": "Split Vertical",
      "close_pane": "Close Pane",
      "max_panes_reached": "Maximum panes reached ({{max}})",
      "focus_next": "Focus Next Pane",
      "focus_previous": "Focus Previous Pane",
      "cannot_close_last": "Cannot close the last pane",
      "ssh_split_coming_soon": "SSH terminal split coming soon"
    },
    "typeLocal": "LOCAL",
    "typeSsh": "SSH",
    "mouse_mode_hint": "⇧ Shift + drag to select",
    "broadcast": {
      "broadcast_input": "Broadcast Input",
      "select_targets": "Select Broadcast Targets",
      "select_all": "Select All",
      "deselect_all": "Deselect All",
      "no_targets": "No other terminals available",
      "target_count": "{{count}} target(s)",
      "local_terminal": "Local Terminal",
      "enabled": "Broadcast Enabled",
      "disabled": "Broadcast Disabled",
      "current": "Current"
    },
    "recording": {
      "start": "Record Session",
      "stop": "Stop Recording",
      "pause": "Pause Recording",
      "resume": "Resume Recording",
      "discard": "Discard Recording",
      "save": "Save Recording",
      "recording": "REC",
      "paused": "PAUSED",
      "elapsed": "{{time}}",
      "events": "{{count}} events",
      "confirm_stop_title": "Stop Recording?",
      "confirm_stop_message": "Save the recording as an asciicast (.cast) file?",
      "confirm_discard_title": "Discard Recording?",
      "confirm_discard_message": "This will discard the current recording. This cannot be undone.",
      "saved": "Recording saved",
      "open_cast": "Open Cast File",
      "security_warning": "Recording may contain sensitive data (passwords, tokens). Review before sharing.",
      "player": {
        "title": "Cast Player",
        "play": "Play",
        "pause": "Pause",
        "speed": "Speed",
        "seek": "Seek",
        "duration": "Duration",
        "search": "Search in recording...",
        "no_results": "No matches found",
        "matches": "{{count}} matches",
        "jump_to": "Jump to match",
        "loading": "Building snapshots...",
        "dimensions": "{{cols}}×{{rows}}",
        "close": "Close Player"
      }
    },
    "encoding_hint": {
      "title": "Terminal output may use another encoding",
      "description": "OxideTerm detected garbled text while using UTF-8. You can try {{encodings}}; nothing will change unless you choose one.",
      "use_encoding": "Use {{encoding}}"
    },
    "command_bar": {
      "command": "Command",
      "command_mode": "Command mode",
      "command_placeholder": "Run commands",
      "run_command": "Run command",
      "local_shell": "Local shell",
      "remote_shell": "Remote shell",
      "all_targets": "all",
      "recording": "REC",
      "source_runtime": "history",
      "source_local_history": "local",
      "source_ai_ledger": "AI",
      "source_history": "history",
      "source_command": "command",
      "source_option": "option",
      "source_path": "path",
      "source_ai": "AI",
      "group_history": "History",
      "group_command": "Command",
      "group_option": "Option",
      "group_path": "Path",
      "group_quick_commands": "Quick Commands",
      "source_quick_command": "quick"
    },
    "command_selection": {
      "actions": "Command selection actions",
      "copy": "Copy",
      "copy_title": "Copy command output"
    },
    "scrollback_viewer": {
      "title": "Scrollback Viewer",
      "open": "Open Scrollback Viewer",
      "live_hint": "Showing live scrollback. Archived matches open as excerpts.",
      "stats": "{{current}} live / {{total}} total · max {{max}} · {{memory}} MB",
      "search_placeholder": "Search live and archived history...",
      "search": "Search",
      "case_sensitive": "Case sensitive",
      "regex": "Regular expression",
      "whole_word": "Whole word",
      "previous_match": "Previous match",
      "next_match": "Next match",
      "refresh": "Refresh",
      "clear": "Clear scrollback",
      "close": "Close",
      "empty_title": "No live scrollback yet",
      "empty_description": "Terminal output will appear here after it scrolls into the buffer.",
      "loading_line": "Loading...",
      "matches": "Matches",
      "live_buffer_badge": "Live buffer",
      "archive_badge": "Archive",
      "line_number": "Line {{line}}",
      "archive_excerpt": "Archive excerpt",
      "clear_confirm_title": "Clear current scrollback buffer?",
      "clear_confirm_description": "Archived history is not removed.",
      "clear_confirm_action": "Clear scrollback",
      "minimap": "History minimap",
      "limited_live_hint": "Showing the latest {{shown}} live scrollback lines out of {{available}} available. Use full-history search/archive excerpts for older output."
    },
    "quick_commands": {
      "title": "Quick Commands",
      "open": "Quick Commands",
      "close": "Close Quick Commands",
      "search_placeholder": "Search quick commands...",
      "add": "Add",
      "edit": "Edit",
      "delete": "Delete",
      "run": "Run",
      "save": "Save",
      "cancel": "Cancel",
      "empty_search": "No matching quick commands",
      "empty_category": "No quick commands in this category",
      "name_placeholder": "Name",
      "command_placeholder": "Command",
      "description_placeholder": "Description",
      "host_pattern_placeholder": "Host pattern, e.g. *.prod",
      "confirm_title": "Run quick command?",
      "confirm_description": "Run: {{command}}",
      "confirm_risky_description": "This command may be destructive or sensitive. Run: {{command}}",
      "toast_executed": "Quick command sent",
      "add_group": "Add group",
      "edit_group": "Edit group",
      "delete_group": "Delete group",
      "save_group": "Save group",
      "group_name_placeholder": "Group name",
      "icon_terminal": "Terminal",
      "icon_server": "Server",
      "icon_folder": "Folder",
      "icon_docker": "Docker",
      "icon_zap": "Custom"
    }
  }
}
