不能直接使用以下方式:
import { useI18n } from "vue-i18n";
const { t } = useI18n();
因为 useI18n
只能在 .vue
中使用。
不过可以通过封装 utils/i18n.js
内容如下:
import { createI18n } from "vue-i18n";
import cn from "@/locales/cn.json";
import en from "@/locales/en.json";
import tw from "@/locales/tw.json";
const i18n = createI18n({
legacy: false, // 要使用组合式 API,您必须将其设置为 false
locale: "cn",
fallbackLocale: "en",
messages: {
en,
cn,
tw,
},
});
export default i18n;
在main.ts中加载
import i18n from "@/utils/i18n";
const app = createApp(App);
app.use(i18n);
然后就可以在其他js文件中使用多语言处理了
// 多语言
import i18n from "@/utils/i18n";
const { t } = i18n.global