mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-23 09:16:17 +00:00
fix: 修复重复键
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -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 Token,Token 过期后需要手动更新。',
|
||||
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: '复制链接',
|
||||
|
||||
@@ -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 Token,Token 過期後需要手動更新。',
|
||||
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: '複製連結',
|
||||
|
||||
Reference in New Issue
Block a user