diff --git a/.tazerc.json b/.tazerc.json deleted file mode 100644 index 4e80ab45..00000000 --- a/.tazerc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "exclude": ["zx", "eslint", "eslint-plugin-unused-imports"] -} diff --git a/apps/backend-mock/src/modules/menu/menu.controller.ts b/apps/backend-mock/src/modules/menu/menu.controller.ts index 6baa4187..92c137dc 100644 --- a/apps/backend-mock/src/modules/menu/menu.controller.ts +++ b/apps/backend-mock/src/modules/menu/menu.controller.ts @@ -50,31 +50,31 @@ export class MenuController { const createDemosMenus = (role: 'admin' | 'super' | 'user') => { const roleWithMenus = { admin: { - component: '/demos/access/backend/access-test-2', + component: '/demos/access/backend/admin-visible', meta: { icon: 'mdi:button-cursor', - title: 'page.demos.access.access-test-2', + title: 'page.demos.access.adminVisible', }, - name: 'AccessBackendTest2', - path: 'access-test-2', + name: 'AccessBackendAdminVisible', + path: 'admin-visible', }, super: { - component: '/demos/access/backend/access-test-1', + component: '/demos/access/backend/super-visible', meta: { icon: 'mdi:button-cursor', - title: 'page.demos.access.access-test-1', + title: 'page.demos.access.superVisible', }, - name: 'AccessBackendTest1', - path: 'access-test-1', + name: 'AccessBackendSuperVisible', + path: 'super-visible', }, user: { - component: '/demos/access/backend/access-test-3', + component: '/demos/access/backend/user-visible', meta: { icon: 'mdi:button-cursor', - title: 'page.demos.access.access-test-3', + title: 'page.demos.access.userVisible', }, - name: 'AccessBackendTest3', - path: 'access-test-3', + name: 'AccessBackendUserVisible', + path: 'user-visible', }, }; @@ -105,7 +105,7 @@ export class MenuController { path: 'backend', meta: { icon: 'mdi:cloud-key-outline', - title: 'page.demos.access.backend-control', + title: 'page.demos.access.backendControl', }, redirect: '/demos/access/backend/page-control', children: [ @@ -115,7 +115,7 @@ export class MenuController { component: '/demos/access/backend/index', meta: { icon: 'mdi:page-previous-outline', - title: 'page.demos.access.page', + title: 'page.demos.access.pageAccess', }, }, { @@ -124,7 +124,7 @@ export class MenuController { component: '/demos/access/backend/button-control', meta: { icon: 'mdi:button-cursor', - title: 'page.demos.access.button', + title: 'page.demos.access.buttonControl', }, }, roleWithMenus[role], diff --git a/apps/web-antd/src/apis/modules/user.ts b/apps/web-antd/src/apis/modules/user.ts index 87d052af..07635b74 100644 --- a/apps/web-antd/src/apis/modules/user.ts +++ b/apps/web-antd/src/apis/modules/user.ts @@ -1,14 +1,14 @@ import type { UserInfo } from '@vben/types'; -import type { UserApiType } from '../types'; +import type { UserApi } from '../types'; import { requestClient } from '#/forward'; /** * 登录 */ -async function userLogin(data: UserApiType.LoginParams) { - return requestClient.post('/auth/login', data); +async function userLogin(data: UserApi.LoginParams) { + return requestClient.post('/auth/login', data); } /** diff --git a/apps/web-antd/src/apis/types/user.ts b/apps/web-antd/src/apis/types/user.ts index 602bec6a..6c49df91 100644 --- a/apps/web-antd/src/apis/types/user.ts +++ b/apps/web-antd/src/apis/types/user.ts @@ -1,4 +1,4 @@ -namespace UserApiType { +namespace UserApi { /** 登录接口参数 */ export interface LoginParams { password: string; @@ -16,4 +16,4 @@ namespace UserApiType { } } -export type { UserApiType }; +export type { UserApi }; diff --git a/apps/web-antd/src/bootstrap.ts b/apps/web-antd/src/bootstrap.ts index 8dab5652..600db698 100644 --- a/apps/web-antd/src/bootstrap.ts +++ b/apps/web-antd/src/bootstrap.ts @@ -17,7 +17,7 @@ async function bootstrap(namespace: string) { await setupI18n(app, { defaultLocale: preferences.app.locale, loadMessages, - missingWarn: import.meta.env.PROD, + missingWarn: !import.meta.env.PROD, }); // 配置 pinia-store diff --git a/apps/web-antd/src/forward/access.ts b/apps/web-antd/src/forward/access.ts index 8339a895..2f8016b6 100644 --- a/apps/web-antd/src/forward/access.ts +++ b/apps/web-antd/src/forward/access.ts @@ -25,7 +25,7 @@ async function generateAccess(options: GeneratorMenuAndRoutesOptions) { ...options, fetchMenuListAsync: async () => { message.loading({ - content: `${$t('common.loading-menu')}...`, + content: `${$t('common.loadingMenu')}...`, duration: 1.5, }); return await getAllMenus(); diff --git a/apps/web-antd/src/locales/index.ts b/apps/web-antd/src/locales/index.ts index aa1dc256..2a5ddd68 100644 --- a/apps/web-antd/src/locales/index.ts +++ b/apps/web-antd/src/locales/index.ts @@ -16,6 +16,7 @@ const localesMap = loadLocalesMap(modules); /** * 加载应用特有的语言包 + * 这里也可以改造为从服务端获取翻译数据 * @param lang */ async function loadMessages(lang: SupportedLanguagesType) { diff --git a/apps/web-antd/src/locales/langs/en-US.json b/apps/web-antd/src/locales/langs/en-US.json index 9e154deb..4f7723dc 100644 --- a/apps/web-antd/src/locales/langs/en-US.json +++ b/apps/web-antd/src/locales/langs/en-US.json @@ -4,29 +4,28 @@ "title": "Demos", "access": { "title": "Access Control", - "frontend-control": "Front-end Control", - "backend-control": "Backend Control", - "page": "Page visit", - "button": "Button control", - "loading-menu": "In the loading menu", - "access-test-1": "Super visit", - "access-test-2": "Admin visit", - "access-test-3": "User visit" + "frontendControl": "Frontend Control", + "backendControl": "Backend Control", + "pageAccess": "Page Access", + "buttonControl": "Button Control", + "superVisible": "Visible to Super", + "adminVisible": "Visible to Admin", + "userVisible": "Visible to User" }, "nested": { "title": "Nested Menu", "menu1": "Menu 1", "menu2": "Menu 2", - "menu21": "Menu 2-1", + "menu2_1": "Menu 2-1", "menu3": "Menu 3", - "menu31": "Menu 3-1", - "menu32": "Menu 3-2", - "menu321": "Menu 3-2-1" + "menu3_1": "Menu 3-1", + "menu3_2": "Menu 3-2", + "menu3_2_1": "Menu 3-2-1" }, "outside": { - "title": "External Page", - "embedded": "embedded Page", - "external-link": "External Link" + "title": "External Pages", + "embedded": "Embedded", + "externalLink": "External Link" }, "fallback": { "title": "Fallback Page" } } diff --git a/apps/web-antd/src/locales/langs/zh-CN.json b/apps/web-antd/src/locales/langs/zh-CN.json index a3a15c0e..44c16184 100644 --- a/apps/web-antd/src/locales/langs/zh-CN.json +++ b/apps/web-antd/src/locales/langs/zh-CN.json @@ -4,28 +4,28 @@ "title": "演示", "access": { "title": "访问控制", - "frontend-control": "前端控制", - "backend-control": "后端控制", - "page": "页面访问", - "button": "按钮控制", - "access-test-1": "Super 可见", - "access-test-2": "Admin 可见", - "access-test-3": "User 可见" + "frontendControl": "前端控制", + "backendControl": "后端控制", + "pageAccess": "页面访问", + "buttonControl": "按钮控制", + "superVisible": "Super 可见", + "adminVisible": "Admin 可见", + "userVisible": "User 可见" }, "nested": { "title": "嵌套菜单", "menu1": "菜单 1", "menu2": "菜单 2", - "menu21": "菜单 2-1", + "menu2_1": "菜单 2-1", "menu3": "菜单 3", - "menu31": "菜单 3-1", - "menu32": "菜单 3-2", - "menu321": "菜单 3-2-1" + "menu3_1": "菜单 3-1", + "menu3_2": "菜单 3-2", + "menu3_2_1": "菜单 3-2-1" }, "outside": { "title": "外部页面", "embedded": "内嵌", - "external-link": "外链" + "externalLink": "外链" }, "fallback": { "title": "缺省页" diff --git a/apps/web-antd/src/router/routes/_essentials.ts b/apps/web-antd/src/router/routes/_essentials.ts index bb619a39..0965912b 100644 --- a/apps/web-antd/src/router/routes/_essentials.ts +++ b/apps/web-antd/src/router/routes/_essentials.ts @@ -60,7 +60,7 @@ const essentialsRoutes: RouteRecordRaw[] = [ component: () => import('#/views/_essential/authentication/qrcode-login.vue'), meta: { - title: $t('page.essentials.qrcode-login'), + title: $t('page.essentials.qrcodeLogin'), }, }, { @@ -69,7 +69,7 @@ const essentialsRoutes: RouteRecordRaw[] = [ component: () => import('#/views/_essential/authentication/forget-password.vue'), meta: { - title: $t('page.essentials.forget-password'), + title: $t('page.essentials.forgetPassword'), }, }, { diff --git a/apps/web-antd/src/router/routes/modules/demos.ts b/apps/web-antd/src/router/routes/modules/demos.ts index f8f28cba..fdcc1e78 100644 --- a/apps/web-antd/src/router/routes/modules/demos.ts +++ b/apps/web-antd/src/router/routes/modules/demos.ts @@ -31,7 +31,7 @@ const routes: RouteRecordRaw[] = [ redirect: '/demos/access/frontend/page-control', meta: { icon: 'mdi:table-key', - title: $t('page.demos.access.frontend-control'), + title: $t('page.demos.access.frontendControl'), }, children: [ { @@ -41,7 +41,7 @@ const routes: RouteRecordRaw[] = [ import('#/views/demos/access/frontend/index.vue'), meta: { icon: 'mdi:page-previous-outline', - title: $t('page.demos.access.page'), + title: $t('page.demos.access.pageAccess'), }, }, { @@ -51,40 +51,40 @@ const routes: RouteRecordRaw[] = [ import('#/views/demos/access/frontend/button-control.vue'), meta: { icon: 'mdi:button-cursor', - title: $t('page.demos.access.button'), + title: $t('page.demos.access.buttonControl'), }, }, { - name: 'AccessFrontendTest1', - path: 'access-test-1', + name: 'AccessFrontendSuperVisible', + path: 'super-visible', component: () => - import('#/views/demos/access/frontend/access-test-1.vue'), + import('#/views/demos/access/frontend/super-visible.vue'), meta: { authority: ['super'], icon: 'mdi:button-cursor', - title: $t('page.demos.access.access-test-1'), + title: $t('page.demos.access.superVisible'), }, }, { - name: 'AccessFrontendTest2', - path: 'access-test-2', + name: 'AccessFrontendAdminVisible', + path: 'admin-visible', component: () => - import('#/views/demos/access/frontend/access-test-2.vue'), + import('#/views/demos/access/frontend/admin-visible.vue'), meta: { authority: ['admin'], icon: 'mdi:button-cursor', - title: $t('page.demos.access.access-test-2'), + title: $t('page.demos.access.adminVisible'), }, }, { - name: 'AccessFrontendTest3', - path: 'access-test-3', + name: 'AccessFrontendUserVisible', + path: 'user-visible', component: () => - import('#/views/demos/access/frontend/access-test-3.vue'), + import('#/views/demos/access/frontend/user-visible.vue'), meta: { authority: ['user'], icon: 'mdi:button-cursor', - title: $t('page.demos.access.access-test-3'), + title: $t('page.demos.access.userVisible'), }, }, ], @@ -95,7 +95,7 @@ const routes: RouteRecordRaw[] = [ component: () => import('#/views/demos/access/backend/index.vue'), meta: { icon: 'mdi:cloud-key-outline', - title: $t('page.demos.access.backend-control'), + title: $t('page.demos.access.backendControl'), }, children: [ { @@ -105,7 +105,7 @@ const routes: RouteRecordRaw[] = [ import('#/views/demos/access/frontend/index.vue'), meta: { icon: 'mdi:page-previous-outline', - title: $t('page.demos.access.page'), + title: $t('page.demos.access.pageAccess'), }, }, ], @@ -209,7 +209,7 @@ const routes: RouteRecordRaw[] = [ path: 'external-link', meta: { icon: 'mdi:newspaper-variant-multiple-outline', - title: $t('page.demos.outside.external-link'), + title: $t('page.demos.outside.externalLink'), }, redirect: '/outside/external-link/vite', children: [ @@ -273,7 +273,7 @@ const routes: RouteRecordRaw[] = [ meta: { icon: 'ic:round-menu', keepAlive: true, - title: $t('page.demos.nested.menu21'), + title: $t('page.demos.nested.menu2_1'), }, }, ], @@ -294,7 +294,7 @@ const routes: RouteRecordRaw[] = [ meta: { icon: 'ic:round-menu', keepAlive: true, - title: $t('page.demos.nested.menu31'), + title: $t('page.demos.nested.menu3_1'), }, }, { @@ -302,7 +302,7 @@ const routes: RouteRecordRaw[] = [ path: 'menu3-2', meta: { icon: 'ic:round-menu', - title: $t('page.demos.nested.menu32'), + title: $t('page.demos.nested.menu3_2'), }, redirect: '/nested/menu3/menu3-2/menu3-2-1', children: [ @@ -314,7 +314,7 @@ const routes: RouteRecordRaw[] = [ meta: { icon: 'ic:round-menu', keepAlive: true, - title: $t('page.demos.nested.menu321'), + title: $t('page.demos.nested.menu3_2_1'), }, }, ], diff --git a/apps/web-antd/src/views/_essential/authentication/login.vue b/apps/web-antd/src/views/_essential/authentication/login.vue index 8dc79279..964b57d2 100644 --- a/apps/web-antd/src/views/_essential/authentication/login.vue +++ b/apps/web-antd/src/views/_essential/authentication/login.vue @@ -20,9 +20,9 @@ async function handleLogin(params: LoginAndRegisterParams) { const { userInfo } = await accessStore.authLogin(params); if (userInfo?.realName) { notification.success({ - description: `${$t('authentication.login-success-desc')}:${userInfo?.realName}`, + description: `${$t('authentication.loginSuccessDesc')}:${userInfo?.realName}`, duration: 3, - message: $t('authentication.login-success'), + message: $t('authentication.loginSuccess'), }); } } diff --git a/apps/web-antd/src/views/demos/access/backend/access-test-2.vue b/apps/web-antd/src/views/demos/access/backend/admin-visible.vue similarity index 100% rename from apps/web-antd/src/views/demos/access/backend/access-test-2.vue rename to apps/web-antd/src/views/demos/access/backend/admin-visible.vue diff --git a/apps/web-antd/src/views/demos/access/backend/access-test-1.vue b/apps/web-antd/src/views/demos/access/backend/super-visible.vue similarity index 100% rename from apps/web-antd/src/views/demos/access/backend/access-test-1.vue rename to apps/web-antd/src/views/demos/access/backend/super-visible.vue diff --git a/apps/web-antd/src/views/demos/access/backend/access-test-3.vue b/apps/web-antd/src/views/demos/access/backend/user-visible.vue similarity index 100% rename from apps/web-antd/src/views/demos/access/backend/access-test-3.vue rename to apps/web-antd/src/views/demos/access/backend/user-visible.vue diff --git a/apps/web-antd/src/views/demos/access/frontend/access-test-2.vue b/apps/web-antd/src/views/demos/access/frontend/admin-visible.vue similarity index 100% rename from apps/web-antd/src/views/demos/access/frontend/access-test-2.vue rename to apps/web-antd/src/views/demos/access/frontend/admin-visible.vue diff --git a/apps/web-antd/src/views/demos/access/frontend/access-test-1.vue b/apps/web-antd/src/views/demos/access/frontend/super-visible.vue similarity index 100% rename from apps/web-antd/src/views/demos/access/frontend/access-test-1.vue rename to apps/web-antd/src/views/demos/access/frontend/super-visible.vue diff --git a/apps/web-antd/src/views/demos/access/frontend/access-test-3.vue b/apps/web-antd/src/views/demos/access/frontend/user-visible.vue similarity index 100% rename from apps/web-antd/src/views/demos/access/frontend/access-test-3.vue rename to apps/web-antd/src/views/demos/access/frontend/user-visible.vue diff --git a/cspell.json b/cspell.json index ccf98dc4..a61ac275 100644 --- a/cspell.json +++ b/cspell.json @@ -27,6 +27,7 @@ "sonner", "unplugin", "vben", + "vbenjs", "vueuse", "yxxx", "nuxt", diff --git a/internal/lint-configs/eslint-config/package.json b/internal/lint-configs/eslint-config/package.json index 5dbcdf15..fba2fbae 100644 --- a/internal/lint-configs/eslint-config/package.json +++ b/internal/lint-configs/eslint-config/package.json @@ -46,7 +46,7 @@ "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-regexp": "^2.6.0", "eslint-plugin-unicorn": "^54.0.0", - "eslint-plugin-unused-imports": "^3.2.0", + "eslint-plugin-unused-imports": "^4.0.0", "eslint-plugin-vitest": "^0.5.4", "eslint-plugin-vue": "^9.27.0", "globals": "^15.8.0", diff --git a/internal/lint-configs/stylelint-config/package.json b/internal/lint-configs/stylelint-config/package.json index 10d6ff34..a83c08da 100644 --- a/internal/lint-configs/stylelint-config/package.json +++ b/internal/lint-configs/stylelint-config/package.json @@ -30,7 +30,7 @@ "dependencies": { "@stylistic/stylelint-plugin": "^2.1.2", "stylelint-config-recess-order": "^5.0.1", - "stylelint-scss": "^6.4.0" + "stylelint-scss": "^6.4.1" }, "devDependencies": { "postcss": "^8.4.39", diff --git a/internal/node-utils/package.json b/internal/node-utils/package.json index 6e3a6078..e3b57c51 100644 --- a/internal/node-utils/package.json +++ b/internal/node-utils/package.json @@ -37,6 +37,6 @@ "pkg-types": "^1.1.3", "prettier": "^3.3.2", "rimraf": "^6.0.0", - "zx": "^7.2.3" + "zx": "^8.1.4" } } diff --git a/internal/vite-config/package.json b/internal/vite-config/package.json index a1fad03b..c410c684 100644 --- a/internal/vite-config/package.json +++ b/internal/vite-config/package.json @@ -46,7 +46,7 @@ "rollup": "^4.18.1", "rollup-plugin-visualizer": "^5.12.0", "sass": "^1.77.7", - "unplugin-turbo-console": "^1.9.0", + "unplugin-turbo-console": "^1.9.2", "vite": "^5.3.3", "vite-plugin-compression": "^0.5.1", "vite-plugin-dts": "^3.9.1", diff --git a/package.json b/package.json index a16ab881..80c3062e 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,8 @@ "publint": "vsh publint", "reinstall": "pnpm clean --del-lock && pnpm bootstrap", "test": "vitest", - "version": "pnpm exec changeset version && pnpm install --no-frozen-lockfile" + "version": "pnpm exec changeset version && pnpm install --no-frozen-lockfile", + "update:deps": " pnpm update --latest --recursive" }, "devDependencies": { "@changesets/changelog-github": "^0.5.0", @@ -68,7 +69,6 @@ "is-ci": "^3.0.1", "jsdom": "^24.1.0", "rimraf": "^6.0.0", - "taze": "^0.14.2", "turbo": "^2.0.6", "typescript": "^5.5.3", "unbuild": "^2.0.0", @@ -88,6 +88,12 @@ "clsx": "^2.1.1", "vue": "^3.4.31" }, + "peerDependencyRules": { + "allowedVersions": { + "eslint": "*", + " @typescript-eslint/eslint-plugin": "*" + } + }, "neverBuiltDependencies": [ "canvas", "node-gyp", @@ -95,8 +101,7 @@ ], "updateConfig": { "ignoreDependencies": [ - "eslint", - "zx" + "eslint" ] } } diff --git a/packages/@core/forward/stores/src/modules/tabbar.test.ts b/packages/@core/forward/stores/src/modules/tabbar.test.ts index a9974acf..ef50f9df 100644 --- a/packages/@core/forward/stores/src/modules/tabbar.test.ts +++ b/packages/@core/forward/stores/src/modules/tabbar.test.ts @@ -101,7 +101,7 @@ describe('useCoreAccessStore', () => { const store = useCoreTabbarStore(); store.cachedTabs.add('Home'); store.cachedTabs.add('About'); - expect(store.cachedTabs).toEqual(['Home', 'About']); + expect(store.getCachedTabs).toEqual(['Home', 'About']); }); it('returns all tabs, including affix tabs', () => { diff --git a/packages/@core/locales/src/index.ts b/packages/@core/locales/src/index.ts index 480686e3..a9ddcec2 100644 --- a/packages/@core/locales/src/index.ts +++ b/packages/@core/locales/src/index.ts @@ -28,10 +28,11 @@ async function setupI18n(app: App, options: LocaleSetupOptions = {}) { // 在控制台打印警告 i18n.global.setMissingHandler((locale, key) => { - options.missingWarn && + if (options.missingWarn && key.includes('.')) { console.warn( `[intlify] Not found '${key}' key in '${locale}' locale messages.`, ); + } }); } diff --git a/packages/@core/locales/src/langs/en-US.json b/packages/@core/locales/src/langs/en-US.json index bda0e237..0909ef8a 100644 --- a/packages/@core/locales/src/langs/en-US.json +++ b/packages/@core/locales/src/langs/en-US.json @@ -3,9 +3,9 @@ "essentials": { "login": "Login", "register": "Register", - "code-login": "Code Login", - "qrcode-login": "Qrcode Login", - "forget-password": "Forget Password" + "codeLogin": "Code Login", + "qrcodeLogin": "Qr Code Login", + "forgetPassword": "Forget Password" }, "dashboard": { "title": "Dashboard", @@ -19,197 +19,193 @@ }, "common": { "back": "Back", - "back-to-home": "Back To Home", + "backToHome": "Back To Home", "login": "Login", "logout": "Logout", "prompt": "Prompt", "cancel": "Cancel", "confirm": "Comfirm", - "not-data": "No data", - "refresh": "Refresh" + "noData": "No Data", + "refresh": "Refresh", + "loadingMenu": "Loading Menu" }, "fallback": { - "page-not-found": "Oops! Page Not Found", - "page-not-found-desc": "Sorry, we couldn't find the page you were looking for.", + "pageNotFound": "Oops! Page Not Found", + "pageNotFoundDesc": "Sorry, we couldn't find the page you were looking for.", "forbidden": "Oops! Access Denied", - "forbidden-desc": "Sorry, but you don't have permission to access this page.", - "internal-error": "Oops! Something Went Wrong", - "internal-error-desc": "Sorry, but the server encountered an error.", + "forbiddenDesc": "Sorry, but you don't have permission to access this page.", + "internalError": "Oops! Something Went Wrong", + "internalErrorDesc": "Sorry, but the server encountered an error.", "offline": "Offline Page", - "offline-error": "Oops! Network Error", - "offline-error-desc": "Sorry, can't connect to the internet. Check your connection.", - "coming-soon": "Coming soon" + "offlineError": "Oops! Network Error", + "offlineErrorDesc": "Sorry, can't connect to the internet. Check your connection.", + "coming-soon": "Coming Soon" }, "widgets": { "document": "Document", - "qa": "FAQ & Help", - "setting": "Setting", - "logout-tip": "Do you want to log out?", - "view-all": "View all messages", + "qa": "Q&A", + "setting": "Settings", + "logoutTip": "Do you want to logout?", + "viewAll": "View All Messages", "notifications": "Notifications", - "make-all-as-read": "Make all as read", - "clear-notifications": "Clear", + "markAllAsRead": "Make All as Read", + "clearNotifications": "Clear", "search": { "title": "Search", - "search-navigate": "Search Navigate", - "select": "To select", - "navigate": "To navigate", - "close": "To close", - "no-results": "No results for", - "no-recent": "No recent searches", - "recent": "Recent" + "searchNavigate": "Search Navigation", + "select": "Select", + "navigate": "Navigate", + "close": "Close", + "noResults": "No Search Results Found", + "noRecent": "No Search History", + "recent": "Search History" } }, "authentication": { - "welcome-back": "Welcome Back", - "page-title": "Plug-and-play backend system", - "page-desc": "Efficient, versatile frontend template", - "login-success": "Login successful", - "login-success-desc": "Welcome back", - "login-subtitle": "Enter your account details to manage your projects", + "welcomeBack": "Welcome Back", + "pageTitle": "Plug-and-play Admin system", + "pageDesc": "Efficient, versatile frontend template", + "loginSuccess": "Login Successful", + "loginSuccessDesc": "Welcome Back", + "loginSubtitle": "Enter your account details to manage your projects", "username": "Username", "password": "Password", - "username-tip": "Username is required", - "password-tip": "Password is required", - "remember-me": "Remember Me", - "create-an-account": "Create an account", - "create-account": "Create account", - "already-account": "Already have an account?", - "account-tip": "Don't have an account yet?", - "sign-up": "Sign Up", - "sign-up-subtitle": "Make managing your applications simple and fun", - "comfirm-password": "Comfirm Password", - "comfirm-password-tip": "The passwords entered twice do not match", - "sign-up-agree": "I agree to", - "sign-up-privacy-policy": "Privacy-policy", - "sign-up-terms": "Terms", - "sign-up-agree-tip": "Please agree to the Privacy Policy and Terms", - "go-login": "Login instead", - "password-strength": "Use 8 or more characters with a mix of letters, numbers & symbols", - "forget-password": "Forget Password?", - "forget-password-subtitle": "Enter your email and we'll send you instructions to reset your password", - "email-tip": "Email is required", - "send-reset-link": "Send Reset Link", + "usernameTip": "Please enter username", + "passwordTip": "Please enter password", + "rememberMe": "Remember Me", + "createAnAccount": "Create an Account", + "createAccount": "Create Account", + "alreadyHaveAccount": "Already have an account?", + "accountTip": "Don't have an account?", + "signUp": "Sign Up", + "signUpSubtitle": "Make managing your applications simple and fun", + "confirmPassword": "Comfirm Password", + "confirmPasswordTip": "The passwords do not match", + "agree": "I agree to", + "agreeprivacyPolicy": "Privacy-policy", + "terms": "Terms", + "agreeTip": "Please agree to the Privacy Policy and Terms", + "goToLogin": "Login instead", + "passwordStrength": "Use 8 or more characters with a mix of letters, numbers & symbols", + "forgetPassword": "Forget Password?", + "forgetPasswordSubtitle": "Enter your email and we'll send you instructions to reset your password", + "emailTip": "Please enter email", + "sendResetLink": "Send Reset Link", "email": "Email", - "qrcode-subtitle": "Please scan the QR code to log in on your mobile device", - "qrcode-prompt": "Scanning the code to complete the login", - "qrcode-login": "QR Login", - "code-subtitle": "Please enter your phone number to start managing your projects", + "qrcodeSubtitle": "Scan the QR code with your phone to login", + "qrcodePrompt": "Click 'Confirm' after scanning to complete login", + "qrcodeLogin": "QR Code Login", + "codeSubtitle": "Enter your phone number to start managing your project", "code": "Security code", - "code-tip": "Security code is required", + "codeTip": "Security code is required", "mobile": "Mobile", - "mobile-login": "Mobile Login", - "mobile-tip": "Mobile is required", - "send-code": "Get Security code", - "send-text": "Reacquire in {0}s", - "third-party-login": "Or continue with", + "mobileLogin": "Mobile Login", + "mobile-tip": "Please enter phone number", + "sendCode": "Get Security code", + "sendText": "Resend in {0}s", + "thirdPartyLogin": "Or continue with", "layout": { "center": "Align Center", - "align-left": "Align Left", - "align-right": "Align Right" + "alignLeft": "Align Left", + "alignRight": "Align Right" } }, "preferences": { "title": "Preferences", "subtitle": "Customize Preferences & Preview in Real Time", - "reset-tip": "The data has changed, click to reset", - "reset-title": "Preferences reset", - "reset-success": "Preferences reset successfully", + "resetTip": "Data has changed, click to reset", + "resetTitle": "Reset Preferences", + "resetSuccess": "Preferences reset successfully", "appearance": "Appearance", "layout": "Layout", "content": "Content", "other": "Other", - "wide": "Fluid", - "compact": "Fixed Width", - "follow-system": "Follow System", + "wide": "Wide", + "compact": "Fixed", + "followSystem": "Follow System", "vertical": "Vertical", - "vertical-tip": "Side Vertical Menu Mode", + "verticalTip": "Side vertical menu mode", "horizontal": "Horizontal", - "horizontal-tip": "Top Horizontal Menu", - "two-column": "Two Column", - "two-column-tip": "Vertical Two Column Menu Mode", - "mixed-menu": "Mixed Menu", - "split-menu": "Split Menu", - "mixed-menu-tip": "Vertical & Horizontal Menu Co-exists", - "full-content": "Full Content", - "full-content-tip": "Display only the main content, no menus", - "weak-mode": "Color Weak Mode", - "gray-mode": "Gray Mode", + "horizontalTip": "Horizontal menu mode, all menus displayed at the top", + "twoColumn": "Two Column", + "twoColumnTip": "Vertical Two Column Menu Mode", + "mixedMenu": "Mixed Menu", + "mixedMenuTip": "Vertical & Horizontal Menu Co-exists", + "fullContent": "Full Content", + "fullContentTip": "Only display content body, hide all menus", "normal": "Normal", "plain": "Plain", "rounded": "Rounded", - "interface-control": "Interface Layout Control", - "copy": "Copy Preferences", - "copy-success": "Copy successful. Please replace in `src/preferences.ts` of the app", - "clear-and-logout": "Clear Cache & Logout", + "copyPreferences": "Copy Preferences", + "copyPreferencesSuccess": "Copy successful, please override in `src/preferences.ts` under app", + "clearAndLogout": "Clear Cache & Logout", "mode": "Mode", - "logo-visible": "Display Logo", "general": "General", "language": "Language", - "dynamic-title": "Dynamic Title", + "dynamicTitle": "Dynamic Title", "sidebar": { "title": "Sidebar", "width": "Width", - "visible": "Display Sidebar", + "visible": "Show Sidebar", "collapsed": "Collpase Menu", - "collapsed-show-title": "Display menu name" + "collapsedShowTitle": "Show Menu Title" }, "tabbar": { "title": "Tabbar", "enable": "Enable Tab Bar", - "icon": "Display Tabbar Icon", - "persist": "Persistent tabs", - "context-menu": { + "icon": "Show Tabbar Icon", + "persist": "Persist Tabs", + "contextMenu": { "reload": "Reload", - "close": "Close", - "pin": "Pin", - "unpin": "Unpin", - "close-left": "Close Left", - "close-right": "Close Right", - "close-other": "Close Other", - "close-all": "Close All" + "close": "Close Tab", + "pin": "Pin Tab", + "unpin": "Unpin Tab", + "closeLeft": "Close Left Tabs", + "closeRight": "Close Right Tabs", + "closeOther": "Close Other Tabs", + "closeAll": "Close All Tabs" } }, - "navigation-menu": { + "navigationMenu": { "title": "Navigation Menu", - "style": "Navigation menu style", + "style": "Navigation Menu Style", + "accordion": "Sidebar Accordion Menu", "split": "Navigation Menu Separation", - "accordion": "Sidebar Navigation Menu Accordion mode", - "split-tip": "When enabled, the sidebar shows the top bar's submenu" + "splitTip": "When enabled, the sidebar displays the top bar's submenu" }, "breadcrumb": { "title": "Breadcrumb", - "home": "Display the home button", + "home": "Show Home Button", "enable": "Enable Breadcrumb", - "icon": "Display breadcrumb icon", + "icon": "Show Breadcrumb Icon", "background": "background", - "style": "Breadcrumb Type", - "hide-only-one": "Hidden when only one left" + "style": "Breadcrumb Style", + "hideOnlyOne": "Hidden when only one" }, "animation": { "title": "Animation", - "loading": "Page transition loading", - "transition": "Page transition animation", - "progress": "Page transition progress" + "loading": "Page Loading", + "transition": "Page Transition", + "progress": "Page Progress" }, "theme": { "title": "Theme", "radius": "Radius", "light": "Light", "dark": "Dark", - "dark-menu": "Semi Dark Menu", - "weak-mode": "Color Weak Mode", - "gray-mode": "Gray Mode", + "darkMenu": "Semi Dark Menu", + "weakMode": "Weak Mode", + "grayMode": "Gray Mode", "builtin": { "title": "Built-in", "default": "Default", "violet": "Violet", "pink": "Pink", "rose": "Rose", - "sky-blue": "Sky Blue", - "deep-blue": "Deep Blue", + "skyBlue": "Sky Blue", + "deepBlue": "Deep Blue", "green": "Green", - "deep-green": "Deep Green", + "deepGreen": "Deep Green", "orange": "Orange", "yellow": "Yellow", "zinc": "Zinc", @@ -221,27 +217,27 @@ }, "header": { "title": "Header", - "visible": "Display Header", - "mode-static": "Static", - "mode-fixed": "Fixed", - "mode-auto": "Auto hide/display", - "mode-auto-scroll": "Scroll hide/display" + "visible": "Show Header", + "modeStatic": "Static", + "modeFixed": "Fixed", + "modeAuto": "Auto hide & Show", + "modeAutoScroll": "Scroll to Hide & Show" }, "footer": { "title": "Footer", - "visible": "Display Footer", - "fixed": "Fixed at the bottom" + "visible": "Show Footer", + "fixed": "Fixed at Bottom" }, "copyright": { "title": "Copyright", - "enable": "Enable copyright", - "company-name": "Company name", - "company-site-link": "Company homepage", + "enable": "Enable Copyright", + "companyName": "Company Name", + "companySiteLink": "Company Site Link", "date": "Date", - "icp": "ICP number", - "icp-link": "ICP Site Link" + "icp": "ICP License Number", + "icpLink": "ICP Site Link" }, - "shortcut-keys": { + "shortcutKeys": { "title": "Shortcut Keys", "global": "Global", "search": "Global Search", @@ -250,13 +246,13 @@ }, "widget": { "title": "Widget", - "global-search": "Enable Global Search", + "globalSearch": "Enable Global Search", "fullscreen": "Enable Fullscreen", - "theme-toggle": "Enable Theme Toggle", - "language-toggle": "Enable Language Toggle", + "themeToggle": "Enable Theme Toggle", + "languageToggle": "Enable Language Toggle", "notification": "Enable Notification", - "sidebar-toggle": "Enable Sidebar Toggle", - "ai-assistant": "Enable AI Assistant" + "sidebarToggle": "Enable Sidebar Toggle", + "aiAssistant": "Enable AI Assistant" } } } diff --git a/packages/@core/locales/src/langs/zh-CN.json b/packages/@core/locales/src/langs/zh-CN.json index 775de102..0ce6f001 100644 --- a/packages/@core/locales/src/langs/zh-CN.json +++ b/packages/@core/locales/src/langs/zh-CN.json @@ -3,9 +3,9 @@ "essentials": { "login": "登陆", "register": "注册", - "code-login": "验证码登陆", - "qrcode-login": "二维码登陆", - "forget-password": "忘记密码" + "codeLogin": "验证码登陆", + "qrcodeLogin": "二维码登陆", + "forgetPassword": "忘记密码" }, "dashboard": { "title": "概览", @@ -19,162 +19,159 @@ }, "common": { "back": "返回", - "back-to-home": "返回首页", + "backToHome": "返回首页", "login": "登录", "logout": "退出登录", "prompt": "提示", "cancel": "取消", "confirm": "确认", - "not-data": "暂无数据", + "noData": "暂无数据", "refresh": "刷新", - "loading-menu": "加载菜单中" + "loadingMenu": "加载菜单中" }, "fallback": { - "page-not-found": "哎呀!未找到页面", - "page-not-found-desc": "抱歉,我们无法找到您要找的页面。", + "pageNotFound": "哎呀!未找到页面", + "pageNotFoundDesc": "抱歉,我们无法找到您要找的页面。", "forbidden": "哎呀!访问被拒绝", - "forbidden-desc": "抱歉,您没有权限访问此页面。", - "internal-error": "哎呀!出错了", - "internal-error-desc": "抱歉,服务器遇到错误。", + "forbiddenDesc": "抱歉,您没有权限访问此页面。", + "internalError": "哎呀!出错了", + "internalErrorDesc": "抱歉,服务器遇到错误。", "offline": "离线页面", - "offline-error": "哎呀!网络错误", - "offline-error-desc": "抱歉,无法连接到互联网,请检查您的网络连接并重试。", + "offlineError": "哎呀!网络错误", + "offlineErrorDesc": "抱歉,无法连接到互联网,请检查您的网络连接并重试。", "coming-soon": "即将推出" }, "widgets": { "document": "文档", "qa": "问题 & 帮助", "setting": "设置", - "logout-tip": "是否退出登录?", - "view-all": "查看所有消息", + "logoutTip": "是否退出登录?", + "viewAll": "查看所有消息", "notifications": "通知", - "make-all-as-read": "全部标记为已读", - "clear-notifications": "清空", + "markAllAsRead": "全部标记为已读", + "clearNotifications": "清空", "search": { "title": "搜索", - "search-navigate": "搜索导航菜单", + "searchNavigate": "搜索导航菜单", "select": "选择", "navigate": "导航", "close": "关闭", - "no-results": "未找到搜索结果", - "no-recent": "没有搜索历史", + "noResults": "未找到搜索结果", + "noRecent": "没有搜索历史", "recent": "搜索历史" } }, "authentication": { - "welcome-back": "欢迎回来", - "page-title": "开箱即用的大型中后台管理系统", - "page-desc": "工程化、高性能、跨组件库的前端模版", - "login-success": "登录成功", - "login-success-desc": "欢迎回来", - "login-subtitle": "请输入您的帐户信息以开始管理您的项目", + "welcomeBack": "欢迎回来", + "pageTitle": "开箱即用的大型中后台管理系统", + "pageDesc": "工程化、高性能、跨组件库的前端模版", + "loginSuccess": "登录成功", + "loginSuccessDesc": "欢迎回来", + "loginSubtitle": "请输入您的帐户信息以开始管理您的项目", "username": "账号", "password": "密码", - "username-tip": "请输入用户名", - "password-tip": "请输入密码", - "remember-me": "记住账号", - "create-an-account": "创建一个账号", - "create-account": "创建账号", - "already-account": "已经有账号了?", - "account-tip": "还没有账号?", - "sign-up": "注册", - "sign-up-subtitle": "让您的应用程序管理变得简单而有趣", - "comfirm-password": "确认密码", - "comfirm-password-tip": "两次输入的密码不一致", - "sign-up-agree": "我同意", - "sign-up-privacy-policy": "隐私政策", - "sign-up-terms": "条款", - "sign-up-agree-tip": "请同意隐私政策和条款", - "go-login": "去登录", - "password-strength": "使用 8 个或更多字符,混合字母、数字和符号", - "forget-password": "忘记密码?", - "forget-password-subtitle": "输入您的电子邮件,我们将向您发送重置密码的连接", - "email-tip": "请输入邮箱", - "send-reset-link": "发送重置链接", + "usernameTip": "请输入用户名", + "passwordTip": "请输入密码", + "rememberMe": "记住账号", + "createAnAccount": "创建一个账号", + "createAccount": "创建账号", + "alreadyHaveAccount": "已经有账号了?", + "accountTip": "还没有账号?", + "signUp": "注册", + "signUpSubtitle": "让您的应用程序管理变得简单而有趣", + "confirmPassword": "确认密码", + "confirmPasswordTip": "两次输入的密码不一致", + "agree": "我同意", + "agreeprivacyPolicy": "隐私政策", + "terms": "条款", + "agreeTip": "请同意隐私政策和条款", + "goToLogin": "去登录", + "passwordStrength": "使用 8 个或更多字符,混合字母、数字和符号", + "forgetPassword": "忘记密码?", + "forgetPasswordSubtitle": "输入您的电子邮件,我们将向您发送重置密码的连接", + "emailTip": "请输入邮箱", + "sendResetLink": "发送重置链接", "email": "邮箱", - "qrcode-subtitle": "请用手机扫描二维码登录", - "qrcode-prompt": "扫码后点击 '确认',即可完成登录", - "qrcode-login": "扫码登录", - "code-subtitle": "请输入您的手机号码以开始管理您的项目", + "qrcodeSubtitle": "请用手机扫描二维码登录", + "qrcodePrompt": "扫码后点击 '确认',即可完成登录", + "qrcodeLogin": "扫码登录", + "codeSubtitle": "请输入您的手机号码以开始管理您的项目", "code": "验证码", - "code-tip": "请输入验证码", + "codeTip": "请输入验证码", "mobile": "手机号码", - "mobile-login": "手机号登录", + "mobileLogin": "手机号登录", "mobile-tip": "请输入手机号码", - "send-code": "获取验证码", - "send-text": "{0}秒后重新获取", - "third-party-login": "其他登录方式", + "sendCode": "获取验证码", + "sendText": "{0}秒后重新获取", + "thirdPartyLogin": "其他登录方式", "layout": { "center": "居中", - "align-left": "居左", - "align-right": "居右" + "alignLeft": "居左", + "alignRight": "居右" } }, "preferences": { "title": "偏好设置", "subtitle": "自定义偏好设置 & 实时预览", - "reset-title": "重置偏好设置", - "reset-tip": "数据有变化,点击可进行重置", - "reset-success": "重置偏好设置成功", + "resetTitle": "重置偏好设置", + "resetTip": "数据有变化,点击可进行重置", + "resetSuccess": "重置偏好设置成功", "appearance": "外观", "layout": "布局", "content": "内容", "other": "其它", "wide": "流式", "compact": "定宽", - "follow-system": "跟随系统", + "followSystem": "跟随系统", "vertical": "垂直", - "vertical-tip": "侧边垂直菜单模式", + "verticalTip": "侧边垂直菜单模式", "horizontal": "水平", - "horizontal-tip": "水平菜单模式,菜单全部显示在顶部", - "two-column": "双列菜单", - "two-column-tip": "垂直双列菜单模式", - "mixed-menu": "混合菜单", - "mixed-menu-tip": "垂直水平菜单共存", - "split-menu": "切割菜单", - "full-content": "内容全屏", - "full-content-tip": "不显示任何菜单,只显示内容主体", - "interface-control": "界面布局控制", - "normal": "默认", + "horizontalTip": "水平菜单模式,菜单全部显示在顶部", + "twoColumn": "双列菜单", + "twoColumnTip": "垂直双列菜单模式", + "mixedMenu": "混合菜单", + "mixedMenuTip": "垂直水平菜单共存", + "fullContent": "内容全屏", + "fullContentTip": "不显示任何菜单,只显示内容主体", + "normal": "常规", "plain": "朴素", "rounded": "圆润", - "copy": "复制偏好设置", - "copy-success": "复制成功,请在 app 下的 `src/preferences.ts`内进行覆盖", - "clear-and-logout": "清空缓存 & 退出登录", + "copyPreferences": "复制偏好设置", + "copyPreferencesSuccess": "复制成功,请在 app 下的 `src/preferences.ts`内进行覆盖", + "clearAndLogout": "清空缓存 & 退出登录", "mode": "模式", - "logo-visible": "显示 Logo", "general": "通用", "language": "语言", - "dynamic-title": "动态标题", + "dynamicTitle": "动态标题", "sidebar": { "title": "侧边栏", "width": "宽度", "visible": "显示侧边栏", "collapsed": "折叠菜单", - "collapsed-show-title": "显示菜单名" + "collapsedShowTitle": "显示菜单名" }, "tabbar": { "title": "标签栏", "enable": "启用标签栏", "icon": "显示标签栏图标", "persist": "持久化标签页", - "context-menu": { + "contextMenu": { "reload": "重新加载", "close": "关闭标签页", "pin": "固定标签页", "unpin": "取消固定标签页", - "close-left": "关闭左侧标签页", - "close-right": "关闭右侧标签页", - "close-other": "关闭其它标签页", - "close-all": "关闭全部标签页" + "closeLeft": "关闭左侧标签页", + "closeRight": "关闭右侧标签页", + "closeOther": "关闭其它标签页", + "closeAll": "关闭全部标签页" } }, - "navigation-menu": { + "navigationMenu": { "title": "导航菜单", "style": "导航菜单风格", "accordion": "侧边导航菜单手风琴模式", "split": "导航菜单分离", - "split-tip": "开启时,侧边栏显示顶栏对应菜单的子菜单" + "splitTip": "开启时,侧边栏显示顶栏对应菜单的子菜单" }, "breadcrumb": { "title": "面包屑导航", @@ -182,7 +179,7 @@ "icon": "显示面包屑图标", "home": "显示首页按钮", "style": "面包屑风格", - "hide-only-one": "仅有一个时隐藏", + "hideOnlyOne": "仅有一个时隐藏", "background": "背景" }, "animation": { @@ -196,19 +193,19 @@ "radius": "圆角", "light": "浅色", "dark": "深色", - "dark-menu": "深色菜单", - "weak-mode": "色弱模式", - "gray-mode": "灰色模式", + "darkMenu": "深色菜单", + "weakMode": "色弱模式", + "grayMode": "灰色模式", "builtin": { "title": "内置主题", "default": "默认", "violet": "紫罗兰", "pink": "樱花粉", "rose": "玫瑰红", - "sky-blue": "天蓝色", - "deep-blue": "深蓝色", + "skyBlue": "天蓝色", + "deepBlue": "深蓝色", "green": "浅绿色", - "deep-green": "深绿色", + "deepGreen": "深绿色", "orange": "橙黄色", "yellow": "柠檬黄", "zinc": "锌色灰", @@ -220,10 +217,10 @@ }, "header": { "title": "顶栏", - "mode-static": "静止", - "mode-fixed": "固定", - "mode-auto": "自动隐藏和显示", - "mode-auto-scroll": "滚动隐藏和显示", + "modeStatic": "静止", + "modeFixed": "固定", + "modeAuto": "自动隐藏和显示", + "modeAutoScroll": "滚动隐藏和显示", "visible": "显示顶栏" }, "footer": { @@ -234,13 +231,13 @@ "copyright": { "title": "版权", "enable": "启用版权", - "company-name": "公司名", - "company-site-link": "公司主页", + "companyName": "公司名", + "companySiteLink": "公司主页", "date": "日期", "icp": "ICP 备案号", - "icp-link": "ICP 网站链接" + "icpLink": "ICP 网站链接" }, - "shortcut-keys": { + "shortcutKeys": { "title": "快捷键", "global": "全局", "search": "全局搜索", @@ -249,13 +246,13 @@ }, "widget": { "title": "小部件", - "global-search": "启用全局搜索", + "globalSearch": "启用全局搜索", "fullscreen": "启用全屏", - "theme-toggle": "启用主题切换", - "language-toggle": "启用语言切换", + "themeToggle": "启用主题切换", + "languageToggle": "启用语言切换", "notification": "启用通知", - "sidebar-toggle": "启用侧边栏切换", - "ai-assistant": "启用 AI 助手" + "sidebarToggle": "启用侧边栏切换", + "aiAssistant": "启用 AI 助手" } } } diff --git a/packages/@core/shared/colorful/package.json b/packages/@core/shared/colorful/package.json index ee89b50e..3ef525a7 100644 --- a/packages/@core/shared/colorful/package.json +++ b/packages/@core/shared/colorful/package.json @@ -37,6 +37,6 @@ }, "dependencies": { "@ant-design/colors": "^7.1.0", - "@ctrl/tinycolor": "4.1.0" + "@ctrl/tinycolor": "^4.1.0" } } diff --git a/packages/@core/shared/toolkit/package.json b/packages/@core/shared/toolkit/package.json index d132be8a..2c32ff05 100644 --- a/packages/@core/shared/toolkit/package.json +++ b/packages/@core/shared/toolkit/package.json @@ -37,7 +37,7 @@ }, "dependencies": { "@vue/shared": "^3.4.31", - "clsx": "2.1.1", + "clsx": "^2.1.1", "defu": "^6.1.4", "lodash.clonedeep": "^4.5.0", "nprogress": "^0.2.0", diff --git a/packages/business/layouts/src/authentication/authentication.vue b/packages/business/layouts/src/authentication/authentication.vue index c4eab0cd..d535d810 100644 --- a/packages/business/layouts/src/authentication/authentication.vue +++ b/packages/business/layouts/src/authentication/authentication.vue @@ -49,10 +49,10 @@ const appName = computed(() => preferences.app.name);
- {{ $t('authentication.page-title') }} + {{ $t('authentication.pageTitle') }}
- {{ $t('authentication.page-desc') }} + {{ $t('authentication.pageDesc') }}
diff --git a/packages/business/layouts/src/basic/tabbar/use-tabs.ts b/packages/business/layouts/src/basic/tabbar/use-tabs.ts index 38c89dbb..6811d4fe 100644 --- a/packages/business/layouts/src/basic/tabbar/use-tabs.ts +++ b/packages/business/layouts/src/basic/tabbar/use-tabs.ts @@ -117,7 +117,7 @@ function useTabs() { }, icon: IcRoundRefresh, key: 'reload', - text: $t('preferences.tabbar.context-menu.reload'), + text: $t('preferences.tabbar.contextMenu.reload'), }, { disabled: !!affixTab || disabled, @@ -126,7 +126,7 @@ function useTabs() { }, icon: IcRoundClose, key: 'close', - text: $t('preferences.tabbar.context-menu.close'), + text: $t('preferences.tabbar.contextMenu.close'), }, { handler: async () => { @@ -138,8 +138,8 @@ function useTabs() { key: 'affix', separator: true, text: affixTab - ? $t('preferences.tabbar.context-menu.unpin') - : $t('preferences.tabbar.context-menu.pin'), + ? $t('preferences.tabbar.contextMenu.unpin') + : $t('preferences.tabbar.contextMenu.pin'), }, { disabled: closeLeftDisabled, @@ -148,7 +148,7 @@ function useTabs() { }, icon: MdiFormatHorizontalAlignLeft, key: 'close-left', - text: $t('preferences.tabbar.context-menu.close-left'), + text: $t('preferences.tabbar.contextMenu.closeLeft'), }, { disabled: closeRightDisabled, @@ -158,7 +158,7 @@ function useTabs() { icon: MdiFormatHorizontalAlignRight, key: 'close-right', separator: true, - text: $t('preferences.tabbar.context-menu.close-right'), + text: $t('preferences.tabbar.contextMenu.closeRight'), }, { disabled: closeOtherDisabled, @@ -167,7 +167,7 @@ function useTabs() { }, icon: MdiArrowExpandHorizontal, key: 'close-other', - text: $t('preferences.tabbar.context-menu.close-other'), + text: $t('preferences.tabbar.contextMenu.closeOther'), }, { disabled, @@ -176,7 +176,7 @@ function useTabs() { }, icon: IcRoundMultipleStop, key: 'close-all', - text: $t('preferences.tabbar.context-menu.close-all'), + text: $t('preferences.tabbar.contextMenu.closeAll'), }, // { // icon: 'icon-[material-symbols--back-to-tab-sharp]', diff --git a/packages/business/layouts/src/widgets/global-search/global-search.vue b/packages/business/layouts/src/widgets/global-search/global-search.vue index 67f75954..d0c68cc6 100644 --- a/packages/business/layouts/src/widgets/global-search/global-search.vue +++ b/packages/business/layouts/src/widgets/global-search/global-search.vue @@ -116,7 +116,7 @@ onMounted(() => { diff --git a/packages/business/layouts/src/widgets/global-search/search-panel.vue b/packages/business/layouts/src/widgets/global-search/search-panel.vue index 41264816..da0f9d89 100644 --- a/packages/business/layouts/src/widgets/global-search/search-panel.vue +++ b/packages/business/layouts/src/widgets/global-search/search-panel.vue @@ -223,7 +223,7 @@ onMounted(() => { >

- {{ $t('widgets.search.no-results') }} + {{ $t('widgets.search.noResults') }} "{{ keyword }}" @@ -235,7 +235,7 @@ onMounted(() => { class="text-muted-foreground text-center" >

- {{ $t('widgets.search.no-recent') }} + {{ $t('widgets.search.noRecent') }}

diff --git a/packages/business/layouts/src/widgets/layout-toggle.vue b/packages/business/layouts/src/widgets/layout-toggle.vue index 41995fa9..b7be708f 100644 --- a/packages/business/layouts/src/widgets/layout-toggle.vue +++ b/packages/business/layouts/src/widgets/layout-toggle.vue @@ -21,7 +21,7 @@ const menus = computed((): VbenDropdownMenuItem[] => [ { icon: MdiDockLeft, key: 'panel-left', - text: $t('authentication.layout.align-left'), + text: $t('authentication.layout.alignLeft'), }, { icon: MdiDockBottom, @@ -31,7 +31,7 @@ const menus = computed((): VbenDropdownMenuItem[] => [ { icon: MdiDockRight, key: 'panel-right', - text: $t('authentication.layout.align-right'), + text: $t('authentication.layout.alignRight'), }, ]); diff --git a/packages/business/layouts/src/widgets/notification/notification.vue b/packages/business/layouts/src/widgets/notification/notification.vue index 8f568272..4b270bfe 100644 --- a/packages/business/layouts/src/widgets/notification/notification.vue +++ b/packages/business/layouts/src/widgets/notification/notification.vue @@ -84,7 +84,7 @@ function handleClick(item: NotificationItem) {
{{ $t('widgets.notifications') }}
@@ -127,7 +127,7 @@ function handleClick(item: NotificationItem) { @@ -135,10 +135,10 @@ function handleClick(item: NotificationItem) { class="border-border flex items-center justify-between border-t px-4 py-3" > - {{ $t('widgets.clear-notifications') }} + {{ $t('widgets.clearNotifications') }} - {{ $t('widgets.view-all') }} + {{ $t('widgets.viewAll') }}
diff --git a/packages/business/layouts/src/widgets/preferences/blocks/general/general.vue b/packages/business/layouts/src/widgets/preferences/blocks/general/general.vue index 3785f6e7..1e3e3572 100644 --- a/packages/business/layouts/src/widgets/preferences/blocks/general/general.vue +++ b/packages/business/layouts/src/widgets/preferences/blocks/general/general.vue @@ -25,6 +25,6 @@ const localeItems: SelectListItem[] = SUPPORT_LANGUAGES.map((item) => ({ {{ $t('preferences.language') }} - {{ $t('preferences.dynamic-title') }} + {{ $t('preferences.dynamicTitle') }} diff --git a/packages/business/layouts/src/widgets/preferences/blocks/layout/breadcrumb.vue b/packages/business/layouts/src/widgets/preferences/blocks/layout/breadcrumb.vue index 3cad40d3..0e8c057f 100644 --- a/packages/business/layouts/src/widgets/preferences/blocks/layout/breadcrumb.vue +++ b/packages/business/layouts/src/widgets/preferences/blocks/layout/breadcrumb.vue @@ -35,7 +35,7 @@ const disableItem = computed(() => { {{ $t('preferences.breadcrumb.enable') }} - {{ $t('preferences.breadcrumb.hide-only-one') }} + {{ $t('preferences.breadcrumb.hideOnlyOne') }} {{ $t('preferences.breadcrumb.icon') }} diff --git a/packages/business/layouts/src/widgets/preferences/blocks/layout/copyright.vue b/packages/business/layouts/src/widgets/preferences/blocks/layout/copyright.vue index 35c3c6b1..7ca4376d 100644 --- a/packages/business/layouts/src/widgets/preferences/blocks/layout/copyright.vue +++ b/packages/business/layouts/src/widgets/preferences/blocks/layout/copyright.vue @@ -30,10 +30,10 @@ const itemDisabled = computed(() => props.disabled || !copyrightEnable.value); - {{ $t('preferences.copyright.company-name') }} + {{ $t('preferences.copyright.companyName') }} - {{ $t('preferences.copyright.company-site-link') }} + {{ $t('preferences.copyright.companySiteLink') }} {{ $t('preferences.copyright.date') }} @@ -43,6 +43,6 @@ const itemDisabled = computed(() => props.disabled || !copyrightEnable.value); {{ $t('preferences.copyright.icp') }} - {{ $t('preferences.copyright.icp-link') }} + {{ $t('preferences.copyright.icpLink') }} diff --git a/packages/business/layouts/src/widgets/preferences/blocks/layout/header.vue b/packages/business/layouts/src/widgets/preferences/blocks/layout/header.vue index 74108819..3b0a60f8 100644 --- a/packages/business/layouts/src/widgets/preferences/blocks/layout/header.vue +++ b/packages/business/layouts/src/widgets/preferences/blocks/layout/header.vue @@ -17,19 +17,19 @@ const headerMode = defineModel('headerMode'); const localeItems: SelectListItem[] = [ { - label: $t('preferences.header.mode-static'), + label: $t('preferences.header.modeStatic'), value: 'static', }, { - label: $t('preferences.header.mode-fixed'), + label: $t('preferences.header.modeFixed'), value: 'fixed', }, { - label: $t('preferences.header.mode-auto'), + label: $t('preferences.header.modeAuto'), value: 'auto', }, { - label: $t('preferences.header.mode-auto-scroll'), + label: $t('preferences.header.modeAutoScroll'), value: 'auto-scroll', }, ]; diff --git a/packages/business/layouts/src/widgets/preferences/blocks/layout/layout.vue b/packages/business/layouts/src/widgets/preferences/blocks/layout/layout.vue index 5811383c..f747d964 100644 --- a/packages/business/layouts/src/widgets/preferences/blocks/layout/layout.vue +++ b/packages/business/layouts/src/widgets/preferences/blocks/layout/layout.vue @@ -38,27 +38,27 @@ const components: Record = { const PRESET = computed((): PresetItem[] => [ { name: $t('preferences.vertical'), - tip: $t('preferences.vertical-tip'), + tip: $t('preferences.verticalTip'), type: 'sidebar-nav', }, { - name: $t('preferences.two-column'), - tip: $t('preferences.two-column-tip'), + name: $t('preferences.twoColumn'), + tip: $t('preferences.twoColumnTip'), type: 'sidebar-mixed-nav', }, { name: $t('preferences.horizontal'), - tip: $t('preferences.vertical-tip'), + tip: $t('preferences.horizontalTip'), type: 'header-nav', }, { - name: $t('preferences.mixed-menu'), - tip: $t('preferences.mixed-menu-tip'), + name: $t('preferences.mixedMenu'), + tip: $t('preferences.mixedMenuTip'), type: 'mixed-nav', }, { - name: $t('preferences.full-content'), - tip: $t('preferences.full-content-tip'), + name: $t('preferences.fullContent'), + tip: $t('preferences.fullContentTip'), type: 'full-content', }, ]); diff --git a/packages/business/layouts/src/widgets/preferences/blocks/layout/navigation.vue b/packages/business/layouts/src/widgets/preferences/blocks/layout/navigation.vue index 9d083f43..f4cfb1c3 100644 --- a/packages/business/layouts/src/widgets/preferences/blocks/layout/navigation.vue +++ b/packages/business/layouts/src/widgets/preferences/blocks/layout/navigation.vue @@ -28,18 +28,18 @@ const stylesItems: SelectListItem[] = [ :disabled="disabled" :items="stylesItems" > - {{ $t('preferences.navigation-menu.style') }} + {{ $t('preferences.navigationMenu.style') }} - {{ $t('preferences.navigation-menu.split') }} + {{ $t('preferences.navigationMenu.split') }} - {{ $t('preferences.navigation-menu.accordion') }} + {{ $t('preferences.navigationMenu.accordion') }} diff --git a/packages/business/layouts/src/widgets/preferences/blocks/layout/sidebar.vue b/packages/business/layouts/src/widgets/preferences/blocks/layout/sidebar.vue index 35b1bcde..472727d4 100644 --- a/packages/business/layouts/src/widgets/preferences/blocks/layout/sidebar.vue +++ b/packages/business/layouts/src/widgets/preferences/blocks/layout/sidebar.vue @@ -29,7 +29,7 @@ const sidebarCollapsed = defineModel('sidebarCollapsed'); v-model="sidebarCollapsedShowTitle" :disabled="!sidebarEnable || disabled" > - {{ $t('preferences.sidebar.collapsed-show-title') }} + {{ $t('preferences.sidebar.collapsedShowTitle') }} ('widgetSidebarToggle'); diff --git a/packages/business/layouts/src/widgets/preferences/blocks/shortcut-keys/global.vue b/packages/business/layouts/src/widgets/preferences/blocks/shortcut-keys/global.vue index 486d5407..853c41fd 100644 --- a/packages/business/layouts/src/widgets/preferences/blocks/shortcut-keys/global.vue +++ b/packages/business/layouts/src/widgets/preferences/blocks/shortcut-keys/global.vue @@ -22,21 +22,21 @@ const altView = computed(() => (isWindowsOs() ? 'Alt' : '⌥')); diff --git a/packages/business/layouts/src/widgets/preferences/blocks/theme/builtin.vue b/packages/business/layouts/src/widgets/preferences/blocks/theme/builtin.vue index 3f09ae25..a8734b48 100644 --- a/packages/business/layouts/src/widgets/preferences/blocks/theme/builtin.vue +++ b/packages/business/layouts/src/widgets/preferences/blocks/theme/builtin.vue @@ -40,17 +40,17 @@ function typeView(name: BuiltinThemeType) { return $t('preferences.theme.builtin.rose'); } case 'sky-blue': { - return $t('preferences.theme.builtin.sky-blue'); + return $t('preferences.theme.builtin.skyBlue'); } case 'deep-blue': { - return $t('preferences.theme.builtin.deep-blue'); + return $t('preferences.theme.builtin.deepBlue'); } case 'green': { return $t('preferences.theme.builtin.green'); } case 'deep-green': { - return $t('preferences.theme.builtin.deep-green'); + return $t('preferences.theme.builtin.deepGreen'); } case 'orange': { return $t('preferences.theme.builtin.orange'); diff --git a/packages/business/layouts/src/widgets/preferences/blocks/theme/color-mode.vue b/packages/business/layouts/src/widgets/preferences/blocks/theme/color-mode.vue index fb0da0e9..1d9c475b 100644 --- a/packages/business/layouts/src/widgets/preferences/blocks/theme/color-mode.vue +++ b/packages/business/layouts/src/widgets/preferences/blocks/theme/color-mode.vue @@ -18,9 +18,9 @@ const appColorGrayMode = defineModel('appColorGrayMode', { diff --git a/packages/business/layouts/src/widgets/preferences/blocks/theme/theme.vue b/packages/business/layouts/src/widgets/preferences/blocks/theme/theme.vue index 08fea5f9..b3999a4d 100644 --- a/packages/business/layouts/src/widgets/preferences/blocks/theme/theme.vue +++ b/packages/business/layouts/src/widgets/preferences/blocks/theme/theme.vue @@ -49,7 +49,7 @@ function nameView(name: string) { return $t('preferences.theme.dark'); } case 'auto': { - return $t('preferences.follow-system'); + return $t('preferences.followSystem'); } } } @@ -79,7 +79,7 @@ function nameView(name: string) { :disabled="modelValue !== 'light'" class="mt-6" > - {{ $t('preferences.theme.dark-menu') }} + {{ $t('preferences.theme.darkMenu') }} diff --git a/packages/business/layouts/src/widgets/preferences/preferences-sheet.vue b/packages/business/layouts/src/widgets/preferences/preferences-sheet.vue index 373816f4..99c445a6 100644 --- a/packages/business/layouts/src/widgets/preferences/preferences-sheet.vue +++ b/packages/business/layouts/src/widgets/preferences/preferences-sheet.vue @@ -162,7 +162,7 @@ const tabs = computed((): SegmentedItem[] => { value: 'layout', }, { - label: $t('preferences.shortcut-keys.title'), + label: $t('preferences.shortcutKeys.title'), value: 'shortcutKey', }, { @@ -187,8 +187,8 @@ async function handleCopy() { await copy(JSON.stringify(diffPreference.value, null, 2)); toast({ - description: $t('preferences.copy'), - title: $t('preferences.copy-success'), + description: $t('preferences.copyPreferences'), + title: $t('preferences.copyPreferencesSuccess'), }); } @@ -205,12 +205,8 @@ async function handleReset() { resetPreferences(); await loadLocaleMessages(preferences.app.locale); toast({ - description: $t('preferences.reset-title'), - title: $t('preferences.reset-success'), - }); - toast({ - description: $t('preferences.reset-title'), - title: $t('preferences.reset-success'), + description: $t('preferences.resetTitle'), + title: $t('preferences.resetSuccess'), }); } @@ -236,7 +232,7 @@ async function handleReset() {
- + diff --git a/packages/business/layouts/src/widgets/theme-toggle/theme-toggle.vue b/packages/business/layouts/src/widgets/theme-toggle/theme-toggle.vue index e4b23674..51c214f3 100644 --- a/packages/business/layouts/src/widgets/theme-toggle/theme-toggle.vue +++ b/packages/business/layouts/src/widgets/theme-toggle/theme-toggle.vue @@ -49,7 +49,7 @@ const PRESETS = [ { icon: IcRoundMotionPhotosAuto, name: 'auto', - title: $t('preferences.follow-system'), + title: $t('preferences.followSystem'), }, ]; diff --git a/packages/business/layouts/src/widgets/user-dropdown/user-dropdown.vue b/packages/business/layouts/src/widgets/user-dropdown/user-dropdown.vue index 744903a8..99a69d56 100644 --- a/packages/business/layouts/src/widgets/user-dropdown/user-dropdown.vue +++ b/packages/business/layouts/src/widgets/user-dropdown/user-dropdown.vue @@ -121,7 +121,7 @@ if (enableShortcutKey.value) { { const btnText = computed(() => { return countdown.value > 0 - ? $t('authentication.send-text', [countdown.value]) - : $t('authentication.send-code'); + ? $t('authentication.sendText', [countdown.value]) + : $t('authentication.sendCode'); }); const btnLoading = computed(() => { return countdown.value > 0; @@ -117,10 +117,10 @@ onBeforeUnmount(() => {