{
  "title": "Settings",
  "save_change": "Save Changes",
  "reset": "Reset",
  "save_tip": "You have unsaved changes!",
  "nav": {
    "general": "General",
    "overview": "Overview",
    "announcement": "Announcement",
    "members": "Members",
    "data_management": "Data Management",
    "auto_delete_msg": "Auto-delete Messages",
    "user": "User",
    "my_account": "My Account",
    "config": "Configuration",
    "bot": "Bot & Webhook",
    "notification_channels": "Notification Channels",
    "firebase": "Firebase",
    "agora": "Agora",
    "vocespace": "Video",
    "smtp": "SMTP",
    "login_method": "Login Methods",
    "third_app": "Third-party Login",
    "widget": "Widget",
    "license": "License",
    "about": "About",
    "api_doc": "API Documentation",
    "version": "Version",
    "video": "Video",
    "notification": "Notifications",
    "cloudflared": "Cloudflare Tunnel"
  },
  "channel": {
    "leave": "Leave Channel",
    "leave_desc": "Are you sure want to leave this channel?",
    "transfer_desc": "You need to transfer your channel ownership to someone else before leaving the channel.",
    "delete": "Delete Channel",
    "delete_desc": "Are you sure want to delete this channel?",
    "id": "Channel ID",
    "name": "Channel Name",
    "topic": "Channel Topic",
    "topic_placeholder": "Let everyone know how to use this channel.(markdown supported)",
    "visibility": "Channel Visibility",
    "public": "Public",
    "private": "Private",
    "enable": "Enable",
    "disable": "Disable",
    "allow": "Allow",
    "disallow": "Disallow",
    "add_friend": "Add friend",
    "dm_to_member": "DM to Member",
    "show_email": "Show Email",
    "only_owner": "Only Owner and Admin Can Send Message",
    "announcement_placeholder": "Write your announcement here... Markdown is supported.",
    "no_announcements": "No content to preview",
    "no_permission": "You don't have permission to manage announcements"
  },
  "dm": {
    "delete": "Delete User",
    "delete_desc": "Are you sure want to delete this user?"
  },
  "overview": {
    "title_feat": "Features",
    "name": "Server Name",
    "desc": "Server Description",
    "upload_desc": "Minimum size is 128x128, We recommend at least 512x512 for the server. Max size limited to 5M.",
    "sign_up": {
      "title": "Default Sign Up",
      "desc": "Who can sign up to this server.",
      "everyone": "Everyone",
      "invite": "Invitation Link Only"
    },
    "user_msg_notify": {
      "title": "New Message Notification Through Email",
      "desc": "you can control new message if send through email."
    },
    "server_msg_notify": {
      "title": "New Message Notification Through Email (Server)",
      "desc": "users can control new message if send through email, SMTP enabled first.",
      "delay_5_min": "Every 5 mins",
      "delay_15_min": "Every 15 mins",
      "delay_1_hour": "Every 1 hour",
      "delay_3_hour": "Every 3 hours",
      "delay_12_hour": "Every 12 hours"
    },
    "admin_create_group": {
      "title": "Only Admins Can Create Group",
      "desc": "If enabled, only admins can create group.",
      "enable": "Enable",
      "disable": "Disable"
    },
    "admin_see_group_members": {
      "title": "Only Admins Can See Group Members",
      "desc": "If enabled, only admins can see group members.",
      "enable": "Enable",
      "disable": "Disable"
    },
    "admin_only_can_invite": {
      "title": "Only Admins Can Invite Users",
      "desc": "If enabled, only admins can invite new members.",
      "enable": "Enable",
      "disable": "Disable"
    },
    "dm_enable": {
      "title": "Direct Messaging",
      "desc": "If disabled, members cannot send direct messages to each other."
    },
    "add_friend_enable": {
      "title": "Add Friend",
      "desc": "If disabled, members cannot add other users as friends."
    },
    "search_user_enable": {
      "title": "Search Users",
      "desc": "If disabled, members cannot search for other users."
    },
    "enable_msg_url_preview": {
      "title": "Enable URL Preview in Message",
      "desc": "If enabled, url in message will show preview content.",
      "enable": "Enable",
      "disable": "Disable"
    },
    "guest_mode": {
      "title": "Guest Mode",
      "desc": "If enabled, visitors will see public channels on this server.",
      "enable": "Enable",
      "disable": "Disable"
    },
    "url": {
      "title": "Update Frontend URL",
      "desc": "Update the frontend url"
    },
    "lang": {
      "title": "Languages",
      "desc": "Set the system language"
    },
    "theme": {
      "title": "Theme",
      "desc": "Choose your theme",
      "auto": "Auto",
      "dark": "Dark",
      "light": "Light"
    },
    "message_sound": {
      "title": "Message Sound",
      "desc": "Play sound while receiving new message.",
      "enable": "Enable",
      "disable": "Disable"
    },
    "online_status": {
      "title": "Online Status",
      "desc": "If enabled, members will see the online/offline status of each other.",
      "enable": "Enable",
      "disable": "Disable"
    },
    "chat_layout": {
      "title": "Chat Layout",
      "desc": "Which side to show messages sent by yourself",
      "left": "Left",
      "self_right": "Right"
    },
    "contact_verify": {
      "title": "Contact Verification",
      "desc": "By default all server members can see each other. If you want server members to add and manage their own contacts, please enable the contact feature (admin will be in the contacts list by default).",
      "enable": "Enable",
      "disable": "Disable"
    },
    "webclient_auto_update": {
      "title": "Web Client Auto Update",
      "desc": "If enabled, the web client will automatically update to the latest version. ⚠️ This feature is designed for advanced users only. Disabling it may prevent you from receiving the latest bug fixes and feature updates.",
      "enable": "Enable",
      "disable": "Disable"
    }
  },
  "data": {
    "clear_files": {
      "title": "Files and Images Data",
      "desc": "Click the button below to remove all files and images data of this server.",
      "btn": "Clear Files Data"
    },
    "clear_msgs": {
      "title": "All Messages Data",
      "desc": "Click the button below to remove all the chat data including texts and files of this server.",
      "btn": "Clear Chats Data"
    },
    "auto_delete_file": {
      "title": "Auto-delete File Data",
      "desc": "Set expire time for all file data of this server.",
      "confirm_desc": "All files older than the set time will be deleted.",
      "off": "Off",
      "day1": "1 Day",
      "day7": "7 Days",
      "day30": "30 Days",
      "day90": "90 Days",
      "day180": "180 Days"
    }
  },
  "license": {
    "signed": "Signed",
    "domain": "Domains",
    "user_limit": "User Limit",
    "expire": "Expired At",
    "create": "Created At",
    "value": "License Value",
    "renew": "Renew License",
    "update": "Update Manually",
    "update_placeholder": "Please input the new license value",
    "renew_select": "Please select the price",
    "tip": {
      "title": "A chance to get a free license upgrade!",
      "user_test": "Get a free license upgrade through a 25 min user testing",
      "contact": "Book a time here: "
    },
    "payment_success": "Payment Success!",
    "back_home": "Back Home",
    "tip_renewing": "Renewing the License, do not close the window!",
    "tip_renewed": "Renew the License Successfully!",
    "tip_renew_error": "Invalided Stripe Session ID",
    "tip_domain": "The license is bound to domain (without port), please confirm or update your setting:",
    "tip_port": "Fill out your domain name without port.",
    "tip_confirm": "Start Payment"
  },
  "bot": {
    "add_api_key": "Add API Key",
    "no_api_key": "No API Key Yet",
    "bot_tip_title": "Bots can send messages to channels.",
    "bot_tip_desc": "Please note that we do not display a Bot’s API key again after generation. You can always generate a new API key of a Bot by clicking “Add API Key” and this won’t nullify the previous API key(s).",
    "webhook_tip_title": "Webhooks can receive messages in a channel and should a URL provided by you.",
    "webhook_tip_desc": "Please provide a webhook URL that will return 200.",
    "manage": "Manage",
    "how_to_use": "How To Use",
    "manage_desc": "You can delete a bot anytime, the bot user will be removed immediately and all APIs will be nullified.",
    "create_title": "Create Bot",
    "create_desc": "Give your bot a name. You can also add an endpoint webhook URL to receive data.",
    "create_key_title": "Create Bot API Key",
    "create_key_desc": "Create API Key to authenticate your communication",
    "create_key_warning": "Make sure to copy the API Key now. You won’t be able to see it again!",
    "key_copy_and_close": "Copy and Close",
    "delete_title": "Delete Bot",
    "delete_desc": "Are you sure to delete the Bot?",
    "delete_key_title": "Delete Bot API Key",
    "delete_key_desc": "Are you sure to delete this Bot API Key?",
    "webhook_title": "Update Webhook URL",
    "webhook_desc": "Please input a valid URL",
    "col_avatar": "Avatar",
    "col_name": "Bot Name",
    "col_api_key": "API Key (Inbound Messages)",
    "col_webhook": "Endpoint Webhook URL (Outbound)",
    "col_opt": "Operations",
    "col_key_name": "Name",
    "col_key_value": "Key",
    "col_key_create_time": "Created At",
    "col_key_last_used": "Last Used"
  },
  "auto_delete_msg": {
    "title": "Delete messages sent by myself after certain time period. ",
    "desc": "This will remove the messages data stored on both the server and client side.",
    "off": "Off",
    "5_min": "5 minutes",
    "10_min": "10 minutes",
    "1_hour": "1 hour",
    "1_day": "1 day",
    "1_week": "1 week",
    "clear": "Clear all channel messages",
    "clear_title": "Clear all messages in this channel.",
    "clear_desc": "This will remove all the messages data stored on both the server and client side."
  },
  "firebase": {
    "desc": "Message notification requires Google Firebase as the default method.",
    "sub_desc": "We have provided an official configuration. Make sure google FCM is accessible from your server and device.",
    "disable": "Disable",
    "use_official": "Use Official Configuration",
    "custom": "Custom",
    "enable": "Enable",
    "token_url": "Token URL",
    "project_id": "Project ID",
    "private_key": "Private Key",
    "client_email": "Client Email"
  },
  "smtp": {
    "desc": "For new message Email notification (advanced feature, upgrade to <0>VoceChat Pro</0>) and new sign-up email verification, we use SMTP. ",
    "sub_desc": "Please set up your SMTP below.",
    "enable": "Enable",
    "host": "Host",
    "port": "Port",
    "from": "From",
    "username": "Username",
    "password": "Password",
    "how_to": "How to setup SMTP?",
    "send_test_email": "Send Test Email"
  },
  "agora": {
    "desc": "For video and audio calls, we use Agora API. ",
    "sub_desc": "Each Agora project will enjoy 10,000 mins free API usages per month. Please create a project by yourself. Follow the instruction below to configure your Agora correctly.",
    "enable": "Enable",
    "how_to": "How to setup Agora?"
  },
  "vocespace": {
    "add": "Add",
    "check": "Check",
    "checked": "Pass",
    "failed": "Failed",
    "title": "VoceSpace",
    "desc": "Use self-hosted VoceSpace (Automated Deployment)",
    "prerequisite": [
      "Prerequisites",
      "Docker environment",
      "Ports 80,  443, 7880, 7881, 3008, 3000 are open",
      "The domain has been registered",
      "For enterprises customization or need help, please contact han@privoce.com or add WeChat: Privoce"
    ],
    "sub_desc": "Each VoceSpace account will enjoy no limit minutes, 5 person concurrent and 4k resolution for free. No account creation required. Follow the instruction below to configure your VoceSpace correctly.",
    "domain_desc": "This domain needs to have a DNS A record pointing to the current server IP you are hosting VoceChat.",
    "enable": "Enable",
    "how_to": "After enabling, please set a custom domain then click save, and the system will automatically enable VoceSpace.",
    "old": "Your current server version is outdated. We have enabled the official VoceSpace (vocespace.com) as your default audio/video service. To use your own private deployment, please update vocechat-server to v0.5.8 or higher."
  },
  "third_app": {
    "key": "API Secure Key",
    "update": "Update Secret",
    "update_tip": "Are you sure to update API secret? Previous secret will be invalided",
    "key_tip": "The security key agreed between the server and the third-party app is used to encrypt the communication data.",
    "how_to": "How to use?"
  },
  "login": {
    "password": "Password",
    "password_desc": "Allows members login with password.",
    "magic_link": "Magic Link",
    "magic_link_desc": "Allows members login with Magic Link.",
    "google": "Google",
    "google_desc": "Allows members login with Google.",
    "github": "GitHub",
    "github_desc": "Allows members login with GitHub.",
    "metamask": "Metamask",
    "metamask_desc": "Allows members login with Metamask.",
    "passkey": "Passkey",
    "passkey_desc": "Allows members login with Passkey.",
    "oidc": "OIDC",
    "oidc_desc": "Allows members login with OIDC.",
    "oidc_custom": "Custom",
    "more_details": "Need more detail? See our <0>doc</0>."
  },
  "passkey": {
    "title": "Passkeys",
    "desc": "Manage your passkeys for passwordless login",
    "add": "Add Passkey",
    "adding": "Registering...",
    "delete": "Delete",
    "delete_confirm": "Are you sure you want to delete this passkey?",
    "no_passkeys": "No passkeys registered yet",
    "created": "Created",
    "last_used": "Last used",
    "success_add": "Passkey registered successfully",
    "success_delete": "Passkey deleted successfully",
    "error_add": "Failed to register passkey",
    "error_delete": "Failed to delete passkey",
    "error_not_supported": "Your browser doesn't support Passkey",
    "error_cancelled": "User cancelled or timeout",
    "error_exists": "Passkey already exists",
    "enter_name": "Enter a name for this passkey"
  },
  "widget": {
    "tip": "Extending VoceChat by embedding the vocechat widget SDK!",
    "code": "Code Example",
    "code_comment": "put this code snippet into your html file",
    "config": "Configuration Description",
    "param_key": "Parameter Key",
    "default_value": "Default Value",
    "remark": "Remarks",
    "custom_style_tip": "if you want customize the widget position more precisely, use the widget element ID in your HTML or CSS file, like this",
    "open_widget_tip": "You can use JavaScript to control the widget programmatically",
    "open_widget_example": "Open widget with a button",
    "open_widget_example_custom": "Custom styled button",
    "open_widget_example_toggle": "Toggle widget open/close",
    "css_code_tip": "You can also customize CSS code, which will be loaded into the widget as a CSS file",
    "param_id": "Widget ID (server version>=v0.3.12)",
    "param_host": "Assign the user chatting with visitor(User ID)",
    "param_title": "chat popup title",
    "param_logo": "chat popup logo icon URL",
    "param_auto_reg": "true: Auto register a new user if not exist, false: need visitor to input email and name to register",
    "param_login_token": "If you are using your own platform's existing user info to generate VoceChat new account, this is the login token generated by your platform, for more details, please refer to: https://doc.voce.chat/zh-cn/login-with-other-account. Don't fill this out for default scenarios (no 3-rd party user system)!",
    "param_theme_color": "The theme color of widget",
    "param_close_width": "The width while widget closed",
    "param_close_height": "The height while widget closed",
    "param_open_width": "The width while widget opened",
    "param_open_height": "The height while widget opened",
    "param_welcome": "Custom welcome message",
    "param_position": "Widget position: left/right",
    "param_popup_title": "Popup tooltip title displayed next to the closed widget icon",
    "param_popup_subtitle": "Popup tooltip subtitle displayed next to the closed widget icon",
    "param_popup_image": "Popup tooltip image URL displayed next to the closed widget icon (optional)",
    "param_popup_closable": "Whether the popup tooltip can be closed (true/false)",
    "share_link": "Share the widget link so that people can chat with you directly",
    "widget_faq": "Enable Let Everyone Join First"
  },
  "version": {
    "client_version": "Client Version",
    "server_version": "Server Version",
    "build_time": "Build Timestamp",
    "sync": "Sync to the latest version of web client"
  },
  "api_doc": {
    "desc": "We have detailed API documentation that you can build your own chat tool based on.",
    "access": "Access URL:",
    "use_method": "User Method:",
    "step_1": "Step One: Change to your own Server",
    "step_2": "Step Two: Input the login token",
    "step_2_desc": "You can get the token by access X-API-Key http header or just copy the text below:",
    "last": "Every API has a 'Try it Out' button, and you can debug the API with it"
  },
  "notification": {
    "desc": "Configure your notification channels",
    "loading": "Loading...",
    "no_channels": "No notification channel types available. Please contact your administrator.",
    "status": "Status",
    "enabled": "Enabled",
    "disabled": "Disabled",
    "my_channels": "My Notification Channels",
    "available_types": "Available Channel Types",
    "create_channel": "Create Channel",
    "edit_channel": "Edit Channel",
    "channel_name": "Channel Name",
    "channel_config": "Channel Configuration",
    "enable_notifications": "Enable notifications",
    "trigger_conditions": "Trigger conditions",
    "trigger_on_all_messages": "Receive all messages",
    "trigger_on_mentions": "Notify when mentioned",
    "skip_when_online": "Skip notifications when online",
    "select_groups": "Select groups",
    "save": "Save",
    "saving": "Saving...",
    "cancel": "Cancel",
    "edit": "Edit",
    "test": "Test",
    "delete": "Delete",
    "save_success": "Channel saved successfully",
    "save_error": "Failed to save channel",
    "create_success": "Channel created successfully",
    "create_error": "Failed to create channel",
    "delete_success": "Channel deleted successfully",
    "delete_error": "Failed to delete channel",
    "test_success": "Test notification sent successfully",
    "test_error": "Failed to send test notification"
  },
  "admin_notification_channels": {
    "desc": "Enable notification channel types for users",
    "enabled_types": "Enabled Channel Types",
    "available_types": "Available Channel Types",
    "enable_type": "Enable",
    "channel_type": "Channel Type",
    "channel_status": "Status",
    "enabled": "Enabled",
    "disabled": "Disabled",
    "actions": "Actions",
    "delete_channel": "Delete",
    "delete_title": "Delete Channel Type",
    "delete_desc": "Are you sure you want to remove this channel type? Users will no longer be able to create new channels of this type.",
    "cancel": "Cancel",
    "delete": "Delete",
    "create_success": "Channel type enabled successfully",
    "create_error": "Failed to enable channel type",
    "update_success": "Channel type updated successfully",
    "update_error": "Failed to update channel type",
    "delete_success": "Channel type deleted successfully",
    "delete_error": "Failed to delete channel type"
  },
  "cloudflared": {
    "title": "Cloudflare Tunnel",
    "desc": "Expose this server to the public internet via a temporary trycloudflare.com tunnel — no Cloudflare account required.",
    "start": "Start Tunnel",
    "stop": "Stop Tunnel",
    "stopping": "Stopping...",
    "copy": "Copy",
    "url_copied": "URL copied to clipboard",
    "downloading_binary": "Downloading cloudflared binary...",
    "status": {
      "idle": "Idle",
      "downloading": "Downloading",
      "starting": "Starting",
      "running": "Running",
      "error": "Error"
    }
  }
}