Skip to content

Commit 609d3fe

Browse files
authored
Add i18n for side tool bar tooltips (#207)
* Add npm dep * Add i18n for side bar tooltips
1 parent 9b36c6b commit 609d3fe

File tree

7 files changed

+104
-3
lines changed

7 files changed

+104
-3
lines changed

package-lock.json

Lines changed: 61 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
"primevue": "^4.0.0-rc.2",
5959
"reflect-metadata": "^0.2.2",
6060
"vue": "^3.4.31",
61+
"vue-i18n": "^9.13.1",
6162
"zod": "^3.23.8",
6263
"zod-validation-error": "^3.3.0"
6364
},

src/components/sidebar/SideBarSettingsToggleIcon.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
<template>
2-
<SideBarIcon icon="pi pi-cog" @click="showSetting" tooltip="Settings" />
2+
<SideBarIcon
3+
icon="pi pi-cog"
4+
@click="showSetting"
5+
:tooltip="$t('sideToolBar.settings')"
6+
/>
37
</template>
48

59
<script setup lang="ts">

src/components/sidebar/SideBarThemeToggleIcon.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
<template>
2-
<SideBarIcon :icon="icon" @click="toggleTheme" tooltip="Toggle Theme" />
2+
<SideBarIcon
3+
:icon="icon"
4+
@click="toggleTheme"
5+
:tooltip="$t('sideToolBar.themeToggle')"
6+
/>
37
</template>
48

59
<script setup lang="ts">

src/components/sidebar/SideToolBar.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,14 @@ import SideBarSettingsToggleIcon from "./SideBarSettingsToggleIcon.vue";
2424
import NodeDetailSideBarItem from "./items/NodeDetailSideBarItem.vue";
2525
import QueueSideBarItem from "./items/QueueSideBarItem.vue";
2626
import { markRaw, onMounted, onUnmounted, ref, watch } from "vue";
27+
import { useI18n } from "vue-i18n";
2728
29+
const { t } = useI18n();
2830
const items = ref([
2931
// { icon: "pi pi-map", component: markRaw(NodeDetailSideBarItem) },
3032
{
3133
icon: "pi pi-history",
32-
tooltip: "Queue",
34+
tooltip: t("sideToolBar.queue"),
3335
component: markRaw(QueueSideBarItem),
3436
},
3537
]);

src/i18n.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { createI18n } from "vue-i18n";
2+
3+
const messages = {
4+
en: {
5+
sideToolBar: {
6+
settings: "Settings",
7+
themeToggle: "Toggle Theme",
8+
queue: "Queue",
9+
},
10+
},
11+
zh: {
12+
sideToolBar: {
13+
settings: "设置",
14+
themeToggle: "主题切换",
15+
queue: "队列",
16+
},
17+
},
18+
// TODO: Add more languages
19+
};
20+
21+
export const i18n = createI18n({
22+
// Must set `false`, as Vue I18n Legacy API is for Vue 2
23+
legacy: false,
24+
locale: navigator.language.split("-")[0] || "en",
25+
fallbackLocale: "en",
26+
messages,
27+
});

src/main.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import "primeicons/primeicons.css";
1010
import App from "./App.vue";
1111
import { app as comfyApp } from "@/scripts/app";
1212
import { createPinia } from "pinia";
13+
import { i18n } from "./i18n";
1314

1415
const ComfyUIPreset = definePreset(Aura, {
1516
semantic: {
@@ -42,5 +43,6 @@ comfyApp.setup().then(() => {
4243
.use(ConfirmationService)
4344
.use(ToastService)
4445
.use(pinia)
46+
.use(i18n)
4547
.mount("#vue-app");
4648
});

0 commit comments

Comments
 (0)