index.ts
693 Bytes
import { createI18n } from "vue-i18n";
import zhCN from "./zh-CN";
import enUS from "./en-US";
// 获取语言设置,优先从 localStorage 获取,否则使用默认值
const getLocale = () => {
return localStorage.getItem("language") || "zh-CN";
};
const i18n = createI18n({
legacy: false, // 使用 Composition API 模式
locale: getLocale(),
fallbackLocale: "zh-CN",
messages: {
"zh-CN": zhCN,
"en-US": enUS,
},
globalInjection: true, // 全局注入 $t 函数
});
// 导出语言切换函数
export const setI18nLocale = (locale: "zh-CN" | "en-US") => {
i18n.global.locale.value = locale;
localStorage.setItem("language", locale);
};
export default i18n;