fix: 修复重复键

This commit is contained in:
Wangnov
2025-09-11 18:02:59 +08:00
parent d5b9f809b0
commit 8522d20cad
3 changed files with 74 additions and 357 deletions

View File

@@ -62,6 +62,30 @@ export default {
info: 'Information'
}
},
errors: {
loadDashboardFailed: 'Failed to load dashboard data',
loadUsageTrendFailed: 'Failed to load usage trend',
loadModelStatsFailed: 'Failed to load model statistics',
loadApiKeysTrendFailed: 'Failed to load API Keys trend',
createClaudeConsoleAccountFailed: 'Failed to create Claude Console account',
createAzureOpenAIAccountFailed: 'Failed to create Azure OpenAI account',
updateClaudeConsoleAccountFailed: 'Failed to update Claude Console account',
updateAzureOpenAIAccountFailed: 'Failed to update Azure OpenAI account',
generateSetupTokenUrlFailed: 'Failed to generate Setup Token URL',
exchangeSetupTokenFailed: 'Failed to exchange Setup Token authorization code',
allApiKeysInvalid: 'All API Keys are invalid',
loadOemSettingsFailed: 'Failed to load OEM settings',
getApiKeyStatsFailed: 'Failed to get API Key statistics',
getTagsFailed: 'Failed to get tags',
requestFailed: 'Request failed: {status}',
loadSupportedClientsFailed: 'Failed to load supported clients'
},
system: {
status: {
normal: 'Normal',
abnormal: 'Abnormal'
}
},
confirmDialog: {
confirm: 'Confirm',
cancel: 'Cancel'
@@ -131,10 +155,6 @@ export default {
minutesAgo: '{minutes} minutes ago',
hoursAgo: '{hours} hours ago',
daysAgo: '{days} days ago'
},
errors: {
requestFailed: 'Request failed: {status}',
loadSupportedClientsFailed: 'Failed to load supported clients'
}
},
language: {
@@ -221,7 +241,6 @@ export default {
apiKeyInfo: 'API Key Information',
queryKeysCount: 'Query Keys Count',
activeKeysCount: 'Active Keys Count',
invalidKeysCount: 'Invalid Keys Count',
totalRequests: 'Total Requests',
totalTokens: 'Total Tokens',
totalCost: 'Total Cost',
@@ -237,7 +256,6 @@ export default {
modelUsageStats: 'Model Usage Statistics',
loadingModelStats: 'Loading model statistics...',
requestCount: ' requests',
totalCost: 'Total Cost',
inputTokens: 'Input Tokens',
outputTokens: 'Output Tokens',
cacheCreateTokens: 'Cache Create',
@@ -2436,12 +2454,6 @@ export default {
// Manual Token Input Section
manualTokenInput: 'Manual Token Input',
manualTokenClaudeDescription:
'Please enter valid Claude Access Token. If you have Refresh Token, it is recommended to fill both for automatic refresh support.',
manualTokenGeminiDescription:
'Please enter valid Gemini Access Token. If you have Refresh Token, it is recommended to fill both for automatic refresh support.',
manualTokenOpenAIDescription:
'Please enter valid OpenAI Access Token. If you have Refresh Token, it is recommended to fill both for automatic refresh support.',
getAccessTokenMethod: 'Methods to get Access Token:',
claudeCredentialsPath: 'Please get from logged-in Claude Code machine',
geminiCredentialsPath: 'Please get from logged-in Gemini CLI machine',
@@ -2451,18 +2463,11 @@ export default {
'credentials from file, do not use keys from Claude official API Keys page.',
refreshTokenWarning:
'💡 If Refresh Token is not filled, Token needs manual update after expiration.',
accessTokenOptional: 'Access Token (Optional)',
accessTokenOptionalPlaceholder:
'Optional: If not filled, system will automatically obtain through Refresh Token...',
accessTokenOptionalInfo:
'Access Token is optional. If not provided, system will automatically obtain through Refresh Token.',
accessTokenRequired: 'Access Token *',
accessTokenRequiredPlaceholder: 'Please enter Access Token...',
refreshTokenRequired: 'Refresh Token *',
refreshTokenRequiredPlaceholder: 'Please enter Refresh Token (required)...',
refreshTokenRequiredInfo:
'System will use Refresh Token to automatically obtain Access Token and user information',
refreshTokenOptional: 'Refresh Token (Optional)',
refreshTokenOptionalPlaceholder: 'Please enter Refresh Token...',
// Priority Settings
@@ -2471,35 +2476,11 @@ export default {
prioritySchedulingTitle: 'Scheduling Priority (1-100)',
priorityEditPlaceholder: 'Lower number = higher priority',
// Gemini Project ID
projectIdOptional: 'Project ID (Optional)',
projectIdPlaceholder: 'e.g., verdant-wares-464411-k9',
projectIdDescription: 'Google Cloud/Workspace accounts may require Project ID',
// Claude Subscription Type and Advanced Options
subscriptionType: 'Subscription Type',
claudeMaxSubscription: 'Claude Max',
claudeProSubscription: 'Claude Pro',
claudeProLimitation: 'Pro accounts do not support Claude Opus 4 model',
autoStopOnWarning: 'Auto-stop scheduling when approaching 5-hour limit',
autoStopOnWarningDescription:
'When system detects account approaching 5-hour usage limit, automatically pause scheduling for this account. Will resume automatically when entering new time window.',
useUnifiedUserAgent: 'Use unified Claude Code version',
useUnifiedUserAgentDescription:
'When enabled, will use unified User-Agent captured from real Claude Code client, improving compatibility',
currentUnifiedVersion: 'Current unified version:',
clearCache: 'Clear Cache',
clearing: 'Clearing...',
waitingForCapture: 'Waiting to capture User-Agent from Claude Code client',
captureHint:
'💡 Hint: If unable to capture for long time, please confirm Claude Code client is using this account, or contact developer to check if User-Agent format has changed',
useUnifiedClientId: 'Use unified client identifier',
useUnifiedClientIdDescription:
'When enabled, will use fixed client identifier, making all requests appear to come from same client, reducing characteristics',
clientIdLabel: 'Client Identifier ID',
regenerateClientId: 'Regenerate',
clientIdDescription:
'This ID will replace user_id client part in requests, preserving session part for sticky sessions',
// Edit Mode Fields
accountNameEdit: 'Account Name',
@@ -2507,7 +2488,6 @@ export default {
descriptionOptionalEdit: 'Description (Optional)',
descriptionOptionalEditPlaceholder: 'Account usage description...',
accountTypeEdit: 'Account Type',
selectGroupRequired: 'Select Group *',
noAvailableGroups: 'No available groups',
membersCount: ' members',
createNewGroup: 'Create New Group',
@@ -2516,32 +2496,14 @@ export default {
bedrockCredentials: 'Credentials Configuration',
bedrockCredentialsDescription:
'Please fill in AWS access credentials for calling Amazon Bedrock service.',
awsAccessKeyId: 'AWS Access Key ID *',
awsAccessKeyIdPlaceholder: 'Please enter AWS Access Key ID...',
awsSecretAccessKey: 'AWS Secret Access Key *',
awsSecretAccessKeyPlaceholder: 'Please enter AWS Secret Access Key...',
sessionTokenOptional: 'Session Token (Optional)',
sessionTokenOptionalPlaceholder: 'Session token for temporary credentials...',
sessionTokenDescription:
'Only required when using temporary credentials (like STS generated credentials)',
awsRegion: 'AWS Region *',
awsRegionPlaceholder: 'Select AWS region...',
bedrockModelConfig: 'Model Configuration',
defaultModelLabel: 'Default Model',
defaultModelPlaceholder: 'e.g., anthropic.claude-3-5-sonnet-20240620-v1:0',
defaultModelDescription:
'Leave blank to use system default model. Supports inference profile ID or ARN',
smallFastModelLabel: 'Small Fast Model',
smallFastModelPlaceholder: 'e.g., anthropic.claude-3-haiku-20240307-v1:0',
smallFastModelDescription: 'Fast model for simple tasks, supports inference profile ID or ARN',
// Azure OpenAI Configuration
azureOpenAIConfig: 'Azure OpenAI Configuration',
azureOpenAIDescription:
'Please configure connection information and deployment details for Azure OpenAI service.',
azureEndpoint: 'Azure Endpoint *',
azureEndpointPlaceholder: 'e.g., https://your-resource.openai.azure.com/',
azureEndpointDescription: 'Endpoint URL for Azure OpenAI service',
azureApiKey: 'API Key *',
azureApiKeyPlaceholder: 'Please enter Azure OpenAI API Key...',
azureApiVersion: 'API Version',
@@ -2565,7 +2527,6 @@ export default {
modelMappingFromPlaceholder: 'e.g., claude-3-5-sonnet-20241022',
modelMappingTo: 'Actual Model',
modelMappingToPlaceholder: 'e.g., claude-3-5-sonnet-latest',
addModelMapping: 'Add Mapping',
removeMapping: 'Remove',
presetMappings: 'Preset Mappings',
modelMappingExample: 'Example: claude-3-5-sonnet-20241022 → claude-3-5-sonnet-latest',
@@ -2579,11 +2540,7 @@ export default {
setupTokenStep1Description:
'System will generate a dedicated authorization link for obtaining temporary authorization code.',
setupTokenStep2: 'Step 2: Complete Authorization',
setupTokenStep2Description:
'Open authorization link in new window, log in with your Claude account and complete authorization.',
setupTokenStep3: 'Step 3: Enter Authorization Code',
setupTokenStep3Description:
'After successful authorization, system will display authorization code, please copy and paste into input box below.',
setupTokenUrlGenerated: 'Authorization link generated',
setupTokenOpenInBrowser: 'Open in browser',
setupTokenCopyLink: 'Copy link',
@@ -2611,16 +2568,9 @@ export default {
// Rate Limiting and Quota Management
rateLimitSettings: 'Rate Limit Settings',
enableRateLimit: 'Enable rate limiting',
rateLimitDuration: 'Rate limit duration (seconds)',
rateLimitDurationPlaceholder: 'e.g., 60',
rateLimitDescription:
'When enabled, will limit request frequency to prevent account being blocked',
quotaManagement: 'Quota Management',
dailyQuotaLabel: 'Daily quota limit',
dailyQuotaPlaceholder: '0 means unlimited',
quotaResetTimeLabel: 'Quota reset time',
quotaResetTimePlaceholder: 'e.g., 00:00',
quotaResetDescription: 'Time point when daily quota resets',
currentDailyUsage: 'Today used',
@@ -2628,7 +2578,6 @@ export default {
advancedSettings: 'Advanced Settings',
customUserAgent: 'Custom User-Agent',
customUserAgentPlaceholder: 'Leave blank to use default User-Agent...',
userAgentDescription: 'User-Agent identifier for requests',
// General Hints and Status
notSet: 'Not set',
@@ -2669,7 +2618,6 @@ export default {
'Tip: If your account is a regular personal account (not bound to Google Cloud), please leave this field empty.',
// AWS Region Reference
awsRegionReference: 'Common AWS regions reference:',
awsRegionEastUS: 'us-east-1 (US East)',
awsRegionWestUS: 'us-west-2 (US West)',
awsRegionEuropeIreland: 'eu-west-1 (Europe Ireland)',
@@ -2689,7 +2637,6 @@ export default {
azureModelSelectionDesc: 'Select model types supported by this deployment',
// Rate Limiting
rateLimitMechanism: 'Rate limiting mechanism',
enableRateLimitMechanism: 'Enable rate limiting mechanism',
rateLimitDescription2:
'When enabled, will pause scheduling for some time when account returns 429 error',
@@ -2699,34 +2646,22 @@ export default {
// Claude Console Specific Fields
claudeConsoleFields: 'Claude Console specific fields',
quotaManagement: 'Quota management',
modelMappingTable: 'Model mapping table',
modelMappingTableOptional: 'Model mapping table (optional)',
addModelMapping: 'Add model mapping',
// Claude Subscription Type
subscriptionType: 'Subscription type',
// Setup Token Auth
setupTokenAuth: 'Setup Token authorization',
claudeSetupTokenAuth: 'Claude Setup Token authorization',
setupTokenAuthSteps:
'Please follow these steps to complete Claude account authorization through Setup Token:',
generateSetupTokenLink: 'Generate Setup Token auth link',
generating: 'Generating...',
// Buttons and actions
verifying: 'Verifying...',
completeAuth: 'Complete authorization',
updating: 'Updating...',
update: 'Update',
// Error messages
generateSetupTokenFailed: 'Failed to generate Setup Token auth link',
copyFailed: 'Copy failed, please copy manually',
setupTokenAuthFailed:
'Setup Token authorization failed, please check if the authorization code is correct',
accountCreationFailed: 'Account creation failed',
accountCreationError: 'Account creation failed:',
// Page structure comments
@@ -2741,29 +2676,18 @@ export default {
// Validation messages
nameRequired: 'Please enter account name',
apiUrlRequired: 'Please enter API URL',
rateLimitDefault60: 'Default 60 minutes',
rateLimitPauseDescription: 'Time to pause scheduling after account is rate limited (minutes)',
apiUrlPlaceholder: 'e.g., https://api.example.com',
apiKeyPlaceholder: 'Please enter API Key',
dailyQuotaLimit: 'Daily quota limit ($)',
quotaZeroUnlimited: '0 means unlimited',
dailyQuotaDescription: 'Set daily usage quota, 0 means unlimited',
quotaResetTime: 'Quota reset time',
quotaResetTimeDescription: 'Time to automatically reset quota daily',
modelMappingDescription:
'Leave empty to support all models without modifying requests. After configuring mapping, left model will be recognized as supported model, right is the actual model sent.',
// Quota Management
quotaManagementFields: 'Quota management fields',
dailyQuotaLimitDollar: 'Daily quota limit ($)',
quotaZeroUnlimited: '0 means unlimited',
dailyQuotaDesc: 'Set daily usage quota, 0 means unlimited',
quotaResetTime: 'Quota reset time',
quotaResetTimeDesc: 'Time to automatically reset quota daily',
// Model Mapping
modelMappingOptional: 'Model mapping table (optional)',
modelMappingDesc:
'Leave empty to support all models without modifying requests. After configuring mapping, left model will be recognized as supported model, right is the actual model sent.',
originalModelName: 'Original model name',
@@ -2776,7 +2700,6 @@ export default {
// Claude Subscription Type
claudeSubscriptionType: 'Subscription type',
claudeProLimitation: 'Pro accounts do not support Claude Opus 4 model',
// Claude Advanced Options
claudeAutoStopScheduling: 'Auto-stop scheduling when approaching 5-hour limit',
@@ -2807,13 +2730,10 @@ export default {
setupTokenCopyTitle: 'Copy link',
// Step Indicators
stepIndicator: 'Step indicator',
step1BasicInfo: 'Step 1: Basic information and proxy settings',
step2OAuth: 'Step 2: OAuth authorization',
step2SetupToken: 'Step 2: Setup Token authorization',
// Group Selector
groupSelector: 'Group selector',
multiGroupInterface: 'Multi-group interface',
createNewGroupOption: 'Create new group option',
@@ -2823,15 +2743,12 @@ export default {
// Placeholder texts
originalModelNamePlaceholder: 'Original model name',
mappedModelNamePlaceholder: 'Mapped model name',
userAgentPlaceholder: 'Leave empty to pass through client User-Agent',
authCodePlaceholder: 'Paste Authorization Code obtained from Claude Code auth page...',
leaveEmptyNoUpdate: 'Leave empty for no update',
leaveEmptyNoUpdateKey: 'Leave empty for no API Key update',
leaveEmptyNoUpdateToken: 'Leave empty for no update...',
// Labels and descriptions
customUserAgentOptional: 'Custom User-Agent (optional)',
clientIdLabel: 'Client ID',
schedulePriorityLabel: 'Schedule Priority (1-100)',
attentionLabel: 'Attention:',
supportedModelsLabel: 'Supported Models',
@@ -2844,19 +2761,16 @@ export default {
previousStepBtn: 'Previous Step',
// Descriptive texts
claudeProLimitation: 'Pro accounts do not support Claude Opus 4 model',
claude5HourLimitDesc: 'Auto-stop scheduling when approaching 5-hour usage limit',
claude5HourLimitExplanation:
'When system detects account approaching 5-hour usage limit, automatically pause scheduling for this account. Will resume automatically when entering new time window.',
useUnifiedClaudeVersion: 'Use unified Claude Code version',
unifiedVersionDesc:
'When enabled, will use unified User-Agent captured from real Claude Code client, improving compatibility',
currentUnifiedVersion: '💡 Current unified version:',
waitingUserAgent: '⏳ Waiting to capture User-Agent from Claude Code client',
userAgentTip:
'💡 Tip: If unable to capture for a long time, please confirm that Claude Code client is using this account,',
contactDeveloper: 'or contact developer to check if User-Agent format has changed',
useUnifiedClientId: 'Use unified client identifier',
unifiedClientIdDesc:
'When enabled, will use fixed client identifier, making all requests appear from same client, reducing fingerprinting',
clientIdReplaceDesc:
@@ -2883,9 +2797,6 @@ export default {
awsRegionRef: 'Common AWS regions reference:',
// Error messages
apiKeyRequired: 'Please enter API Key',
refreshTokenRequired: 'Please enter Refresh Token',
accessTokenRequired: 'Please enter Access Token',
copyFailedManual: 'Copy failed, please copy manually',
// Form descriptions
@@ -2897,9 +2808,7 @@ export default {
// Basic labels
apiUrlLabel: 'API URL',
apiUrlRequired: 'API URL *',
apiKeyLabel: 'API Key',
apiKeyRequired: 'API Key *',
// More missing keys
copyLinkTooltip: 'Copy Link',

View File

@@ -62,6 +62,30 @@ export default {
info: '信息'
}
},
errors: {
loadDashboardFailed: '加载仪表板数据失败',
loadUsageTrendFailed: '加载使用趋势失败',
loadModelStatsFailed: '加载模型统计失败',
loadApiKeysTrendFailed: '加载API Keys趋势失败',
createClaudeConsoleAccountFailed: '创建Claude Console账户失败',
createAzureOpenAIAccountFailed: '创建Azure OpenAI账户失败',
updateClaudeConsoleAccountFailed: '更新Claude Console账户失败',
updateAzureOpenAIAccountFailed: '更新Azure OpenAI账户失败',
generateSetupTokenUrlFailed: '生成Setup Token URL失败',
exchangeSetupTokenFailed: '交换Setup Token授权码失败',
allApiKeysInvalid: '所有 API Key 都无效',
loadOemSettingsFailed: '加载OEM设置失败',
getApiKeyStatsFailed: '获取API Key统计失败',
getTagsFailed: '获取标签失败',
requestFailed: '请求失败: {status}',
loadSupportedClientsFailed: '加载支持的客户端失败'
},
system: {
status: {
normal: '正常',
abnormal: '异常'
}
},
confirmDialog: {
confirm: '确认',
cancel: '取消'
@@ -131,10 +155,6 @@ export default {
minutesAgo: '{minutes}分钟前',
hoursAgo: '{hours}小时前',
daysAgo: '{days}天前'
},
errors: {
requestFailed: '请求失败: {status}',
loadSupportedClientsFailed: '加载支持的客户端失败'
}
},
language: {
@@ -145,37 +165,6 @@ export default {
switch: '切换语言'
},
layout: {
tabBar: {
tabs: {
dashboard: {
name: '仪表板',
shortName: '仪表板'
},
apiKeys: {
name: 'API Keys',
shortName: 'API'
},
accounts: {
name: '账户管理',
shortName: '账户'
},
userManagement: {
name: '用户管理',
shortName: '用户'
},
tutorial: {
name: '使用教程',
shortName: '教程'
},
settings: {
name: '系统设置',
shortName: '设置'
}
}
}
},
header: {
adminPanel: '管理后台',
userMenu: '用户菜单',
@@ -253,7 +242,6 @@ export default {
apiKeyInfo: 'API Key 信息',
queryKeysCount: '查询 Keys 数',
activeKeysCount: '有效 Keys 数',
invalidKeysCount: '无效 Keys 数',
totalRequests: '总请求数',
totalTokens: '总 Token 数',
totalCost: '总费用',
@@ -269,7 +257,6 @@ export default {
modelUsageStats: '模型使用统计',
loadingModelStats: '加载模型统计数据中...',
requestCount: '次请求',
totalCost: '总费用',
inputTokens: '输入 Token',
outputTokens: '输出 Token',
cacheCreateTokens: '缓存创建',
@@ -2420,12 +2407,6 @@ export default {
// 手动 Token 输入部分
manualTokenInput: '手动输入 Token',
manualTokenClaudeDescription:
'请输入有效的 Claude Access Token。如果您有 Refresh Token建议也一并填写以支持自动刷新。',
manualTokenGeminiDescription:
'请输入有效的 Gemini Access Token。如果您有 Refresh Token建议也一并填写以支持自动刷新。',
manualTokenOpenAIDescription:
'请输入有效的 OpenAI Access Token。如果您有 Refresh Token建议也一并填写以支持自动刷新。',
getAccessTokenMethod: '获取 Access Token 的方法:',
claudeCredentialsPath: '请从已登录 Claude Code 的机器上获取',
geminiCredentialsPath: '请从已登录 Gemini CLI 的机器上获取',
@@ -2433,15 +2414,9 @@ export default {
'请从已登录 OpenAI 账户的机器上获取认证凭证,或通过 OAuth 授权流程获取 Access Token。',
claudeCredentialsWarning: '文件中的凭证,请勿使用 Claude 官网 API Keys 页面的密钥。',
refreshTokenWarning: '💡 如果未填写 Refresh TokenToken 过期后需要手动更新。',
accessTokenOptional: 'Access Token (可选)',
accessTokenOptionalPlaceholder: '可选:如果不填写,系统会自动通过 Refresh Token 获取...',
accessTokenOptionalInfo: 'Access Token 可选填。如果不提供,系统会通过 Refresh Token 自动获取。',
accessTokenRequired: 'Access Token *',
accessTokenRequiredPlaceholder: '请输入 Access Token...',
refreshTokenRequired: 'Refresh Token *',
refreshTokenRequiredPlaceholder: '请输入 Refresh Token必填...',
refreshTokenRequiredInfo: '系统将使用 Refresh Token 自动获取 Access Token 和用户信息',
refreshTokenOptional: 'Refresh Token (可选)',
refreshTokenOptionalPlaceholder: '请输入 Refresh Token...',
// 优先级设置
@@ -2450,34 +2425,11 @@ export default {
prioritySchedulingTitle: '调度优先级 (1-100)',
priorityEditPlaceholder: '数字越小优先级越高',
// Gemini 项目ID
projectIdOptional: '项目 ID (可选)',
projectIdPlaceholder: '例如verdant-wares-464411-k9',
projectIdDescription: 'Google Cloud/Workspace 账号可能需要提供项目 ID',
// Claude 订阅类型和高级选项
subscriptionType: '订阅类型',
claudeMaxSubscription: 'Claude Max',
claudeProSubscription: 'Claude Pro',
claudeProLimitation: 'Pro 账号不支持 Claude Opus 4 模型',
autoStopOnWarning: '5小时使用量接近限制时自动停止调度',
autoStopOnWarningDescription:
'当系统检测到账户接近5小时使用限制时自动暂停调度该账户。进入新的时间窗口后会自动恢复调度。',
useUnifiedUserAgent: '使用统一 Claude Code 版本',
useUnifiedUserAgentDescription:
'开启后将使用从真实 Claude Code 客户端捕获的统一 User-Agent提高兼容性',
currentUnifiedVersion: '当前统一版本:',
clearCache: '清除缓存',
clearing: '清除中...',
waitingForCapture: '等待从 Claude Code 客户端捕获 User-Agent',
captureHint:
'💡 提示:如果长时间未能捕获,请确认有 Claude Code 客户端正在使用此账户,或联系开发者检查 User-Agent 格式是否发生变化',
useUnifiedClientId: '使用统一的客户端标识',
useUnifiedClientIdDescription:
'开启后将使用固定的客户端标识,使所有请求看起来来自同一个客户端,减少特征',
clientIdLabel: '客户端标识 ID',
regenerateClientId: '重新生成',
clientIdDescription: '此ID将替换请求中的user_id客户端部分保留session部分用于粘性会话',
// 编辑模式字段
accountNameEdit: '账户名称',
@@ -2485,7 +2437,6 @@ export default {
descriptionOptionalEdit: '描述 (可选)',
descriptionOptionalEditPlaceholder: '账户用途说明...',
accountTypeEdit: '账户类型',
selectGroupRequired: '选择分组 *',
noAvailableGroups: '暂无可用分组',
membersCount: ' 个成员',
createNewGroup: '新建分组',
@@ -2493,29 +2444,14 @@ export default {
// AWS Bedrock 配置
bedrockCredentials: '凭证配置',
bedrockCredentialsDescription: '请填写 AWS 访问凭证,用于调用 Amazon Bedrock 服务。',
awsAccessKeyId: 'AWS Access Key ID *',
awsAccessKeyIdPlaceholder: '请输入 AWS 访问密钥 ID...',
awsSecretAccessKey: 'AWS Secret Access Key *',
awsSecretAccessKeyPlaceholder: '请输入 AWS 秘密访问密钥...',
sessionTokenOptional: 'Session Token (可选)',
sessionTokenOptionalPlaceholder: '临时凭证的会话令牌...',
sessionTokenDescription: '仅在使用临时凭证(如 STS 生成的凭证)时需要填写',
awsRegion: 'AWS 区域 *',
awsRegionPlaceholder: '选择 AWS 区域...',
bedrockModelConfig: '模型配置',
defaultModelLabel: '默认模型',
defaultModelPlaceholder: '例如anthropic.claude-3-5-sonnet-20240620-v1:0',
defaultModelDescription: '留空将使用系统默认模型。支持 inference profile ID 或 ARN',
smallFastModelLabel: '小型快速模型',
smallFastModelPlaceholder: '例如anthropic.claude-3-haiku-20240307-v1:0',
smallFastModelDescription: '用于简单任务的快速模型,支持 inference profile ID 或 ARN',
// Azure OpenAI 配置
azureOpenAIConfig: 'Azure OpenAI 配置',
azureOpenAIDescription: '请配置 Azure OpenAI 服务的连接信息和部署详情。',
azureEndpoint: 'Azure Endpoint *',
azureEndpointPlaceholder: '例如https://your-resource.openai.azure.com/',
azureEndpointDescription: 'Azure OpenAI 服务的端点 URL',
azureApiKey: 'API Key *',
azureApiKeyPlaceholder: '请输入 Azure OpenAI API Key...',
azureApiVersion: 'API 版本',
@@ -2538,7 +2474,6 @@ export default {
modelMappingFromPlaceholder: '例如claude-3-5-sonnet-20241022',
modelMappingTo: '实际模型',
modelMappingToPlaceholder: '例如claude-3-5-sonnet-latest',
addModelMapping: '添加映射',
removeMapping: '移除',
presetMappings: '预设映射',
modelMappingExample: '示例claude-3-5-sonnet-20241022 → claude-3-5-sonnet-latest',
@@ -2550,9 +2485,7 @@ export default {
setupTokenStep1: '步骤 1生成授权链接',
setupTokenStep1Description: '系统将生成一个专用的授权链接,用于获取临时授权码。',
setupTokenStep2: '步骤 2完成授权',
setupTokenStep2Description: '在新窗口中打开授权链接,使用您的 Claude 账户登录并完成授权。',
setupTokenStep3: '步骤 3输入授权码',
setupTokenStep3Description: '授权成功后,系统会显示授权码,请复制并粘贴到下方输入框。',
setupTokenUrlGenerated: '授权链接已生成',
setupTokenOpenInBrowser: '在浏览器中打开',
setupTokenCopyLink: '复制链接',
@@ -2577,15 +2510,9 @@ export default {
// 限流和配额管理
rateLimitSettings: '限流设置',
enableRateLimit: '启用速率限制',
rateLimitDuration: '限流时长 (秒)',
rateLimitDurationPlaceholder: '例如60',
rateLimitDescription: '启用后将限制请求频率,防止账户被封锁',
quotaManagement: '配额管理',
dailyQuotaLabel: '每日配额限制',
dailyQuotaPlaceholder: '0 表示不限制',
quotaResetTimeLabel: '配额重置时间',
quotaResetTimePlaceholder: '例如00:00',
quotaResetDescription: '每天配额重置的时间点',
currentDailyUsage: '今日已用',
@@ -2593,7 +2520,6 @@ export default {
advancedSettings: '高级设置',
customUserAgent: '自定义 User-Agent',
customUserAgentPlaceholder: '留空使用默认 User-Agent...',
userAgentDescription: '用于请求时的 User-Agent 标识',
// 通用提示和状态
notSet: '未设置',
@@ -2634,7 +2560,6 @@ export default {
'\u63d0示\uff1a如果您的账号是普通个人账号未绑定 Google Cloud请留空此字段。',
// AWS 区域参考
awsRegionReference: '常用 AWS 区域参考:',
awsRegionEastUS: 'us-east-1 (美国东部)',
awsRegionWestUS: 'us-west-2 (美国西部)',
awsRegionEuropeIreland: 'eu-west-1 (欧洲爱尔兰)',
@@ -2654,38 +2579,25 @@ export default {
azureModelSelectionDesc: '选择此部署支持的模型类型',
// 限流机制
rateLimitMechanism: '限流机制',
enableRateLimitMechanism: '启用限流机制',
rateLimitDescription2: '启用后当账号返回429错误时将暂停调度一段时间',
// Claude Console 特定字段
claudeConsoleFields: 'Claude Console 特定字段',
quotaManagement: '额度管理',
modelMappingTable: '模型映射表',
modelMappingTableOptional: '模型映射表 (可选)',
addModelMapping: '添加模型映射',
// Claude 订阅类型
subscriptionType: '订阅类型',
// Setup Token 授权
setupTokenAuth: 'Setup Token 授权',
claudeSetupTokenAuth: 'Claude Setup Token 授权',
setupTokenAuthSteps: '请按照以下步骤通过 Setup Token 完成 Claude 账户的授权:',
generateSetupTokenLink: '生成 Setup Token 授权链接',
generating: '生成中...',
// 按钮和操作
verifying: '验证中...',
completeAuth: '完成授权',
updating: '更新中...',
update: '更新',
// 错误消息
generateSetupTokenFailed: '生成Setup Token授权链接失败',
copyFailed: '复制失败,请手动复制',
setupTokenAuthFailed: 'Setup Token授权失败请检查授权码是否正确',
accountCreationFailed: '账户创建失败',
accountCreationError: '账户创建失败:',
// 页面结构注释
@@ -2700,18 +2612,10 @@ export default {
// 验证消息
nameRequired: '请填写账户名称',
apiUrlRequired: '请填写 API URL',
rateLimitDefault60: '默认60分钟',
rateLimitPauseDescription: '账号被限流后暂停调度的时间(分钟)',
apiUrlPlaceholder: '例如https://api.example.com',
apiKeyPlaceholder: '请输入API Key',
dailyQuotaLimit: '每日额度限制 ($)',
quotaZeroUnlimited: '0 表示不限制',
dailyQuotaDescription: '设置每日使用额度0 表示不限制',
quotaResetTime: '额度重置时间',
quotaResetTimeDescription: '每日自动重置额度的时间',
modelMappingDescription:
'留空表示支持所有模型且不修改请求。配置映射后,左侧模型会被识别为支持的模型,右侧是实际发送的模型。',
rateLimitDurationMinutes: '限流时间 (分钟)',
rateLimitDefaultMinutes: '默认60分钟',
rateLimitPauseDesc: '账号被限流后暂停调度的时间(分钟)',
@@ -2719,13 +2623,10 @@ export default {
// 额度管理
quotaManagementFields: '额度管理字段',
dailyQuotaLimitDollar: '每日额度限制 ($)',
quotaZeroUnlimited: '0 表示不限制',
dailyQuotaDesc: '设置每日使用额度0 表示不限制',
quotaResetTime: '额度重置时间',
quotaResetTimeDesc: '每日自动重置额度的时间',
// 模型映射
modelMappingOptional: '模型映射表 (可选)',
modelMappingDesc:
'留空表示支持所有模型且不修改请求。配置映射后,左侧模型会被识别为支持的模型,右侧是实际发送的模型。',
originalModelName: '原始模型名称',
@@ -2737,7 +2638,6 @@ export default {
// Claude 订阅类型
claudeSubscriptionType: '订阅类型',
claudeProLimitation: 'Pro 账号不支持 Claude Opus 4 模型',
// Claude 高级选项
claudeAutoStopScheduling: '5小时使用量接近限制时自动停止调度',
@@ -2765,13 +2665,10 @@ export default {
setupTokenCopyTitle: '复制链接',
// 步骤指示器
stepIndicator: '步骤指示器',
step1BasicInfo: '步骤1: 基本信息和代理设置',
step2OAuth: '步骤2: OAuth授权',
step2SetupToken: '步骤2: Setup Token授权',
// 分组选择器
groupSelector: '分组选择器',
multiGroupInterface: '多选分组界面',
createNewGroupOption: '新建分组选项',
@@ -2781,15 +2678,12 @@ export default {
// Placeholder 文本
originalModelNamePlaceholder: '原始模型名称',
mappedModelNamePlaceholder: '映射后的模型名称',
userAgentPlaceholder: '留空则透传客户端 User-Agent',
authCodePlaceholder: '粘贴从Claude Code授权页面获取的Authorization Code...',
leaveEmptyNoUpdate: '留空表示不更新',
leaveEmptyNoUpdateKey: '留空表示不更新 API Key',
leaveEmptyNoUpdateToken: '留空表示不更新...',
// 标签和描述
customUserAgentOptional: '自定义 User-Agent (可选)',
clientIdLabel: '客户端标识 ID',
schedulePriorityLabel: '调度优先级 (1-100)',
attentionLabel: '注意:',
supportedModelsLabel: '支持的模型',
@@ -2802,17 +2696,14 @@ export default {
previousStepBtn: '上一步',
// 描述性文本
claudeProLimitation: 'Pro 账号不支持 Claude Opus 4 模型',
claude5HourLimitDesc: '5小时使用量接近限制时自动停止调度',
claude5HourLimitExplanation:
'当系统检测到账户接近5小时使用限制时自动暂停调度该账户。进入新的时间窗口后会自动恢复调度。',
useUnifiedClaudeVersion: '使用统一 Claude Code 版本',
unifiedVersionDesc: '开启后将使用从真实 Claude Code 客户端捕获的统一 User-Agent提高兼容性',
currentUnifiedVersion: '💡 当前统一版本:',
waitingUserAgent: '⏳ 等待从 Claude Code 客户端捕获 User-Agent',
userAgentTip: '💡 提示:如果长时间未能捕获,请确认有 Claude Code 客户端正在使用此账户,',
contactDeveloper: '或联系开发者检查 User-Agent 格式是否发生变化',
useUnifiedClientId: '使用统一的客户端标识',
unifiedClientIdDesc: '开启后将使用固定的客户端标识,使所有请求看起来来自同一个客户端,减少特征',
clientIdReplaceDesc: '此ID将替换请求中的user_id客户端部分保留session部分用于粘性会话',
@@ -2834,8 +2725,6 @@ export default {
// Error messages
apiKeyRequiredError: '请填写 API Key',
refreshTokenRequired: '请填写 Refresh Token',
accessTokenRequired: '请填写 Access Token',
copyFailedManual: '复制失败,请手动复制',
// 表单描述
@@ -2846,9 +2735,7 @@ export default {
// 基础标签
apiUrlLabel: 'API URL',
apiUrlRequired: 'API URL *',
apiKeyLabel: 'API Key',
apiKeyRequired: 'API Key *',
// 更多缺失的翻译键
copyLinkTooltip: '复制链接',

View File

@@ -62,6 +62,30 @@ export default {
info: '資訊'
}
},
errors: {
loadDashboardFailed: '載入儀表板數據失敗',
loadUsageTrendFailed: '載入使用趨勢失敗',
loadModelStatsFailed: '載入模型統計失敗',
loadApiKeysTrendFailed: '載入API Keys趨勢失敗',
createClaudeConsoleAccountFailed: '建立Claude Console帳戶失敗',
createAzureOpenAIAccountFailed: '建立Azure OpenAI帳戶失敗',
updateClaudeConsoleAccountFailed: '更新Claude Console帳戶失敗',
updateAzureOpenAIAccountFailed: '更新Azure OpenAI帳戶失敗',
generateSetupTokenUrlFailed: '產生Setup Token URL失敗',
exchangeSetupTokenFailed: '交換Setup Token授權碼失敗',
allApiKeysInvalid: '所有 API Key 都無效',
loadOemSettingsFailed: '載入OEM設定失敗',
getApiKeyStatsFailed: '獲取API Key統計失敗',
getTagsFailed: '獲取標籤失敗',
requestFailed: '請求失敗: {status}',
loadSupportedClientsFailed: '載入支援的客戶端失敗'
},
system: {
status: {
normal: '正常',
abnormal: '異常'
}
},
confirmDialog: {
confirm: '確認',
cancel: '取消'
@@ -131,10 +155,6 @@ export default {
minutesAgo: '{minutes}分鐘前',
hoursAgo: '{hours}小時前',
daysAgo: '{days}天前'
},
errors: {
requestFailed: '請求失敗: {status}',
loadSupportedClientsFailed: '載入支援的客戶端失敗'
}
},
language: {
@@ -221,7 +241,6 @@ export default {
apiKeyInfo: 'API Key 資訊',
queryKeysCount: '查詢 Keys 數',
activeKeysCount: '有效 Keys 數',
invalidKeysCount: '無效 Keys 數',
totalRequests: '總請求數',
totalTokens: '總 Token 數',
totalCost: '總費用',
@@ -237,7 +256,6 @@ export default {
modelUsageStats: '模型使用統計',
loadingModelStats: '載入模型統計資料中...',
requestCount: '次請求',
totalCost: '總費用',
inputTokens: '輸入 Token',
outputTokens: '輸出 Token',
cacheCreateTokens: '快取建立',
@@ -2228,7 +2246,7 @@ export default {
rateLimitDurationDescription: '帳號被限流後暫停排程的時間(分鐘)',
// Claude 訂閱類型
subscriptionType: '訂閱類型',
subscriptionClaudeMax: 'Claude Max',
subscriptionClaudePro: 'Claude Pro',
claudeProLimitation: 'Pro 帳號不支援 Claude Opus 4 模型',
@@ -2391,12 +2409,6 @@ export default {
// 手動 Token 輸入部分
manualTokenInput: '手動輸入 Token',
manualTokenClaudeDescription:
'請輸入有效的 Claude Access Token。如果您有 Refresh Token建議也一併填寫以支援自動刷新。',
manualTokenGeminiDescription:
'請輸入有效的 Gemini Access Token。如果您有 Refresh Token建議也一併填寫以支援自動刷新。',
manualTokenOpenAIDescription:
'請輸入有效的 OpenAI Access Token。如果您有 Refresh Token建議也一併填寫以支援自動刷新。',
getAccessTokenMethod: '取得 Access Token 的方法:',
claudeCredentialsPath: '請從已登入 Claude Code 的機器上取得',
geminiCredentialsPath: '請從已登入 Gemini CLI 的機器上取得',
@@ -2404,15 +2416,9 @@ export default {
'請從已登入 OpenAI 帳戶的機器上取得認證憑證,或透過 OAuth 授權流程取得 Access Token。',
claudeCredentialsWarning: '檔案中的憑證,請勿使用 Claude 官網 API Keys 頁面的金鑰。',
refreshTokenWarning: '💡 如果未填寫 Refresh TokenToken 過期後需要手動更新。',
accessTokenOptional: 'Access Token (可選)',
accessTokenOptionalPlaceholder: '可選:如果不填寫,系統會自動透過 Refresh Token 取得...',
accessTokenOptionalInfo: 'Access Token 可選填。如果不提供,系統會透過 Refresh Token 自動取得。',
accessTokenRequired: 'Access Token *',
accessTokenRequiredPlaceholder: '請輸入 Access Token...',
refreshTokenRequired: 'Refresh Token *',
refreshTokenRequiredPlaceholder: '請輸入 Refresh Token必填...',
refreshTokenRequiredInfo: '系統將使用 Refresh Token 自動取得 Access Token 和使用者資訊',
refreshTokenOptional: 'Refresh Token (可選)',
refreshTokenOptionalPlaceholder: '請輸入 Refresh Token...',
// 優先級設定
@@ -2421,34 +2427,12 @@ export default {
prioritySchedulingTitle: '排程優先級 (1-100)',
priorityEditPlaceholder: '數字越小優先級越高',
// Gemini 專案ID
projectIdOptional: '專案 ID (可選)',
projectIdPlaceholder: '例如verdant-wares-464411-k9',
projectIdDescription: 'Google Cloud/Workspace 帳號可能需要提供專案 ID',
// Claude 訂閱類型和進階選項
subscriptionType: '訂閱類型',
claudeMaxSubscription: 'Claude Max',
claudeProSubscription: 'Claude Pro',
claudeProLimitation: 'Pro 帳號不支援 Claude Opus 4 模型',
autoStopOnWarning: '5小時使用量接近限制時自動停止排程',
autoStopOnWarningDescription:
'當系統檢測到帳戶接近5小時使用限制時自動暫停排程該帳戶。進入新的時間視窗後會自動恢復排程。',
useUnifiedUserAgent: '使用統一 Claude Code 版本',
useUnifiedUserAgentDescription:
'開啟後將使用從真實 Claude Code 用戶端捕獲的統一 User-Agent提高相容性',
currentUnifiedVersion: '目前統一版本:',
clearCache: '清除快取',
clearing: '清除中...',
waitingForCapture: '等待從 Claude Code 用戶端捕獲 User-Agent',
captureHint:
'💡 提示:如果長時間未能捕獲,請確認有 Claude Code 用戶端正在使用此帳戶,或聯絡開發者檢查 User-Agent 格式是否發生變化',
useUnifiedClientId: '使用統一的用戶端識別',
useUnifiedClientIdDescription:
'開啟後將使用固定的用戶端識別,使所有請求看起來來自同一個用戶端,減少特徵',
clientIdLabel: '用戶端識別 ID',
regenerateClientId: '重新產生',
clientIdDescription: '此ID將替換請求中的user_id用戶端部分保留session部分用於黏性工作階段',
// 編輯模式欄位
accountNameEdit: '帳戶名稱',
@@ -2456,7 +2440,6 @@ export default {
descriptionOptionalEdit: '描述 (可選)',
descriptionOptionalEditPlaceholder: '帳戶用途說明...',
accountTypeEdit: '帳戶類型',
selectGroupRequired: '選擇群組 *',
noAvailableGroups: '暫無可用群組',
membersCount: ' 個成員',
createNewGroup: '新建群組',
@@ -2464,29 +2447,14 @@ export default {
// AWS Bedrock 設定
bedrockCredentials: '憑證設定',
bedrockCredentialsDescription: '請填寫 AWS 存取憑證,用於呼叫 Amazon Bedrock 服務。',
awsAccessKeyId: 'AWS Access Key ID *',
awsAccessKeyIdPlaceholder: '請輸入 AWS 存取密鑰 ID...',
awsSecretAccessKey: 'AWS Secret Access Key *',
awsSecretAccessKeyPlaceholder: '請輸入 AWS 秘密存取密鑰...',
sessionTokenOptional: 'Session Token (可選)',
sessionTokenOptionalPlaceholder: '臨時憑證的工作階段令牌...',
sessionTokenDescription: '僅在使用臨時憑證(如 STS 產生的憑證)時需要填寫',
awsRegion: 'AWS 區域 *',
awsRegionPlaceholder: '選擇 AWS 區域...',
bedrockModelConfig: '模型設定',
defaultModelLabel: '預設模型',
defaultModelPlaceholder: '例如anthropic.claude-3-5-sonnet-20240620-v1:0',
defaultModelDescription: '留空將使用系統預設模型。支援 inference profile ID 或 ARN',
smallFastModelLabel: '小型快速模型',
smallFastModelPlaceholder: '例如anthropic.claude-3-haiku-20240307-v1:0',
smallFastModelDescription: '用於簡單任務的快速模型,支援 inference profile ID 或 ARN',
// Azure OpenAI 設定
azureOpenAIConfig: 'Azure OpenAI 設定',
azureOpenAIDescription: '請設定 Azure OpenAI 服務的連線資訊和部署詳情。',
azureEndpoint: 'Azure Endpoint *',
azureEndpointPlaceholder: '例如https://your-resource.openai.azure.com/',
azureEndpointDescription: 'Azure OpenAI 服務的端點 URL',
azureApiKey: 'API Key *',
azureApiKeyPlaceholder: '請輸入 Azure OpenAI API Key...',
azureApiVersion: 'API 版本',
@@ -2509,7 +2477,6 @@ export default {
modelMappingFromPlaceholder: '例如claude-3-5-sonnet-20241022',
modelMappingTo: '實際模型',
modelMappingToPlaceholder: '例如claude-3-5-sonnet-latest',
addModelMapping: '新增映射',
removeMapping: '移除',
presetMappings: '預設映射',
modelMappingExample: '示例claude-3-5-sonnet-20241022 → claude-3-5-sonnet-latest',
@@ -2521,9 +2488,7 @@ export default {
setupTokenStep1: '步驟 1產生授權連結',
setupTokenStep1Description: '系統將產生一個專用的授權連結,用於取得臨時授權碼。',
setupTokenStep2: '步驟 2完成授權',
setupTokenStep2Description: '在新視窗中開啟授權連結,使用您的 Claude 帳戶登入並完成授權。',
setupTokenStep3: '步驟 3輸入授權碼',
setupTokenStep3Description: '授權成功後,系統會顯示授權碼,請複製並貼上到下方輸入框。',
setupTokenUrlGenerated: '授權連結已產生',
setupTokenOpenInBrowser: '在瀏覽器中開啟',
setupTokenCopyLink: '複製連結',
@@ -2548,15 +2513,9 @@ export default {
// 限流和配額管理
rateLimitSettings: '限流設定',
enableRateLimit: '啟用速率限制',
rateLimitDuration: '限流時長 (秒)',
rateLimitDurationPlaceholder: '例如60',
rateLimitDescription: '啟用後將限制請求頻率,防止帳戶被封鎖',
quotaManagement: '配額管理',
dailyQuotaLabel: '每日配額限制',
dailyQuotaPlaceholder: '0 表示不限制',
quotaResetTimeLabel: '配額重設時間',
quotaResetTimePlaceholder: '例如00:00',
quotaResetDescription: '每天配額重設的時間點',
currentDailyUsage: '今日已用',
@@ -2564,7 +2523,6 @@ export default {
advancedSettings: '進階設定',
customUserAgent: '自定義 User-Agent',
customUserAgentPlaceholder: '留空使用預設 User-Agent...',
userAgentDescription: '用於請求時的 User-Agent 識別',
// 通用提示和狀態
notSet: '未設定',
@@ -2605,7 +2563,6 @@ export default {
'提示:如果您的帳戶是普通個人帳戶(未綁定 Google Cloud請留空此欄位。',
// AWS 區域參考
awsRegionReference: '常用 AWS 區域參考:',
awsRegionEastUS: 'us-east-1 (美國東部)',
awsRegionWestUS: 'us-west-2 (美國西部)',
awsRegionEuropeIreland: 'eu-west-1 (歐洲愛爾蘭)',
@@ -2625,7 +2582,6 @@ export default {
azureModelSelectionDesc: '選擇此部署支援的模型類型',
// 限流機制
rateLimitMechanism: '限流機制',
enableRateLimitMechanism: '啟用限流機制',
rateLimitDescription2: '啟用後當帳戶返回429錯誤時將暫停調度一段時間',
rateLimitDurationMinutes: '限流時間 (分鐘)',
@@ -2634,32 +2590,23 @@ export default {
// Claude Console 特定欄位
claudeConsoleFields: 'Claude Console 特定欄位',
quotaManagement: '額度管理',
modelMappingTable: '模型映射表',
modelMappingTableOptional: '模型映射表 (可選)',
addModelMapping: '新增模型映射',
// Claude 訂閱類型
subscriptionType: '訂閱類型',
// Setup Token 授權
setupTokenAuth: 'Setup Token 授權',
claudeSetupTokenAuth: 'Claude Setup Token 授權',
setupTokenAuthSteps: '請按照以下步驟透過 Setup Token 完成 Claude 帳戶的授權:',
generateSetupTokenLink: '產生 Setup Token 授權連結',
generating: '產生中...',
// 按鈕和操作
verifying: '驗證中...',
completeAuth: '完成授權',
updating: '更新中...',
update: '更新',
// 錯誤訊息
generateSetupTokenFailed: '產生Setup Token授權連結失敗',
copyFailed: '複製失敗,請手動複製',
setupTokenAuthFailed: 'Setup Token授權失敗請檢查授權碼是否正確',
accountCreationFailed: '帳戶建立失敗',
accountCreationError: '帳戶建立失敗:',
// 頁面結構註釋
@@ -2674,29 +2621,18 @@ export default {
// 驗證訊息
nameRequired: '請填寫帳戶名稱',
apiUrlRequired: '請填寫 API URL',
rateLimitDefault60: '預設60分鐘',
rateLimitPauseDescription: '帳戶被限流後暫停調度的時間(分鐘)',
apiUrlPlaceholder: '例如https://api.example.com',
apiKeyPlaceholder: '請輸入API Key',
dailyQuotaLimit: '每日額度限制 ($)',
quotaZeroUnlimited: '0 表示不限制',
dailyQuotaDescription: '設定每日使用額度0 表示不限制',
quotaResetTime: '額度重設時間',
quotaResetTimeDescription: '每日自動重設額度的時間',
modelMappingDescription:
'留空表示支援所有模型且不修改請求。設定映射後,左側模型會被識別為支援的模型,右側是實際傳送的模型。',
// 額度管理
quotaManagementFields: '配額管理欄位',
dailyQuotaLimitDollar: '每日配額限制 ($)',
quotaZeroUnlimited: '0 表示不限制',
dailyQuotaDesc: '設定每日使用配額0 表示不限制',
quotaResetTime: '配額重設時間',
quotaResetTimeDesc: '每日自動重設配額的時間',
// 模型映射
modelMappingOptional: '模型映射表 (可選)',
modelMappingDesc:
'留空表示支援所有模型且不修改請求。設定映射後,左側模型會被識別為支援的模型,右側是實際發送的模型。',
originalModelName: '原始模型名稱',
@@ -2708,7 +2644,6 @@ export default {
// Claude 訂閱類型
claudeSubscriptionType: '訂閱類型',
claudeProLimitation: 'Pro 帳戶不支援 Claude Opus 4 模型',
// Claude 進階選項
claudeAutoStopScheduling: '5小時使用量接近限制時自動停止調度',
@@ -2736,13 +2671,10 @@ export default {
setupTokenCopyTitle: '複製連結',
// 步驟指示器
stepIndicator: '步驟指示器',
step1BasicInfo: '步驟1: 基本資訊和代理設定',
step2OAuth: '步驟2: OAuth授權',
step2SetupToken: '步驟2: Setup Token授權',
// 群組選擇器
groupSelector: '群組選擇器',
multiGroupInterface: '多選群組介面',
createNewGroupOption: '新建群組選項',
@@ -2752,15 +2684,12 @@ export default {
// Placeholder 文字
originalModelNamePlaceholder: '原始模型名稱',
mappedModelNamePlaceholder: '映射後的模型名稱',
userAgentPlaceholder: '留空則透傳用戶端 User-Agent',
authCodePlaceholder: '貼上Claude Code授權頁面獲取的Authorization Code...',
leaveEmptyNoUpdate: '留空表示不更新',
leaveEmptyNoUpdateKey: '留空表示不更新 API Key',
leaveEmptyNoUpdateToken: '留空表示不更新...',
// 標籤和描述
customUserAgentOptional: '自定義 User-Agent (可選)',
clientIdLabel: '用戶端標識 ID',
schedulePriorityLabel: '調度優先級 (1-100)',
attentionLabel: '注意:',
supportedModelsLabel: '支援的模型',
@@ -2773,17 +2702,14 @@ export default {
previousStepBtn: '上一步',
// 描述性文字
claudeProLimitation: 'Pro 帳戶不支援 Claude Opus 4 模型',
claude5HourLimitDesc: '5小時使用量接近限制時自動停止調度',
claude5HourLimitExplanation:
'當系統檢測到帳戶接近5小時使用限制時自動暫停調度該帳戶。進入新的時間視窗後會自動恢復調度。',
useUnifiedClaudeVersion: '使用統一 Claude Code 版本',
unifiedVersionDesc: '開啟後將使用從真實 Claude Code 用戶端捕獲的統一 User-Agent提高相容性',
currentUnifiedVersion: '💡 目前統一版本:',
waitingUserAgent: '⏳ 等待從 Claude Code 用戶端捕獲 User-Agent',
userAgentTip: '💡 提示:如果長時間未能捕獲,請確認有 Claude Code 用戶端正在使用此帳戶,',
contactDeveloper: '或聯繫開發者檢查 User-Agent 格式是否發生變化',
useUnifiedClientId: '使用統一的用戶端標識',
unifiedClientIdDesc: '開啟後將使用固定的用戶端標識,使所有請求看起來來自同一個用戶端,減少特徵',
clientIdReplaceDesc: '此ID將替換請求中的user_id用戶端部分保留session部分用於黏性工作階段',
@@ -2804,9 +2730,6 @@ export default {
awsRegionRef: '常用 AWS 區域參考:',
// 錯誤訊息
apiKeyRequired: '請填寫 API Key',
refreshTokenRequired: '請填寫 Refresh Token',
accessTokenRequired: '請填寫 Access Token',
copyFailedManual: '複製失敗,請手動複製',
// 表單描述
@@ -2817,9 +2740,7 @@ export default {
// 基础標籤
apiUrlLabel: 'API URL',
apiUrlRequired: 'API URL *',
apiKeyLabel: 'API Key',
apiKeyRequired: 'API Key *',
// 更多缺失的翻譯鍵
copyLinkTooltip: '複製連結',