This commit is contained in:
吴红兵
2025-12-02 10:37:49 +08:00
commit 1f645dad3e
1183 changed files with 147673 additions and 0 deletions

91
src/i18n/index.ts Normal file
View File

@@ -0,0 +1,91 @@
import {createI18n} from 'vue-i18n';
import pinia from '/@/stores/index';
import {storeToRefs} from 'pinia';
import {useThemeConfig} from '/@/stores/themeConfig';
import {info} from '/@/api/admin/i18n';
// 定义语言国际化内容
/**
* 说明:
* 须在 pages 下新建文件夹(建议 `要国际化界面目录` 与 `i18n 目录` 相同,方便查找),
* 注意国际化定义的字段,不要与原有的定义字段相同。
* 1、/src/i18n/lang 下的 ts 为框架的国际化内容
* 2、/src/i18n/pages 下的 ts 为各界面的国际化内容
*/
// element plus 自带国际化
import enLocale from 'element-plus/es/locale/lang/en';
import zhcnLocale from 'element-plus/es/locale/lang/zh-cn';
// 定义变量内容
const messages = {};
const element = {en: enLocale, 'zh-cn': zhcnLocale};
const itemize = {en: [] as any[], 'zh-cn': [] as any[]};
const modules: Record<string, any> = import.meta.glob('./**/*.ts', {eager: true});
const pages: Record<string, any> = import.meta.glob('./../../**/**/**/i18n/*.ts', {eager: true});
// 对自动引入的 modules 进行分类 en、zh-cn、zh-tw
for (const path in modules) {
const key = path.match(/(\S+)\/(\S+).ts/);
if (itemize[key![2]]) itemize[key![2]].push(modules[path].default);
else itemize[key![2]] = modules[path];
}
for (const path in pages) {
const key = path.match(/(\S+)\/(\S+).ts/);
if (itemize[key![2]]) itemize[key![2]].push(pages[path].default);
else itemize[key![2]] = pages[path];
}
// 合并数组对象(非标准数组对象,数组中对象的每项 key、value 都不同)
function mergeArrObj<T>(list: T, key: string) {
let obj = {};
list[key].forEach((i: EmptyObjectType) => {
obj = Object.assign({}, obj, i);
});
return obj;
}
for (const key in itemize) {
messages[key] = {
name: key,
el: element[key].el,
...mergeArrObj(itemize, key),
};
}
// 读取 pinia 默认语言
const stores = useThemeConfig(pinia);
const {themeConfig} = storeToRefs(stores);
// 导出语言国际化
export const i18n = createI18n({
legacy: false,
silentTranslationWarn: true,
missingWarn: false,
silentFallbackWarn: true,
fallbackWarn: false,
locale: themeConfig.value.globalI18n,
fallbackLocale: zhcnLocale.name,
messages,
});
await fetchI18n()
// 远程获取i18n
async function fetchI18n() {
const infoI18n = await info();
const messageLocal = {};
const itemizeLocal = {en: [] as any[], 'zh-cn': [] as any[]};
itemizeLocal['zh-cn'].push(...infoI18n.data.data['zh-cn']);
itemizeLocal.en.push(...infoI18n.data.data.en);
for (const key in itemizeLocal) {
messageLocal[key] = {
name: key,
...mergeArrObj(itemizeLocal, key),
};
}
i18n.global.mergeLocaleMessage('zh-cn', messageLocal['zh-cn']);
i18n.global.mergeLocaleMessage('en', messageLocal['en']);
i18n.global.locale.value = themeConfig.value.globalI18n;
}

204
src/i18n/lang/en.ts Normal file
View File

