import { createI18n } from "vue-i18n"; import zhHans from "./zh-Hans.json"; import zhHant from "./zh-Hant.json"; import en from "./en.json"; import es from "./es.json"; import fr from "./fr.json"; const i18n = createI18n({ locale: uni.getLocale(), // 配置后,使用命令 cool-i18n create 翻译,会自动更新 locale 目录 messages: { "zh-Hans": zhHans, "zh-Hant": zhHant, en, es, }, }); const localeMap: { [key: string]: string } = { "zh-Hans": "zh-cn", "zh-Hant": "zh-tw", }; function t(name: string, data?: any) { let d = i18n.global.t(name, data); if (data) { for (const i in data) { d = d.replace(`{${i}}`, data[i]); } } return d; } function setLocale(locale: string) { uni.setLocale(locale); i18n.global.locale = locale; } function getLocale(): string { const locale = uni.getLocale(); for (const i in localeMap) { if (i == locale) { return localeMap[i]; } } return locale; } export { i18n, t, setLocale, getLocale };