perf: optimize the naming of locale key

This commit is contained in:
vince
2024-07-10 21:55:16 +08:00
parent 25a1e93ab2
commit 4674380266
59 changed files with 664 additions and 1253 deletions

View File

@@ -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<UserApiType.LoginResult>('/auth/login', data);
async function userLogin(data: UserApi.LoginParams) {
return requestClient.post<UserApi.LoginResult>('/auth/login', data);
}
/**

View File

@@ -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 };

View File

@@ -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

View File

@@ -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();

View File

@@ -16,6 +16,7 @@ const localesMap = loadLocalesMap(modules);
/**
* 加载应用特有的语言包
* 这里也可以改造为从服务端获取翻译数据
* @param lang
*/
async function loadMessages(lang: SupportedLanguagesType) {

View File

@@ -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" }
}

View File

@@ -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": "缺省页"

View File

@@ -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'),
},
},
{

View File

@@ -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'),
},
},
],

View File

@@ -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'),
});
}
}