@@ -0,0 +1,204 @@
export default {
router: {
home: 'Home',
system: 'System',
systemMenu: 'System Menu',
systemRole: 'System Role',
systemUser: 'System User',
systemDept: 'System Department',
systemDic: 'System Dictionary',
limits: 'Permissions',
limitsFrontEnd: 'Front End',
limitsFrontEndPage: 'Front End Page',
limitsFrontEndBtn: 'Front End Button',
limitsBackEnd: 'Back End',
limitsBackEndEndPage: 'Back End Page',
menu: 'Menu',
menu1: 'Menu 1',
menu11: 'Menu 1-1',
menu12: 'Menu 1-2',
menu121: 'Menu 1-2-1',
menu122: 'Menu 1-2-2',
menu13: 'Menu 1-3',
menu2: 'Menu 2',
funIndex: 'Functions',
funTagsView: 'Tags View',
funCountup: 'Count Up',
funWangEditor: 'Wang Editor',
funCropper: 'Cropper',
funQrcode: 'QR Code',
funEchartsMap: 'Echarts Map',
funPrintJs: 'PrintJS',
funClipboard: 'Copy and Cut',
funGridLayout: 'Drag Layout',
funSplitpanes: 'Split Pane',
funDragVerify: 'Validator',
pagesIndex: 'Pages',
pagesFiltering: 'Filtering',
pagesFilteringDetails: 'Filtering Details',
pagesFilteringDetails1: 'Filtering Details 1',
pagesIocnfont: 'Icon Font Icon',
pagesElement: 'Element Icon',
pagesAwesome: 'Awesome Icon',
pagesFormAdapt: 'Form Adapt',
pagesTableRules: 'Table Rules',
pagesFormI18n: 'Form I18n',
pagesFormRules: 'Multi-Form Validation',
pagesDynamicForm: 'Dynamic Complex Form',
pagesWorkflow: 'Workflow',
pagesListAdapt: 'List Adapt',
pagesWaterfall: 'Waterfall',
pagesSteps: 'Steps',
pagesPreview: 'Large Preview',
pagesWaves: 'Wave Effect',
pagesTree: 'Tree Alter Table',
pagesDrag: 'Drag Command',
pagesLazyImg: 'Image Lazy Loading',
makeIndex: 'Make Index',
makeSelector: 'Icon Selector',
makeNoticeBar: 'Notification Bar',
makeSvgDemo: 'Svgicon Demo',
makeTableDemo: 'Table Demo',
paramsIndex: 'Routing Parameters',
paramsCommon: 'General Routing',
paramsDynamic: 'Dynamic Routing',
paramsCommonDetails: 'General Routing Details',
paramsDynamicDetails: 'Dynamic Routing Details',
chartIndex: 'Chart Index',
visualizingIndex: 'Visualizing Index',
visualizingLinkDemo1: 'Visualizing Link Demo 1',
visualizingLinkDemo2: 'Visualizing Link Demo 2',
personal: 'Personal',
tools: 'Tools',
layoutLinkView: 'Link View',
layoutIframeViewOne: 'Iframe View One',
layoutIframeViewTwo: 'Iframe View Two',
},
staticRoutes: {
login: 'Login',
authredirect: 'Auth Redirect',
expire: 'Password Expire',
signIn: 'Sign In',
notFound: 'Not Found',
noPower: 'No Power',
},
flowRoutes: {
flowview: 'View Flow',
jobview: 'View Job',
jobinitiate: 'Job Initiate',
jobinitagain: 'Job Initiate Again',
jobform: 'Job Form',
flowdesign: 'Flow Design',
handlejob: 'Flow Form Detail',
},
user: {
title0: 'Component Size',
title1: 'Language Switching',
title2: 'Menu Search',
title3: 'Layout Configuration',
title4: 'News',
title5: 'Full Screen On',
title6: 'Full Screen Off',
title7: 'Todo Tasks',
dropdownLarge: 'Large',
dropdownDefault: 'Default',
dropdownSmall: 'Small',
dropdown1: 'Home Page',
dropdown2: 'Personal Center',
dropdown5: 'Log Out',
searchPlaceholder: 'Menu Search: Supports Chinese and Routing Path',
newTitle: 'Notice',
newBtn: 'All',
newGo: 'Go to the Notification Center',
newDesc: 'No Notice',
logOutTitle: 'Tips',
logOutMessage: 'This Operation Will Log Out. Do You Want to Continue?',
logOutConfirm: 'Determine',
logOutCancel: 'Cancel',
logOutExit: 'Exiting',
},
tagsView: {
refresh: 'Refresh',
close: 'Close',
closeOther: 'Close Other',
closeAll: 'Close All',
fullscreen: 'Fullscreen',
closeFullscreen: 'Close Fullscreen',
favorite: 'Favorite',
favoriteMax: 'The number of shortcut navigation exceeds the upper limit. Please remove some shortcuts'
},
notFound: {
foundTitle: 'Wrong Address Input, Please Re-enter the Address~',
foundMsg: 'You Can Check the Web Address First, and Then Re-enter or Give Us Feedback.',
foundBtn: 'Back to Home Page',
},
noAccess: {
accessTitle: 'You Are Not Authorized to Operate~',
accessMsg: 'Contact Information: Add QQ Group Discussion 665452019',
accessBtn: 'Reauthorization',
},
layout: {
configTitle: 'Layout Configuration',
oneTitle: 'Global Themes',
twoTopTitle: 'Top Bar Set Up',
twoMenuTitle: 'Menu Set Up',
twoColumnsTitle: 'Columns Set Up',
twoTopBar: 'Top Bar Background',
twoTopBarColor: 'Top Bar Default Font Color',
twoIsTopBarColorGradual: 'Top Bar Gradient',
twoMenuBar: 'Menu Background',
twoMenuBarColor: 'Menu Default Font Color',
twoMenuBarActiveColor: 'Menu Highlight Color',
twoIsMenuBarColorGradual: 'Menu Gradient',
twoColumnsMenuBar: 'Column Menu Background',
twoColumnsMenuBarColor: 'Default Font Color Bar Menu',
twoIsColumnsMenuBarColorGradual: 'Column Gradient',
twoIsColumnsMenuHoverPreload: 'Column Menu Hover Preload',
threeTitle: 'Interface Settings',
threeIsCollapse: 'Menu Horizontal Collapse',
threeIsUniqueOpened: 'Menu Accordion',
threeIsFixedHeader: 'Fixed Header',
threeIsClassicSplitMenu: 'Classic Layout Split Menu',
threeIsLockScreen: 'Open the Lock Screen',
threeLockScreenTime: 'Screen Locking (s/s)',
fourTitle: 'Interface Display',
fourIsShowLogo: 'Sidebar Logo',
fourIsBreadcrumb: 'Open Breadcrumb',
fourIsBreadcrumbIcon: 'Open Breadcrumb Icon',
fourIsTagsview: 'Open Tagsview',
fourIsTagsviewIcon: 'Open Tagsview Icon',
fourIsCacheTagsView: 'Enable Tagsview Cache',
fourIsSortableTagsView: 'Enable Tagsview Drag',
fourIsShareTagsView: 'Enable Tagsview Sharing',
fourIsFooter: 'Open Footer',
fourIsGrayscale: 'Grey Model',
fourIsInvert: 'Color Weak Mode',
fourIsDark: 'Dark Mode',
fourIsWartermark: 'Turn on Watermark',
fourWartermarkText: 'Watermark Copy',
fourIsChat: 'LLaMA Chat',
fiveTitle: 'Other Settings',
fiveTagsStyle: 'Tagsview Style',
fiveAnimation: 'Page Animation',
fiveColumnsAsideStyle: 'Column Style',
fiveColumnsAsideLayout: 'Column Layout',
sixTitle: 'Layout Switch',
sixDefaults: 'One',
sixClassic: 'Two',
sixTransverse: 'Three',
sixColumns: 'Four',
tipText: 'Click the Button Below to Copy the Layout Configuration to `/src/stores/themeConfig.ts`. It Has Been Modified In.',
copyText: 'Replication Configuration',
resetText: 'Restore Default',
copyTextSuccess: 'Copy Succeeded!',
copyTextError: 'Copy Failed!',
},
upgrade: {
title: 'New Version',
msg: 'The New Version is Available, Please Update It Now! Dont Worry, the Update is Fast!',
desc: 'Prompt: Update Will Restore the Default Configuration',
btnOne: 'Cruel Refusal',
btnTwo: 'Update Now',
btnTwoLoading: 'Updating',
},
};

