@arco-vue-pro-components/pro-components
Version:
基于@arco-design/web-vue组件的高级组件,包括pro-table
70 lines (69 loc) • 1.91 kB
JavaScript
;
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;