diff --git a/locales/en.yaml b/locales/en.yaml
deleted file mode 100644
index 9d23b5f..0000000
--- a/locales/en.yaml
+++ /dev/null
@@ -1,91 +0,0 @@
-buttons:
- pureLoginOut: LoginOut
- pureLogin: Login
- pureOpenSystemSet: Open System Configs
- pureReload: Reload
- pureCloseCurrentTab: Close CurrentTab
- pureCloseLeftTabs: Close LeftTabs
- pureCloseRightTabs: Close RightTabs
- pureCloseOtherTabs: Close OtherTabs
- pureCloseAllTabs: Close AllTabs
- pureContentFullScreen: Content FullScreen
- pureContentExitFullScreen: Content ExitFullScreen
- pureClickCollapse: Collapse
- pureClickExpand: Expand
- pureConfirm: Confirm
- pureSwitch: Switch
- pureClose: Close
- pureBackTop: BackTop
- pureOpenText: Open
- pureCloseText: Close
-search:
- pureTotal: Total
- pureHistory: History
- pureCollect: Collect
- pureDragSort: (Drag Sort)
- pureEmpty: Empty
- purePlaceholder: Search Menu
-panel:
- pureSystemSet: System Configs
- pureCloseSystemSet: Close System Configs
- pureClearCacheAndToLogin: Clear cache and return to login page
- pureClearCache: Clear Cache
- pureOverallStyle: Overall Style
- pureOverallStyleLight: Light
- pureOverallStyleLightTip: Set sail freshly and light up the comfortable work interface
- pureOverallStyleDark: Dark
- pureOverallStyleDarkTip: Moonlight Overture, indulge in the tranquility and elegance of the night
- pureOverallStyleSystem: Auto
- pureOverallStyleSystemTip: Synchronize time, the interface naturally responds to morning and dusk
- pureThemeColor: Theme Color
- pureLayoutModel: Layout Model
- pureVerticalTip: The menu on the left is familiar and friendly
- pureHorizontalTip: Top menu, concise overview
- pureMixTip: Mixed menu, flexible
- pureStretch: Stretch Page
- pureStretchFixed: Fixed
- pureStretchFixedTip: Compact pages make it easy to find the information you need
- pureStretchCustom: Custom
- pureStretchCustomTip: Minimum 1280, maximum 1600
- pureTagsStyle: Tags Style
- pureTagsStyleSmart: Smart
- pureTagsStyleSmartTip: Smart tags add fun and brilliance
- pureTagsStyleCard: Card
- pureTagsStyleCardTip: Card tags for efficient browsing
- pureTagsStyleChrome: Chrome
- pureTagsStyleChromeTip: Chrome style is classic and elegant
- pureInterfaceDisplay: Interface Display
- pureGreyModel: Grey Model
- pureWeakModel: Weak Model
- pureHiddenTags: Hidden Tags
- pureHiddenFooter: Hidden Footer
- pureMultiTagsCache: MultiTags Cache
-menus:
- pureHome: Home
- pureLogin: Login
- pureAbnormal: Abnormal Page
- pureFourZeroFour: "404"
- pureFourZeroOne: "403"
- pureFive: "500"
- purePermission: Permission Manage
- purePermissionPage: Page Permission
- purePermissionButton: Button Permission
- purePermissionButtonRouter: Route return button permission
- purePermissionButtonLogin: Login interface return button permission
-status:
- pureLoad: Loading...
- pureMessage: Message
- pureNotify: Notify
- pureTodo: Todo
- pureNoMessage: No Message
- pureNoNotify: No Notify
- pureNoTodo: No Todo
-login:
- pureUsername: Username
- purePassword: Password
- pureLogin: Login
- pureLoginSuccess: Login Success
- pureLoginFail: Login Fail
- pureUsernameReg: Please enter username
- purePassWordReg: Please enter password
- purePassWordRuleReg: The password format should be any combination of 8-18 digits
\ No newline at end of file
diff --git a/locales/zh-CN.yaml b/locales/zh-CN.yaml
deleted file mode 100644
index 16d9ec6..0000000
--- a/locales/zh-CN.yaml
+++ /dev/null
@@ -1,91 +0,0 @@
-buttons:
- pureLoginOut: 退出系统
- pureLogin: 登录
- pureOpenSystemSet: 打开系统配置
- pureReload: 重新加载
- pureCloseCurrentTab: 关闭当前标签页
- pureCloseLeftTabs: 关闭左侧标签页
- pureCloseRightTabs: 关闭右侧标签页
- pureCloseOtherTabs: 关闭其他标签页
- pureCloseAllTabs: 关闭全部标签页
- pureContentFullScreen: 内容区全屏
- pureContentExitFullScreen: 内容区退出全屏
- pureClickCollapse: 点击折叠
- pureClickExpand: 点击展开
- pureConfirm: 确认
- pureSwitch: 切换
- pureClose: 关闭
- pureBackTop: 回到顶部
- pureOpenText: 开
- pureCloseText: 关
-search:
- pureTotal: 共
- pureHistory: 搜索历史
- pureCollect: 收藏
- pureDragSort: (可拖拽排序)
- pureEmpty: 暂无搜索结果
- purePlaceholder: 搜索菜单(支持拼音搜索)
-panel:
- pureSystemSet: 系统配置
- pureCloseSystemSet: 关闭配置
- pureClearCacheAndToLogin: 清空缓存并返回登录页
- pureClearCache: 清空缓存
- pureOverallStyle: 整体风格
- pureOverallStyleLight: 浅色
- pureOverallStyleLightTip: 清新启航,点亮舒适的工作界面
- pureOverallStyleDark: 深色
- pureOverallStyleDarkTip: 月光序曲,沉醉于夜的静谧雅致
- pureOverallStyleSystem: 自动
- pureOverallStyleSystemTip: 同步时光,界面随晨昏自然呼应
- pureThemeColor: 主题色
- pureLayoutModel: 导航模式
- pureVerticalTip: 左侧菜单,亲切熟悉
- pureHorizontalTip: 顶部菜单,简洁概览
- pureMixTip: 混合菜单,灵活多变
- pureStretch: 页宽
- pureStretchFixed: 固定
- pureStretchFixedTip: 紧凑页面,轻松找到所需信息
- pureStretchCustom: 自定义
- pureStretchCustomTip: 最小1280、最大1600
- pureTagsStyle: 页签风格
- pureTagsStyleSmart: 灵动
- pureTagsStyleSmartTip: 灵动标签,添趣生辉
- pureTagsStyleCard: 卡片
- pureTagsStyleCardTip: 卡片标签,高效浏览
- pureTagsStyleChrome: 谷歌
- pureTagsStyleChromeTip: 谷歌风格,经典美观
- pureInterfaceDisplay: 界面显示
- pureGreyModel: 灰色模式
- pureWeakModel: 色弱模式
- pureHiddenTags: 隐藏标签页
- pureHiddenFooter: 隐藏页脚
- pureMultiTagsCache: 页签持久化
-menus:
- pureHome: 首页
- pureLogin: 登录
- pureAbnormal: 异常页面
- pureFourZeroFour: "404"
- pureFourZeroOne: "403"
- pureFive: "500"
- purePermission: 权限管理
- purePermissionPage: 页面权限
- purePermissionButton: 按钮权限
- purePermissionButtonRouter: 路由返回按钮权限
- purePermissionButtonLogin: 登录接口返回按钮权限
-status:
- pureLoad: 加载中...
- pureMessage: 消息
- pureNotify: 通知
- pureTodo: 待办
- pureNoMessage: 暂无消息
- pureNoNotify: 暂无通知
- pureNoTodo: 暂无待办
-login:
- pureUsername: 账号
- purePassword: 密码
- pureLogin: 登录
- pureLoginSuccess: 登录成功
- pureLoginFail: 登录失败
- pureUsernameReg: 请输入账号
- purePassWordReg: 请输入密码
- purePassWordRuleReg: 密码格式应为8-18位数字、字母、符号的任意两种组合
\ No newline at end of file
diff --git a/mock/asyncRoutes.ts b/mock/asyncRoutes.ts
index 49cd0ac..2781ceb 100644
--- a/mock/asyncRoutes.ts
+++ b/mock/asyncRoutes.ts
@@ -23,34 +23,25 @@ const permissionRouter = {
}
},
{
- path: "/permission/button",
+ path: "/permission/button/router",
+ component: "permission/button/index",
+ name: "PermissionButtonRouter",
meta: {
- title: "menus.purePermissionButton",
- roles: ["admin", "common"]
- },
- children: [
- {
- path: "/permission/button/router",
- component: "permission/button/index",
- name: "PermissionButtonRouter",
- meta: {
- title: "menus.purePermissionButtonRouter",
- auths: [
- "permission:btn:add",
- "permission:btn:edit",
- "permission:btn:delete"
- ]
- }
- },
- {
- path: "/permission/button/login",
- component: "permission/button/perms",
- name: "PermissionButtonLogin",
- meta: {
- title: "menus.purePermissionButtonLogin"
- }
- }
- ]
+ title: "menus.purePermissionButtonRouter",
+ auths: [
+ "permission:btn:add",
+ "permission:btn:edit",
+ "permission:btn:delete"
+ ]
+ }
+ },
+ {
+ path: "/permission/button/login",
+ component: "permission/button/perms",
+ name: "PermissionButtonLogin",
+ meta: {
+ title: "menus.purePermissionButtonLogin"
+ }
}
]
};
diff --git a/mock/i18n.ts b/mock/i18n.ts
new file mode 100644
index 0000000..52525c7
--- /dev/null
+++ b/mock/i18n.ts
@@ -0,0 +1,16 @@
+import { defineFakeRoute } from "vite-plugin-fake-server/client";
+import en from "./i18n/en";
+import zh from "./i18n/zh";
+
+export default defineFakeRoute([
+ {
+ url: "/mock/getI18n",
+ method: "get",
+ response: () => {
+ return {
+ code: 200,
+ data: { zh, en, local: "zh" }
+ };
+ }
+ }
+]);
diff --git a/mock/i18n/en.ts b/mock/i18n/en.ts
new file mode 100644
index 0000000..3ad1cce
--- /dev/null
+++ b/mock/i18n/en.ts
@@ -0,0 +1,20 @@
+import { buttons } from "./en/buttons";
+import { search } from "./en/search";
+import { panel } from "./en/panel";
+import { menus } from "./en/menus";
+import { status } from "./en/status";
+import { login } from "./en/login";
+import { style } from "./en/style";
+import { system } from "./en/system";
+
+export default {
+ name: "en",
+ buttons,
+ search,
+ panel,
+ menus,
+ status,
+ login,
+ style,
+ system
+};
diff --git a/mock/i18n/en/buttons.ts b/mock/i18n/en/buttons.ts
new file mode 100644
index 0000000..c625624
--- /dev/null
+++ b/mock/i18n/en/buttons.ts
@@ -0,0 +1,25 @@
+export const buttons = {
+ openSystemSet: "Open System Configs",
+ pureOpenSystemSet: "pureOpenSystemSet",
+
+ pureAccountSettings: "Account",
+ pureLoginOut: "LoginOut",
+ pureLogin: "Login",
+ pureReload: "Reload",
+ pureCloseCurrentTab: "Close CurrentTab",
+ pureCloseLeftTabs: "Close LeftTabs",
+ pureCloseRightTabs: "Close RightTabs",
+ pureCloseOtherTabs: "Close OtherTabs",
+ pureCloseAllTabs: "Close AllTabs",
+ pureContentFullScreen: "Content FullScreen",
+ pureContentExitFullScreen: "Content ExitFullScreen",
+ pureClickCollapse: "Collapse",
+ pureClickExpand: "Expand",
+ confirm: "Confirm",
+ pureSwitch: "Switch",
+ close: "Close",
+ pureBackTop: "BackTop",
+ pureOpenText: "Open",
+ pureCloseText: "Close",
+ rest: "Rest"
+};
diff --git a/mock/i18n/en/login.ts b/mock/i18n/en/login.ts
new file mode 100644
index 0000000..102389e
--- /dev/null
+++ b/mock/i18n/en/login.ts
@@ -0,0 +1,40 @@
+export const login = {
+ loginSuccess: "Login Success",
+ loginFail: "Login Fail",
+ usernameRegex: "please input username",
+ username: "input username",
+ password: "input password",
+ login: "Login",
+
+ email: "email",
+ repeatPassword: "Sure Password",
+ emailCode: "input email code",
+ verifyCode: "verify code",
+ emailRegex: "please input email",
+ passwordRegex: "please input password",
+ passwordSureRegex: "Please entr confirm password",
+ passwordDifferentRegex: "The two passwords do not match!",
+ emailCodeRegex: "please input email code",
+ getEmailCode: "get email code",
+ rememberMe: "days no need to login",
+ rememberInfo:
+ "After checking and logging in, will automatically log in to the system without entering your username and password within the specified number of days.",
+ forgetPassword: "Forget Password?",
+ getCodeInfo: "Seconds",
+ getVerifyCode: "Get VerifyCode",
+ definite: "definite",
+ back: "back",
+ passWordUpdateReg: "Password has been updated",
+ pureTip: 'After scanning the code, click "Confirm" to complete the login',
+ pureRegisterSuccess: "Regist Success",
+ pureTickPrivacy: "Please tick Privacy Policy",
+ pureReadAccept: "I have read it carefully and accept",
+ purePrivacyPolicy: "Privacy Policy",
+ pureVerifyCodeReg: "Please enter verify code",
+ pureVerifyCodeCorrectReg: "Please enter correct verify code",
+ pureVerifyCodeSixReg: "Please enter a 6-digit verify code",
+ purePhoneReg: "Please enter the phone",
+ purePhoneCorrectReg: "Please enter the correct phone number format",
+ purePassWordRuleReg:
+ "The password format should be any combination of 8-18 digits"
+};
diff --git a/mock/i18n/en/menus.ts b/mock/i18n/en/menus.ts
new file mode 100644
index 0000000..babb103
--- /dev/null
+++ b/mock/i18n/en/menus.ts
@@ -0,0 +1,120 @@
+export const menus = {
+ home: "Home",
+ purePermissionButtonRouter: "PermissionButtonRouter",
+ purePermissionButtonLogin: "purePermissionButtonLogin",
+ pureLogin: "Login",
+ pureEmpty: "Empty Page",
+ pureTable: "Table",
+ pureSysManagement: "System Manage",
+ pureUser: "User Manage",
+ pureRole: "Role Manage",
+ pureSystemMenu: "Menu Manage",
+ pureDept: "Dept Manage",
+ pureSysMonitor: "System Monitor",
+ pureOnlineUser: "Online User",
+ pureLoginLog: "Login Log",
+ pureOperationLog: "Operation Log",
+ pureSystemLog: "System Log",
+ pureEditor: "Editor",
+ pureAbnormal: "Abnormal Page",
+ pureFourZeroFour: "404",
+ pureFourZeroOne: "403",
+ pureFive: "500",
+ pureComponents: "Components",
+ pureDialog: "Dialog",
+ pureMessage: "Message Tips",
+ pureVideo: "Video",
+ pureSegmented: "Segmented",
+ pureWaterfall: "Waterfall",
+ pureMap: "Map",
+ pureDraggable: "Draggable",
+ pureSplitPane: "Split Pane",
+ pureText: "Text Ellipsis",
+ pureElButton: "Button",
+ pureButton: "Button Animation",
+ pureCheckButton: "Check Button",
+ pureCropping: "Picture Cropping",
+ pureAnimatecss: "AnimateCss Selector",
+ pureCountTo: "Digital Animation",
+ pureSelector: "Scope Selector",
+ pureFlowChart: "Flow Chart",
+ pureSeamless: "Seamless Scroll",
+ pureContextmenu: "Context Menu",
+ pureTypeit: "Typeit",
+ pureJsonEditor: "JSON Editor",
+ pureColorPicker: "Color Picker",
+ pureDatePicker: "Date Picker",
+ pureDateTimePicker: "DateTimePicker",
+ pureTimePicker: "TimePicker",
+ pureTag: "Tag",
+ pureStatistic: "Statistic",
+ pureCollapse: "Collapse",
+ pureGanttastic: "Gantt Chart",
+ pureProgress: "Progress",
+ pureUpload: "File Upload",
+ pureCheckCard: "CheckCard",
+ pureMenus: "MultiLevel Menu",
+ pureMenu1: "Menu1",
+ pureMenu2: "Menu2",
+ purePermission: "Permission Manage",
+ purePermissionPage: "Page Permission",
+ purePermissionButton: "Button Permission",
+ pureTabs: "Tabs Operate",
+ pureGuide: "Guide",
+ pureAble: "Able",
+ pureMenuTree: "Menu Tree",
+ pureVideoFrame: "Video Frame Capture",
+ pureWavesurfer: "Audio Visualization",
+ pureRipple: "Ripple",
+ pureMqtt: "Mqtt Client",
+ pureOptimize: "Debounce、Throttle、Copy、Longpress Directives",
+ pureVerify: "Captcha",
+ pureWatermark: "Water Mark",
+ purePrint: "Print",
+ pureDownload: "Download",
+ pureExternalPage: "External Page",
+ pureExternalDoc: "Docs External",
+ pureEmbeddedDoc: "Docs Embedded",
+ pureExternalLink: "Vue-Pure-Admin",
+ pureUtilsLink: "Pure-Admin-Utils",
+ pureColorHuntDoc: "ColorHunt",
+ pureUiGradients: "UiGradients",
+ pureEpDoc: "Element-Plus",
+ pureTailwindcssDoc: "Tailwindcss",
+ pureVueDoc: "Vue3",
+ pureViteDoc: "Vite",
+ purePiniaDoc: "Pinia",
+ pureRouterDoc: "Vue-Router",
+ pureAbout: "About",
+ pureResult: "Result Page",
+ pureSuccess: "Success Page",
+ pureFail: "Fail Page",
+ pureIconSelect: "Icon Select",
+ pureTimeline: "Time Line",
+ pureLineTree: "LineTree",
+ pureList: "List Page",
+ pureCardList: "Card List Page",
+ pureDebounce: "Debounce & Throttle",
+ pureFormDesign: "Form Design",
+ pureBarcode: "Barcode",
+ pureQrcode: "Qrcode",
+ pureCascader: "Area Cascader",
+ pureSwiper: "Swiper Plugin",
+ pureVirtualList: "Virtual List",
+ purePdf: "PDF Preview",
+ pureExcel: "Export Excel",
+ pureInfiniteScroll: "Table Infinite Scroll",
+ pureSensitive: "Sensitive Filter",
+ purePinyin: "PinYin",
+ pureDanmaku: "Danmaku",
+ pureSchemaForm: "Form",
+ pureTableBase: "Base Usage",
+ pureTableHigh: "High Usage",
+ pureTableEdit: "Edit Usage",
+ pureVxeTable: "Virtual Usage",
+ pureBoard: "Paint Board",
+ pureMindMap: "Mind Map",
+ pureMenuOverflow: "Menu Overflow Show Tooltip Text",
+ pureChildMenuOverflow: "Child Menu Overflow Show Tooltip Text",
+ systemctlTest: "Systemctl lTest"
+};
diff --git a/mock/i18n/en/panel.ts b/mock/i18n/en/panel.ts
new file mode 100644
index 0000000..a848250
--- /dev/null
+++ b/mock/i18n/en/panel.ts
@@ -0,0 +1,38 @@
+export const panel = {
+ pureSystemSet: "System Configs",
+ pureCloseSystemSet: "Close System Configs",
+ pureClearCacheAndToLogin: "Clear cache and return to login page",
+ pureClearCache: "Clear Cache",
+ pureOverallStyle: "Overall Style",
+ pureOverallStyleLight: "Light",
+ pureOverallStyleLightTip:
+ "Set sail freshly and light up the comfortable work interface",
+ pureOverallStyleDark: "Dark",
+ pureOverallStyleDarkTip:
+ "Moonlight Overture, indulge in the tranquility and elegance of the night",
+ pureOverallStyleSystem: "Auto",
+ pureOverallStyleSystemTip:
+ "Synchronize time, the interface naturally responds to morning and dusk",
+ pureThemeColor: "Theme Color",
+ pureLayoutModel: "Layout Model",
+ pureVerticalTip: "The menu on the left is familiar and friendly",
+ pureHorizontalTip: "Top menu, concise overview",
+ pureMixTip: "Mixed menu, flexible",
+ pureStretch: "Stretch Page",
+ pureStretchFixed: "Fixed",
+ pureStretchFixedTip:
+ "Compact pages make it easy to find the information you need",
+ pureStretchCustom: "Custom",
+ pureStretchCustomTip: "Minimum 1280, maximum 1600",
+ pureTagsStyle: "Tags Style",
+ pureTagsStyleSmart: "Smart",
+ pureTagsStyleSmartTip: "Smart tags add fun and brilliance",
+ pureTagsStyleCard: "Card",
+ pureTagsStyleCardTip: "Card tags for efficient browsing",
+ pureInterfaceDisplay: "Interface Display",
+ pureGreyModel: "Grey Model",
+ pureWeakModel: "Weak Model",
+ pureHiddenTags: "Hidden Tags",
+ pureHiddenFooter: "Hidden Footer",
+ pureMultiTagsCache: "MultiTags Cache"
+};
diff --git a/mock/i18n/en/search.ts b/mock/i18n/en/search.ts
new file mode 100644
index 0000000..45fea13
--- /dev/null
+++ b/mock/i18n/en/search.ts
@@ -0,0 +1,8 @@
+export const search = {
+ pureTotal: "Total",
+ pureHistory: "History",
+ pureCollect: "Collect",
+ pureDragSort: "(Drag Sort)",
+ pureEmpty: "Empty",
+ purePlaceholder: "Search Menu"
+};
diff --git a/mock/i18n/en/status.ts b/mock/i18n/en/status.ts
new file mode 100644
index 0000000..1f823c1
--- /dev/null
+++ b/mock/i18n/en/status.ts
@@ -0,0 +1,11 @@
+export const status = {
+ pureLoad: "Loading...",
+ pureMessage: "Message",
+ pureNotify: "Notify",
+ pureTodo: "Todo",
+ pureNoMessage: "No Message",
+ pureNoNotify: "No Notify",
+ pureNoTodo: "No Todo",
+ enable: "enable",
+ disable: "disable"
+};
diff --git a/mock/i18n/en/style.ts b/mock/i18n/en/style.ts
new file mode 100644
index 0000000..4e301bf
--- /dev/null
+++ b/mock/i18n/en/style.ts
@@ -0,0 +1,5 @@
+export const style = {
+ larger: "Larger",
+ default: "Default",
+ small: "Small"
+};
diff --git a/mock/i18n/en/system.ts b/mock/i18n/en/system.ts
new file mode 100644
index 0000000..d54d97a
--- /dev/null
+++ b/mock/i18n/en/system.ts
@@ -0,0 +1,8 @@
+export const system = {
+ carousel: "carousel setting",
+ config: "system config",
+ favicon: "system favicon",
+ feedback: "system feedback",
+ emailUsers: "email users",
+ log: "system log"
+};
diff --git a/mock/i18n/zh.ts b/mock/i18n/zh.ts
new file mode 100644
index 0000000..4c10f82
--- /dev/null
+++ b/mock/i18n/zh.ts
@@ -0,0 +1,20 @@
+import { buttons } from "./zh/buttons";
+import { search } from "./zh/search";
+import { panel } from "./zh/panel";
+import { menus } from "./zh/menus";
+import { status } from "./zh/status";
+import { login } from "./zh/login";
+import { style } from "./zh/style";
+import { system } from "./zh/system";
+
+export default {
+ name: "zh",
+ buttons,
+ search,
+ panel,
+ menus,
+ status,
+ login,
+ style,
+ system
+};
diff --git a/mock/i18n/zh/buttons.ts b/mock/i18n/zh/buttons.ts
new file mode 100644
index 0000000..356989c
--- /dev/null
+++ b/mock/i18n/zh/buttons.ts
@@ -0,0 +1,26 @@
+export const buttons = {
+ openSystemSet: "打开系统配置",
+ pureOpenSystemSet: "权限设定",
+
+ pureAccountSettings: "账户设置",
+ pureLoginOut: "退出系统",
+ pureLogin: "登录",
+ pureReload: "重新加载",
+ pureCloseCurrentTab: "关闭当前标签页",
+ pureCloseLeftTabs: "关闭左侧标签页",
+ pureCloseRightTabs: "关闭右侧标签页",
+ pureCloseOtherTabs: "关闭其他标签页",
+ pureCloseAllTabs: "关闭全部标签页",
+ pureContentFullScreen: "内容区全屏",
+ pureContentExitFullScreen: "内容区退出全屏",
+ pureClickCollapse: "点击折叠",
+ pureClickExpand: "点击展开",
+ confirm: "确认",
+ pureSwitch: "切换",
+ close: "关闭",
+ pureBackTop: "回到顶部",
+ pureOpenText: "开",
+ pureCloseText: "关",
+ rest: "重置",
+ search: "搜索"
+};
diff --git a/mock/i18n/zh/login.ts b/mock/i18n/zh/login.ts
new file mode 100644
index 0000000..3c2e8fa
--- /dev/null
+++ b/mock/i18n/zh/login.ts
@@ -0,0 +1,38 @@
+export const login = {
+ loginSuccess: "登录成功",
+ loginFail: "登录失败",
+ usernameRegex: "请输入账号",
+ username: "输入用户名",
+ password: "输入密码",
+ login: "登录",
+
+ email: "输入邮箱",
+ repeatPassword: "确认密码",
+ emailCode: "邮箱验证码",
+ verifyCode: "图形验证码",
+ emailRegex: "输入邮箱",
+ passwordRegex: "请输入密码",
+ passwordSureRegex: "请输入确认密码",
+ repeatPasswordRegex: "请输入确认密码",
+ passwordDifferentRegex: "两次密码不一致!",
+ emailCodeRegex: "请输入邮箱验证码",
+ verifyCodeRegex: "输入验证码",
+ getEmailCode: "获取邮箱验证码",
+ rememberMe: "天内免登录",
+ rememberInfo: "勾选并登录后,规定天数内无需输入用户名和密码会自动登入系统",
+ forgetPassword: "忘记密码?",
+ getVerifyCode: "获取验证码",
+ definite: "确定",
+ back: "返回",
+ getCodeInfo: "秒后重新获取",
+ passWordUpdateReg: "修改密码成功",
+ pureRegisterSuccess: "注册成功",
+ pureTickPrivacy: "请勾选隐私政策",
+ pureReadAccept: "我已仔细阅读并接受",
+ purePrivacyPolicy: "《隐私政策》",
+ pureVerifyCodeCorrectReg: "请输入正确的验证码",
+ pureVerifyCodeSixReg: "请输入6位数字验证码",
+ purePhoneReg: "请输入手机号码",
+ purePhoneCorrectReg: "请输入正确的手机号码格式",
+ purePassWordRuleReg: "密码格式应为8-18位数字、字母、符号的任意两种组合"
+};
diff --git a/mock/i18n/zh/menus.ts b/mock/i18n/zh/menus.ts
new file mode 100644
index 0000000..8994d4e
--- /dev/null
+++ b/mock/i18n/zh/menus.ts
@@ -0,0 +1,120 @@
+export const menus = {
+ home: "首页",
+ purePermissionButtonRouter: "权限1",
+ purePermissionButtonLogin: "权限2",
+ pureLogin: "登录",
+ pureEmpty: "无Layout页",
+ pureTable: "表格",
+ pureSysManagement: "系统管理",
+ pureUser: "用户管理",
+ pureRole: "角色管理",
+ pureSystemMenu: "菜单管理",
+ pureDept: "部门管理",
+ pureSysMonitor: "系统监控",
+ pureOnlineUser: "在线用户",
+ pureLoginLog: "登录日志",
+ pureOperationLog: "操作日志",
+ pureSystemLog: "系统日志",
+ pureEditor: "编辑器",
+ pureAbnormal: "异常页面",
+ pureFourZeroFour: "404",
+ pureFourZeroOne: "403",
+ pureFive: "500",
+ pureComponents: "组件",
+ pureDialog: "函数式弹框",
+ pureMessage: "消息提示",
+ pureVideo: "视频",
+ pureSegmented: "分段控制器",
+ pureWaterfall: "瀑布流无限滚动",
+ pureMap: "地图",
+ pureDraggable: "拖拽",
+ pureSplitPane: "切割面板",
+ pureText: "文本省略",
+ pureElButton: "按钮",
+ pureCheckButton: "可选按钮",
+ pureButton: "按钮动效",
+ pureCropping: "图片裁剪",
+ pureAnimatecss: "animate.css选择器",
+ pureCountTo: "数字动画",
+ pureSelector: "范围选择器",
+ pureFlowChart: "流程图",
+ pureSeamless: "无缝滚动",
+ pureContextmenu: "右键菜单",
+ pureTypeit: "打字机",
+ pureJsonEditor: "JSON编辑器",
+ pureColorPicker: "颜色选择器",
+ pureDatePicker: "日期选择器",
+ pureDateTimePicker: "日期时间选择器",
+ pureTimePicker: "时间选择器",
+ pureTag: "标签",
+ pureStatistic: "统计组件",
+ pureCollapse: "折叠面板",
+ pureGanttastic: "甘特图",
+ pureProgress: "进度条",
+ pureUpload: "文件上传",
+ pureCheckCard: "多选卡片",
+ pureMenus: "多级菜单",
+ pureMenu1: "菜单1",
+ pureMenu2: "菜单2",
+ purePermission: "权限管理",
+ purePermissionPage: "页面权限",
+ purePermissionButton: "按钮权限",
+ pureTabs: "标签页操作",
+ pureGuide: "引导页",
+ pureAble: "功能",
+ pureMenuTree: "菜单树结构",
+ pureVideoFrame: "视频帧截取-wasm版",
+ pureWavesurfer: "音频可视化",
+ pureRipple: "波纹(Ripple)",
+ pureMqtt: "MQTT客户端(mqtt)",
+ pureOptimize: "防抖、截流、复制、长按指令",
+ pureVerify: "图形验证码",
+ pureWatermark: "水印",
+ purePrint: "打印",
+ pureDownload: "下载",
+ pureExternalPage: "外部页面",
+ pureExternalDoc: "文档外链",
+ pureEmbeddedDoc: "文档内嵌",
+ pureExternalLink: "vue-pure-admin",
+ pureUtilsLink: "pure-admin-utils",
+ pureColorHuntDoc: "调色板",
+ pureUiGradients: "渐变色",
+ pureEpDoc: "element-plus",
+ pureTailwindcssDoc: "tailwindcss",
+ pureVueDoc: "vue3",
+ pureViteDoc: "vite",
+ purePiniaDoc: "pinia",
+ pureRouterDoc: "vue-router",
+ pureAbout: "关于",
+ pureResult: "结果页面",
+ pureSuccess: "成功页面",
+ pureFail: "失败页面",
+ pureIconSelect: "图标选择器",
+ pureTimeline: "时间线",
+ pureLineTree: "树形连接线",
+ pureList: "列表页面",
+ pureCardList: "卡片列表页",
+ pureDebounce: "防抖节流",
+ pureFormDesign: "表单设计器",
+ pureBarcode: "条形码",
+ pureQrcode: "二维码",
+ pureCascader: "区域级联选择器",
+ pureSwiper: "Swiper插件",
+ pureVirtualList: "虚拟列表",
+ purePdf: "PDF预览",
+ pureExcel: "导出Excel",
+ pureInfiniteScroll: "表格无限滚动",
+ pureSensitive: "敏感词过滤",
+ purePinyin: "汉语拼音",
+ pureDanmaku: "弹幕",
+ pureSchemaForm: "表单",
+ pureTableBase: "基础用法",
+ pureTableHigh: "高级用法",
+ pureTableEdit: "可编辑用法",
+ pureVxeTable: "虚拟滚动",
+ pureBoard: "艺术画板",
+ pureMindMap: "思维导图",
+ pureMenuOverflow: "目录超出显示 Tooltip 文字提示",
+ pureChildMenuOverflow: "菜单超出显示 Tooltip 文字提示",
+ systemctlTest: "系统测试"
+};
diff --git a/mock/i18n/zh/panel.ts b/mock/i18n/zh/panel.ts
new file mode 100644
index 0000000..436ce17
--- /dev/null
+++ b/mock/i18n/zh/panel.ts
@@ -0,0 +1,34 @@
+export const panel = {
+ pureSystemSet: "系统配置",
+ pureCloseSystemSet: "关闭配置",
+ pureClearCacheAndToLogin: "清空缓存并返回登录页",
+ pureClearCache: "清空缓存",
+ pureOverallStyle: "整体风格",
+ pureOverallStyleLight: "浅色",
+ pureOverallStyleLightTip: "清新启航,点亮舒适的工作界面",
+ pureOverallStyleDark: "深色",
+ pureOverallStyleDarkTip: "月光序曲,沉醉于夜的静谧雅致",
+ pureOverallStyleSystem: "自动",
+ pureOverallStyleSystemTip: "同步时光,界面随晨昏自然呼应",
+ pureThemeColor: "主题色",
+ pureLayoutModel: "导航模式",
+ pureVerticalTip: "左侧菜单,亲切熟悉",
+ pureHorizontalTip: "顶部菜单,简洁概览",
+ pureMixTip: "混合菜单,灵活多变",
+ pureStretch: "页宽",
+ pureStretchFixed: "固定",
+ pureStretchFixedTip: "紧凑页面,轻松找到所需信息",
+ pureStretchCustom: "自定义",
+ pureStretchCustomTip: "最小1280、最大1600",
+ pureTagsStyle: "页签风格",
+ pureTagsStyleSmart: "灵动",
+ pureTagsStyleSmartTip: "灵动标签,添趣生辉",
+ pureTagsStyleCard: "卡片",
+ pureTagsStyleCardTip: "卡片标签,高效浏览",
+ pureInterfaceDisplay: "界面显示",
+ pureGreyModel: "灰色模式",
+ pureWeakModel: "色弱模式",
+ pureHiddenTags: "隐藏标签页",
+ pureHiddenFooter: "隐藏页脚",
+ pureMultiTagsCache: "页签持久化"
+};
diff --git a/mock/i18n/zh/search.ts b/mock/i18n/zh/search.ts
new file mode 100644
index 0000000..4de0125
--- /dev/null
+++ b/mock/i18n/zh/search.ts
@@ -0,0 +1,10 @@
+export const search = {
+ search: {
+ pureTotal: "共",
+ pureHistory: "搜索历史",
+ pureCollect: "收藏",
+ pureDragSort: "(可拖拽排序)",
+ pureEmpty: "暂无搜索结果",
+ purePlaceholder: "搜索菜单(支持拼音搜索)"
+ }
+};
diff --git a/mock/i18n/zh/status.ts b/mock/i18n/zh/status.ts
new file mode 100644
index 0000000..7258af5
--- /dev/null
+++ b/mock/i18n/zh/status.ts
@@ -0,0 +1,11 @@
+export const status = {
+ pureLoad: "加载中...",
+ pureMessage: "消息",
+ pureNotify: "通知",
+ pureTodo: "待办",
+ pureNoMessage: "暂无消息",
+ pureNoNotify: "暂无通知",
+ pureNoTodo: "暂无待办",
+ enable: "启用",
+ disable: "不启用"
+};
diff --git a/mock/i18n/zh/style.ts b/mock/i18n/zh/style.ts
new file mode 100644
index 0000000..4536e03
--- /dev/null
+++ b/mock/i18n/zh/style.ts
@@ -0,0 +1,5 @@
+export const style = {
+ larger: "宽松",
+ default: "默认",
+ small: "紧凑"
+};
diff --git a/mock/i18n/zh/system.ts b/mock/i18n/zh/system.ts
new file mode 100644
index 0000000..2c7da97
--- /dev/null
+++ b/mock/i18n/zh/system.ts
@@ -0,0 +1,8 @@
+export const system = {
+ config: "系统设置",
+ carousel: "轮播图设置",
+ favicon: "图标设置",
+ feedback: "用户反馈",
+ emailUsers: "邮件用户",
+ log: "系统日志"
+};
diff --git a/src/App.vue b/src/App.vue
index b2a5248..fbadac3 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -5,23 +5,56 @@
-
diff --git a/src/api/v1/i18n/i18n.ts b/src/api/v1/i18n/i18n.ts
new file mode 100644
index 0000000..add66be
--- /dev/null
+++ b/src/api/v1/i18n/i18n.ts
@@ -0,0 +1,9 @@
+import { http } from "@/api/service/mockRequest";
+import type { Result } from "../../../../types/store/baseStoreState";
+
+/**
+ * * 获取多语言内容
+ */
+export const fetchGetI18n = () => {
+ return http.request>("get", "getI18n");
+};
diff --git a/src/layout/components/lay-navbar/index.vue b/src/layout/components/lay-navbar/index.vue
index e9030ed..760a010 100644
--- a/src/layout/components/lay-navbar/index.vue
+++ b/src/layout/components/lay-navbar/index.vue
@@ -1,4 +1,4 @@
-
-
+
-
+
@@ -39,8 +39,8 @@ const getLabel = computed(
-
+
diff --git a/src/layout/components/lay-search/components/SearchHistoryItem.vue b/src/layout/components/lay-search/components/SearchHistoryItem.vue
index 6f10ca4..91c9858 100644
--- a/src/layout/components/lay-search/components/SearchHistoryItem.vue
+++ b/src/layout/components/lay-search/components/SearchHistoryItem.vue
@@ -1,9 +1,9 @@
-