feat: 实现DashboardView.vue完整国际化支持

- 完成DashboardView.vue全面国际化
  * 主要统计卡片:总API Keys、服务账户、今日请求、系统状态全部多语言化
  * Token统计模块:今日Token、总消耗量、实时RPM/TPM指标完整国际化
  * 实时性能监控:请求数/Token数每分钟指标、历史数据标识多语言化
  * 图表组件完整国际化:饼图、趋势图、API Keys使用趋势图
  * 交互控件全面支持:日期选择器、粒度切换、自动刷新等

- 图表系统深度国际化
  * Chart.js图表标签完全多语言化:Token使用趋势、模型分布等
  * 工具提示和坐标轴标签支持动态语言切换
  * 表格头部和数据展示完整国际化支持

- 扩展三语言dashboard翻译组
  * zh-cn.js: 简体中文专业术语翻译
  * zh-tw.js: 繁体中文技术翻译(快取、即時等台湾用词)
  * en.js: 英文专业技术术语标准翻译
  * 总计90+个翻译键值,涵盖所有用户可见文本

- 平台账户工具提示国际化
  * Claude/Console/Gemini/Bedrock/OpenAI/Azure OpenAI账户状态
  * 支持参数化翻译,动态显示账户数量和状态

- 提升复杂业务场景多语言体验
  * 管理后台核心数据可视化页面完全国际化
  * 60+个硬编码中文字符串全部替换
  * 确保不同语言环境下数据展示的专业性
This commit is contained in:
Wangnov
2025-09-08 19:57:45 +08:00
parent e88e97b485
commit cd7959f3bf
4 changed files with 374 additions and 69 deletions

View File

@@ -215,5 +215,106 @@ export default {
passwordPlaceholder: 'Please enter password',
loginButton: 'Login',
loggingIn: 'Logging in...'
},
// Dashboard page
dashboard: {
// Main stats cards
totalApiKeys: 'Total API Keys',
activeApiKeys: 'Active',
serviceAccounts: 'Service Accounts',
normalAccounts: 'Normal',
abnormalAccounts: 'Abnormal',
pausedAccounts: 'Paused',
rateLimitedAccounts: 'Rate Limited',
todayRequests: 'Today Requests',
totalRequests: 'Total Requests',
systemStatus: 'System Status',
uptime: 'Uptime',
// Platform accounts tooltip
claudeAccount: 'Claude: {total} accounts (Normal: {normal})',
consoleAccount: 'Console: {total} accounts (Normal: {normal})',
geminiAccount: 'Gemini: {total} accounts (Normal: {normal})',
bedrockAccount: 'Bedrock: {total} accounts (Normal: {normal})',
openaiAccount: 'OpenAI: {total} accounts (Normal: {normal})',
azureOpenaiAccount: 'Azure OpenAI: {total} accounts (Normal: {normal})',
// Token stats cards
todayToken: 'Today Tokens',
totalTokenConsumption: 'Total Token Consumption',
inputTokens: 'Input',
outputTokens: 'Output',
cacheCreateTokens: 'Cache Create',
cacheReadTokens: 'Cache Read',
// Real-time metrics
realtimeRPM: 'Realtime RPM',
realtimeTPM: 'Realtime TPM',
requestsPerMinute: 'Requests per Minute',
tokensPerMinute: 'Tokens per Minute',
historicalData: 'Historical Data',
minutes: 'minutes',
// Charts section
modelDistributionAndTrend: 'Model Usage Distribution & Token Usage Trends',
// Date filter presets
today: 'Today',
yesterday: 'Yesterday',
last7Days: 'Last 7 Days',
last30Days: 'Last 30 Days',
thisWeek: 'This Week',
lastWeek: 'Last Week',
thisMonth: 'This Month',
lastMonth: 'Last Month',
// Granularity buttons
byDay: 'By Day',
byHour: 'By Hour',
// Date picker
startDatePlaceholder: 'Start Date',
endDatePlaceholder: 'End Date',
dateSeparator: 'to',
maxHours24: 'Maximum 24 hours',
// Auto refresh controls
autoRefresh: 'Auto Refresh',
refresh: 'Refresh',
refreshing: 'Refreshing',
refreshDataNow: 'Refresh data now',
// Charts
tokenUsageDistribution: 'Token Usage Distribution',
detailedStatistics: 'Detailed Statistics',
noModelUsageData: 'No model usage data available',
// Table headers
model: 'Model',
requestCount: 'Requests',
totalTokens: 'Total Tokens',
cost: 'Cost',
percentage: 'Percentage',
// Trend charts
tokenUsageTrend: 'Token Usage Trend',
apiKeysUsageTrend: 'API Keys Usage Trend',
requestsCount: 'Requests Count',
tokenCount: 'Token Count',
totalApiKeysCount: 'Total {count} API Keys',
showingTop10: 'Total {count} API Keys, showing top 10 by usage',
// Chart labels
inputTokensLabel: 'Input Tokens',
outputTokensLabel: 'Output Tokens',
cacheCreateTokensLabel: 'Cache Create Tokens',
cacheReadTokensLabel: 'Cache Read Tokens',
costLabel: 'Cost (USD)',
requestsLabel: 'Requests',
time: 'Time',
date: 'Date',
tokenQuantity: 'Token Quantity',
requestsQuantity: 'Requests Count'
}
}