feat: add dayjs
This commit is contained in:
@@ -41,6 +41,7 @@
|
||||
"@vben/types": "workspace:*",
|
||||
"@vben/utils": "workspace:*",
|
||||
"@vueuse/core": "catalog:",
|
||||
"dayjs": "catalog:",
|
||||
"naive-ui": "catalog:",
|
||||
"pinia": "catalog:",
|
||||
"vue": "catalog:",
|
||||
|
||||
@@ -9,6 +9,8 @@ import {
|
||||
} from '@vben/locales';
|
||||
import { preferences } from '@vben/preferences';
|
||||
|
||||
import dayjs from 'dayjs';
|
||||
|
||||
const modules = import.meta.glob('./langs/**/*.json');
|
||||
|
||||
const localesMap = loadLocalesMapFromDir(
|
||||
@@ -22,10 +24,48 @@ const localesMap = loadLocalesMapFromDir(
|
||||
* @param lang
|
||||
*/
|
||||
async function loadMessages(lang: SupportedLanguagesType) {
|
||||
const appLocaleMessages = await localesMap[lang]?.();
|
||||
const [appLocaleMessages] = await Promise.all([
|
||||
localesMap[lang]?.(),
|
||||
loadThirdPartyMessage(lang),
|
||||
]);
|
||||
return appLocaleMessages?.default;
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载第三方组件库的语言包
|
||||
* @param lang
|
||||
*/
|
||||
async function loadThirdPartyMessage(lang: SupportedLanguagesType) {
|
||||
await loadDayjsLocale(lang);
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载dayjs的语言包
|
||||
* @param lang
|
||||
*/
|
||||
async function loadDayjsLocale(lang: SupportedLanguagesType) {
|
||||
let locale;
|
||||
switch (lang) {
|
||||
case 'en-US': {
|
||||
locale = await import('dayjs/locale/en');
|
||||
break;
|
||||
}
|
||||
case 'zh-CN': {
|
||||
locale = await import('dayjs/locale/zh-cn');
|
||||
break;
|
||||
}
|
||||
// 默认使用英语
|
||||
default: {
|
||||
locale = await import('dayjs/locale/en');
|
||||
}
|
||||
}
|
||||
if (locale) {
|
||||
dayjs.locale(locale);
|
||||
} else {
|
||||
console.error(`Failed to load dayjs locale for ${lang}`);
|
||||
}
|
||||
}
|
||||
|
||||
async function setupI18n(app: App, options: LocaleSetupOptions = {}) {
|
||||
await coreSetup(app, {
|
||||
defaultLocale: preferences.app.locale,
|
||||
|
||||
67
pnpm-lock.yaml
generated
67
pnpm-lock.yaml
generated
@@ -42,9 +42,6 @@ catalogs:
|
||||
'@form-create/element-ui':
|
||||
specifier: ^3.2.27
|
||||
version: 3.2.31
|
||||
'@form-create/naive-ui':
|
||||
specifier: ^3.2.27
|
||||
version: 3.2.31
|
||||
'@iconify/json':
|
||||
specifier: ^2.2.354
|
||||
version: 2.2.395
|
||||
@@ -951,12 +948,6 @@ importers:
|
||||
|
||||
apps/web-naive:
|
||||
dependencies:
|
||||
'@form-create/antd-designer':
|
||||
specifier: 'catalog:'
|
||||
version: 3.3.2(vue@3.5.22(typescript@5.9.3))
|
||||
'@form-create/naive-ui':
|
||||
specifier: 'catalog:'
|
||||
version: 3.2.31(vue@3.5.22(typescript@5.9.3))
|
||||
'@vben/access':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/effects/access
|
||||
@@ -1002,15 +993,9 @@ importers:
|
||||
'@vueuse/core':
|
||||
specifier: 'catalog:'
|
||||
version: 13.9.0(vue@3.5.22(typescript@5.9.3))
|
||||
cropperjs:
|
||||
specifier: 'catalog:'
|
||||
version: 1.6.2
|
||||
dayjs:
|
||||
specifier: 'catalog:'
|
||||
version: 1.11.18
|
||||
highlight.js:
|
||||
specifier: 'catalog:'
|
||||
version: 11.11.1
|
||||
naive-ui:
|
||||
specifier: 'catalog:'
|
||||
version: 2.43.1(vue@3.5.22(typescript@5.9.3))
|
||||
@@ -3885,21 +3870,6 @@ packages:
|
||||
'@form-create/component-elm-upload@3.2.31':
|
||||
resolution: {integrity: sha512-2XJr7x8gPf+U0FnPYLyPt0+qLG9+lZSO7tlInT0fw7TJF9pWzrtxicnX6sWvd4EoWCNzYU13HXL33Aq1zP2IeA==}
|
||||
|
||||
'@form-create/component-naive-checkbox@3.2.31':
|
||||
resolution: {integrity: sha512-MLIVLg2A6mHjKnwgrohVX6AtyKJyQ58G3DD6zpS30nPvyaFJNgrL5N1bU5vQ9IwC4YsO8dbBiR1epxRJ+53l2g==}
|
||||
|
||||
'@form-create/component-naive-frame@3.2.31':
|
||||
resolution: {integrity: sha512-XmQ0ywyULRUPyyn0bSKMijRsWIIg1U3Ytju+kQfclOb6gSzSQ0ULJqEQQRXHhIhDMC5g8QsBbq4S/bZgiHWUNA==}
|
||||
|
||||
'@form-create/component-naive-group@3.2.31':
|
||||
resolution: {integrity: sha512-HRINcs+9+kq9ToByqg9HJMR+EWvtTkv0SrprZcBywZ1FWBb+2GDV2Y4CRm8JGxSVNS/SYU5c6q8YOl71ecV2sQ==}
|
||||
|
||||
'@form-create/component-naive-radio@3.2.31':
|
||||
resolution: {integrity: sha512-0XRQvtDAz25BDAuBARW2Ds0J5jCCTKgaVlv4/o7A8Ck16PF2rXdwU8XHaKEFQNb8Q8VMAFZjJgsQk5r+xZxCuw==}
|
||||
|
||||
'@form-create/component-naive-upload@3.2.31':
|
||||
resolution: {integrity: sha512-qYAZxtC09AJw8BaN913Gt22H0vymPfAFQMGhLP0gyJQv74dUa3caFrGAZkf5ie+/YbQEGqPnF5ckXGt5yS4VFg==}
|
||||
|
||||
'@form-create/component-subform@3.1.34':
|
||||
resolution: {integrity: sha512-OJcFH/7MTHx7JLEjDK/weS27qfuFWAI+OK+gXTJ2jIt9aZkGWF/EWkjetiJLt5a0KMw4Z15wOS2XCY9pVK9vlA==}
|
||||
|
||||
@@ -3921,11 +3891,6 @@ packages:
|
||||
peerDependencies:
|
||||
vue: ^3.5.17
|
||||
|
||||
'@form-create/naive-ui@3.2.31':
|
||||
resolution: {integrity: sha512-mt/IR3TmfkLI/PCpxt1UkUy0rsQpokOZCLJI1SRh+Ptwm0V6jPX1BUiNtJ8+a8i1moJ6AIIGx6FaM0nr0hzidw==}
|
||||
peerDependencies:
|
||||
vue: ^3.5.17
|
||||
|
||||
'@form-create/utils@3.2.31':
|
||||
resolution: {integrity: sha512-YcisHXuQEF0r9y2VKS2CB2nMQ2q8EkKvQXp4nPR9sjbsCabPZOXq2n2MrkWDMhwQNwep08/0NCf7z0wslHzyWQ==}
|
||||
|
||||
@@ -13738,26 +13703,6 @@ snapshots:
|
||||
dependencies:
|
||||
'@form-create/utils': 3.2.31
|
||||
|
||||
'@form-create/component-naive-checkbox@3.2.31':
|
||||
dependencies:
|
||||
'@form-create/utils': 3.2.31
|
||||
|
||||
'@form-create/component-naive-frame@3.2.31':
|
||||
dependencies:
|
||||
'@form-create/utils': 3.2.31
|
||||
|
||||
'@form-create/component-naive-group@3.2.31':
|
||||
dependencies:
|
||||
'@form-create/utils': 3.2.31
|
||||
|
||||
'@form-create/component-naive-radio@3.2.31':
|
||||
dependencies:
|
||||
'@form-create/utils': 3.2.31
|
||||
|
||||
'@form-create/component-naive-upload@3.2.31':
|
||||
dependencies:
|
||||
'@form-create/utils': 3.2.31
|
||||
|
||||
'@form-create/component-subform@3.1.34': {}
|
||||
|
||||
'@form-create/component-wangeditor@3.2.14':
|
||||
@@ -13797,18 +13742,6 @@ snapshots:
|
||||
'@form-create/utils': 3.2.31
|
||||
vue: 3.5.22(typescript@5.9.3)
|
||||
|
||||
'@form-create/naive-ui@3.2.31(vue@3.5.22(typescript@5.9.3))':
|
||||
dependencies:
|
||||
'@form-create/component-naive-checkbox': 3.2.31
|
||||
'@form-create/component-naive-frame': 3.2.31
|
||||
'@form-create/component-naive-group': 3.2.31
|
||||
'@form-create/component-naive-radio': 3.2.31
|
||||
'@form-create/component-naive-upload': 3.2.31
|
||||
'@form-create/component-subform': 3.1.34
|
||||
'@form-create/core': 3.2.31(vue@3.5.22(typescript@5.9.3))
|
||||
'@form-create/utils': 3.2.31
|
||||
vue: 3.5.22(typescript@5.9.3)
|
||||
|
||||
'@form-create/utils@3.2.31': {}
|
||||
|
||||
'@gera2ld/jsx-dom@2.2.2':
|
||||
|
||||
Reference in New Issue
Block a user