From 4aae4aaec0ef2756a0d85f2bc32953a0219f915c Mon Sep 17 00:00:00 2001 From: Wangnov Date: Mon, 8 Sep 2025 19:21:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90API=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=AE=8C=E6=95=B4=E5=9B=BD=E9=99=85=E5=8C=96?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 完成6个apistats组件的全面国际化改造 * ModelUsageStats.vue - 模型使用统计 * AggregatedStatsCard.vue - 聚合统计卡片 * StatsOverview.vue - 统计概览 * LimitConfig.vue - 限制配置 * TokenDistribution.vue - Token使用分布 * ApiKeyInput.vue - API Key输入组件 - 扩展三语言翻译支持(zh-cn/zh-tw/en) * 新增100+专业翻译键涵盖所有UI文字 * 台湾本地化的繁体中文翻译 * 技术专业的英文术语翻译 * 支持参数化翻译处理动态内容 - 技术优化 * 统一使用Vue 3 Composition API的useI18n()模式 * 智能日期格式国际化处理 * 完全消除硬编码中文文字 * 支持条件性翻译和动态时间段显示 现在整个API统计功能模块支持完整的多语言切换体验 --- .../apistats/AggregatedStatsCard.vue | 15 +- .../src/components/apistats/ApiKeyInput.vue | 33 +++-- .../src/components/apistats/LimitConfig.vue | 57 ++++---- .../components/apistats/ModelUsageStats.vue | 23 ++-- .../src/components/apistats/StatsOverview.vue | 75 +++++----- .../components/apistats/TokenDistribution.vue | 17 ++- web/admin-spa/src/i18n/locales/en.js | 130 +++++++++++++++++- web/admin-spa/src/i18n/locales/zh-cn.js | 130 +++++++++++++++++- web/admin-spa/src/i18n/locales/zh-tw.js | 130 +++++++++++++++++- 9 files changed, 505 insertions(+), 105 deletions(-) diff --git a/web/admin-spa/src/components/apistats/AggregatedStatsCard.vue b/web/admin-spa/src/components/apistats/AggregatedStatsCard.vue index 5b857f8e..20c693ad 100644 --- a/web/admin-spa/src/components/apistats/AggregatedStatsCard.vue +++ b/web/admin-spa/src/components/apistats/AggregatedStatsCard.vue @@ -5,10 +5,10 @@ > - 使用占比 + {{ t('apiStats.usageRatio') }} ({{ statsPeriod === 'daily' ? '今日' : '本月' }})({{ statsPeriod === 'daily' ? t('apiStats.today') : t('apiStats.thisMonth') }}) @@ -33,7 +33,7 @@
- {{ formatNumber(getStatUsage(stat)?.requests || 0) }}次 + {{ formatNumber(getStatUsage(stat)?.requests || 0) }}{{ t('apiStats.requests') }} {{ getStatUsage(stat)?.formattedCost || '$0.00' }}
@@ -41,7 +41,7 @@
- 其他 {{ otherKeysCount }} 个Keys + {{ t('apiStats.otherKeys') }} {{ otherKeysCount }} {{ t('apiStats.individual') }}{{ t('apiStats.keys') }} {{ otherPercentage }}%
@@ -54,7 +54,7 @@ >
-

使用占比仅在多Key查询时显示

+

{{ t('apiStats.usageRatioOnlyInMultiMode') }}

@@ -63,7 +63,7 @@ class="flex h-32 items-center justify-center text-sm text-gray-500 dark:text-gray-400" > - 暂无数据 + {{ t('apiStats.noData') }} @@ -71,8 +71,11 @@ diff --git a/web/admin-spa/src/components/apistats/TokenDistribution.vue b/web/admin-spa/src/components/apistats/TokenDistribution.vue index 56baa2bc..a08850d3 100644 --- a/web/admin-spa/src/components/apistats/TokenDistribution.vue +++ b/web/admin-spa/src/components/apistats/TokenDistribution.vue @@ -5,17 +5,17 @@ > - Token 使用分布 + {{ t('apiStats.tokenDistribution') }} ({{ statsPeriod === 'daily' ? '今日' : '本月' }})({{ statsPeriod === 'daily' ? t('apiStats.today') : t('apiStats.thisMonth') }})
- 输入 Token + {{ t('apiStats.inputToken') }} {{ formatNumber(currentPeriodData.inputTokens) @@ -24,7 +24,7 @@
- 输出 Token + {{ t('apiStats.outputToken') }} {{ formatNumber(currentPeriodData.outputTokens) @@ -33,7 +33,7 @@
- 缓存创建 Token + {{ t('apiStats.cacheCreateToken') }} {{ formatNumber(currentPeriodData.cacheCreateTokens) @@ -42,7 +42,7 @@
- 缓存读取 Token + {{ t('apiStats.cacheReadToken') }} {{ formatNumber(currentPeriodData.cacheReadTokens) @@ -52,7 +52,7 @@
{{ statsPeriod === 'daily' ? '今日' : '本月' }}总计{{ statsPeriod === 'daily' ? t('apiStats.todayTotal') : t('apiStats.monthlyTotal') }} {{ formatNumber(currentPeriodData.allTokens) }}
@@ -62,8 +62,11 @@