197
src/i18n/lang/zh-cn.ts Normal file
View File

@@ -0,0 +1,197 @@
// 定义内容
export default {
router: {
home: '首页',
system: '系统设置',
systemMenu: '菜单管理',
systemRole: '角色管理',
systemUser: '用户管理',
systemDept: '部门管理',
systemDic: '字典管理',
limits: '权限管理',
limitsFrontEnd: '前端控制',
limitsFrontEndPage: '页面权限',
limitsFrontEndBtn: '按钮权限',
limitsBackEnd: '后端控制',
limitsBackEndEndPage: '页面权限',
funIndex: '功能',
funTagsView: 'tagsView 操作',
funCountup: '数字滚动',
funWangEditor: 'Editor 编辑器',
funCropper: '图片裁剪',
funQrcode: '二维码生成',
funEchartsMap: '地理坐标/地图',
funPrintJs: '页面打印',
funClipboard: '复制剪切',
funGridLayout: '拖拽布局',
funSplitpanes: '窗格拆分器',
funDragVerify: '验证器',
pagesIndex: '页面',
pagesFiltering: '过滤筛选组件',
pagesFilteringDetails: '过滤筛选组件详情',
pagesFilteringDetails1: '过滤筛选组件详情111',
pagesIocnfont: 'ali 字体图标',
pagesElement: 'ele 字体图标',
pagesAwesome: 'awe 字体图标',
pagesFormAdapt: '表单自适应',
pagesTableRules: '表单表格验证',
pagesFormI18n: '表单国际化',
pagesFormRules: '多表单验证',
pagesDynamicForm: '动态复杂表单',
pagesWorkflow: '工作流',
pagesListAdapt: '列表自适应',
pagesWaterfall: '瀑布屏',
pagesSteps: '步骤条',
pagesPreview: '大图预览',
pagesWaves: '波浪效果',
pagesTree: '树形改表格',
pagesDrag: '拖动指令',
pagesLazyImg: '图片懒加载',
makeIndex: '组件封装',
makeSelector: '图标选择器',
makeNoticeBar: '滚动通知栏',
makeSvgDemo: 'svgIcon 演示',
makeTableDemo: '表格封装演示',
paramsIndex: '路由参数',
paramsCommon: '普通路由',
paramsDynamic: '动态路由',
paramsCommonDetails: '普通路由详情',
paramsDynamicDetails: '动态路由详情',
chartIndex: '大数据图表',
visualizingIndex: '数据可视化',
visualizingLinkDemo1: '数据可视化演示1',
visualizingLinkDemo2: '数据可视化演示2',
personal: '个人中心',
tools: '工具类集合',
layoutLinkView: '外链',
layoutIframeViewOne: '内嵌 iframe1',
layoutIframeViewTwo: '内嵌 iframe2',
},
staticRoutes: {
login: '登录',
authredirect: '回调页',
expire: '密码过期',
signIn: '登录',
notFound: '找不到此页面',
noPower: '没有权限',
},
flowRoutes: {
flowview: '查看流程图',
jobview: '查看工单',
jobinitiate: '工单发起',
jobinitagain: '再次发起',
jobform: '工单审批',
flowdesign: '流程图设计',
handlejob: '流程表单详情',
},
user: {
title0: '组件大小',
title1: '语言切换',
title2: '菜单搜索',
title3: '布局配置',
title4: '消息',
title5: '开全屏',
title6: '关全屏',
title7: '条待办任务',
dropdownLarge: '大型',
dropdownDefault: '默认',
dropdownSmall: '小型',
dropdown1: '首页',
dropdown2: '个人中心',
dropdown5: '退出登录',
searchPlaceholder: '菜单搜索:支持中文、路由路径',
newTitle: '通知',
newBtn: '全部',
newGo: '前往通知中心',
newDesc: '暂无通知',
logOutTitle: '提示',
logOutMessage: '此操作将退出登录, 是否继续?',
logOutConfirm: '确定',
logOutCancel: '取消',
logOutExit: '退出中',
},
tagsView: {
refresh: '刷新',
close: '关闭',
closeOther: '关闭其它',
closeAll: '全部关闭',
fullscreen: '当前页全屏',
closeFullscreen: '关闭全屏',
favorite: '收藏',
favoriteMax: '快捷导航数量超过上限,请移除部分'
},
notFound: {
foundTitle: '地址输入错误,请重新输入地址~',
foundMsg: '您可以先检查网址,然后重新输入或给我们反馈问题。',
foundBtn: '返回首页',
},
noAccess: {
accessTitle: '您未被授权,没有操作权限~',
accessMsg: '联系方式加QQ群探讨 665452019',
accessBtn: '重新授权',
},
layout: {
configTitle: '布局配置',
oneTitle: '全局主题',
twoTopTitle: '顶栏设置',
twoMenuTitle: '菜单设置',
twoColumnsTitle: '分栏设置',
twoTopBar: '顶栏背景',
twoTopBarColor: '顶栏默认字体颜色',
twoIsTopBarColorGradual: '顶栏背景渐变',
twoMenuBar: '菜单背景',
twoMenuBarColor: '菜单默认字体颜色',
twoMenuBarActiveColor: '菜单高亮背景色',
twoIsMenuBarColorGradual: '菜单背景渐变',
twoColumnsMenuBar: '分栏菜单背景',
twoColumnsMenuBarColor: '分栏菜单默认字体颜色',
twoIsColumnsMenuBarColorGradual: '分栏菜单背景渐变',
twoIsColumnsMenuHoverPreload: '分栏菜单鼠标悬停预加载',
threeTitle: '界面设置',
threeIsCollapse: '菜单水平折叠',
threeIsUniqueOpened: '菜单手风琴',
threeIsFixedHeader: '固定 Header',
threeIsClassicSplitMenu: '经典布局顶部菜单',
threeIsLockScreen: '开启锁屏',
threeLockScreenTime: '自动锁屏(s/秒)',
fourTitle: '界面显示',
fourIsShowLogo: '侧边栏 Logo',
fourIsBreadcrumb: '开启 Breadcrumb',
fourIsBreadcrumbIcon: '开启 Breadcrumb 图标',
fourIsTagsview: '开启 Tagsview',
fourIsTagsviewIcon: '开启 Tagsview 图标',
fourIsCacheTagsView: '开启 TagsView 缓存',
fourIsSortableTagsView: '开启 TagsView 拖拽',
fourIsShareTagsView: '开启 TagsView 共用',
fourIsFooter: '开启 Footer',
fourIsGrayscale: '灰色模式',
fourIsInvert: '色弱模式',
fourIsDark: '深色模式',
fourIsWartermark: '开启水印',
fourIsChat: '开启AI助手',
fourWartermarkText: '水印文案',
fiveTitle: '其它设置',
fiveTagsStyle: 'Tagsview 风格',
fiveAnimation: '主页面切换动画',
fiveColumnsAsideStyle: '分栏高亮风格',
fiveColumnsAsideLayout: '分栏布局风格',
sixTitle: '布局切换',
sixDefaults: '左侧',
sixClassic: '左顶',
sixTransverse: '横向',
sixColumns: '分栏',
tipText: '点击下方按钮,复制布局配置去 `src/stores/themeConfig.ts` 中修改。',
copyText: '一键复制配置',
resetText: '一键恢复默认',
copyTextSuccess: '复制成功!',
copyTextError: '复制失败!',
},
upgrade: {
title: '新版本升级',
msg: '新版本来啦,马上更新尝鲜吧!不用担心,更新很快的哦!',
desc: '提示:更新会还原默认配置',
btnOne: '残忍拒绝',
btnTwo: '马上更新',
btnTwoLoading: '更新中',
},
};

