- Vue 3 + TypeScript + Element Plus 前端界面 - Pinia 状态管理 - Vue Router 4 路由管理 - Axios HTTP 客户端 - MSW (Mock Service Worker) 开发环境模拟 - 账户管理界面 (列表、详情、三科目余额展示) - 交易管理界面 (列表、详情) - 对账管理界面 (三账校验) - 完善的 API 客户端封装 - Docker 容器化配置 - Nginx 配置用于生产环境
30 lines
1.0 KiB
JavaScript
30 lines
1.0 KiB
JavaScript
import { unref, computed, isRef, ref, inject } from 'vue';
|
|
import { get } from 'lodash-unified';
|
|
import English from '../../locale/lang/en.mjs';
|
|
|
|
const buildTranslator = (locale) => (path, option) => translate(path, option, unref(locale));
|
|
const translate = (path, option, locale) => get(locale, path, path).replace(
|
|
/\{(\w+)\}/g,
|
|
(_, key) => {
|
|
var _a;
|
|
return `${(_a = option == null ? void 0 : option[key]) != null ? _a : `{${key}}`}`;
|
|
}
|
|
);
|
|
const buildLocaleContext = (locale) => {
|
|
const lang = computed(() => unref(locale).name);
|
|
const localeRef = isRef(locale) ? locale : ref(locale);
|
|
return {
|
|
lang,
|
|
locale: localeRef,
|
|
t: buildTranslator(locale)
|
|
};
|
|
};
|
|
const localeContextKey = Symbol("localeContextKey");
|
|
const useLocale = (localeOverrides) => {
|
|
const locale = localeOverrides || inject(localeContextKey, ref());
|
|
return buildLocaleContext(computed(() => locale.value || English));
|
|
};
|
|
|
|
export { buildLocaleContext, buildTranslator, localeContextKey, translate, useLocale };
|
|
//# sourceMappingURL=index.mjs.map
|