{
  "common": {
    "cancel": "Cancel",
    "confirm": "Confirm",
    "retry": "Try Again",
    "close": "Close",
    "back": "Back",
    "save": "Save",
    "exit": "Exit",
    "copy": "Copy",
    "loading": "Loading…",
    "enabled": "Enabled",
    "disabled": "Disabled",
    "unavailable": "Unavailable",
    "pull_refresh": "Pull to refresh",
    "release_refresh": "Release to refresh",
    "refreshing": "Refreshing…",
    "refresh_done": "Refresh complete",
    "refresh_failed": "Refresh failed",
    "no_more": "No more data",
    "last_update": "Last updated %T",
    "load_failed": "Load failed",
    "submit_failed": "Submit failed",
    "refresh": "Refresh"
  },
  "app": {
    "initializing": "Initializing…",
    "preparing_engine": "Preparing proxy engine…",
    "connecting_server": "Connecting to server…",
    "verifying_account": "Verifying account…",
    "server_unreachable": "Unable to connect to server. Please check your network and try again."
  },
  "error_page": {
    "title": "Connection Failed",
    "subtitle": "Please check your network and try again",
    "try_following": "Try the following:",
    "tip_wifi": "Check if Wi-Fi or mobile data is enabled",
    "tip_browser": "Try opening a webpage in your browser",
    "tip_vpn": "If using a VPN or proxy, disable it and try again",
    "tip_contact": "If the issue persists, contact support",
    "contact_support": "Contact Support",
    "copy_log": "Copy Log",
    "close_app": "Close App",
    "no_log": "No logs available",
    "log_copied": "Log copied to clipboard"
  },
  "auth": {
    "login": "Log In",
    "register": "Sign Up",
    "logout": "Log Out",
    "email": "Email",
    "password": "Password",
    "confirm_password": "Confirm Password",
    "forgot_password": "Forgot Password",
    "reset_password": "Reset Password",
    "send_code": "Send Code",
    "verify_code": "Verification Code",
    "email_first": "Please enter your email first",
    "code_sent": "Verification code sent",
    "send_code_failed": "Failed to send verification code",
    "fill_all_fields": "Please fill in all fields",
    "password_mismatch": "Passwords do not match",
    "password_reset_ok": "Password reset. Please log in.",
    "reset_failed": "Failed to reset password",
    "login_failed": "Login failed",
    "register_failed": "Registration failed",
    "no_account": "Don't have an account?",
    "has_account": "Already have an account?",
    "go_register": "Sign Up",
    "go_login": "Log In",
    "invite_code": "Invite Code (optional)",
    "email_suffix": "Email suffix",
    "logging_in": "Logging in…",
    "registering": "Signing up…",
    "quick_login": "Web Login",
    "logout_confirm": "Log out?",
    "logout_desc": "You will be logged out and disconnected.",
    "login_title": "Log in to {} Account",
    "login_subtitle": "Welcome back! Enter your email and password to continue.",
    "login_button": "Log In",
    "email_hint": "Enter your email",
    "password_hint": "Enter your password",
    "no_account_question": "Don't have an account?",
    "forgot_password_question": "Forgot password?",
    "enter_email_password": "Please enter email and password",
    "login_check_credentials": "Login failed. Please check your credentials.",
    "register_title": "Create Account",
    "register_subtitle": "Welcome! Create an account to get started.",
    "register_button": "Sign Up",
    "username_hint": "Enter username",
    "code_hint": "Enter verification code",
    "new_password_hint": "Enter new password",
    "confirm_password_hint": "Confirm new password",
    "invite_code_required": "Please enter an invite code",
    "register_success": "Registration successful. Please log in.",
    "register_retry": "Registration failed. Please try again later.",
    "reset_subtitle": "Enter your email to reset your password.",
    "reset_button": "Reset Password",
    "reset_retry": "Reset failed. Please try again later."
  },
  "tab": {
    "home": "Home",
    "purchase": "Plans",
    "settings": "Settings"
  },
  "home": {
    "connection_status": "Connection Status",
    "connecting": "Connecting...",
    "disconnecting": "Disconnecting...",
    "connected": "Connected",
    "not_connected": "Not Connected",
    "no_subscription": "No Subscription",
    "tap_to_connect": "Tap to Connect",
    "system_proxy": "System Proxy",
    "enhanced_mode": "Enhanced Mode",
    "select_node": "Select Node",
    "node_line": "Server Line",
    "starting": "Starting…",
    "preparing": "Preparing…",
    "fetching_nodes": "Fetching nodes…",
    "auto_select": "Auto Select (Recommended)",
    "speed_test": "Test",
    "testing_speed": "Testing…",
    "retest_speed": "Retest",
    "no_nodes": "No available nodes",
    "subscription_expired": "Subscription expired",
    "traffic_used_up": "Traffic used up",
    "nodes_load_failed": "Failed to load nodes",
    "reset_traffic": "Reset Traffic",
    "renew_plan": "Renew Plan",
    "disconnect_confirm_title": "Disconnect",
    "disconnect_confirm_desc": "Are you sure you want to disconnect?",
    "protected": "Protected",
    "no_node_selected": "No node selected",
    "latency_ms": "Latency {}ms",
    "loading": "Loading…",
    "fetching_subscribe": "Fetching subscription…",
    "ready": "Ready",
    "starting_engine": "Starting acceleration engine…",
    "start_failed_retry": "Start failed, tap to refresh",
    "expired_renew": "Subscription expired, please renew",
    "traffic_exhausted": "Traffic used up, please upgrade",
    "nodes_load_failed_retry": "Failed to load nodes, tap to refresh",
    "fetch_subscribe_failed": "Failed to fetch subscription",
    "connect_failed_retry": "Connection failed, try switching nodes",
    "disconnect_failed_retry": "Disconnect failed, try again later",
    "buy_plan_first": "Please purchase a plan first",
    "disconnect_confirm_body": "You will lose accelerated access after disconnecting. Are you sure?",
    "confirm_disconnect": "Confirm Disconnect",
    "buy_now": "Buy Now",
    "already_purchased": "Already purchased, refresh",
    "buy_to_start": "Purchase a plan to get started",
    "unknown_plan": "Unknown Plan",
    "active": "Active",
    "unlimited": "Unlimited",
    "expire_date": "Expires {}",
    "expired_date": "Expired · {}",
    "current_plan": "Current Plan",
    "traffic_usage": "Traffic Usage",
    "load_failed_retry": "Load failed, tap to retry",
    "days_unit": "days",
    "admin_required": "Admin permission required",
    "toggle_failed": "Toggle failed"
  },
  "purchase": {
    "title": "Plans",
    "subtitle": "Choose a plan that suits you",
    "no_plans": "No plans available",
    "pull_retry": "Pull to refresh and retry",
    "recurring": "Subscription",
    "traffic_pack": "Traffic Pack",
    "monthly": "Monthly",
    "quarterly": "Quarterly",
    "half_yearly": "Semi-Annual",
    "yearly": "Yearly",
    "two_years": "2 Years",
    "three_years": "3 Years",
    "one_time": "One-Time",
    "reset_traffic": "Reset Traffic",
    "deposit": "Deposit",
    "free": "Free",
    "from_price": "From {}",
    "plan_info": "Plan Info",
    "order_info": "Order Info",
    "billing_period": "Billing Period",
    "coupon": "Coupon",
    "coupon_hint": "Enter coupon code (optional)",
    "verify": "Verify",
    "coupon_invalid": "Invalid coupon code",
    "coupon_not_applicable": "This coupon does not apply to the selected period",
    "coupon_cleared": "Cleared: coupon does not apply to the current period",
    "cost_detail": "Cost Details",
    "plan_amount": "Plan Amount",
    "discount": "Discount",
    "total": "Total",
    "balance_deduct": "Balance Deduction",
    "plan_balance_deduct": "Plan Balance Deduction",
    "refund_amount": "Refund Amount",
    "order_amount": "Order Amount",
    "payment_method": "Payment Method",
    "no_payment_method": "No payment methods available",
    "fee": "Processing Fee",
    "fee_amount": "Fee {}",
    "actual_amount": "Amount Due",
    "includes_fee": "Includes processing fee {}",
    "confirm_pay": "Confirm Payment",
    "submit_order": "Submit Order",
    "pay_now": "Pay Now  {}",
    "pay_success": "Payment successful",
    "pay_failed": "Payment failed. Please try again later.",
    "order_failed": "Order failed. Please try again later.",
    "fetch_failed": "Failed to load plans",
    "confirm_pay_title": "Confirm Payment"
  },
  "settings": {
    "title": "Settings",
    "language": "Language",
    "proxy_mode": "Proxy Mode",
    "rule_mode": "Smart",
    "global_mode": "Global",
    "theme": "Theme",
    "follow_system": "System",
    "light": "Light",
    "dark": "Dark",
    "account": "Account",
    "my_orders": "My Orders",
    "traffic_log": "Traffic Log",
    "ticket": "Tickets",
    "invite": "Referral",
    "website": "Website",
    "support": "Support",
    "check_update": "Check for Updates",
    "debug_log": "Debug Log",
    "connect_tv": "Connect TV",
    "about": "About",
    "version": "Version",
    "advanced": "Advanced",
    "proxy_port": "Proxy Port",
    "lan_sharing": "Allow LAN Access",
    "change_password": "Change Password",
    "old_password": "Current Password",
    "new_password": "New Password",
    "confirm_new_password": "Confirm New Password",
    "password_changed": "Password changed",
    "password_change_failed": "Failed to change password",
    "subtitle": "Manage your account settings and preferences",
    "account_info": "Account",
    "balance": "Balance",
    "auto_renewal": "Auto Renewal",
    "my_tickets": "My Tickets",
    "appearance": "Appearance",
    "theme_mode": "Theme Mode",
    "proxy_preference": "Proxy Preference",
    "routing_rules": "Routing Rules",
    "more_info": "More",
    "official_website": "Official Website",
    "open_failed": "Failed to open",
    "pull_reload_account": "Pull to refresh account info",
    "debug_log_unlocked": "Debug log enabled",
    "fill_password": "Please enter password",
    "password_mismatch": "New passwords do not match",
    "submitting": "Submitting…",
    "confirm_change": "Confirm Change",
    "change_failed": "Change failed",
    "logout_desc": "This will disconnect and log you out. Continue?",
    "confirm_logout": "Confirm Logout",
    "mixed_port": "Mixed Port",
    "mixed_port_desc": "HTTP / SOCKS5 shared",
    "allow_lan_connection": "Allow LAN Connection",
    "allow_lan_desc": "Allow LAN devices to use this proxy",
    "not_running": "Not running",
    "lan_enabled": "LAN sharing enabled",
    "lan_disabled": "LAN sharing disabled",
    "copied_addr": "Copied {}",
    "no_log": "No logs",
    "log_copied": "All logs copied",
    "log_cleared": "Logs cleared",
    "copy_all": "Copy All",
    "clear_log": "Clear",
    "debug": "Debug",
    "log_entries": "{} entries",
    "webview_load_failed": "WebView failed to load"
  },
  "routing": {
    "title": "Custom Routing Rules",
    "entry_desc": "Domain / IP / process routing",
    "rule_count": "{}",
    "empty": "No custom rules",
    "empty_hint": "Add rules to route domains, IPs, processes or apps via proxy, direct or block",
    "priority_hint": "Custom rules take priority over the default China-direct rules. They are matched top to bottom; the first match wins.",
    "add_title": "Add Rule",
    "edit_title": "Edit Rule",
    "delete": "Delete",
    "match_type": "Match Type",
    "value": "Value",
    "value_hint": "Separate multiple values with commas or line breaks",
    "value_empty": "Please enter a value",
    "action": "Action",
    "type_domain": "Domain",
    "type_domain_suffix": "Domain Suffix",
    "type_domain_keyword": "Domain Keyword",
    "type_ip_cidr": "IP Range",
    "type_process_name": "Process Name",
    "type_package_name": "Package Name",
    "hint_domain": "example.com",
    "hint_domain_suffix": ".example.com",
    "hint_domain_keyword": "google",
    "hint_ip_cidr": "192.168.0.0/16",
    "hint_package_name": "com.android.chrome",
    "action_proxy": "Proxy",
    "action_direct": "Direct",
    "action_block": "Block",
    "apply": "Apply",
    "applied": "Rules applied",
    "apply_failed": "Failed to apply, please retry",
    "changed_pending": "Rules changed, apply to take effect",
    "apply_on_reconnect": "Takes effect after reconnecting",
    "pick_app": "Select Apps",
    "pick_process": "Select Processes",
    "picker_search": "Search",
    "picker_empty": "No matches",
    "picker_selected": "{} selected",
    "picker_done": "Done ({})",
    "comment": "Note",
    "comment_hint": "Optional, helps you identify this rule"
  },
  "chain": {
    "title": "Chain Proxy",
    "entry_desc": "Relay via a node, exit from your proxy",
    "count": "{}",
    "add_title": "Add Chain Proxy",
    "edit_title": "Edit Chain Proxy",
    "delete": "Delete",
    "name": "Name",
    "name_hint": "e.g. My Landing",
    "type": "Type",
    "type_socks": "SOCKS5",
    "type_http": "HTTP",
    "server": "Server",
    "server_hint": "Domain or IP",
    "port": "Port",
    "username": "Username",
    "password": "Password",
    "optional": "Optional",
    "detour": "Front Node",
    "detour_hint": "Traffic is relayed through this node first, then exits from your proxy. Falls back to Auto when the node is gone.",
    "select_detour": "Select Front Node",
    "via": "Connect via {}",
    "hint": "A chain proxy appears as a selectable node on the home page. Traffic is relayed through the front node, then exits from your SOCKS5/HTTP server — the final exit IP is your server.",
    "empty": "No chain proxies",
    "empty_hint": "Once added, select it on the home page to relay via a front node and exit from your proxy",
    "apply": "Apply",
    "applied": "Applied",
    "apply_failed": "Failed to apply, please retry",
    "changed_pending": "Changed, apply to take effect",
    "apply_on_reconnect": "Takes effect after reconnecting",
    "name_empty": "Please enter a name",
    "server_empty": "Please enter the server",
    "port_invalid": "Invalid port (1-65535)",
    "name_dup": "Name already in use"
  },
  "deposit": {
    "title": "Top Up Balance",
    "action": "Top Up",
    "amount_step": "Amount",
    "amount_label": "Top-up Amount",
    "custom_amount": "Custom Amount",
    "amount_hint": "Enter amount",
    "amount_range": "Range: ¥1 - ¥1000",
    "amount_min": "Amount must be at least 1",
    "amount_max": "Amount cannot exceed 1000",
    "bonus_amount": "Bonus",
    "actual_received": "Credited"
  },
  "redeem": {
    "title": "Redeem",
    "subtitle": "Enter a gift card code to receive balance, traffic, or plan rewards",
    "code_hint": "Enter gift card code",
    "submit": "Redeem",
    "submitting": "Redeeming…",
    "success_balance": "Redeemed! ¥{} added to balance",
    "success_duration": "Redeemed! Subscription extended by {} days",
    "success_traffic": "Redeemed! {} GB added to remaining traffic",
    "success_reset": "Redeemed! Traffic has been reset",
    "success_plan": "Redeemed! New plan applied for {} days",
    "success_other": "Redeemed! You received {}",
    "success_aggregate": "Redeemed! You received: {}",
    "reward_balance": "+¥{} balance",
    "reward_device_limit": "+{} device slot(s)",
    "reward_expire_days": "+{} day(s) duration",
    "reward_traffic": "+{} GB traffic",
    "reward_reset": "Traffic reset",
    "reward_sep": ", ",
    "error_empty": "Gift card code cannot be empty",
    "error_not_exist": "Gift card does not exist",
    "error_not_valid": "Gift card is not yet valid",
    "error_expired": "Gift card has expired",
    "error_limit_reached": "Gift card usage limit reached",
    "error_already_used": "Gift card has already been used",
    "error_failed": "Redemption failed"
  },
  "orders": {
    "title": "My Orders",
    "no_orders": "No orders",
    "order_detail": "Order Details",
    "order_no": "Order No.",
    "status_pending": "Pending",
    "status_paid": "Paid",
    "status_cancelled": "Cancelled",
    "status_refunded": "Refunded",
    "cancel_order": "Cancel Order",
    "pay_order": "Pay Order"
  },
  "ticket": {
    "title": "Tickets",
    "create": "New Ticket",
    "no_tickets": "No tickets",
    "subject": "Subject",
    "content": "Content",
    "reply": "Reply",
    "close_ticket": "Close Ticket",
    "status_open": "Open",
    "status_replied": "Replied",
    "status_closed": "Closed",
    "submit": "Submit",
    "send_failed": "Send failed",
    "close_failed": "Close failed"
  },
  "invite": {
    "title": "Referral",
    "commission_balance": "Commission",
    "registered_count": "Registrations",
    "commission_rate": "Commission Rate",
    "invite_code": "Invite Code",
    "copy_link": "Copy Invite Link",
    "link_copied": "Invite link copied",
    "transfer": "Transfer to Balance",
    "withdraw": "Withdraw",
    "commission_detail": "Commission Details",
    "transfer_amount": "Transfer Amount",
    "withdraw_amount": "Withdraw Amount",
    "transfer_success": "Transfer successful",
    "withdraw_success": "Withdrawal request submitted",
    "current_commission": "Current Commission",
    "total_commission": "Total Commission",
    "confirming": "Confirming",
    "invited_users": "Invited Users",
    "generate": "Generate",
    "generate_failed": "Generate failed",
    "transfer_failed": "Transfer failed",
    "no_code_hint": "No invite code yet. Tap top-right to generate.",
    "copy_code": "Copy Invite Code",
    "enter_withdraw_account": "Please enter withdrawal account",
    "confirm_withdraw": "Confirm Withdrawal"
  },
  "update": {
    "new_version": "New Version Available",
    "current_version": "Current v{}, latest v{}",
    "go_update": "Update Now",
    "later": "Later",
    "already_latest": "Already up to date",
    "already_latest_v": "Already up to date v{}",
    "check_failed": "Update check failed",
    "check_retry": "Update check failed. Please try again later.",
    "no_subscribe_info": "Unable to get subscription info"
  },
  "tray": {
    "show_window": "Show Window",
    "system_proxy": "System Proxy",
    "enhanced_mode": "Enhanced Mode",
    "node_submenu": "Server Line",
    "copy_export": "Copy Shell Export",
    "quit": "Quit"
  },
  "network": {
    "operation_failed": "Operation failed. Please try again later.",
    "timeout": "Network timeout. Please check your connection.",
    "unreachable": "Unable to connect to server. Please check your network."
  },
  "singbox": {
    "auth_cancelled": "Authorization cancelled",
    "permission_failed": "Permission failed: {}",
    "save_config_failed": "Failed to save config",
    "start_vpn_failed": "Failed to start VPN service",
    "platform_unsupported": "sing-box is not supported on this platform",
    "binary_missing": "sing-box not found. Please place the binary in assets/singbox.",
    "start_failed": "Failed to start sing-box",
    "start_failed_detail": "Failed to start sing-box: {}",
    "reload_unsupported_mobile": "Hot reload not supported on mobile",
    "reload_no_config": "No config file path for reload",
    "process_missing": "sing-box process not found",
    "reload_unsupported_platform": "SIGHUP reload not supported on this platform",
    "reload_crashed": "sing-box crashed after reload",
    "connect_failed": "Connection failed. Try switching nodes.",
    "disconnect_failed": "Disconnect failed",
    "no_available_plan": "No available plans",
    "no_available_nodes": "No available nodes",
    "parse_failed": "Data parsing failed",
    "please_connect_first": "Please connect first",
    "switch_node_failed": "Failed to switch node",
    "binary_not_found": "No importable file found in assets/singbox: {}",
    "install_permission_failed": "Import succeeded but failed to set executable permission",
    "process_exited_early": "Process exited immediately after start",
    "unknown_error": "Unknown error"
  },
  "traffic": {
    "remaining": "Remaining Traffic",
    "expiry": "Expiry",
    "days_left": "Expires in {} days",
    "expired": "Expired",
    "reset_in_days": "Resets in {} days",
    "no_records": "No traffic records",
    "upload": "Upload",
    "download": "Download"
  },
  "tv": {
    "title_spaced": "Connection Failed",
    "select_node": "Select Node",
    "appearance": "Appearance",
    "pair_success": "Paired",
    "entering": "Entering…",
    "open_on_phone": "Open on your phone",
    "settings_connect_tv": "Settings  →  Connect TV",
    "verify_failed": "Verification failed",
    "connect_failed": "Connection failed",
    "paired": "Paired",
    "waiting_pair": "Waiting for phone to pair",
    "connect_to": "Connect to {}",
    "pair_subtitle": "Open the app on your TV and go to the pairing screen, with both devices on the same Wi-Fi",
    "available_devices": "Available devices",
    "no_device": "No TV found",
    "no_device_hint": "Make sure your TV is on the pairing screen and on the same Wi-Fi as your phone",
    "manual_entry": "Can't find your TV? Enter IP manually",
    "manual_ip_title": "Enter TV IP manually",
    "manual_ip_hint": "Type the local IP address shown on your TV screen",
    "enter_code": "Enter the 4-digit code shown on your TV",
    "pair_button": "Connect",
    "code_required": "Enter the 4-digit pairing code",
    "pair_failed": "Pairing failed. Check your network and try again",
    "login_required": "Please sign in first"
  }
}