36
src/i18n/pages/form/en.ts Normal file
View File

@@ -0,0 +1,36 @@
// Improved versions of each word or sentence
export default {
common: {
queryBtn: 'Query',
addBtn: 'Add',
editBtn: 'Edit',
delBtn: 'Delete',
viewBtn: 'View',
detailBtn: 'Details',
exportBtn: 'Export',
expandBtn: 'expand/phrase ',
refreshCacheBtn: 'Refresh cache',
importBtn: 'Import',
importUserTip: 'Import user',
queryDeptTip: 'Enter department name',
resetBtn: 'Reset',
copyBtn:'Copy',
action: 'Action',
optSuccessText: 'Operation successful',
optConfirmText: 'Confirm this operation?',
editSuccessText: 'Successfully edited',
addSuccessText: 'Successfully added',
delSuccessText: 'Successfully deleted',
delConfirmText: 'This operation will permanently delete',
confirmButtonText: 'Confirm',
cancelButtonText: 'Cancel',
download: 'Download',
expand: 'Expand',
selectAll: 'SelectAll',
},
message: {
box: {
title: 'System prompt',
},
},
};

View File

@@ -0,0 +1,35 @@
// 定义通用内容
export default {
common: {
queryBtn: '查询',
addBtn: '新 增',
editBtn: '修 改',
expandBtn: '展开/折叠',
delBtn: '删除',
viewBtn: '查看',
detailBtn: '详情',
refreshCacheBtn: '刷新缓存',
exportBtn: '导出',
importBtn: '导入',
queryDeptTip: '请输入部门名称',
resetBtn: '重置',
copyBtn: '复制',
action: '操作',
optSuccessText: '操作成功',
editSuccessText: '修改成功',
addSuccessText: '添加成功',
delSuccessText: '删除成功',
delConfirmText: '此操作将永久删除',
optConfirmText: '是否确认本操作',
confirmButtonText: '确 认',
cancelButtonText: '取 消',
download: '下载',
expand: '展开/折叠',
selectAll: '全选/不全选',
},
message: {
box: {
title: '系统提示',
},
},
};

