From ce19d73692b52365b6ef2cbe5871297d990ce4e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B5=A9=E6=9D=B0?= Date: Fri, 12 Jan 2024 11:18:24 +0800 Subject: [PATCH] =?UTF-8?q?perf:=E4=BC=98=E5=8C=96=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96=E5=8A=9F=E8=83=BD,=E6=8C=89=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=8C=96=E6=8B=86=E5=88=86=E7=BF=BB=E8=AF=91=E6=96=87=E4=BB=B6?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 1 + src/hooks/web/useLocale.ts | 6 +- src/locales/en.ts | 447 -------------------------------- src/locales/en/action.ts | 23 ++ src/locales/en/analysis.ts | 36 +++ src/locales/en/captcha.ts | 7 + src/locales/en/common.ts | 57 ++++ src/locales/en/cropper.ts | 14 + src/locales/en/dialog.ts | 5 + src/locales/en/error.ts | 6 + src/locales/en/form.ts | 55 ++++ src/locales/en/login.ts | 30 +++ src/locales/en/permission.ts | 4 + src/locales/en/profile.ts | 38 +++ src/locales/en/router.ts | 6 + src/locales/en/setting.ts | 31 +++ src/locales/en/size.ts | 5 + src/locales/en/sys.ts | 87 +++++++ src/locales/en/table.ts | 16 ++ src/locales/en/watermark.ts | 3 + src/locales/en/workplace.ts | 22 ++ src/locales/zh-CN.ts | 442 ------------------------------- src/locales/zh-CN/action.ts | 22 ++ src/locales/zh-CN/analysis.ts | 36 +++ src/locales/zh-CN/captcha.ts | 7 + src/locales/zh-CN/common.ts | 57 ++++ src/locales/zh-CN/cropper.ts | 14 + src/locales/zh-CN/dialog.ts | 5 + src/locales/zh-CN/error.ts | 6 + src/locales/zh-CN/form.ts | 55 ++++ src/locales/zh-CN/login.ts | 30 +++ src/locales/zh-CN/permission.ts | 4 + src/locales/zh-CN/profile.ts | 39 +++ src/locales/zh-CN/router.ts | 7 + src/locales/zh-CN/setting.ts | 31 +++ src/locales/zh-CN/size.ts | 5 + src/locales/zh-CN/sys.ts | 80 ++++++ src/locales/zh-CN/table.ts | 16 ++ src/locales/zh-CN/watermark.ts | 3 + src/locales/zh-CN/workplace.ts | 22 ++ src/plugins/vueI18n/helper.ts | 34 +++ src/plugins/vueI18n/index.ts | 6 +- 42 files changed, 923 insertions(+), 897 deletions(-) delete mode 100644 src/locales/en.ts create mode 100644 src/locales/en/action.ts create mode 100644 src/locales/en/analysis.ts create mode 100644 src/locales/en/captcha.ts create mode 100644 src/locales/en/common.ts create mode 100644 src/locales/en/cropper.ts create mode 100644 src/locales/en/dialog.ts create mode 100644 src/locales/en/error.ts create mode 100644 src/locales/en/form.ts create mode 100644 src/locales/en/login.ts create mode 100644 src/locales/en/permission.ts create mode 100644 src/locales/en/profile.ts create mode 100644 src/locales/en/router.ts create mode 100644 src/locales/en/setting.ts create mode 100644 src/locales/en/size.ts create mode 100644 src/locales/en/sys.ts create mode 100644 src/locales/en/table.ts create mode 100644 src/locales/en/watermark.ts create mode 100644 src/locales/en/workplace.ts delete mode 100644 src/locales/zh-CN.ts create mode 100644 src/locales/zh-CN/action.ts create mode 100644 src/locales/zh-CN/analysis.ts create mode 100644 src/locales/zh-CN/captcha.ts create mode 100644 src/locales/zh-CN/common.ts create mode 100644 src/locales/zh-CN/cropper.ts create mode 100644 src/locales/zh-CN/dialog.ts create mode 100644 src/locales/zh-CN/error.ts create mode 100644 src/locales/zh-CN/form.ts create mode 100644 src/locales/zh-CN/login.ts create mode 100644 src/locales/zh-CN/permission.ts create mode 100644 src/locales/zh-CN/profile.ts create mode 100644 src/locales/zh-CN/router.ts create mode 100644 src/locales/zh-CN/setting.ts create mode 100644 src/locales/zh-CN/size.ts create mode 100644 src/locales/zh-CN/sys.ts create mode 100644 src/locales/zh-CN/table.ts create mode 100644 src/locales/zh-CN/watermark.ts create mode 100644 src/locales/zh-CN/workplace.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index 54be7d8c0..cc4528277 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -89,6 +89,7 @@ "editor.defaultFormatter": "rvest.vs-code-prettier-eslint" }, "i18n-ally.localesPaths": ["src/locales"], + "i18n-ally.pathMatcher": "{locale}/{namespaces}.{ext}", "i18n-ally.keystyle": "nested", "i18n-ally.sortKeys": true, "i18n-ally.namespace": false, diff --git a/src/hooks/web/useLocale.ts b/src/hooks/web/useLocale.ts index c65070ef3..c1a88214c 100644 --- a/src/hooks/web/useLocale.ts +++ b/src/hooks/web/useLocale.ts @@ -1,6 +1,6 @@ import { i18n } from '@/plugins/vueI18n' import { useLocaleStoreWithOut } from '@/store/modules/locale' -import { setHtmlPageLang } from '@/plugins/vueI18n/helper' +import { setHtmlPageLang, importLangModule } from '@/plugins/vueI18n/helper' const setI18nLanguage = (locale: LocaleType) => { const localeStore = useLocaleStoreWithOut() @@ -22,9 +22,7 @@ export const useLocale = () => { const changeLocale = async (locale: LocaleType) => { const globalI18n = i18n.global - const langModule = await import(`../../locales/${locale}.ts`) - - globalI18n.setLocaleMessage(locale, langModule.default) + globalI18n.setLocaleMessage(locale, importLangModule(locale)) setI18nLanguage(locale) } diff --git a/src/locales/en.ts b/src/locales/en.ts deleted file mode 100644 index 4f4d4895d..000000000 --- a/src/locales/en.ts +++ /dev/null @@ -1,447 +0,0 @@ -export default { - common: { - inputText: 'Please input', - selectText: 'Please select', - startTimeText: 'Start time', - endTimeText: 'End time', - login: 'Login', - required: 'This is required', - loginOut: 'Login out', - document: 'Document', - profile: 'User Center', - reminder: 'Reminder', - loginOutMessage: 'Exit the system?', - back: 'Back', - ok: 'OK', - save: 'Save', - cancel: 'Cancel', - close: 'Close', - reload: 'Reload current', - success: 'Success', - closeTab: 'Close current', - closeTheLeftTab: 'Close left', - closeTheRightTab: 'Close right', - closeOther: 'Close other', - closeAll: 'Close all', - prevLabel: 'Prev', - nextLabel: 'Next', - skipLabel: 'Jump', - doneLabel: 'End', - menu: 'Menu', - menuDes: 'Menu bar rendered in routed structure', - collapse: 'Collapse', - collapseDes: 'Expand and zoom the menu bar', - tagsView: 'Tags view', - tagsViewDes: 'Used to record routing history', - tool: 'Tool', - toolDes: 'Used to set up custom systems', - query: 'Query', - reset: 'Reset', - shrink: 'Put away', - expand: 'Expand', - confirmTitle: 'System Hint', - exportMessage: 'Whether to confirm export data item?', - importMessage: 'Whether to confirm import data item?', - createSuccess: 'Create Success', - updateSuccess: 'Update Success', - delMessage: 'Delete the selected data?', - delDataMessage: 'Delete the data?', - delNoData: 'Please select the data to delete', - delSuccess: 'Deleted successfully', - index: 'Index', - status: 'Status', - createTime: 'Create Time', - updateTime: 'Update Time', - copy: 'Copy', - copySuccess: 'Copy Success', - copyError: 'Copy Error' - }, - error: { - noPermission: `Sorry, you don't have permission to access this page.`, - pageError: 'Sorry, the page you visited does not exist.', - networkError: 'Sorry, the server reported an error.', - returnToHome: 'Return to home' - }, - permission: { - hasPermission: `Please set the operation permission label value`, - hasRole: `Please set the role permission tag value` - }, - setting: { - projectSetting: 'Project setting', - theme: 'Theme', - layout: 'Layout', - systemTheme: 'System theme', - menuTheme: 'Menu theme', - interfaceDisplay: 'Interface display', - breadcrumb: 'Breadcrumb', - breadcrumbIcon: 'Breadcrumb icon', - collapseMenu: 'Collapse menu', - hamburgerIcon: 'Hamburger icon', - screenfullIcon: 'Screenfull icon', - sizeIcon: 'Size icon', - localeIcon: 'Locale icon', - messageIcon: 'Message icon', - tagsView: 'Tags view', - logo: 'Logo', - greyMode: 'Grey mode', - fixedHeader: 'Fixed header', - headerTheme: 'Header theme', - cutMenu: 'Cut Menu', - copy: 'Copy', - clearAndReset: 'Clear cache and reset', - copySuccess: 'Copy success', - copyFailed: 'Copy failed', - footer: 'Footer', - uniqueOpened: 'Unique opened', - tagsViewIcon: 'Tags view icon', - reExperienced: 'Please exit the login experience again', - fixedMenu: 'Fixed menu' - }, - size: { - default: 'Default', - large: 'Large', - small: 'Small' - }, - login: { - welcome: 'Welcome to the system', - message: 'Backstage management system', - tenantname: 'TenantName', - username: 'Username', - password: 'Password', - code: 'verification code', - login: 'Sign in', - relogin: 'Sign in again', - otherLogin: 'Sign in with', - register: 'Register', - checkPassword: 'Confirm password', - remember: 'Remember me', - hasUser: 'Existing account? Go to login', - forgetPassword: 'Forget password?', - tenantNamePlaceholder: 'Please Enter Tenant Name', - usernamePlaceholder: 'Please Enter Username', - passwordPlaceholder: 'Please Enter Password', - codePlaceholder: 'Please Enter Verification Code', - mobileTitle: 'Mobile sign in', - mobileNumber: 'Mobile Number', - mobileNumberPlaceholder: 'Plaease Enter Mobile Number', - backLogin: 'back', - getSmsCode: 'Get SMS Code', - btnMobile: 'Mobile sign in', - btnQRCode: 'QR code sign in', - qrcode: 'Scan the QR code to log in', - btnRegister: 'Sign up', - SmsSendMsg: 'code has been sent' - }, - captcha: { - verification: 'Please complete security verification', - slide: 'Swipe right to complete verification', - point: 'Please click', - success: 'Verification succeeded', - fail: 'verification failed' - }, - router: { - login: 'Login', - home: 'Home', - analysis: 'Analysis', - workplace: 'Workplace' - }, - analysis: { - newUser: 'New user', - unreadInformation: 'Unread information', - transactionAmount: 'Transaction amount', - totalShopping: 'Total Shopping', - monthlySales: 'Monthly sales', - userAccessSource: 'User access source', - january: 'January', - february: 'February', - march: 'March', - april: 'April', - may: 'May', - june: 'June', - july: 'July', - august: 'August', - september: 'September', - october: 'October', - november: 'November', - december: 'December', - estimate: 'Estimate', - actual: 'Actual', - directAccess: 'Airect access', - mailMarketing: 'Mail marketing', - allianceAdvertising: 'Alliance advertising', - videoAdvertising: 'Video advertising', - searchEngines: 'Search engines', - weeklyUserActivity: 'Weekly user activity', - activeQuantity: 'Active quantity', - monday: 'Monday', - tuesday: 'Tuesday', - wednesday: 'Wednesday', - thursday: 'Thursday', - friday: 'Friday', - saturday: 'Saturday', - sunday: 'Sunday' - }, - workplace: { - welcome: 'Hello', - happyDay: 'Wish you happy every day!', - toady: `It's sunny today`, - notice: 'Announcement', - project: 'Project', - access: 'Project access', - toDo: 'To do', - introduction: 'A serious introduction', - shortcutOperation: 'Quick entry', - operation: 'Operation', - index: 'Index', - personal: 'Personal', - team: 'Team', - quote: 'Quote', - contribution: 'Contribution', - hot: 'Hot', - yield: 'Yield', - dynamic: 'Dynamic', - push: 'push', - follow: 'Follow' - }, - form: { - input: 'Input', - inputNumber: 'InputNumber', - default: 'Default', - icon: 'Icon', - mixed: 'Mixed', - textarea: 'Textarea', - slot: 'Slot', - position: 'Position', - autocomplete: 'Autocomplete', - select: 'Select', - selectGroup: 'Select Group', - selectV2: 'SelectV2', - cascader: 'Cascader', - switch: 'Switch', - rate: 'Rate', - colorPicker: 'Color Picker', - transfer: 'Transfer', - render: 'Render', - radio: 'Radio', - button: 'Button', - checkbox: 'Checkbox', - slider: 'Slider', - datePicker: 'Date Picker', - shortcuts: 'Shortcuts', - today: 'Today', - yesterday: 'Yesterday', - aWeekAgo: 'A week ago', - week: 'Week', - year: 'Year', - month: 'Month', - dates: 'Dates', - daterange: 'Date Range', - monthrange: 'Month Range', - dateTimePicker: 'DateTimePicker', - dateTimerange: 'Datetime Range', - timePicker: 'Time Picker', - timeSelect: 'Time Select', - inputPassword: 'input Password', - passwordStrength: 'Password Strength', - operate: 'operate', - change: 'Change', - restore: 'Restore', - disabled: 'Disabled', - disablement: 'Disablement', - delete: 'Delete', - add: 'Add', - setValue: 'Set value', - resetValue: 'Reset value', - set: 'Set', - subitem: 'Subitem', - formValidation: 'Form validation', - verifyReset: 'Verify reset', - remark: 'Remark' - }, - watermark: { - watermark: 'Watermark' - }, - table: { - table: 'Table', - index: 'Index', - title: 'Title', - author: 'Author', - createTime: 'Create time', - action: 'Action', - pagination: 'pagination', - reserveIndex: 'Reserve index', - restoreIndex: 'Restore index', - showSelections: 'Show selections', - hiddenSelections: 'Restore selections', - showExpandedRows: 'Show expanded rows', - hiddenExpandedRows: 'Hidden expanded rows', - header: 'Header' - }, - action: { - create: 'Create', - add: 'Add', - del: 'Delete', - delete: 'Delete', - edit: 'Edit', - update: 'Update', - preview: 'Preview', - more: 'More', - sync: 'Sync', - save: 'Save', - detail: 'Detail', - export: 'Export', - import: 'Import', - generate: 'Generate', - logout: 'Login Out', - test: 'Test', - typeCreate: 'Dict Type Create', - typeUpdate: 'Dict Type Eidt', - dataCreate: 'Dict Data Create', - dataUpdate: 'Dict Data Eidt', - fileUpload: 'File Upload' - }, - dialog: { - dialog: 'Dialog', - open: 'Open', - close: 'Close' - }, - sys: { - api: { - operationFailed: 'Operation failed', - errorTip: 'Error Tip', - errorMessage: 'The operation failed, the system is abnormal!', - timeoutMessage: 'Login timed out, please log in again!', - apiTimeoutMessage: 'The interface request timed out, please refresh the page and try again!', - apiRequestFailed: 'The interface request failed, please try again later!', - networkException: 'network anomaly', - networkExceptionMsg: - 'Please check if your network connection is normal! The network is abnormal', - - errMsg401: 'The user does not have permission (token, user name, password error)!', - errMsg403: 'The user is authorized, but access is forbidden!', - errMsg404: 'Network request error, the resource was not found!', - errMsg405: 'Network request error, request method not allowed!', - errMsg408: 'Network request timed out!', - errMsg500: 'Server error, please contact the administrator!', - errMsg501: 'The network is not implemented!', - errMsg502: 'Network Error!', - errMsg503: 'The service is unavailable, the server is temporarily overloaded or maintained!', - errMsg504: 'Network timeout!', - errMsg505: 'The http version does not support the request!', - errMsg901: 'Demo mode, no write operations are possible!' - }, - app: { - logoutTip: 'Reminder', - logoutMessage: 'Confirm to exit the system?', - menuLoading: 'Menu loading...' - }, - exception: { - backLogin: 'Back Login', - backHome: 'Back Home', - subTitle403: "Sorry, you don't have access to this page.", - subTitle404: 'Sorry, the page you visited does not exist.', - subTitle500: 'Sorry, the server is reporting an error.', - noDataTitle: 'No data on the current page.', - networkErrorTitle: 'Network Error', - networkErrorSubTitle: - 'Sorry, Your network connection has been disconnected, please check your network!' - }, - lock: { - unlock: 'Click to unlock', - alert: 'Lock screen password error', - backToLogin: 'Back to login', - entry: 'Enter the system', - placeholder: 'Please enter the lock screen password or user password' - }, - login: { - backSignIn: 'Back sign in', - mobileSignInFormTitle: 'Mobile sign in', - qrSignInFormTitle: 'Qr code sign in', - signInFormTitle: 'Sign in', - signUpFormTitle: 'Sign up', - forgetFormTitle: 'Reset password', - - signInTitle: 'Backstage management system', - signInDesc: 'Enter your personal details and get started!', - policy: 'I agree to the xxx Privacy Policy', - scanSign: `scanning the code to complete the login`, - - loginButton: 'Sign in', - registerButton: 'Sign up', - rememberMe: 'Remember me', - forgetPassword: 'Forget Password?', - otherSignIn: 'Sign in with', - - // notify - loginSuccessTitle: 'Login successful', - loginSuccessDesc: 'Welcome back', - - // placeholder - accountPlaceholder: 'Please input username', - passwordPlaceholder: 'Please input password', - smsPlaceholder: 'Please input sms code', - mobilePlaceholder: 'Please input mobile', - policyPlaceholder: 'Register after checking', - diffPwd: 'The two passwords are inconsistent', - - userName: 'Username', - password: 'Password', - confirmPassword: 'Confirm Password', - email: 'Email', - smsCode: 'SMS code', - mobile: 'Mobile' - } - }, - profile: { - user: { - title: 'Personal Information', - username: 'User Name', - nickname: 'Nick Name', - mobile: 'Phone Number', - email: 'User Mail', - dept: 'Department', - posts: 'Position', - roles: 'Own Role', - sex: 'Sex', - man: 'Man', - woman: 'Woman', - createTime: 'Created Date' - }, - info: { - title: 'Basic Information', - basicInfo: 'Basic Information', - resetPwd: 'Reset Password', - userSocial: 'Social Information' - }, - rules: { - nickname: 'Please Enter User Nickname', - mail: 'Please Input The Email Address', - truemail: 'Please Input The Correct Email Address', - phone: 'Please Enter The Phone Number', - truephone: 'Please Enter The Correct Phone Number' - }, - password: { - oldPassword: 'Old PassWord', - newPassword: 'New Password', - confirmPassword: 'Confirm Password', - oldPwdMsg: 'Please Enter Old Password', - newPwdMsg: 'Please Enter New Password', - cfPwdMsg: 'Please Enter Confirm Password', - diffPwd: 'The Passwords Entered Twice No Match' - } - }, - cropper: { - selectImage: 'Select Image', - uploadSuccess: 'Uploaded success!', - modalTitle: 'Avatar upload', - okText: 'Confirm and upload', - btn_reset: 'Reset', - btn_rotate_left: 'Counterclockwise rotation', - btn_rotate_right: 'Clockwise rotation', - btn_scale_x: 'Flip horizontal', - btn_scale_y: 'Flip vertical', - btn_zoom_in: 'Zoom in', - btn_zoom_out: 'Zoom out', - preview: 'Preivew' - } -} diff --git a/src/locales/en/action.ts b/src/locales/en/action.ts new file mode 100644 index 000000000..a40cf14b8 --- /dev/null +++ b/src/locales/en/action.ts @@ -0,0 +1,23 @@ +export default { + create: 'Create', + add: 'Add', + del: 'Delete', + delete: 'Delete', + edit: 'Edit', + update: 'Update', + preview: 'Preview', + more: 'More', + sync: 'Sync', + save: 'Save', + detail: 'Detail', + export: 'Export', + import: 'Import', + generate: 'Generate', + logout: 'Login Out', + test: 'Test', + typeCreate: 'Dict Type Create', + typeUpdate: 'Dict Type Eidt', + dataCreate: 'Dict Data Create', + dataUpdate: 'Dict Data Eidt', + fileUpload: 'File Upload' +} diff --git a/src/locales/en/analysis.ts b/src/locales/en/analysis.ts new file mode 100644 index 000000000..55ca98f8d --- /dev/null +++ b/src/locales/en/analysis.ts @@ -0,0 +1,36 @@ +export default { + newUser: 'New user', + unreadInformation: 'Unread information', + transactionAmount: 'Transaction amount', + totalShopping: 'Total Shopping', + monthlySales: 'Monthly sales', + userAccessSource: 'User access source', + january: 'January', + february: 'February', + march: 'March', + april: 'April', + may: 'May', + june: 'June', + july: 'July', + august: 'August', + september: 'September', + october: 'October', + november: 'November', + december: 'December', + estimate: 'Estimate', + actual: 'Actual', + directAccess: 'Airect access', + mailMarketing: 'Mail marketing', + allianceAdvertising: 'Alliance advertising', + videoAdvertising: 'Video advertising', + searchEngines: 'Search engines', + weeklyUserActivity: 'Weekly user activity', + activeQuantity: 'Active quantity', + monday: 'Monday', + tuesday: 'Tuesday', + wednesday: 'Wednesday', + thursday: 'Thursday', + friday: 'Friday', + saturday: 'Saturday', + sunday: 'Sunday' +} diff --git a/src/locales/en/captcha.ts b/src/locales/en/captcha.ts new file mode 100644 index 000000000..0d2b3280e --- /dev/null +++ b/src/locales/en/captcha.ts @@ -0,0 +1,7 @@ +export default { + verification: 'Please complete security verification', + slide: 'Swipe right to complete verification', + point: 'Please click', + success: 'Verification succeeded', + fail: 'verification failed' +} diff --git a/src/locales/en/common.ts b/src/locales/en/common.ts new file mode 100644 index 000000000..a6061a3cf --- /dev/null +++ b/src/locales/en/common.ts @@ -0,0 +1,57 @@ +export default { + inputText: 'Please input', + selectText: 'Please select', + startTimeText: 'Start time', + endTimeText: 'End time', + login: 'Login', + required: 'This is required', + loginOut: 'Login out', + document: 'Document', + profile: 'User Center', + reminder: 'Reminder', + loginOutMessage: 'Exit the system?', + back: 'Back', + ok: 'OK', + save: 'Save', + cancel: 'Cancel', + close: 'Close', + reload: 'Reload current', + success: 'Success', + closeTab: 'Close current', + closeTheLeftTab: 'Close left', + closeTheRightTab: 'Close right', + closeOther: 'Close other', + closeAll: 'Close all', + prevLabel: 'Prev', + nextLabel: 'Next', + skipLabel: 'Jump', + doneLabel: 'End', + menu: 'Menu', + menuDes: 'Menu bar rendered in routed structure', + collapse: 'Collapse', + collapseDes: 'Expand and zoom the menu bar', + tagsView: 'Tags view', + tagsViewDes: 'Used to record routing history', + tool: 'Tool', + toolDes: 'Used to set up custom systems', + query: 'Query', + reset: 'Reset', + shrink: 'Put away', + expand: 'Expand', + confirmTitle: 'System Hint', + exportMessage: 'Whether to confirm export data item?', + importMessage: 'Whether to confirm import data item?', + createSuccess: 'Create Success', + updateSuccess: 'Update Success', + delMessage: 'Delete the selected data?', + delDataMessage: 'Delete the data?', + delNoData: 'Please select the data to delete', + delSuccess: 'Deleted successfully', + index: 'Index', + status: 'Status', + createTime: 'Create Time', + updateTime: 'Update Time', + copy: 'Copy', + copySuccess: 'Copy Success', + copyError: 'Copy Error' +} diff --git a/src/locales/en/cropper.ts b/src/locales/en/cropper.ts new file mode 100644 index 000000000..8da63ba84 --- /dev/null +++ b/src/locales/en/cropper.ts @@ -0,0 +1,14 @@ +export default { + selectImage: 'Select Image', + uploadSuccess: 'Uploaded success!', + modalTitle: 'Avatar upload', + okText: 'Confirm and upload', + btn_reset: 'Reset', + btn_rotate_left: 'Counterclockwise rotation', + btn_rotate_right: 'Clockwise rotation', + btn_scale_x: 'Flip horizontal', + btn_scale_y: 'Flip vertical', + btn_zoom_in: 'Zoom in', + btn_zoom_out: 'Zoom out', + preview: 'Preivew' +} diff --git a/src/locales/en/dialog.ts b/src/locales/en/dialog.ts new file mode 100644 index 000000000..3734be210 --- /dev/null +++ b/src/locales/en/dialog.ts @@ -0,0 +1,5 @@ +export default { + dialog: 'Dialog', + open: 'Open', + close: 'Close' +} diff --git a/src/locales/en/error.ts b/src/locales/en/error.ts new file mode 100644 index 000000000..a5d1e99ed --- /dev/null +++ b/src/locales/en/error.ts @@ -0,0 +1,6 @@ +export default { + noPermission: `Sorry, you don't have permission to access this page.`, + pageError: 'Sorry, the page you visited does not exist.', + networkError: 'Sorry, the server reported an error.', + returnToHome: 'Return to home' +} diff --git a/src/locales/en/form.ts b/src/locales/en/form.ts new file mode 100644 index 000000000..53f580e89 --- /dev/null +++ b/src/locales/en/form.ts @@ -0,0 +1,55 @@ +export default { + input: 'Input', + inputNumber: 'InputNumber', + default: 'Default', + icon: 'Icon', + mixed: 'Mixed', + textarea: 'Textarea', + slot: 'Slot', + position: 'Position', + autocomplete: 'Autocomplete', + select: 'Select', + selectGroup: 'Select Group', + selectV2: 'SelectV2', + cascader: 'Cascader', + switch: 'Switch', + rate: 'Rate', + colorPicker: 'Color Picker', + transfer: 'Transfer', + render: 'Render', + radio: 'Radio', + button: 'Button', + checkbox: 'Checkbox', + slider: 'Slider', + datePicker: 'Date Picker', + shortcuts: 'Shortcuts', + today: 'Today', + yesterday: 'Yesterday', + aWeekAgo: 'A week ago', + week: 'Week', + year: 'Year', + month: 'Month', + dates: 'Dates', + daterange: 'Date Range', + monthrange: 'Month Range', + dateTimePicker: 'DateTimePicker', + dateTimerange: 'Datetime Range', + timePicker: 'Time Picker', + timeSelect: 'Time Select', + inputPassword: 'input Password', + passwordStrength: 'Password Strength', + operate: 'operate', + change: 'Change', + restore: 'Restore', + disabled: 'Disabled', + disablement: 'Disablement', + delete: 'Delete', + add: 'Add', + setValue: 'Set value', + resetValue: 'Reset value', + set: 'Set', + subitem: 'Subitem', + formValidation: 'Form validation', + verifyReset: 'Verify reset', + remark: 'Remark' +} diff --git a/src/locales/en/login.ts b/src/locales/en/login.ts new file mode 100644 index 000000000..29a607139 --- /dev/null +++ b/src/locales/en/login.ts @@ -0,0 +1,30 @@ +export default { + welcome: 'Welcome to the system', + message: 'Backstage management system', + tenantname: 'TenantName', + username: 'Username', + password: 'Password', + code: 'verification code', + login: 'Sign in', + relogin: 'Sign in again', + otherLogin: 'Sign in with', + register: 'Register', + checkPassword: 'Confirm password', + remember: 'Remember me', + hasUser: 'Existing account? Go to login', + forgetPassword: 'Forget password?', + tenantNamePlaceholder: 'Please Enter Tenant Name', + usernamePlaceholder: 'Please Enter Username', + passwordPlaceholder: 'Please Enter Password', + codePlaceholder: 'Please Enter Verification Code', + mobileTitle: 'Mobile sign in', + mobileNumber: 'Mobile Number', + mobileNumberPlaceholder: 'Plaease Enter Mobile Number', + backLogin: 'back', + getSmsCode: 'Get SMS Code', + btnMobile: 'Mobile sign in', + btnQRCode: 'QR code sign in', + qrcode: 'Scan the QR code to log in', + btnRegister: 'Sign up', + SmsSendMsg: 'code has been sent' +} diff --git a/src/locales/en/permission.ts b/src/locales/en/permission.ts new file mode 100644 index 000000000..705645a10 --- /dev/null +++ b/src/locales/en/permission.ts @@ -0,0 +1,4 @@ +export default { + hasPermission: `Please set the operation permission label value`, + hasRole: `Please set the role permission tag value` +} diff --git a/src/locales/en/profile.ts b/src/locales/en/profile.ts new file mode 100644 index 000000000..877e8094a --- /dev/null +++ b/src/locales/en/profile.ts @@ -0,0 +1,38 @@ +export default { + user: { + title: 'Personal Information', + username: 'User Name', + nickname: 'Nick Name', + mobile: 'Phone Number', + email: 'User Mail', + dept: 'Department', + posts: 'Position', + roles: 'Own Role', + sex: 'Sex', + man: 'Man', + woman: 'Woman', + createTime: 'Created Date' + }, + info: { + title: 'Basic Information', + basicInfo: 'Basic Information', + resetPwd: 'Reset Password', + userSocial: 'Social Information' + }, + rules: { + nickname: 'Please Enter User Nickname', + mail: 'Please Input The Email Address', + truemail: 'Please Input The Correct Email Address', + phone: 'Please Enter The Phone Number', + truephone: 'Please Enter The Correct Phone Number' + }, + password: { + oldPassword: 'Old PassWord', + newPassword: 'New Password', + confirmPassword: 'Confirm Password', + oldPwdMsg: 'Please Enter Old Password', + newPwdMsg: 'Please Enter New Password', + cfPwdMsg: 'Please Enter Confirm Password', + diffPwd: 'The Passwords Entered Twice No Match' + } +} diff --git a/src/locales/en/router.ts b/src/locales/en/router.ts new file mode 100644 index 000000000..f66e99924 --- /dev/null +++ b/src/locales/en/router.ts @@ -0,0 +1,6 @@ +export default { + login: 'Login', + home: 'Home', + analysis: 'Analysis', + workplace: 'Workplace' +} diff --git a/src/locales/en/setting.ts b/src/locales/en/setting.ts new file mode 100644 index 000000000..f21a5815e --- /dev/null +++ b/src/locales/en/setting.ts @@ -0,0 +1,31 @@ +export default { + projectSetting: 'Project setting', + theme: 'Theme', + layout: 'Layout', + systemTheme: 'System theme', + menuTheme: 'Menu theme', + interfaceDisplay: 'Interface display', + breadcrumb: 'Breadcrumb', + breadcrumbIcon: 'Breadcrumb icon', + collapseMenu: 'Collapse menu', + hamburgerIcon: 'Hamburger icon', + screenfullIcon: 'Screenfull icon', + sizeIcon: 'Size icon', + localeIcon: 'Locale icon', + messageIcon: 'Message icon', + tagsView: 'Tags view', + logo: 'Logo', + greyMode: 'Grey mode', + fixedHeader: 'Fixed header', + headerTheme: 'Header theme', + cutMenu: 'Cut Menu', + copy: 'Copy', + clearAndReset: 'Clear cache and reset', + copySuccess: 'Copy success', + copyFailed: 'Copy failed', + footer: 'Footer', + uniqueOpened: 'Unique opened', + tagsViewIcon: 'Tags view icon', + reExperienced: 'Please exit the login experience again', + fixedMenu: 'Fixed menu' +} diff --git a/src/locales/en/size.ts b/src/locales/en/size.ts new file mode 100644 index 000000000..e1e5c5997 --- /dev/null +++ b/src/locales/en/size.ts @@ -0,0 +1,5 @@ +export default { + default: 'Default', + large: 'Large', + small: 'Small' +} diff --git a/src/locales/en/sys.ts b/src/locales/en/sys.ts new file mode 100644 index 000000000..173918547 --- /dev/null +++ b/src/locales/en/sys.ts @@ -0,0 +1,87 @@ +export default { + api: { + operationFailed: 'Operation failed', + errorTip: 'Error Tip', + errorMessage: 'The operation failed, the system is abnormal!', + timeoutMessage: 'Login timed out, please log in again!', + apiTimeoutMessage: 'The interface request timed out, please refresh the page and try again!', + apiRequestFailed: 'The interface request failed, please try again later!', + networkException: 'network anomaly', + networkExceptionMsg: + 'Please check if your network connection is normal! The network is abnormal', + + errMsg401: 'The user does not have permission (token, user name, password error)!', + errMsg403: 'The user is authorized, but access is forbidden!', + errMsg404: 'Network request error, the resource was not found!', + errMsg405: 'Network request error, request method not allowed!', + errMsg408: 'Network request timed out!', + errMsg500: 'Server error, please contact the administrator!', + errMsg501: 'The network is not implemented!', + errMsg502: 'Network Error!', + errMsg503: 'The service is unavailable, the server is temporarily overloaded or maintained!', + errMsg504: 'Network timeout!', + errMsg505: 'The http version does not support the request!', + errMsg901: 'Demo mode, no write operations are possible!' + }, + app: { + logoutTip: 'Reminder', + logoutMessage: 'Confirm to exit the system?', + menuLoading: 'Menu loading...' + }, + exception: { + backLogin: 'Back Login', + backHome: 'Back Home', + subTitle403: "Sorry, you don't have access to this page.", + subTitle404: 'Sorry, the page you visited does not exist.', + subTitle500: 'Sorry, the server is reporting an error.', + noDataTitle: 'No data on the current page.', + networkErrorTitle: 'Network Error', + networkErrorSubTitle: + 'Sorry, Your network connection has been disconnected, please check your network!' + }, + lock: { + unlock: 'Click to unlock', + alert: 'Lock screen password error', + backToLogin: 'Back to login', + entry: 'Enter the system', + placeholder: 'Please enter the lock screen password or user password' + }, + login: { + backSignIn: 'Back sign in', + mobileSignInFormTitle: 'Mobile sign in', + qrSignInFormTitle: 'Qr code sign in', + signInFormTitle: 'Sign in', + signUpFormTitle: 'Sign up', + forgetFormTitle: 'Reset password', + + signInTitle: 'Backstage management system', + signInDesc: 'Enter your personal details and get started!', + policy: 'I agree to the xxx Privacy Policy', + scanSign: `scanning the code to complete the login`, + + loginButton: 'Sign in', + registerButton: 'Sign up', + rememberMe: 'Remember me', + forgetPassword: 'Forget Password?', + otherSignIn: 'Sign in with', + + // notify + loginSuccessTitle: 'Login successful', + loginSuccessDesc: 'Welcome back', + + // placeholder + accountPlaceholder: 'Please input username', + passwordPlaceholder: 'Please input password', + smsPlaceholder: 'Please input sms code', + mobilePlaceholder: 'Please input mobile', + policyPlaceholder: 'Register after checking', + diffPwd: 'The two passwords are inconsistent', + + userName: 'Username', + password: 'Password', + confirmPassword: 'Confirm Password', + email: 'Email', + smsCode: 'SMS code', + mobile: 'Mobile' + } +} diff --git a/src/locales/en/table.ts b/src/locales/en/table.ts new file mode 100644 index 000000000..1dacef216 --- /dev/null +++ b/src/locales/en/table.ts @@ -0,0 +1,16 @@ +export default { + table: 'Table', + index: 'Index', + title: 'Title', + author: 'Author', + createTime: 'Create time', + action: 'Action', + pagination: 'pagination', + reserveIndex: 'Reserve index', + restoreIndex: 'Restore index', + showSelections: 'Show selections', + hiddenSelections: 'Restore selections', + showExpandedRows: 'Show expanded rows', + hiddenExpandedRows: 'Hidden expanded rows', + header: 'Header' +} diff --git a/src/locales/en/watermark.ts b/src/locales/en/watermark.ts new file mode 100644 index 000000000..70ce58f27 --- /dev/null +++ b/src/locales/en/watermark.ts @@ -0,0 +1,3 @@ +export default { + watermark: 'Watermark' +} diff --git a/src/locales/en/workplace.ts b/src/locales/en/workplace.ts new file mode 100644 index 000000000..860cd5766 --- /dev/null +++ b/src/locales/en/workplace.ts @@ -0,0 +1,22 @@ +export default { + welcome: 'Hello', + happyDay: 'Wish you happy every day!', + toady: `It's sunny today`, + notice: 'Announcement', + project: 'Project', + access: 'Project access', + toDo: 'To do', + introduction: 'A serious introduction', + shortcutOperation: 'Quick entry', + operation: 'Operation', + index: 'Index', + personal: 'Personal', + team: 'Team', + quote: 'Quote', + contribution: 'Contribution', + hot: 'Hot', + yield: 'Yield', + dynamic: 'Dynamic', + push: 'push', + follow: 'Follow' +} diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts deleted file mode 100644 index 6346a3d3b..000000000 --- a/src/locales/zh-CN.ts +++ /dev/null @@ -1,442 +0,0 @@ -export default { - common: { - inputText: '请输入', - selectText: '请选择', - startTimeText: '开始时间', - endTimeText: '结束时间', - login: '登录', - required: '该项为必填项', - loginOut: '退出系统', - document: '项目文档', - profile: '个人中心', - reminder: '温馨提示', - loginOutMessage: '是否退出本系统?', - back: '返回', - ok: '确定', - save: '保存', - cancel: '取消', - close: '关闭', - reload: '重新加载', - success: '成功', - closeTab: '关闭标签页', - closeTheLeftTab: '关闭左侧标签页', - closeTheRightTab: '关闭右侧标签页', - closeOther: '关闭其他标签页', - closeAll: '关闭全部标签页', - prevLabel: '上一步', - nextLabel: '下一步', - skipLabel: '跳过', - doneLabel: '结束', - menu: '菜单', - menuDes: '以路由的结构渲染的菜单栏', - collapse: '展开缩收', - collapseDes: '展开和缩放菜单栏', - tagsView: '标签页', - tagsViewDes: '用于记录路由历史记录', - tool: '工具', - toolDes: '用于设置定制系统', - query: '查询', - reset: '重置', - shrink: '收起', - expand: '展开', - confirmTitle: '系统提示', - exportMessage: '是否确认导出数据项?', - importMessage: '是否确认导入数据项?', - createSuccess: '新增成功', - updateSuccess: '修改成功', - delMessage: '是否删除所选中数据?', - delDataMessage: '是否删除数据?', - delNoData: '请选择需要删除的数据', - delSuccess: '删除成功', - index: '序号', - status: '状态', - createTime: '创建时间', - updateTime: '更新时间', - copy: '复制', - copySuccess: '复制成功', - copyError: '复制失败' - }, - error: { - noPermission: `抱歉,您无权访问此页面。`, - pageError: '抱歉,您访问的页面不存在。', - networkError: '抱歉,服务器报告错误。', - returnToHome: '返回首页' - }, - permission: { - hasPermission: `请设置操作权限标签值`, - hasRole: `请设置角色权限标签值` - }, - setting: { - projectSetting: '项目配置', - theme: '主题', - layout: '布局', - systemTheme: '系统主题', - menuTheme: '菜单主题', - interfaceDisplay: '界面显示', - breadcrumb: '面包屑', - breadcrumbIcon: '面包屑图标', - collapseMenu: '折叠菜单', - hamburgerIcon: '折叠图标', - screenfullIcon: '全屏图标', - sizeIcon: '尺寸图标', - localeIcon: '多语言图标', - messageIcon: '消息图标', - tagsView: '标签页', - logo: '标志', - greyMode: '灰色模式', - fixedHeader: '固定头部', - headerTheme: '头部主题', - cutMenu: '切割菜单', - copy: '拷贝', - clearAndReset: '清除缓存并且重置', - copySuccess: '拷贝成功', - copyFailed: '拷贝失败', - footer: '页脚', - uniqueOpened: '菜单手风琴', - tagsViewIcon: '标签页图标', - reExperienced: '请重新退出登录体验', - fixedMenu: '固定菜单' - }, - size: { - default: '默认', - large: '大', - small: '小' - }, - login: { - welcome: '欢迎使用本系统', - message: '开箱即用的中后台管理系统', - tenantname: '租户名称', - username: '用户名', - password: '密码', - code: '验证码', - login: '登录', - relogin: '重新登录', - otherLogin: '其他登录方式', - register: '注册', - checkPassword: '确认密码', - remember: '记住我', - hasUser: '已有账号?去登录', - forgetPassword: '忘记密码?', - tenantNamePlaceholder: '请输入租户名称', - usernamePlaceholder: '请输入用户名', - passwordPlaceholder: '请输入密码', - codePlaceholder: '请输入验证码', - mobileTitle: '手机登录', - mobileNumber: '手机号码', - mobileNumberPlaceholder: '请输入手机号码', - backLogin: '返回', - getSmsCode: '获取验证码', - btnMobile: '手机登录', - btnQRCode: '二维码登录', - qrcode: '扫描二维码登录', - btnRegister: '注册', - SmsSendMsg: '验证码已发送' - }, - captcha: { - verification: '请完成安全验证', - slide: '向右滑动完成验证', - point: '请依次点击', - success: '验证成功', - fail: '验证失败' - }, - router: { - login: '登录', - socialLogin: '社交登录', - home: '首页', - analysis: '分析页', - workplace: '工作台' - }, - analysis: { - newUser: '新增用户', - unreadInformation: '未读消息', - transactionAmount: '成交金额', - totalShopping: '购物总量', - monthlySales: '每月销售额', - userAccessSource: '用户访问来源', - january: '一月', - february: '二月', - march: '三月', - april: '四月', - may: '五月', - june: '六月', - july: '七月', - august: '八月', - september: '九月', - october: '十月', - november: '十一月', - december: '十二月', - estimate: '预计', - actual: '实际', - directAccess: '直接访问', - mailMarketing: '邮件营销', - allianceAdvertising: '联盟广告', - videoAdvertising: '视频广告', - searchEngines: '搜索引擎', - weeklyUserActivity: '每周用户活跃量', - activeQuantity: '活跃量', - monday: '周一', - tuesday: '周二', - wednesday: '周三', - thursday: '周四', - friday: '周五', - saturday: '周六', - sunday: '周日' - }, - workplace: { - welcome: '你好', - happyDay: '祝你开心每一天!', - toady: '今日晴', - notice: '通知公告', - project: '项目数', - access: '项目访问', - toDo: '待办', - introduction: '一个正经的简介', - shortcutOperation: '快捷入口', - operation: '操作', - index: '指数', - personal: '个人', - team: '团队', - quote: '引用', - contribution: '贡献', - hot: '热度', - yield: '产量', - dynamic: '动态', - push: '推送', - follow: '关注' - }, - form: { - input: '输入框', - inputNumber: '数字输入框', - default: '默认', - icon: '图标', - mixed: '复合型', - textarea: '多行文本', - slot: '插槽', - position: '位置', - autocomplete: '自动补全', - select: '选择器', - selectGroup: '选项分组', - selectV2: '虚拟列表选择器', - cascader: '级联选择器', - switch: '开关', - rate: '评分', - colorPicker: '颜色选择器', - transfer: '穿梭框', - render: '渲染器', - radio: '单选框', - button: '按钮', - checkbox: '多选框', - slider: '滑块', - datePicker: '日期选择器', - shortcuts: '快捷选项', - today: '今天', - yesterday: '昨天', - aWeekAgo: '一周前', - week: '周', - year: '年', - month: '月', - dates: '日期', - daterange: '日期范围', - monthrange: '月份范围', - dateTimePicker: '日期时间选择器', - dateTimerange: '日期时间范围', - timePicker: '时间选择器', - timeSelect: '时间选择', - inputPassword: '密码输入框', - passwordStrength: '密码强度', - operate: '操作', - change: '更改', - restore: '还原', - disabled: '禁用', - disablement: '解除禁用', - delete: '删除', - add: '添加', - setValue: '设置值', - resetValue: '重置值', - set: '设置', - subitem: '子项', - formValidation: '表单验证', - verifyReset: '验证重置', - remark: '备注' - }, - watermark: { - watermark: '水印' - }, - table: { - table: '表格', - index: '序号', - title: '标题', - author: '作者', - createTime: '创建时间', - action: '操作', - pagination: '分页', - reserveIndex: '叠加序号', - restoreIndex: '还原序号', - showSelections: '显示多选', - hiddenSelections: '隐藏多选', - showExpandedRows: '显示展开行', - hiddenExpandedRows: '隐藏展开行', - header: '头部' - }, - action: { - create: '新增', - add: '新增', - del: '删除', - delete: '删除', - edit: '编辑', - update: '编辑', - preview: '预览', - more: '更多', - sync: '同步', - save: '保存', - detail: '详情', - export: '导出', - import: '导入', - generate: '生成', - logout: '强制退出', - test: '测试', - typeCreate: '字典类型新增', - typeUpdate: '字典类型编辑', - dataCreate: '字典数据新增', - dataUpdate: '字典数据编辑' - }, - dialog: { - dialog: '弹窗', - open: '打开', - close: '关闭' - }, - sys: { - api: { - operationFailed: '操作失败', - errorTip: '错误提示', - errorMessage: '操作失败,系统异常!', - timeoutMessage: '登录超时,请重新登录!', - apiTimeoutMessage: '接口请求超时,请刷新页面重试!', - apiRequestFailed: '请求出错,请稍候重试', - networkException: '网络异常', - networkExceptionMsg: '网络异常,请检查您的网络连接是否正常!', - errMsg401: '用户没有权限(令牌、用户名、密码错误)!', - errMsg403: '用户得到授权,但是访问是被禁止的。!', - errMsg404: '网络请求错误,未找到该资源!', - errMsg405: '网络请求错误,请求方法未允许!', - errMsg408: '网络请求超时!', - errMsg500: '服务器错误,请联系管理员!', - errMsg501: '网络未实现!', - errMsg502: '网络错误!', - errMsg503: '服务不可用,服务器暂时过载或维护!', - errMsg504: '网络超时!', - errMsg505: 'http版本不支持该请求!', - errMsg901: '演示模式,无法进行写操作!' - }, - app: { - logoutTip: '温馨提醒', - logoutMessage: '是否确认退出系统?', - menuLoading: '菜单加载中...' - }, - exception: { - backLogin: '返回登录', - backHome: '返回首页', - subTitle403: '抱歉,您无权访问此页面。', - subTitle404: '抱歉,您访问的页面不存在。', - subTitle500: '抱歉,服务器报告错误。', - noDataTitle: '当前页无数据', - networkErrorTitle: '网络错误', - networkErrorSubTitle: '抱歉,您的网络连接已断开,请检查您的网络!' - }, - lock: { - unlock: '点击解锁', - alert: '锁屏密码错误', - backToLogin: '返回登录', - entry: '进入系统', - placeholder: '请输入锁屏密码或者用户密码' - }, - login: { - backSignIn: '返回', - signInFormTitle: '登录', - ssoFormTitle: '三方授权', - mobileSignInFormTitle: '手机登录', - qrSignInFormTitle: '二维码登录', - signUpFormTitle: '注册', - forgetFormTitle: '重置密码', - signInTitle: '开箱即用的中后台管理系统', - signInDesc: '输入您的个人详细信息开始使用!', - policy: '我同意xxx隐私政策', - scanSign: `扫码后点击"确认",即可完成登录`, - loginButton: '登录', - registerButton: '注册', - rememberMe: '记住我', - forgetPassword: '忘记密码?', - otherSignIn: '其他登录方式', - // notify - loginSuccessTitle: '登录成功', - loginSuccessDesc: '欢迎回来', - // placeholder - accountPlaceholder: '请输入账号', - passwordPlaceholder: '请输入密码', - smsPlaceholder: '请输入验证码', - mobilePlaceholder: '请输入手机号码', - policyPlaceholder: '勾选后才能注册', - diffPwd: '两次输入密码不一致', - userName: '账号', - password: '密码', - confirmPassword: '确认密码', - email: '邮箱', - smsCode: '短信验证码', - mobile: '手机号码' - } - }, - profile: { - user: { - title: '个人信息', - username: '用户名称', - nickname: '用户昵称', - mobile: '手机号码', - email: '用户邮箱', - dept: '所属部门', - posts: '所属岗位', - roles: '所属角色', - sex: '性别', - man: '男', - woman: '女', - createTime: '创建日期' - }, - info: { - title: '基本信息', - basicInfo: '基本资料', - resetPwd: '修改密码', - userSocial: '社交信息' - }, - rules: { - nickname: '请输入用户昵称', - mail: '请输入邮箱地址', - truemail: '请输入正确的邮箱地址', - phone: '请输入正确的手机号码', - truephone: '请输入正确的手机号码' - }, - password: { - oldPassword: '旧密码', - newPassword: '新密码', - confirmPassword: '确认密码', - oldPwdMsg: '请输入旧密码', - newPwdMsg: '请输入新密码', - cfPwdMsg: '请输入确认密码', - pwdRules: '长度在 6 到 20 个字符', - diffPwd: '两次输入密码不一致' - } - }, - cropper: { - selectImage: '选择图片', - uploadSuccess: '上传成功', - modalTitle: '头像上传', - okText: '确认并上传', - btn_reset: '重置', - btn_rotate_left: '逆时针旋转', - btn_rotate_right: '顺时针旋转', - btn_scale_x: '水平翻转', - btn_scale_y: '垂直翻转', - btn_zoom_in: '放大', - btn_zoom_out: '缩小', - preview: '预览' - }, - 'OAuth 2.0': 'OAuth 2.0' // 避免菜单名是 OAuth 2.0 时,一直 warn 报错 -} diff --git a/src/locales/zh-CN/action.ts b/src/locales/zh-CN/action.ts new file mode 100644 index 000000000..6967332be --- /dev/null +++ b/src/locales/zh-CN/action.ts @@ -0,0 +1,22 @@ +export default { + create: '新增', + add: '新增', + del: '删除', + delete: '删除', + edit: '编辑', + update: '编辑', + preview: '预览', + more: '更多', + sync: '同步', + save: '保存', + detail: '详情', + export: '导出', + import: '导入', + generate: '生成', + logout: '强制退出', + test: '测试', + typeCreate: '字典类型新增', + typeUpdate: '字典类型编辑', + dataCreate: '字典数据新增', + dataUpdate: '字典数据编辑' +} diff --git a/src/locales/zh-CN/analysis.ts b/src/locales/zh-CN/analysis.ts new file mode 100644 index 000000000..43eefd310 --- /dev/null +++ b/src/locales/zh-CN/analysis.ts @@ -0,0 +1,36 @@ +export default { + newUser: '新增用户', + unreadInformation: '未读消息', + transactionAmount: '成交金额', + totalShopping: '购物总量', + monthlySales: '每月销售额', + userAccessSource: '用户访问来源', + january: '一月', + february: '二月', + march: '三月', + april: '四月', + may: '五月', + june: '六月', + july: '七月', + august: '八月', + september: '九月', + october: '十月', + november: '十一月', + december: '十二月', + estimate: '预计', + actual: '实际', + directAccess: '直接访问', + mailMarketing: '邮件营销', + allianceAdvertising: '联盟广告', + videoAdvertising: '视频广告', + searchEngines: '搜索引擎', + weeklyUserActivity: '每周用户活跃量', + activeQuantity: '活跃量', + monday: '周一', + tuesday: '周二', + wednesday: '周三', + thursday: '周四', + friday: '周五', + saturday: '周六', + sunday: '周日' +} diff --git a/src/locales/zh-CN/captcha.ts b/src/locales/zh-CN/captcha.ts new file mode 100644 index 000000000..3be0dd0aa --- /dev/null +++ b/src/locales/zh-CN/captcha.ts @@ -0,0 +1,7 @@ +export default { + verification: '请完成安全验证', + slide: '向右滑动完成验证', + point: '请依次点击', + success: '验证成功', + fail: '验证失败' +} diff --git a/src/locales/zh-CN/common.ts b/src/locales/zh-CN/common.ts new file mode 100644 index 000000000..b60e02f60 --- /dev/null +++ b/src/locales/zh-CN/common.ts @@ -0,0 +1,57 @@ +export default { + inputText: '请输入', + selectText: '请选择', + startTimeText: '开始时间', + endTimeText: '结束时间', + login: '登录', + required: '该项为必填项', + loginOut: '退出系统', + document: '项目文档', + profile: '个人中心', + reminder: '温馨提示', + loginOutMessage: '是否退出本系统?', + back: '返回', + ok: '确定', + save: '保存', + cancel: '取消', + close: '关闭', + reload: '重新加载', + success: '成功', + closeTab: '关闭标签页', + closeTheLeftTab: '关闭左侧标签页', + closeTheRightTab: '关闭右侧标签页', + closeOther: '关闭其他标签页', + closeAll: '关闭全部标签页', + prevLabel: '上一步', + nextLabel: '下一步', + skipLabel: '跳过', + doneLabel: '结束', + menu: '菜单', + menuDes: '以路由的结构渲染的菜单栏', + collapse: '展开缩收', + collapseDes: '展开和缩放菜单栏', + tagsView: '标签页', + tagsViewDes: '用于记录路由历史记录', + tool: '工具', + toolDes: '用于设置定制系统', + query: '查询', + reset: '重置', + shrink: '收起', + expand: '展开', + confirmTitle: '系统提示', + exportMessage: '是否确认导出数据项?', + importMessage: '是否确认导入数据项?', + createSuccess: '新增成功', + updateSuccess: '修改成功', + delMessage: '是否删除所选中数据?', + delDataMessage: '是否删除数据?', + delNoData: '请选择需要删除的数据', + delSuccess: '删除成功', + index: '序号', + status: '状态', + createTime: '创建时间', + updateTime: '更新时间', + copy: '复制', + copySuccess: '复制成功', + copyError: '复制失败' +} diff --git a/src/locales/zh-CN/cropper.ts b/src/locales/zh-CN/cropper.ts new file mode 100644 index 000000000..e890fab52 --- /dev/null +++ b/src/locales/zh-CN/cropper.ts @@ -0,0 +1,14 @@ +export default { + selectImage: '选择图片', + uploadSuccess: '上传成功', + modalTitle: '头像上传', + okText: '确认并上传', + btn_reset: '重置', + btn_rotate_left: '逆时针旋转', + btn_rotate_right: '顺时针旋转', + btn_scale_x: '水平翻转', + btn_scale_y: '垂直翻转', + btn_zoom_in: '放大', + btn_zoom_out: '缩小', + preview: '预览' +} diff --git a/src/locales/zh-CN/dialog.ts b/src/locales/zh-CN/dialog.ts new file mode 100644 index 000000000..b0054d3eb --- /dev/null +++ b/src/locales/zh-CN/dialog.ts @@ -0,0 +1,5 @@ +export default { + dialog: '弹窗', + open: '打开', + close: '关闭' +} diff --git a/src/locales/zh-CN/error.ts b/src/locales/zh-CN/error.ts new file mode 100644 index 000000000..f9d70f1ea --- /dev/null +++ b/src/locales/zh-CN/error.ts @@ -0,0 +1,6 @@ +export default { + noPermission: `抱歉,您无权访问此页面。`, + pageError: '抱歉,您访问的页面不存在。', + networkError: '抱歉,服务器报告错误。', + returnToHome: '返回首页' +} diff --git a/src/locales/zh-CN/form.ts b/src/locales/zh-CN/form.ts new file mode 100644 index 000000000..15e014839 --- /dev/null +++ b/src/locales/zh-CN/form.ts @@ -0,0 +1,55 @@ +export default { + input: '输入框', + inputNumber: '数字输入框', + default: '默认', + icon: '图标', + mixed: '复合型', + textarea: '多行文本', + slot: '插槽', + position: '位置', + autocomplete: '自动补全', + select: '选择器', + selectGroup: '选项分组', + selectV2: '虚拟列表选择器', + cascader: '级联选择器', + switch: '开关', + rate: '评分', + colorPicker: '颜色选择器', + transfer: '穿梭框', + render: '渲染器', + radio: '单选框', + button: '按钮', + checkbox: '多选框', + slider: '滑块', + datePicker: '日期选择器', + shortcuts: '快捷选项', + today: '今天', + yesterday: '昨天', + aWeekAgo: '一周前', + week: '周', + year: '年', + month: '月', + dates: '日期', + daterange: '日期范围', + monthrange: '月份范围', + dateTimePicker: '日期时间选择器', + dateTimerange: '日期时间范围', + timePicker: '时间选择器', + timeSelect: '时间选择', + inputPassword: '密码输入框', + passwordStrength: '密码强度', + operate: '操作', + change: '更改', + restore: '还原', + disabled: '禁用', + disablement: '解除禁用', + delete: '删除', + add: '添加', + setValue: '设置值', + resetValue: '重置值', + set: '设置', + subitem: '子项', + formValidation: '表单验证', + verifyReset: '验证重置', + remark: '备注' +} diff --git a/src/locales/zh-CN/login.ts b/src/locales/zh-CN/login.ts new file mode 100644 index 000000000..a29db1ea1 --- /dev/null +++ b/src/locales/zh-CN/login.ts @@ -0,0 +1,30 @@ +export default { + welcome: '欢迎使用本系统', + message: '开箱即用的中后台管理系统', + tenantname: '租户名称', + username: '用户名', + password: '密码', + code: '验证码', + login: '登录', + relogin: '重新登录', + otherLogin: '其他登录方式', + register: '注册', + checkPassword: '确认密码', + remember: '记住我', + hasUser: '已有账号?去登录', + forgetPassword: '忘记密码?', + tenantNamePlaceholder: '请输入租户名称', + usernamePlaceholder: '请输入用户名', + passwordPlaceholder: '请输入密码', + codePlaceholder: '请输入验证码', + mobileTitle: '手机登录', + mobileNumber: '手机号码', + mobileNumberPlaceholder: '请输入手机号码', + backLogin: '返回', + getSmsCode: '获取验证码', + btnMobile: '手机登录', + btnQRCode: '二维码登录', + qrcode: '扫描二维码登录', + btnRegister: '注册', + SmsSendMsg: '验证码已发送' +} diff --git a/src/locales/zh-CN/permission.ts b/src/locales/zh-CN/permission.ts new file mode 100644 index 000000000..aa002bcea --- /dev/null +++ b/src/locales/zh-CN/permission.ts @@ -0,0 +1,4 @@ +export default { + hasPermission: `请设置操作权限标签值`, + hasRole: `请设置角色权限标签值` +} diff --git a/src/locales/zh-CN/profile.ts b/src/locales/zh-CN/profile.ts new file mode 100644 index 000000000..9973d0278 --- /dev/null +++ b/src/locales/zh-CN/profile.ts @@ -0,0 +1,39 @@ +export default { + user: { + title: '个人信息', + username: '用户名称', + nickname: '用户昵称', + mobile: '手机号码', + email: '用户邮箱', + dept: '所属部门', + posts: '所属岗位', + roles: '所属角色', + sex: '性别', + man: '男', + woman: '女', + createTime: '创建日期' + }, + info: { + title: '基本信息', + basicInfo: '基本资料', + resetPwd: '修改密码', + userSocial: '社交信息' + }, + rules: { + nickname: '请输入用户昵称', + mail: '请输入邮箱地址', + truemail: '请输入正确的邮箱地址', + phone: '请输入正确的手机号码', + truephone: '请输入正确的手机号码' + }, + password: { + oldPassword: '旧密码', + newPassword: '新密码', + confirmPassword: '确认密码', + oldPwdMsg: '请输入旧密码', + newPwdMsg: '请输入新密码', + cfPwdMsg: '请输入确认密码', + pwdRules: '长度在 6 到 20 个字符', + diffPwd: '两次输入密码不一致' + } +} diff --git a/src/locales/zh-CN/router.ts b/src/locales/zh-CN/router.ts new file mode 100644 index 000000000..8c2711be9 --- /dev/null +++ b/src/locales/zh-CN/router.ts @@ -0,0 +1,7 @@ +export default { + login: '登录', + socialLogin: '社交登录', + home: '首页', + analysis: '分析页', + workplace: '工作台' +} diff --git a/src/locales/zh-CN/setting.ts b/src/locales/zh-CN/setting.ts new file mode 100644 index 000000000..c9f39e101 --- /dev/null +++ b/src/locales/zh-CN/setting.ts @@ -0,0 +1,31 @@ +export default { + projectSetting: '项目配置', + theme: '主题', + layout: '布局', + systemTheme: '系统主题', + menuTheme: '菜单主题', + interfaceDisplay: '界面显示', + breadcrumb: '面包屑', + breadcrumbIcon: '面包屑图标', + collapseMenu: '折叠菜单', + hamburgerIcon: '折叠图标', + screenfullIcon: '全屏图标', + sizeIcon: '尺寸图标', + localeIcon: '多语言图标', + messageIcon: '消息图标', + tagsView: '标签页', + logo: '标志', + greyMode: '灰色模式', + fixedHeader: '固定头部', + headerTheme: '头部主题', + cutMenu: '切割菜单', + copy: '拷贝', + clearAndReset: '清除缓存并且重置', + copySuccess: '拷贝成功', + copyFailed: '拷贝失败', + footer: '页脚', + uniqueOpened: '菜单手风琴', + tagsViewIcon: '标签页图标', + reExperienced: '请重新退出登录体验', + fixedMenu: '固定菜单' +} diff --git a/src/locales/zh-CN/size.ts b/src/locales/zh-CN/size.ts new file mode 100644 index 000000000..aabbeb390 --- /dev/null +++ b/src/locales/zh-CN/size.ts @@ -0,0 +1,5 @@ +export default { + default: '默认', + large: '大', + small: '小' +} diff --git a/src/locales/zh-CN/sys.ts b/src/locales/zh-CN/sys.ts new file mode 100644 index 000000000..0d215c7e3 --- /dev/null +++ b/src/locales/zh-CN/sys.ts @@ -0,0 +1,80 @@ +export default { + api: { + operationFailed: '操作失败', + errorTip: '错误提示', + errorMessage: '操作失败,系统异常!', + timeoutMessage: '登录超时,请重新登录!', + apiTimeoutMessage: '接口请求超时,请刷新页面重试!', + apiRequestFailed: '请求出错,请稍候重试', + networkException: '网络异常', + networkExceptionMsg: '网络异常,请检查您的网络连接是否正常!', + errMsg401: '用户没有权限(令牌、用户名、密码错误)!', + errMsg403: '用户得到授权,但是访问是被禁止的。!', + errMsg404: '网络请求错误,未找到该资源!', + errMsg405: '网络请求错误,请求方法未允许!', + errMsg408: '网络请求超时!', + errMsg500: '服务器错误,请联系管理员!', + errMsg501: '网络未实现!', + errMsg502: '网络错误!', + errMsg503: '服务不可用,服务器暂时过载或维护!', + errMsg504: '网络超时!', + errMsg505: 'http版本不支持该请求!', + errMsg901: '演示模式,无法进行写操作!' + }, + app: { + logoutTip: '温馨提醒', + logoutMessage: '是否确认退出系统?', + menuLoading: '菜单加载中...' + }, + exception: { + backLogin: '返回登录', + backHome: '返回首页', + subTitle403: '抱歉,您无权访问此页面。', + subTitle404: '抱歉,您访问的页面不存在。', + subTitle500: '抱歉,服务器报告错误。', + noDataTitle: '当前页无数据', + networkErrorTitle: '网络错误', + networkErrorSubTitle: '抱歉,您的网络连接已断开,请检查您的网络!' + }, + lock: { + unlock: '点击解锁', + alert: '锁屏密码错误', + backToLogin: '返回登录', + entry: '进入系统', + placeholder: '请输入锁屏密码或者用户密码' + }, + login: { + backSignIn: '返回', + signInFormTitle: '登录', + ssoFormTitle: '三方授权', + mobileSignInFormTitle: '手机登录', + qrSignInFormTitle: '二维码登录', + signUpFormTitle: '注册', + forgetFormTitle: '重置密码', + signInTitle: '开箱即用的中后台管理系统', + signInDesc: '输入您的个人详细信息开始使用!', + policy: '我同意xxx隐私政策', + scanSign: `扫码后点击"确认",即可完成登录`, + loginButton: '登录', + registerButton: '注册', + rememberMe: '记住我', + forgetPassword: '忘记密码?', + otherSignIn: '其他登录方式', + // notify + loginSuccessTitle: '登录成功', + loginSuccessDesc: '欢迎回来', + // placeholder + accountPlaceholder: '请输入账号', + passwordPlaceholder: '请输入密码', + smsPlaceholder: '请输入验证码', + mobilePlaceholder: '请输入手机号码', + policyPlaceholder: '勾选后才能注册', + diffPwd: '两次输入密码不一致', + userName: '账号', + password: '密码', + confirmPassword: '确认密码', + email: '邮箱', + smsCode: '短信验证码', + mobile: '手机号码' + } +} diff --git a/src/locales/zh-CN/table.ts b/src/locales/zh-CN/table.ts new file mode 100644 index 000000000..9e818b0ae --- /dev/null +++ b/src/locales/zh-CN/table.ts @@ -0,0 +1,16 @@ +export default { + table: '表格', + index: '序号', + title: '标题', + author: '作者', + createTime: '创建时间', + action: '操作', + pagination: '分页', + reserveIndex: '叠加序号', + restoreIndex: '还原序号', + showSelections: '显示多选', + hiddenSelections: '隐藏多选', + showExpandedRows: '显示展开行', + hiddenExpandedRows: '隐藏展开行', + header: '头部' +} diff --git a/src/locales/zh-CN/watermark.ts b/src/locales/zh-CN/watermark.ts new file mode 100644 index 000000000..b2aeba41c --- /dev/null +++ b/src/locales/zh-CN/watermark.ts @@ -0,0 +1,3 @@ +export default { + watermark: '水印' +} diff --git a/src/locales/zh-CN/workplace.ts b/src/locales/zh-CN/workplace.ts new file mode 100644 index 000000000..22e5e41dc --- /dev/null +++ b/src/locales/zh-CN/workplace.ts @@ -0,0 +1,22 @@ +export default { + welcome: '你好', + happyDay: '祝你开心每一天!', + toady: '今日晴', + notice: '通知公告', + project: '项目数', + access: '项目访问', + toDo: '待办', + introduction: '一个正经的简介', + shortcutOperation: '快捷入口', + operation: '操作', + index: '指数', + personal: '个人', + team: '团队', + quote: '引用', + contribution: '贡献', + hot: '热度', + yield: '产量', + dynamic: '动态', + push: '推送', + follow: '关注' +} diff --git a/src/plugins/vueI18n/helper.ts b/src/plugins/vueI18n/helper.ts index da6bc8c90..4039e5653 100644 --- a/src/plugins/vueI18n/helper.ts +++ b/src/plugins/vueI18n/helper.ts @@ -1,3 +1,37 @@ export const setHtmlPageLang = (locale: LocaleType) => { document.querySelector('html')?.setAttribute('lang', locale) } + +/** + * 导入翻译文件 + * @param lang 语言 + * @returns + */ +import { set } from 'lodash-es' +//import.meta.glob暂不支持变量拼接路径.有几种翻译就引入几次 +const langFiles = { + 'zh-CN': import.meta.glob(`../../locales/zh-CN/**/*.ts`, { eager: true }), + en: import.meta.glob(`../../locales/en/**/*.ts`, { eager: true }) +} +export const importLangModule = (lang: LocaleType) => { + const langModule = {} //翻译文件 + const files: any = langFiles[lang] + + for (const key in files) { + + const moduleName = key.replace( + new RegExp(`(\\.\\.\\/\\.\\.\\/locales\\/${lang}\\/|\\.ts)`, 'g'), + '' + ) + //支持翻译文件夹下创建二级目录,如:zh-CN/demo/demo.ts + const moduleNameArray = moduleName.split('/') + if (moduleNameArray.length > 1) { + set(langModule, moduleNameArray[0], langModule[moduleNameArray[1]] || {}) + set(langModule[moduleNameArray[0]], moduleNameArray[1], files[key].default) + } else { + set(langModule, moduleName, files[key].default || {}) + } + } + langModule['OAuth 2.0'] = 'OAuth 2.0' //避免菜单名是 OAuth 2.0 时,一直 warn 报错 + return langModule +} diff --git a/src/plugins/vueI18n/index.ts b/src/plugins/vueI18n/index.ts index f845b13f7..20bc39ee3 100644 --- a/src/plugins/vueI18n/index.ts +++ b/src/plugins/vueI18n/index.ts @@ -2,7 +2,7 @@ import type { App } from 'vue' import { createI18n } from 'vue-i18n' import { useLocaleStoreWithOut } from '@/store/modules/locale' import type { I18n, I18nOptions } from 'vue-i18n' -import { setHtmlPageLang } from './helper' +import { setHtmlPageLang, importLangModule } from './helper' export let i18n: ReturnType @@ -10,8 +10,6 @@ const createI18nOptions = async (): Promise => { const localeStore = useLocaleStoreWithOut() const locale = localeStore.getCurrentLocale const localeMap = localeStore.getLocaleMap - const defaultLocal = await import(`../../locales/${locale.lang}.ts`) - const message = defaultLocal.default ?? {} setHtmlPageLang(locale.lang) @@ -25,7 +23,7 @@ const createI18nOptions = async (): Promise => { locale: locale.lang, fallbackLocale: locale.lang, messages: { - [locale.lang]: message + [locale.lang]: importLangModule(locale.lang) }, availableLocales: localeMap.map((v) => v.lang), sync: true, -- Gitee