init
This commit is contained in:
91
src/i18n/index.ts
Normal file
91
src/i18n/index.ts
Normal 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
204
src/i18n/lang/en.ts
Normal 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
197
src/i18n/lang/zh-cn.ts
Normal 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
36
src/i18n/pages/form/en.ts
Normal 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',
|
||||
},
|
||||
},
|
||||
};
|
||||
35
src/i18n/pages/form/zh-cn.ts
Normal file
35
src/i18n/pages/form/zh-cn.ts
Normal 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: '系统提示',
|
||||
},
|
||||
},
|
||||
};
|
||||
87
src/i18n/pages/login/en.ts
Normal file
87
src/i18n/pages/login/en.ts
Normal 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',
|
||||
},
|
||||
};
|
||||
84
src/i18n/pages/login/zh-cn.ts
Normal file
84
src/i18n/pages/login/zh-cn.ts
Normal 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: '钉钉',
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user