UNPKG

@arco-vue-pro-components/pro-components

Version:
70 lines (69 loc) 1.91 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); var vue = require("vue"); var context = require("../_utils/context.js"); var is = require("../_utils/is.js"); var zh_CN = require("./lang/zh_CN.js"); var en_US = require("./lang/en_US.js"); const LOCALE = vue.ref("zh-CN"); const I18N_MESSAGES = vue.reactive({ "zh-CN": zh_CN, "en-US": en_US }); const useI18n = () => { const configProvider = vue.inject(context.configProviderInjectionKey, void 0); const i18nMessage = vue.computed( () => { var _a; return (_a = configProvider == null ? void 0 : configProvider.locale) != null ? _a : I18N_MESSAGES[LOCALE.value]; } ); const locale = vue.computed(() => i18nMessage.value.locale); const transform = (key, ...args) => { const keyArray = key.split("."); let temp = i18nMessage.value; for (const keyItem of keyArray) { if (!temp[keyItem]) { return key; } temp = temp[keyItem]; } if (is.isString(temp)) { if (args.length > 0) { return temp.replace(/{(\d+)}/g, (sub, index) => { var _a; return (_a = args[index]) != null ? _a : sub; }); } return temp; } return temp; }; const getMessage = (key, defaultMsg, ...args) => { const keyArray = key.split("."); let temp = i18nMessage.value; for (const keyItem of keyArray) { if (!temp[keyItem]) { return defaultMsg || key; } temp = temp[keyItem]; } if (is.isString(temp)) { if (args.length > 0) { return temp.replace(/{(\d+)}/g, (sub, index) => { var _a; return (_a = args[index]) != null ? _a : sub; }); } return temp; } return temp; }; return { i18nMessage, locale, t: transform, getMessage }; }; exports.useI18n = useI18n;