{
  "app.name": "TG WS Proxy",
  "app.error_title": "TG WS Proxy — Error",
  "app.settings_title": "TG WS Proxy — Settings",
  "app.update_title": "TG WS Proxy — Update",

  "language.ru": "Русский",
  "language.en": "English",

  "appearance.auto": "Auto",
  "appearance.light": "Light",
  "appearance.dark": "Dark",

  "settings.title": "Settings",
  "settings.language": "Language",
  "settings.theme": "Theme",

  "section.interface": "Interface",
  "section.mtproto": "MTProto Connection",
  "section.dc": "Telegram Data Centers (DC → IP)",
  "section.cfproxy": "Cloudflare Proxy",
  "section.cfworker": "Cloudflare Worker",
  "section.logs": "Logs & Performance",
  "section.updates": "Updates",
  "section.windows_startup": "Windows Startup",

  "label.host": "IP address",
  "label.port": "Port",
  "label.secret": "Secret",
  "label.dc_hint": "One rule per line, format: number:IP",
  "label.cf_enable": "Enable CF proxy",
  "label.cf_custom_domain": "Custom domain",
  "label.cfworker_domains": "Cloudflare Worker domains (comma-separated)",
  "label.verbose": "Verbose logging",
  "label.buf_kb": "Buffer, KB (default 256)",
  "label.pool_size": "WebSocket session pool (default 4)",
  "label.log_max_mb": "Max log size, MB (default 5)",
  "label.check_updates": "Check for updates on startup",
  "label.autostart": "Start on system boot",
  "label.autostart_hint": "If you move the app to another folder, the autostart entry may reset.",

  "tip.host": "Address the proxy listens on.\nUsually 127.0.0.1 for localhost, 0.0.0.0 for all interfaces",
  "tip.port": "Proxy port. Telegram Desktop proxy settings must use the same port",
  "tip.secret": "Secret key for client authorization",
  "tip.dc": "Mapping of Telegram data center (DC) number to web.telegram.org dc server IP.\nEach line: «number:IP», e.g. 4:149.154.167.220. The proxy routes traffic to Telegram servers using these rules\n\nIf connection fails then fallbacks are used",
  "tip.verbose": "When enabled, more details are written to the log file — useful for troubleshooting",
  "tip.buf_kb": "Receive/send buffer size in kilobytes.\nA larger value allocates more memory per socket",
  "tip.pool": "How many parallel WebSocket sessions per data center can be kept open.\nIncreasing may help under high load",
  "tip.log_mb": "Maximum log file size; the file is overwritten when the limit is reached",
  "tip.autostart": "Launch TG WS Proxy on Windows login. If you move the app to another folder, autostart will reset",
  "tip.check_updates": "Check for updates on startup",
  "tip.cfproxy": "Use Cloudflare proxy for unreachable data centers",
  "tip.cfproxy_domain": "Your own domains proxied through Cloudflare for WS connections.\nSeparate multiple domains with commas.\nIf empty — chosen automatically from supported domains",
  "tip.cfproxy_user_domain_cb": "Specify your own domains instead of automatic selection",
  "tip.cfworker_domain": "Cloudflare Worker domains (e.g. name.account.workers.dev).\nSeparate multiple domains with commas.\nThe proxy routes connections to Telegram DCs by IP through them",
  "tip.save": "Save settings",
  "tip.cancel": "Close without saving changes",

  "button.save": "Save",
  "button.cancel": "Cancel",
  "button.test": "Test",
  "button.test_loading": "...",
  "button.open_release": "Open release page",
  "button.start": "Get started",
  "button.update": "Update",
  "button.page": "Page",
  "button.close": "Close",

  "validation.bad_host": "Invalid IP address.",
  "validation.bad_port": "Port must be a number between 1 and 65535",
  "validation.bad_secret_len": "Secret must be exactly 32 hex characters (16 bytes).",
  "validation.bad_secret_hex": "Secret must contain only hex characters (0-9, a-f).",
  "validation.dc_format": "Invalid DC:IP format: {entry}",
  "validation.dc_invalid": "Invalid DC:IP entry: {entry}",

  "connectivity.cfproxy_title": "CF Proxy",
  "connectivity.cfworker_title": "CF Worker",
  "connectivity.timeout": "timeout",
  "connectivity.no_response": "no response",
  "connectivity.available": "{title}: available",
  "connectivity.unavailable": "{title}: unavailable",
  "connectivity.all_ok": "{title}: all working",
  "connectivity.partial": "{title}: partially working",
  "connectivity.auto_ok": "✓ {title} works. {ok} of {total} servers reachable.",
  "connectivity.all_ok_domain": "✓ All {total} servers reachable via {domain}.",
  "connectivity.none_ok": "✗ No servers respond via {domain}.\n\nErrors:\n{errors}",
  "connectivity.partial_detail": "Domain: {domain}\n\n✓ Working: {ok_list}\n\n✗ Unreachable:\n{fail_list}",
  "connectivity.error_line": "  {prefix}{dc}: {error}",
  "connectivity.cf_auto_fail": "✗ None of the automatic CF domains respond.",
  "connectivity.multi_all_ok": "✓ {domain}: all {total} servers reachable",
  "connectivity.multi_fail": "✗ {domain}: unavailable",
  "connectivity.multi_partial": "~ {domain}: working {ok_list}; unreachable {fail_list}",

  "updates.status_error": "Could not reach GitHub. Check your network.",
  "updates.status_pending": "Status will appear after the background check on startup.",
  "updates.status_available": "Version {latest} is available on GitHub (you have {current}).",
  "updates.status_ahead": "You have {current} — newer than the latest GitHub release ({latest}).",
  "updates.status_latest": "Latest known version from GitHub is installed.",

  "first_run.title": "Proxy is running in the system tray",
  "first_run.how_to": "How to connect Telegram Desktop:",
  "first_run.auto": "  Automatically:",
  "first_run.auto_hint": "  Right-click tray icon → «Open in Telegram»",
  "first_run.auto_link": "  Or copy the link, send it to yourself in TG and click it: {url}",
  "first_run.manual": "  Manually:",
  "first_run.manual_path": "  Settings → Advanced → Connection type → Proxy",
  "first_run.manual_mtproto": "  MTProto → {host} : {port}",
  "first_run.manual_secret": "  Secret: dd{secret}",
  "first_run.open_now": "Open proxy in Telegram now",

  "tray.open_telegram": "Open in Telegram ({host}:{port})",
  "tray.copy_link": "Copy link",
  "tray.restart": "Restart proxy",
  "tray.settings": "Settings...",
  "tray.logs": "Open logs",
  "tray.update": "Update ({current} → {new})",
  "tray.exit": "Exit",

  "dialog.restart_title": "Restart?",
  "dialog.restart_body": "Settings saved.\n\nRestart the proxy now?",
  "dialog.already_running": "Application is already running.",
  "dialog.log_not_found": "Log file has not been created yet.",
  "dialog.ctk_missing": "customtkinter is not installed.",
  "dialog.copy_ok": "Link copied to clipboard, send it in Telegram and click it:\n{url}",
  "dialog.copy_fail": "Failed to copy link:\n{error}",
  "dialog.open_tg_fail": "Could not open Telegram automatically.\n\n{detail}",
  "dialog.open_tg_fail_clipboard": "Link copied to clipboard, send it in Telegram and click it:\n{url}",
  "dialog.open_tg_fail_manual": "Install pyperclip to copy to clipboard, or open manually:\n{url}",
  "dialog.pyperclip_missing": "Install pyperclip to copy to clipboard.",
  "dialog.log_open_fail": "Failed to open log file:\n{error}",
  "dialog.autostart_fail": "Failed to change autostart.\n\nTry running the app as a user with registry permissions.\n\nError: {error}",

  "update.available": "New version available: {version}",
  "update.ask_open": "New version available: {version}\n\nOpen the release page in the browser?",
  "update.downloading": "Downloading...",
  "update.replacing": "Replacing file...",
  "update.restarting": "Restarting...",
  "update.error": "Error: {msg}",
  "update.download_fail": "Download failed:\n{error}",
  "update.rename_fail": "Failed to rename file:\n{error}",
  "update.move_fail": "Failed to move file:\n{error}",

  "error.dc_config": "DC → IP configuration error.",

  "diagnostics.port_busy": "Failed to start proxy:\nPort is already in use by another application.\n\nClose the app using this port, or change the port in proxy settings and restart.",
  "diagnostics.permission": "Failed to start proxy:\nAccess to address/port denied (firewall, antivirus, or permissions).\n\nChange the port to a random value in 10000–50000 in settings, check firewall/antivirus, and restart.",
  "diagnostics.bad_address": "Failed to start proxy:\nInvalid or unavailable listen address.\n\nCheck the solution at the link opened in your browser.\nVerify host and port in proxy settings and restart.",

  "ipv6.warning": "IPv6 connectivity is enabled on your computer.\n\nTelegram may try to connect over IPv6, which is not supported and may cause errors.\n\nIf the proxy does not work or logs show IPv6 connection attempts, try disabling IPv6 connection attempts in Telegram proxy settings. If that does not help, try disabling IPv6 system-wide.\n\nThis warning is shown only once."
}
