geminiCliDesc:'Import as Gemini CLI configuration',
geminiCliDesc:'Import as Gemini CLI configuration',
},
},
// Quota and expiration
quotaLimit:'Quota Limit',
quotaAmount:'Quota Amount (USD)',
quotaAmountPlaceholder:'Enter quota limit in USD',
quotaAmountHint:'Set the maximum amount this key can spend. 0 = unlimited.',
quotaUsed:'Quota Used',
reset:'Reset',
resetQuotaUsed:'Reset used quota to 0',
resetQuotaTitle:'Confirm Reset Quota',
resetQuotaConfirmMessage:'Are you sure you want to reset the used quota (${used}) for key "{name}" to 0? This action cannot be undone.',
quotaResetSuccess:'Quota reset successfully',
failedToResetQuota:'Failed to reset quota',
expiration:'Expiration',
expiresInDays:'{days} days',
extendDays:'+{days} days',
customDate:'Custom',
expirationDate:'Expiration Date',
expirationDateHint:'Select when this API key should expire.',
currentExpiration:'Current expiration',
expiresAt:'Expires',
noExpiration:'Never',
status:{
active:'Active',
inactive:'Inactive',
quota_exhausted:'Quota Exhausted',
expired:'Expired',
},
},
},
// Usage
// Usage
...
@@ -1026,6 +1054,11 @@ export default {
...
@@ -1026,6 +1054,11 @@ export default {
fallbackHint:'Non-Claude Code requests will use this group. Leave empty to reject directly.',
fallbackHint:'Non-Claude Code requests will use this group. Leave empty to reject directly.',
noFallback:'No Fallback (Reject)'
noFallback:'No Fallback (Reject)'
},
},
invalidRequestFallback:{
title:'Invalid Request Fallback Group',
hint:'Triggered only when upstream explicitly returns prompt too long. Leave empty to disable fallback.',
noFallback:'No Fallback'
},
copyAccounts:{
copyAccounts:{
title:'Copy Accounts from Groups',
title:'Copy Accounts from Groups',
tooltip:'Select one or more groups of the same platform. After creation, all accounts from these groups will be automatically bound to the new group (deduplicated).',
tooltip:'Select one or more groups of the same platform. After creation, all accounts from these groups will be automatically bound to the new group (deduplicated).',
...
@@ -1053,6 +1086,20 @@ export default {
...
@@ -1053,6 +1086,20 @@ export default {
noRulesHint:'Add routing rules to route specific model requests to designated accounts',
noRulesHint:'Add routing rules to route specific model requests to designated accounts',
searchAccountPlaceholder:'Search accounts...',
searchAccountPlaceholder:'Search accounts...',
accountsHint:'Select accounts to prioritize for this model pattern'
accountsHint:'Select accounts to prioritize for this model pattern'
},
mcpXml:{
title:'MCP XML Protocol Injection',
tooltip:'When enabled, if the request contains MCP tools, an XML format call protocol prompt will be injected into the system prompt. Disable this to avoid interference with certain clients.',
enabled:'Enabled',
disabled:'Disabled'
},
supportedScopes:{
title:'Supported Model Families',
tooltip:'Select the model families this group supports. Unchecked families will not be routed to this group.',
claude:'Claude',
geminiText:'Gemini Text',
geminiImage:'Gemini Image',
hint:'Select at least one model family'
}
}
},
},
...
@@ -1192,7 +1239,9 @@ export default {
...
@@ -1192,7 +1239,9 @@ export default {
responsesApi:'Responses API',
responsesApi:'Responses API',
googleOauth:'Google OAuth',
googleOauth:'Google OAuth',
codeAssist:'Code Assist',
codeAssist:'Code Assist',
antigravityOauth:'Antigravity OAuth'
antigravityOauth:'Antigravity OAuth',
upstream:'Upstream',
upstreamDesc:'Connect via Base URL + API Key'
},
},
status:{
status:{
active:'Active',
active:'Active',
...
@@ -1452,6 +1501,15 @@ export default {
...
@@ -1452,6 +1501,15 @@ export default {
pleaseEnterApiKey:'Please enter API Key',
pleaseEnterApiKey:'Please enter API Key',
apiKeyIsRequired:'API Key is required',
apiKeyIsRequired:'API Key is required',
leaveEmptyToKeep:'Leave empty to keep current key',
leaveEmptyToKeep:'Leave empty to keep current key',
// Upstream type
upstream:{
baseUrl:'Upstream Base URL',
baseUrlHint:'The address of the upstream Antigravity service, e.g., https://s.konstants.xyz',
apiKey:'Upstream API Key',
apiKeyHint:'API Key for the upstream service',
pleaseEnterBaseUrl:'Please enter upstream Base URL',
pleaseEnterApiKey:'Please enter upstream API Key'
},
// OAuth flow
// OAuth flow
oauth:{
oauth:{
title:'Claude Account Authorization',
title:'Claude Account Authorization',
...
@@ -2202,6 +2260,7 @@ export default {
...
@@ -2202,6 +2260,7 @@ export default {
waiting:'waiting',
waiting:'waiting',
conns:'conns',
conns:'conns',
queue:'queue',
queue:'queue',
accountSwitches:'Account switches',
ok:'ok',
ok:'ok',
lastRun:'last_run:',
lastRun:'last_run:',
lastSuccess:'last_success:',
lastSuccess:'last_success:',
...
@@ -2250,6 +2309,7 @@ export default {
...
@@ -2250,6 +2309,7 @@ export default {
failedToLoadData:'Failed to load ops data.',
failedToLoadData:'Failed to load ops data.',
failedToLoadOverview:'Failed to load overview',
failedToLoadOverview:'Failed to load overview',
failedToLoadThroughputTrend:'Failed to load throughput trend',
failedToLoadThroughputTrend:'Failed to load throughput trend',
failedToLoadSwitchTrend:'Failed to load avg account switches trend',
failedToLoadLatencyHistogram:'Failed to load request duration histogram',
failedToLoadLatencyHistogram:'Failed to load request duration histogram',
failedToLoadErrorTrend:'Failed to load error trend',
failedToLoadErrorTrend:'Failed to load error trend',
failedToLoadErrorDistribution:'Failed to load error distribution',
failedToLoadErrorDistribution:'Failed to load error distribution',
...
@@ -2258,9 +2318,11 @@ export default {
...
@@ -2258,9 +2318,11 @@ export default {
tpsK:'TPS (K)',
tpsK:'TPS (K)',
top:'Top:',
top:'Top:',
throughputTrend:'Throughput Trend',
throughputTrend:'Throughput Trend',
switchRateTrend:'Avg Account Switches',
latencyHistogram:'Request Duration Histogram',
latencyHistogram:'Request Duration Histogram',
errorTrend:'Error Trend',
errorTrend:'Error Trend',
errorDistribution:'Error Distribution',
errorDistribution:'Error Distribution',
switchRate:'Avg switches',
// Health Score & Diagnosis
// Health Score & Diagnosis
health:'Health',
health:'Health',
healthCondition:'Health Condition',
healthCondition:'Health Condition',
...
@@ -2883,6 +2945,7 @@ export default {
...
@@ -2883,6 +2945,7 @@ export default {
tooltips:{
tooltips:{
totalRequests:'Total number of requests (including both successful and failed requests) in the selected time window.',
totalRequests:'Total number of requests (including both successful and failed requests) in the selected time window.',
throughputTrend:'Requests/QPS + Tokens/TPS in the selected window.',
throughputTrend:'Requests/QPS + Tokens/TPS in the selected window.',
switchRateTrend:'Trend of account switches / total requests over the last 5 hours (avg switches).',
latencyHistogram:'Request duration distribution (ms) for successful requests.',
latencyHistogram:'Request duration distribution (ms) for successful requests.',
errorTrend:'Error counts over time (SLA scope excludes business limits; upstream excludes 429/529).',
errorTrend:'Error counts over time (SLA scope excludes business limits; upstream excludes 429/529).',
errorDistribution:'Error distribution by status code.',
errorDistribution:'Error distribution by status code.',