@matechat/core
Version:
前端智能化场景解决方案UI库,轻松构建你的AI应用。
77 lines (76 loc) • 1.99 kB
JavaScript
import { ref as u, reactive as l } from "vue";
function g(n) {
return new h(n);
}
let h = class {
constructor(r) {
this.locale = u("zh-cn"), this.messages = l({}), this.use = (e) => {
this.locale.value = e;
}, this.t = (e, s = {}) => {
const t = this.messages[this.locale.value];
return p(e, s, t);
}, this.mergeLocaleMessages = (e, s) => this.messages[e] ? (this.messages[e] = a(this.messages[e], s), a(this.messages[e], s)) : (this.messages[e] = s, this.messages), this.locale.value = r.locale, this.messages = l(r.messages);
}
};
function p(n, r, e) {
const s = n.split(".");
let t = e || {};
return s.forEach((o) => {
t = t[o] ?? n;
}), typeof t == "function" ? t(r) : t.replace(/{(\w+)}/g, (o, c) => r[c] ?? `{${c}}`);
}
function a(n, r) {
const e = { ...n };
for (const s in r)
if (Object.prototype.hasOwnProperty.call(r, s)) {
const t = r[s], o = n[s];
typeof t == "object" && t !== null ? typeof o == "object" && o !== null ? e[s] = a(o, t) : e[s] = { ...t } : e[s] = t;
}
return e;
}
const f = {
Input: {
send: "Send",
pauseAnswer: "Stop",
pleaseEnter: "Please enter your question...",
pleaseEnterPlaceholder: "Please enter your question and press {enterKey} to send, {shiftEnterKey} to wrap."
},
Md: {
toggle: "Collapse/Expand",
copy: "Copy",
diagram: "Diagram",
code: "Code"
}
}, d = {
Input: {
send: "发送",
pauseAnswer: "停止回答",
pleaseEnter: "请输入您的问题...",
pleaseEnterPlaceholder: "请输入您的问题,并按{enterKey}发送,按{shiftEnterKey}换行"
},
Md: {
toggle: "收起/展开",
copy: "复制",
diagram: "图形",
code: "代码"
}
}, y = {
"en-us": f,
"zh-cn": d
}, i = g({
locale: "zh-cn",
messages: y
});
function E() {
return i;
}
const I = {
install: (n) => {
n.config.globalProperties.McI18n = i;
}
};
export {
I as McLocale,
i as default,
E as useMcI18n
};