{ "common": { "login": "Login", "logout": "Logout", "cancel": "Cancel", "confirm": "Confirm", "save": "Save", "delete": "Delete", "edit": "Edit", "add": "Add", "update": "Update", "refresh": "Refresh", "close": "Close", "success": "Success", "error": "Error", "info": "Info", "warning": "Warning", "loading": "Loading...", "connecting": "Connecting...", "connected": "Connected", "disconnected": "Disconnected", "connecting_status": "Connecting", "connected_status": "Connected", "disconnected_status": "Disconnected", "yes": "Yes", "no": "No", "not_set": "Not set", "optional": "Optional", "required": "Required", "api_key": "Key", "base_url": "Address", "prefix": "Prefix", "proxy_url": "Proxy", "alias": "Alias", "failure": "Failure", "unknown_error": "Unknown error", "quota_update_required": "Please update the CPA version or check for updates", "quota_check_credential": "Please check the credential status", "copy": "Copy", "custom_headers_label": "Custom Headers", "custom_headers_hint": "Optional HTTP headers to send with the request. Leave blank to remove.", "custom_headers_add": "Add Header", "custom_headers_key_placeholder": "Header name, e.g. X-Custom-Header", "custom_headers_value_placeholder": "Header value", "model_name_placeholder": "Model name, e.g. claude-3-5-sonnet-20241022", "model_alias_placeholder": "Model alias (optional)" }, "title": { "main": "CLI Proxy API Management Center", "login": "CLI Proxy API Management Center", "abbr": "CPAMC" }, "auto_login": { "title": "Auto Login in Progress...", "message": "Attempting to connect to server using locally saved connection information" }, "login": { "subtitle": "Please enter connection information to access the management interface", "connection_title": "Connection Address", "connection_current": "Current URL", "connection_auto_hint": "The system will automatically use the current URL for connection", "custom_connection_label": "Custom Connection URL:", "custom_connection_placeholder": "Eg: https://example.com:8317", "custom_connection_hint": "By default the current URL is used. Override it here if needed.", "use_current_address": "Use Current URL", "remember_password_label": "Remember password", "management_key_label": "Management Key:", "management_key_placeholder": "Enter the management key", "connect_button": "Connect", "submit_button": "Login", "submitting": "Connecting...", "error_title": "Login Failed", "error_required": "Please fill in complete connection information", "error_invalid": "Connection failed, please check address and key" }, "header": { "check_connection": "Check Connection", "refresh_all": "Refresh All", "logout": "Logout" }, "connection": { "title": "Connection Information", "server_address": "Server Address:", "management_key": "Management Key:", "status": "Connection Status:" }, "nav": { "dashboard": "Dashboard", "basic_settings": "Basic Settings", "api_keys": "API Keys", "ai_providers": "AI Providers", "auth_files": "Auth Files", "oauth": "OAuth Login", "quota_management": "Quota Management", "usage_stats": "Usage Statistics", "config_management": "Config Management", "logs": "Logs Viewer", "system_info": "Management Center Info" }, "dashboard": { "title": "Dashboard", "subtitle": "Welcome to CLI Proxy API Management Center", "openai_providers": "OpenAI Providers", "quick_actions": "Quick Actions", "current_config": "Current Configuration", "management_keys": "Management Keys", "provider_keys_detail": "G:{{gemini}} C:{{codex}} Cl:{{claude}} O:{{openai}}", "oauth_credentials": "OAuth Credentials", "usage_overview": "Usage Overview", "total_requests": "Total Requests", "total_tokens": "Total Tokens", "rpm_30min": "RPM (30min)", "tpm_30min": "TPM (30min)", "models_used": "Models Used", "no_usage_data": "No usage data available", "view_detailed_usage": "View Detailed Stats", "edit_settings": "Edit Settings", "available_models": "Available Models", "available_models_desc": "Total models from all providers" }, "basic_settings": { "title": "Basic Settings", "debug_title": "Debug Mode", "debug_enable": "Enable Debug Mode", "proxy_title": "Proxy Settings", "proxy_url_label": "Proxy URL:", "proxy_url_placeholder": "e.g.: socks5://user:pass@127.0.0.1:1080/", "proxy_update": "Update", "proxy_clear": "Clear", "retry_title": "Request Retry", "retry_count_label": "Retry Count:", "retry_update": "Update", "quota_title": "Quota Exceeded Behavior", "quota_switch_project": "Auto Switch Project", "quota_switch_preview": "Switch to Preview Model", "usage_statistics_title": "Usage Statistics", "usage_statistics_enable": "Enable usage statistics", "logging_title": "Logging", "logging_to_file_enable": "Enable logging to file", "logs_max_total_size_title": "Log Size Limit", "logs_max_total_size_label": "Total log size cap (MB):", "logs_max_total_size_hint": "Set to 0 to disable the limit.", "logs_max_total_size_update": "Update", "request_log_title": "Request Logging", "request_log_enable": "Enable request logging", "request_log_warning": "Keep this off unless you need detailed troubleshooting.", "force_model_prefix_enable": "Force model prefix", "ws_auth_title": "WebSocket Authentication", "ws_auth_enable": "Require auth for /ws/*", "routing_title": "Routing Strategy", "routing_strategy_label": "Routing strategy:", "routing_strategy_hint": "round-robin cycles through keys; fill-first prioritizes the first available key.", "routing_strategy_update": "Update", "routing_strategy_round_robin": "round-robin (cycle)", "routing_strategy_fill_first": "fill-first (prioritize)" }, "api_keys": { "title": "API Keys Management", "proxy_auth_title": "Proxy Service Authentication Keys", "add_button": "Add Key", "empty_title": "No API Keys", "empty_desc": "Click the button above to add the first key", "item_title": "API Key", "add_modal_title": "Add API Key", "add_modal_key_label": "API Key:", "add_modal_key_placeholder": "Please enter API key", "edit_modal_title": "Edit API Key", "edit_modal_key_label": "API Key:", "delete_confirm": "Are you sure you want to delete this API key?" }, "ai_providers": { "title": "AI Providers Configuration", "gemini_title": "Gemini API Keys", "gemini_add_button": "Add Key", "gemini_empty_title": "No Gemini Keys", "gemini_empty_desc": "Click the button above to add the first key", "gemini_item_title": "Gemini Key", "gemini_add_modal_title": "Add Gemini API Key", "gemini_add_modal_key_label": "API Keys:", "gemini_add_modal_key_placeholder": "Enter Gemini API key", "gemini_add_modal_key_hint": "Add keys one by one and optionally specify a Base URL.", "gemini_keys_add_btn": "Add Key", "gemini_base_url_label": "Base URL (Optional):", "gemini_base_url_placeholder": "e.g.: https://generativelanguage.googleapis.com", "gemini_edit_modal_title": "Edit Gemini API Key", "gemini_edit_modal_key_label": "API Key:", "gemini_delete_confirm": "Are you sure you want to delete this Gemini key?", "excluded_models_label": "Excluded models (optional):", "excluded_models_placeholder": "Comma or newline separated, e.g. gemini-1.5-pro, gemini-1.5-flash", "excluded_models_hint": "Leave empty to allow all models; values are trimmed and deduplicated automatically.", "excluded_models_count": "Excluding {{count}} models", "prefix_label": "Prefix (Optional):", "prefix_placeholder": "e.g.: team-a", "prefix_hint": "When set, call models as prefix/ to target this entry.", "config_toggle_label": "Enabled", "config_disabled_badge": "Disabled", "codex_title": "Codex API Configuration", "codex_add_button": "Add Configuration", "codex_empty_title": "No Codex Configuration", "codex_empty_desc": "Click the button above to add the first configuration", "codex_item_title": "Codex Configuration", "codex_add_modal_title": "Add Codex API Configuration", "codex_add_modal_key_label": "API Key:", "codex_add_modal_key_placeholder": "Please enter Codex API key", "codex_add_modal_url_label": "Base URL (Required):", "codex_add_modal_url_placeholder": "e.g.: https://api.example.com", "codex_add_modal_proxy_label": "Proxy URL (Optional):", "codex_add_modal_proxy_placeholder": "e.g.: socks5://proxy.example.com:1080", "codex_edit_modal_title": "Edit Codex API Configuration", "codex_edit_modal_key_label": "API Key:", "codex_edit_modal_url_label": "Base URL (Required):", "codex_edit_modal_proxy_label": "Proxy URL (Optional):", "codex_delete_confirm": "Are you sure you want to delete this Codex configuration?", "claude_title": "Claude API Configuration", "claude_add_button": "Add Configuration", "claude_empty_title": "No Claude Configuration", "claude_empty_desc": "Click the button above to add the first configuration", "claude_item_title": "Claude Configuration", "claude_add_modal_title": "Add Claude API Configuration", "claude_add_modal_key_label": "API Key:", "claude_add_modal_key_placeholder": "Please enter Claude API key", "claude_add_modal_url_label": "Base URL (Optional):", "claude_add_modal_url_placeholder": "e.g.: https://api.anthropic.com", "claude_add_modal_proxy_label": "Proxy URL (Optional):", "claude_add_modal_proxy_placeholder": "e.g.: socks5://proxy.example.com:1080", "claude_edit_modal_title": "Edit Claude API Configuration", "claude_edit_modal_key_label": "API Key:", "claude_edit_modal_url_label": "Base URL (Optional):", "claude_edit_modal_proxy_label": "Proxy URL (Optional):", "claude_delete_confirm": "Are you sure you want to delete this Claude configuration?", "claude_models_label": "Custom Models (Optional):", "claude_models_hint": "Leave empty to allow all models, or add name[, alias] entries to limit/alias them.", "claude_models_add_btn": "Add Model", "claude_models_count": "Models Count", "vertex_title": "Vertex API Configuration", "vertex_add_button": "Add Configuration", "vertex_empty_title": "No Vertex Configuration", "vertex_empty_desc": "Click the button above to add the first configuration", "vertex_item_title": "Vertex Configuration", "vertex_add_modal_title": "Add Vertex API Configuration", "vertex_add_modal_key_label": "API Key:", "vertex_add_modal_key_placeholder": "Please enter Vertex API key", "vertex_add_modal_url_label": "Base URL (Required):", "vertex_add_modal_url_placeholder": "e.g.: https://example.com/api", "vertex_add_modal_proxy_label": "Proxy URL (Optional):", "vertex_add_modal_proxy_placeholder": "e.g.: socks5://proxy.example.com:1080", "vertex_edit_modal_title": "Edit Vertex API Configuration", "vertex_edit_modal_key_label": "API Key:", "vertex_edit_modal_url_label": "Base URL (Required):", "vertex_edit_modal_proxy_label": "Proxy URL (Optional):", "vertex_delete_confirm": "Are you sure you want to delete this Vertex configuration?", "vertex_models_label": "Model mappings (alias required):", "vertex_models_add_btn": "Add Mapping", "vertex_models_hint": "Each mapping needs both the original model and its alias.", "vertex_models_count": "Mapping count", "ampcode_title": "Amp CLI Integration (ampcode)", "ampcode_modal_title": "Configure Ampcode", "ampcode_upstream_url_label": "Upstream URL", "ampcode_upstream_url_placeholder": "e.g. https://ampcode.com", "ampcode_upstream_url_hint": "Optional. Leave empty to use the default/auto-discovered control plane URL.", "ampcode_upstream_api_key_label": "Upstream API Key (Amp Official)", "ampcode_upstream_api_key_placeholder": "Enter sk-amp... (leave empty to keep current)", "ampcode_upstream_api_key_hint": "Optional. Leaving it empty will not change the current Amp official key. Use the button below to clear it.", "ampcode_upstream_api_key_current": "Current Amp official key: {{key}}", "ampcode_clear_upstream_api_key": "Clear official key", "ampcode_clear_upstream_api_key_confirm": "Are you sure you want to clear the Ampcode upstream API key (Amp official)?", "ampcode_force_model_mappings_label": "Force model mappings", "ampcode_force_model_mappings_hint": "When enabled, mappings override local API-key availability checks.", "ampcode_model_mappings_label": "Model mappings (from → to)", "ampcode_model_mappings_hint": "Rewrites model names in Amp requests. Leave empty to disable mappings.", "ampcode_model_mappings_add_btn": "Add mapping", "ampcode_model_mappings_from_placeholder": "from model (source)", "ampcode_model_mappings_to_placeholder": "to model (target)", "ampcode_model_mappings_count": "Mappings Count", "ampcode_mappings_overwrite_confirm": "Existing mappings could not be loaded. Continuing may overwrite or clear them. Continue?", "openai_title": "OpenAI Compatible Providers", "openai_add_button": "Add Provider", "openai_empty_title": "No OpenAI Compatible Providers", "openai_empty_desc": "Click the button above to add the first provider", "openai_add_modal_title": "Add OpenAI Compatible Provider", "openai_add_modal_name_label": "Provider Name:", "openai_add_modal_name_placeholder": "e.g.: openrouter", "openai_add_modal_url_label": "Base URL:", "openai_add_modal_url_placeholder": "e.g.: https://openrouter.ai/api/v1", "openai_add_modal_keys_label": "API Keys", "openai_edit_modal_keys_label": "API Keys", "openai_keys_hint": "Add each key separately with an optional proxy URL to keep things organized.", "openai_keys_add_btn": "Add Key", "openai_key_placeholder": "sk-... key", "openai_proxy_placeholder": "Optional proxy URL (e.g. socks5://...)", "openai_add_modal_models_label": "Model List (name[, alias] one per line):", "openai_models_hint": "Example: gpt-4o-mini or moonshotai/kimi-k2:free, kimi-k2", "openai_model_name_placeholder": "Model name, e.g. moonshotai/kimi-k2:free", "openai_model_alias_placeholder": "Model alias (optional)", "openai_models_add_btn": "Add Model", "openai_models_fetch_button": "Fetch via /v1/models", "openai_models_fetch_title": "Pick Models from /v1/models", "openai_models_fetch_hint": "Call the /v1/models endpoint using the Base URL above, sending the first API key as Bearer plus custom headers.", "openai_models_fetch_url_label": "Request URL", "openai_models_fetch_refresh": "Refresh", "openai_models_fetch_loading": "Fetching models from /v1/models...", "openai_models_fetch_empty": "No models returned. Please check the endpoint or auth.", "openai_models_fetch_error": "Failed to fetch models", "openai_models_fetch_back": "Back to edit", "openai_models_fetch_apply": "Add selected models", "openai_models_search_label": "Search models", "openai_models_search_placeholder": "Filter by name, alias, or description", "openai_models_search_empty": "No models match your search. Try a different keyword.", "openai_models_fetch_invalid_url": "Please enter a valid Base URL first", "openai_models_fetch_added": "{{count}} new models added", "openai_edit_modal_title": "Edit OpenAI Compatible Provider", "openai_edit_modal_name_label": "Provider Name:", "openai_edit_modal_url_label": "Base URL:", "openai_edit_modal_models_label": "Model List (name[, alias] one per line):", "openai_delete_confirm": "Are you sure you want to delete this OpenAI provider?", "openai_keys_count": "Keys Count", "openai_models_count": "Models Count", "openai_test_title": "Connection Test", "openai_test_hint": "Send a /v1/chat/completions request with the current settings to verify availability.", "openai_test_model_placeholder": "Model to test", "openai_test_action": "Run Test", "openai_test_running": "Sending test request...", "openai_test_timeout": "Test request timed out after {{seconds}} seconds.", "openai_test_success": "Test succeeded. The model responded.", "openai_test_failed": "Test failed", "openai_test_select_placeholder": "Choose from current models", "openai_test_select_empty": "No models configured. Add models first" }, "auth_files": { "title": "Auth Files Management", "title_section": "Auth Files", "description": "Manage all CLI Proxy JSON auth files here (e.g. Qwen, Gemini, Vertex). Uploading a credential immediately enables the corresponding AI integration.", "upload_button": "Upload File", "delete_all_button": "Delete All", "empty_title": "No Auth Files", "empty_desc": "Click the button above to upload the first file", "search_empty_title": "No matching files", "search_empty_desc": "Try changing the filters or clearing the search box.", "file_size": "Size", "file_modified": "Modified", "download_button": "Download", "delete_button": "Delete", "delete_confirm": "Are you sure you want to delete file", "delete_all_confirm": "Are you sure you want to delete all auth files? This operation cannot be undone!", "delete_filtered_confirm": "Are you sure you want to delete all {{type}} auth files? This operation cannot be undone!", "upload_error_json": "Only JSON files are allowed", "upload_error_size": "File size cannot exceed {{maxSize}}", "upload_success": "File uploaded successfully", "download_success": "File downloaded successfully", "delete_success": "File deleted successfully", "delete_all_success": "Successfully deleted", "delete_filtered_success": "Deleted {{count}} {{type}} auth files successfully", "delete_filtered_partial": "{{type}} auth files deletion finished: {{success}} succeeded, {{failed}} failed", "delete_filtered_none": "No deletable auth files under the current filter ({{type}})", "files_count": "files", "pagination_prev": "Previous", "pagination_next": "Next", "pagination_info": "Page {{current}} / {{total}} · {{count}} files", "search_label": "Search configs", "search_placeholder": "Filter by name, type, or provider", "page_size_label": "Per page", "page_size_unit": "items", "view_mode_paged": "Paged", "view_mode_all": "Show all", "too_many_files_warning": "Too many credentials. Showing all may cause performance issues, please use paged view.", "filter_all": "All", "filter_qwen": "Qwen", "filter_gemini": "Gemini", "filter_gemini-cli": "GeminiCLI", "filter_aistudio": "AIStudio", "filter_claude": "Claude", "filter_codex": "Codex", "filter_antigravity": "Antigravity", "filter_iflow": "iFlow", "filter_vertex": "Vertex", "filter_empty": "Empty", "filter_unknown": "Other", "type_qwen": "Qwen", "type_gemini": "Gemini", "type_gemini-cli": "GeminiCLI", "type_aistudio": "AIStudio", "type_claude": "Claude", "type_codex": "Codex", "type_antigravity": "Antigravity", "type_iflow": "iFlow", "type_vertex": "Vertex", "type_empty": "Empty", "type_unknown": "Other", "type_virtual": "Virtual auth file", "models_button": "Models", "models_title": "Supported models", "models_loading": "Loading model list...", "models_empty": "No available models for this credential", "models_empty_desc": "This credential may not be loaded by the server yet, or no models are bound to it.", "models_unsupported": "This feature is not supported in the current version", "models_unsupported_desc": "Please update CLI Proxy API to the latest version and try again", "models_excluded_badge": "Excluded", "models_excluded_hint": "This model is excluded by OAuth" }, "antigravity_quota": { "title": "Antigravity Quota", "empty_title": "No Antigravity Auth Files", "empty_desc": "Upload an Antigravity credential to view remaining quota.", "idle": "Not loaded. Click Refresh Button.", "loading": "Loading quota...", "load_failed": "Failed to load quota: {{message}}", "missing_auth_index": "Auth file missing auth_index", "empty_models": "No quota data available", "refresh_button": "Refresh Quota", "fetch_all": "Fetch All" }, "codex_quota": { "title": "Codex Quota", "empty_title": "No Codex Auth Files", "empty_desc": "Upload a Codex credential to view quota.", "idle": "Not loaded. Click Refresh Button.", "loading": "Loading quota...", "load_failed": "Failed to load quota: {{message}}", "missing_auth_index": "Auth file missing auth_index", "missing_account_id": "Codex credential missing ChatGPT account ID", "empty_windows": "No quota data available", "no_access": "This credential has no Codex access (plan: free).", "refresh_button": "Refresh Quota", "fetch_all": "Fetch All", "primary_window": "5-hour limit", "secondary_window": "Weekly limit", "code_review_window": "Code review limit", "plan_label": "Plan", "plan_plus": "Plus", "plan_team": "Team", "plan_free": "Free" }, "gemini_cli_quota": { "title": "Gemini CLI Quota", "empty_title": "No Gemini CLI Auth Files", "empty_desc": "Upload a Gemini CLI credential to view remaining quota.", "idle": "Not loaded. Click Refresh Button.", "loading": "Loading quota...", "load_failed": "Failed to load quota: {{message}}", "missing_auth_index": "Auth file missing auth_index", "missing_project_id": "Gemini CLI credential missing project ID", "empty_buckets": "No quota data available", "refresh_button": "Refresh Quota", "fetch_all": "Fetch All", "remaining_amount": "Remaining {{count}}" }, "vertex_import": { "title": "Vertex JSON Login", "description": "Upload a Google service account JSON to store it as auth-dir/vertex-.json using the same rules as the CLI vertex-import helper.", "location_label": "Region (optional)", "location_placeholder": "us-central1", "location_hint": "Leave empty to use the default region us-central1.", "file_label": "Service account key JSON", "file_hint": "Only Google Cloud service account key JSON files are accepted.", "file_placeholder": "No file selected", "choose_file": "Choose File", "import_button": "Import Vertex Credential", "file_required": "Select a .json credential file first", "success": "Vertex credential imported successfully", "result_title": "Credential saved", "result_project": "Project ID", "result_email": "Service account", "result_location": "Region", "result_file": "Persisted file" }, "oauth_excluded": { "title": "OAuth Excluded Models", "description": "Per-provider exclusions are shown as cards; click edit to adjust. Wildcards * are supported and the scope follows the auth file filter.", "add": "Add Exclusion", "add_title": "Add provider exclusion", "edit_title": "Edit exclusions for {{provider}}", "refresh": "Refresh", "refreshing": "Refreshing...", "provider_label": "Provider", "provider_auto": "Follow current filter", "provider_placeholder": "e.g. gemini-cli", "provider_hint": "Defaults to the current filter; pick an existing provider or type a new name.", "models_label": "Models to exclude", "models_placeholder": "gpt-4.1-mini\n*-preview", "models_hint": "Separate by commas or new lines; saving an empty list removes that provider. * wildcards are supported.", "save": "Save/Update", "saving": "Saving...", "save_success": "Excluded models updated", "save_failed": "Failed to update excluded models", "delete": "Delete Provider", "delete_confirm": "Delete the exclusion list for {{provider}}?", "delete_success": "Exclusion list removed", "delete_failed": "Failed to delete exclusion list", "deleting": "Deleting...", "no_models": "No excluded models", "model_count": "{{count}} models excluded", "list_empty_all": "No exclusions yet—use “Add Exclusion” to create one.", "list_empty_filtered": "No exclusions in this scope; click “Add Exclusion” to add.", "disconnected": "Connect to the server to view exclusions", "load_failed": "Failed to load exclusion list", "provider_required": "Please enter a provider first", "scope_all": "Scope: All providers", "scope_provider": "Scope: {{provider}}", "upgrade_required": "This feature requires a newer CLI Proxy API (CPA) version. Please upgrade.", "upgrade_required_title": "Please upgrade CLI Proxy API", "upgrade_required_desc": "The current server does not support the OAuth excluded models API. Please upgrade to the latest CLI Proxy API (CPA) version." }, "oauth_model_mappings": { "title": "OAuth Model Mappings", "add": "Add Mapping", "add_title": "Add provider model mappings", "provider_label": "Provider", "provider_placeholder": "e.g. gemini-cli / vertex", "provider_hint": "Defaults to the current filter; pick an existing provider or type a new name.", "mappings_label": "Model mappings", "mapping_name_placeholder": "Source model name", "mapping_alias_placeholder": "Alias (required)", "mapping_fork_label": "Keep original", "mappings_hint": "Saving an empty list removes that provider. Enable “Keep original” to keep the original name while adding the alias.", "add_mapping": "Add mapping", "save": "Save/Update", "save_success": "Model mappings updated", "save_failed": "Failed to update model mappings", "delete": "Delete Provider", "delete_confirm": "Delete model mappings for {{provider}}?", "delete_success": "Model mappings removed", "delete_failed": "Failed to delete model mappings", "no_models": "No model mappings", "model_count": "{{count}} mappings", "list_empty_all": "No model mappings yet—use “Add Mapping” to create one.", "provider_required": "Please enter a provider first", "upgrade_required": "This feature requires a newer CLI Proxy API (CPA) version. Please upgrade.", "upgrade_required_title": "Please upgrade CLI Proxy API", "upgrade_required_desc": "The current server does not support the OAuth model mappings API. Please upgrade to the latest CLI Proxy API (CPA) version." }, "auth_login": { "codex_oauth_title": "Codex OAuth", "codex_oauth_button": "Start Codex Login", "codex_oauth_hint": "Login to Codex service through OAuth flow, automatically obtain and save authentication files.", "codex_oauth_url_label": "Authorization URL:", "codex_open_link": "Open Link", "codex_copy_link": "Copy Link", "codex_oauth_status_waiting": "Waiting for authentication...", "codex_oauth_status_success": "Authentication successful!", "codex_oauth_status_error": "Authentication failed:", "codex_oauth_start_error": "Failed to start Codex OAuth:", "codex_oauth_polling_error": "Failed to check authentication status:", "anthropic_oauth_title": "Anthropic OAuth", "anthropic_oauth_button": "Start Anthropic Login", "anthropic_oauth_hint": "Login to Anthropic (Claude) service through OAuth flow, automatically obtain and save authentication files.", "anthropic_oauth_url_label": "Authorization URL:", "anthropic_open_link": "Open Link", "anthropic_copy_link": "Copy Link", "anthropic_oauth_status_waiting": "Waiting for authentication...", "anthropic_oauth_status_success": "Authentication successful!", "anthropic_oauth_status_error": "Authentication failed:", "anthropic_oauth_start_error": "Failed to start Anthropic OAuth:", "anthropic_oauth_polling_error": "Failed to check authentication status:", "antigravity_oauth_title": "Antigravity OAuth", "antigravity_oauth_button": "Start Antigravity Login", "antigravity_oauth_hint": "Login to Antigravity service (Google account) through OAuth flow, automatically obtain and save authentication files.", "antigravity_oauth_url_label": "Authorization URL:", "antigravity_open_link": "Open Link", "antigravity_copy_link": "Copy Link", "antigravity_oauth_status_waiting": "Waiting for authentication...", "antigravity_oauth_status_success": "Authentication successful!", "antigravity_oauth_status_error": "Authentication failed:", "antigravity_oauth_start_error": "Failed to start Antigravity OAuth:", "antigravity_oauth_polling_error": "Failed to check authentication status:", "gemini_cli_oauth_title": "Gemini CLI OAuth", "gemini_cli_oauth_button": "Start Gemini CLI Login", "gemini_cli_oauth_hint": "Login to Google Gemini CLI service through OAuth flow, automatically obtain and save authentication files.", "gemini_cli_project_id_label": "Google Cloud Project ID (Optional):", "gemini_cli_project_id_placeholder": "Leave blank to auto-select first available project", "gemini_cli_project_id_hint": "Optional. If not provided, the system will automatically select the first available project from your account.", "gemini_cli_project_id_required": "Please enter a Google Cloud project ID.", "gemini_cli_oauth_url_label": "Authorization URL:", "gemini_cli_open_link": "Open Link", "gemini_cli_copy_link": "Copy Link", "gemini_cli_oauth_status_waiting": "Waiting for authentication...", "gemini_cli_oauth_status_success": "Authentication successful!", "gemini_cli_oauth_status_error": "Authentication failed:", "gemini_cli_oauth_start_error": "Failed to start Gemini CLI OAuth:", "gemini_cli_oauth_polling_error": "Failed to check authentication status:", "qwen_oauth_title": "Qwen OAuth", "qwen_oauth_button": "Start Qwen Login", "qwen_oauth_hint": "Login to Qwen service through device authorization flow, automatically obtain and save authentication files.", "qwen_oauth_url_label": "Authorization URL:", "qwen_open_link": "Open Link", "qwen_copy_link": "Copy Link", "qwen_oauth_status_waiting": "Waiting for authentication...", "qwen_oauth_status_success": "Authentication successful!", "qwen_oauth_status_error": "Authentication failed:", "qwen_oauth_start_error": "Failed to start Qwen OAuth:", "qwen_oauth_polling_error": "Failed to check authentication status:", "oauth_callback_label": "Callback URL", "oauth_callback_placeholder": "http://localhost:1455/auth/callback?code=...&state=...", "oauth_callback_hint": "Remote browser mode: after the provider redirects to http://localhost:..., copy the full URL and submit it here.", "oauth_callback_button": "Submit Callback URL", "oauth_callback_required": "Please paste the full redirect URL first.", "oauth_callback_success": "Callback URL submitted. Continue waiting for authentication.", "oauth_callback_error": "Failed to submit callback URL:", "oauth_callback_upgrade_hint": "Please update CLI Proxy API or check the connection.", "oauth_callback_status_success": "Callback URL submitted, waiting for authentication...", "oauth_callback_status_error": "Callback URL submission failed:", "missing_state": "Unable to retrieve authentication state parameter", "iflow_oauth_title": "iFlow OAuth", "iflow_oauth_button": "Start iFlow Login", "iflow_oauth_hint": "Login to iFlow service through OAuth flow, automatically obtain and save authentication files.", "iflow_oauth_url_label": "Authorization URL:", "iflow_open_link": "Open Link", "iflow_copy_link": "Copy Link", "iflow_oauth_status_waiting": "Waiting for authentication...", "iflow_oauth_status_success": "Authentication successful!", "iflow_oauth_status_error": "Authentication failed:", "iflow_oauth_start_error": "Failed to start iFlow OAuth:", "iflow_oauth_polling_error": "Failed to check authentication status:", "iflow_cookie_title": "iFlow Cookie Login", "iflow_cookie_label": "Cookie Value:", "iflow_cookie_placeholder": "Enter the BXAuth value, starting with BXAuth=", "iflow_cookie_hint": "Submit an existing cookie to finish login without opening the authorization link; the credential file will be saved automatically.", "iflow_cookie_key_hint": "Note: Create a key on the platform first.", "iflow_cookie_button": "Submit Cookie Login", "iflow_cookie_status_success": "Cookie login succeeded and credentials are saved.", "iflow_cookie_status_error": "Cookie login failed:", "iflow_cookie_status_duplicate": "Duplicate config:", "iflow_cookie_start_error": "Failed to submit cookie login:", "iflow_cookie_config_duplicate": "A config file already exists (duplicate). Remove the existing file and try again if you want to re-save it.", "iflow_cookie_required": "Please provide the Cookie value first.", "iflow_cookie_result_title": "Cookie Login Result", "iflow_cookie_result_email": "Account", "iflow_cookie_result_expired": "Expires At", "iflow_cookie_result_path": "Saved Path", "iflow_cookie_result_type": "Type", "remote_access_disabled": "This login method is not available for remote access. Please access from localhost." }, "usage_stats": { "title": "Usage Statistics", "total_requests": "Total Requests", "success_requests": "Success Requests", "failed_requests": "Failed Requests", "total_tokens": "Total Tokens", "cached_tokens": "Cached Tokens", "reasoning_tokens": "Reasoning Tokens", "rpm_30m": "RPM", "tpm_30m": "TPM", "rate_30m": "Rate (last 30 min)", "model_name": "Model Name", "model_price_settings": "Model Pricing Settings", "saved_prices": "Saved Prices", "requests_trend": "Request Trends", "tokens_trend": "Token Usage Trends", "api_details": "API Details", "by_hour": "By Hour", "by_day": "By Day", "refresh": "Refresh", "export": "Export", "import": "Import", "export_success": "Usage export downloaded", "import_success": "Import complete: added {{added}}, skipped {{skipped}}, total {{total}}, failed {{failed}}", "import_invalid": "Invalid usage export file", "chart_line_label_1": "Line 1", "chart_line_label_2": "Line 2", "chart_line_label_3": "Line 3", "chart_line_label_4": "Line 4", "chart_line_label_5": "Line 5", "chart_line_label_6": "Line 6", "chart_line_label_7": "Line 7", "chart_line_label_8": "Line 8", "chart_line_label_9": "Line 9", "chart_line_hidden": "Hide", "chart_line_actions_label": "Lines to display", "chart_line_add": "Add line", "chart_line_all": "All", "chart_line_delete": "Delete line", "chart_line_hint": "Show up to 9 model lines at once", "no_data": "No Data Available", "loading_error": "Loading Failed", "api_endpoint": "API Endpoint", "requests_count": "Request Count", "tokens_count": "Token Count", "models": "Model Statistics", "success_rate": "Success Rate", "total_cost": "Total Cost", "total_cost_hint": "Based on configured model pricing", "model_price_title": "Model Pricing", "model_price_reset": "Clear Prices", "model_price_model_label": "Model", "model_price_select_placeholder": "Choose a model", "model_price_select_hint": "Models come from usage details", "model_price_prompt": "Prompt price", "model_price_completion": "Completion price", "model_price_cache": "Cache price", "model_price_save": "Save Price", "model_price_empty": "No model prices set", "model_price_model": "Model", "model_price_saved": "Model price saved", "model_price_model_required": "Please choose a model to set pricing", "cost_trend": "Cost Overview", "cost_axis_label": "Cost ($)", "cost_need_price": "Set a model price to view cost stats", "cost_need_usage": "No usage data available to calculate cost", "cost_no_data": "No cost data yet" }, "stats": { "success": "Success", "failure": "Failure" }, "logs": { "title": "Logs Viewer", "refresh_button": "Refresh Logs", "clear_button": "Clear Logs", "download_button": "Download Logs", "error_log_button": "Select Error Log", "error_logs_modal_title": "Error Request Logs", "error_logs_description": "Pick an error request log file to download (only generated when request logging is off).", "error_logs_request_log_enabled": "Request logging is enabled, so this list will always be empty. Disable request logging and refresh to view error logs.", "error_logs_empty": "No error request log files found", "error_logs_load_error": "Failed to load error log list", "error_logs_size": "Size", "error_logs_modified": "Last modified", "error_logs_download": "Download", "error_log_download_success": "Error log downloaded successfully", "request_log_download_title": "Download Request Log", "request_log_download_confirm": "Download request log for ID {{id}}?", "request_log_download_success": "Request log downloaded successfully", "empty_title": "No Logs Available", "empty_desc": "When \"Enable logging to file\" is enabled, logs will be displayed here", "log_content": "Log Content", "loading": "Loading logs...", "load_error": "Failed to load logs", "clear_confirm": "Are you sure you want to clear all logs? This action cannot be undone!", "clear_success": "Logs cleared successfully", "download_success": "Logs downloaded successfully", "auto_refresh": "Auto Refresh", "auto_refresh_enabled": "Auto refresh enabled", "auto_refresh_disabled": "Auto refresh disabled", "load_more_hint": "Scroll up to load more", "hidden_lines": "Hidden: {{count}} lines", "loaded_lines": "Loaded: {{count}} lines", "filtered_lines": "Filtered: {{count}} lines", "hide_management_logs": "Hide {{prefix}} logs", "search_placeholder": "Search logs by content or keyword", "search_empty_title": "No matching logs found", "search_empty_desc": "Try a different keyword or clear the filters.", "double_click_copy_hint": "Double-click to copy raw log line", "copy_success": "Log copied to clipboard", "copy_failed": "Copy failed", "lines": "lines", "removed": "Filtered", "upgrade_required_title": "Please Upgrade CLI Proxy API", "upgrade_required_desc": "The current server version does not support the logs viewing feature. Please upgrade to the latest version of CLI Proxy API to use this feature." }, "config_management": { "title": "Config Management", "editor_title": "Configuration File", "reload": "Reload", "save": "Save", "description": "View and edit the server-side config.yaml file. Validate the syntax before saving.", "status_idle": "Waiting for action", "status_loading": "Loading configuration...", "status_loaded": "Configuration loaded", "status_dirty": "Unsaved changes", "status_disconnected": "Connect to the server to load the configuration", "status_load_failed": "Load failed", "status_saving": "Saving configuration...", "status_saved": "Configuration saved", "status_save_failed": "Save failed", "save_success": "Configuration saved successfully", "error_yaml_not_supported": "Server did not return YAML. Verify the /config.yaml endpoint is available.", "editor_placeholder": "key: value", "search_placeholder": "Search config...", "search_button": "Search", "search_no_results": "No results", "search_prev": "Previous", "search_next": "Next" }, "quota_management": { "title": "Quota Management", "description": "Monitor OAuth quota status for Antigravity, Codex, and Gemini CLI credentials.", "refresh_files": "Refresh auth files", "refresh_files_and_quota": "Refresh files & quota" }, "system_info": { "title": "Management Center Info", "connection_status_title": "Connection Status", "api_status_label": "API Status:", "config_status_label": "Config Status:", "last_update_label": "Last Update:", "cache_data": "Cache Data", "real_time_data": "Real-time Data", "not_loaded": "Not Loaded", "seconds_ago": "seconds ago", "models_title": "Available Models", "models_desc": "Shows the /v1/models response and uses saved API keys for auth automatically.", "models_loading": "Loading available models...", "models_empty": "No models returned by /v1/models", "models_error": "Failed to load model list", "models_count": "{{count}} available models", "version_check_title": "Update Check", "version_check_desc": "Call the /latest-version endpoint to compare with the server version and see if an update is available.", "version_current_label": "Current version", "version_latest_label": "Latest version", "version_check_button": "Check for updates", "version_check_idle": "Click to check for updates", "version_checking": "Checking for the latest version...", "version_update_available": "An update is available: {{version}}", "version_is_latest": "You are on the latest version", "version_check_error": "Update check failed", "version_current_missing": "Server version is unavailable; cannot compare", "version_unknown": "Unknown", "quick_links_title": "Quick Links", "quick_links_desc": "Access project repositories and documentation for help and updates.", "link_main_repo": "Main Repository", "link_main_repo_desc": "CLI Proxy API core program source code", "link_webui_repo": "WebUI Repository", "link_webui_repo_desc": "Management Center frontend source code", "link_docs": "Documentation", "link_docs_desc": "Usage tutorials and configuration guides", "clear_login_title": "Local Login Data", "clear_login_desc": "Clear locally saved login data and sign out. Usage stats pricing settings will remain untouched.", "clear_login_button": "Clear login data", "clear_login_confirm": "Clear local login data and sign out now?" }, "notification": { "debug_updated": "Debug settings updated", "proxy_updated": "Proxy settings updated", "proxy_cleared": "Proxy settings cleared", "retry_updated": "Retry settings updated", "quota_switch_project_updated": "Project switch settings updated", "quota_switch_preview_updated": "Preview model switch settings updated", "usage_statistics_updated": "Usage statistics settings updated", "logging_to_file_updated": "Logging settings updated", "logs_max_total_size_updated": "Log size limit updated", "request_log_updated": "Request logging setting updated", "force_model_prefix_updated": "Model prefix setting updated", "ws_auth_updated": "WebSocket authentication setting updated", "routing_strategy_updated": "Routing strategy updated", "login_storage_cleared": "Local login data cleared", "api_key_added": "API key added successfully", "api_key_updated": "API key updated successfully", "api_key_deleted": "API key deleted successfully", "api_key_invalid_chars": "API key can only contain letters, numbers, and symbols", "gemini_key_added": "Gemini key added successfully", "gemini_key_updated": "Gemini key updated successfully", "gemini_key_deleted": "Gemini key deleted successfully", "gemini_multi_input_required": "Please enter at least one Gemini key", "gemini_multi_failed": "Gemini bulk add failed", "gemini_multi_summary": "Gemini bulk add finished: {{success}} added, {{skipped}} skipped, {{failed}} failed", "codex_config_added": "Codex configuration added successfully", "codex_config_updated": "Codex configuration updated successfully", "codex_config_deleted": "Codex configuration deleted successfully", "codex_base_url_required": "Please enter the Codex Base URL", "claude_config_added": "Claude configuration added successfully", "claude_config_updated": "Claude configuration updated successfully", "claude_config_deleted": "Claude configuration deleted successfully", "vertex_config_added": "Vertex configuration added successfully", "vertex_config_updated": "Vertex configuration updated successfully", "vertex_config_deleted": "Vertex configuration deleted successfully", "vertex_base_url_required": "Please enter the Vertex Base URL", "config_enabled": "Configuration enabled", "config_disabled": "Configuration disabled", "field_required": "Required fields cannot be empty", "openai_provider_required": "Please fill in provider name and Base URL", "openai_provider_added": "OpenAI provider added successfully", "openai_provider_updated": "OpenAI provider updated successfully", "openai_provider_deleted": "OpenAI provider deleted successfully", "ampcode_updated": "Ampcode configuration updated", "ampcode_upstream_api_key_cleared": "Ampcode upstream API key override cleared", "openai_model_name_required": "Model name is required", "openai_test_url_required": "Please provide a valid Base URL before testing", "openai_test_key_required": "Please add at least one API key before testing", "openai_test_model_required": "Please select a model to test", "data_refreshed": "Data refreshed successfully", "connection_required": "Please establish connection first", "refresh_failed": "Refresh failed", "update_failed": "Update failed", "add_failed": "Add failed", "delete_failed": "Delete failed", "upload_failed": "Upload failed", "download_failed": "Download failed", "login_failed": "Login failed", "please_enter": "Please enter", "please_fill": "Please fill", "provider_name_url": "provider name and Base URL", "api_key": "API key", "gemini_api_key": "Gemini API key", "codex_api_key": "Codex API key", "claude_api_key": "Claude API key", "link_copied": "Link copied to clipboard" }, "language": { "switch": "Language", "chinese": "中文", "english": "English" }, "theme": { "switch": "Theme", "light": "Light", "dark": "Dark", "switch_to_light": "Switch to light mode", "switch_to_dark": "Switch to dark mode", "auto": "Follow system" }, "sidebar": { "toggle_expand": "Expand sidebar", "toggle_collapse": "Collapse sidebar" }, "footer": { "api_version": "CLI Proxy API Version", "build_date": "Build Time", "version": "Management UI Version", "author": "Author" } }