import req from '@/utils/request' import $store from '@/store' var dynamicI18n = { //获取所有的语言 getlang(i18n) { req .post(window.context.portal + `/i18n/custom/i18nMessageType/v1/all`) .then((res) => { if (res && JSON.stringify(res) != '{}') { $store.dispatch('i18n/setLangList', res) res.forEach((ele) => { dynamicI18n.getMessage(ele.type, i18n) }) } }) }, //获取语言对应的资源 getMessage(langKey, i18n) { req .get( window.context.portal + `/i18n/custom/i18nMessage/v1/getLangPackage?type=${langKey}` ) .then((res) => { const data = res || {} //加载本地的资源 let localMassage = {} try { localMassage = require(`./${langKey}`).default } catch (err) {} //加载elementUi的资源 let elementMessage = {} try { elementMessage = require(`element-ui/lib/locale/lang/${langKey}`).default } catch (err) {} //加载hotentUi的资源 let hotentMessage = {} try { hotentMessage = require(`hotent-ui/src/locale/lang/${langKey}`).default } catch (err) {} let hotentPortalMessage = {} try { hotentPortalMessage = require(`hotent-portal/src/locale/lang/${langKey}`).default } catch (err) {} i18n.setLocaleMessage(langKey, { ...i18n.getLocaleMessage(langKey), ...elementMessage, ...hotentMessage, ...hotentPortalMessage, ...localMassage, ...data, }) }) }, } export default dynamicI18n