From 9a27c70cda04fe9071f1f6be75f596493948f865 Mon Sep 17 00:00:00 2001 From: hoehoetvhs Date: Mon, 22 Jun 2026 10:03:11 +0900 Subject: [PATCH 1/2] feat: implement multi-language (i18n) support in web dashboard linked with defaultLocale --- dashboard/app/composables/useApi.ts | 3 + dashboard/app/layouts/default.vue | 58 +- dashboard/app/pages/index.vue | 63 +- dashboard/app/pages/localnode.vue | 41 +- dashboard/app/pages/login.vue | 40 +- dashboard/app/pages/logs.vue | 8 +- dashboard/app/pages/maintenance.vue | 23 +- dashboard/app/pages/nodes.vue | 50 +- dashboard/app/pages/servers/[id].vue | 85 +- dashboard/app/pages/servers/index.vue | 22 +- dashboard/i18n/locales/en-US.json | 193 ++ dashboard/i18n/locales/ko-KR.json | 193 ++ dashboard/i18n/locales/ru-RU.json | 193 ++ dashboard/i18n/locales/sr-RS.json | 193 ++ dashboard/i18n/locales/tr-TR.json | 193 ++ dashboard/i18n/locales/zh-TW.json | 193 ++ dashboard/nuxt.config.ts | 22 +- dashboard/package-lock.json | 3648 +++++++++++++++++++++---- dashboard/package.json | 1 + eslint.config.mjs | 1 + src/lib/api/routes/BotInfoRouter.ts | 3 + 21 files changed, 4568 insertions(+), 658 deletions(-) create mode 100644 dashboard/i18n/locales/en-US.json create mode 100644 dashboard/i18n/locales/ko-KR.json create mode 100644 dashboard/i18n/locales/ru-RU.json create mode 100644 dashboard/i18n/locales/sr-RS.json create mode 100644 dashboard/i18n/locales/tr-TR.json create mode 100644 dashboard/i18n/locales/zh-TW.json diff --git a/dashboard/app/composables/useApi.ts b/dashboard/app/composables/useApi.ts index 33a828b..b41908a 100644 --- a/dashboard/app/composables/useApi.ts +++ b/dashboard/app/composables/useApi.ts @@ -196,6 +196,9 @@ export interface BotSummary { total: number; perShard: number[]; }; + i18n: { + defaultLocale: string; + }; } export interface BotRuntime { diff --git a/dashboard/app/layouts/default.vue b/dashboard/app/layouts/default.vue index cd0373c..08bf6a5 100644 --- a/dashboard/app/layouts/default.vue +++ b/dashboard/app/layouts/default.vue @@ -19,7 +19,7 @@ exact > - Dashboard + {{ $t('common.dashboard') }}
  • @@ -29,7 +29,7 @@ active-class="!bg-blurple/20 !text-blurple-light" > - Servers + {{ $t('common.servers') }}
  • @@ -39,7 +39,7 @@ active-class="!bg-blurple/20 !text-blurple-light" > - Nodes + {{ $t('common.nodes') }}
  • @@ -49,7 +49,7 @@ active-class="!bg-blurple/20 !text-blurple-light" > - Local Node + {{ $t('common.localNode') }}
  • @@ -59,7 +59,7 @@ active-class="!bg-blurple/20 !text-blurple-light" > - Logs + {{ $t('common.logs') }}
  • @@ -69,20 +69,40 @@ active-class="!bg-blurple/20 !text-blurple-light" > - Maintenance + {{ $t('common.maintenance') }}
  • + +
    +
    + + +
    +
    + -
    +
    @@ -98,11 +118,33 @@ diff --git a/dashboard/app/pages/logs.vue b/dashboard/app/pages/logs.vue index 19b932c..e1c6dbe 100644 --- a/dashboard/app/pages/logs.vue +++ b/dashboard/app/pages/logs.vue @@ -2,13 +2,13 @@
    -

    Logs

    +

    {{ $t('logs.title') }}

    - Total {{ logStream.totalItems.value }} + {{ $t('localnode.total', { count: logStream.totalItems.value }) }} - Refresh in {{ countdown }}s + {{ $t('index.refreshIn', { countdown }) }}
    @@ -21,7 +21,7 @@ :initial-loading="logStream.loading.value" :loading-older="logStream.loadingOlder.value" :stretch="true" - empty-text="No logs available." + :empty-text="$t('localnode.emptyLogs')" @reach-top="loadOlderLogs" />
    diff --git a/dashboard/app/pages/maintenance.vue b/dashboard/app/pages/maintenance.vue index 4550f11..5345711 100644 --- a/dashboard/app/pages/maintenance.vue +++ b/dashboard/app/pages/maintenance.vue @@ -1,12 +1,11 @@