export const translations = {
  ru: {
    sidebar_dashboard: 'Панель',
    sidebar_clients: 'Клиенты',
    sidebar_settings: 'Настройки',
    sidebar_tools: 'Инструменты',
    sidebar_dns: 'DNS Фильтрация',
    sidebar_wiki: 'Документация',
    sidebar_history: 'История',
    
    header_reset_conn: 'Сбросить подключение',
    header_core_online: 'Ядро онлайн',
    header_core_offline: 'Ядро оффлайн',
    
    conn_setup_title: 'Подключение к ядру',
    conn_setup_sub: 'Панель управления VPN сервером',
    conn_setup_header: 'Первоначальная настройка',
    conn_setup_desc: 'Пожалуйста, укажите адрес API управления и токен авторизации. Токен генерируется при инициализации сервера и находится в файле config.json в поле api.token.',
    conn_setup_url_label: 'Адрес API сервера',
    conn_setup_token_label: 'API Токен авторизации (Bearer)',
    conn_setup_token_placeholder: 'Введите токен из config.json',
    conn_setup_btn: 'Проверить и войти',
    conn_setup_btn_loading: 'Проверка соединения...',
    conn_setup_success: 'Успешно подключено!',
    conn_setup_error: 'Ошибка соединения: ',
    
    db_title: 'Dashboard',
    db_subtitle: 'Статистика в реальном времени и параметры сервера',
    db_active_users: 'Активные клиенты',
    db_active_users_sub: 'Пользователи онлайн',
    db_connections: 'Соединения',
    db_connections_sub: 'Активные туннели',
    db_uploaded: 'Отправлено (Tx)',
    db_uploaded_sub: 'Исходящий трафик',
    db_downloaded: 'Скачано (Rx)',
    db_downloaded_sub: 'Входящий трафик',
    db_properties: 'Параметры ядра',
    db_properties_sub: 'Конфигурация сетевых служб из config.json',
    db_api_latency: 'Задержка API',
    db_core_version: 'Версия ядра',
    db_listen_addr: 'Порт прослушивания',
    db_api_bind: 'Адрес API',
    db_reality_status: 'Статус Reality',
    db_reality_dest: 'Домен маскировки',
    db_outbound_proxy: 'Исходящий прокси',
    db_fallback_status: 'TCP Fallback',
    db_fallback_target: 'Сервер Fallback',
    db_load_title: 'Загрузка системы',
    db_load_users: 'Лимит пользователей',
    db_load_connections: 'Загрузка соединений',
    db_total_traffic: 'Общий трафик',
    db_traffic_per_user: 'Трафик на клиента',
    
    cl_title: 'Клиенты',
    cl_subtitle: 'Управление ключами доступа, описаниями и лимитами трафика',
    cl_add: 'Добавить клиента',
    cl_search: 'Поиск по имени или ключу доступа...',
    cl_status: 'Статус',
    cl_name: 'Имя клиента',
    cl_unnamed: 'Без имени',
    cl_key: 'Ключ доступа',
    cl_usage: 'Использовано (Tx / Rx)',
    cl_limit: 'Лимит',
    cl_actions: 'Действия',
    cl_active: 'Активен',
    cl_offline: 'Неактивен',
    cl_unlimited: 'Безлимитный',
    cl_share_title: 'Профиль подключения',
    cl_share_sub: 'Используйте эту ссылку для настройки клиента OSTP на вашем устройстве.',
    cl_share_link: 'Ссылка подключения OSTP',
    cl_how_to: 'Инструкция по подключению:',
    cl_how_to_1: 'Установите приложение OSTP Client на ваше устройство.',
    cl_how_to_2: 'Скопируйте ссылку подключения выше.',
    cl_how_to_3: 'Импортируйте ссылку в клиенте или запустите через CLI:',
    cl_add_title: 'Добавить нового клиента',
    cl_edit_title: 'Редактировать клиента',
    cl_form_name: 'Имя / Описание клиента',
    cl_form_limit: 'Лимит трафика',
    cl_form_limit_sub: 'Оставьте пустым для безлимитного',
    cl_form_custom: 'Свой ключ доступа (опционально)',
    cl_form_custom_sub: 'Будет сгенерирован автоматически, если оставить пустым',
    cl_form_save: 'Сохранить изменения',
    cl_confirm_delete: 'Вы уверены, что хотите удалить этот ключ доступа? Все активные сессии этого клиента будут мгновенно разорваны.',
    cl_confirm_reset: 'Сбросить счетчики трафика для этого клиента?',
    cl_copied: 'Скопировано в буфер обмена!',
    cl_share_scan: 'Отсканируйте камерой, чтобы получить ссылку',
    cl_share_download_qr: 'Скачать QR-код',
    
    st_title: 'Настройки',
    st_subtitle: 'Интерактивный конфигуратор ядра OSTP и параметры панели',
    st_reset: 'Сбросить изменения',
    st_tab_ui: 'Настройки ядра (UI)',
    st_tab_json: 'Редактор JSON',
    st_tab_conn: 'Подключение панели',
    st_save_btn: 'Сохранить настройки',
    st_save_success: 'Конфигурация сохранена! Изменения применены ядром через hot-reload.',
    st_save_error: 'Ошибка сохранения: ',
    st_conn_title: 'Связь с Management API',
    st_conn_desc: 'Укажите параметры подключения текущего экземпляра веб-интерфейса к демону ядра OSTP.',
    st_conn_url: 'API Адрес подключения',
    st_conn_token: 'Авторизационный токен (Bearer)',
    st_conn_token_sub: 'Вставьте токен из config.json',
    st_conn_test: 'Проверить связь',
    st_conn_save: 'Сохранить настройки',
    st_conn_success: 'Связь установлена! Версия: {version}, Сессий: {users}',
    st_conn_error: 'Ошибка подключения: {error}',
    st_raw_title: 'Редактирование сырого JSON',
    st_raw_desc: 'Прямое изменение файла config.json. Любая синтаксическая ошибка JSON заблокирует отправку.',
    st_ui_general: 'Общие настройки сервера',
    st_ui_log: 'Уровень логирования (log_level)',
    st_ui_port: 'Порт прослушивания (listen)',
    st_ui_debug: 'Режим полной сетевой отладки протокола (debug)',
    st_ui_api_title: 'Встроенный сервер API управления',
    st_ui_api_enable: 'Включить встроенный сервер API управления',
    st_ui_api_bind: 'Адрес привязки API (bind)',
    st_ui_api_token: 'Токен доступа (api.token)',
    st_ui_api_warning: 'Внимание! Изменение порта или токена API потребует ручного обновления настроек подключения в панели управления.',
    st_ui_fb_title: 'TCP Fallback маскировка (Анти-детект)',
    st_ui_fb_enable: 'Перенаправлять неопознанный TCP трафик на веб-сервер',
    st_ui_fb_port: 'Входной TCP-порт (listen)',
    st_ui_fb_target: 'Целевой веб-сервер (target)',
    st_ui_rl_title: 'Параметры маскировки Reality (XTLS)',
    st_ui_rl_enable: 'Активировать обфускацию Reality',
    st_ui_rl_dest: 'Маскировочный домен-назначение (dest)',
    st_ui_rl_pri: 'Приватный ключ Reality (X25519)',
    st_ui_rl_pub: 'Публичный ключ Reality (pbk)',
    st_ui_rl_sid: 'Короткий SID сессии (8 байт hex)',
    st_ui_rl_sni: 'Список SNI доменов (через запятую)',
    st_ui_ob_title: 'Исходящий трафик (Outbound Routing)',
    st_ui_ob_enable: 'Пересылать трафик клиентов через сторонний прокси (outbound proxy)',
    st_ui_ob_proto: 'Протокол прокси',
    st_ui_ob_addr: 'Адрес прокси',
    st_ui_ob_port: 'Порт прокси',
    st_ui_ob_action: 'Действие по умолчанию',
    st_ui_ob_action_direct: 'Напрямую с сервера (direct)',
    st_ui_ob_action_proxy: 'Через прокси (proxy)',
    
    tl_title: 'Инструменты',
    tl_subtitle: 'Генератор ключей Reality, резервное копирование и диагностика',
    tl_keygen_title: 'Генератор ключей Reality (X25519)',
    tl_keygen_desc: 'Для маскировки Reality требуется пара ключей X25519. Сгенерируйте их здесь или выполните команду `ostp --generate-key` на сервере.',
    tl_keygen_btn: 'Сгенерировать ключи',
    tl_keygen_pub: 'Публичный ключ (pbk)',
    tl_keygen_pri: 'Приватный ключ (private_key)',
    tl_keygen_sid: 'Предлагаемый SID сессии (sid)',
    tl_keygen_copy: 'Копировать и применить в Reality',
    tl_keygen_applied: 'Ключи сгенерированы! Скопируйте их и вставьте во вкладку Настроек.',
    tl_backup_title: 'Резервное копирование',
    tl_backup_desc: 'Экспортируйте текущую конфигурацию сервера в файл или восстановите настройки из файла бэкапа.',
    tl_backup_export: 'Скачать бэкап config.json',
    tl_backup_import_zone: 'Перетащите файл config.json сюда или кликните для выбора',
    tl_backup_import_btn: 'Восстановить из файла',
    tl_backup_import_success: 'Конфигурация успешно восстановлена! Изменения применены ядром.',
    tl_backup_import_error: 'Ошибка восстановления бэкапа: ',
    tl_diag_title: 'Диагностика API',
    tl_diag_ping: 'Проверка задержки (Ping)',
    tl_diag_status: 'Статус соединения',
    
    wk_title: 'Документация',
    wk_subtitle: 'Справочники и руководства, загруженные в реальном времени с GitHub',
    wk_tab_guide: 'Конфигурация config.json',
    wk_tab_api: 'Справочник API',
    wk_loading: 'Загрузка документов с GitHub...',
    wk_load_error: 'Ошибка загрузки с GitHub. Отображается локальная резервная копия:',
    
    au_title: 'История действий',
    au_subtitle: 'Журнал административных событий текущей сессии веб-панели',
    au_empty: 'Журнал пуст',
    au_clear: 'Очистить журнал',
    au_time: 'Время',
    au_event: 'Событие',
    au_status: 'Результат',
    
    dns_title: 'DNS Фильтрация',
    dns_subtitle: 'Встроенный DNS сервер с AdBlock и поддержкой DoH',
    dns_enable: 'Включить встроенный DNS сервер',
    dns_upstream: 'DoH Upstream сервер',
    dns_upstream_sub: 'Куда будут отправляться разрешенные DNS запросы (поверх HTTPS)',
    dns_custom_domains: 'Пользовательские домены',
    dns_domain: 'Домен',
    dns_ip: 'IP адрес',
    dns_add_custom: 'Добавить',
    dns_adblock_lists: 'Списки блокировки AdBlock',
    dns_list_url: 'URL списка (формат hosts)',
    dns_add_list: 'Добавить список',
    dns_save: 'Сохранить настройки',
    dns_refresh: 'Обновить списки блокировки',
    dns_query_log: 'Журнал DNS запросов',
    dns_q_time: 'Время',
    dns_q_domain: 'Домен',
    dns_q_client: 'Клиент',
    dns_q_status: 'Статус',
    dns_q_allowed: 'Разрешен',
    dns_q_blocked: 'Заблокирован',
  },
  en: {
    sidebar_dashboard: 'Dashboard',
    sidebar_clients: 'Clients',
    sidebar_settings: 'Settings',
    sidebar_tools: 'Tools',
    sidebar_dns: 'DNS Filter',
    sidebar_wiki: 'Wiki',
    sidebar_history: 'Audit Logs',
    
    header_reset_conn: 'Reset Connection',
    header_core_online: 'Core Online',
    header_core_offline: 'Core Offline',
    
    conn_setup_title: 'Connection Setup',
    conn_setup_sub: 'VPN Server Control Panel',
    conn_setup_header: 'Initial Setup',
    conn_setup_desc: 'Please specify the management API address and authorization token. The token is generated during initialization and can be found in config.json under api.token.',
    conn_setup_url_label: 'Server API Address',
    conn_setup_token_label: 'API Auth Token (Bearer)',
    conn_setup_token_placeholder: 'Enter token from config.json',
    conn_setup_btn: 'Test and Connect',
    conn_setup_btn_loading: 'Testing connection...',
    conn_setup_success: 'Connected successfully!',
    conn_setup_error: 'Connection failed: ',
    
    db_title: 'Dashboard',
    db_subtitle: 'Real-time metrics and server overview',
    db_active_users: 'Active Clients',
    db_active_users_sub: 'Online users',
    db_connections: 'Connections',
    db_connections_sub: 'Active tunnels',
    db_uploaded: 'Uploaded (Tx)',
    db_uploaded_sub: 'Outbound traffic',
    db_downloaded: 'Downloaded (Rx)',
    db_downloaded_sub: 'Inbound traffic',
    db_properties: 'Core Properties',
    db_properties_sub: 'Network service configurations from config.json',
    db_api_latency: 'API Latency',
    db_core_version: 'Core Version',
    db_listen_addr: 'Listen Port',
    db_api_bind: 'API Address',
    db_reality_status: 'Reality Obfuscation',
    db_reality_dest: 'Masquerade Destination',
    db_outbound_proxy: 'Outbound Proxy',
    db_fallback_status: 'TCP Fallback',
    db_fallback_target: 'Fallback Target',
    db_load_title: 'Capacity Load',
    db_load_users: 'User limit utilization',
    db_load_connections: 'Connection capacity load',
    db_total_traffic: 'Total Handled Traffic',
    db_traffic_per_user: 'Avg Traffic per Client',
    
    cl_title: 'Clients',
    cl_subtitle: 'Manage access keys, descriptions, and traffic limits',
    cl_add: 'Add Client',
    cl_search: 'Search by client name or access key...',
    cl_status: 'Status',
    cl_name: 'Client Name',
    cl_unnamed: 'Unnamed Client',
    cl_key: 'Access Key',
    cl_usage: 'Usage (Tx / Rx)',
    cl_limit: 'Limit',
    cl_actions: 'Actions',
    cl_active: 'Active',
    cl_offline: 'Inactive',
    cl_unlimited: 'Unlimited',
    cl_share_title: 'Connection Profile',
    cl_share_sub: 'Use this link to configure the OSTP client on your device.',
    cl_share_link: 'OSTP Connection Link',
    cl_how_to: 'How to connect:',
    cl_how_to_1: 'Install OSTP Client app on your device.',
    cl_how_to_2: 'Copy the connection link above.',
    cl_how_to_3: 'Import the link in the client or run via CLI:',
    cl_add_title: 'Add New Client',
    cl_edit_title: 'Edit Client Settings',
    cl_form_name: 'Client Name / Description',
    cl_form_limit: 'Traffic Limit',
    cl_form_limit_sub: 'Leave empty for unlimited',
    cl_form_custom: 'Custom Access Key (Optional)',
    cl_form_custom_sub: 'Random key generated if left blank',
    cl_form_save: 'Save Changes',
    cl_confirm_delete: 'Are you sure you want to delete this access key? Active connections will be dropped immediately.',
    cl_confirm_reset: 'Reset traffic counters for this client?',
    cl_copied: 'Copied to clipboard!',
    cl_share_scan: 'Scan with your camera to get the link',
    cl_share_download_qr: 'Download QR Code',
    
    st_title: 'Settings',
    st_subtitle: 'Interactive configuration of OSTP core and panel parameters',
    st_reset: 'Reset Changes',
    st_tab_ui: 'Core Settings (UI)',
    st_tab_json: 'Raw JSON Editor',
    st_tab_conn: 'Panel Connection',
    st_save_btn: 'Save Configuration',
    st_save_success: 'Configuration saved successfully! Core reloaded via hot-reload.',
    st_save_error: 'Save failed: ',
    st_conn_title: 'Connection to Management API',
    st_conn_desc: 'Specify connection parameters of this web interface to the OSTP core daemon.',
    st_conn_url: 'API Connection URL',
    st_conn_token: 'Authorization Token (Bearer)',
    st_conn_token_sub: 'Insert token from config.json',
    st_conn_test: 'Test Connection',
    st_conn_save: 'Save Connection Settings',
    st_conn_success: 'Connection established! Version: {version}, Active: {users}',
    st_conn_error: 'Connection failed: {error}',
    st_raw_title: 'Edit Raw JSON',
    st_raw_desc: 'Direct modification of config.json. Any syntax error will block the submission.',
    st_ui_general: 'General Server Settings',
    st_ui_log: 'Logging Level (log_level)',
    st_ui_port: 'Listen Port (listen)',
    st_ui_debug: 'Full network debug log mode (debug)',
    st_ui_api_title: 'Management API Server',
    st_ui_api_enable: 'Enable built-in management API server',
    st_ui_api_bind: 'API Bind Address (bind)',
    st_ui_api_token: 'API Token (api.token)',
    st_ui_api_warning: 'Warning! Changing API port/token will require manual update of panel settings.',
    st_ui_fb_title: 'TCP Fallback (Anti-detection)',
    st_ui_fb_enable: 'Forward unrecognized TCP traffic to web server',
    st_ui_fb_port: 'Input TCP port (listen)',
    st_ui_fb_target: 'Target web server (target)',
    st_ui_rl_title: 'Reality Obfuscation Parameters (XTLS)',
    st_ui_rl_enable: 'Activate Reality obfuscation',
    st_ui_rl_dest: 'Masquerade domain destination (dest)',
    st_ui_rl_pri: 'Reality private key (X25519)',
    st_ui_rl_pub: 'Reality public key (pbk)',
    st_ui_rl_sid: 'Short session SID (8 bytes hex)',
    st_ui_rl_sni: 'SNI domains list (comma separated)',
    st_ui_ob_title: 'Outbound Routing',
    st_ui_ob_enable: 'Forward client traffic through third-party proxy (outbound proxy)',
    st_ui_ob_proto: 'Proxy Protocol',
    st_ui_ob_addr: 'Proxy Address',
    st_ui_ob_port: 'Proxy Port',
    st_ui_ob_action: 'Default Action',
    st_ui_ob_action_direct: 'Direct (direct)',
    st_ui_ob_action_proxy: 'Proxy (proxy)',
    
    tl_title: 'Tools',
    tl_subtitle: 'Reality key generation, config backups, and diagnostics',
    tl_keygen_title: 'Reality X25519 Keypair Generator',
    tl_keygen_desc: 'Reality masquerade requires an X25519 keypair. Generate it here or run `ostp --generate-key` on the server.',
    tl_keygen_btn: 'Generate Keypair',
    tl_keygen_pub: 'Public Key (pbk)',
    tl_keygen_pri: 'Private Key (private_key)',
    tl_keygen_sid: 'Suggested Session SID (sid)',
    tl_keygen_copy: 'Copy and Apply to Reality Config',
    tl_keygen_applied: 'Keypair generated! Copy and paste them into Settings tab.',
    tl_backup_title: 'Configuration Backups',
    tl_backup_desc: 'Export current server configuration to a file, or restore it by uploading a backup file.',
    tl_backup_export: 'Download Backup config.json',
    tl_backup_import_zone: 'Drag & drop backup config.json here, or click to browse',
    tl_backup_import_btn: 'Restore from file',
    tl_backup_import_success: 'Configuration restored successfully! Changes reloaded.',
    tl_backup_import_error: 'Failed to restore backup: ',
    tl_diag_title: 'API Diagnostics',
    tl_diag_ping: 'API Latency Check (Ping)',
    tl_diag_status: 'API Connection Status',
    
    wk_title: 'Wiki & Docs',
    wk_subtitle: 'Guides and API references loaded in real-time from GitHub',
    wk_tab_guide: 'Configuration Guide',
    wk_tab_api: 'API Endpoints Guide',
    wk_loading: 'Loading documentation from GitHub...',
    wk_load_error: 'Failed to load from GitHub. Showing local backup copy:',
    
    au_title: 'Audit Logs',
    au_subtitle: 'Local audit log of administrative actions in current session',
    au_empty: 'History is empty',
    au_clear: 'Clear Audit Logs',
    au_time: 'Time',
    au_event: 'Event',
    au_status: 'Result',

    dns_title: 'DNS Filtering',
    dns_subtitle: 'Built-in DNS server with AdBlock and DoH support',
    dns_enable: 'Enable built-in DNS server',
    dns_upstream: 'DoH Upstream Server',
    dns_upstream_sub: 'Where allowed DNS queries will be forwarded (DNS over HTTPS)',
    dns_custom_domains: 'Custom Domains',
    dns_domain: 'Domain',
    dns_ip: 'IP Address',
    dns_add_custom: 'Add Domain',
    dns_adblock_lists: 'AdBlock Lists',
    dns_list_url: 'List URL (hosts format)',
    dns_add_list: 'Add List',
    dns_save: 'Save Settings',
    dns_refresh: 'Refresh Blocklists',
    dns_query_log: 'DNS Query Log',
    dns_q_time: 'Time',
    dns_q_domain: 'Domain',
    dns_q_client: 'Client IP',
    dns_q_status: 'Status',
    dns_q_allowed: 'Allowed',
    dns_q_blocked: 'Blocked',
  }
} as const;

export type TranslationKey = keyof typeof translations.en;
