{ "nav_servers": "Servers", "nav_users": "Users", "nav_invites": "Invite links", "nav_settings": "Settings", "nav_connections": "Connections", "nav_logout": "Logout", "theme_dark": "Dark", "theme_light": "Light", "back_to_servers": "← Back to servers", "server_check": "Check", "server_checking": "Checking...", "protocols": "Protocols", "install": "Install", "uninstall": "Uninstall", "run": "Running", "stop": "Stopped", "not_installed": "Not installed", "installed": "Installed", "add_server": "Add Server", "no_servers": "No servers added", "name": "Name", "host": "Host", "port": "Port", "status": "Status", "actions": "Actions", "edit": "Edit", "delete": "Delete", "save": "Save", "cancel": "Cancel", "loading": "Loading...", "copy": "Copy", "download": "Download", "config": "Configuration", "qr_code": "QR code", "vpn_key": "VPN key", "clients": "Clients", "traffic": "Traffic", "limit": "Limit", "manage": "Manage", "no_protocols": "No protocols", "add_server_desc": "Add your first VPN server to get started. You'll need SSH credentials to connect.", "ssh_host": "Host / IP", "ssh_port": "SSH Port", "ssh_user": "User", "ssh_password": "Password", "ssh_key": "SSH Key", "ssh_key_placeholder": "Private SSH Key", "ssh_key_hint": "Paste the content of your id_rsa or id_ed25519 file", "connect": "Connect", "connecting": "Connecting...", "server_added": "Server added successfully", "server_deleted": "Server deleted", "delete_confirm": "Are you sure you want to delete this server?", "success": "Success", "error": "Error", "info": "Info", "login_title": "Login to Panel", "username": "Username", "password": "Password", "captcha": "Captcha", "captcha_placeholder": "Enter characters from image", "captcha_hint": "Click to refresh image", "login": "Login", "logging_in": "Logging in...", "login_error": "Login failed", "check_done": "Check complete", "check_error": "Connection error", "ssh_ok": "SSH Connection", "docker_ok": "Docker", "docker_not_installed": "Docker not installed", "awg_desc": "A newer version of the protocol based on awg-go. Supports advanced obfuscation with S3, S4 parameters.", "awg_legacy_desc": "Original AWG version based on WireGuard kernel. Compatible with older client versions.", "xray_desc": "Modern protocol that masks traffic as regular web traffic (XTLS-Reality). Resistant to deep packet analysis.", "wireguard_desc": "Standard and fastest VPN protocol. Supported natively on all modern OS, but easily detected by DPI.", "not_checked": "Not checked", "connections": "Connections", "add": "Add", "loading_connections": "Loading connections...", "no_connections": "No connections", "no_connections_desc": "Add your first connection to generate a VPN configuration", "install_protocol": "Install protocol", "port_default_hint": "Default port: 55424. Make sure it's not busy", "port_xray_hint": "Default port: 443 (recommended for Xray). Make sure it's not taken by another web server.", "reinstall": "Reinstall", "uninstall_confirm": "Uninstall {}? All connections and configurations will be lost.", "stop_container_confirm": "Stop container {}?", "start_container_confirm": "Start container {}?", "stopping": "Stopping", "starting": "Starting", "stopped": "stopped", "started": "started", "server_config": "Server configuration", "add_connection": "Add connection", "connection_name": "Connection name", "connection_name_placeholder": "Example: iPhone, Laptop", "assign_to_user": "Assign to user (optional)", "no_assign": "— No assignment —", "create": "Create", "creating": "Creating...", "connection_created": "Connection \"{}\" created", "delete_connection_confirm": "Delete this connection? The configuration will stop working.", "connection_deleted": "Connection deleted", "config_tab": "📄 Config", "vpn_key_tab": "🔑 VPN-key", "qr_code_tab": "📱 QR-code", "copy_config": "📋 Copy", "download_conf": "⬇ Download .conf", "copy_key": "📋 Copy key", "vpn_link_hint": "Paste this link into the AmneziaVPN app for automatic configuration", "qr_hint": "Scan the QR code in the AmneziaVPN app", "no_data": "No data", "start_btn": "▶ Start", "stop_btn": "⏹ Stop", "config_btn": "⚙️ Config", "done": "Done", "installing": "Installing...", "start_install": "Starting installation...", "check_docker": "Checking Docker...", "prepare_host": "Preparing host...", "build_container": "Building container...", "install_success": "Protocol installed successfully!", "install_error": "Installation error: ", "qr_error": "Failed to generate QR code", "users_title": "Users", "search_placeholder": "Search by name, email or Telegram...", "add_user": "Add User", "prev_page": "← Back", "next_page": "Next →", "page_info": "Page {} of {}", "loading_users": "Loading users...", "nothing_found": "Nothing found", "search_empty_desc": "Try changing your query or create a new user", "username_label": "Username", "password_label": "Password", "role_label": "Role", "role_user_desc": "User — view only own connections", "role_support_desc": "Support — server management", "role_admin_desc": "Admin — full access", "tg_id_label": "Telegram ID (opt.)", "email_label": "Email (opt.)", "traffic_limit_label": "Traffic limit (GB) (opt., 0 = ∞)", "expiration_date_label": "Expiration date", "no_expiration": "No expiry", "expire_after_first_use": "Start after first use", "expire_after_first_use_hint": "The day countdown starts when the user first gets a config (panel, share, or Telegram).", "expire_days_required": "Enter a number of days greater than 0", "expire_pending_label": "{} days after first use", "expire_started_suffix": "countdown started", "expire_already_started_hint": "Countdown already started. Valid until: {}. Uncheck to set a fixed date.", "description_label": "Description (opt.)", "auto_conn_title": "Automatic connection creation (optional)", "server_label": "Server", "no_create_conn": "— Do not create connection —", "protocol_label": "Protocol", "server_then_protocol_hint": "Choose a server first, then a protocol installed on it (WireGuard, AmneziaWG 2.0, etc.).", "edit_user_title": "Edit user: {}", "edit_user_tg": "Telegram ID (optional)", "edit_user_email": "Email (optional)", "edit_user_limit": "Traffic limit (GB) (0 = ∞)", "new_password_hint": "New password (leave empty if no change needed)", "op_type_label": "Operation type", "create_new_conn": "Create new connection", "link_existing_conn": "Link existing", "select_existing_conn": "Select existing connection", "existing_conn_hint": "Only connections not linked to users will be shown", "conn_name_panel": "Connection name (in panel)", "user_conns_title": "User connections", "no_free_conns": "No free connections", "select_connection": "Please select a connection", "linking": "Linking...", "conn_linked": "Connection linked", "enabling": "Enabling", "disabling": "Disabling", "user_enabled": "User enabled", "user_disabled": "User disabled", "delete_user_confirm": "Delete user? All their connections will be deleted.", "share_access": "Share access", "enable_public_access": "Enable public access", "share_password_label": "Password (optional)", "share_password_hint": "If set, user must enter it", "guest_settings_title": "Guest access", "guest_enable": "Enable guest access (no registration)", "guest_enable_hint": "Public link on the login page. Guests see connections of the selected user and can optionally create a new config.", "guest_link_label": "Guest link", "guest_link_placeholder": "Save settings to generate a link", "guest_regen_token": "Regenerate link", "guest_regen_confirm": "Regenerate guest link? The old link will stop working.", "guest_token_updated": "Guest link updated", "guest_user_label": "Guest connections user", "guest_user_none": "— Select user —", "guest_user_hint": "Create a regular user (e.g. guest), assign VPN connections — guests will see them without logging in.", "guest_password_label": "Guest password (optional)", "guest_password_keep": "Leave blank to keep current password", "guest_clear_password": "Remove password protection", "guest_allow_create": "Allow guests to create a new config", "guest_access_btn": "Continue as guest", "guest_access_login_hint": "No account required", "guest_title": "Guest access", "guest_subtitle": "Get a VPN config without registration", "guest_protected_desc": "This guest page is password protected.", "guest_get_config": "Get config", "guest_get_config_hint": "A new VPN config will be created for you", "guest_not_found": "404 Not Found", "guest_not_found_desc": "Guest access is disabled or the link is invalid.", "wrong_guest_password": "Wrong password", "invites_title": "Invite links", "invites_hint": "Create shareable links. Anyone with the link can create a VPN config — you set how many times.", "invites_empty": "No invite links yet", "invites_empty_desc": "Create a link and share it — no registration needed.", "invite_create": "Create link", "invite_edit": "Edit link", "invite_active": "Active", "invite_expired": "Expired", "invite_exhausted": "No uses left", "invite_uses": "Uses", "invite_name_label": "Link name", "invite_max_uses_label": "Max configs", "invite_max_uses_hint": "How many configs can be created via this link. 0 = unlimited.", "invite_user_label": "Store configs under user", "invite_user_hint": "Created configs are attached to this panel user (for management).", "invite_user_required": "Select a user to store configs under", "invite_password_label": "Password (optional)", "invite_expires_label": "Expires at (optional)", "invite_duration_label": "Config lifetime (days)", "invite_duration_hint": "Starts when the user clicks Get config. 0 = no expiry.", "invite_duration_short": "Lifetime", "invite_duration_starts_hint": "After you get a config it will work for {} day(s)", "invite_config_expires_at": "Config valid until: {}", "invite_sub_tab": "Subscription", "days_short": "d", "invite_clear_expires": "Remove expiration", "invite_note_label": "Note (admin only)", "invite_note_placeholder": "Internal comment", "invite_reset_used": "Reset used counter to 0", "invite_created": "Invite link created (URL copied)", "invite_updated": "Invite link updated", "invite_deleted": "Invite link deleted", "invite_delete_confirm": "Delete this invite link?", "invite_public_title": "Invite", "invite_public_subtitle": "Get a VPN config via invite link", "invite_protected_desc": "This invite link is password protected.", "invite_get_config_hint": "Each click creates one new config and counts as a use", "invite_uses_left": "Remaining uses: {}", "invite_uses_left_unlimited": "Created so far: {} (unlimited)", "invite_not_found": "404 Not Found", "invite_not_found_desc": "Invite link is invalid or was deleted.", "wrong_invite_password": "Wrong password", "public_link_label": "Public link", "disabled": "Disabled", "out_of": "Of", "settings_title": "Panel Settings", "appearance": "🎨 Appearance", "title_label": "Title", "logo_label": "Logo (Emoji or symbol)", "subtitle_label": "Subtitle", "captcha_title": "🔐 Captcha", "enable_captcha": "Enable captcha (multicolorcaptcha)", "telegram_bot_title": "🤖 Telegram Bot", "bot_token_label": "Bot Token (from @BotFather)", "bot_status": "Status", "bot_running": "✅ Running", "bot_stopped": "⏹ Stopped", "bot_stop_btn": "⏹ Stop", "bot_start_btn": "▶️ Start", "bot_hint": "After changing the token, save the settings — the bot will restart automatically. Users must have a Telegram ID in their profile.", "api_docs_title": "🔌 API Documentation", "api_docs_hint": "Use these interfaces to explore the panel's API capabilities", "tunnels_title": "Tunnels", "local_server": "Local Server", "tunnel_install_enable": "Install & Enable", "tunnel_enable": "Enable Tunnel", "tunnel_running": "Tunnel running", "tunnel_stop": "Stop", "tunnel_stopping": "Stopping...", "tunnel_stopped": "Tunnel stopped", "tunnel_delete": "Delete", "tunnel_deleted": "Tunnel deleted", "tunnel_delete_confirm": "Stop and delete this panel-managed tunnel binary?", "tunnel_starting": "Starting tunnel...", "tunnel_started": "Tunnel started", "tunnel_waiting_url": "Tunnel started. Waiting for public URL...", "tunnel_no_public_url": "Public URL will appear here after the tunnel starts.", "tunnels_hint": "Quick tunnels expose this local panel to the internet. Keep admin credentials strong and share public URLs only with trusted users.", "ngrok_authtoken_placeholder": "ngrok authtoken (optional for some accounts)", "import_users_title": "📤 Import Users", "import_source_label": "Import / Sync Source", "remnawave_url_label": "Remnawave URL", "api_key_label": "API Key", "enable_sync": "Enable synchronization", "sync_hint": "Users will be created, disabled, and deleted automatically based on Remnawave data", "sync_now_btn": "🔄 Sync now", "delete_sync_btn": "🗑 Delete synchronization", "auto_create_conns": "Create connections automatically", "sync_server_label": "Server for new connections", "save_changes": "💾 Save changes", "sync_success": "Sync completed: {} users", "sync_deleted": "Deleted {} synced users", "delete_sync_confirm": "Are you sure you want to delete ALL synced users and their connections? This action is irreversible.", "settings_saved": "Settings saved successfully", "bot_started": "Bot started", "bot_stopped_msg": "Bot stopped", "sync_running": "Syncing...", "deleting": "Deleting...", "my_connections_title": "My Connections", "show_config": "📄 Show config", "no_connections_user_desc": "Contact administrator to create a VPN connection", "share_title": "Connection Access", "vpn_access": "VPN Access", "user_label_share": "User", "share_protected_desc": "This access is password protected. Please enter it to continue.", "auth_success": "Auth success", "loading_share_conns": "Loading connections...", "no_active_conns": "You have no active connections yet.", "show_settings_btn": "🔑 Show settings", "share_copy_hint": "Tap the button — the key copies itself. Then paste it into your VPN app.", "copy_key_big": "Copy key", "copying_key": "Copying…", "key_copied": "Key copied — paste it into the app", "more_qr_download": "QR code & file", "download_config_file": "Download config file", "show_config_text": "Show config text", "copied": "Copied!", "active": "Active", "site_description": "Amnezia Web Panel — management of VPN servers and protocols AmneziaWG", "toggle_theme": "Change theme", "copied_to_clipboard": "Copied to clipboard", "share_not_found": "404 Not Found", "share_not_found_desc": "Either the link is incorrect or access has been disabled.", "invalid_captcha": "Invalid captcha", "account_disabled": "Account disabled", "invalid_login": "Invalid login or password", "user_exists": "User with this name already exists", "cannot_delete_self": "You cannot delete yourself", "wrong_share_password": "Wrong password", "saving": "Saving...", "select_lang": "Select Language", "lang_ru": "Русский", "lang_en": "English", "lang_fr": "Français", "lang_zh": "中文 (Chinese)", "lang_fa": "فارسی (Persian)", "backup_title": "Simple Backup", "download_backup": "Download data.json", "restore_backup": "Restore from file", "restore_confirm": "Are you sure? Current data will be overwritten and the application will restart.", "restore_success": "Restore successful! Restarting...", "invalid_backup_file": "Invalid backup file or structure", "config_unavailable": "Configuration unavailable", "config_unavailable_desc": "This client was created via the native Amnezia app.\\nThe private key is stored only on the user's device and cannot be recovered by the server.", "client_public_key": "Client public key:", "telemt_desc": "MTProxy-based Telegram proxy with advanced obfuscation and TLS emulation support.", "hysteria_desc": "Hysteria 2 (QUIC/UDP) via official tobyxdd/hysteria (apernet/hysteria) with Let's Encrypt TLS. Admin sets the domain at install time.", "hysteria_domain": "Domain", "hysteria_email": "Let's Encrypt email", "hysteria_port_hint": "UDP port for Hysteria (default 8998). Avoid 443 if nginx/xray already use UDP/TCP 443. Port 80/TCP must be free for certificate issuance.", "hysteria_install_hint": "Point the domain A-record to this server before install. Port 80/TCP is used temporarily for Let's Encrypt HTTP-01 validation. BBR and salamander obfuscation are enabled automatically.", "hysteria_dns_hint": "Create this DNS record before installation:", "hysteria_settings_title": "Hysteria settings", "hysteria_change_port": "Change port", "hysteria_port_change_hint": "UDP listen port. If you see “address already in use”, pick a free port (e.g. 8443 or 8998), save, then re-import the client link.", "hysteria_settings_saved": "Hysteria settings updated", "hysteria_ports_warning": "Warning: free TCP ports 80 and 443 are required for stable operation (Let's Encrypt on 80, HTTPS/QUIC on 443).", "hysteria_renew_ssl": "Renew SSL", "hysteria_ssl_change_hint": "Changing the domain re-issues the Let's Encrypt certificate (port 80 must be free).", "hysteria_ssl_required": "Domain and email are required for SSL", "naiveproxy_desc": "NaiveProxy (Caddy + forwardproxy) — HTTPS/HTTP2 proxy with Let's Encrypt TLS. Admin sets the domain at install time.", "naiveproxy_domain": "Domain", "naiveproxy_email": "Let's Encrypt email", "naiveproxy_port_hint": "TCP port 443 is fixed for NaiveProxy. Port 80/TCP must be free for certificate issuance.", "naiveproxy_install_hint": "Point the domain A-record to this server before install. Free TCP ports 80 and 443 are required (Let's Encrypt and HTTPS proxy).", "naiveproxy_dns_hint": "Create this DNS record before installation:", "naiveproxy_ports_warning": "Warning: free TCP ports 80 and 443 are required for stable operation (Let's Encrypt on 80, HTTPS proxy on 443).", "naiveproxy_client_hint": "v2rayN: if logs show UDP to 2001:4860… (Google DNS IPv6), set DNS to IPv4 only (8.8.8.8 / 1.1.1.1) and prefer IPv4 — NaiveProxy is TCP; broken IPv6 DNS makes latency −1 ms.", "server_ssl_domain": "SSL domain (default)", "server_ssl_email": "SSL email (default)", "server_ssl_hint": "Used when installing Hysteria / NGINX on this server (Let's Encrypt).", "container_logs": "Container logs", "logs_btn": "📋 Logs", "logs_live": "Live", "logs_reconnect": "reconnecting…", "no_logs": "No logs yet", "container_status": "Status", "exit_code": "Exit code", "close": "Close", "tls_emulation": "TLS Emulation", "tls_domain": "Masking Domain", "max_connections_limit": "Max Connections", "max_connections_hint": "0 for unlimited. Limits total concurrent users.", "traffic_reset_strategy_label": "Traffic reset strategy", "traffic_reset_never": "Never reset", "traffic_reset_daily": "Daily reset", "traffic_reset_weekly": "Weekly reset", "traffic_reset_monthly": "Monthly reset", "traffic_reset_hint": "How often should user traffic be reset", "traffic_used_total": "Total spent", "traffic_reset_info": "Next reset: {}", "services": "Services", "dns_desc": "Personal DNS server to block ads and protect the privacy of your queries.", "dns_internal_hint": "The service runs on the internal network (172.29.172.254) without binding to host ports.", "telemt_port_hint": "Port for the Telegram proxy (typically 443).", "socks5_desc": "Single-account SOCKS5 proxy (3proxy) with username/password authentication.", "socks5_username": "Username", "socks5_password": "Password", "socks5_password_placeholder": "Leave empty to auto-generate", "socks5_password_hint": "If left empty, a random 16-character password will be generated.", "socks5_port_hint": "TCP port the proxy will listen on. The default in the official Amnezia client is 38080.", "socks5_change_settings": "Change settings", "socks5_settings_title": "SOCKS5 — Connection settings", "socks5_port_change_hint": "Changing the port recreates the container; existing sessions will be dropped.", "socks5_settings_saved": "SOCKS5 settings saved", "adguard_desc": "AdGuard Home — DNS-based ad blocker with a web admin UI.", "adguard_mode": "Installation mode", "adguard_mode_sidebyside": "Side-by-side", "adguard_mode_sidebyside_hint": "runs alongside AmneziaDNS on a separate internal IP (172.29.172.253)", "adguard_mode_replace": "Replace AmneziaDNS", "adguard_mode_replace_hint": "removes amnezia-dns and takes its IP — VPN clients use AdGuard immediately", "adguard_dns_port": "DNS port (53)", "adguard_dns_port_hint": "Internal DNS port served to VPN clients via the docker network.", "adguard_web_port": "Web UI port", "adguard_dot_port": "DoT port", "adguard_doh_port": "DoH port", "adguard_expose_web": "Expose to internet", "adguard_expose": "Expose to host", "adguard_install_hint": "Initial AdGuard setup runs through its built-in wizard via the web UI after install.", "adguard_internal_ip": "Internal IP", "adguard_web_ui": "Admin URL", "adguard_open_ui": "Open Web UI", "edit_server_title": "Edit server", "edit_keep_credential": "Leave empty to keep the current value", "server_saved": "Server settings saved", "servers_reordered": "Servers reordered", "ping_checking": "Checking connectivity...", "offline": "offline", "api_tokens_title": "API tokens", "api_tokens_hint": "Bearer tokens for external integrations. Send the token in the `Authorization: Bearer ` header. Tokens have admin-equivalent rights and stop working if their owner is disabled or demoted.", "api_tokens_empty": "No API tokens yet. Create one to integrate the panel with an external service.", "api_tokens_create": "Create token", "api_tokens_create_title": "Create API token", "api_tokens_name_label": "Name", "api_tokens_name_placeholder": "e.g. Linear integration, CI bot, monitoring", "api_tokens_name_hint": "Used to identify this token in the list. The token value itself is generated for you.", "api_tokens_name_required": "Token name is required", "api_tokens_created_title": "Token created", "api_tokens_value_label": "Token value", "api_tokens_warning_title": "This is the only time you'll see this token.", "api_tokens_warning_body": "Copy it now and store it in your integration's secret manager. The panel keeps only a hash — if you lose this value you'll need to revoke and recreate the token.", "api_tokens_revoke": "Revoke", "api_tokens_revoke_confirm": "Revoke token \"{}\"? Any integration using it will stop working.", "api_tokens_revoked": "Token revoked", "api_tokens_created": "Created", "api_tokens_last_used": "Last used", "api_tokens_owner": "Owner", "api_tokens_never": "never", "coming_soon": "Coming soon", "promo_star_cta": "Star us on GitHub", "aivpn_subtitle": "AI-driven protocol selection that picks the right tunnel for the moment. Land it sooner — drop a star.", "revproxy_title": "Reverse Proxy", "revproxy_subtitle": "High-performance traffic obfuscation: hide your VPN endpoint behind a polished public-facing site, drop the DPI footprint.", "management": "Management", "server_management": "Server Management", "server_management_desc": "Perform system-level actions on your machine.", "check_server_services": "Check the server services", "reboot_server": "Reboot server", "clear_server": "Clear server", "remove_server": "Remove server from panel", "ssl_title": "SSL / HTTPS Settings", "enable_https": "Enable HTTPS", "panel_port_label": "Panel Port", "domain_label": "Domain name", "cert_path_label": "SSL Certificate path (.pem)", "key_path_label": "Private Key path (.pem)", "or_paste_text": "OR paste certificate text", "cert_text_label": "Certificate content (CRT)", "key_text_label": "Private Key content (KEY)", "ssl_hint": "After enabling, the panel will be accessible via https:// on the specified domain. Make sure the file paths or text data are correct.", "about_title": "About & Updates", "current_version": "Current version", "check_updates": "Check for updates", "checking_updates": "Checking...", "update_available": "New version available", "download_update": "Download update", "up_to_date": "You have the latest version", "warp_hint": "WARP routes this host outbound through Cloudflare. It does not create a public panel URL like Quick Tunnel or ngrok.", "warp_install_hint": "Install the official Cloudflare WARP client first, then restart the panel.", "warp_install_required": "Install WARP first", "warp_connect": "Connect WARP", "warp_disconnect": "Disconnect", "warp_connected": "WARP connected", "warp_disconnected": "WARP disconnected", "warp_status_unknown": "WARP status is unknown.", "warp_status_not_installed": "Cloudflare WARP CLI is not installed on this host.", "warp_status_connected": "Cloudflare WARP is connected.", "warp_status_connecting": "Cloudflare WARP is connecting.", "warp_status_disconnected": "Cloudflare WARP is disconnected.", "warp_status_not_registered": "Cloudflare WARP is installed but not registered yet. Connect will try to register automatically.", "warp_status_service_unavailable": "Cloudflare WARP service is not available. Make sure warp-svc is running.", "warp_status_error": "Cloudflare WARP returned an error.", "install_starting": "Starting installation...", "server_check_complete": "Check completed", "server_connection_error": "Connection error", "connections_load_error": "Error loading connections", "connection_updated": "Connection updated", "edit_connection": "Edit connection", "enable_connection_progress": "Enabling connection...", "disable_connection_progress": "Disabling connection...", "connection_enabled": "Connection enabled", "connection_disabled": "Connection disabled", "gb": "GB", "marketplace": "Templates", "open_marketplace": "Open Templates", "marketplace_desc": "Install protocol and service templates available for this server.", "installed_apps": "Installed applications", "installed_apps_hint": "Only installed protocols and services are shown here. Use Templates to add more.", "no_installed_apps": "No installed applications yet", "no_installed_apps_desc": "Open Templates to install protocols or services on this server.", "install_another": "Install another", "new_instance": "new instance", "port_next_instance_hint": "Choose a free UDP port for the additional instance.", "checking_server": "Checking server services...", "web_servers": "Web servers", "nginx_desc": "NGINX web server with Let's Encrypt HTTPS certificate and editable index.html.", "nginx_domain": "Domain", "nginx_email": "Let's Encrypt email", "nginx_port_hint": "HTTPS port exposed on the server. Port 80/TCP must be free and reachable for Let's Encrypt validation.", "nginx_install_hint": "The domain must already point to this server. Port 80/TCP is used temporarily/permanently for HTTP-01 certificate validation.", "site": "Site", "site_editor": "Site editor", "site_saved": "Site saved", "nginx_dns_hint": "Create this DNS record before installation:", "backup": "Backup", "backups": "Backups", "backup_desc": "Backups are stored on the server and include protocol files (config, keys, clientsTable). For WireGuard / AWG you can also download a ZIP of all client .conf files.", "create_backup": "Create backup", "creating_backup": "Creating backup...", "backup_created": "Backup created", "no_backups": "No backups yet", "no_backups_desc": "Create the first backup for this protocol.", "export_client_configs": "Download all .conf", "export_client_configs_hint": "ZIP with all WireGuard / AmneziaWG client configs (when the private key is stored).", "exporting_client_configs": "Preparing ZIP…", "export_client_configs_done": "Client configs ZIP downloaded", "restore_protocol_backup": "Restore", "restore_protocol_backup_confirm": "Restore this backup on the server? Current protocol files will be overwritten and the container will restart.", "restoring_protocol_backup": "Restoring… please wait", "restore_protocol_backup_done": "Backup restored", "refresh": "Refresh", "guest_allow_create_hint": "Creates a config for the guest user (3x-ui VLESS or selected server protocol).", "invite_inbound_hint": "Inbounds are loaded from the selected 3x-ui panel. Only 3x-ui returns the config/share link.", "invite_inbound_loading": "Loading inbounds from 3x-ui…", "invite_inbound_empty": "No VLESS inbounds on this 3x-ui panel", "invite_inbound_need_xui": "Configure 3x-ui in Settings first", "invite_inbound_required": "Select a VLESS inbound from 3x-ui", "invite_sub_url_missing_title": "Subscription URL is not set", "invite_sub_url_missing_hint": "In Settings → 3x-ui set Subscription URL base so invite links issue /sub/… configs.", "xui_url_label": "3x-ui URL", "xui_url_hint": "Include scheme, port and webBasePath if configured (example: https://host:2053/secret)", "xui_sub_url_label": "Subscription URL base", "xui_sub_url_hint": "Public /sub base without trailing slash (example: https://host:2096/sub). Invite configs are issued as subscription links.", "xui_api_token_label": "API Token (preferred)", "xui_api_token_placeholder": "Settings → Security → API Token", "xui_api_token_hint": "If set, username/password login is skipped", "xui_username_label": "3x-ui Username", "xui_password_label": "3x-ui Password", "xui_sync_hint": "Clients from 3x-ui inbounds will be created, disabled, and deleted as panel users (matched by email)", "xui_inbound_label": "VLESS inbound", "xui_inbound_auto": "Auto (first VLESS inbound)", "xui_inbound_hint": "Inbounds are loaded from 3x-ui. This site only creates the client and takes the ready share link — no local config generation.", "xui_servers_title": "3x-ui servers", "xui_servers_hint": "Add 3x-ui panels. When creating, pick a server and an inbound from the 3x-ui list — the panel returns the share link.", "xui_servers_empty": "No 3x-ui servers yet. Click Add server.", "xui_servers_manage_hint": "Panel URLs and subscription bases are managed in the “3x-ui servers” section below.", "xui_server_add": "Add server", "xui_server_name_label": "Name / description", "xui_server_name_hint": "Shown in invites and user forms (e.g. US, NL, Home).", "xui_server_select_label": "3x-ui server", "xui_server_select_hint": "Pick a 3x-ui panel, then an inbound from the list that panel returns via API.", "xui_server_delete_confirm": "Delete this 3x-ui server from the panel?" }