{ "header": { "home": "Home", "channel": "Channel", "token": "Token", "redemption": "Redemption", "topup": "Top Up", "user": "User", "dashboard": "Dashboard", "log": "Log", "setting": "Settings", "about": "About", "chat": "Chat", "login": "Login", "logout": "Logout", "register": "Register" }, "topup": { "title": "Top Up Center", "get_code": { "title": "Get Redemption Code", "current_quota": "Current Available Quota", "button": "Get Code Now" }, "redeem_code": { "title": "Redeem Code", "placeholder": "Please enter redemption code", "paste": "Paste", "paste_error": "Cannot access clipboard, please paste manually", "submit": "Redeem Now", "submitting": "Redeeming...", "empty_code": "Please enter the redemption code!", "success": "Top up successful!", "request_failed": "Request failed", "no_link": "Admin has not set up the top-up link!" } }, "channel": { "title": "Channel Management", "search": "Search channels by ID, name and key...", "balance_notice": "OpenAI channels no longer support getting balance via key, so balance shows as 0. For supported channel types, click balance to refresh.", "test_notice": "Channel testing only supports chat models, preferring gpt-3.5-turbo. If unavailable, uses the first model in your configured list.", "detail_notice": "Click the detail button below to show balance and set additional test models.", "table": { "id": "ID", "name": "Name", "group": "Group", "type": "Type", "status": "Status", "response_time": "Response Time", "balance": "Balance", "priority": "Priority", "test_model": "Test Model", "actions": "Actions", "no_name": "None", "status_enabled": "Enabled", "status_disabled": "Disabled", "status_auto_disabled": "Disabled", "status_disabled_tip": "This channel is manually disabled", "status_auto_disabled_tip": "This channel is automatically disabled", "status_unknown": "Unknown Status", "not_tested": "Not Tested", "priority_tip": "Channel selection priority, higher is preferred", "select_test_model": "Please select test model", "click_to_update": "Click to update" }, "buttons": { "test": "Test", "delete": "Delete", "confirm_delete": "Delete Channel", "enable": "Enable", "disable": "Disable", "edit": "Edit", "add": "Add New Channel", "test_all": "Test All Channels", "test_disabled": "Test Disabled Channels", "delete_disabled": "Delete Disabled Channels", "confirm_delete_disabled": "Confirm Delete", "refresh": "Refresh", "show_detail": "Details", "hide_detail": "Hide Details" }, "messages": { "test_success": "Channel {{name}} test successful, model {{model}}, time {{time}}s, output: {{message}}", "test_all_started": "Channel testing started successfully, please refresh page to see results.", "delete_disabled_success": "Deleted all disabled channels, total: {{count}}", "balance_update_success": "Channel {{name}} balance updated successfully!", "all_balance_updated": "All enabled channel balances have been updated!" }, "edit": { "title_edit": "Update Channel Information", "title_create": "Create New Channel", "type": "Type", "name": "Name", "name_placeholder": "Please enter name", "group": "Group", "group_placeholder": "Please select groups that can use this channel", "group_addition": "Please edit group multipliers in system settings to add new group:", "models": "Models", "models_placeholder": "Please select models supported by this channel", "model_mapping": "Model Mapping", "model_mapping_placeholder": "Optional, used to modify model names in request body. A JSON string where keys are request model names and values are target model names", "system_prompt": "System Prompt", "system_prompt_placeholder": "Optional, used to force set system prompt. Use with custom model & model mapping. First create a unique custom model name above, then map it to a natively supported model", "base_url": "Proxy", "base_url_placeholder": "Optional, used for API calls through proxy. Enter proxy address in format: https://domain.com", "key": "Key", "key_placeholder": "Please enter key", "batch": "Batch Create", "batch_placeholder": "Please enter keys, one per line", "buttons": { "cancel": "Cancel", "submit": "Submit", "fill_models": "Fill Related Models", "fill_all": "Fill All Models", "clear": "Clear All Models", "add_custom": "Add", "custom_placeholder": "Enter custom model name" }, "messages": { "name_required": "Please enter channel name and key!", "models_required": "Please select at least one model!", "model_mapping_invalid": "Model mapping must be valid JSON format!", "update_success": "Channel updated successfully!", "create_success": "Channel created successfully!" }, "spark_version": "Model Version", "spark_version_placeholder": "Please enter Spark model version from API URL, e.g.: v2.1", "knowledge_id": "Knowledge Base ID", "knowledge_id_placeholder": "Please enter knowledge base ID, e.g.: 123456", "plugin_param": "Plugin Parameter", "plugin_param_placeholder": "Please enter plugin parameter (X-DashScope-Plugin header value)", "coze_notice": "For Coze, model name is the Bot ID. You can add prefix `bot-`, e.g.: `bot-123456`.", "douban_notice": "For Douban, you need to go to", "douban_notice_link": "Model Inference Page", "douban_notice_2": "to create an inference endpoint, and use the endpoint name as model name, e.g.: `ep-20240608051426-tkxvl`.", "aws_region_placeholder": "region, e.g.: us-west-2", "aws_ak_placeholder": "AWS IAM Access Key", "aws_sk_placeholder": "AWS IAM Secret Key", "vertex_region_placeholder": "Vertex AI Region, e.g.: us-east5", "vertex_project_id": "Vertex AI Project ID", "vertex_project_id_placeholder": "Vertex AI Project ID", "vertex_credentials": "Google Cloud Application Default Credentials JSON", "vertex_credentials_placeholder": "Google Cloud Application Default Credentials JSON", "user_id": "User ID", "user_id_placeholder": "User ID who generated this key", "key_prompts": { "default": "Please enter the authentication key for this channel", "zhipu": "Enter in format: APIKey|SecretKey", "spark": "Enter in format: APPID|APISecret|APIKey", "fastgpt": "Enter in format: APIKey-AppId, e.g.: fastgpt-0sp2gtvfdgyi4k30jwlgwf1i-64f335d84283f05518e9e041", "tencent": "Enter in format: AppId|SecretId|SecretKey" } } }, "token": { "title": "Token Management", "search": "Search tokens by name ...", "table": { "name": "Name", "status": "Status", "used_quota": "Used Quota", "remain_quota": "Remaining Quota", "created_time": "Created Time", "expired_time": "Expiry Time", "actions": "Actions", "no_name": "None", "never_expire": "Never Expires", "unlimited": "Unlimited", "status_enabled": "Enabled", "status_disabled": "Disabled", "status_expired": "Expired", "status_depleted": "Depleted", "status_unknown": "Unknown Status" }, "buttons": { "copy": "Copy", "chat": "Chat", "delete": "Delete", "confirm_delete": "Delete Token", "enable": "Enable", "disable": "Disable", "edit": "Edit", "add": "Add New Token", "refresh": "Refresh" }, "edit": { "title_edit": "Update Token Information", "title_create": "Create New Token", "name": "Name", "name_placeholder": "Please enter name", "models": "Model Scope", "models_placeholder": "Please select allowed models, leave empty for no restrictions", "ip_limit": "IP Restriction", "ip_limit_placeholder": "Please enter allowed subnets, e.g.: 192.168.0.0/24, use commas to separate multiple subnets", "expire_time": "Expiry Time", "expire_time_placeholder": "Please enter expiry time in yyyy-MM-dd HH:mm:ss format, -1 for no limit", "quota_notice": "Note: Token quota only limits the maximum usage of the token itself, actual usage is subject to account remaining quota.", "quota": "Quota", "quota_placeholder": "Please enter quota", "buttons": { "never_expire": "Never Expire", "expire_1_month": "Expire in 1 Month", "expire_1_day": "Expire in 1 Day", "expire_1_hour": "Expire in 1 Hour", "expire_1_minute": "Expire in 1 Minute", "unlimited_quota": "Set Unlimited Quota", "cancel_unlimited": "Cancel Unlimited Quota", "submit": "Submit", "cancel": "Cancel" }, "messages": { "update_success": "Token updated successfully!", "create_success": "Token created successfully, please copy it from the list page!", "expire_time_invalid": "Invalid expiry time format!" } }, "copy_options": { "raw": "Copy Raw Token", "ama": "Copy AMA Link", "opencat": "Copy OpenCat Link", "next": "Copy NextChat Link", "lobe": "Copy LobeChat Link" }, "messages": { "copy_success": "Copied to clipboard!", "copy_failed": "Unable to copy to clipboard, please copy manually. Token has been filled in the search box.", "operation_success": "Operation completed successfully!" }, "sort": { "placeholder": "Sort By", "default": "Default Order", "by_remain": "Sort by Remaining Quota", "by_used": "Sort by Used Quota" } }, "common": { "quota": { "display": "Equivalent: ${{amount}}", "display_short": "${{amount}}", "unit": "$" } }, "redemption": { "title": "Redemption Management", "search": "Search redemption codes by ID and name ...", "table": { "id": "ID", "name": "Name", "status": "Status", "quota": "Quota", "created_time": "Created Time", "redeemed_time": "Redeemed Time", "actions": "Actions", "no_name": "None", "not_redeemed": "Not Redeemed" }, "buttons": { "copy": "Copy", "delete": "Delete", "confirm_delete": "Confirm Delete", "enable": "Enable", "disable": "Disable", "edit": "Edit", "add": "Add New Code", "refresh": "Refresh" }, "status": { "unused": "Unused", "disabled": "Disabled", "used": "Used", "unknown": "Unknown" }, "edit": { "title_edit": "Update Redemption Code", "title_create": "Create New Redemption Code", "name": "Name", "name_placeholder": "Please enter name", "quota": "Quota", "quota_placeholder": "Please enter quota per redemption code", "count": "Generate Count", "count_placeholder": "Please enter number of codes to generate", "buttons": { "submit": "Submit", "cancel": "Cancel" } }, "messages": { "update_success": "Redemption code updated successfully!", "create_success": "Redemption code created successfully!" } }, "log": { "title": "Operation Log", "usage_details": "Usage Details", "total_quota": "Total Quota Used", "click_to_view": "Click to View", "table": { "id": "ID", "username": "Username", "type": "Type", "content": "Content", "amount": "Amount", "time": "Time" } }, "user": { "title": "User Management", "edit": { "title": "Update User Information", "username": "Username", "username_placeholder": "Please enter new username", "password": "Password", "password_placeholder": "Please enter new password, minimum 8 characters", "display_name": "Display Name", "display_name_placeholder": "Please enter new display name", "group": "Group", "group_placeholder": "Please select group", "group_addition": "Please edit group multipliers in system settings to add new group:", "quota": "Remaining Quota", "quota_placeholder": "Please enter new remaining quota", "github_id": "Linked GitHub Account", "github_id_placeholder": "Read-only, user must link through personal settings page, cannot be modified directly", "wechat_id": "Linked WeChat Account", "wechat_id_placeholder": "Read-only, user must link through personal settings page, cannot be modified directly", "email": "Linked Email Account", "email_placeholder": "Read-only, user must link through personal settings page, cannot be modified directly", "buttons": { "submit": "Submit", "cancel": "Cancel" } }, "messages": { "update_success": "User information updated successfully!" }, "add": { "title": "Create New User Account" }, "messages": { "create_success": "User account created successfully!" }, "search": "Search users...", "table": { "id": "ID", "username": "Username", "group": "Group", "quota": "Quota", "role_text": "Role", "status_text": "Status", "actions": "Actions", "remaining_quota": "Remaining Quota", "used_quota": "Used Quota", "request_count": "Request Count", "role_types": { "normal": "Normal User", "admin": "Admin", "super_admin": "Super Admin", "unknown": "Unknown Role" }, "status_types": { "activated": "Activated", "banned": "Banned", "unknown": "Unknown Status" }, "sort": { "default": "Default Order", "by_quota": "Sort by Remaining Quota", "by_used_quota": "Sort by Used Quota", "by_request_count": "Sort by Request Count" }, "sort_by": "Sort By" }, "buttons": { "add": "Add New User", "delete": "Delete", "delete_user": "Delete User", "enable": "Enable", "disable": "Disable", "edit": "Edit", "promote": "Promote", "demote": "Demote" }, "messages": { "operation_success": "Operation completed successfully!" } } }