import { createI18n } from 'vue-i18n' import en from './en.json' import zhHans from './zh-Hans.json' // 简体中文 const messages = { en, 'zh-Hans': zhHans, // key 不能乱写,查看截图 screenshots/i18n.png } const i18n = createI18n({ locale: uni.getLocale(), // 获取已设置的语言,fallback 语言需要再 manifest.config.ts 中设置 messages, }) console.log(uni.getLocale()) console.log(i18n.global.locale) /** * 非 vue 文件使用这个方法 * @param { string } localeKey 多语言的key,eg: "app.name" */ export const translate = (localeKey: string) => { if (!localeKey) { console.error(`[i18n] Function translate(), localeKey param is required`) return '' } const locale = uni.getLocale() console.log('locale:', locale) const message = messages[locale] if (Object.keys(message).includes(localeKey)) { return message[localeKey] } return localeKey } export default i18n