i18n.ts
652 Bytes
import { createI18n } from 'vue-i18n'
import en from '../locales/en'
import zh from '../locales/zh'
function getStoredLocale() {
try {
if (typeof uni !== 'undefined' && uni.getStorageSync) {
return uni.getStorageSync('language') || 'en'
}
} catch (_) {}
return 'en'
}
const i18n = createI18n({
legacy: false,
locale: getStoredLocale(),
fallbackLocale: 'en',
messages: { en, zh },
})
export function getLocale(): string {
return uni.getStorageSync('language') || 'en'
}
export function setLocale(locale: 'en' | 'zh') {
uni.setStorageSync('language', locale)
i18n.global.locale.value = locale
}
export default i18n