diff --git a/src/components/button/ChangeLanguageDropdownButton.vue b/src/components/button/ChangeLanguageDropdownButton.vue
index 3b6e166..245e8ab 100644
--- a/src/components/button/ChangeLanguageDropdownButton.vue
+++ b/src/components/button/ChangeLanguageDropdownButton.vue
@@ -1,8 +1,15 @@
@@ -41,7 +48,7 @@ const { changeGlobalLanguage, curGlobalLanguage, optionalLanguages } =
class="dropdown-content bg-base-200 text-base-content rounded-box top-px mt-14 w-56 overflow-y-auto border-[length:var(--border)] border-white/5 shadow-2xl outline-[length:var(--border)] outline-black/5"
>
- daisyUI
+ Hucky
diff --git a/src/hooks/globalLanguageHook.ts b/src/hooks/globalLanguageHook.ts
index 71536b4..3ba3a8b 100644
--- a/src/hooks/globalLanguageHook.ts
+++ b/src/hooks/globalLanguageHook.ts
@@ -3,6 +3,7 @@ import {
GlobalLanguage,
languageMap,
} from "@/stores/LanguageStore";
+import { Locale } from "vue-i18n";
const languageStore = useLanguageStore();
@@ -16,8 +17,12 @@ export const optionalLanguages = Object.entries(languageMap).map(
// 一定不要通过改变 curGlobalLanguage 来改变语言,而要通过 changeGlobalLanguage 来改变语言
const curGlobalLanguage = computed(() => languageStore.language);
-function changeGlobalLanguage(language: GlobalLanguage) {
+function changeGlobalLanguage(
+ language: GlobalLanguage,
+ locale: WritableComputedRef,
+) {
languageStore.setLanguage(language);
+ locale.value = language;
}
export const useGlobalLanguageHook = () => ({
diff --git a/src/i18n/en_US.ts b/src/i18n/en_US.ts
new file mode 100644
index 0000000..390abe5
--- /dev/null
+++ b/src/i18n/en_US.ts
@@ -0,0 +1,10 @@
+import { messagesInterface } from ".";
+
+export const en_USMessages: messagesInterface = {
+ nav: {
+ home: "Home",
+ about: "About",
+ theme: "Theme",
+ locale: "Locale",
+ },
+};
diff --git a/src/i18n/index.ts b/src/i18n/index.ts
new file mode 100644
index 0000000..ad1944b
--- /dev/null
+++ b/src/i18n/index.ts
@@ -0,0 +1,24 @@
+import { createI18n } from "vue-i18n";
+import { zh_CNMessages } from "./zh_CN";
+import { en_USMessages } from "./en_US";
+
+export interface messagesInterface {
+ nav: {
+ home: string;
+ about: string;
+ theme: string;
+ locale: string;
+ };
+}
+
+const i18n = createI18n({
+ legacy: false,
+ locale: "ZH",
+ fallbackLocale: "EN",
+ messages: {
+ ZH: zh_CNMessages,
+ EN: en_USMessages,
+ },
+});
+
+export default i18n;
diff --git a/src/i18n/zh_CN.ts b/src/i18n/zh_CN.ts
new file mode 100644
index 0000000..d74bf14
--- /dev/null
+++ b/src/i18n/zh_CN.ts
@@ -0,0 +1,10 @@
+import { messagesInterface } from ".";
+
+export const zh_CNMessages: messagesInterface = {
+ nav: {
+ home: "首页",
+ about: "关于",
+ theme: "主题",
+ locale: "语言",
+ },
+};
diff --git a/src/main.ts b/src/main.ts
index 10fb360..a1bd33a 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -2,10 +2,11 @@ import { createApp } from "vue";
import "./style.css";
import App from "./App.vue";
import router from "./router";
+import i18n from "./i18n";
import { createPinia } from "pinia";
import piniaPluginPersistedstate from "pinia-plugin-persistedstate";
const pinia = createPinia();
pinia.use(piniaPluginPersistedstate);
-createApp(App).use(router).use(pinia).mount("#app");
+createApp(App).use(router).use(pinia).use(i18n).mount("#app");