diff --git a/web/admin-spa/src/views/ApiStatsView.vue b/web/admin-spa/src/views/ApiStatsView.vue index f26df4e5..104dd3a0 100644 --- a/web/admin-spa/src/views/ApiStatsView.vue +++ b/web/admin-spa/src/views/ApiStatsView.vue @@ -6,10 +6,15 @@
+ +
+ +
+
@@ -28,7 +33,7 @@ to="/user-login" > - 用户登录 + {{ t('apiStats.userLogin') }} - 管理后台 + {{ t('apiStats.adminPanel') }}
@@ -54,14 +59,14 @@ @click="currentTab = 'stats'" > - 统计查询 + {{ t('apiStats.statsQuery') }} @@ -93,7 +98,7 @@
统计时间范围{{ t('apiStats.timeRange') }}
@@ -104,7 +109,7 @@ @click="switchPeriod('daily')" > - 今日 + {{ t('apiStats.today') }}
@@ -140,7 +145,7 @@
- +
@@ -150,21 +155,28 @@ import { ref, onMounted, onUnmounted, watch, computed } from 'vue' import { useRoute } from 'vue-router' import { storeToRefs } from 'pinia' +import { useI18n } from 'vue-i18n' import { useApiStatsStore } from '@/stores/apistats' import { useThemeStore } from '@/stores/theme' +import { useLocaleStore } from '@/stores/locale' import LogoTitle from '@/components/common/LogoTitle.vue' import ThemeToggle from '@/components/common/ThemeToggle.vue' +import LanguageSwitch from '@/components/common/LanguageSwitch.vue' import ApiKeyInput from '@/components/apistats/ApiKeyInput.vue' import StatsOverview from '@/components/apistats/StatsOverview.vue' import TokenDistribution from '@/components/apistats/TokenDistribution.vue' import LimitConfig from '@/components/apistats/LimitConfig.vue' import AggregatedStatsCard from '@/components/apistats/AggregatedStatsCard.vue' import ModelUsageStats from '@/components/apistats/ModelUsageStats.vue' -import TutorialView from './TutorialView.vue' +import TutorialViewZhCn from './TutorialView.vue' +import TutorialViewZhTw from './TutorialView.vue' +import TutorialViewEn from './TutorialView.vue' const route = useRoute() +const { t } = useI18n() const apiStatsStore = useApiStatsStore() const themeStore = useThemeStore() +const localeStore = useLocaleStore() // 当前标签页 const currentTab = ref('stats') @@ -172,6 +184,17 @@ const currentTab = ref('stats') // 主题相关 const isDarkMode = computed(() => themeStore.isDarkMode) +// 根据当前语言选择教程组件 +const currentTutorialComponent = computed(() => { + const locale = localeStore.currentLocale + const components = { + 'zh-cn': TutorialViewZhCn, + 'zh-tw': TutorialViewZhTw, + 'en': TutorialViewEn + } + return components[locale] || TutorialViewZhCn +}) + const { apiKey, apiId,