View File

@@ -0,0 +1,87 @@
export default {
label: {
one1: 'Account login',
two2: 'SMS login',
three3: 'Social login',
register: 'Create account',
},
link: {
one3: 'Third party login',
two4: 'Links',
},
password: {
accountPlaceholder1: 'The username "admin" is common, please use another',
accountPlaceholder2: 'Password',
accountPlaceholder3: 'Please enter the verification code',
phonePlaceholder4: 'Please enter your phone number',
accountBtnText: 'Sign in',
resetBtnText: 'Reset',
registerBtnText: 'Create account',
readAccept: 'I have read and accept',
privacyPolicy: 'the Privacy Policy',
oldPassword: 'Please enter old password',
newPassword: 'Please enter new password',
confirmPassword: 'Please confirm new password',
backToLogin: 'Back to login',
mobileLogin: 'Mobile Login',
createAccount: 'Create Account',
imageCodeTip: 'Please enter code',
},
mobile: {
placeholder1: 'Please enter your mobile number',
placeholder2: 'Please enter the verification code',
codeText: 'Get code',
btnText: 'Sign in',
mobileLogin: 'Mobile Login',
backToLogin: 'Back to login',
createAccount: 'Create Account',
sendSuccess: 'Verification code sent successfully',
seconds: 'seconds to resend',
mobileRequired: 'Please enter your mobile number',
codeRequired: 'Please enter verification code',
codeLength: 'Verification code must be 4 digits',
sendFailed: 'Failed to send verification code',
loginSuccess: 'Login successful',
loginFailed: 'Login failed',
signIn: 'Sign In',
},
scan: {
text: 'Use your wechat device to scan and quickly log in or create an account',
wechatApp: 'Scan with WeChat',
appErrorTip: 'The login fails because the application is not configured',
},
signInText: 'Welcome back!',
browserMsgText:
'Tip: For best results, we recommend using Google Chrome, Microsoft Edge (version 80 or higher), or the 360 browser with speed mode enabled.',
expire: {
oldPassword: 'Please enter old password',
newPassword: 'Please enter new password',
confirmPassword: 'Please confirm new password',
passwordRule: 'The two passwords do not match',
passwordScore: 'Password strength is too low',
resetSuccess: 'Password reset successfully',
},
tenantSelect: {
select: 'Select Tenant',
loadError: 'Failed to get tenant list',
},
verify: {
imageCode: 'Please enter verification code',
},
register: {
usernameEmpty: 'Username cannot be empty',
usernameLength: 'Username length must be between 5 and 20 characters',
phoneEmpty: 'Phone number cannot be empty',
passwordEmpty: 'Password cannot be empty',
passwordLength: 'Password length must be between 6 and 20 characters',
passwordStrength: 'Password strength is too low',
termsRequired: 'Please read and accept the terms',
},
divider: {
or: 'or',
},
socialLogin: {
wechatWork: 'WeCom',
dingtalk: 'DingTalk',
},
};

