UNPKG

@jiaozhiye/qm-design-vue

Version:

A Component Library for Vue3.0

44 lines 1.08 kB
/* * @Author: 焦质晔 * @Date: 2021-02-08 16:48:18 * @Last Modified by: 焦质晔 * @Last Modified time: 2023-03-04 22:13:13 */ import dayjs from 'dayjs'; import defaultLang from './lang/zh-cn'; import '../_utils/dayjs'; import 'dayjs/locale/zh-cn'; import 'dayjs/locale/en'; let lang = defaultLang; let i18nHandler = null; export const i18n = fn => { i18nHandler = fn; }; function template(str, option) { if (!str || !option) return str; return str.replace(/\{(\w+)\}/g, (_, key) => { return option[key]; }); } export 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 ''; }; export const use = l => { lang = l || lang; if (lang.name) { dayjs.locale(lang.name); } }; export const setLocale = use;