diff --git a/apps/frontend_llmops/env.d.ts b/apps/frontend_llmops/env.d.ts index a32be6e..1bf7ef1 100644 --- a/apps/frontend_llmops/env.d.ts +++ b/apps/frontend_llmops/env.d.ts @@ -1,12 +1,11 @@ /// -interface ImportMetaEnv { - /** Dashboard Backend base URL (model lifecycle, resources, telemetry). */ - readonly VITE_API_BASE_URL: string - /** LLM Router base URL (OpenAI-compatible inference + /metrics). */ - readonly VITE_ROUTER_BASE_URL: string -} +import 'vue' -interface ImportMeta { - readonly env: ImportMetaEnv +declare module 'vue' { + interface ComponentCustomProperties { + $t: (key: string, ...args: unknown[]) => string + } } + +export {} diff --git a/apps/frontend_llmops/package-lock.json b/apps/frontend_llmops/package-lock.json index 86df9d1..cf8dc03 100644 --- a/apps/frontend_llmops/package-lock.json +++ b/apps/frontend_llmops/package-lock.json @@ -25,6 +25,7 @@ "tailwind-merge": "^3.6.0", "tailwindcss": "^4.3.1", "vue": "^3.5.32", + "vue-i18n": "^11.4.6", "vue-router": "^5.0.4", "vue-sonner": "^2.0.9" }, @@ -1004,6 +1005,67 @@ "@swc/helpers": "^0.5.0" } }, + "node_modules/@intlify/core-base": { + "version": "11.4.6", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-11.4.6.tgz", + "integrity": "sha512-EOeHO95XESK9IFHgHeZXunsM/WBAoCA0DlaWODvx14vKmetAuS97t+l6Xe9hTUqntPpF93vtVSjjUDafw3wXMw==", + "license": "MIT", + "dependencies": { + "@intlify/devtools-types": "11.4.6", + "@intlify/message-compiler": "11.4.6", + "@intlify/shared": "11.4.6" + }, + "engines": { + "node": ">= 22" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/devtools-types": { + "version": "11.4.6", + "resolved": "https://registry.npmjs.org/@intlify/devtools-types/-/devtools-types-11.4.6.tgz", + "integrity": "sha512-wowQPpNem56b2d43IJmqbrzG2FeBKe5f/kUGlpNuBmXs6OSqncF8m1+1lxHuW8ISZJF0ma2RkW3iLkw0g0G4VA==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "11.4.6", + "@intlify/shared": "11.4.6" + }, + "engines": { + "node": ">= 22" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "11.4.6", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-11.4.6.tgz", + "integrity": "sha512-5nj3jULqeTAC1WovwMs1LQWgatTa2pM/rXN9T3XW8rdOtXW9ZF6/GLSNFTKDQmPLwclhPdgUWLJ/4w3fMeeC/Q==", + "license": "MIT", + "dependencies": { + "@intlify/shared": "11.4.6", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 22" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/shared": { + "version": "11.4.6", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-11.4.6.tgz", + "integrity": "sha512-m1p1HHAMLhqSpTRH7VnXdrN0CQ4y+9vunFkpLkbD8soIuBsnQdawZXqMCgvwI2UVF9Ww7sVaw7g9tV2VO7shoA==", + "license": "MIT", + "engines": { + "node": ">= 22" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -8557,6 +8619,33 @@ "node": ">=10" } }, + "node_modules/vue-i18n": { + "version": "11.4.6", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-11.4.6.tgz", + "integrity": "sha512-l0gE7Rfy0phCa5ChKYkOq543Wgd39BCK6hkktfr1Ed4D99oRkgPK9ffShASZdeC8OJxGfdWmpYoAaAH6iLEuIg==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "11.4.6", + "@intlify/devtools-types": "11.4.6", + "@intlify/shared": "11.4.6", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 22" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-i18n/node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, "node_modules/vue-router": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-5.1.0.tgz", diff --git a/apps/frontend_llmops/package.json b/apps/frontend_llmops/package.json index 3bcb84e..e332bc0 100644 --- a/apps/frontend_llmops/package.json +++ b/apps/frontend_llmops/package.json @@ -34,6 +34,7 @@ "tailwind-merge": "^3.6.0", "tailwindcss": "^4.3.1", "vue": "^3.5.32", + "vue-i18n": "^11.4.6", "vue-router": "^5.0.4", "vue-sonner": "^2.0.9" }, diff --git a/apps/frontend_llmops/src/components/AddInstanceDialog.vue b/apps/frontend_llmops/src/components/AddInstanceDialog.vue index c4254e2..2587001 100644 --- a/apps/frontend_llmops/src/components/AddInstanceDialog.vue +++ b/apps/frontend_llmops/src/components/AddInstanceDialog.vue @@ -1,5 +1,6 @@