View File

@@ -0,0 +1,84 @@
// 定义内容
export default {
label: {
one1: '用户名登录',
two2: '手机号登录',
three3: '社交登录',
register: '注册账号',
},
link: {
one3: '第三方登录',
two4: '友情链接',
},
password: {
accountPlaceholder1: '请输入用户名',
accountPlaceholder2: '请输入密码',
accountPlaceholder3: '请输入验证码',
phonePlaceholder4: '请输入手机号',
accountBtnText: '登 录',
registerBtnText: '注 册',
resetBtnText: '重 置',
readAccept: '我已仔细阅读并接受',
privacyPolicy: '《隐私政策》',
oldPassword: '请输入原密码',
newPassword: '请输入新密码',
confirmPassword: '请确认新密码',
backToLogin: '返回登录',
mobileLogin: '验证码登录',
createAccount: '注册账号',
imageCodeTip: '请输入验证码',
},
mobile: {
placeholder1: '请输入手机号',
placeholder2: '请输入验证码',
codeText: '获取验证码',
btnText: '登 录',
mobileLogin: '验证码登录',
backToLogin: '返回登录',
createAccount: '注册账号',
sendSuccess: '验证码发送功',
seconds: '秒后重发',
mobileRequired: '请输入手机号码',
codeRequired: '请输入验证码',
codeLength: '验证码必须是4位数字',
sendFailed: '发送验证码失败',
loginSuccess: '登录成功',
loginFailed: '登录失败',
signIn: '登 录',
},
scan: {
text: '打开微信扫一扫,快速登录/注册',
wechatApp: '微信扫码体验移动端',
appErrorTip: '应用未配置,登录失败',
},
signInText: '欢迎回来!',
browserMsgText: '* 温馨提示建议使用谷歌、Microsoft Edge版本 80 及以上浏览器360浏览器请使用极速模式',
expire: {
oldPassword: '请输入原密码',
newPassword: '请输入新密码',
confirmPassword: '请确认新密码',
passwordRule: '两次输入的密码不一致',
passwordScore: '密码强度太低',
resetSuccess: '密码重置成功',
},
tenantSelect: {
select: '选择租户',
loadError: '获取租户列表失败',
},
register: {
usernameEmpty: '用户名不能为空',
usernameLength: '用户名称长度必须介于 5 和 20 之间',
phoneEmpty: '手机号不能为空',
passwordEmpty: '密码不能为空',
passwordLength: '用户密码长度必须介于 6 和 20 之间',
passwordStrength: '密码强度太低',
termsRequired: '请阅读并同意条款',
},
divider: {
or: '或',
},
socialLogin: {
wechatWork: '企微',
dingtalk: '钉钉',
},
};