From 68ee821da0dd54660df9a327e0621a16a7b13312 Mon Sep 17 00:00:00 2001 From: colin Date: Thu, 31 Jul 2025 17:42:19 +0800 Subject: [PATCH] feat(vben5): add platform locales --- apps/vben5/apps/app-antd/src/locales/index.ts | 15 ++++++---- .../vben5/packages/@abp/platform/src/index.ts | 1 + .../@abp/platform/src/locales/index.ts | 20 +++++++++++++ .../src/locales/langs/en-US/workbench.json | 30 +++++++++++++++++++ .../src/locales/langs/zh-CN/workbench.json | 30 +++++++++++++++++++ 5 files changed, 91 insertions(+), 5 deletions(-) create mode 100644 apps/vben5/packages/@abp/platform/src/locales/index.ts create mode 100644 apps/vben5/packages/@abp/platform/src/locales/langs/en-US/workbench.json create mode 100644 apps/vben5/packages/@abp/platform/src/locales/langs/zh-CN/workbench.json diff --git a/apps/vben5/apps/app-antd/src/locales/index.ts b/apps/vben5/apps/app-antd/src/locales/index.ts index f221600e7..7fe299ca0 100644 --- a/apps/vben5/apps/app-antd/src/locales/index.ts +++ b/apps/vben5/apps/app-antd/src/locales/index.ts @@ -15,6 +15,7 @@ import { preferences } from '@vben/preferences'; import { useAbpStore } from '@abp/core'; import { useLocalizationsApi } from '@abp/localization'; +import { loadPaltformMessages } from '@abp/platform'; import antdEnLocale from 'ant-design-vue/es/locale/en_US'; import antdDefaultLocale from 'ant-design-vue/es/locale/zh_CN'; import dayjs from 'dayjs'; @@ -34,13 +35,17 @@ const localesMap = loadLocalesMapFromDir( * @param lang */ async function loadMessages(lang: SupportedLanguagesType) { - const [appLocaleMessages, _, abpLocales] = await Promise.all([ - localesMap[lang]?.(), - loadThirdPartyMessage(lang), - loadAbpLocale(lang), - ]); + const [appLocaleMessages, platformLocales, _, abpLocales] = await Promise.all( + [ + localesMap[lang]?.(), + loadPaltformMessages(lang), + loadThirdPartyMessage(lang), + loadAbpLocale(lang), + ], + ); return { ...appLocaleMessages?.default, + ...platformLocales?.default, ...abpLocales, }; } diff --git a/apps/vben5/packages/@abp/platform/src/index.ts b/apps/vben5/packages/@abp/platform/src/index.ts index 14fa9fe25..ca7a7275a 100644 --- a/apps/vben5/packages/@abp/platform/src/index.ts +++ b/apps/vben5/packages/@abp/platform/src/index.ts @@ -1,4 +1,5 @@ export * from './api'; export * from './components'; export * from './hooks'; +export * from './locales'; export * from './types'; diff --git a/apps/vben5/packages/@abp/platform/src/locales/index.ts b/apps/vben5/packages/@abp/platform/src/locales/index.ts new file mode 100644 index 000000000..ccf0b963b --- /dev/null +++ b/apps/vben5/packages/@abp/platform/src/locales/index.ts @@ -0,0 +1,20 @@ +import type { SupportedLanguagesType } from '@vben/locales'; + +import { loadLocalesMapFromDir } from '@vben/locales'; + +const modules = import.meta.glob('./langs/**/*.json'); + +const localesMap = loadLocalesMapFromDir( + /\.\/langs\/([^/]+)\/(.*)\.json$/, + modules, +); + +/** + * 加载平台服务本地化资源 + * @param lang 当前语言 + * @returns 资源集合 + */ +export async function loadPaltformMessages(lang: SupportedLanguagesType) { + const locales = localesMap[lang]?.(); + return locales; +} diff --git a/apps/vben5/packages/@abp/platform/src/locales/langs/en-US/workbench.json b/apps/vben5/packages/@abp/platform/src/locales/langs/en-US/workbench.json new file mode 100644 index 000000000..1018f271c --- /dev/null +++ b/apps/vben5/packages/@abp/platform/src/locales/langs/en-US/workbench.json @@ -0,0 +1,30 @@ +{ + "header": { + "welcome": { + "atoon": "Good afternoon, {0}, pay attention to rest oh~", + "afternoon": "Good afternoon, {0}, relax in time, can improve work efficiency~", + "evening": "Good evening, {0}. Still at work? The off work~", + "morning": "Good morning, {0}. Begin your day~" + }, + "notifier": { + "title": "Notifier", + "count": "({0})" + } + }, + "content": { + "favoriteMenu": { + "title": "Favorite Menus", + "home": "Home", + "dashboard": "Dashboard", + "profile": "Personal Profile", + "settings": "Personal Settings", + "notifiers": "Notifiers" + }, + "trends": { + "title": "Latest News" + }, + "todo": { + "title": "Todo List" + } + } +} diff --git a/apps/vben5/packages/@abp/platform/src/locales/langs/zh-CN/workbench.json b/apps/vben5/packages/@abp/platform/src/locales/langs/zh-CN/workbench.json new file mode 100644 index 000000000..6dff3d09b --- /dev/null +++ b/apps/vben5/packages/@abp/platform/src/locales/langs/zh-CN/workbench.json @@ -0,0 +1,30 @@ +{ + "header": { + "welcome": { + "atoon": "中午好, {0}, 注意休息哦~", + "afternoon": "下午好, {0}, 适时放松,可以提高工作效率~", + "evening": "晚上好, {0}, 还在工作么?该下班了~", + "morning": "早安, {0}, 开始您一天的工作吧~" + }, + "notifier": { + "title": "通知", + "count": "({0})" + } + }, + "content": { + "favoriteMenu": { + "title": "常用", + "home": "首页", + "dashboard": "仪表盘", + "profile": "个人中心", + "settings": "个人设置", + "notifiers": "通知消息" + }, + "trends": { + "title": "最新消息" + }, + "todo": { + "title": "待办事项" + } + } +}