import { computed } from 'vue'; import { createI18n, useI18n } from 'vue-i18n'; import enUS from './locale/en-US'; import zhCN from './locale/zh-CN'; import { isZhCN } from './utils/util'; const i18n = createI18n({ legacy: false, locale: isZhCN(location.pathname) ? 'zh-CN' : 'en-US', fallbackLocale: 'en-US', messages: { 'zh-CN': zhCN, 'en-US': enUS, }, }); /** * @description: 传入localMap,根据当前的语言类型输入i18nmessage,只是中英两种 * @param {object} localeMap {en:{xxx:xxx},cn:{xxx:xxx} } * @return {object} [i18nMessage, localeType] */ export function useLocale(localeMap = {}) { const { locale } = useI18n(); const localeType = computed(() => (locale.value === 'zh-CN' ? 'cn' : 'en')); const i18nMessage = computed(() => (localeMap && localeMap[localeType.value]) || {}); return [i18nMessage, localeType]; } export default i18n;