diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 5492276c..1b657d50 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -57,7 +57,6 @@ "unsaved_changes_message": "You have unsaved changes. Leaving now will discard them. Do you want to leave?" }, "title": { - "main": "CLI Proxy API Management Center", "login": "CLI Proxy API Management Center", "abbr": "CPAMC" }, @@ -65,26 +64,18 @@ "title": "CLI Proxy API", "subtitle": "Management Center" }, - "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_backend_detail": "Backend response", "error_required": "Please fill in complete connection information", "error_invalid": "Connection failed, please check the server address, Management API, and management key", @@ -98,20 +89,14 @@ "error_ssl": "SSL/TLS certificate verification failed" }, "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", "quick_start": "Quick Start", "ai_providers": "AI Providers", "auth_files": "Auth Files", @@ -144,10 +129,6 @@ "system_info": "Runtime & diagnostics" }, "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}} V:{{vertex}} O:{{openai}}", @@ -171,61 +152,23 @@ "system_overview": "System Overview" }, "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", - "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?" - }, "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", @@ -234,11 +177,6 @@ "health_status_healthy": "Healthy", "health_status_warning": "Warning", "health_status_disabled": "Disabled", - "health_status_unknown": "Unknown", - "health_status_no_message": "No status message", - "last_refresh_label": "Last Refresh", - "refresh_not_available": "N/A", - "refresh_just_now": "Just now", "download_button": "Download", "delete_button": "Delete", "delete_confirm": "Are you sure you want to delete file", @@ -268,7 +206,6 @@ "delete_filtered_result_success": "Deleted {{count}} auth files from the filtered results successfully", "delete_filtered_result_partial": "Filtered result deletion finished: {{success}} succeeded, {{failed}} failed", "delete_filtered_result_none": "No deletable auth files in the current filtered results", - "files_count": "files", "pagination_prev": "Previous", "pagination_next": "Next", "pagination_info": "Page {{current}} / {{total}} · {{count}} files", @@ -279,8 +216,6 @@ "problem_filter_enabled": "Enabled", "problem_filter_problem": "Problem", "problem_filter_disabled": "Disabled", - "problem_filter_only": "Only show problematic credentials", - "disabled_filter_only": "Only show disabled credentials", "display_options_label": "Display options", "compact_mode_label": "Compact mode", "sort_label": "Sort", @@ -289,7 +224,6 @@ "sort_priority": "Priority", "priority_display": "Priority", "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.", @@ -306,18 +240,6 @@ "filter_vertex": "Vertex", "filter_empty": "Empty", "filter_unknown": "Other", - "type_qwen": "Qwen", - "type_gemini": "Gemini", - "type_kimi": "Kimi", - "type_aistudio": "AIStudio", - "type_claude": "Claude", - "type_codex": "Codex", - "type_antigravity": "Antigravity", - "type_xai": "xAI", - "type_iflow": "iFlow", - "type_vertex": "Vertex", - "type_empty": "Empty", - "type_unknown": "Other", "type_virtual": "Virtual auth file", "models_button": "Models", "models_title": "Supported models", @@ -354,21 +276,12 @@ "prefix_proxy_invalid_content_label": "Downloaded content (truncated)", "prefix_label": "Prefix (prefix)", "proxy_url_label": "Proxy URL (proxy_url)", - "prefix_placeholder": "", "proxy_url_placeholder": "socks5://username:password@proxy_ip:port/", "priority_label": "Priority (priority)", "priority_placeholder": "e.g. 10 or -1", "priority_hint": "Integers only. Invalid values are ignored. Larger value means higher priority.", "websockets_label": "WebSockets (websockets)", "websockets_hint": "Enable Responses API websocket transport for this credential.", - "codex_websockets_label": "WebSockets (websockets)", - "codex_websockets_hint": "Enable Responses API websocket transport for this Codex credential.", - "excluded_models_label": "Excluded models (excluded_models)", - "excluded_models_placeholder": "Comma or newline separated, e.g. model-a, gpt-5-*, *-preview", - "excluded_models_hint": "Saved as an array and normalized by trim/lowercase/dedup/sort.", - "disable_cooling_label": "Disable cooling (disable_cooling)", - "disable_cooling_placeholder": "e.g. true / false / 1 / 0", - "disable_cooling_hint": "Supports booleans, numeric 0/non-0, and strings like true/false/1/0; unparseable values are ignored.", "note_label": "Note", "note_placeholder": "Enter a note, e.g.: John's account", "note_hint": "Optional. Used to describe the purpose or owner of this credential; leave empty to omit.", @@ -388,13 +301,6 @@ "quota_refresh_failed": "Failed to refresh quota for \"{{name}}\": {{message}}" }, "antigravity_subscription": { - "subscription_label": "Subscription", - "plan_badge": "Plan {{plan}}", - "loading_short": "Plan...", - "error_badge": "Plan error", - "load_failed": "Subscription check failed: {{message}}", - "missing_auth_index": "Auth file missing auth_index", - "empty_data": "No subscription data available", "plan_unknown": "Unknown", "plan_free": "Free", "plan_pro": "Pro", @@ -559,10 +465,7 @@ "add": "Add Disablement", "add_title": "Add provider model disablement", "edit_title": "Edit model disablement for {{provider}}", - "refresh": "Refresh", - "refreshing": "Refreshing...", "provider_label": "Provider", - "provider_auto": "Follow current filter", "provider_placeholder": "e.g. codex / openai", "provider_hint": "Defaults to the current filter; pick an existing provider or type a new name.", "models_label": "Models to disable", @@ -571,23 +474,16 @@ "models_loaded": "{{count}} models loaded. Check the models to disable.", "no_models_available": "No models available for this provider.", "save": "Save/Update", - "saving": "Saving...", "save_success": "Model disablement updated", "save_failed": "Failed to update model disablement", "delete": "Delete Provider", "delete_confirm": "Delete model disablement for {{provider}}?", "delete_success": "Provider model disablement removed", "delete_failed": "Failed to delete model disablement", - "deleting": "Deleting...", "no_models": "No disabled models configured", "model_count": "{{count}} models disabled", "list_empty_all": "No provider model disablement yet; click “Add Disablement” to create one.", - "list_empty_filtered": "No disabled items in this scope; click “Add Disablement” to add.", - "disconnected": "Connect to the server to view model disablement", - "load_failed": "Failed to load model disablement", "provider_required": "Please enter a provider first", - "scope_all": "Scope: All providers", - "scope_provider": "Scope: {{provider}}", "upgrade_required": "Current CPA version does not support OAuth model disablement. Please upgrade.", "upgrade_required_title": "Please upgrade CLI Proxy API", "upgrade_required_desc": "The current server version does not support fetching OAuth model disablement. Please upgrade to the latest CPA (CLI Proxy API) version and try again." @@ -647,7 +543,6 @@ "diagram_settings_source_title": "Source model settings", "diagram_settings_empty": "No mappings for this alias yet.", "diagram_tap_hint": "On touch devices: tap a source model, then tap an alias to link.", - "view_mode": "View mode", "view_mode_diagram": "Diagram", "view_mode_list": "List", "provider_required": "Please enter a provider first", @@ -761,12 +656,6 @@ "failure_short": "✗", "no_requests": "No requests" }, - "service_health": { - "title": "Service Health", - "window": "Last 7 days", - "oldest": "Oldest", - "newest": "Latest" - }, "logs": { "title": "Logs Viewer", "runtime_unknown": "Current runtime: detecting", @@ -777,7 +666,6 @@ "fullscreen_button": "Full Screen", "exit_fullscreen_button": "Exit Full Screen", "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 open or download (only generated when request logging is off).", "error_logs_home_unavailable": "In Home mode, use Log Content for database logs. Error request log files only apply to CPA file logs.", @@ -812,8 +700,6 @@ "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", @@ -839,20 +725,13 @@ "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." + "copy_failed": "Copy failed" }, "config_management": { "title": "Config Panel", - "editor_title": "Configuration File", "reload": "Reload", "reload_confirm_message": "Reloading will discard your unsaved changes. Do you want to continue?", "save": "Save", - "description": "Edit config.yaml via visual editor or source file", - "status_idle": "Waiting for action", "status_loading": "Loading configuration...", "status_loading_short": "Loading", "status_loaded": "Configuration loaded", @@ -865,10 +744,7 @@ "status_load_failed_short": "Failed", "status_saving": "Saving configuration...", "status_saving_short": "Saving", - "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.", "visual_mode_unavailable": "Visual editor unavailable until YAML syntax is fixed", "visual_mode_unavailable_short": "YAML issue", "validation_blocked_short": "Fix errors", @@ -883,8 +759,6 @@ "search_next": "Next", "diff": { "title": "Review Changes", - "current": "Current", - "modified": "Modified", "confirm": "Confirm Save", "no_changes": "No changes detected" }, @@ -1174,10 +1048,7 @@ "quota_management": { "title": "Quota Management", "description": "Monitor OAuth quota status for Antigravity, Codex, Claude, Kimi, and xAI credentials.", - "refresh_files": "Refresh auth files", - "refresh_files_and_quota": "Refresh files & quota", - "refresh_all_credentials": "Refresh all credentials", - "card_idle_hint": "Use the top \"Refresh all credentials\" button to fetch the latest quota data." + "refresh_all_credentials": "Refresh all credentials" }, "plugin_management": { "title": "Plugin Management", @@ -1205,11 +1076,7 @@ "oauth": "OAuth", "status_effective": "Effective", "status_inactive": "Inactive", - "version_label": "Version", - "author_label": "Author", - "path_label": "Path", "edit_config": "Edit config", - "open_resource": "Open resource", "open_repository": "Open repository", "config_title": "Configure {{name}}", "base_settings": "Base settings", @@ -1321,7 +1188,6 @@ "gate_step3_hint": "Enter the exact identifier shown above to enable installation." }, "plugin_resource": { - "title": "Plugin Page", "page_count": "{{count}} pages", "load_failed": "Failed to load plugin page", "unavailable": "Plugin page unavailable", @@ -1333,27 +1199,13 @@ "system_info": { "title": "Management Center Info", "about_title": "CLI Proxy API Management Center", - "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 /models response and uses saved API keys for auth automatically.", "models_loading": "Loading available models...", "models_empty": "No models returned by /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", @@ -1373,50 +1225,8 @@ "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", - "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", - "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", - "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", @@ -1426,13 +1236,6 @@ "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", "commercial_mode_restart_required": "Commercial mode setting changed. Please restart the service for it to take effect", "copy_failed": "Copy failed", "link_copied": "Link copied to clipboard" @@ -1449,8 +1252,6 @@ "light": "Wool Paper", "white": "Pure White", "dark": "Dark", - "switch_to_light": "Switch to wool paper mode", - "switch_to_dark": "Switch to dark mode", "auto": "Follow system" }, "sidebar": { @@ -1460,16 +1261,14 @@ "footer": { "api_version": "CLI Proxy API Version", "build_date": "Build Time", - "version": "Management UI Version", - "author": "Author" + "version": "Management UI Version" }, "providersPage": { "header": { "title": "AI Providers", "activeResources": "{{active}}/{{total}} active resources", "providerFamilies": "{{count}} provider families", - "updatedAt": "Updated {{time}}", - "issueCount": "{{count}} issues" + "updatedAt": "Updated {{time}}" }, "actions": { "refresh": "Refresh", @@ -1478,7 +1277,6 @@ "edit": "Edit", "view": "View", "delete": "Delete", - "clear": "Clear", "cancel": "Cancel", "save": "Save", "create": "Create", @@ -1488,8 +1286,7 @@ "categories": { "title": "Providers", "quickFill": "Quick Fill", - "activeCount": "{{active}}/{{total}} active", - "sponsors": "Sponsors" + "activeCount": "{{active}}/{{total}} active" }, "providerNames": { "gemini": "Gemini", @@ -1517,8 +1314,7 @@ "cloakTag": "Cloak", "empty": "No resources yet, click \"New\" to add.", "filterPlaceholder": "Search keys, URLs, prefixes…", - "description": "Manage resources under {{route}}", - "providerIssue": "This provider has an issue" + "description": "Manage resources under {{route}}" }, "sponsor": { "protocolSummary": "Anthropic / OpenAI / Gemini / Codex API (Responses)", @@ -1626,8 +1422,6 @@ "addModel": "Add model", "headersSection": "Request headers", "addHeader": "Add header", - "headers": "Headers", - "headersHint": "One per line, format Key: Value", "excludedSection": "Excluded models", "excludedHint": "One model per line; matched models won't be routed", "cloakSection": "Cloak settings", @@ -1641,7 +1435,6 @@ "hideApiKey": "Hide API key", "disableCooling": "Disable cooling", "disableCoolingHint": "Disable failure cooldown windows only for this credential or provider", - "modelEntry": "Model #{{index}}", "modelImage": "Allow image endpoints", "modelImageHint": "Allow this model on /v1/images/generations and /v1/images/edits", "showAllEntries": "Show all ({{count}})", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 4bf16642..8ce53c1a 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -57,7 +57,6 @@ "unsaved_changes_message": "У вас есть несохранённые изменения. Если вы уйдёте, они будут потеряны. Выйти?" }, "title": { - "main": "Центр управления CLI Proxy API", "login": "Центр управления CLI Proxy API", "abbr": "CPAMC" }, @@ -65,26 +64,18 @@ "title": "CLI Proxy API", "subtitle": "Центр управления" }, - "auto_login": { - "title": "Автовход...", - "message": "Пытаемся подключиться к серверу, используя сохранённые данные" - }, "login": { "subtitle": "Введите данные подключения, чтобы получить доступ к панели управления", - "connection_title": "Адрес подключения", "connection_current": "Текущий URL", "connection_auto_hint": "Система автоматически использует текущий URL для подключения", "custom_connection_label": "Пользовательский URL подключения:", "custom_connection_placeholder": "Напр.: https://example.com:8317", "custom_connection_hint": "По умолчанию используется текущий URL. При необходимости замените его.", - "use_current_address": "Использовать текущий URL", "remember_password_label": "Запомнить пароль", "management_key_label": "Ключ управления:", "management_key_placeholder": "Введите ключ управления", - "connect_button": "Подключиться", "submit_button": "Войти", "submitting": "Подключение...", - "error_title": "Ошибка входа", "error_backend_detail": "Ответ сервера", "error_required": "Пожалуйста, заполните все данные подключения", "error_invalid": "Подключение не удалось, проверьте адрес сервера, Management API и ключ управления", @@ -98,20 +89,14 @@ "error_ssl": "Ошибка проверки SSL/TLS сертификата" }, "header": { - "check_connection": "Проверить подключение", "refresh_all": "Обновить всё", "logout": "Выйти" }, "connection": { - "title": "Информация о подключении", - "server_address": "Адрес сервера:", - "management_key": "Ключ управления:", "status": "Статус подключения:" }, "nav": { "dashboard": "Панель", - "basic_settings": "Основные настройки", - "api_keys": "API ключи", "quick_start": "Быстрый старт", "ai_providers": "Поставщики AI", "auth_files": "Файлы аутентификации", @@ -143,10 +128,6 @@ "system_info": "Состояние и диагностика" }, "dashboard": { - "title": "Панель управления", - "subtitle": "Добро пожаловать в Центр управления CLI Proxy API", - "openai_providers": "Поставщики OpenAI", - "quick_actions": "Быстрые действия", "current_config": "Текущая конфигурация", "management_keys": "Ключи управления", "provider_keys_detail": "G:{{gemini}} C:{{codex}} Cl:{{claude}} V:{{vertex}} O:{{openai}}", @@ -170,61 +151,23 @@ "system_overview": "Обзор системы" }, "basic_settings": { - "title": "Основные настройки", - "debug_title": "Режим отладки", "debug_enable": "Включить режим отладки", - "proxy_title": "Настройки прокси", "proxy_url_label": "URL прокси:", - "proxy_url_placeholder": "например: socks5://user:pass@127.0.0.1:1080/", - "proxy_update": "Обновить", - "proxy_clear": "Очистить", - "retry_title": "Повтор запросов", "retry_count_label": "Количество повторов:", - "retry_update": "Обновить", - "quota_title": "Поведение при превышении квоты", - "quota_switch_project": "Автоматически переключать проект", - "quota_switch_preview": "Переключаться на preview-модель", - "logging_title": "Журналирование", "logging_to_file_enable": "Включить журналирование в файл", - "logs_max_total_size_title": "Лимит размера журналов", - "logs_max_total_size_label": "Максимальный общий размер журналов (МБ):", - "logs_max_total_size_hint": "Установите 0, чтобы отключить лимит.", - "logs_max_total_size_update": "Обновить", "request_log_title": "Журналирование запросов", "request_log_enable": "Включить журналирование запросов", "request_log_warning": "Оставьте выключенным, если подробная диагностика не нужна.", - "force_model_prefix_enable": "Включить принудительный префикс модели", - "ws_auth_title": "Аутентификация WebSocket", "ws_auth_enable": "Требовать аутентификацию для /ws/*", - "routing_title": "Стратегия маршрутизации", - "routing_strategy_label": "Стратегия маршрутизации:", - "routing_strategy_hint": "round-robin циклически перебирает ключи; fill-first отдаёт приоритет первому доступному ключу.", - "routing_strategy_update": "Обновить", "routing_strategy_round_robin": "round-robin (цикл)", "routing_strategy_fill_first": "fill-first (приоритет)" }, - "api_keys": { - "title": "Управление API-ключами", - "proxy_auth_title": "Ключи аутентификации прокси-сервиса", - "add_button": "Добавить ключ", - "empty_title": "API-ключи отсутствуют", - "empty_desc": "Нажмите кнопку выше, чтобы добавить первый ключ", - "item_title": "API-ключ", - "add_modal_title": "Добавление API-ключа", - "add_modal_key_label": "API-ключ:", - "add_modal_key_placeholder": "Введите API-ключ", - "edit_modal_title": "Редактирование API-ключа", - "edit_modal_key_label": "API-ключ:", - "delete_confirm": "Удалить этот API-ключ?" - }, "auth_files": { "title": "Управление файлами авторизации", "title_section": "Файлы авторизации", "description": "Управляйте всеми JSON-файлами авторизации CLI Proxy (например, Qwen, Gemini, Vertex). Загрузка учётных данных сразу включает соответствующую интеграцию AI.", "upload_button": "Загрузить файл", "delete_all_button": "Удалить всё", - "empty_title": "Файлы авторизации отсутствуют", - "empty_desc": "Нажмите кнопку выше, чтобы загрузить первый файл", "search_empty_title": "Файлы не найдены", "search_empty_desc": "Попробуйте изменить фильтры или очистить строку поиска.", "file_size": "Размер", @@ -233,11 +176,6 @@ "health_status_healthy": "Нормально", "health_status_warning": "Предупреждение", "health_status_disabled": "Отключено", - "health_status_unknown": "Неизвестно", - "health_status_no_message": "Нет сообщения о статусе", - "last_refresh_label": "Последнее обновление", - "refresh_not_available": "Н/Д", - "refresh_just_now": "Только что", "download_button": "Скачать", "delete_button": "Удалить", "delete_confirm": "Удалить файл", @@ -267,7 +205,6 @@ "delete_filtered_result_success": "Удалено файлов авторизации из результатов фильтра: {{count}}", "delete_filtered_result_partial": "Удаление результатов фильтра завершено: успешных {{success}}, ошибок {{failed}}", "delete_filtered_result_none": "Нет файлов авторизации для удаления в текущих результатах фильтра", - "files_count": "файлов", "pagination_prev": "Предыдущая", "pagination_next": "Следующая", "pagination_info": "Страница {{current}} / {{total}} · {{count}} файлов", @@ -278,8 +215,6 @@ "problem_filter_enabled": "Вкл.", "problem_filter_problem": "Пробл.", "problem_filter_disabled": "Откл.", - "problem_filter_only": "Показывать только проблемные учётные данные", - "disabled_filter_only": "Показывать только отключённые учётные данные", "display_options_label": "Параметры отображения", "compact_mode_label": "Компактный режим", "sort_label": "Сортировка", @@ -288,7 +223,6 @@ "sort_priority": "Приоритет", "priority_display": "Приоритет", "page_size_label": "На странице", - "page_size_unit": "элементов", "view_mode_paged": "Постранично", "view_mode_all": "Показать все", "too_many_files_warning": "Слишком много учётных данных. Полный список может повлиять на производительность, используйте постраничный режим.", @@ -305,18 +239,6 @@ "filter_vertex": "Vertex", "filter_empty": "Пусто", "filter_unknown": "Другое", - "type_qwen": "Qwen", - "type_gemini": "Gemini", - "type_kimi": "Kimi", - "type_aistudio": "AIStudio", - "type_claude": "Claude", - "type_codex": "Codex", - "type_antigravity": "Antigravity", - "type_xai": "xAI", - "type_iflow": "iFlow", - "type_vertex": "Vertex", - "type_empty": "Пусто", - "type_unknown": "Другое", "type_virtual": "Виртуальный файл авторизации", "models_button": "Модели", "models_title": "Поддерживаемые модели", @@ -353,21 +275,12 @@ "prefix_proxy_invalid_content_label": "Скачанное содержимое (сокращено)", "prefix_label": "Префикс (prefix)", "proxy_url_label": "URL прокси (proxy_url)", - "prefix_placeholder": "", "proxy_url_placeholder": "socks5://username:password@proxy_ip:port/", "priority_label": "Приоритет (priority)", "priority_placeholder": "например: 10 или -1", "priority_hint": "Только целые числа. Некорректные значения игнорируются. Чем больше число, тем выше приоритет.", "websockets_label": "WebSockets (websockets)", "websockets_hint": "Включает websocket-транспорт Responses API для этих учётных данных.", - "codex_websockets_label": "WebSockets (websockets)", - "codex_websockets_hint": "Включает websocket-транспорт Responses API для этих учётных данных Codex.", - "excluded_models_label": "Исключённые модели (excluded_models)", - "excluded_models_placeholder": "Через запятую или с новой строки, например: model-a, gpt-5-*, *-preview", - "excluded_models_hint": "Сохраняется как массив; значения trim/нижний регистр/без дублей/с сортировкой.", - "disable_cooling_label": "Отключение охлаждения (disable_cooling)", - "disable_cooling_placeholder": "например: true / false / 1 / 0", - "disable_cooling_hint": "Поддерживает boolean, числа 0/не 0 и строки true/false/1/0; непарсируемые значения игнорируются.", "note_label": "Заметка (note)", "note_placeholder": "Введите заметку, например: аккаунт Ивана", "note_hint": "Необязательно. Используется для описания назначения или владельца учётных данных; оставьте пустым, чтобы не записывать.", @@ -375,20 +288,12 @@ "prefix_proxy_invalid_json": "Этот файл авторизации не является JSON-объектом, поэтому поля нельзя редактировать.", "prefix_proxy_html_challenge": "Скачанное содержимое является HTML-страницей проверки, а не JSON-объектом авторизации. Повторно авторизуйтесь или замените файл перед редактированием полей.", "prefix_proxy_saved_success": "Файл авторизации \"{{name}}\" успешно обновлён", - "card_tools_title": "Инструменты", "quota_refresh_single": "Обновить квоту", "quota_refresh_hint": "Обновить квоту только для этих учётных данных", "quota_refresh_success": "Квота для \"{{name}}\" обновлена", "quota_refresh_failed": "Не удалось обновить квоту для \"{{name}}\": {{message}}" }, "antigravity_subscription": { - "subscription_label": "Подписка", - "plan_badge": "План {{plan}}", - "loading_short": "План...", - "error_badge": "Ошибка плана", - "load_failed": "Не удалось проверить подписку: {{message}}", - "missing_auth_index": "В файле авторизации отсутствует auth_index", - "empty_data": "Данные подписки отсутствуют", "plan_unknown": "Неизвестно", "plan_free": "Free", "plan_pro": "Pro", @@ -547,10 +452,7 @@ "add": "Добавить отключение", "add_title": "Добавление отключения моделей для провайдера", "edit_title": "Редактирование отключения моделей для {{provider}}", - "refresh": "Обновить", - "refreshing": "Обновляется...", "provider_label": "Провайдер", - "provider_auto": "Следовать текущему фильтру", "provider_placeholder": "например: codex / openai", "provider_hint": "По умолчанию используется текущий фильтр; выберите существующего провайдера или введите новое имя.", "models_label": "Отключаемые модели", @@ -559,23 +461,16 @@ "models_loaded": "Загружено моделей: {{count}}. Отметьте модели, которые нужно отключить.", "no_models_available": "Для этого провайдера нет доступных моделей.", "save": "Сохранить/обновить", - "saving": "Сохранение...", "save_success": "Отключение моделей обновлено", "save_failed": "Не удалось обновить отключение моделей", "delete": "Удалить провайдера", "delete_confirm": "Удалить отключение моделей для {{provider}}?", "delete_success": "Отключение моделей провайдера удалено", "delete_failed": "Не удалось удалить отключение моделей", - "deleting": "Удаление...", "no_models": "Отключаемые модели не настроены", "model_count": "Отключено моделей: {{count}}", "list_empty_all": "Отключений моделей пока нет — используйте \"Добавить отключение\".", - "list_empty_filtered": "В этой области нет отключённых моделей; нажмите \"Добавить отключение\".", - "disconnected": "Подключитесь к серверу, чтобы просматривать отключение моделей", - "load_failed": "Не удалось загрузить отключение моделей", "provider_required": "Сначала укажите провайдера", - "scope_all": "Область: все провайдеры", - "scope_provider": "Область: {{provider}}", "upgrade_required": "Текущая версия CPA не поддерживает отключение OAuth-моделей. Пожалуйста, обновите систему.", "upgrade_required_title": "Пожалуйста, обновите CLI Proxy API", "upgrade_required_desc": "Текущая версия сервера не поддерживает получение отключения OAuth-моделей. Обновите CPA (CLI Proxy API) до последней версии и повторите попытку." @@ -635,7 +530,6 @@ "diagram_settings_source_title": "Настройки исходной модели", "diagram_settings_empty": "Для этого псевдонима ещё нет сопоставлений.", "diagram_tap_hint": "На сенсорных устройствах: коснитесь исходной модели, затем псевдонима для связывания.", - "view_mode": "Режим просмотра", "view_mode_diagram": "Диаграмма", "view_mode_list": "Список", "provider_required": "Сначала укажите провайдера", @@ -749,12 +643,6 @@ "failure_short": "✗", "no_requests": "Нет запросов" }, - "service_health": { - "title": "Состояние сервиса", - "window": "Последние 7 дней", - "oldest": "Старые", - "newest": "Новые" - }, "logs": { "title": "Просмотр журналов", "runtime_unknown": "Текущий режим: определяется", @@ -765,7 +653,6 @@ "fullscreen_button": "На весь экран", "exit_fullscreen_button": "Выйти из полноэкранного режима", "download_button": "Скачать журналы", - "error_log_button": "Выбрать журнал ошибок", "error_logs_modal_title": "Журналы ошибок запросов", "error_logs_description": "Выберите файл журнала ошибок запроса, чтобы открыть или скачать его (создаётся только при отключённом журналировании запросов).", "error_logs_home_unavailable": "В режиме Home смотрите журналы базы данных на вкладке содержимого. Файлы ошибок запросов относятся только к файловым журналам CPA.", @@ -800,8 +687,6 @@ "clear_success": "Журналы успешно очищены", "download_success": "Журналы успешно скачаны", "auto_refresh": "Автообновление", - "auto_refresh_enabled": "Автообновление включено", - "auto_refresh_disabled": "Автообновление выключено", "load_more_hint": "Прокрутите вверх, чтобы загрузить ещё", "hidden_lines": "Скрыто: {{count}} строк", "loaded_lines": "Загружено: {{count}} строк", @@ -827,20 +712,13 @@ "search_empty_desc": "Попробуйте другой запрос или сбросьте фильтры.", "double_click_copy_hint": "Дважды нажмите, чтобы скопировать строку журнала", "copy_success": "Строка журнала скопирована", - "copy_failed": "Не удалось скопировать", - "lines": "строк", - "removed": "Отфильтровано", - "upgrade_required_title": "Обновите CLI Proxy API", - "upgrade_required_desc": "Текущая версия сервера не поддерживает просмотр журналов. Обновите CLI Proxy API до последней версии, чтобы использовать эту функцию." + "copy_failed": "Не удалось скопировать" }, "config_management": { "title": "Панель конфигурации", - "editor_title": "Файл конфигурации", "reload": "Перезагрузить", "reload_confirm_message": "Перезагрузка отбросит ваши несохранённые изменения. Продолжить?", "save": "Сохранить", - "description": "Редактируйте config.yaml через визуальный редактор или исходный файл", - "status_idle": "Ожидание действия", "status_loading": "Загрузка конфигурации...", "status_loading_short": "Загрузка", "status_loaded": "Конфигурация загружена", @@ -853,10 +731,7 @@ "status_load_failed_short": "Ошибка", "status_saving": "Сохранение конфигурации...", "status_saving_short": "Сохранение", - "status_saved": "Конфигурация сохранена", - "status_save_failed": "Не удалось сохранить", "save_success": "Конфигурация успешно сохранена", - "error_yaml_not_supported": "Сервер не вернул YAML. Убедитесь, что доступна конечная точка /config.yaml.", "visual_mode_unavailable": "Визуальный редактор недоступен, пока не исправлен синтаксис YAML", "visual_mode_unavailable_short": "Ошибка YAML", "validation_blocked_short": "Есть ошибки", @@ -871,8 +746,6 @@ "search_next": "Вперёд", "diff": { "title": "Обзор изменений", - "current": "Текущая", - "modified": "Изменённая", "confirm": "Подтвердить", "no_changes": "Изменений не обнаружено" }, @@ -1162,10 +1035,7 @@ "quota_management": { "title": "Управление квотами", "description": "Следите за статусом квот OAuth для учётных данных Antigravity, Codex, Claude, Kimi и xAI.", - "refresh_files": "Обновить файлы авторизации", - "refresh_files_and_quota": "Обновить файлы и квоты", - "refresh_all_credentials": "Обновить все учётные данные", - "card_idle_hint": "Используйте кнопку «Обновить все учётные данные» сверху, чтобы загрузить актуальные данные по квотам." + "refresh_all_credentials": "Обновить все учётные данные" }, "plugin_management": { "title": "Управление плагинами", @@ -1193,11 +1063,7 @@ "oauth": "OAuth", "status_effective": "Активен", "status_inactive": "Неактивен", - "version_label": "Версия", - "author_label": "Автор", - "path_label": "Путь", "edit_config": "Изменить конфиг", - "open_resource": "Открыть ресурс", "open_repository": "Открыть репозиторий", "config_title": "Настроить {{name}}", "base_settings": "Базовые настройки", @@ -1311,27 +1177,13 @@ "system_info": { "title": "Информация о центре управления", "about_title": "CLI Proxy API Management Center", - "connection_status_title": "Статус подключения", - "api_status_label": "Статус API:", - "config_status_label": "Статус конфигурации:", - "last_update_label": "Последнее обновление:", - "cache_data": "Данные из кэша", - "real_time_data": "Данные в реальном времени", - "not_loaded": "Не загружено", - "seconds_ago": "секунд назад", "models_title": "Доступные модели", "models_desc": "Показывает ответ /models и автоматически использует сохранённые API-ключи для авторизации.", "models_loading": "Загрузка доступных моделей...", "models_empty": "Сервис /models не вернул модели", "models_error": "Не удалось загрузить список моделей", "models_count": "Доступно моделей: {{count}}", - "version_check_title": "Проверка обновлений", - "version_check_desc": "Вызовите эндпоинт /latest-version, чтобы сравнить с версией сервера и узнать о доступных обновлениях.", - "version_current_label": "Текущая версия", - "version_latest_label": "Последняя версия", "version_check_button": "Проверить обновления", - "version_check_idle": "Нажмите, чтобы проверить обновления", - "version_checking": "Поиск последней версии...", "version_update_available": "Доступно обновление: {{version}}", "version_is_latest": "Установлена последняя версия", "version_check_error": "Не удалось проверить обновление", @@ -1351,50 +1203,8 @@ "clear_login_confirm": "Очистить локальные данные входа и выйти?" }, "notification": { - "debug_updated": "Настройки отладки обновлены", - "proxy_updated": "Настройки прокси обновлены", - "proxy_cleared": "Настройки прокси очищены", - "retry_updated": "Настройки повторов обновлены", - "quota_switch_project_updated": "Настройки переключения проектов обновлены", - "quota_switch_preview_updated": "Настройки переключения на preview-модель обновлены", - "logging_to_file_updated": "Настройки журналирования обновлены", - "logs_max_total_size_updated": "Лимит размера журналов обновлён", "request_log_updated": "Настройка журналирования запросов обновлена", - "force_model_prefix_updated": "Настройка префикса модели обновлена", - "ws_auth_updated": "Настройка аутентификации WebSocket обновлена", - "routing_strategy_updated": "Стратегия маршрутизации обновлена", "login_storage_cleared": "Локальные данные входа очищены", - "api_key_added": "API-ключ успешно добавлен", - "api_key_updated": "API-ключ успешно обновлён", - "api_key_deleted": "API-ключ успешно удалён", - "api_key_invalid_chars": "API-ключ может содержать только буквы, цифры и символы", - "gemini_key_added": "Ключ Gemini успешно добавлен", - "gemini_key_updated": "Ключ Gemini успешно обновлён", - "gemini_key_deleted": "Ключ Gemini успешно удалён", - "gemini_multi_input_required": "Введите хотя бы один ключ Gemini", - "gemini_multi_failed": "Пакетное добавление Gemini не удалось", - "gemini_multi_summary": "Пакетное добавление Gemini завершено: добавлено {{success}}, пропущено {{skipped}}, ошибок {{failed}}", - "codex_config_added": "Конфигурация Codex успешно добавлена", - "codex_config_updated": "Конфигурация Codex успешно обновлена", - "codex_config_deleted": "Конфигурация Codex успешно удалена", - "codex_base_url_required": "Введите базовый URL Codex", - "claude_config_added": "Конфигурация Claude успешно добавлена", - "claude_config_updated": "Конфигурация Claude успешно обновлена", - "claude_config_deleted": "Конфигурация Claude успешно удалена", - "vertex_config_added": "Конфигурация Vertex успешно добавлена", - "vertex_config_updated": "Конфигурация Vertex успешно обновлена", - "vertex_config_deleted": "Конфигурация Vertex успешно удалена", - "config_enabled": "Конфигурация включена", - "config_disabled": "Конфигурация выключена", - "field_required": "Обязательные поля не могут быть пустыми", - "openai_provider_required": "Заполните имя провайдера и базовый URL", - "openai_provider_added": "Провайдер OpenAI успешно добавлен", - "openai_provider_updated": "Провайдер OpenAI успешно обновлён", - "openai_provider_deleted": "Провайдер OpenAI успешно удалён", - "openai_model_name_required": "Введите имя модели", - "openai_test_url_required": "Укажите корректный базовый URL перед тестированием", - "openai_test_key_required": "Добавьте хотя бы один API-ключ перед тестированием", - "openai_test_model_required": "Выберите модель для теста", "data_refreshed": "Данные успешно обновлены", "connection_required": "Сначала установите подключение", "refresh_failed": "Не удалось обновить", @@ -1404,13 +1214,6 @@ "upload_failed": "Не удалось загрузить", "download_failed": "Не удалось скачать", "login_failed": "Вход не выполнен", - "please_enter": "Пожалуйста, введите", - "please_fill": "Пожалуйста, заполните", - "provider_name_url": "имя провайдера и базовый URL", - "api_key": "API-ключ", - "gemini_api_key": "API-ключ Gemini", - "codex_api_key": "API-ключ Codex", - "claude_api_key": "API-ключ Claude", "commercial_mode_restart_required": "Режим коммерческого использования изменён. Перезапустите сервис, чтобы применить изменения", "copy_failed": "Не удалось скопировать", "link_copied": "Ссылка скопирована в буфер обмена" @@ -1427,8 +1230,6 @@ "light": "Шерстяная бумага", "white": "Чисто-белая", "dark": "Тёмная", - "switch_to_light": "Переключиться на тему «Шерстяная бумага»", - "switch_to_dark": "Переключиться на тёмную тему", "auto": "Следовать системе" }, "sidebar": { @@ -1438,16 +1239,14 @@ "footer": { "api_version": "Версия CLI Proxy API", "build_date": "Время сборки", - "version": "Версия интерфейса управления", - "author": "Автор" + "version": "Версия интерфейса управления" }, "providersPage": { "header": { "title": "AI Провайдеры", "activeResources": "{{active}}/{{total}} активных", "providerFamilies": "{{count}} семейств", - "updatedAt": "Обновлено {{time}}", - "issueCount": "{{count}} проблем" + "updatedAt": "Обновлено {{time}}" }, "actions": { "refresh": "Обновить", @@ -1456,7 +1255,6 @@ "edit": "Изменить", "view": "Просмотр", "delete": "Удалить", - "clear": "Очистить", "cancel": "Отмена", "save": "Сохранить", "create": "Создать", @@ -1466,8 +1264,7 @@ "categories": { "title": "Провайдеры", "quickFill": "Быстрое заполнение", - "activeCount": "{{active}}/{{total}} активных", - "sponsors": "Спонсоры" + "activeCount": "{{active}}/{{total}} активных" }, "providerNames": { "gemini": "Gemini", @@ -1495,8 +1292,7 @@ "cloakTag": "Cloak", "empty": "Нет ресурсов, нажмите \"Создать\".", "filterPlaceholder": "Поиск по ключам, URL, префиксам…", - "description": "Управление ресурсами {{route}}", - "providerIssue": "Проблема с провайдером" + "description": "Управление ресурсами {{route}}" }, "sponsor": { "protocolSummary": "Anthropic / OpenAI / Gemini / Codex API (Responses)", @@ -1604,8 +1400,6 @@ "addModel": "Добавить модель", "headersSection": "Заголовки запроса", "addHeader": "Добавить заголовок", - "headers": "Заголовки", - "headersHint": "По одному в строке, формат Key: Value", "excludedSection": "Исключённые модели", "excludedHint": "По одной модели в строке; совпавшие модели не будут направлены", "cloakSection": "Настройки Cloak", @@ -1619,7 +1413,6 @@ "hideApiKey": "Скрыть ключ API", "disableCooling": "Отключить cooldown", "disableCoolingHint": "Отключает окна охлаждения после ошибок только для этой записи", - "modelEntry": "Модель #{{index}}", "modelImage": "Разрешить image endpoints", "modelImageHint": "Разрешить модель для /v1/images/generations и /v1/images/edits", "showAllEntries": "Показать все ({{count}})", diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 9751c626..e52f1e45 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -57,7 +57,6 @@ "unsaved_changes_message": "你有未保存的更改,离开后将丢失这些更改。确定要离开吗?" }, "title": { - "main": "CLI Proxy API Management Center", "login": "CLI Proxy API Management Center", "abbr": "CPAMC" }, @@ -65,26 +64,18 @@ "title": "CLI Proxy API", "subtitle": "管理中心" }, - "auto_login": { - "title": "正在自动登录...", - "message": "正在使用本地保存的连接信息尝试连接服务器" - }, "login": { "subtitle": "请输入连接信息以访问管理界面", - "connection_title": "连接地址", "connection_current": "当前地址", "connection_auto_hint": "系统将自动使用当前访问地址进行连接", "custom_connection_label": "自定义连接地址:", "custom_connection_placeholder": "例如: https://example.com:8317", "custom_connection_hint": "默认使用当前访问地址,若需要可手动输入其他地址。", - "use_current_address": "使用当前地址", "remember_password_label": "记住密码", "management_key_label": "管理密钥:", "management_key_placeholder": "请输入管理密钥", - "connect_button": "连接", "submit_button": "登录", "submitting": "连接中...", - "error_title": "登录失败", "error_backend_detail": "后端返回", "error_required": "请填写完整的连接信息", "error_invalid": "连接失败,请检查服务地址、管理接口和管理密钥", @@ -98,20 +89,14 @@ "error_ssl": "SSL/TLS 证书验证失败" }, "header": { - "check_connection": "检查连接", "refresh_all": "刷新全部", "logout": "登出" }, "connection": { - "title": "连接信息", - "server_address": "服务器地址:", - "management_key": "管理密钥:", "status": "连接状态:" }, "nav": { "dashboard": "仪表盘", - "basic_settings": "基础设置", - "api_keys": "API 密钥", "quick_start": "快速开始", "ai_providers": "AI 提供商", "auth_files": "认证文件", @@ -144,10 +129,6 @@ "system_info": "运行与诊断信息" }, "dashboard": { - "title": "仪表盘", - "subtitle": "欢迎使用 CLI Proxy API 管理中心", - "openai_providers": "OpenAI 提供商", - "quick_actions": "快捷操作", "current_config": "当前配置", "management_keys": "管理密钥", "provider_keys_detail": "G:{{gemini}} C:{{codex}} Cl:{{claude}} V:{{vertex}} O:{{openai}}", @@ -171,61 +152,23 @@ "system_overview": "系统概览" }, "basic_settings": { - "title": "基础设置", - "debug_title": "调试模式", "debug_enable": "启用调试模式", - "proxy_title": "代理设置", "proxy_url_label": "代理 URL:", - "proxy_url_placeholder": "例如: socks5://user:pass@127.0.0.1:1080/", - "proxy_update": "更新", - "proxy_clear": "清空", - "retry_title": "请求重试", "retry_count_label": "重试次数:", - "retry_update": "更新", - "quota_title": "配额超出行为", - "quota_switch_project": "自动切换项目", - "quota_switch_preview": "切换到预览模型", - "logging_title": "日志记录", "logging_to_file_enable": "启用日志记录到文件", - "logs_max_total_size_title": "日志容量限制", - "logs_max_total_size_label": "日志总大小上限 (MB):", - "logs_max_total_size_hint": "设置为 0 表示不限制。", - "logs_max_total_size_update": "更新", "request_log_title": "请求日志", "request_log_enable": "启用请求日志", "request_log_warning": "仅在需要排查问题时开启,日常请保持关闭。", - "force_model_prefix_enable": "强制模型前缀", - "ws_auth_title": "WebSocket 鉴权", "ws_auth_enable": "启用 /ws/* 鉴权", - "routing_title": "路由策略", - "routing_strategy_label": "路由策略:", - "routing_strategy_hint": "round-robin 为轮询,fill-first 为优先填充。", - "routing_strategy_update": "更新", "routing_strategy_round_robin": "round-robin (轮询)", "routing_strategy_fill_first": "fill-first (优先填充)" }, - "api_keys": { - "title": "API 密钥管理", - "proxy_auth_title": "代理服务认证密钥", - "add_button": "添加密钥", - "empty_title": "暂无API密钥", - "empty_desc": "点击上方按钮添加第一个密钥", - "item_title": "API密钥", - "add_modal_title": "添加API密钥", - "add_modal_key_label": "API密钥:", - "add_modal_key_placeholder": "请输入API密钥", - "edit_modal_title": "编辑API密钥", - "edit_modal_key_label": "API密钥:", - "delete_confirm": "确定要删除这个API密钥吗?" - }, "auth_files": { "title": "认证文件管理", "title_section": "认证文件", "description": "这里集中管理 CLI Proxy 支持的所有 JSON 认证文件(如 Qwen、Gemini、Vertex 等),上传后即可在运行时启用相应的 AI 服务。", "upload_button": "上传文件", "delete_all_button": "删除全部", - "empty_title": "暂无认证文件", - "empty_desc": "点击上方按钮上传第一个文件", "search_empty_title": "没有匹配的配置文件", "search_empty_desc": "请调整筛选条件或清空搜索关键字再试一次。", "file_size": "大小", @@ -234,11 +177,6 @@ "health_status_healthy": "健康", "health_status_warning": "警告", "health_status_disabled": "已停用", - "health_status_unknown": "未知", - "health_status_no_message": "暂无状态说明", - "last_refresh_label": "最近刷新", - "refresh_not_available": "暂无", - "refresh_just_now": "刚刚", "download_button": "下载", "delete_button": "删除", "delete_confirm": "确定要删除文件", @@ -268,7 +206,6 @@ "delete_filtered_result_success": "成功删除 {{count}} 个筛选结果中的认证文件", "delete_filtered_result_partial": "筛选结果删除完成,成功 {{success}} 个,失败 {{failed}} 个", "delete_filtered_result_none": "当前筛选结果中没有可删除的认证文件", - "files_count": "个文件", "pagination_prev": "上一页", "pagination_next": "下一页", "pagination_info": "第 {{current}} / {{total}} 页 · 共 {{count}} 个文件", @@ -279,8 +216,6 @@ "problem_filter_enabled": "启用", "problem_filter_problem": "问题", "problem_filter_disabled": "停用", - "problem_filter_only": "仅显示有问题凭证", - "disabled_filter_only": "仅显示已停用凭证", "display_options_label": "显示选项", "compact_mode_label": "简略模式", "sort_label": "排序", @@ -289,7 +224,6 @@ "sort_priority": "优先级", "priority_display": "优先级", "page_size_label": "单页数量", - "page_size_unit": "个/页", "view_mode_paged": "按页显示", "view_mode_all": "显示全部", "too_many_files_warning": "您的凭证总数过多,全部加载会导致页面卡顿,请保持单页浏览。", @@ -306,18 +240,6 @@ "filter_vertex": "Vertex", "filter_empty": "空文件", "filter_unknown": "其他", - "type_qwen": "Qwen", - "type_gemini": "Gemini", - "type_kimi": "Kimi", - "type_aistudio": "AIStudio", - "type_claude": "Claude", - "type_codex": "Codex", - "type_antigravity": "Antigravity", - "type_xai": "xAI", - "type_iflow": "iFlow", - "type_vertex": "Vertex", - "type_empty": "空文件", - "type_unknown": "其他", "type_virtual": "虚拟认证文件", "models_button": "模型", "models_title": "支持的模型", @@ -354,21 +276,12 @@ "prefix_proxy_invalid_content_label": "下载内容(已截断)", "prefix_label": "前缀(prefix)", "proxy_url_label": "代理 URL(proxy_url)", - "prefix_placeholder": "", "proxy_url_placeholder": "socks5://username:password@proxy_ip:port/", "priority_label": "优先级(priority)", "priority_placeholder": "例如: 10 或 -1", "priority_hint": "仅支持整数;非法值会被忽略。数值越大优先级越高。", "websockets_label": "WebSockets(websockets)", "websockets_hint": "为该凭证开启 Responses API 的 websocket 传输。", - "codex_websockets_label": "WebSockets(websockets)", - "codex_websockets_hint": "为该 Codex 凭证开启 Responses API 的 websocket 传输。", - "excluded_models_label": "排除模型(excluded_models)", - "excluded_models_placeholder": "用逗号或换行分隔,例如: model-a, gpt-5-*, *-preview", - "excluded_models_hint": "保存为数组;会自动 trim、小写、去重并排序。", - "disable_cooling_label": "禁用冷却(disable_cooling)", - "disable_cooling_placeholder": "例如: true / false / 1 / 0", - "disable_cooling_hint": "支持布尔值、0/非0 数字或字符串 true/false/1/0;无法解析时忽略。", "note_label": "备注(note)", "note_placeholder": "输入备注信息,例如:张三的账号", "note_hint": "可选,用于标记凭证用途或归属;留空则不写入。", @@ -388,13 +301,6 @@ "quota_refresh_failed": "刷新 \"{{name}}\" 的额度失败:{{message}}" }, "antigravity_subscription": { - "subscription_label": "订阅", - "plan_badge": "套餐 {{plan}}", - "loading_short": "套餐...", - "error_badge": "套餐错误", - "load_failed": "订阅状态获取失败:{{message}}", - "missing_auth_index": "认证文件缺少 auth_index", - "empty_data": "暂无订阅数据", "plan_unknown": "未知", "plan_free": "免费版", "plan_pro": "Pro", @@ -559,10 +465,7 @@ "add": "新增禁用", "add_title": "新增提供商模型禁用", "edit_title": "编辑 {{provider}} 的模型禁用", - "refresh": "刷新", - "refreshing": "刷新中...", "provider_label": "提供商", - "provider_auto": "跟随当前过滤", "provider_placeholder": "例如 codex / openai", "provider_hint": "默认选中当前筛选的提供商,也可直接输入或选择其他名称。", "models_label": "禁用的模型", @@ -571,23 +474,16 @@ "models_loaded": "已加载 {{count}} 个模型,勾选要禁用的模型。", "no_models_available": "该提供商暂无可用模型列表。", "save": "保存/更新", - "saving": "正在保存...", "save_success": "模型禁用已更新", "save_failed": "更新模型禁用失败", "delete": "删除提供商", "delete_confirm": "确定要删除 {{provider}} 的模型禁用吗?", "delete_success": "已删除该提供商的模型禁用", "delete_failed": "删除模型禁用失败", - "deleting": "正在删除...", "no_models": "未配置禁用模型", "model_count": "禁用 {{count}} 个模型", "list_empty_all": "暂无任何提供商的模型禁用,点击“新增禁用”创建。", - "list_empty_filtered": "当前筛选下没有禁用项,点击“新增禁用”添加。", - "disconnected": "请先连接服务器以查看模型禁用", - "load_failed": "加载模型禁用失败", "provider_required": "请先填写提供商名称", - "scope_all": "当前范围:全局(显示所有提供商)", - "scope_provider": "当前范围:{{provider}}", "upgrade_required": "当前 CPA 版本不支持 OAuth 模型禁用,请升级 CPA 版本", "upgrade_required_title": "需要升级 CPA 版本", "upgrade_required_desc": "当前服务器版本不支持获取 OAuth 模型禁用功能,请升级到最新版本的 CPA(CLI Proxy API)后重试。" @@ -647,7 +543,6 @@ "diagram_settings_source_title": "源模型设置", "diagram_settings_empty": "该别名暂无映射。", "diagram_tap_hint": "触摸设备上:先点选源模型,再点选别名即可建立映射。", - "view_mode": "视图模式", "view_mode_diagram": "概览", "view_mode_list": "管理", "provider_required": "请先填写提供商名称", @@ -761,12 +656,6 @@ "failure_short": "✗", "no_requests": "无请求" }, - "service_health": { - "title": "服务健康监测", - "window": "最近 7 天", - "oldest": "最早", - "newest": "最新" - }, "logs": { "title": "日志查看", "runtime_unknown": "当前运行端:识别中", @@ -777,7 +666,6 @@ "fullscreen_button": "全屏显示", "exit_fullscreen_button": "退出全屏", "download_button": "下载日志", - "error_log_button": "选择错误日志", "error_logs_modal_title": "错误请求日志", "error_logs_description": "请选择要打开或下载的错误请求日志文件(仅在关闭请求日志时生成)。", "error_logs_home_unavailable": "Home 模式下请在日志内容页查看数据库日志,错误请求日志列表仅适用于 CPA 文件日志。", @@ -812,8 +700,6 @@ "clear_success": "日志已清空", "download_success": "日志下载成功", "auto_refresh": "自动刷新", - "auto_refresh_enabled": "自动刷新已开启", - "auto_refresh_disabled": "自动刷新已关闭", "load_more_hint": "向上滚动加载更多", "hidden_lines": "已隐藏 {{count}} 行", "loaded_lines": "已载入 {{count}} 行", @@ -839,20 +725,13 @@ "search_empty_desc": "尝试更换关键字或清空筛选条件。", "double_click_copy_hint": "双击复制日志原文", "copy_success": "已复制日志原文", - "copy_failed": "复制失败", - "lines": "行", - "removed": "已过滤", - "upgrade_required_title": "需要升级 CLI Proxy API", - "upgrade_required_desc": "当前服务器版本不支持日志查看功能,请升级到最新版本的 CLI Proxy API 以使用此功能。" + "copy_failed": "复制失败" }, "config_management": { "title": "配置面板", - "editor_title": "配置文件", "reload": "重新加载", "reload_confirm_message": "重新加载将丢弃你当前未保存的修改,确定继续吗?", "save": "保存", - "description": "通过可视化或者源文件方式编辑 config.yaml 配置文件", - "status_idle": "等待操作", "status_loading": "加载配置中...", "status_loading_short": "加载中", "status_loaded": "配置已加载", @@ -865,10 +744,7 @@ "status_load_failed_short": "失败", "status_saving": "正在保存配置...", "status_saving_short": "保存中", - "status_saved": "配置保存完成", - "status_save_failed": "保存失败", "save_success": "配置已保存", - "error_yaml_not_supported": "服务器未返回 YAML 格式,请确认 /config.yaml 接口可用", "visual_mode_unavailable": "YAML 语法修复前无法使用可视化编辑", "visual_mode_unavailable_short": "YAML错误", "validation_blocked_short": "待修复", @@ -883,8 +759,6 @@ "search_next": "下一个", "diff": { "title": "确认变更", - "current": "当前配置", - "modified": "修改后", "confirm": "确认保存", "no_changes": "未检测到变更" }, @@ -1174,10 +1048,7 @@ "quota_management": { "title": "配额管理", "description": "集中查看 OAuth 额度与剩余情况", - "refresh_files": "刷新认证文件", - "refresh_files_and_quota": "刷新认证文件&额度", - "refresh_all_credentials": "刷新全部凭证", - "card_idle_hint": "请使用顶部“刷新全部凭证”按钮获取最新额度。" + "refresh_all_credentials": "刷新全部凭证" }, "plugin_management": { "title": "插件管理", @@ -1205,11 +1076,7 @@ "oauth": "OAuth", "status_effective": "生效中", "status_inactive": "未生效", - "version_label": "版本", - "author_label": "作者", - "path_label": "路径", "edit_config": "编辑配置", - "open_resource": "打开资源", "open_repository": "打开仓库", "config_title": "配置 {{name}}", "base_settings": "基础设置", @@ -1321,7 +1188,6 @@ "gate_step3_hint": "请输入上方显示的完整标识以启用安装。" }, "plugin_resource": { - "title": "插件页面", "page_count": "{{count}} 个页面", "load_failed": "加载插件页面失败", "unavailable": "插件页面不可用", @@ -1333,27 +1199,13 @@ "system_info": { "title": "管理中心信息", "about_title": "CLI Proxy API Management Center", - "connection_status_title": "连接状态", - "api_status_label": "API 状态:", - "config_status_label": "配置状态:", - "last_update_label": "最后更新:", - "cache_data": "缓存数据", - "real_time_data": "实时数据", - "not_loaded": "未加载", - "seconds_ago": "秒前", "models_title": "可用模型列表", "models_desc": "展示 /models 返回的模型,并自动使用服务器保存的 API Key 进行鉴权。", "models_loading": "正在加载可用模型...", "models_empty": "未从 /models 获取到模型数据", "models_error": "获取模型列表失败", "models_count": "可用模型 {{count}} 个", - "version_check_title": "版本检查", - "version_check_desc": "调用 /latest-version 接口比对服务器版本,提示是否有可用更新。", - "version_current_label": "当前版本", - "version_latest_label": "最新版本", "version_check_button": "检查更新", - "version_check_idle": "点击检查更新", - "version_checking": "正在检查最新版本...", "version_update_available": "有新版本可用:{{version}}", "version_is_latest": "当前已是最新版本", "version_check_error": "检查更新失败", @@ -1373,50 +1225,8 @@ "clear_login_confirm": "确认清理本地登录信息并退出登录?" }, "notification": { - "debug_updated": "调试设置已更新", - "proxy_updated": "代理设置已更新", - "proxy_cleared": "代理设置已清空", - "retry_updated": "重试设置已更新", - "quota_switch_project_updated": "项目切换设置已更新", - "quota_switch_preview_updated": "预览模型切换设置已更新", - "logging_to_file_updated": "日志记录设置已更新", - "logs_max_total_size_updated": "日志容量设置已更新", "request_log_updated": "请求日志设置已更新", - "force_model_prefix_updated": "模型前缀设置已更新", - "ws_auth_updated": "WebSocket 鉴权设置已更新", - "routing_strategy_updated": "路由策略已更新", "login_storage_cleared": "本地登录信息已清理", - "api_key_added": "API密钥添加成功", - "api_key_updated": "API密钥更新成功", - "api_key_deleted": "API密钥删除成功", - "api_key_invalid_chars": "API密钥仅支持英文字母、数字和符号", - "gemini_key_added": "Gemini密钥添加成功", - "gemini_key_updated": "Gemini密钥更新成功", - "gemini_key_deleted": "Gemini密钥删除成功", - "gemini_multi_input_required": "请先输入至少一个Gemini密钥", - "gemini_multi_failed": "Gemini密钥批量添加失败", - "gemini_multi_summary": "Gemini批量添加完成:成功 {{success}},跳过 {{skipped}},失败 {{failed}}", - "codex_config_added": "Codex配置添加成功", - "codex_config_updated": "Codex配置更新成功", - "codex_config_deleted": "Codex配置删除成功", - "codex_base_url_required": "请填写Codex Base URL", - "claude_config_added": "Claude配置添加成功", - "claude_config_updated": "Claude配置更新成功", - "claude_config_deleted": "Claude配置删除成功", - "vertex_config_added": "Vertex配置添加成功", - "vertex_config_updated": "Vertex配置更新成功", - "vertex_config_deleted": "Vertex配置删除成功", - "config_enabled": "配置已启用", - "config_disabled": "配置已停用", - "field_required": "必填字段不能为空", - "openai_provider_required": "请填写提供商名称和Base URL", - "openai_provider_added": "OpenAI提供商添加成功", - "openai_provider_updated": "OpenAI提供商更新成功", - "openai_provider_deleted": "OpenAI提供商删除成功", - "openai_model_name_required": "请填写模型名称", - "openai_test_url_required": "请先填写有效的 Base URL 以进行测试", - "openai_test_key_required": "请至少填写一个 API 密钥以进行测试", - "openai_test_model_required": "请选择要测试的模型", "data_refreshed": "数据刷新成功", "connection_required": "请先建立连接", "refresh_failed": "刷新失败", @@ -1426,13 +1236,6 @@ "upload_failed": "上传失败", "download_failed": "下载失败", "login_failed": "登录失败", - "please_enter": "请输入", - "please_fill": "请填写", - "provider_name_url": "提供商名称和Base URL", - "api_key": "API密钥", - "gemini_api_key": "Gemini API密钥", - "codex_api_key": "Codex API密钥", - "claude_api_key": "Claude API密钥", "commercial_mode_restart_required": "商业模式开关已变更,请重启服务后生效", "copy_failed": "复制失败", "link_copied": "已复制" @@ -1449,8 +1252,6 @@ "light": "羊毛纸", "white": "纯白", "dark": "暗色", - "switch_to_light": "切换到羊毛纸模式", - "switch_to_dark": "切换到暗色模式", "auto": "跟随系统" }, "sidebar": { @@ -1460,16 +1261,14 @@ "footer": { "api_version": "CLI Proxy API 版本", "build_date": "构建时间", - "version": "管理中心版本", - "author": "作者" + "version": "管理中心版本" }, "providersPage": { "header": { "title": "AI 提供商", "activeResources": "{{active}}/{{total}} 个活跃资源", "providerFamilies": "{{count}} 个提供商家族", - "updatedAt": "更新于 {{time}}", - "issueCount": "{{count}} 个问题" + "updatedAt": "更新于 {{time}}" }, "actions": { "refresh": "刷新", @@ -1478,7 +1277,6 @@ "edit": "编辑", "view": "查看", "delete": "删除", - "clear": "清空", "cancel": "取消", "save": "保存", "create": "创建", @@ -1488,8 +1286,7 @@ "categories": { "title": "提供商", "quickFill": "快速填入", - "activeCount": "{{active}}/{{total}} 活跃", - "sponsors": "赞助商" + "activeCount": "{{active}}/{{total}} 活跃" }, "providerNames": { "gemini": "Gemini", @@ -1517,8 +1314,7 @@ "cloakTag": "Cloak", "empty": "尚未添加配置,点击右上角新建。", "filterPlaceholder": "搜索密钥、地址、前缀…", - "description": "在 {{route}} 下管理资源", - "providerIssue": "此提供商存在问题" + "description": "在 {{route}} 下管理资源" }, "sponsor": { "protocolSummary": "Anthropic / OpenAI / Gemini / Codex API (Responses)", @@ -1626,8 +1422,6 @@ "addModel": "添加模型", "headersSection": "请求头", "addHeader": "添加请求头", - "headers": "请求头", - "headersHint": "每行一条,格式 Key: Value", "excludedSection": "排除模型", "excludedHint": "每行一个模型名,匹配后将不会被路由到此提供商", "cloakSection": "Cloak 配置", @@ -1641,7 +1435,6 @@ "hideApiKey": "隐藏密钥", "disableCooling": "禁用冷却调度", "disableCoolingHint": "仅对当前凭据或提供商禁用失败后的冷却窗口", - "modelEntry": "模型 #{{index}}", "modelImage": "允许图片端点", "modelImageHint": "允许该模型用于 /v1/images/generations 和 /v1/images/edits", "showAllEntries": "显示全部({{count}})", diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index 19c41a3c..aef7bd33 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -57,7 +57,6 @@ "unsaved_changes_message": "你有未儲存的變更,離開後將遺失這些變更。確定要離開嗎?" }, "title": { - "main": "CLI Proxy API Management Center", "login": "CLI Proxy API Management Center", "abbr": "CPAMC" }, @@ -65,26 +64,18 @@ "title": "CLI Proxy API", "subtitle": "管理中心" }, - "auto_login": { - "title": "正在自動登入...", - "message": "正在使用本地儲存的連線資訊嘗試連線伺服器" - }, "login": { "subtitle": "請輸入連線資訊以存取管理介面", - "connection_title": "連線位址", "connection_current": "目前位址", "connection_auto_hint": "系統將自動使用目前存取位址進行連線", "custom_connection_label": "自訂連線位址:", "custom_connection_placeholder": "例如: https://example.com:8317", "custom_connection_hint": "預設使用目前存取位址,若需要可手動輸入其他位址。", - "use_current_address": "使用目前位址", "remember_password_label": "記住密碼", "management_key_label": "管理金鑰:", "management_key_placeholder": "請輸入管理金鑰", - "connect_button": "連線", "submit_button": "登入", "submitting": "連線中...", - "error_title": "登入失敗", "error_backend_detail": "後端返回", "error_required": "請填寫完整的連線資訊", "error_invalid": "連線失敗,請檢查服務位址、管理介面和管理金鑰", @@ -98,20 +89,14 @@ "error_ssl": "SSL/TLS 憑證驗證失敗" }, "header": { - "check_connection": "檢查連線", "refresh_all": "全部重新整理", "logout": "登出" }, "connection": { - "title": "連線資訊", - "server_address": "伺服器位址:", - "management_key": "管理金鑰:", "status": "連線狀態:" }, "nav": { "dashboard": "儀表板", - "basic_settings": "基本設定", - "api_keys": "API 金鑰", "quick_start": "快速開始", "ai_providers": "AI 供應商", "auth_files": "驗證檔案", @@ -144,10 +129,6 @@ "system_info": "運行與診斷資訊" }, "dashboard": { - "title": "儀表板", - "subtitle": "歡迎使用 CLI Proxy API 管理中心", - "openai_providers": "OpenAI 供應商", - "quick_actions": "快速操作", "current_config": "目前設定", "management_keys": "管理金鑰", "provider_keys_detail": "G:{{gemini}} C:{{codex}} Cl:{{claude}} V:{{vertex}} O:{{openai}}", @@ -171,61 +152,23 @@ "system_overview": "系統概覽" }, "basic_settings": { - "title": "基本設定", - "debug_title": "除錯模式", "debug_enable": "啟用除錯模式", - "proxy_title": "代理設定", "proxy_url_label": "代理 URL:", - "proxy_url_placeholder": "例如: socks5://user:pass@127.0.0.1:1080/", - "proxy_update": "更新", - "proxy_clear": "清空", - "retry_title": "請求重試", "retry_count_label": "重試次數:", - "retry_update": "更新", - "quota_title": "配額超出行為", - "quota_switch_project": "自動切換專案", - "quota_switch_preview": "切換到預覽模型", - "logging_title": "記錄", "logging_to_file_enable": "啟用記錄到檔案", - "logs_max_total_size_title": "記錄容量限制", - "logs_max_total_size_label": "記錄總大小上限(MB):", - "logs_max_total_size_hint": "設定為 0 表示不限制。", - "logs_max_total_size_update": "更新", "request_log_title": "請求記錄", "request_log_enable": "啟用請求記錄", "request_log_warning": "僅在需要排查問題時開啟,日常請保持關閉。", - "force_model_prefix_enable": "強制模型前綴", - "ws_auth_title": "WebSocket 驗證", "ws_auth_enable": "啟用 /ws/* 驗證", - "routing_title": "路由策略", - "routing_strategy_label": "路由策略:", - "routing_strategy_hint": "round-robin 為輪詢,fill-first 為優先填充。", - "routing_strategy_update": "更新", "routing_strategy_round_robin": "round-robin(輪詢)", "routing_strategy_fill_first": "fill-first(優先填充)" }, - "api_keys": { - "title": "API 金鑰管理", - "proxy_auth_title": "代理服務驗證金鑰", - "add_button": "新增金鑰", - "empty_title": "暫無 API 金鑰", - "empty_desc": "點擊上方按鈕新增第一個金鑰", - "item_title": "API 金鑰", - "add_modal_title": "新增 API 金鑰", - "add_modal_key_label": "API 金鑰:", - "add_modal_key_placeholder": "請輸入 API 金鑰", - "edit_modal_title": "編輯 API 金鑰", - "edit_modal_key_label": "API 金鑰:", - "delete_confirm": "確定要刪除這個 API 金鑰嗎?" - }, "auth_files": { "title": "驗證檔案管理", "title_section": "驗證檔案", "description": "這裡集中管理 CLI Proxy 支援的所有 JSON 驗證檔案(如 Qwen、Gemini、Vertex 等),上傳後即可在執行時啟用對應的 AI 服務。", "upload_button": "上傳檔案", "delete_all_button": "刪除全部", - "empty_title": "暫無驗證檔案", - "empty_desc": "點擊上方按鈕上傳第一個檔案", "search_empty_title": "沒有符合的設定檔", "search_empty_desc": "請調整篩選條件或清空搜尋關鍵字再試一次。", "file_size": "大小", @@ -234,11 +177,6 @@ "health_status_healthy": "健康", "health_status_warning": "警告", "health_status_disabled": "已停用", - "health_status_unknown": "未知", - "health_status_no_message": "暫無狀態說明", - "last_refresh_label": "最近重新整理", - "refresh_not_available": "暫無", - "refresh_just_now": "剛剛", "download_button": "下載", "delete_button": "刪除", "delete_confirm": "確定要刪除檔案", @@ -268,7 +206,6 @@ "delete_filtered_result_success": "成功刪除 {{count}} 個篩選結果中的驗證檔案", "delete_filtered_result_partial": "篩選結果刪除完成,成功 {{success}} 個,失敗 {{failed}} 個", "delete_filtered_result_none": "目前篩選結果中沒有可刪除的驗證檔案", - "files_count": "個檔案", "pagination_prev": "上一頁", "pagination_next": "下一頁", "pagination_info": "第 {{current}} / {{total}} 頁 · 共 {{count}} 個檔案", @@ -279,8 +216,6 @@ "problem_filter_enabled": "啟用", "problem_filter_problem": "問題", "problem_filter_disabled": "停用", - "problem_filter_only": "僅顯示有問題憑證", - "disabled_filter_only": "僅顯示已停用憑證", "display_options_label": "顯示選項", "compact_mode_label": "簡略模式", "sort_label": "排序", @@ -289,7 +224,6 @@ "sort_priority": "優先順序", "priority_display": "優先順序", "page_size_label": "單頁數量", - "page_size_unit": "個/頁", "view_mode_paged": "分頁顯示", "view_mode_all": "顯示全部", "too_many_files_warning": "您的憑證總數過多,全部載入會導致頁面卡頓,請保持分頁瀏覽。", @@ -306,18 +240,6 @@ "filter_vertex": "Vertex", "filter_empty": "空檔案", "filter_unknown": "其他", - "type_qwen": "Qwen", - "type_gemini": "Gemini", - "type_kimi": "Kimi", - "type_aistudio": "AIStudio", - "type_claude": "Claude", - "type_codex": "Codex", - "type_antigravity": "Antigravity", - "type_xai": "xAI", - "type_iflow": "iFlow", - "type_vertex": "Vertex", - "type_empty": "空檔案", - "type_unknown": "其他", "type_virtual": "虛擬驗證檔案", "models_button": "模型", "models_title": "支援的模型", @@ -354,21 +276,12 @@ "prefix_proxy_invalid_content_label": "下載內容(已截斷)", "prefix_label": "前綴(prefix)", "proxy_url_label": "代理 URL(proxy_url)", - "prefix_placeholder": "", "proxy_url_placeholder": "socks5://username:password@proxy_ip:port/", "priority_label": "優先順序(priority)", "priority_placeholder": "例如: 10 或 -1", "priority_hint": "僅支援整數;無效值會被忽略。數值越大優先順序越高。", "websockets_label": "WebSockets(websockets)", "websockets_hint": "為該憑證開啟 Responses API 的 websocket 傳輸。", - "codex_websockets_label": "WebSockets(websockets)", - "codex_websockets_hint": "為該 Codex 憑證開啟 Responses API 的 websocket 傳輸。", - "excluded_models_label": "排除模型(excluded_models)", - "excluded_models_placeholder": "用逗號或換行分隔,例如: model-a, gpt-5-*, *-preview", - "excluded_models_hint": "儲存為陣列;會自動 trim、小寫、去重並排序。", - "disable_cooling_label": "停用冷卻(disable_cooling)", - "disable_cooling_placeholder": "例如: true / false / 1 / 0", - "disable_cooling_hint": "支援布林值、0/非0 數字或字串 true/false/1/0;無法解析時忽略。", "note_label": "備註(note)", "note_placeholder": "輸入備註資訊,例如:張三的帳號", "note_hint": "選填,用於標記憑證用途或歸屬;留空則不寫入。", @@ -388,13 +301,6 @@ "quota_refresh_failed": "重新整理「{{name}}」的配額失敗:{{message}}" }, "antigravity_subscription": { - "subscription_label": "訂閱", - "plan_badge": "方案 {{plan}}", - "loading_short": "方案...", - "error_badge": "方案錯誤", - "load_failed": "訂閱狀態取得失敗:{{message}}", - "missing_auth_index": "驗證檔案缺少 auth_index", - "empty_data": "暫無訂閱資料", "plan_unknown": "未知", "plan_free": "免費版", "plan_pro": "Pro", @@ -559,10 +465,7 @@ "add": "新增停用", "add_title": "新增供應商模型停用", "edit_title": "編輯 {{provider}} 的模型停用", - "refresh": "重新整理", - "refreshing": "重新整理中...", "provider_label": "供應商", - "provider_auto": "跟隨目前篩選", "provider_placeholder": "例如 codex / openai", "provider_hint": "預設選取目前篩選的供應商,也可直接輸入或選擇其他名稱。", "models_label": "停用的模型", @@ -571,23 +474,16 @@ "models_loaded": "已載入 {{count}} 個模型,勾選要停用的模型。", "no_models_available": "該供應商暫無可用模型清單。", "save": "儲存/更新", - "saving": "正在儲存...", "save_success": "模型停用已更新", "save_failed": "更新模型停用失敗", "delete": "刪除供應商", "delete_confirm": "確定要刪除 {{provider}} 的模型停用嗎?", "delete_success": "已刪除該供應商的模型停用", "delete_failed": "刪除模型停用失敗", - "deleting": "正在刪除...", "no_models": "未設定停用模型", "model_count": "停用 {{count}} 個模型", "list_empty_all": "暫無任何供應商的模型停用,點擊「新增停用」建立。", - "list_empty_filtered": "目前篩選下沒有停用項,點擊「新增停用」新增。", - "disconnected": "請先連線伺服器以查看模型停用", - "load_failed": "載入模型停用失敗", "provider_required": "請先填寫供應商名稱", - "scope_all": "目前範圍:全域(顯示所有供應商)", - "scope_provider": "目前範圍:{{provider}}", "upgrade_required": "目前 CPA 版本不支援 OAuth 模型停用,請升級 CPA 版本", "upgrade_required_title": "需要升級 CPA 版本", "upgrade_required_desc": "目前伺服器版本不支援取得 OAuth 模型停用功能,請升級到最新版本的 CPA(CLI Proxy API)後重試。" @@ -647,7 +543,6 @@ "diagram_settings_source_title": "來源模型設定", "diagram_settings_empty": "該別名暫無映射。", "diagram_tap_hint": "觸控設備上:先點選來源模型,再點選別名即可建立映射。", - "view_mode": "檢視模式", "view_mode_diagram": "概覽", "view_mode_list": "管理", "provider_required": "請先填寫供應商名稱", @@ -787,12 +682,6 @@ "failure_short": "✗", "no_requests": "無請求" }, - "service_health": { - "title": "服務健康監測", - "window": "最近 7 天", - "oldest": "最早", - "newest": "最新" - }, "logs": { "title": "記錄檢視", "runtime_unknown": "目前執行端:識別中", @@ -803,7 +692,6 @@ "fullscreen_button": "全螢幕顯示", "exit_fullscreen_button": "退出全螢幕", "download_button": "下載記錄", - "error_log_button": "選擇錯誤記錄", "error_logs_modal_title": "錯誤請求記錄", "error_logs_description": "請選擇要開啟或下載的錯誤請求記錄檔案(僅在關閉請求記錄時產生)。", "error_logs_home_unavailable": "Home 模式下請在記錄內容頁查看資料庫記錄,錯誤請求記錄清單僅適用於 CPA 檔案記錄。", @@ -838,8 +726,6 @@ "clear_success": "記錄已清空", "download_success": "記錄下載成功", "auto_refresh": "自動重新整理", - "auto_refresh_enabled": "自動重新整理已開啟", - "auto_refresh_disabled": "自動重新整理已關閉", "load_more_hint": "向上滾動載入更多", "hidden_lines": "已隱藏 {{count}} 行", "loaded_lines": "已載入 {{count}} 行", @@ -865,20 +751,13 @@ "search_empty_desc": "嘗試更換關鍵字或清空篩選條件。", "double_click_copy_hint": "雙擊複製記錄原文", "copy_success": "已複製記錄原文", - "copy_failed": "複製失敗", - "lines": "行", - "removed": "已篩選", - "upgrade_required_title": "需要升級 CLI Proxy API", - "upgrade_required_desc": "目前伺服器版本不支援記錄檢視功能,請升級到最新版本的 CLI Proxy API 以使用此功能。" + "copy_failed": "複製失敗" }, "config_management": { "title": "設定面板", - "editor_title": "設定檔", "reload": "重新載入", "reload_confirm_message": "重新載入將捨棄你目前未儲存的修改,確定繼續嗎?", "save": "儲存", - "description": "透過視覺化或原始檔方式編輯 config.yaml 設定檔", - "status_idle": "等待操作", "status_loading": "載入設定中...", "status_loading_short": "載入中", "status_loaded": "設定已載入", @@ -891,10 +770,7 @@ "status_load_failed_short": "失敗", "status_saving": "正在儲存設定...", "status_saving_short": "儲存中", - "status_saved": "設定儲存完成", - "status_save_failed": "儲存失敗", "save_success": "設定已儲存", - "error_yaml_not_supported": "伺服器未回傳 YAML 格式,請確認 /config.yaml 介面可用", "visual_mode_unavailable": "YAML 語法修復前無法使用視覺化編輯", "visual_mode_unavailable_short": "YAML 錯誤", "validation_blocked_short": "待修復", @@ -909,8 +785,6 @@ "search_next": "下一個", "diff": { "title": "確認變更", - "current": "目前設定", - "modified": "修改後", "confirm": "確認儲存", "no_changes": "未偵測到變更" }, @@ -1200,10 +1074,7 @@ "quota_management": { "title": "配額管理", "description": "集中查看 OAuth 配額與剩餘情況", - "refresh_files": "重新整理驗證檔案", - "refresh_files_and_quota": "重新整理驗證檔案&配額", - "refresh_all_credentials": "重新整理全部憑證", - "card_idle_hint": "請使用頂部「重新整理全部憑證」按鈕取得最新配額。" + "refresh_all_credentials": "重新整理全部憑證" }, "plugin_management": { "title": "插件管理", @@ -1231,11 +1102,7 @@ "oauth": "OAuth", "status_effective": "生效中", "status_inactive": "未生效", - "version_label": "版本", - "author_label": "作者", - "path_label": "路徑", "edit_config": "編輯設定", - "open_resource": "開啟資源", "open_repository": "開啟倉庫", "config_title": "設定 {{name}}", "base_settings": "基礎設定", @@ -1347,7 +1214,6 @@ "gate_step3_hint": "請輸入上方顯示的完整識別碼以啟用安裝。" }, "plugin_resource": { - "title": "插件頁面", "page_count": "{{count}} 個頁面", "load_failed": "載入插件頁面失敗", "unavailable": "插件頁面不可用", @@ -1359,27 +1225,13 @@ "system_info": { "title": "管理中心資訊", "about_title": "CLI Proxy API Management Center", - "connection_status_title": "連線狀態", - "api_status_label": "API 狀態:", - "config_status_label": "設定狀態:", - "last_update_label": "最後更新:", - "cache_data": "快取資料", - "real_time_data": "即時資料", - "not_loaded": "未載入", - "seconds_ago": "秒前", "models_title": "可用模型清單", "models_desc": "展示 /models 回傳的模型,並自動使用伺服器儲存的 API Key 進行驗證。", "models_loading": "正在載入可用模型...", "models_empty": "未從 /models 取得到模型資料", "models_error": "取得模型清單失敗", "models_count": "可用模型 {{count}} 個", - "version_check_title": "版本檢查", - "version_check_desc": "呼叫 /latest-version 介面比對伺服器版本,提示是否有可用更新。", - "version_current_label": "目前版本", - "version_latest_label": "最新版本", "version_check_button": "檢查更新", - "version_check_idle": "點擊檢查更新", - "version_checking": "正在檢查最新版本...", "version_update_available": "有新版本可用:{{version}}", "version_is_latest": "目前已是最新版本", "version_check_error": "檢查更新失敗", @@ -1399,50 +1251,8 @@ "clear_login_confirm": "確認清理本地登入資訊並登出?" }, "notification": { - "debug_updated": "除錯設定已更新", - "proxy_updated": "代理設定已更新", - "proxy_cleared": "代理設定已清空", - "retry_updated": "重試設定已更新", - "quota_switch_project_updated": "專案切換設定已更新", - "quota_switch_preview_updated": "預覽模型切換設定已更新", - "logging_to_file_updated": "記錄設定已更新", - "logs_max_total_size_updated": "記錄容量設定已更新", "request_log_updated": "請求記錄設定已更新", - "force_model_prefix_updated": "模型前綴設定已更新", - "ws_auth_updated": "WebSocket 驗證設定已更新", - "routing_strategy_updated": "路由策略已更新", "login_storage_cleared": "本地登入資訊已清理", - "api_key_added": "API 金鑰新增成功", - "api_key_updated": "API 金鑰更新成功", - "api_key_deleted": "API 金鑰刪除成功", - "api_key_invalid_chars": "API 金鑰僅支援英文字母、數字和符號", - "gemini_key_added": "Gemini 金鑰新增成功", - "gemini_key_updated": "Gemini 金鑰更新成功", - "gemini_key_deleted": "Gemini 金鑰刪除成功", - "gemini_multi_input_required": "請先輸入至少一個 Gemini 金鑰", - "gemini_multi_failed": "Gemini 金鑰批次新增失敗", - "gemini_multi_summary": "Gemini 批次新增完成:成功 {{success}},跳過 {{skipped}},失敗 {{failed}}", - "codex_config_added": "Codex 設定新增成功", - "codex_config_updated": "Codex 設定更新成功", - "codex_config_deleted": "Codex 設定刪除成功", - "codex_base_url_required": "請填寫 Codex Base URL", - "claude_config_added": "Claude 設定新增成功", - "claude_config_updated": "Claude 設定更新成功", - "claude_config_deleted": "Claude 設定刪除成功", - "vertex_config_added": "Vertex 設定新增成功", - "vertex_config_updated": "Vertex 設定更新成功", - "vertex_config_deleted": "Vertex 設定刪除成功", - "config_enabled": "設定已啟用", - "config_disabled": "設定已停用", - "field_required": "必填欄位不能為空", - "openai_provider_required": "請填寫供應商名稱和 Base URL", - "openai_provider_added": "OpenAI 供應商新增成功", - "openai_provider_updated": "OpenAI 供應商更新成功", - "openai_provider_deleted": "OpenAI 供應商刪除成功", - "openai_model_name_required": "請填寫模型名稱", - "openai_test_url_required": "請先填寫有效的 Base URL 以進行測試", - "openai_test_key_required": "請至少填寫一個 API 金鑰以進行測試", - "openai_test_model_required": "請選擇要測試的模型", "data_refreshed": "資料重新整理成功", "connection_required": "請先建立連線", "refresh_failed": "重新整理失敗", @@ -1452,13 +1262,6 @@ "upload_failed": "上傳失敗", "download_failed": "下載失敗", "login_failed": "登入失敗", - "please_enter": "請輸入", - "please_fill": "請填寫", - "provider_name_url": "供應商名稱和 Base URL", - "api_key": "API 金鑰", - "gemini_api_key": "Gemini API 金鑰", - "codex_api_key": "Codex API 金鑰", - "claude_api_key": "Claude API 金鑰", "commercial_mode_restart_required": "商業模式開關已變更,請重啟服務後生效", "copy_failed": "複製失敗", "link_copied": "已複製" @@ -1475,8 +1278,6 @@ "light": "羊毛紙", "white": "純白", "dark": "深色", - "switch_to_light": "切換到羊毛紙模式", - "switch_to_dark": "切換到深色模式", "auto": "跟隨系統" }, "sidebar": { @@ -1486,16 +1287,14 @@ "footer": { "api_version": "CLI Proxy API 版本", "build_date": "建置時間", - "version": "管理中心版本", - "author": "作者" + "version": "管理中心版本" }, "providersPage": { "header": { "title": "AI 提供商", "activeResources": "{{active}}/{{total}} 個活躍資源", "providerFamilies": "{{count}} 個提供商家族", - "updatedAt": "更新於 {{time}}", - "issueCount": "{{count}} 個問題" + "updatedAt": "更新於 {{time}}" }, "actions": { "refresh": "重新整理", @@ -1504,7 +1303,6 @@ "edit": "編輯", "view": "檢視", "delete": "刪除", - "clear": "清空", "cancel": "取消", "save": "儲存", "create": "建立", @@ -1514,8 +1312,7 @@ "categories": { "title": "提供商", "quickFill": "快速填入", - "activeCount": "{{active}}/{{total}} 活躍", - "sponsors": "贊助商" + "activeCount": "{{active}}/{{total}} 活躍" }, "providerNames": { "gemini": "Gemini", @@ -1543,8 +1340,7 @@ "cloakTag": "Cloak", "empty": "尚未新增設定,點擊右上角新增。", "filterPlaceholder": "搜尋金鑰、位址、前綴…", - "description": "在 {{route}} 下管理資源", - "providerIssue": "此提供商存在問題" + "description": "在 {{route}} 下管理資源" }, "sponsor": { "protocolSummary": "Anthropic / OpenAI / Gemini / Codex API (Responses)", @@ -1652,8 +1448,6 @@ "addModel": "新增模型", "headersSection": "請求標頭", "addHeader": "新增請求標頭", - "headers": "請求標頭", - "headersHint": "每行一條,格式 Key: Value", "excludedSection": "排除模型", "excludedHint": "每行一個模型名稱,匹配後將不會被路由到此提供商", "cloakSection": "Cloak 設定", @@ -1667,7 +1461,6 @@ "hideApiKey": "隱藏金鑰", "disableCooling": "停用冷卻調度", "disableCoolingHint": "僅對目前憑證或提供商停用失敗後的冷卻視窗", - "modelEntry": "模型 #{{index}}", "modelImage": "允許圖片端點", "modelImageHint": "允許該模型用於 /v1/images/generations 和 /v1/images/edits", "showAllEntries": "顯示全部({{count}})",