UNPKG

element-plus

Version:

A Component Library for Vue3.0

44 lines (41 loc) 1.02 kB
import defaultLang from './lang/en'; import dayjs from 'dayjs'; let lang = defaultLang; let i18nHandler = null; const i18n = (fn) => { i18nHandler = fn; }; function template(str, option) { if (!str || !option) return str; return str.replace(/\{(\w+)\}/g, (match, key) => { return option[key]; }); } const t = (...args) => { if (i18nHandler) return i18nHandler(...args); const [path, option] = args; let value; const array = path.split('.'); let current = lang; for (let i = 0, j = array.length; i < j; i++) { const property = array[i]; value = current[property]; if (i === j - 1) return template(value, option); if (!value) return ''; current = value; } return ''; }; const use = (l) => { lang = l || lang; if (lang.name) { dayjs.locale(lang.name); } }; var index = { use, t, i18n }; export default index; export { i18n, t, use };