smart-admin-web 10.25.0 → 10.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"zh-CN.js","sources":["../../src/locales/zh-CN.ts"],"sourcesContent":["// 中文文案。error.* 键 = 后端 msgKey(点分路径,来自 ErrorCode.cs 的 [MsgKey]),供请求层翻译。\nexport default {\n common: {\n rowNo: '序号',\n copySuffix: '-副本',\n zoomIn: '放大',\n zoomOut: '还原',\n success: '操作成功',\n confirm: '确定',\n confirmTitle: '操作确认',\n cancel: '取消',\n close: '关闭',\n more: '更多',\n search: '查询',\n reset: '重置',\n expandAll: '展开全部',\n collapseAll: '折叠全部',\n add: '新增',\n edit: '编辑',\n delete: '删除',\n save: '保存',\n submit: '提交',\n format: '格式化',\n copy: '复制',\n copied: '已复制',\n loading: '加载中…',\n yes: '是',\n no: '否',\n status: '状态',\n enabled: '启用',\n disabled: '停用',\n visible: '显示',\n hidden: '隐藏',\n operation: '操作',\n createTime: '创建时间',\n batchDelete: '批量删除',\n batchDeleteConfirm: '确认删除选中的 {count} 项?此操作不可恢复。',\n all: '全部',\n noData: '暂无数据',\n loadFailed: '加载失败',\n back: '返回',\n detail: '详情',\n },\n userPicker: {\n title: '选择用户',\n org: '机构',\n available: '可选用户',\n selected: '已选',\n search: '搜索姓名或账号',\n selectPage: '全选本页',\n unselectPage: '取消本页',\n total: '共 {n} 人',\n existing: '已有',\n remove: '移除',\n emptySelected: '尚未选择用户',\n prevPage: '上一页',\n nextPage: '下一页',\n clear: '清空',\n },\n notFound: {\n desc: '页面不存在',\n back: '返回工作台',\n currentApp: '当前应用:{app}',\n otherApp: '该页面属于「{app}」应用,不在当前应用里',\n switchAndOpen: '切换到「{app}」并打开',\n },\n // 内容区渲染异常兜底(components/ErrorBoundary)\n errorBoundary: {\n title: '这个页面出错了',\n desc: '页面渲染时抛出了未处理的异常。可以重试,或先回首页继续用别的功能。',\n retry: '重试',\n home: '回首页',\n },\n // 门户重建失败(网络/5xx/限流):会话没坏,不清会话\n bootError: {\n title: '加载工作台失败',\n desc: '没能取到你的应用与菜单。多半是网络不通或服务端暂时不可用,你的登录状态仍然有效。',\n retry: '重试',\n relogin: '重新登录',\n },\n missingRoute: {\n title: '菜单页面无法加载',\n message: '菜单“{title}”配置的组件路径不存在,请检查组件路径:{component}',\n },\n app: {\n theme: '主题',\n dark: '暗色',\n light: '亮色',\n accent: '主色',\n density: '密度',\n comfortable: '舒适',\n compact: '紧凑',\n language: '语言',\n collapse: '折叠菜单',\n openMenu: '打开菜单',\n switchModule: '切换应用',\n appearance: '外观设置',\n back: '后退',\n forward: '前进',\n logout: '退出登录',\n personalCenter: '个人中心',\n clearCache: '清除缓存',\n cacheCleared: '缓存已清除',\n profile: '个人资料',\n password: '修改密码',\n security: '账号安全',\n sessions: '我的会话',\n bindings: '账号绑定',\n search: '搜索菜单',\n fullscreen: '全屏',\n exitFullscreen: '退出全屏',\n settings: '系统设置',\n notice: {\n title: '消息通知',\n empty: '暂无通知',\n markAllRead: '全部已读',\n viewAll: '查看全部',\n },\n },\n settings: {\n title: '系统设置',\n tabAppearance: '外观',\n tabLayout: '布局',\n tabGeneral: '通用',\n themeMode: '外观模式',\n auto: '跟随系统',\n themeColor: '强调色',\n custom: '自定义',\n accentName: {\n blue: '蓝色',\n indigo: '靛蓝',\n purple: '紫色',\n teal: '深青',\n green: '墨绿',\n graphite: '石墨',\n custom: '自定义颜色',\n },\n accentDemoButton: '主按钮',\n accentDemoLink: '链接文字',\n layout: '布局模式',\n layoutVertical: '左侧菜单模式',\n layoutVerticalMix: '左侧菜单混合模式',\n layoutVerticalHybridHeaderFirst: '左侧混合-顶部优先',\n layoutHorizontal: '顶部菜单模式',\n layoutTopHybridSidebarFirst: '顶部混合-侧边优先',\n layoutTopHybridHeaderFirst: '顶部混合-顶部优先',\n interface: '界面',\n formStyle: '表单形态',\n formStyleModal: '弹窗',\n formStyleDrawer: '抽屉',\n showBreadcrumb: '显示面包屑',\n showTabs: '显示多标签',\n fixedHeader: '固定头部',\n pageTransition: '切换动画',\n transitionNone: '无',\n transitionFade: '淡入淡出',\n transitionFadeSlide: '滑动淡入',\n resetConfirm: '确定恢复默认设置?',\n copyConfig: '复制配置',\n configCopied: '已复制当前配置(粘回 stores/app.ts 的 DEFAULTS 即为新默认)',\n searchPlaceholder: '搜索菜单…',\n searchEmpty: '无匹配菜单',\n searchHint: '↑↓ 导航 · ↵ 进入 · Esc 关闭',\n descBreadcrumb: '顶栏显示当前页面的层级',\n descTabs: '保留已打开页面,可来回切换',\n descFixedHeader: '顶栏固定并保持毛玻璃',\n descPageTransition: '切换页面的过渡动画',\n descCollapse: '隐藏侧栏,把宽度让给内容区',\n },\n tabs: {\n refresh: '刷新',\n pin: '固定',\n unpin: '取消固定',\n close: '关闭',\n closeOthers: '关闭其他',\n closeLeft: '关闭左侧',\n closeRight: '关闭右侧',\n closeAll: '关闭全部',\n },\n login: {\n title: '登录',\n subtitle: '面向多机构、多应用的统一权限底座',\n headlinePre: '企业级',\n headlineAccent: '权限',\n headlinePost: '管理后台',\n welcome: '欢迎回来',\n welcomeSub: '请登录以继续管理后台',\n featRbac: 'RBAC 角色授权',\n featScope: '多机构数据范围',\n featPortal: '多应用门户',\n account: '账号',\n accountPlaceholder: '请输入账号',\n password: '密码',\n passwordPlaceholder: '请输入密码',\n required: '请输入账号和密码',\n captcha: '验证码',\n captchaPlaceholder: '请输入验证码',\n captchaMathPlaceholder: '请输入计算结果',\n captchaRequired: '请输入验证码',\n remember: '记住我',\n submit: '登 录',\n success: '登录成功',\n smsLogin: '短信登录',\n accountLogin: '账号登录',\n phone: '手机号',\n phonePlaceholder: '请输入手机号',\n smsCode: '短信验证码',\n smsCodePlaceholder: '请输入短信验证码',\n smsRequired: '请输入手机号和短信验证码',\n sendCode: '获取验证码',\n resendAfter: '{s}s 后重发',\n smsSent: '验证码已发送',\n mfaTitle: '验证码已发送至 {phone}',\n mfaSub: '请输入短信验证码完成登录',\n setupAuthenticator: '设置身份验证器',\n totpTitle: '二次验证',\n totpSub: '请输入身份验证器中的 6 位动态口令',\n totpCode: '动态口令',\n totpPlaceholder: '请输入 6 位动态口令',\n totpBindTitle: '需要设置身份验证器',\n totpBindSub: '管理员已要求此账号启用二次验证。请先完成绑定,再重新登录。',\n useRecovery: '使用恢复码',\n backToPassword: '返回密码登录',\n otherMethods: '其他登录方式',\n moreMethods: '更多登录方式',\n ssoWecom: '企业微信',\n ssoDingtalk: '钉钉',\n sso: 'SSO',\n ssoComingSoon: '第三方登录即将开放',\n layoutLabel: '切换登录页布局',\n layoutToSolo: '切换到单栏',\n layoutToSplit: '切换到双栏',\n },\n module: {\n choose: '选择应用',\n empty: '暂无可访问的应用,请联系管理员分配',\n setDefault: '设为默认',\n isDefault: '默认',\n back: '返回',\n enter: '进入',\n manage: '模块管理',\n code: '编码',\n name: '名称',\n icon: '图标',\n defaultRoute: '默认路由',\n apiPrefix: '路由前缀',\n apiPrefixHint: '用于权限路由下拉按应用过滤,填后端路由段(如 sys、biz);留空=不过滤',\n sort: '排序',\n remark: '备注',\n builtin: '内置',\n codeRequired: '请输入编码',\n nameRequired: '请输入名称',\n addTitle: '新增应用',\n editTitle: '编辑应用',\n deleteConfirm: '确定删除应用「{title}」?',\n disableConfirm: '确定停用应用「{title}」?门户将不再显示该应用',\n builtinNoDisable: '内置应用不可停用',\n delegatable: '可转授',\n delegatableHint: '打开后,普通管理员能把本应用的菜单单独授给或拒给用户(限时)',\n builtinNotDelegatable: '内置应用固定不可转授',\n saved: '保存成功',\n deleted: '已删除',\n },\n menu: {\n searchPlaceholder: '搜索名称/路由/权限码',\n workbench: '工作台',\n profile: '个人资料',\n password: '修改密码',\n security: '账号安全',\n notice: '我的通知',\n sessions: '我的会话',\n bindings: '账号绑定',\n manage: '菜单管理',\n parent: '上级菜单',\n parentRoot: '顶级(根目录)',\n type: '类型',\n typeCatalog: '目录',\n typeMenu: '页面',\n typeButton: '按钮',\n title: '标题',\n permission: '权限码',\n permissionPlaceholder: '选择路由,可多选',\n permissionHint: '一颗按钮可挂多条路由,角色勾上它即一起授出;「查询」按钮挂列表与详情两条路由。',\n configPerms: '配置权限 ({n})',\n showAllRoutes: '显示全部应用路由',\n routesInApp: '本应用路由',\n routesOther: '其他应用路由',\n module: '所属应用',\n moduleHint: '仅顶级目录可设',\n linkHint: '外链/内嵌:路径填 http(s) URL = 外链(新窗口打开);组件填 http(s) URL = 内嵌 iframe。',\n moduleAll: '全部',\n moduleUnassigned: '未分配',\n path: '路由路径',\n component: '组件路径',\n icon: '图标',\n sort: '排序',\n visible: '侧栏可见',\n titleRequired: '请输入标题',\n addTitle: '新增菜单',\n editTitle: '编辑菜单',\n addChild: '新增子节点',\n buttons: '权限按钮',\n buttonManagerTitle: '「{title}」· 权限按钮',\n buttonParent: '所属页面',\n addButton: '新增按钮',\n batchFromRoutes: '从路由批量添加',\n batchTitle: '从路由批量添加按钮',\n batchSearchPlaceholder: '搜索方法/路径/标题',\n noRoutesLeft: '没有可添加的路由(该菜单已覆盖全部,或路由清单为空)',\n btnQuery: '查询',\n btnCreate: '新增',\n btnUpdate: '编辑',\n btnDelete: '删除',\n deleteConfirm: '确定删除菜单「{title}」?',\n disableConfirm: '确定停用菜单「{title}」?其子节点将一并隐藏',\n saved: '保存成功',\n deleted: '已删除',\n },\n // 内核种子菜单 / 应用标题(DefaultMenuSeed / DefaultModuleSeed)的译文;值 = 种子里的中文标题原文。\n // 标题原文 → key 的映射表见 locales/kernelMenuTitles.ts。\n menuTitle: {\n module: {\n system: '系统',\n business: '业务中心',\n },\n catalog: {\n org: '组织管理',\n ops: '系统运维',\n schedule: '任务调度',\n audit: '日志审计',\n ai: 'AI 网关管理',\n },\n page: {\n workbench: '工作台',\n org: '机构管理',\n position: '岗位管理',\n user: '用户管理',\n role: '角色管理',\n config: '系统配置',\n dict: '字典管理',\n menu: '菜单管理',\n module: '模块管理',\n notice: '消息通知',\n recycle: '回收站',\n monitor: '服务器监控',\n cache: '缓存管理',\n apiDocs: '接口文档',\n job: '定时任务',\n jobLog: '执行记录',\n jobMonitor: '任务监控',\n loginLog: '登录日志',\n opLog: '操作日志',\n exceptionLog: '异常日志',\n session: '在线会话',\n file: '文件管理',\n aiModel: 'AI 模型',\n aiUsage: '用量统计',\n },\n button: {\n orgQuery: '机构-查询',\n orgCreate: '机构-新增',\n orgUpdate: '机构-更新',\n orgDelete: '机构-删除',\n orgCopy: '机构-复制',\n positionQuery: '岗位-查询',\n positionCreate: '岗位-新增',\n positionUpdate: '岗位-更新',\n positionDelete: '岗位-删除',\n userQuery: '用户-查询',\n userCreate: '用户-新增',\n userUpdate: '用户-更新',\n userDelete: '用户-删除',\n userResetPassword: '用户-重置密码',\n userToggle: '用户-启停',\n userImport: '用户-导入',\n userExport: '用户-导出',\n userGrantMenus: '用户-授权菜单',\n roleQuery: '角色-查询',\n roleCreate: '角色-新增',\n roleUpdate: '角色-更新',\n roleDelete: '角色-删除',\n roleGrantMenus: '角色-授权菜单',\n roleDataScope: '角色-数据范围',\n roleGrantUsers: '角色-授权用户',\n ping: '连通性探针',\n configQuery: '配置-查询',\n configCreate: '配置-新增',\n configUpdate: '配置-更新',\n configDelete: '配置-删除',\n configUploadLogo: '配置-上传Logo',\n sensitiveQuery: '高敏权限-查询',\n sensitiveCreate: '高敏权限-新增',\n sensitiveDelete: '高敏权限-删除',\n mfaClear: 'MFA-清除用户二因子',\n dictTypeQuery: '字典类型-查询',\n dictTypeCreate: '字典类型-新增',\n dictTypeUpdate: '字典类型-更新',\n dictTypeDelete: '字典类型-删除',\n dictItemQuery: '字典项-查询',\n dictItemCreate: '字典项-新增',\n dictItemUpdate: '字典项-更新',\n dictItemDelete: '字典项-删除',\n menuQuery: '菜单-查询',\n menuCreate: '菜单-新增',\n menuUpdate: '菜单-更新',\n menuDelete: '菜单-删除',\n moduleQuery: '模块-查询',\n moduleCreate: '模块-新增',\n moduleUpdate: '模块-更新',\n moduleDelete: '模块-删除',\n noticeQuery: '通知-查询',\n noticePublish: '通知-发布',\n noticeDelete: '通知-删除',\n recycleQuery: '回收站-查询',\n recyclePurge: '回收站-彻底删除',\n recycleRestore: '回收站-恢复',\n monitorQuery: '服务器监控-查询',\n cacheFlushAuth: '缓存-清授权',\n cacheFlushDict: '缓存-清字典',\n cacheFlushConfig: '缓存-清配置',\n cacheRebuildPortal: '缓存-重建门户菜单',\n apiDocsView: '接口文档-查看契约',\n jobQuery: '任务-查询',\n jobCreate: '任务-新增',\n jobUpdate: '任务-更新',\n jobDelete: '任务-删除',\n jobToggle: '任务-启停',\n jobRun: '任务-执行一次',\n jobLogQuery: '记录-查询',\n jobLogKill: '记录-终止',\n jobLogClear: '记录-清空',\n jobMonitorQuery: '监控-查询',\n loginLogQuery: '登录日志-查询',\n loginLogClear: '登录日志-清空',\n opLogQuery: '操作日志-查询',\n opLogClear: '操作日志-清空',\n opLogExport: '操作日志-导出',\n exceptionLogQuery: '异常日志-查询',\n exceptionLogClear: '异常日志-清空',\n sessionQuery: '在线会话-查询',\n sessionKick: '强制下线',\n fileQuery: '文件-查询',\n fileUpload: '文件-上传',\n fileDelete: '文件-删除',\n fileDownload: '文件-下载',\n aiProviderQuery: 'AI 厂商-查询',\n aiProviderCreate: 'AI 厂商-新增',\n aiProviderUpdate: 'AI 厂商-更新',\n aiProviderDelete: 'AI 厂商-删除',\n aiProviderTest: 'AI 厂商-测试连接',\n aiUsageQuery: 'AI 用量-查询',\n },\n },\n iconPicker: {\n placeholder: '选择图标',\n title: '选择图标',\n search: '搜索图标名…',\n local: '本地 SVG',\n online: '在线',\n onlinePlaceholder: '输入任意 iconify 名,如 mdi:home',\n use: '使用',\n offlineHint: '当前离线,未内置的在线图标无法预览',\n empty: '无匹配图标',\n more: '还有 {n} 个,继续输入以缩小范围',\n },\n // SmartTable(smart-naive-table)组件文案;查询/重置/密度复用 common/app 键,全局注入见 createSmartAdmin.ts\n table: {\n refresh: '刷新',\n columnSettings: '列设置',\n columnSettingsReset: '恢复默认',\n fixedLeft: '固定到左侧',\n fixedRight: '固定到右侧',\n fixedNone: '取消固定',\n expand: '展开',\n collapse: '收起',\n total: '共 {n} 条',\n // TableZoomButton(表格铺满视口看宽表)\n zoom: '放大',\n zoomExit: '还原',\n // 搜索条件超出后端能力时的提示(见 utils/tableFilter.ts)\n filterFallback:\n '部分搜索条件后端不支持(同一字段只能设一个条件;日期区间要用「大于等于」加「小于等于」,且连接),已按可识别的条件查询',\n filterTruncated: '数据超过 10000 条,搜索只覆盖前 10000 条,请换更精确的条件',\n },\n workbench: {\n welcome: '你好,{name}',\n subtitle: 'SmartAdmin · 企业级权限管理后台',\n roles: '角色总数',\n users: '授权用户',\n perms: '权限点',\n online: '在线会话',\n trendTitle: '近 7 日活跃趋势',\n distributionTitle: '资源分布',\n trendLogins: '登录数',\n trendActive: '活跃用户',\n },\n // 业务系统工作台(dashboard/biz.vue;真数据拼装,应用可用同 key 页面覆盖成自己的业务统计)\n biz: {\n welcome: '{name},欢迎回来',\n subtitle: '应用工作台',\n onlineDuration: '本次在线 {hours} 小时 {minutes} 分',\n onlineDurationShort: '本次在线 {minutes} 分钟',\n lastLogin: '上次登录 {time}',\n firstLogin: '首次登录',\n todo: '待办事项',\n todoEmpty: '暂无待办',\n quick: '快捷方式',\n quickPinned: '已置顶',\n quickSuggested: '常去 · 点星可固定',\n quickAdd: '添加快捷方式',\n quickPin: '固定',\n quickUnpin: '移除',\n notices: '我的通知',\n noticesEmpty: '暂无通知',\n noMenus: '当前应用暂无菜单',\n },\n user: {\n title: '用户管理',\n account: '账号',\n name: '姓名',\n status: '状态',\n enabled: '启用',\n disabled: '停用',\n superAdmin: '超管',\n createTime: '创建时间',\n // 写侧字段(创建/编辑专用)\n password: '初始密码',\n // 未配 Security:DefaultInitialPassword 时(默认就没配),后端生成随机强口令 —— 文案别写\"系统默认初始密码\",\n // 那个东西默认不存在,照着这句话去告诉新人\"用默认密码登\"必然登不上。\n passwordHint: '留空则自动生成随机密码(创建后显示一次)',\n org: '归属机构',\n allOrgs: '全部',\n // 机构分组栏的分组名;内容区较窄时机构树收进抽屉,它同时是工具栏按钮与抽屉标题\n orgFilter: '机构',\n // 下拉数据(职位/角色/主管)拉取失败只提示一次,不打断列表;{names} 是失败项名称\n optionsLoadFailed: '{names}选项加载失败,新增/编辑表单里的下拉可能为空,请刷新页面重试',\n // 分组栏头部按钮的提示:展开到底后变成「折叠到一级」;「收起」向左收起整栏,收起后工具栏按钮的提示是「展开」\n collapseToFirstLevel: '折叠到一级',\n hideOrgPanel: '收起机构栏',\n showOrgPanel: '展开机构栏',\n orgPlaceholder: '选择机构(可空)',\n position: '职位',\n positionPlaceholder: '选择职位(可空)',\n director: '直属主管',\n directorPlaceholder: '选择主管(可空)',\n nickname: '昵称',\n nicknamePlaceholder: '昵称(可空)',\n phone: '手机号',\n phonePlaceholder: '手机号(可空)',\n phoneInvalid: '手机号格式不正确',\n email: '邮箱',\n emailPlaceholder: '邮箱(可空)',\n emailInvalid: '邮箱格式不正确',\n gender: '性别',\n genderPlaceholder: '选择性别(可空)',\n avatar: '头像',\n avatarUploading: '上传中…',\n roles: '角色',\n rolesPlaceholder: '分配角色(可空)',\n accountRequired: '请输入账号',\n nameRequired: '请输入姓名',\n addTitle: '新增用户',\n editTitle: '编辑用户',\n deleteConfirm: '确定删除用户「{name}」?',\n disableConfirm: '确定停用用户「{name}」?',\n saved: '保存成功',\n deleted: '已删除',\n resetPassword: '重置密码',\n newPassword: '新密码',\n newPasswordHint: '留空则自动生成随机密码',\n resetDone: '密码已重置',\n createDone: '用户已创建',\n resetDoneHint: '请将下方初始密码转达给用户,关闭后不再显示:',\n copy: '复制',\n copied: '已复制到剪贴板',\n copyFailed: '复制失败,请手动选取',\n forceTotp: '强制动态口令',\n totpBound: '已绑动态口令',\n issueTotpInvite: '发放动态口令邀请',\n clearMfa: '解绑身份验证器',\n clearMfaConfirm: '确定解绑用户「{name}」的身份验证器?解绑后需重新绑定才能使用二次验证。',\n mfaCleared: '已解绑该用户的身份验证器',\n totpInviteTitle: '{name} 的动态口令邀请',\n totpInviteOnce: '邀请仅在当前显示一次,请通过受控渠道将链接或令牌发送给用户。',\n totpInviteUrl: '绑定链接',\n totpInviteToken: '邀请令牌',\n totpInviteExpires: '过期时间',\n },\n userGrant: {\n action: '授权菜单',\n title: '授权菜单 · {name}',\n tabGrant: '单独授权',\n tabEffective: '有效权限',\n hint: '常规授权请走角色,这里只放例外。允许只作用于这一个节点;拒绝连同下级一起收回,且优先于任何允许。',\n noRoles: '该用户没有任何角色,数据范围为「仅本人」:能打开授权的页面,但只看得到自己创建的数据。',\n readonly: '只能查看,不能修改:{reason}',\n readonlyNoReason: '只能查看,不能修改',\n follow: '跟随角色',\n allow: '允许',\n deny: '拒绝',\n effective: '有效',\n ineffective: '无效',\n expired: '已过期',\n deniedByAncestor: '被上级拒绝',\n notGrantable: '该模块只允许超管授权',\n expireLongTerm: '长期',\n remark: '授权理由(选填)',\n leaked: '以下接口仍可调用:',\n leakedFrom: '{code}(来自 {from})',\n summary: '允许 {allow} · 拒绝 {deny}',\n unsaved: '有未保存的修改',\n invalidExpiry: '有 {count} 条记录的到期日缺失或超出可选范围',\n saved: '授权已保存',\n overview: '单独授权一览',\n colUser: '用户',\n colMenu: '菜单',\n colState: '状态',\n colSource: '来源',\n colEffect: '效果',\n colStatus: '有效期',\n colExpire: '到期',\n colGrantor: '授权人',\n colGrantTime: '授权时间',\n colRemark: '授权理由',\n adjust: '去调整',\n statusActive: '生效中',\n statusExpiring: '7 天内到期',\n statusExpired: '已过期',\n },\n mfa: {\n bindTitle: '设置身份验证器',\n recoveryTitle: '使用恢复码',\n useRecovery: '使用恢复码',\n backToBind: '设置身份验证器',\n stepVerify: '验证身份',\n stepAuthenticator: '身份验证器',\n stepRecovery: '恢复码',\n bindHint: '输入账号和当前密码开始自助绑定(需管理员已开启 TOTP)。',\n account: '账号',\n currentPassword: '当前密码',\n startBind: '开始设置',\n bindRequired: '请输入账号和当前密码',\n scanSetupHint: '用 Google Authenticator、Microsoft Authenticator 等应用扫描下方二维码。',\n manualSetupHint: '无法扫码时,可手动输入密钥添加到身份验证器,再填写当前 6 位动态口令。',\n manualKey: '手动设置密钥',\n otpauthUri: '身份验证器 URI',\n authenticatorCode: '动态口令',\n completeBind: '完成设置',\n codeRequired: '请输入动态口令',\n recoveryOnce:\n '请立即保存这些恢复码。每个只能使用一次,关闭页面后将不再显示。建议下载到本地妥善保管。',\n copy: '复制',\n copied: '已复制到剪贴板',\n copyFailed: '复制失败,请手动选取',\n copyAll: '复制全部恢复码',\n downloadCodes: '下载到本地',\n recoveryDownloaded: '恢复码文件已开始下载',\n recoveryDownloadHeader: 'SmartAdmin 恢复码(账号:{account})',\n recoveryDownloadFooter: '每个恢复码仅可使用一次。请离线妥善保管,勿转发他人。',\n backToLogin: '返回登录',\n recoveryHint: '恢复码会移除身份验证器并注销所有现有会话。之后请重新自助绑定。',\n recoveryCode: '恢复码',\n submitRecovery: '使用恢复码',\n recoveryRequired: '请输入账号、当前密码和恢复码',\n recoveryDone: '身份验证器已移除。请重新登录;如仍被要求,请再次自助绑定。',\n bindStartResponseIncomplete: '设置响应不完整,请重新开始设置。',\n bindCompleteResponseIncomplete: '设置响应不完整,请重新开始设置。',\n },\n reauth: {\n title: '再次验证身份',\n hint: '此操作涉及高风险变更,请输入动态口令或当前密码以继续(约 5 分钟内有效)。',\n method: '验证方式',\n methodTotp: '动态口令',\n methodPassword: '当前密码',\n totpCode: '动态口令',\n totpPlaceholder: '6 位动态口令',\n totpRequired: '请输入动态口令',\n password: '当前密码',\n passwordPlaceholder: '当前登录密码',\n passwordRequired: '请输入当前密码',\n confirm: '验证并继续',\n },\n // 导入向导 / 导出选列\n import: {\n button: '导入',\n wizardTitle: '导入用户',\n stepUpload: '上传文件',\n stepMapping: '列映射',\n stepPreview: '预览改错',\n stepResult: '完成',\n downloadTemplate: '下载模板',\n dropHint: '点击或拖拽 xlsx 到此处',\n dropSub: '仅支持 .xlsx;字典列请用模板下拉值',\n needFile: '请先选择导入文件',\n mappingHint: '将文件表头映射到目标字段;自动匹配的已预选,可按需调整。',\n fileHeader: '文件表头',\n targetColumn: '目标列',\n unmap: '(不映射)',\n summary: '共 {total} 行,其中 {errors} 行有错误',\n summaryDup: '另有 {n} 行已存在',\n onlyErrors: '只看错误行',\n revalidate: '重新校验',\n revalidated: '已重验:{errors}/{total} 行有错',\n errors: '错误',\n ok: '通过',\n errorCount: '{n} 项',\n dupTag: '已存在',\n // 键名后缀 = DuplicateStrategy 的数值(0 跳过 / 1 覆盖 / 2 记为错误)\n dupHint: {\n 0: '该行已存在,提交时按「跳过已存在」略过,不必修改',\n 1: '该行已存在,提交时按「覆盖已存在」更新,不必修改',\n 2: '该行已存在,当前策略「已存在记为错误」下会被判失败',\n },\n strategy: '重复策略',\n strategySkip: '跳过已存在',\n strategyOverwrite: '覆盖已存在',\n strategyError: '已存在记为错误',\n commit: '提交导入',\n prev: '上一步',\n next: '下一步',\n resultTitle: '导入完成',\n resultTotal: '合计 {n} 行',\n resultInserted: '新增 {n}',\n resultUpdated: '更新 {n}',\n resultSkipped: '跳过 {n}',\n resultFailed: '失败 {n}',\n editFailures: '继续修改失败行',\n downloadErrorReport: '下载错误报告',\n noErrorRows: '当前没有错误行',\n },\n export: {\n button: '导出',\n pickColumns: '选择导出列',\n selectAll: '全选',\n confirm: '导出',\n done: '导出成功',\n },\n config: {\n title: '配置管理',\n key: '配置键',\n name: '配置名称',\n value: '配置值',\n group: '分组编码',\n sort: '排序',\n remark: '备注',\n keyRequired: '请输入配置键',\n nameRequired: '请输入配置名称',\n addTitle: '新增配置',\n editTitle: '编辑配置',\n deleteConfirm: '确定删除配置「{name}」?',\n saved: '保存成功',\n deleted: '已删除',\n keyManagedBy: '该配置由「{tab}」页的表单管理,保存后请到那里修改。',\n unsaved: '有 {n} 项修改未保存',\n unsavedTab: '有未保存的修改',\n discard: '放弃修改',\n leaveTitle: '放弃未保存的修改?',\n leaveConfirm: '配置中心还有未保存的修改,离开后会丢失。',\n tab: {\n brand: '品牌与登录页',\n signin: '登录方式',\n security: '安全策略',\n watermark: '水印设置',\n sensitive: '敏感操作',\n upload: '文件上传',\n job: '定时任务',\n advanced: '高级设置',\n },\n brand: {\n desc: '站点在浏览器标签、侧栏、页脚和登录页上的样子。',\n preview: '实时预览',\n previewAdmin: '后台',\n previewLogin: '登录页',\n groupSite: '站点',\n groupLogin: '登录页',\n copyrightPh: '留空则显示站点名称',\n copyrightUrlHint: '填了之后页脚的版权文字可点击',\n },\n watermark: {\n desc: '登录后的每个页面都会叠一层水印,登录页不显示。',\n groupContent: '内容',\n groupStyle: '样式',\n enable: '启用水印',\n enableHint: '在每个页面上叠一层半透明文字,截图外传时可追溯到人',\n content: '水印内容',\n contentHint: '每位用户印的是自己的信息,按下面的顺序排列',\n contentEmpty: '一项都没选,水印不会显示',\n field: {\n name: '姓名',\n account: '账号',\n org: '机构',\n phone: '手机尾号',\n time: '当前时间',\n text: '自定义文字',\n },\n text: '自定义文字',\n textHint: '如「内部资料 严禁外传」,所有人都一样',\n textPlaceholder: '最多 {max} 个字',\n timeFormat: '时间格式',\n layout: '排版',\n layoutSingle: '单行',\n layoutMulti: '多行',\n fontSize: '字号',\n opacity: '浓淡',\n opacityHint: '越大越清楚,也越影响阅读',\n rotate: '倾斜角度',\n density: '疏密',\n sparse: '疏',\n normal: '适中',\n dense: '密',\n cross: '错位排列',\n crossHint: '相邻两行错开半格,更难被裁掉',\n },\n logo: {\n title: 'Logo',\n edit: '更换 Logo',\n upload: '上传新图片…',\n useUrl: '使用图片链接…',\n remove: '移除,恢复默认',\n help: 'PNG / JPG / WEBP,裁成正方形,也用作浏览器标签图标',\n fallback: '没有设置时使用内置 Logo。浏览器标签页图标也会跟着 Logo 变。',\n badType: '只支持 PNG、JPG、WEBP 图片',\n tooLarge: '图片不能超过 {mb} MB',\n cropTitle: '裁剪新 Logo',\n cropTip: '拖动或用方向键调整位置,滚轮、滑块或 +/- 缩放',\n zoom: '缩放',\n apply: '设为新 Logo',\n cropFailed: '裁剪失败,请换一张图片',\n badUrl: '请填写以 http:// 或 https:// 开头的地址,或以 / 开头的站内路径',\n urlHint: '图片要能匿名访问,建议用正方形。',\n },\n advanced: {\n desc: '没有归到以上分类的配置项,按键值直接编辑。以上页签里能改的键不会出现在这里。',\n },\n preview: {\n minutes: '{n} 分钟',\n hours: '{n} 小时',\n days: '{n} 天',\n off: '(未启用)',\n sep: '、',\n expand: '展开',\n collapse: '收起',\n req: { upper: '大写字母', lower: '小写字母', digit: '数字', special: '特殊字符' },\n lock: '连续输错密码 {count} 次,账号锁定 {minutes} 分钟',\n lockOff: '输错密码不会锁定账号',\n captcha: '登录时要填验证码({type})',\n totp: '可以用动态口令做二次验证',\n totpSuper: '可以用动态口令做二次验证,超级管理员必须开启',\n smsMfa: '绑定了手机号的用户登录时要做短信验证',\n password: '密码至少 {min} 位,须含{reqs}',\n passwordMin: '密码至少 {min} 位',\n expire: '密码 {days} 天后必须修改',\n noExpire: '密码永不过期',\n history: '新密码不能和最近 {n} 次用过的相同',\n historyOff: '新密码可以和旧密码相同',\n firstChange: '管理员新建的账号首次登录必须修改密码',\n firstChangeOff: '新建账号首次登录不用修改密码',\n session: '访问令牌 {access} 后自动续期,最长 {refresh} 不用重新登录',\n rateLimit: '同一来源每 {seconds} 秒最多 {permit} 次请求',\n },\n job: {\n desc: '执行日志保留多久,任务失败时通知谁。',\n preview: '实时预览 · 生效效果',\n groupLog: '执行日志',\n groupAlert: '失败告警',\n logRetentionDays: '保留天数',\n logRetentionHint: '更早的日志每天自动清理',\n alertEmails: '告警邮箱',\n alertEmailsHint: '回车添加;不填则不发邮件',\n previewRetention: '执行日志保留最近 {days} 天,更早的每天自动清理',\n previewKeep: '保留 {days} 天',\n previewAxisStart: '{days} 天前',\n previewToday: '今天',\n previewTo: '收件人',\n previewSubject: '主题',\n previewSubjectText: '[{site}] 定时任务执行失败:日报汇总',\n previewBody: '任务「日报汇总」在 02:00 执行失败,已重试 3 次。',\n previewError: '数据库连接超时 (30s)',\n previewNoAlert: '任务失败时不发邮件,只记录在执行日志里',\n },\n externalAuth: {\n preview: '实时预览 · 登录框',\n previewOther: '其他登录方式',\n hint: '登录页上出现哪些登录入口。第三方的连接信息在各自的「设置」里填写,加密保存。',\n groupLocal: '本地账号',\n groupThird: '第三方',\n password: '账号密码',\n passwordHint: '始终可用',\n smsHint: '用手机号和短信验证码登录',\n state: {\n notInstalled: '未安装',\n unconfigured: '未配置',\n configured: '已配置',\n },\n settings: '设置',\n addOidc: '添加 OIDC',\n needPackage: '需先在服务器安装 {pkg} 包',\n codeRegistered: '由代码注册,不在此处配置',\n linkByAccount: '按账号自动关联',\n linkByAccountHint: '账号相同的人首次登录时自动绑定本地账号,打开时会二次确认',\n linkByAccountConfirmTitle: '打开按账号自动关联?',\n linkByAccountConfirm:\n '{name}账号与本地账号完全相同的人,首次从{name}登录时会自动绑定到该本地账号并直接登录;超级管理员、已停用账号、已绑过{name}的账号除外。请先确认两边账号是同一批人,比如本地账号就是从{name}同步来的。',\n field: {\n displayName: '显示名',\n code: '标识',\n corpId: '企业 ID',\n agentId: '应用 AgentId',\n corpSecret: '应用 Secret',\n appKey: 'AppKey',\n appSecret: 'AppSecret',\n clientId: 'Client ID',\n clientSecret: 'Client Secret',\n appId: 'AppId',\n authority: 'Authority',\n scopes: 'Scopes',\n usePkce: '使用 PKCE',\n },\n sheet: {\n title: '{name} 登录设置',\n addOidc: '添加 OIDC',\n oidcHint: '标准 OpenID Connect 身份源',\n secretNote: '密钥加密保存,保存后不显示明文',\n namePlaceholder: '如 公司 SSO',\n codePlaceholder: '小写字母、数字、连字符',\n codeFixed: '保存后不可改',\n codeTaken: '该标识已被使用',\n secretPlaceholder: '粘贴密钥',\n secretSet: '已配置',\n keepSecret: '留空则不修改 · 当前 {now}',\n secretRetype: '请重新输入密钥',\n endpointMoved: '已修改 Authority:为防止把已保存的密钥发到新地址,请重新输入 Client Secret。',\n ephemeralKey:\n '数据保护主密钥是临时密钥,暂时不能保存密钥。请先配置 SmartAdmin:Security:DataProtection:Key 并重启。',\n ephemeralTitle: '主密钥是临时密钥,暂时不能保存',\n callback: '回调地址',\n callbackHint: '请把回调地址填到{name}的后台。',\n idp: '身份源',\n callbackMissing:\n '生产环境未配置 SmartAdmin:ExternalAuth:CallbackBaseUrl,无法算出回调地址。',\n copyFailed: '复制失败,请手动选取',\n test: '测试连接',\n testing: '正在测试…',\n saved: '已保存',\n clear: '清除配置',\n clearTitle: '清除「{name}」的配置?',\n clearConfirm: '清除后该登录方式不可用,登录页不再显示它。用户已绑定的{name}账号不会被删除。',\n cleared: '已清除',\n },\n check: {\n reachable: '连通性',\n credentials: '凭据',\n agent: 'AgentId',\n appId: 'AppId',\n secret: 'AppSecret',\n discovery: '发现文档',\n issuer: 'issuer 一致性',\n endpoints: '授权与令牌端点',\n clientSecret: 'Client Secret',\n timeout: '超时',\n error: '出错',\n },\n checkStatus: {\n ok: '通过',\n failed: '失败',\n skipped: '未验证',\n },\n },\n base: {\n siteTitle: '站点标题',\n siteSubtitle: '副标题',\n copyright: '版权信息',\n copyrightUrl: '版权链接',\n },\n login: {\n language: '登录页语言',\n localeZh: '中文',\n localeEn: 'English',\n showFeatures: '显示亮点',\n headline: '主标题',\n headlinePlaceholder: '留空使用内置主标题',\n highlight: '强调词',\n highlightPlaceholder: '主标题中需要强调色的词',\n highlightHint: '主标题里用强调色显示的词',\n features: '亮点',\n featuresPlaceholder: '一行一条,最多 5 条',\n featuresHint: '一行一条,最多 5 条',\n highlightMissing: '主标题里没有这个词,会按普通标题显示',\n tooManyFeatures: '最多只能配置 5 条亮点',\n },\n security: {\n desc: '登录保护、密码规则、会话时长和请求限流,保存后立即生效。',\n preview: '用户会遇到的规则',\n groupLogin: '登录保护',\n groupSession: '会话',\n groupRate: '请求限流',\n zeroNoLock: '0 表示不锁定',\n zeroNever: '0 表示永不过期',\n zeroOff: '0 表示不限制',\n unit: { times: '次', minutes: '分钟', days: '天', seconds: '秒', chars: '位' },\n tryLabel: '试填密码',\n tryMin: '至少 {n} 位',\n tryPass: '可以使用',\n tryFail: '不符合要求',\n loginLock: {\n maxFailCount: '连续输错锁定',\n lockMinutes: '锁定时长',\n },\n password: {\n title: '密码',\n minLength: '最小长度',\n mustContain: '必须包含',\n chipUpper: 'A-Z',\n chipLower: 'a-z',\n chipDigit: '0-9',\n // @ 在 vue-i18n 里是链接语法,要用字面量插值转义\n chipSpecial: \"#{'@'}!\",\n requireUpper: '须含大写字母',\n requireLower: '须含小写字母',\n requireDigit: '须含数字',\n requireSpecial: '须含特殊字符',\n expireDays: '有效期',\n historyCount: '不能与最近几次重复',\n forceChangeOnFirstLogin: '首次登录须改密码',\n forceChangeOnFirstLoginHint: '只影响之后新建的账号;重置密码仍须改',\n },\n session: {\n accessMinutes: '访问令牌有效期',\n refreshMinutes: '最长免登录',\n },\n captcha: {\n enabled: '登录验证码',\n type: '类型',\n types: { char: '字符', path: '描边', math: '算术' },\n },\n totp: {\n enabled: '动态口令(TOTP)',\n requireForSuperAdmin: '超级管理员必须使用',\n hint: '与登录验证码一样可即时开关。开启后,用户管理里的「强制动态口令」才会在登录时生效;用户可在账号安全中自助绑定。',\n },\n sms: {\n hint: '二次验证仅对绑定了手机号的用户生效;开发环境验证码打印在后端日志,生产需注册真实短信通道(ISmsSender)。',\n },\n mfa: { enabled: '短信二次验证' },\n smsLogin: { enabled: '短信验证码登录' },\n rateLimit: {\n enabled: '启用',\n windowSeconds: '统计窗口',\n permitPerWindow: '每个来源最多',\n authPermitPerWindow: '登录接口最多',\n },\n highSens: {\n code: '权限码',\n remark: '备注',\n codePh: '如 POST:/api/v1/biz/order/refund',\n remarkPh: '备注(可选)',\n codeRequired: '请填写权限码',\n },\n },\n sensitive: {\n desc: '执行这些接口前,要求用户再次验证身份。内置的不能删,可以追加自己的业务接口;增删即时生效。',\n preview: '用户执行时看到的验证框',\n previewTip: '点左侧任一行切换',\n previewDoing: '你正在执行',\n method: '方法',\n path: '接口',\n builtin: '内置',\n added: '已添加,立即生效',\n removed: '已删除,立即生效',\n removeConfirm: '删除「{code}」?删除后执行它不再需要验证身份。',\n },\n upload: {\n desc: '全站上传文件的大小和格式限制,保存后立即生效。',\n preview: '实时预览 · 用户看到的上传框',\n previewDrop: '点击或拖拽文件到这里',\n previewLimit: '支持 {exts},单个文件不超过 {mb} MB',\n previewDefault: '服务端默认格式',\n groupLimit: '限制',\n maxSizeMb: '单个文件上限',\n allowedExtensions: '允许的格式',\n extTip: '留空则使用服务端默认',\n quickAdd: '快速添加',\n preset: { images: '图片', docs: '文档', archives: '压缩包', clear: '清空' },\n fileOk: '可以上传',\n fileBadExt: '不支持 {ext}',\n fileTooBig: '超过 {mb} MB',\n fileDefault: '按服务端默认格式判断',\n },\n },\n // 字典管理(主从:左类型 / 右字典项)\n dict: {\n title: '字典管理',\n typeTitle: '字典类型',\n code: '类型编码',\n name: '类型名称',\n searchName: '搜索名称',\n sort: '排序',\n remark: '备注',\n codeRequired: '请输入类型编码',\n nameRequired: '请输入类型名称',\n addTypeTitle: '新增字典类型',\n editTypeTitle: '编辑字典类型',\n typeDeleteConfirm: '确定删除字典类型「{name}」?其下字典项将一并删除。',\n typeSaved: '保存成功',\n typeDeleted: '已删除',\n itemsOf: '「{name}」的字典项',\n selectTypeHint: '请选择上方字典类型以管理其字典项',\n itemLabel: '显示文本',\n itemValue: '值',\n itemLabelRequired: '请输入显示文本',\n itemValueRequired: '请输入值',\n addItem: '新增字典项',\n addItemTitle: '新增字典项',\n editItemTitle: '编辑字典项',\n itemDeleteConfirm: '确定删除字典项「{label}」?',\n itemSaved: '保存成功',\n itemDeleted: '已删除',\n codeImmutable: '编码创建后不可修改',\n itemsSheetTitle: '字典项',\n selectItem: '选择',\n },\n // 机构管理(树表 + 上级机构树选)\n org: {\n title: '机构管理',\n searchPlaceholder: '搜索机构名称',\n name: '机构名称',\n code: '机构编码',\n category: '分类',\n categoryPlaceholder: '选择机构分类',\n sort: '排序',\n parent: '上级机构',\n parentPlaceholder: '选择上级机构(留空=顶级)',\n nameRequired: '请输入机构名称',\n codePlaceholder: '不填则自动生成',\n codeImmutableHint: '编码创建后不可修改',\n addChild: '新增下级',\n addTitle: '新增机构',\n editTitle: '编辑机构',\n deleteConfirm: '确定删除机构「{name}」?',\n copy: '复制',\n copyTitle: '复制机构',\n copyConfirm: '将复制「{name}」及其全部下级,克隆编码自动追加 -copy 后缀。',\n copyNameLabel: '新机构名称',\n copied: '已复制',\n saved: '保存成功',\n deleted: '已删除',\n },\n // 文件管理(列表 + 上传/下载/删除)\n file: {\n title: '文件管理',\n name: '文件名',\n extension: '后缀',\n size: '大小',\n contentType: '类型',\n uploadTime: '上传时间',\n upload: '上传文件',\n uploadChunked: '分片上传',\n uploaded: '上传成功',\n download: '下载',\n deleteConfirm: '确定删除文件「{name}」?',\n deleted: '已删除',\n },\n // 消息通知(管理端发布/列表/删除 + 用户侧「我的通知」共用此命名空间)\n notice: {\n title: '消息通知',\n mine: '我的通知',\n status: '状态',\n read: '已读',\n unread: '未读',\n allRead: '已全部标记为已读',\n noticeTitle: '标题',\n content: '内容',\n type: '类型',\n typeNotice: '通知',\n typeAnnouncement: '公告',\n typeMessage: '消息',\n receiver: '接收范围',\n receiverAll: '全体用户',\n receiverRole: '指定角色',\n receiverUser: '指定用户',\n receiverPlaceholder: '请选择接收对象',\n receiverRequired: '请选择接收对象',\n publishTime: '发布时间',\n publish: '发布通知',\n publishTitle: '发布通知',\n titleRequired: '请输入标题',\n deleteConfirm: '确定删除通知「{title}」?',\n published: '已发布',\n deleted: '已删除',\n view: '查看',\n detailTitle: '通知详情',\n // 动作按钮(发布时可选带上,渲染在正文下)\n actions: '动作按钮',\n actionsHint:\n '最多 5 条;url 以 /api/ 开头是接口调用,其它站内路径是页面跳转;文案含「.」按 i18n key 翻译',\n actionCount: '{count} 个动作',\n actionLabel: '文案',\n actionMethod: '方法',\n actionUrl: '站内路径',\n actionStyle: '样式',\n actionStyleDefault: '默认',\n actionStylePrimary: '主色',\n actionStyleError: '危险',\n actionNeedConfirm: '先确认',\n actionNeedComment: '填意见',\n actionAdd: '添加动作',\n actionConfirm: '确定执行「{label}」?',\n actionCommentPlaceholder: '请输入意见(可留空)',\n actionDone: '已执行',\n actionInvalidUrl: '动作地址不合法',\n },\n // 实时通知(SignalR;后端 SmartAdmin:Realtime:Enabled 开启后即时推送,否则退回轮询/惰性 401)\n realtime: {\n forcedLogout: '您已被强制下线',\n },\n // 在线会话(只读 + 踢人)\n session: {\n title: '在线会话',\n account: '账号',\n ip: 'IP 地址',\n device: '设备',\n loginTime: '登录时间',\n expiresAt: '过期时间',\n kick: '强制下线',\n self: '当前会话',\n kickConfirm: '确定强制下线账号「{account}」的会话?该会话将立即失效。',\n kicked: '已强制下线',\n mineTitle: '我的会话',\n current: '当前设备',\n kickMineConfirm: '确定下线该设备上的会话?其登录状态将立即失效。',\n },\n // 外部登录 / SSO:回调结果页 + 个人中心账号绑定\n oauth: {\n processing: '正在处理登录…',\n backToLogin: '即将返回登录页',\n failed: '第三方登录失败,请重试',\n bindingsTitle: '账号绑定',\n bindingsHint: '把第三方账号绑定到本账号后,即可用它一键登录。绑定需跳转到对应平台完成一次授权。',\n bindingsTip: '绑定会跳转到对应平台授权;解绑后将无法再用该方式登录本账号。',\n boundCountLabel: '已绑定',\n bindTip: '点击下方按钮前往授权绑定',\n disabledTip: '运营已关闭该登录方式,已绑定的仍可解绑',\n cannotBind: '暂不可绑定',\n noProviders: '当前未启用任何第三方登录方式',\n thirdParty: '第三方账号',\n pendingLinkTitle: '待绑定 {name}',\n pendingLinkHint:\n '该 {name} 尚未绑定系统账号。请用你自己的系统账号登录;登录后将请你确认是否绑定。请勿打开来源不明的绑定链接。',\n pendingLinkSuccess: '已绑定 {name},下次可直接用它登录',\n pendingLinkConfirmTitle: '确认绑定第三方账号?',\n pendingLinkConfirmContent:\n '将把 {name}{identity} 绑定到当前账号「{account}」。若这不是你本人刚授权的第三方账号,请选择「仅登录」。',\n pendingLinkConfirmOk: '确认绑定',\n pendingLinkConfirmSkip: '仅登录,不绑定',\n pendingLinkIdentity: '({display})',\n bind: '绑定',\n unbind: '解绑',\n bound: '已绑定',\n notBound: '未绑定',\n boundAt: '绑定于 {time}',\n unbound: '已解绑',\n unbindConfirm: '确定解绑「{name}」?解绑后将不能再用它登录本账号。',\n disabled: '已停用',\n // 内置品牌显示名(后端未下发 displayName 时用)\n brand: {\n github: 'GitHub',\n wechat: '微信',\n wecom: '企业微信',\n dingtalk: '钉钉',\n gitee: 'Gitee',\n qq: 'QQ',\n },\n },\n // 岗位管理(普通 CRUD;岗位与机构无关联)\n position: {\n title: '岗位管理',\n code: '岗位编码',\n name: '岗位名称',\n sort: '排序',\n codePlaceholder: '不填则自动生成',\n codeImmutableHint: '编码创建后不可修改',\n nameRequired: '请输入岗位名称',\n addTitle: '新增岗位',\n editTitle: '编辑岗位',\n deleteConfirm: '确定删除岗位「{name}」?',\n saved: '保存成功',\n deleted: '已删除',\n },\n // 角色管理(CRUD + 授权菜单 + 数据范围)\n role: {\n title: '角色管理',\n code: '角色编码',\n name: '角色名称',\n sort: '排序',\n remark: '备注',\n codeRequired: '请输入角色编码',\n nameRequired: '请输入角色名称',\n addTitle: '新增角色',\n editTitle: '编辑角色',\n // 删角色会物理删掉用户↔角色关联(不可恢复),故删前先查人数当面告知;查不到人数(无用户查询权限)才退回这条通用文案\n deleteConfirm: '确定删除角色「{name}」?其授权、数据范围及用户关联将一并清除。',\n deleteConfirmNoUsers: '确定删除角色「{name}」?当前没有用户使用该角色。',\n deleteConfirmWithUsers:\n '角色「{name}」当前有 {count} 个用户在用。删除后这些用户将立即失去该角色的全部权限,且关联无法恢复。确定删除?',\n batchDeleteWithUsers:\n '确定删除所选 {count} 个角色?其中 {users} 个用户将立即失去相应权限,且关联无法恢复。',\n isDelegatable: '可转授',\n isDelegatableHint: '开启后,非超管用户可把该角色指派给其数据范围内的用户',\n grantUsers: '授权用户',\n grantUsersSaved: '用户授权已保存',\n saved: '保存成功',\n deleted: '已删除',\n grantMenus: '授权菜单',\n grantSaved: '授权已保存',\n apiOnlyRow: '接口权限(无页面)',\n grantSearch: '搜索目录、页面或按钮',\n grantSearchClear: '清除搜索',\n grantSelectAll: '全选「{name}」',\n noButtons: '无按钮权限',\n grantNoMatch: '没有匹配的权限',\n grantNoMatchElsewhere: '其他应用中有 {count} 个目录匹配,请切换上方应用查看',\n grantNoMenus: '该应用下暂无菜单',\n grantSummary: '已授权 {on} / {total} 项',\n grantSummarySplit: '页面 {pages} · 按钮 {buttons}',\n grantUnsaved: '有未保存的修改',\n systemMenusBuiltinOnly:\n '除「用户管理」「角色管理」外,系统自带的菜单只能授给内置角色,这里不显示',\n dataScope: '数据范围',\n scopeType: '范围类型',\n customOrgs: '自定义机构',\n customOrgsHint: '选择该角色可见的机构',\n scopeSaved: '数据范围已保存',\n scope: {\n all: '全部数据',\n org: '本机构',\n orgAndChildren: '本机构及以下',\n self: '仅本人',\n custom: '自定义机构',\n },\n },\n // 日志(登录 / 操作共用一个命名空间;共享 result/success/failed/ip/userAgent/clear/cleared)\n log: {\n loginTitle: '登录日志',\n account: '账号',\n result: '结果',\n success: '成功',\n failed: '失败',\n resultCode: '结果码',\n name: '姓名',\n ip: 'IP 地址',\n userAgent: '客户端',\n device: '设备',\n clear: '清空日志',\n clearLoginConfirm: '确定清空全部登录日志?此为硬删除,不可恢复。',\n cleared: '已清空',\n // 操作日志\n opTitle: '操作日志',\n opName: '操作名',\n method: '方法',\n path: '路径',\n elapsed: '耗时',\n operator: '操作人',\n operatorPlaceholder: '选择操作人',\n param: '入参',\n exception: '异常信息',\n detail: '详情',\n clearOpConfirm: '确定清空全部操作日志?此为硬删除,不可恢复。',\n // 异常日志\n exceptionTitle: '异常日志',\n exceptionType: '异常类型',\n exceptionMessage: '异常消息',\n stackTrace: '异常堆栈',\n traceId: '追踪号',\n clearExceptionConfirm: '确定清空全部异常日志?此为硬删除,不可恢复。',\n },\n monitor: {\n title: '服务器监控',\n refresh: '刷新',\n cpu: 'CPU 占用',\n memory: '内存占用',\n runtime: '运行时',\n disk: '磁盘',\n processorCount: '处理器',\n threadCount: '线程',\n gcHeap: '托管堆',\n totalMemory: '可用上界',\n machineName: '主机名',\n framework: '框架',\n os: '操作系统',\n arch: '架构',\n uptime: '运行时长',\n free: '可用',\n days: '天',\n hours: '时',\n minutes: '分',\n },\n // 定时任务(任务列表 / 执行记录 / 任务监控 / CronEditor;错误码文案在 error.job.*,别重复)\n job: {\n title: '定时任务',\n name: '任务名称',\n code: '任务编码',\n codePlaceholder: '唯一编码,创建后不可变',\n remark: '备注',\n nameRequired: '请输入任务名称',\n codeRequired: '请输入任务编码',\n addTitle: '新增任务',\n editTitle: '编辑任务',\n deleteConfirm: '确定删除任务「{name}」?',\n saved: '保存成功,集群下最长 30 秒后生效',\n deleted: '已删除',\n runOnce: '执行',\n runConfirm: '确定立即执行一次任务「{name}」?本次执行不影响原调度节奏。',\n runStarted: '已触发执行',\n viewLogs: '记录',\n protectedTip: '内置任务受保护,禁止删除',\n pauseConfirm: '确定暂停任务「{name}」?暂停后不再调度。',\n panicTooltip: '连续失败 {n} 次已熔断;重新启用将清零连败并恢复调度',\n nextRunTime: '下次执行',\n lastRunTime: '上次执行',\n runCount: '执行/失败',\n status: { ready: '就绪', paused: '已暂停', completed: '已完成', panic: '已熔断' },\n form: {\n sectionBasic: '基本',\n sectionTrigger: '触发',\n sectionHandler: '载荷',\n sectionAdvanced: '高级选项',\n sectionAdvancedHint: '生效窗口、错过策略、并发、重试与告警;不展开也能保存',\n startTime: '生效开始',\n endTime: '生效结束',\n windowPlaceholder: '留空=不限',\n misfireStrategy: '错过策略',\n misfireSkip: '跳过',\n misfireFireOnceNow: '立即补跑一次',\n concurrencyMode: '并发模式',\n concurrencySerial: '串行跳过',\n concurrencyParallel: '并行',\n timeoutSeconds: '执行超时(秒)',\n timeoutHint: '0 = 不限制',\n retryCount: '失败重试次数',\n retryIntervalSeconds: '重试间隔(秒)',\n failAlertThreshold: '连败告警阈值',\n failAlertHint: '0 = 不告警不熔断',\n alertByNotice: '站内信告警',\n alertEmails: '告警邮箱',\n alertEmailsPlaceholder: '逗号分隔;留空回退全局配置',\n },\n trigger: {\n kind: '触发方式',\n cron: 'Cron',\n interval: '固定间隔',\n oneShot: '一次性',\n cronExpression: 'Cron 表达式',\n cronRequired: '请输入 cron 表达式',\n intervalSeconds: '间隔秒数',\n intervalRequired: '请输入间隔秒数(≥5)',\n oneShotTime: '执行时刻',\n oneShotRequired: '请选择执行时刻',\n seconds: '秒',\n everySeconds: '每 {n} 秒',\n },\n handler: {\n kind: '载荷类型',\n compiled: '编译类',\n http: 'HTTP',\n sql: 'SQL',\n sqlDisabledHint: 'SQL 载荷未启用:需后端开启 SmartAdmin:Jobs:Sql:Enabled',\n name: '处理器',\n namePlaceholder: '选择已注册的处理器',\n nameRequired: '请选择处理器',\n props: '属性包',\n propKey: '键',\n propValue: '值',\n addProp: '添加一项',\n httpUrl: '请求地址',\n httpUrlRequired: '请输入请求地址',\n httpMethod: '请求方法',\n httpHeaders: '请求头',\n headersMaskHint: '出于安全,已存请求头的值以 ******** 显示;不修改则原样保存生效',\n httpBody: '请求体',\n successStatuses: '成功状态码',\n successStatusesPlaceholder: '如 200,201;留空 = 2xx 即成功',\n sqlText: 'SQL 语句',\n sqlRequired: '请输入 SQL 语句',\n },\n log: {\n title: '执行记录',\n job: '任务',\n jobPlaceholder: '选择任务',\n fireMode: '触发来源',\n fireModeSchedule: '调度',\n fireModeManual: '手动',\n fireModeBackfill: '补跑',\n fireModeMisfireSkip: '错过跳过',\n scheduledTime: '计划时刻',\n startTime: '开始时间',\n elapsed: '耗时',\n runStatus: '状态',\n running: '运行中',\n success: '成功',\n failed: '失败',\n timeout: '超时',\n cancelled: '已取消',\n skipped: '已跳过',\n retryIndex: '重试次',\n node: '节点',\n kill: '终止',\n killConfirm: '确定终止任务「{name}」的这次执行?终止旗标写入后,目标节点最迟数秒内停止。',\n killed: '已请求终止',\n clear: '清空记录',\n clearTitle: '清空执行记录',\n clearRange: '范围',\n clearAll: '全部记录',\n beforeDays: '{n} 天以前的记录',\n clearHint: '运行中的记录一律保留;此为硬删除,不可恢复。',\n cleared: '已清理 {n} 条记录',\n message: '处理器输出',\n error: '异常信息',\n attempts: '同一次触发的各次尝试',\n firstTry: '首次',\n retryN: '第 {n} 次重试',\n },\n monitor: {\n title: '任务监控',\n todaySuccess: '今日成功',\n todayFailed: '今日失败',\n running: '运行中',\n totalJobs: '任务总数',\n trendTitle: '近 14 日成败趋势',\n trendSuccess: '成功',\n trendFailed: '失败',\n upcomingTitle: '即将执行',\n upcomingJob: '任务',\n upcomingTime: '时刻',\n nodesTitle: '集群节点',\n nodeName: '节点',\n role: '角色',\n leader: 'leader',\n standby: 'standby',\n lastHeartbeat: '最后心跳',\n workerId: 'WorkerId',\n pid: 'PID',\n justNow: '刚刚',\n secondsAgo: '{n} 秒前',\n minutesAgo: '{n} 分钟前',\n hoursAgo: '{n} 小时前',\n },\n cron: {\n tabSecond: '秒',\n tabMinute: '分',\n tabHour: '时',\n tabDay: '日',\n tabMonth: '月',\n tabWeek: '周',\n tabExpression: '表达式',\n every: '每',\n any: '不指定(?)',\n range: '区间',\n to: '到',\n step: '步长',\n stepFrom: '从',\n stepEvery: '起,每',\n list: '指定值',\n lastDay: '月末(L)',\n lastDayHint: '0 = 月末当天,n = 月末前 n 天(L-n)',\n nearestWeekday: '最近工作日(nW)',\n nearestWeekdayHint: '距该日最近的工作日,不跨月',\n lastWeekday: '月末工作日(LW)',\n lastOfWeek: '最后一个周几(nL)',\n nth: '第 m 个周几(n#m)',\n nthPrefix: '第',\n nthInfix: '个',\n sun: '周日',\n mon: '周一',\n tue: '周二',\n wed: '周三',\n thu: '周四',\n fri: '周五',\n sat: '周六',\n expressionPlaceholder: '如 0 0 2 * * ?(秒 分 时 日 月 周)',\n expressionHint: '支持 5 段(自动补秒位)或 6 段;日与周不能同时受限,其一须为 * 或 ?',\n normalized: '归一化',\n nextRuns: '未来 {n} 次',\n noUpcoming: '已无未来执行时刻',\n everySecondWarning: '该表达式等效每秒执行,请确认这是有意为之',\n },\n },\n // AI 模型管理(厂商 + 模型;错误码文案在 error.ai.*,别重复)\n aiModel: {\n title: 'AI 模型管理',\n searchPlaceholder: '搜索厂商编码/名称',\n addProvider: '新增厂商',\n editProvider: '编辑厂商',\n deleteProvider: '删除厂商',\n deleteConfirm: '确定删除厂商「{name}」?其下模型一并删除,已产生的用量记录不受影响。',\n deleted: '已删除',\n saved: '已保存',\n enabled: '启用',\n disabled: '已停用',\n pendingConfigTip: '尚未配置 API Key,保存前请填写',\n pendingConfig: '待配置',\n provider: {\n code: '厂商编码',\n codePlaceholder: '唯一编码,创建后不可变',\n codeRequired: '请输入厂商编码',\n name: '厂商名称',\n nameRequired: '请输入厂商名称',\n preset: '厂商预设',\n presetPlaceholder: '选择预设厂商,自动带出协议与 Base URL',\n presetCustom: '自定义',\n protocol: '协议',\n baseUrl: 'Base URL',\n baseUrlRequired: '请输入 Base URL',\n authScheme: '鉴权方式',\n apiKey: 'API Key',\n apiKeyPlaceholder: '留空 = 不修改现有 Key',\n apiKeyHint: '已保存的 Key 只回显掩码,不回填明文',\n hasApiKeyYes: '已配置',\n hasApiKeyNo: '未配置',\n disableConfirm: '确定停用厂商「{name}」?',\n sort: '排序',\n remark: '备注',\n },\n model: {\n title: '模型',\n add: '添加模型',\n remove: '移除',\n name: '模型名',\n nameRequired: '请输入模型名',\n displayName: '展示名',\n displayNameRequired: '请输入展示名',\n contextWindow: '上下文窗口',\n contextWindowPlaceholder: '如 128000,留空不限',\n inputPrice: '输入单价',\n outputPrice: '输出单价',\n pricePlaceholder: '每百万 Token,留空不计费',\n enabled: '启用',\n isDefault: '默认模型',\n setDefault: '设为默认',\n defaultTag: '默认',\n atLeastOne: '至少保留一个模型',\n duplicateName: '模型名重复',\n noDefault: '未设置默认模型',\n defaultUniqueHint: '默认模型全库唯一:在此设置默认并保存后,其它厂商原有的默认模型会被取消。',\n },\n test: {\n action: '测试连接',\n testing: '测试中…',\n ok: '连接成功',\n failed: '连接失败',\n latency: '耗时 {ms} ms',\n model: '模型',\n usage: '用量',\n inputTokens: '输入 Token',\n outputTokens: '输出 Token',\n error: '错误信息',\n },\n },\n // AI 用量统计(筛选 / 四格指标 / 分组 / 趋势 / 明细)\n aiUsage: {\n title: 'AI 用量统计',\n filter: {\n dateRange: '时间范围',\n today: '今天',\n last7Days: '近 7 天',\n last30Days: '近 30 天',\n provider: '厂商',\n providerAll: '全部厂商',\n model: '模型',\n modelAll: '全部模型',\n scene: '场景',\n sceneAll: '全部场景',\n scenePlaceholder: '按调用场景过滤',\n },\n metric: {\n totalTokens: '总 Token 数',\n totalCalls: '总调用次数',\n failureCount: '失败次数',\n avgLatency: '平均耗时',\n },\n groupBy: {\n label: '统计维度',\n provider: '按厂商',\n model: '按模型',\n scene: '按场景',\n user: '按用户',\n },\n trend: {\n title: '用量趋势',\n inputTokens: '输入 Token',\n outputTokens: '输出 Token',\n callCount: '调用次数',\n },\n table: {\n createTime: '时间',\n provider: '厂商',\n model: '模型',\n scene: '场景',\n user: '用户',\n inputTokens: '输入 Token',\n outputTokens: '输出 Token',\n totalTokens: '合计 Token',\n latency: '耗时',\n status: '状态',\n success: '成功',\n failed: '失败',\n requestId: '请求 Id',\n streamed: '流式',\n usageSource: '用量来源',\n usageSourceReported: '上游上报',\n usageSourceMissing: '缺失估算',\n },\n share: '占比',\n },\n cache: {\n authTitle: '权限缓存',\n authDesc: '清除全部用户的权限码与数据范围缓存。直接改库或排障后,强制下次请求按最新授权重算。',\n authConfirm: '确定清除全部用户的权限/数据范围缓存?下次请求将重新计算授权。',\n dictTitle: '字典缓存',\n dictDesc: '清除全部字典类型的字典项缓存。直接改库后,强制下拉数据源按最新字典重建。',\n dictConfirm: '确定清除全部字典项缓存?',\n configTitle: '配置缓存',\n configDesc: '清除全部系统配置项的读穿透缓存。直接改库后,强制配置值按最新库表重读。',\n configConfirm: '确定清除全部系统配置缓存?',\n portalTitle: '门户菜单缓存',\n portalDesc: '递增门户代际,令所有用户的模块/菜单树缓存整体失效,下次进入重建。',\n portalConfirm: '确定重建门户菜单缓存?所有用户的菜单将在下次请求时重算。',\n execute: '执行',\n flushed: '已清除 {n} 项缓存',\n portalDone: '已重建门户菜单缓存',\n note: '仅提供定向失效,不浏览键、不读取值——缓存中含明文验证码/一次性令牌、键中内嵌手机号/IP。正常的授权变更已自动失效,此页用于直接改库等旁路场景的手动刷新。',\n },\n profile: {\n title: '个人资料',\n account: '账号',\n name: '姓名',\n org: '机构',\n position: '职位',\n nickname: '昵称',\n gender: '性别',\n phone: '手机号',\n email: '邮箱',\n avatar: '头像',\n avatarUploading: '上传中…',\n phoneInvalid: '手机号格式不正确',\n emailInvalid: '邮箱格式不正确',\n saved: '资料已更新',\n },\n personalSecurity: {\n title: '账号安全',\n // 全员可见:只说用户能做什么,不指向后台配置路径。\n hint: '在此绑定或管理身份验证器(TOTP),用于登录二次验证。',\n // 仅管理员可见(超管 / 能进系统配置):指向「安全策略」开关,普通用户无需也不应看到。\n adminHint:\n '若绑定失败或登录不要求二次验证,请到「系统配置 → 安全策略」确认已开启「启用动态口令」。',\n bindDesc: '使用账号与当前密码完成自助绑定;也可使用恢复码解除绑定后重新绑定。',\n setupAuthenticator: '设置身份验证器',\n useRecovery: '使用恢复码',\n note: '自愿绑定请从本页进入。若账号被要求启用二次验证且尚未绑定,登录账密通过后会弹出引导。',\n },\n changePassword: {\n title: '修改密码',\n oldPassword: '原密码',\n newPassword: '新密码',\n confirmPassword: '确认新密码',\n oldRequired: '请输入原密码',\n newRequired: '请输入新密码',\n confirmRequired: '请再次输入新密码',\n mismatch: '两次输入的新密码不一致',\n changed: '密码已修改,请重新登录',\n forcedHint: '首次登录或密码被重置,请先修改密码后再使用系统。',\n strength: { label: '密码强度', weak: '弱', fair: '中', strong: '强' },\n rules: {\n minLength: '至少 {n} 位',\n upper: '包含大写字母',\n lower: '包含小写字母',\n digit: '包含数字',\n special: '包含特殊字符',\n specialOptional: '包含特殊字符(可选,更安全)',\n },\n },\n // ── 后端错误码 msgKey → 文案 ──────────────────────────────\n error: {\n _fallback: '操作失败,请稍后重试',\n // 前端侧错误(不来自后端错误码):请求被超时闸掐断或主动取消\n network: {\n timeout: '请求超时,请检查网络后重试',\n aborted: '请求已取消',\n },\n auth: {\n passwordWrong: '账号或密码错误',\n captchaExpired: '验证码已过期',\n captchaWrong: '验证码错误',\n accountLocked: '账号已锁定,请稍后再试',\n accountDisabled: '账号已停用',\n tokenInvalid: '登录状态无效,请重新登录',\n refreshTokenInvalid: '登录已过期,请重新登录',\n tooManyRequests: '操作过于频繁,请稍后再试',\n smsCodeRequired: '请输入短信验证码',\n smsCodeWrong: '短信验证码错误',\n smsCodeExpired: '短信验证码错误或已失效,请重新获取',\n smsLoginDisabled: '短信验证码登录未启用',\n oauthProviderDisabled: '该第三方登录方式未启用或不存在',\n oauthStateInvalid: '登录会话已失效,请重新发起第三方登录',\n oauthExchangeFailed: '第三方登录换取身份失败,请重试',\n oauthAccountNotBound: '该第三方账号尚未绑定系统账号,请先登录本系统账号以完成绑定',\n oauthAlreadyBound: '该第三方账号已被绑定,或当前账号已绑定同一登录方式',\n totpRequired: '请输入动态口令完成二次验证',\n totpWrong: '动态口令错误',\n totpNotBound: '尚未绑定动态口令,请先完成绑定',\n bindInviteInvalid: '绑定无效或已过期,请重新开始设置',\n mfaBindInvalid: '绑定无效或已过期,请重新开始设置',\n recoveryCodeInvalid: '恢复码无效或已使用',\n csrfInvalid: '请求校验失败,请刷新页面后重试',\n reauthRequired: '此操作需要再次验证身份',\n mfaBindPasswordRequired: '绑定动态口令前请先验证当前密码',\n apiKeyInvalid: 'API Key 缺失或无效',\n externalAuthTypeNotFound: '登录方式类型不存在,或对应的扩展包尚未安装',\n externalAuthCodeExists: '该标识已被占用',\n externalAuthCodeInvalid: '标识格式不合法,或与内置登录方式的标识冲突',\n externalAuthFieldMissing: '请填写必填项:{field}',\n externalAuthDataProtectionKeyMissing:\n '尚未配置数据保护主密钥,无法安全保存第三方密钥。请先配置 SmartAdmin:Security:DataProtection:Key',\n externalAuthProviderNotFound: '该登录方式尚未配置',\n externalAuthEndpointBlocked: '该地址被出站访问围栏拒绝,请检查协议、主机与网段',\n },\n perm: {\n denied: '无权限访问',\n demoReadOnly: '当前为演示环境,禁止修改操作',\n superAdminRequired: '该操作仅限超级管理员执行',\n menuNotGrantable: '该菜单所属模块不允许转授',\n targetIsDelegatedAdmin: '对方是管理员,只有超管能为其单独授权',\n delegatedGrantExpiryInvalid: '允许必须设置到期日,且最长 {maxDays} 天',\n },\n user: {\n notFound: '用户不存在',\n accountExists: '账号已存在',\n superAdminProtected: '超级管理员受保护,禁止此操作',\n passwordTooWeak: '新密码不满足密码复杂度要求',\n passwordReused: '新密码不能与当前或最近使用过的密码相同',\n outOfDataScope: '目标用户超出当前数据范围',\n avatarUrlInvalid: '头像地址不合法',\n cannotOperateSelf: '不能对自己执行此操作',\n menuGrantInvalid: '授权变更不合法:同一菜单只能出现一次,到期时间须晚于当前时间',\n },\n role: {\n notFound: '角色不存在',\n codeExists: '角色编码已存在',\n notDelegatable: '目标角色不可转授',\n systemMenuNotAssignable: '除「用户管理」「角色管理」外,系统自带的菜单只能授给内置角色',\n },\n org: {\n notFound: '机构不存在',\n hasChildren: '存在子机构,不可删除',\n invalidParent: '上级机构无效',\n codeExists: '机构编码已存在',\n hasUsers: '机构下仍有用户,不可删除',\n outOfScope: '目标机构超出当前数据范围',\n },\n position: {\n notFound: '职位不存在',\n codeExists: '职位编码已存在',\n hasUsers: '该职位下仍有用户,不可删除',\n },\n module: {\n notFound: '应用不存在',\n codeExists: '应用编码已存在',\n protected: '内置应用受保护,禁止此操作',\n accessDenied: '无该应用访问权限',\n hasMenus: '应用下仍有挂靠菜单,请先迁移或删除后再删应用',\n },\n menu: {\n notFound: '菜单不存在',\n hasChildren: '存在子节点,不可删除',\n invalidParent: '上级菜单无效(不能指向自身或其子节点)',\n },\n session: { notFound: '会话不存在或已下线' },\n dict: {\n typeNotFound: '字典类型不存在',\n typeCodeExists: '字典类型编码已存在',\n itemNotFound: '字典项不存在',\n seedProtected: '种子数据受保护,不可删除',\n itemValueExists: '字典项值在该类型下已存在',\n },\n config: { notFound: '配置不存在', keyExists: '配置键已存在' },\n notice: {\n notFound: '通知不存在',\n receiverRequired: '定向发布必须指定至少一个接收对象',\n receiverNotFound: '接收对象不存在或已停用',\n actionInvalid:\n '动作列表不合法:文案不能为空,方法只能是 GET/POST,地址须是单个 / 开头的站内路径,最多 5 条',\n },\n file: {\n empty: '文件为空',\n tooLarge: '文件超出大小限制',\n extNotAllowed: '不支持的文件类型',\n notFound: '文件不存在',\n chunkMissing: '分片缺失,请重试上传',\n chunkHashMismatch: '文件校验失败,请重新上传',\n },\n excel: {\n providerMissing: '未安装 Excel 支持包,请安装 SmartAdmin.Excel 并调用 AddSmartAdminExcel()',\n },\n import: {\n fileEmpty: '导入文件为空',\n rowLimitExceeded: '导入行数超过上限',\n columnMissing: '必填列未映射',\n cellRequired: '该单元格为必填项',\n cellDictInvalid: '字典值无效',\n cellRefNotFound: '引用的数据不存在',\n cellFormatInvalid: '单元格格式不正确',\n duplicateInFile: '业务键在本文件内重复',\n duplicateInDb: '业务键在库中已存在',\n orgOutOfScope: '机构不在当前数据范围内',\n },\n export: {\n tooManyRows: '导出结果超过行数上限,请先收窄筛选条件',\n columnInvalid: '请求导出的列无效',\n },\n job: {\n notFound: '任务不存在',\n codeExists: '任务编码已存在',\n cronInvalid: 'cron 表达式不合法',\n triggerInvalid: '触发配置不合法',\n handlerNotFound: '处理器未注册',\n alreadyRunning: '上次执行尚未结束',\n runNotAlive: '该执行记录不在运行中',\n sqlDisabled: 'SQL 任务未启用',\n httpUrlBlocked: '目标地址被安全策略拒绝',\n statusConflict: '任务状态不允许该操作',\n propsInvalid: '任务参数缺失或不合法',\n logNotFound: '执行记录不存在',\n runLimitReached: '运行中任务数已达上限,请稍后再试',\n protected: '内置任务受保护,禁止删除',\n },\n ai: {\n providerNotFound: '厂商不存在',\n providerCodeExists: '厂商编码已存在',\n providerDisabled: '厂商已停用',\n apiKeyMissing: '未配置 API Key',\n baseUrlBlocked: '目标地址被安全策略拒绝',\n presetNotFound: '预置厂商不存在',\n presetImmutable: '预置厂商的协议、预置标识不可修改',\n modelNotFound: '模型不存在',\n noDefaultModel: '未配置默认模型',\n modelDisabled: '模型已停用',\n modelNameExists: '模型名称已存在',\n upstreamError: '上游服务调用失败',\n upstreamTimeout: '上游服务调用超时',\n upstreamRateLimited: '上游服务限流,请稍后重试',\n upstreamAuthFailed: '上游服务鉴权失败,请检查 API Key',\n upstreamBadResponse: '上游服务返回异常',\n dataProtectionKeyMissing: '数据保护密钥不可用,无法解密 API Key',\n sceneRequired: '必须指定调用场景(scene)',\n multimodalSystemUnsupported: 'System 角色消息不支持图片等多段内容',\n structuredOutputUnsupported: '该厂商不支持结构化输出(json_schema)约束',\n },\n recycle: {\n notFound: '回收站中未找到该记录',\n uniqueConflict: '恢复失败:编码/账号已被新记录占用',\n invalidType: '不支持的回收站类型',\n },\n request: {\n pageSizeExceeded: '每页条数超过上限 {max},请调小分页或使用导出',\n },\n system: { internal: '服务器内部错误' },\n },\n\n // 回收站\n recycle: {\n title: '回收站',\n name: '名称',\n code: '编码',\n deletedAt: '删除时间',\n restore: '恢复',\n purge: '彻底删除',\n restoreConfirm: '确定恢复「{name}」?',\n purgeConfirm: '确定彻底删除「{name}」?数据将无法恢复。',\n restored: '已恢复',\n purged: '已彻底删除',\n empty: '回收站为空',\n tabs: {\n user: '用户',\n role: '角色',\n org: '机构',\n position: '岗位',\n module: '模块',\n config: '配置',\n dict: '字典',\n menu: '菜单',\n job: '定时任务',\n },\n },\n // 接口文档入口页\n apiDocs: {\n title: '接口文档',\n openedHint: '接口文档已在新标签页打开。',\n fallbackLink: '没有自动打开?点此手动打开',\n copyToken: '复制我的接口令牌',\n copyTokenHint: '在新标签页里点右上角 Authentication → Bearer,粘贴这里复制的令牌',\n tokenCopied: '已复制',\n tokenWarn: '令牌是当前登录会话的凭据,等同于你的身份,请勿分享给他人。',\n },\n // 用户导入导出:列标题 + 文件名(与 UserImportProfile / UserExportProfile 的列一一对应)\n userExport: {\n account: '登录账号',\n name: '姓名',\n nickname: '昵称',\n phone: '手机号',\n email: '邮箱',\n gender: '性别',\n orgName: '所属机构',\n positionName: '职位',\n directorName: '直属主管',\n enabled: '启用状态',\n superAdmin: '超级管理员',\n createTime: '创建时间',\n fileName: '用户导出.xlsx',\n importTemplateName: '用户导入模板.xlsx',\n errorReportName: '用户导入错误报告.xlsx',\n },\n logOp: {\n fileName: '操作日志导出.xlsx',\n },\n}\n"],"names":["zhCN"],"mappings":"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"}
1
+ {"version":3,"file":"zh-CN.js","sources":["../../src/locales/zh-CN.ts"],"sourcesContent":["// 中文文案。error.* 键 = 后端 msgKey(点分路径,来自 ErrorCode.cs 的 [MsgKey]),供请求层翻译。\nexport default {\n common: {\n rowNo: '序号',\n copySuffix: '-副本',\n zoomIn: '放大',\n zoomOut: '还原',\n success: '操作成功',\n confirm: '确定',\n confirmTitle: '操作确认',\n cancel: '取消',\n close: '关闭',\n more: '更多',\n search: '查询',\n reset: '重置',\n expandAll: '展开全部',\n collapseAll: '折叠全部',\n add: '新增',\n edit: '编辑',\n delete: '删除',\n save: '保存',\n submit: '提交',\n format: '格式化',\n copy: '复制',\n copied: '已复制',\n loading: '加载中…',\n yes: '是',\n no: '否',\n status: '状态',\n enabled: '启用',\n disabled: '停用',\n visible: '显示',\n hidden: '隐藏',\n operation: '操作',\n createTime: '创建时间',\n batchDelete: '批量删除',\n batchDeleteConfirm: '确认删除选中的 {count} 项?此操作不可恢复。',\n all: '全部',\n noData: '暂无数据',\n loadFailed: '加载失败',\n back: '返回',\n detail: '详情',\n },\n userPicker: {\n title: '选择用户',\n org: '机构',\n available: '可选用户',\n selected: '已选',\n search: '搜索姓名或账号',\n selectPage: '全选本页',\n unselectPage: '取消本页',\n total: '共 {n} 人',\n existing: '已有',\n remove: '移除',\n emptySelected: '尚未选择用户',\n prevPage: '上一页',\n nextPage: '下一页',\n clear: '清空',\n },\n notFound: {\n desc: '页面不存在',\n back: '返回工作台',\n currentApp: '当前应用:{app}',\n otherApp: '该页面属于「{app}」应用,不在当前应用里',\n switchAndOpen: '切换到「{app}」并打开',\n },\n // 内容区渲染异常兜底(components/ErrorBoundary)\n errorBoundary: {\n title: '这个页面出错了',\n desc: '页面渲染时抛出了未处理的异常。可以重试,或先回首页继续用别的功能。',\n retry: '重试',\n home: '回首页',\n },\n // 门户重建失败(网络/5xx/限流):会话没坏,不清会话\n bootError: {\n title: '加载工作台失败',\n desc: '没能取到你的应用与菜单。多半是网络不通或服务端暂时不可用,你的登录状态仍然有效。',\n retry: '重试',\n relogin: '重新登录',\n },\n missingRoute: {\n title: '菜单页面无法加载',\n message: '菜单“{title}”配置的组件路径不存在,请检查组件路径:{component}',\n },\n app: {\n theme: '主题',\n dark: '暗色',\n light: '亮色',\n accent: '主色',\n density: '密度',\n comfortable: '舒适',\n compact: '紧凑',\n language: '语言',\n collapse: '折叠菜单',\n openMenu: '打开菜单',\n switchModule: '切换应用',\n appearance: '外观设置',\n back: '后退',\n forward: '前进',\n logout: '退出登录',\n personalCenter: '个人中心',\n clearCache: '清除缓存',\n cacheCleared: '缓存已清除',\n profile: '个人资料',\n password: '修改密码',\n security: '账号安全',\n sessions: '我的会话',\n bindings: '账号绑定',\n search: '搜索菜单',\n fullscreen: '全屏',\n exitFullscreen: '退出全屏',\n settings: '系统设置',\n notice: {\n title: '消息通知',\n empty: '暂无通知',\n emptyMessage: '暂无消息',\n tabMessage: '消息',\n tabNotice: '通知',\n markAllRead: '全部已读',\n viewAll: '查看全部',\n },\n },\n settings: {\n title: '系统设置',\n tabAppearance: '外观',\n tabLayout: '布局',\n tabGeneral: '通用',\n themeMode: '外观模式',\n auto: '跟随系统',\n themeColor: '强调色',\n custom: '自定义',\n accentName: {\n blue: '蓝色',\n indigo: '靛蓝',\n purple: '紫色',\n teal: '深青',\n green: '墨绿',\n graphite: '石墨',\n custom: '自定义颜色',\n },\n accentDemoButton: '主按钮',\n accentDemoLink: '链接文字',\n layout: '布局模式',\n layoutVertical: '左侧菜单模式',\n layoutVerticalMix: '左侧菜单混合模式',\n layoutVerticalHybridHeaderFirst: '左侧混合-顶部优先',\n layoutHorizontal: '顶部菜单模式',\n layoutTopHybridSidebarFirst: '顶部混合-侧边优先',\n layoutTopHybridHeaderFirst: '顶部混合-顶部优先',\n interface: '界面',\n formStyle: '表单形态',\n formStyleModal: '弹窗',\n formStyleDrawer: '抽屉',\n showBreadcrumb: '显示面包屑',\n showTabs: '显示多标签',\n fixedHeader: '固定头部',\n pageTransition: '切换动画',\n transitionNone: '无',\n transitionFade: '淡入淡出',\n transitionFadeSlide: '滑动淡入',\n resetConfirm: '确定恢复默认设置?',\n copyConfig: '复制配置',\n configCopied: '已复制当前配置(粘回 stores/app.ts 的 DEFAULTS 即为新默认)',\n searchPlaceholder: '搜索菜单…',\n searchEmpty: '无匹配菜单',\n searchHint: '↑↓ 导航 · ↵ 进入 · Esc 关闭',\n descBreadcrumb: '顶栏显示当前页面的层级',\n descTabs: '保留已打开页面,可来回切换',\n descFixedHeader: '顶栏固定并保持毛玻璃',\n descPageTransition: '切换页面的过渡动画',\n descCollapse: '隐藏侧栏,把宽度让给内容区',\n },\n tabs: {\n refresh: '刷新',\n pin: '固定',\n unpin: '取消固定',\n close: '关闭',\n closeOthers: '关闭其他',\n closeLeft: '关闭左侧',\n closeRight: '关闭右侧',\n closeAll: '关闭全部',\n },\n login: {\n title: '登录',\n subtitle: '面向多机构、多应用的统一权限底座',\n headlinePre: '企业级',\n headlineAccent: '权限',\n headlinePost: '管理后台',\n welcome: '欢迎回来',\n welcomeSub: '请登录以继续管理后台',\n featRbac: 'RBAC 角色授权',\n featScope: '多机构数据范围',\n featPortal: '多应用门户',\n account: '账号',\n accountPlaceholder: '请输入账号',\n password: '密码',\n passwordPlaceholder: '请输入密码',\n required: '请输入账号和密码',\n captcha: '验证码',\n captchaPlaceholder: '请输入验证码',\n captchaMathPlaceholder: '请输入计算结果',\n captchaRequired: '请输入验证码',\n remember: '记住我',\n submit: '登 录',\n success: '登录成功',\n smsLogin: '短信登录',\n accountLogin: '账号登录',\n phone: '手机号',\n phonePlaceholder: '请输入手机号',\n smsCode: '短信验证码',\n smsCodePlaceholder: '请输入短信验证码',\n smsRequired: '请输入手机号和短信验证码',\n sendCode: '获取验证码',\n resendAfter: '{s}s 后重发',\n smsSent: '验证码已发送',\n mfaTitle: '验证码已发送至 {phone}',\n mfaSub: '请输入短信验证码完成登录',\n setupAuthenticator: '设置身份验证器',\n totpTitle: '二次验证',\n totpSub: '请输入身份验证器中的 6 位动态口令',\n totpCode: '动态口令',\n totpPlaceholder: '请输入 6 位动态口令',\n totpBindTitle: '需要设置身份验证器',\n totpBindSub: '管理员已要求此账号启用二次验证。请先完成绑定,再重新登录。',\n useRecovery: '使用恢复码',\n backToPassword: '返回密码登录',\n otherMethods: '其他登录方式',\n moreMethods: '更多登录方式',\n ssoWecom: '企业微信',\n ssoDingtalk: '钉钉',\n sso: 'SSO',\n ssoComingSoon: '第三方登录即将开放',\n layoutLabel: '切换登录页布局',\n layoutToSolo: '切换到单栏',\n layoutToSplit: '切换到双栏',\n },\n module: {\n choose: '选择应用',\n empty: '暂无可访问的应用,请联系管理员分配',\n setDefault: '设为默认',\n isDefault: '默认',\n back: '返回',\n enter: '进入',\n manage: '模块管理',\n code: '编码',\n name: '名称',\n icon: '图标',\n defaultRoute: '默认路由',\n apiPrefix: '路由前缀',\n apiPrefixHint: '用于权限路由下拉按应用过滤,填后端路由段(如 sys、biz);留空=不过滤',\n sort: '排序',\n remark: '备注',\n builtin: '内置',\n codeRequired: '请输入编码',\n nameRequired: '请输入名称',\n addTitle: '新增应用',\n editTitle: '编辑应用',\n deleteConfirm: '确定删除应用「{title}」?',\n disableConfirm: '确定停用应用「{title}」?门户将不再显示该应用',\n builtinNoDisable: '内置应用不可停用',\n delegatable: '可转授',\n delegatableHint: '打开后,普通管理员能把本应用的菜单单独授给或拒给用户(限时)',\n builtinNotDelegatable: '内置应用固定不可转授',\n saved: '保存成功',\n deleted: '已删除',\n },\n menu: {\n searchPlaceholder: '搜索名称/路由/权限码',\n workbench: '工作台',\n profile: '个人资料',\n password: '修改密码',\n security: '账号安全',\n notice: '我的通知',\n sessions: '我的会话',\n bindings: '账号绑定',\n manage: '菜单管理',\n parent: '上级菜单',\n parentRoot: '顶级(根目录)',\n type: '类型',\n typeCatalog: '目录',\n typeMenu: '页面',\n typeButton: '按钮',\n title: '标题',\n permission: '权限码',\n permissionPlaceholder: '选择路由,可多选',\n permissionHint: '一颗按钮可挂多条路由,角色勾上它即一起授出;「查询」按钮挂列表与详情两条路由。',\n configPerms: '配置权限 ({n})',\n showAllRoutes: '显示全部应用路由',\n routesInApp: '本应用路由',\n routesOther: '其他应用路由',\n module: '所属应用',\n moduleHint: '仅顶级目录可设',\n linkHint: '外链/内嵌:路径填 http(s) URL = 外链(新窗口打开);组件填 http(s) URL = 内嵌 iframe。',\n moduleAll: '全部',\n moduleUnassigned: '未分配',\n path: '路由路径',\n component: '组件路径',\n icon: '图标',\n sort: '排序',\n visible: '侧栏可见',\n titleRequired: '请输入标题',\n addTitle: '新增菜单',\n editTitle: '编辑菜单',\n addChild: '新增子节点',\n buttons: '权限按钮',\n buttonManagerTitle: '「{title}」· 权限按钮',\n buttonParent: '所属页面',\n addButton: '新增按钮',\n batchFromRoutes: '从路由批量添加',\n batchTitle: '从路由批量添加按钮',\n batchSearchPlaceholder: '搜索方法/路径/标题',\n noRoutesLeft: '没有可添加的路由(该菜单已覆盖全部,或路由清单为空)',\n btnQuery: '查询',\n btnCreate: '新增',\n btnUpdate: '编辑',\n btnDelete: '删除',\n deleteConfirm: '确定删除菜单「{title}」?',\n disableConfirm: '确定停用菜单「{title}」?其子节点将一并隐藏',\n saved: '保存成功',\n deleted: '已删除',\n },\n // 内核种子菜单 / 应用标题(DefaultMenuSeed / DefaultModuleSeed)的译文;值 = 种子里的中文标题原文。\n // 标题原文 → key 的映射表见 locales/kernelMenuTitles.ts。\n menuTitle: {\n module: {\n system: '系统',\n business: '业务中心',\n },\n catalog: {\n org: '组织管理',\n ops: '系统运维',\n schedule: '任务调度',\n audit: '日志审计',\n ai: 'AI 网关管理',\n },\n page: {\n workbench: '工作台',\n org: '机构管理',\n position: '岗位管理',\n user: '用户管理',\n role: '角色管理',\n config: '系统配置',\n dict: '字典管理',\n menu: '菜单管理',\n module: '模块管理',\n notice: '消息通知',\n recycle: '回收站',\n monitor: '服务器监控',\n cache: '缓存管理',\n apiDocs: '接口文档',\n job: '定时任务',\n jobLog: '执行记录',\n jobMonitor: '任务监控',\n loginLog: '登录日志',\n opLog: '操作日志',\n exceptionLog: '异常日志',\n session: '在线会话',\n file: '文件管理',\n aiModel: 'AI 模型',\n aiUsage: '用量统计',\n },\n button: {\n orgQuery: '机构-查询',\n orgCreate: '机构-新增',\n orgUpdate: '机构-更新',\n orgDelete: '机构-删除',\n orgCopy: '机构-复制',\n positionQuery: '岗位-查询',\n positionCreate: '岗位-新增',\n positionUpdate: '岗位-更新',\n positionDelete: '岗位-删除',\n userQuery: '用户-查询',\n userCreate: '用户-新增',\n userUpdate: '用户-更新',\n userDelete: '用户-删除',\n userResetPassword: '用户-重置密码',\n userToggle: '用户-启停',\n userImport: '用户-导入',\n userExport: '用户-导出',\n userGrantMenus: '用户-授权菜单',\n roleQuery: '角色-查询',\n roleCreate: '角色-新增',\n roleUpdate: '角色-更新',\n roleDelete: '角色-删除',\n roleGrantMenus: '角色-授权菜单',\n roleDataScope: '角色-数据范围',\n roleGrantUsers: '角色-授权用户',\n ping: '连通性探针',\n configQuery: '配置-查询',\n configCreate: '配置-新增',\n configUpdate: '配置-更新',\n configDelete: '配置-删除',\n configUploadLogo: '配置-上传Logo',\n sensitiveQuery: '高敏权限-查询',\n sensitiveCreate: '高敏权限-新增',\n sensitiveDelete: '高敏权限-删除',\n mfaClear: 'MFA-清除用户二因子',\n dictTypeQuery: '字典类型-查询',\n dictTypeCreate: '字典类型-新增',\n dictTypeUpdate: '字典类型-更新',\n dictTypeDelete: '字典类型-删除',\n dictItemQuery: '字典项-查询',\n dictItemCreate: '字典项-新增',\n dictItemUpdate: '字典项-更新',\n dictItemDelete: '字典项-删除',\n menuQuery: '菜单-查询',\n menuCreate: '菜单-新增',\n menuUpdate: '菜单-更新',\n menuDelete: '菜单-删除',\n moduleQuery: '模块-查询',\n moduleCreate: '模块-新增',\n moduleUpdate: '模块-更新',\n moduleDelete: '模块-删除',\n noticeQuery: '通知-查询',\n noticePublish: '通知-发布',\n noticeDelete: '通知-删除',\n recycleQuery: '回收站-查询',\n recyclePurge: '回收站-彻底删除',\n recycleRestore: '回收站-恢复',\n monitorQuery: '服务器监控-查询',\n cacheFlushAuth: '缓存-清授权',\n cacheFlushDict: '缓存-清字典',\n cacheFlushConfig: '缓存-清配置',\n cacheRebuildPortal: '缓存-重建门户菜单',\n apiDocsView: '接口文档-查看契约',\n jobQuery: '任务-查询',\n jobCreate: '任务-新增',\n jobUpdate: '任务-更新',\n jobDelete: '任务-删除',\n jobToggle: '任务-启停',\n jobRun: '任务-执行一次',\n jobLogQuery: '记录-查询',\n jobLogKill: '记录-终止',\n jobLogClear: '记录-清空',\n jobMonitorQuery: '监控-查询',\n loginLogQuery: '登录日志-查询',\n loginLogClear: '登录日志-清空',\n opLogQuery: '操作日志-查询',\n opLogClear: '操作日志-清空',\n opLogExport: '操作日志-导出',\n exceptionLogQuery: '异常日志-查询',\n exceptionLogClear: '异常日志-清空',\n sessionQuery: '在线会话-查询',\n sessionKick: '强制下线',\n fileQuery: '文件-查询',\n fileUpload: '文件-上传',\n fileDelete: '文件-删除',\n fileDownload: '文件-下载',\n aiProviderQuery: 'AI 厂商-查询',\n aiProviderCreate: 'AI 厂商-新增',\n aiProviderUpdate: 'AI 厂商-更新',\n aiProviderDelete: 'AI 厂商-删除',\n aiProviderTest: 'AI 厂商-测试连接',\n aiUsageQuery: 'AI 用量-查询',\n },\n },\n iconPicker: {\n placeholder: '选择图标',\n title: '选择图标',\n search: '搜索图标名…',\n local: '本地 SVG',\n online: '在线',\n onlinePlaceholder: '输入任意 iconify 名,如 mdi:home',\n use: '使用',\n offlineHint: '当前离线,未内置的在线图标无法预览',\n empty: '无匹配图标',\n more: '还有 {n} 个,继续输入以缩小范围',\n },\n // SmartTable(smart-naive-table)组件文案;查询/重置/密度复用 common/app 键,全局注入见 createSmartAdmin.ts\n table: {\n refresh: '刷新',\n columnSettings: '列设置',\n columnSettingsReset: '恢复默认',\n fixedLeft: '固定到左侧',\n fixedRight: '固定到右侧',\n fixedNone: '取消固定',\n expand: '展开',\n collapse: '收起',\n total: '共 {n} 条',\n // TableZoomButton(表格铺满视口看宽表)\n zoom: '放大',\n zoomExit: '还原',\n // 搜索条件超出后端能力时的提示(见 utils/tableFilter.ts)\n filterFallback:\n '部分搜索条件后端不支持(同一字段只能设一个条件;日期区间要用「大于等于」加「小于等于」,且连接),已按可识别的条件查询',\n filterTruncated: '数据超过 10000 条,搜索只覆盖前 10000 条,请换更精确的条件',\n },\n workbench: {\n welcome: '你好,{name}',\n subtitle: 'SmartAdmin · 企业级权限管理后台',\n roles: '角色总数',\n users: '授权用户',\n perms: '权限点',\n online: '在线会话',\n trendTitle: '近 7 日活跃趋势',\n distributionTitle: '资源分布',\n trendLogins: '登录数',\n trendActive: '活跃用户',\n },\n // 业务系统工作台(dashboard/biz.vue;真数据拼装,应用可用同 key 页面覆盖成自己的业务统计)\n biz: {\n welcome: '{name},欢迎回来',\n subtitle: '应用工作台',\n onlineDuration: '本次在线 {hours} 小时 {minutes} 分',\n onlineDurationShort: '本次在线 {minutes} 分钟',\n lastLogin: '上次登录 {time}',\n firstLogin: '首次登录',\n todo: '待办事项',\n todoEmpty: '暂无待办',\n quick: '快捷方式',\n quickPinned: '已置顶',\n quickSuggested: '常去 · 点星可固定',\n quickAdd: '添加快捷方式',\n quickPin: '固定',\n quickUnpin: '移除',\n notices: '我的通知',\n noticesEmpty: '暂无通知',\n noMenus: '当前应用暂无菜单',\n },\n user: {\n title: '用户管理',\n account: '账号',\n name: '姓名',\n status: '状态',\n enabled: '启用',\n disabled: '停用',\n superAdmin: '超管',\n createTime: '创建时间',\n // 写侧字段(创建/编辑专用)\n password: '初始密码',\n // 未配 Security:DefaultInitialPassword 时(默认就没配),后端生成随机强口令 —— 文案别写\"系统默认初始密码\",\n // 那个东西默认不存在,照着这句话去告诉新人\"用默认密码登\"必然登不上。\n passwordHint: '留空则自动生成随机密码(创建后显示一次)',\n org: '归属机构',\n allOrgs: '全部',\n // 机构分组栏的分组名;内容区较窄时机构树收进抽屉,它同时是工具栏按钮与抽屉标题\n orgFilter: '机构',\n // 下拉数据(职位/角色/主管)拉取失败只提示一次,不打断列表;{names} 是失败项名称\n optionsLoadFailed: '{names}选项加载失败,新增/编辑表单里的下拉可能为空,请刷新页面重试',\n // 分组栏头部按钮的提示:展开到底后变成「折叠到一级」;「收起」向左收起整栏,收起后工具栏按钮的提示是「展开」\n collapseToFirstLevel: '折叠到一级',\n hideOrgPanel: '收起机构栏',\n showOrgPanel: '展开机构栏',\n orgPlaceholder: '选择机构(可空)',\n position: '职位',\n positionPlaceholder: '选择职位(可空)',\n director: '直属主管',\n directorPlaceholder: '选择主管(可空)',\n nickname: '昵称',\n nicknamePlaceholder: '昵称(可空)',\n phone: '手机号',\n phonePlaceholder: '手机号(可空)',\n phoneInvalid: '手机号格式不正确',\n email: '邮箱',\n emailPlaceholder: '邮箱(可空)',\n emailInvalid: '邮箱格式不正确',\n gender: '性别',\n genderPlaceholder: '选择性别(可空)',\n avatar: '头像',\n avatarUploading: '上传中…',\n roles: '角色',\n rolesPlaceholder: '分配角色(可空)',\n accountRequired: '请输入账号',\n nameRequired: '请输入姓名',\n addTitle: '新增用户',\n editTitle: '编辑用户',\n deleteConfirm: '确定删除用户「{name}」?',\n disableConfirm: '确定停用用户「{name}」?',\n saved: '保存成功',\n deleted: '已删除',\n resetPassword: '重置密码',\n newPassword: '新密码',\n newPasswordHint: '留空则自动生成随机密码',\n resetDone: '密码已重置',\n createDone: '用户已创建',\n resetDoneHint: '请将下方初始密码转达给用户,关闭后不再显示:',\n copy: '复制',\n copied: '已复制到剪贴板',\n copyFailed: '复制失败,请手动选取',\n forceTotp: '强制动态口令',\n totpBound: '已绑动态口令',\n issueTotpInvite: '发放动态口令邀请',\n clearMfa: '解绑身份验证器',\n clearMfaConfirm: '确定解绑用户「{name}」的身份验证器?解绑后需重新绑定才能使用二次验证。',\n mfaCleared: '已解绑该用户的身份验证器',\n totpInviteTitle: '{name} 的动态口令邀请',\n totpInviteOnce: '邀请仅在当前显示一次,请通过受控渠道将链接或令牌发送给用户。',\n totpInviteUrl: '绑定链接',\n totpInviteToken: '邀请令牌',\n totpInviteExpires: '过期时间',\n },\n userGrant: {\n action: '授权菜单',\n title: '授权菜单 · {name}',\n tabGrant: '单独授权',\n tabEffective: '有效权限',\n hint: '常规授权请走角色,这里只放例外。允许只作用于这一个节点;拒绝连同下级一起收回,且优先于任何允许。',\n noRoles: '该用户没有任何角色,数据范围为「仅本人」:能打开授权的页面,但只看得到自己创建的数据。',\n readonly: '只能查看,不能修改:{reason}',\n readonlyNoReason: '只能查看,不能修改',\n follow: '跟随角色',\n allow: '允许',\n deny: '拒绝',\n effective: '有效',\n ineffective: '无效',\n expired: '已过期',\n deniedByAncestor: '被上级拒绝',\n notGrantable: '该模块只允许超管授权',\n expireLongTerm: '长期',\n remark: '授权理由(选填)',\n leaked: '以下接口仍可调用:',\n leakedFrom: '{code}(来自 {from})',\n summary: '允许 {allow} · 拒绝 {deny}',\n unsaved: '有未保存的修改',\n invalidExpiry: '有 {count} 条记录的到期日缺失或超出可选范围',\n saved: '授权已保存',\n overview: '单独授权一览',\n colUser: '用户',\n colMenu: '菜单',\n colState: '状态',\n colSource: '来源',\n colEffect: '效果',\n colStatus: '有效期',\n colExpire: '到期',\n colGrantor: '授权人',\n colGrantTime: '授权时间',\n colRemark: '授权理由',\n adjust: '去调整',\n statusActive: '生效中',\n statusExpiring: '7 天内到期',\n statusExpired: '已过期',\n },\n mfa: {\n bindTitle: '设置身份验证器',\n recoveryTitle: '使用恢复码',\n useRecovery: '使用恢复码',\n backToBind: '设置身份验证器',\n stepVerify: '验证身份',\n stepAuthenticator: '身份验证器',\n stepRecovery: '恢复码',\n bindHint: '输入账号和当前密码开始自助绑定(需管理员已开启 TOTP)。',\n account: '账号',\n currentPassword: '当前密码',\n startBind: '开始设置',\n bindRequired: '请输入账号和当前密码',\n scanSetupHint: '用 Google Authenticator、Microsoft Authenticator 等应用扫描下方二维码。',\n manualSetupHint: '无法扫码时,可手动输入密钥添加到身份验证器,再填写当前 6 位动态口令。',\n manualKey: '手动设置密钥',\n otpauthUri: '身份验证器 URI',\n authenticatorCode: '动态口令',\n completeBind: '完成设置',\n codeRequired: '请输入动态口令',\n recoveryOnce:\n '请立即保存这些恢复码。每个只能使用一次,关闭页面后将不再显示。建议下载到本地妥善保管。',\n copy: '复制',\n copied: '已复制到剪贴板',\n copyFailed: '复制失败,请手动选取',\n copyAll: '复制全部恢复码',\n downloadCodes: '下载到本地',\n recoveryDownloaded: '恢复码文件已开始下载',\n recoveryDownloadHeader: 'SmartAdmin 恢复码(账号:{account})',\n recoveryDownloadFooter: '每个恢复码仅可使用一次。请离线妥善保管,勿转发他人。',\n backToLogin: '返回登录',\n recoveryHint: '恢复码会移除身份验证器并注销所有现有会话。之后请重新自助绑定。',\n recoveryCode: '恢复码',\n submitRecovery: '使用恢复码',\n recoveryRequired: '请输入账号、当前密码和恢复码',\n recoveryDone: '身份验证器已移除。请重新登录;如仍被要求,请再次自助绑定。',\n bindStartResponseIncomplete: '设置响应不完整,请重新开始设置。',\n bindCompleteResponseIncomplete: '设置响应不完整,请重新开始设置。',\n },\n reauth: {\n title: '再次验证身份',\n hint: '此操作涉及高风险变更,请输入动态口令或当前密码以继续(约 5 分钟内有效)。',\n method: '验证方式',\n methodTotp: '动态口令',\n methodPassword: '当前密码',\n totpCode: '动态口令',\n totpPlaceholder: '6 位动态口令',\n totpRequired: '请输入动态口令',\n password: '当前密码',\n passwordPlaceholder: '当前登录密码',\n passwordRequired: '请输入当前密码',\n confirm: '验证并继续',\n },\n // 导入向导 / 导出选列\n import: {\n button: '导入',\n wizardTitle: '导入用户',\n stepUpload: '上传文件',\n stepMapping: '列映射',\n stepPreview: '预览改错',\n stepResult: '完成',\n downloadTemplate: '下载模板',\n dropHint: '点击或拖拽 xlsx 到此处',\n dropSub: '仅支持 .xlsx;字典列请用模板下拉值',\n needFile: '请先选择导入文件',\n mappingHint: '将文件表头映射到目标字段;自动匹配的已预选,可按需调整。',\n fileHeader: '文件表头',\n targetColumn: '目标列',\n unmap: '(不映射)',\n summary: '共 {total} 行,其中 {errors} 行有错误',\n summaryDup: '另有 {n} 行已存在',\n onlyErrors: '只看错误行',\n revalidate: '重新校验',\n revalidated: '已重验:{errors}/{total} 行有错',\n errors: '错误',\n ok: '通过',\n errorCount: '{n} 项',\n dupTag: '已存在',\n // 键名后缀 = DuplicateStrategy 的数值(0 跳过 / 1 覆盖 / 2 记为错误)\n dupHint: {\n 0: '该行已存在,提交时按「跳过已存在」略过,不必修改',\n 1: '该行已存在,提交时按「覆盖已存在」更新,不必修改',\n 2: '该行已存在,当前策略「已存在记为错误」下会被判失败',\n },\n strategy: '重复策略',\n strategySkip: '跳过已存在',\n strategyOverwrite: '覆盖已存在',\n strategyError: '已存在记为错误',\n commit: '提交导入',\n prev: '上一步',\n next: '下一步',\n resultTitle: '导入完成',\n resultTotal: '合计 {n} 行',\n resultInserted: '新增 {n}',\n resultUpdated: '更新 {n}',\n resultSkipped: '跳过 {n}',\n resultFailed: '失败 {n}',\n editFailures: '继续修改失败行',\n downloadErrorReport: '下载错误报告',\n noErrorRows: '当前没有错误行',\n },\n export: {\n button: '导出',\n pickColumns: '选择导出列',\n selectAll: '全选',\n confirm: '导出',\n done: '导出成功',\n },\n config: {\n title: '配置管理',\n key: '配置键',\n name: '配置名称',\n value: '配置值',\n group: '分组编码',\n sort: '排序',\n remark: '备注',\n keyRequired: '请输入配置键',\n nameRequired: '请输入配置名称',\n addTitle: '新增配置',\n editTitle: '编辑配置',\n deleteConfirm: '确定删除配置「{name}」?',\n saved: '保存成功',\n deleted: '已删除',\n keyManagedBy: '该配置由「{tab}」页的表单管理,保存后请到那里修改。',\n unsaved: '有 {n} 项修改未保存',\n unsavedTab: '有未保存的修改',\n discard: '放弃修改',\n leaveTitle: '放弃未保存的修改?',\n leaveConfirm: '配置中心还有未保存的修改,离开后会丢失。',\n tab: {\n brand: '品牌与登录页',\n signin: '登录方式',\n security: '安全策略',\n watermark: '水印设置',\n sensitive: '敏感操作',\n upload: '文件上传',\n job: '定时任务',\n advanced: '高级设置',\n },\n brand: {\n desc: '站点在浏览器标签、侧栏、页脚和登录页上的样子。',\n preview: '实时预览',\n previewAdmin: '后台',\n previewLogin: '登录页',\n groupSite: '站点',\n groupLogin: '登录页',\n copyrightPh: '留空则显示站点名称',\n copyrightUrlHint: '填了之后页脚的版权文字可点击',\n },\n watermark: {\n desc: '登录后的每个页面都会叠一层水印,登录页不显示。',\n groupContent: '内容',\n groupStyle: '样式',\n enable: '启用水印',\n enableHint: '在每个页面上叠一层半透明文字,截图外传时可追溯到人',\n content: '水印内容',\n contentHint: '每位用户印的是自己的信息,按下面的顺序排列',\n contentEmpty: '一项都没选,水印不会显示',\n field: {\n name: '姓名',\n account: '账号',\n org: '机构',\n phone: '手机尾号',\n time: '当前时间',\n text: '自定义文字',\n },\n text: '自定义文字',\n textHint: '如「内部资料 严禁外传」,所有人都一样',\n textPlaceholder: '最多 {max} 个字',\n timeFormat: '时间格式',\n layout: '排版',\n layoutSingle: '单行',\n layoutMulti: '多行',\n fontSize: '字号',\n opacity: '浓淡',\n opacityHint: '越大越清楚,也越影响阅读',\n rotate: '倾斜角度',\n density: '疏密',\n sparse: '疏',\n normal: '适中',\n dense: '密',\n cross: '错位排列',\n crossHint: '相邻两行错开半格,更难被裁掉',\n },\n logo: {\n title: 'Logo',\n edit: '更换 Logo',\n upload: '上传新图片…',\n useUrl: '使用图片链接…',\n remove: '移除,恢复默认',\n help: 'PNG / JPG / WEBP,裁成正方形,也用作浏览器标签图标',\n fallback: '没有设置时使用内置 Logo。浏览器标签页图标也会跟着 Logo 变。',\n badType: '只支持 PNG、JPG、WEBP 图片',\n tooLarge: '图片不能超过 {mb} MB',\n cropTitle: '裁剪新 Logo',\n cropTip: '拖动或用方向键调整位置,滚轮、滑块或 +/- 缩放',\n zoom: '缩放',\n apply: '设为新 Logo',\n cropFailed: '裁剪失败,请换一张图片',\n badUrl: '请填写以 http:// 或 https:// 开头的地址,或以 / 开头的站内路径',\n urlHint: '图片要能匿名访问,建议用正方形。',\n },\n advanced: {\n desc: '没有归到以上分类的配置项,按键值直接编辑。以上页签里能改的键不会出现在这里。',\n },\n preview: {\n minutes: '{n} 分钟',\n hours: '{n} 小时',\n days: '{n} 天',\n off: '(未启用)',\n sep: '、',\n expand: '展开',\n collapse: '收起',\n req: { upper: '大写字母', lower: '小写字母', digit: '数字', special: '特殊字符' },\n lock: '连续输错密码 {count} 次,账号锁定 {minutes} 分钟',\n lockOff: '输错密码不会锁定账号',\n captcha: '登录时要填验证码({type})',\n totp: '可以用动态口令做二次验证',\n totpSuper: '可以用动态口令做二次验证,超级管理员必须开启',\n smsMfa: '绑定了手机号的用户登录时要做短信验证',\n password: '密码至少 {min} 位,须含{reqs}',\n passwordMin: '密码至少 {min} 位',\n expire: '密码 {days} 天后必须修改',\n noExpire: '密码永不过期',\n history: '新密码不能和最近 {n} 次用过的相同',\n historyOff: '新密码可以和旧密码相同',\n firstChange: '管理员新建的账号首次登录必须修改密码',\n firstChangeOff: '新建账号首次登录不用修改密码',\n session: '访问令牌 {access} 后自动续期,最长 {refresh} 不用重新登录',\n rateLimit: '同一来源每 {seconds} 秒最多 {permit} 次请求',\n },\n job: {\n desc: '执行日志保留多久,任务失败时通知谁。',\n preview: '实时预览 · 生效效果',\n groupLog: '执行日志',\n groupAlert: '失败告警',\n logRetentionDays: '保留天数',\n logRetentionHint: '更早的日志每天自动清理',\n alertEmails: '告警邮箱',\n alertEmailsHint: '回车添加;不填则不发邮件',\n previewRetention: '执行日志保留最近 {days} 天,更早的每天自动清理',\n previewKeep: '保留 {days} 天',\n previewAxisStart: '{days} 天前',\n previewToday: '今天',\n previewTo: '收件人',\n previewSubject: '主题',\n previewSubjectText: '[{site}] 定时任务执行失败:日报汇总',\n previewBody: '任务「日报汇总」在 02:00 执行失败,已重试 3 次。',\n previewError: '数据库连接超时 (30s)',\n previewNoAlert: '任务失败时不发邮件,只记录在执行日志里',\n },\n externalAuth: {\n preview: '实时预览 · 登录框',\n previewOther: '其他登录方式',\n hint: '登录页上出现哪些登录入口。第三方的连接信息在各自的「设置」里填写,加密保存。',\n groupLocal: '本地账号',\n groupThird: '第三方',\n password: '账号密码',\n passwordHint: '始终可用',\n smsHint: '用手机号和短信验证码登录',\n state: {\n notInstalled: '未安装',\n unconfigured: '未配置',\n configured: '已配置',\n },\n settings: '设置',\n addOidc: '添加 OIDC',\n needPackage: '需先在服务器安装 {pkg} 包',\n codeRegistered: '由代码注册,不在此处配置',\n linkByAccount: '按账号自动关联',\n linkByAccountHint: '账号相同的人首次登录时自动绑定本地账号,打开时会二次确认',\n linkByAccountConfirmTitle: '打开按账号自动关联?',\n linkByAccountConfirm:\n '{name}账号与本地账号完全相同的人,首次从{name}登录时会自动绑定到该本地账号并直接登录;超级管理员、已停用账号、已绑过{name}的账号除外。请先确认两边账号是同一批人,比如本地账号就是从{name}同步来的。',\n field: {\n displayName: '显示名',\n code: '标识',\n corpId: '企业 ID',\n agentId: '应用 AgentId',\n corpSecret: '应用 Secret',\n appKey: 'AppKey',\n appSecret: 'AppSecret',\n clientId: 'Client ID',\n clientSecret: 'Client Secret',\n appId: 'AppId',\n authority: 'Authority',\n scopes: 'Scopes',\n usePkce: '使用 PKCE',\n },\n sheet: {\n title: '{name} 登录设置',\n addOidc: '添加 OIDC',\n oidcHint: '标准 OpenID Connect 身份源',\n secretNote: '密钥加密保存,保存后不显示明文',\n namePlaceholder: '如 公司 SSO',\n codePlaceholder: '小写字母、数字、连字符',\n codeFixed: '保存后不可改',\n codeTaken: '该标识已被使用',\n secretPlaceholder: '粘贴密钥',\n secretSet: '已配置',\n keepSecret: '留空则不修改 · 当前 {now}',\n secretRetype: '请重新输入密钥',\n endpointMoved: '已修改 Authority:为防止把已保存的密钥发到新地址,请重新输入 Client Secret。',\n ephemeralKey:\n '数据保护主密钥是临时密钥,暂时不能保存密钥。请先配置 SmartAdmin:Security:DataProtection:Key 并重启。',\n ephemeralTitle: '主密钥是临时密钥,暂时不能保存',\n callback: '回调地址',\n callbackHint: '请把回调地址填到{name}的后台。',\n idp: '身份源',\n callbackMissing:\n '生产环境未配置 SmartAdmin:ExternalAuth:CallbackBaseUrl,无法算出回调地址。',\n copyFailed: '复制失败,请手动选取',\n test: '测试连接',\n testing: '正在测试…',\n saved: '已保存',\n clear: '清除配置',\n clearTitle: '清除「{name}」的配置?',\n clearConfirm: '清除后该登录方式不可用,登录页不再显示它。用户已绑定的{name}账号不会被删除。',\n cleared: '已清除',\n },\n check: {\n reachable: '连通性',\n credentials: '凭据',\n agent: 'AgentId',\n appId: 'AppId',\n secret: 'AppSecret',\n discovery: '发现文档',\n issuer: 'issuer 一致性',\n endpoints: '授权与令牌端点',\n clientSecret: 'Client Secret',\n timeout: '超时',\n error: '出错',\n },\n checkStatus: {\n ok: '通过',\n failed: '失败',\n skipped: '未验证',\n },\n },\n base: {\n siteTitle: '站点标题',\n siteSubtitle: '副标题',\n copyright: '版权信息',\n copyrightUrl: '版权链接',\n },\n login: {\n language: '登录页语言',\n localeZh: '中文',\n localeEn: 'English',\n showFeatures: '显示亮点',\n headline: '主标题',\n headlinePlaceholder: '留空使用内置主标题',\n highlight: '强调词',\n highlightPlaceholder: '主标题中需要强调色的词',\n highlightHint: '主标题里用强调色显示的词',\n features: '亮点',\n featuresPlaceholder: '一行一条,最多 5 条',\n featuresHint: '一行一条,最多 5 条',\n highlightMissing: '主标题里没有这个词,会按普通标题显示',\n tooManyFeatures: '最多只能配置 5 条亮点',\n },\n security: {\n desc: '登录保护、密码规则、会话时长和请求限流,保存后立即生效。',\n preview: '用户会遇到的规则',\n groupLogin: '登录保护',\n groupSession: '会话',\n groupRate: '请求限流',\n zeroNoLock: '0 表示不锁定',\n zeroNever: '0 表示永不过期',\n zeroOff: '0 表示不限制',\n unit: { times: '次', minutes: '分钟', days: '天', seconds: '秒', chars: '位' },\n tryLabel: '试填密码',\n tryMin: '至少 {n} 位',\n tryPass: '可以使用',\n tryFail: '不符合要求',\n loginLock: {\n maxFailCount: '连续输错锁定',\n lockMinutes: '锁定时长',\n },\n password: {\n title: '密码',\n minLength: '最小长度',\n mustContain: '必须包含',\n chipUpper: 'A-Z',\n chipLower: 'a-z',\n chipDigit: '0-9',\n // @ 在 vue-i18n 里是链接语法,要用字面量插值转义\n chipSpecial: \"#{'@'}!\",\n requireUpper: '须含大写字母',\n requireLower: '须含小写字母',\n requireDigit: '须含数字',\n requireSpecial: '须含特殊字符',\n expireDays: '有效期',\n historyCount: '不能与最近几次重复',\n forceChangeOnFirstLogin: '首次登录须改密码',\n forceChangeOnFirstLoginHint: '只影响之后新建的账号;重置密码仍须改',\n },\n session: {\n accessMinutes: '访问令牌有效期',\n refreshMinutes: '最长免登录',\n },\n captcha: {\n enabled: '登录验证码',\n type: '类型',\n types: { char: '字符', path: '描边', math: '算术' },\n },\n totp: {\n enabled: '动态口令(TOTP)',\n requireForSuperAdmin: '超级管理员必须使用',\n hint: '与登录验证码一样可即时开关。开启后,用户管理里的「强制动态口令」才会在登录时生效;用户可在账号安全中自助绑定。',\n },\n sms: {\n hint: '二次验证仅对绑定了手机号的用户生效;开发环境验证码打印在后端日志,生产需注册真实短信通道(ISmsSender)。',\n },\n mfa: { enabled: '短信二次验证' },\n smsLogin: { enabled: '短信验证码登录' },\n rateLimit: {\n enabled: '启用',\n windowSeconds: '统计窗口',\n permitPerWindow: '每个来源最多',\n authPermitPerWindow: '登录接口最多',\n },\n highSens: {\n code: '权限码',\n remark: '备注',\n codePh: '如 POST:/api/v1/biz/order/refund',\n remarkPh: '备注(可选)',\n codeRequired: '请填写权限码',\n },\n },\n sensitive: {\n desc: '执行这些接口前,要求用户再次验证身份。内置的不能删,可以追加自己的业务接口;增删即时生效。',\n preview: '用户执行时看到的验证框',\n previewTip: '点左侧任一行切换',\n previewDoing: '你正在执行',\n method: '方法',\n path: '接口',\n builtin: '内置',\n added: '已添加,立即生效',\n removed: '已删除,立即生效',\n removeConfirm: '删除「{code}」?删除后执行它不再需要验证身份。',\n },\n upload: {\n desc: '全站上传文件的大小和格式限制,保存后立即生效。',\n preview: '实时预览 · 用户看到的上传框',\n previewDrop: '点击或拖拽文件到这里',\n previewLimit: '支持 {exts},单个文件不超过 {mb} MB',\n previewDefault: '服务端默认格式',\n groupLimit: '限制',\n maxSizeMb: '单个文件上限',\n allowedExtensions: '允许的格式',\n extTip: '留空则使用服务端默认',\n quickAdd: '快速添加',\n preset: { images: '图片', docs: '文档', archives: '压缩包', clear: '清空' },\n fileOk: '可以上传',\n fileBadExt: '不支持 {ext}',\n fileTooBig: '超过 {mb} MB',\n fileDefault: '按服务端默认格式判断',\n },\n },\n // 字典管理(主从:左类型 / 右字典项)\n dict: {\n title: '字典管理',\n typeTitle: '字典类型',\n code: '类型编码',\n name: '类型名称',\n searchName: '搜索名称',\n sort: '排序',\n remark: '备注',\n codeRequired: '请输入类型编码',\n nameRequired: '请输入类型名称',\n addTypeTitle: '新增字典类型',\n editTypeTitle: '编辑字典类型',\n typeDeleteConfirm: '确定删除字典类型「{name}」?其下字典项将一并删除。',\n typeSaved: '保存成功',\n typeDeleted: '已删除',\n itemsOf: '「{name}」的字典项',\n selectTypeHint: '请选择上方字典类型以管理其字典项',\n itemLabel: '显示文本',\n itemValue: '值',\n itemLabelRequired: '请输入显示文本',\n itemValueRequired: '请输入值',\n addItem: '新增字典项',\n addItemTitle: '新增字典项',\n editItemTitle: '编辑字典项',\n itemDeleteConfirm: '确定删除字典项「{label}」?',\n itemSaved: '保存成功',\n itemDeleted: '已删除',\n codeImmutable: '编码创建后不可修改',\n itemsSheetTitle: '字典项',\n selectItem: '选择',\n },\n // 机构管理(树表 + 上级机构树选)\n org: {\n title: '机构管理',\n searchPlaceholder: '搜索机构名称',\n name: '机构名称',\n code: '机构编码',\n category: '分类',\n categoryPlaceholder: '选择机构分类',\n sort: '排序',\n parent: '上级机构',\n parentPlaceholder: '选择上级机构(留空=顶级)',\n nameRequired: '请输入机构名称',\n codePlaceholder: '不填则自动生成',\n codeImmutableHint: '编码创建后不可修改',\n addChild: '新增下级',\n addTitle: '新增机构',\n editTitle: '编辑机构',\n deleteConfirm: '确定删除机构「{name}」?',\n copy: '复制',\n copyTitle: '复制机构',\n copyConfirm: '将复制「{name}」及其全部下级,克隆编码自动追加 -copy 后缀。',\n copyNameLabel: '新机构名称',\n copied: '已复制',\n saved: '保存成功',\n deleted: '已删除',\n },\n // 文件管理(列表 + 上传/下载/删除)\n file: {\n title: '文件管理',\n name: '文件名',\n extension: '后缀',\n size: '大小',\n contentType: '类型',\n uploadTime: '上传时间',\n upload: '上传文件',\n uploadChunked: '分片上传',\n uploaded: '上传成功',\n download: '下载',\n deleteConfirm: '确定删除文件「{name}」?',\n deleted: '已删除',\n },\n // 消息通知(管理端发布/列表/删除 + 用户侧「我的通知」共用此命名空间)\n notice: {\n title: '消息通知',\n mine: '我的通知',\n status: '状态',\n read: '已读',\n unread: '未读',\n allRead: '已全部标记为已读',\n noticeTitle: '标题',\n content: '内容',\n type: '类型',\n typeNotice: '通知',\n typeAnnouncement: '公告',\n typeMessage: '消息',\n receiver: '接收范围',\n receiverAll: '全体用户',\n receiverRole: '指定角色',\n receiverUser: '指定用户',\n receiverPlaceholder: '请选择接收对象',\n receiverRequired: '请选择接收对象',\n publishTime: '发布时间',\n publish: '发布通知',\n publishTitle: '发布通知',\n titleRequired: '请输入标题',\n deleteConfirm: '确定删除通知「{title}」?',\n published: '已发布',\n deleted: '已删除',\n view: '查看',\n detailTitle: '通知详情',\n // 动作按钮(发布时可选带上,渲染在正文下)\n actions: '动作按钮',\n actionsHint:\n '最多 5 条;url 以 /api/ 开头是接口调用,其它站内路径是页面跳转;文案含「.」按 i18n key 翻译',\n actionCount: '{count} 个动作',\n actionLabel: '文案',\n actionMethod: '方法',\n actionUrl: '站内路径',\n actionStyle: '样式',\n actionStyleDefault: '默认',\n actionStylePrimary: '主色',\n actionStyleError: '危险',\n actionNeedConfirm: '先确认',\n actionNeedComment: '填意见',\n actionAdd: '添加动作',\n actionConfirm: '确定执行「{label}」?',\n actionCommentPlaceholder: '请输入意见(可留空)',\n actionDone: '已执行',\n actionInvalidUrl: '动作地址不合法',\n },\n // 实时通知(SignalR;后端 SmartAdmin:Realtime:Enabled 开启后即时推送,否则退回轮询/惰性 401)\n realtime: {\n forcedLogout: '您已被强制下线',\n },\n // 在线会话(只读 + 踢人)\n session: {\n title: '在线会话',\n account: '账号',\n ip: 'IP 地址',\n device: '设备',\n loginTime: '登录时间',\n expiresAt: '过期时间',\n kick: '强制下线',\n self: '当前会话',\n kickConfirm: '确定强制下线账号「{account}」的会话?该会话将立即失效。',\n kicked: '已强制下线',\n mineTitle: '我的会话',\n current: '当前设备',\n kickMineConfirm: '确定下线该设备上的会话?其登录状态将立即失效。',\n },\n // 外部登录 / SSO:回调结果页 + 个人中心账号绑定\n oauth: {\n processing: '正在处理登录…',\n backToLogin: '即将返回登录页',\n failed: '第三方登录失败,请重试',\n bindingsTitle: '账号绑定',\n bindingsHint: '把第三方账号绑定到本账号后,即可用它一键登录。绑定需跳转到对应平台完成一次授权。',\n bindingsTip: '绑定会跳转到对应平台授权;解绑后将无法再用该方式登录本账号。',\n boundCountLabel: '已绑定',\n bindTip: '点击下方按钮前往授权绑定',\n disabledTip: '运营已关闭该登录方式,已绑定的仍可解绑',\n cannotBind: '暂不可绑定',\n noProviders: '当前未启用任何第三方登录方式',\n thirdParty: '第三方账号',\n pendingLinkTitle: '待绑定 {name}',\n pendingLinkHint:\n '该 {name} 尚未绑定系统账号。请用你自己的系统账号登录;登录后将请你确认是否绑定。请勿打开来源不明的绑定链接。',\n pendingLinkSuccess: '已绑定 {name},下次可直接用它登录',\n pendingLinkConfirmTitle: '确认绑定第三方账号?',\n pendingLinkConfirmContent:\n '将把 {name}{identity} 绑定到当前账号「{account}」。若这不是你本人刚授权的第三方账号,请选择「仅登录」。',\n pendingLinkConfirmOk: '确认绑定',\n pendingLinkConfirmSkip: '仅登录,不绑定',\n pendingLinkIdentity: '({display})',\n bind: '绑定',\n unbind: '解绑',\n bound: '已绑定',\n notBound: '未绑定',\n boundAt: '绑定于 {time}',\n unbound: '已解绑',\n unbindConfirm: '确定解绑「{name}」?解绑后将不能再用它登录本账号。',\n disabled: '已停用',\n // 内置品牌显示名(后端未下发 displayName 时用)\n brand: {\n github: 'GitHub',\n wechat: '微信',\n wecom: '企业微信',\n dingtalk: '钉钉',\n gitee: 'Gitee',\n qq: 'QQ',\n },\n },\n // 岗位管理(普通 CRUD;岗位与机构无关联)\n position: {\n title: '岗位管理',\n code: '岗位编码',\n name: '岗位名称',\n sort: '排序',\n codePlaceholder: '不填则自动生成',\n codeImmutableHint: '编码创建后不可修改',\n nameRequired: '请输入岗位名称',\n addTitle: '新增岗位',\n editTitle: '编辑岗位',\n deleteConfirm: '确定删除岗位「{name}」?',\n saved: '保存成功',\n deleted: '已删除',\n },\n // 角色管理(CRUD + 授权菜单 + 数据范围)\n role: {\n title: '角色管理',\n code: '角色编码',\n name: '角色名称',\n sort: '排序',\n remark: '备注',\n codeRequired: '请输入角色编码',\n nameRequired: '请输入角色名称',\n addTitle: '新增角色',\n editTitle: '编辑角色',\n // 删角色会物理删掉用户↔角色关联(不可恢复),故删前先查人数当面告知;查不到人数(无用户查询权限)才退回这条通用文案\n deleteConfirm: '确定删除角色「{name}」?其授权、数据范围及用户关联将一并清除。',\n deleteConfirmNoUsers: '确定删除角色「{name}」?当前没有用户使用该角色。',\n deleteConfirmWithUsers:\n '角色「{name}」当前有 {count} 个用户在用。删除后这些用户将立即失去该角色的全部权限,且关联无法恢复。确定删除?',\n batchDeleteWithUsers:\n '确定删除所选 {count} 个角色?其中 {users} 个用户将立即失去相应权限,且关联无法恢复。',\n isDelegatable: '可转授',\n isDelegatableHint: '开启后,非超管用户可把该角色指派给其数据范围内的用户',\n grantUsers: '授权用户',\n grantUsersSaved: '用户授权已保存',\n saved: '保存成功',\n deleted: '已删除',\n grantMenus: '授权菜单',\n grantSaved: '授权已保存',\n apiOnlyRow: '接口权限(无页面)',\n grantSearch: '搜索目录、页面或按钮',\n grantSearchClear: '清除搜索',\n grantSelectAll: '全选「{name}」',\n noButtons: '无按钮权限',\n grantNoMatch: '没有匹配的权限',\n grantNoMatchElsewhere: '其他应用中有 {count} 个目录匹配,请切换上方应用查看',\n grantNoMenus: '该应用下暂无菜单',\n grantSummary: '已授权 {on} / {total} 项',\n grantSummarySplit: '页面 {pages} · 按钮 {buttons}',\n grantUnsaved: '有未保存的修改',\n systemMenusBuiltinOnly:\n '除「用户管理」「角色管理」外,系统自带的菜单只能授给内置角色,这里不显示',\n dataScope: '数据范围',\n scopeType: '范围类型',\n customOrgs: '自定义机构',\n customOrgsHint: '选择该角色可见的机构',\n scopeSaved: '数据范围已保存',\n scope: {\n all: '全部数据',\n org: '本机构',\n orgAndChildren: '本机构及以下',\n self: '仅本人',\n custom: '自定义机构',\n },\n },\n // 日志(登录 / 操作共用一个命名空间;共享 result/success/failed/ip/userAgent/clear/cleared)\n log: {\n loginTitle: '登录日志',\n account: '账号',\n result: '结果',\n success: '成功',\n failed: '失败',\n resultCode: '结果码',\n name: '姓名',\n ip: 'IP 地址',\n userAgent: '客户端',\n device: '设备',\n clear: '清空日志',\n clearLoginConfirm: '确定清空全部登录日志?此为硬删除,不可恢复。',\n cleared: '已清空',\n // 操作日志\n opTitle: '操作日志',\n opName: '操作名',\n method: '方法',\n path: '路径',\n elapsed: '耗时',\n operator: '操作人',\n operatorPlaceholder: '选择操作人',\n param: '入参',\n exception: '异常信息',\n detail: '详情',\n clearOpConfirm: '确定清空全部操作日志?此为硬删除,不可恢复。',\n // 异常日志\n exceptionTitle: '异常日志',\n exceptionType: '异常类型',\n exceptionMessage: '异常消息',\n stackTrace: '异常堆栈',\n traceId: '追踪号',\n clearExceptionConfirm: '确定清空全部异常日志?此为硬删除,不可恢复。',\n },\n monitor: {\n title: '服务器监控',\n refresh: '刷新',\n cpu: 'CPU 占用',\n memory: '内存占用',\n runtime: '运行时',\n disk: '磁盘',\n processorCount: '处理器',\n threadCount: '线程',\n gcHeap: '托管堆',\n totalMemory: '可用上界',\n machineName: '主机名',\n framework: '框架',\n os: '操作系统',\n arch: '架构',\n uptime: '运行时长',\n free: '可用',\n days: '天',\n hours: '时',\n minutes: '分',\n },\n // 定时任务(任务列表 / 执行记录 / 任务监控 / CronEditor;错误码文案在 error.job.*,别重复)\n job: {\n title: '定时任务',\n name: '任务名称',\n code: '任务编码',\n codePlaceholder: '唯一编码,创建后不可变',\n remark: '备注',\n nameRequired: '请输入任务名称',\n codeRequired: '请输入任务编码',\n addTitle: '新增任务',\n editTitle: '编辑任务',\n deleteConfirm: '确定删除任务「{name}」?',\n saved: '保存成功,集群下最长 30 秒后生效',\n deleted: '已删除',\n runOnce: '执行',\n runConfirm: '确定立即执行一次任务「{name}」?本次执行不影响原调度节奏。',\n runStarted: '已触发执行',\n viewLogs: '记录',\n protectedTip: '内置任务受保护,禁止删除',\n pauseConfirm: '确定暂停任务「{name}」?暂停后不再调度。',\n panicTooltip: '连续失败 {n} 次已熔断;重新启用将清零连败并恢复调度',\n nextRunTime: '下次执行',\n lastRunTime: '上次执行',\n runCount: '执行/失败',\n status: { ready: '就绪', paused: '已暂停', completed: '已完成', panic: '已熔断' },\n form: {\n sectionBasic: '基本',\n sectionTrigger: '触发',\n sectionHandler: '载荷',\n sectionAdvanced: '高级选项',\n sectionAdvancedHint: '生效窗口、错过策略、并发、重试与告警;不展开也能保存',\n startTime: '生效开始',\n endTime: '生效结束',\n windowPlaceholder: '留空=不限',\n misfireStrategy: '错过策略',\n misfireSkip: '跳过',\n misfireFireOnceNow: '立即补跑一次',\n concurrencyMode: '并发模式',\n concurrencySerial: '串行跳过',\n concurrencyParallel: '并行',\n timeoutSeconds: '执行超时(秒)',\n timeoutHint: '0 = 不限制',\n retryCount: '失败重试次数',\n retryIntervalSeconds: '重试间隔(秒)',\n failAlertThreshold: '连败告警阈值',\n failAlertHint: '0 = 不告警不熔断',\n alertByNotice: '站内信告警',\n alertEmails: '告警邮箱',\n alertEmailsPlaceholder: '逗号分隔;留空回退全局配置',\n },\n trigger: {\n kind: '触发方式',\n cron: 'Cron',\n interval: '固定间隔',\n oneShot: '一次性',\n cronExpression: 'Cron 表达式',\n cronRequired: '请输入 cron 表达式',\n intervalSeconds: '间隔秒数',\n intervalRequired: '请输入间隔秒数(≥5)',\n oneShotTime: '执行时刻',\n oneShotRequired: '请选择执行时刻',\n seconds: '秒',\n everySeconds: '每 {n} 秒',\n },\n handler: {\n kind: '载荷类型',\n compiled: '编译类',\n http: 'HTTP',\n sql: 'SQL',\n sqlDisabledHint: 'SQL 载荷未启用:需后端开启 SmartAdmin:Jobs:Sql:Enabled',\n name: '处理器',\n namePlaceholder: '选择已注册的处理器',\n nameRequired: '请选择处理器',\n props: '属性包',\n propKey: '键',\n propValue: '值',\n addProp: '添加一项',\n httpUrl: '请求地址',\n httpUrlRequired: '请输入请求地址',\n httpMethod: '请求方法',\n httpHeaders: '请求头',\n headersMaskHint: '出于安全,已存请求头的值以 ******** 显示;不修改则原样保存生效',\n httpBody: '请求体',\n successStatuses: '成功状态码',\n successStatusesPlaceholder: '如 200,201;留空 = 2xx 即成功',\n sqlText: 'SQL 语句',\n sqlRequired: '请输入 SQL 语句',\n },\n log: {\n title: '执行记录',\n job: '任务',\n jobPlaceholder: '选择任务',\n fireMode: '触发来源',\n fireModeSchedule: '调度',\n fireModeManual: '手动',\n fireModeBackfill: '补跑',\n fireModeMisfireSkip: '错过跳过',\n scheduledTime: '计划时刻',\n startTime: '开始时间',\n elapsed: '耗时',\n runStatus: '状态',\n running: '运行中',\n success: '成功',\n failed: '失败',\n timeout: '超时',\n cancelled: '已取消',\n skipped: '已跳过',\n retryIndex: '重试次',\n node: '节点',\n kill: '终止',\n killConfirm: '确定终止任务「{name}」的这次执行?终止旗标写入后,目标节点最迟数秒内停止。',\n killed: '已请求终止',\n clear: '清空记录',\n clearTitle: '清空执行记录',\n clearRange: '范围',\n clearAll: '全部记录',\n beforeDays: '{n} 天以前的记录',\n clearHint: '运行中的记录一律保留;此为硬删除,不可恢复。',\n cleared: '已清理 {n} 条记录',\n message: '处理器输出',\n error: '异常信息',\n attempts: '同一次触发的各次尝试',\n firstTry: '首次',\n retryN: '第 {n} 次重试',\n },\n monitor: {\n title: '任务监控',\n todaySuccess: '今日成功',\n todayFailed: '今日失败',\n running: '运行中',\n totalJobs: '任务总数',\n trendTitle: '近 14 日成败趋势',\n trendSuccess: '成功',\n trendFailed: '失败',\n upcomingTitle: '即将执行',\n upcomingJob: '任务',\n upcomingTime: '时刻',\n nodesTitle: '集群节点',\n nodeName: '节点',\n role: '角色',\n leader: 'leader',\n standby: 'standby',\n lastHeartbeat: '最后心跳',\n workerId: 'WorkerId',\n pid: 'PID',\n justNow: '刚刚',\n secondsAgo: '{n} 秒前',\n minutesAgo: '{n} 分钟前',\n hoursAgo: '{n} 小时前',\n },\n cron: {\n tabSecond: '秒',\n tabMinute: '分',\n tabHour: '时',\n tabDay: '日',\n tabMonth: '月',\n tabWeek: '周',\n tabExpression: '表达式',\n every: '每',\n any: '不指定(?)',\n range: '区间',\n to: '到',\n step: '步长',\n stepFrom: '从',\n stepEvery: '起,每',\n list: '指定值',\n lastDay: '月末(L)',\n lastDayHint: '0 = 月末当天,n = 月末前 n 天(L-n)',\n nearestWeekday: '最近工作日(nW)',\n nearestWeekdayHint: '距该日最近的工作日,不跨月',\n lastWeekday: '月末工作日(LW)',\n lastOfWeek: '最后一个周几(nL)',\n nth: '第 m 个周几(n#m)',\n nthPrefix: '第',\n nthInfix: '个',\n sun: '周日',\n mon: '周一',\n tue: '周二',\n wed: '周三',\n thu: '周四',\n fri: '周五',\n sat: '周六',\n expressionPlaceholder: '如 0 0 2 * * ?(秒 分 时 日 月 周)',\n expressionHint: '支持 5 段(自动补秒位)或 6 段;日与周不能同时受限,其一须为 * 或 ?',\n normalized: '归一化',\n nextRuns: '未来 {n} 次',\n noUpcoming: '已无未来执行时刻',\n everySecondWarning: '该表达式等效每秒执行,请确认这是有意为之',\n },\n },\n // AI 模型管理(厂商 + 模型;错误码文案在 error.ai.*,别重复)\n aiModel: {\n title: 'AI 模型管理',\n searchPlaceholder: '搜索厂商编码/名称',\n addProvider: '新增厂商',\n editProvider: '编辑厂商',\n deleteProvider: '删除厂商',\n deleteConfirm: '确定删除厂商「{name}」?其下模型一并删除,已产生的用量记录不受影响。',\n deleted: '已删除',\n saved: '已保存',\n enabled: '启用',\n disabled: '已停用',\n pendingConfigTip: '尚未配置 API Key,保存前请填写',\n pendingConfig: '待配置',\n provider: {\n code: '厂商编码',\n codePlaceholder: '唯一编码,创建后不可变',\n codeRequired: '请输入厂商编码',\n name: '厂商名称',\n nameRequired: '请输入厂商名称',\n preset: '厂商预设',\n presetPlaceholder: '选择预设厂商,自动带出协议与 Base URL',\n presetCustom: '自定义',\n protocol: '协议',\n baseUrl: 'Base URL',\n baseUrlRequired: '请输入 Base URL',\n authScheme: '鉴权方式',\n apiKey: 'API Key',\n apiKeyPlaceholder: '留空 = 不修改现有 Key',\n apiKeyHint: '已保存的 Key 只回显掩码,不回填明文',\n hasApiKeyYes: '已配置',\n hasApiKeyNo: '未配置',\n disableConfirm: '确定停用厂商「{name}」?',\n sort: '排序',\n remark: '备注',\n },\n model: {\n title: '模型',\n add: '添加模型',\n remove: '移除',\n name: '模型名',\n nameRequired: '请输入模型名',\n displayName: '展示名',\n displayNameRequired: '请输入展示名',\n contextWindow: '上下文窗口',\n contextWindowPlaceholder: '如 128000,留空不限',\n inputPrice: '输入单价',\n outputPrice: '输出单价',\n pricePlaceholder: '每百万 Token,留空不计费',\n enabled: '启用',\n isDefault: '默认模型',\n setDefault: '设为默认',\n defaultTag: '默认',\n atLeastOne: '至少保留一个模型',\n duplicateName: '模型名重复',\n noDefault: '未设置默认模型',\n defaultUniqueHint: '默认模型全库唯一:在此设置默认并保存后,其它厂商原有的默认模型会被取消。',\n },\n test: {\n action: '测试连接',\n testing: '测试中…',\n ok: '连接成功',\n failed: '连接失败',\n latency: '耗时 {ms} ms',\n model: '模型',\n usage: '用量',\n inputTokens: '输入 Token',\n outputTokens: '输出 Token',\n error: '错误信息',\n },\n },\n // AI 用量统计(筛选 / 四格指标 / 分组 / 趋势 / 明细)\n aiUsage: {\n title: 'AI 用量统计',\n filter: {\n dateRange: '时间范围',\n today: '今天',\n last7Days: '近 7 天',\n last30Days: '近 30 天',\n provider: '厂商',\n providerAll: '全部厂商',\n model: '模型',\n modelAll: '全部模型',\n scene: '场景',\n sceneAll: '全部场景',\n scenePlaceholder: '按调用场景过滤',\n },\n metric: {\n totalTokens: '总 Token 数',\n totalCalls: '总调用次数',\n failureCount: '失败次数',\n avgLatency: '平均耗时',\n },\n groupBy: {\n label: '统计维度',\n provider: '按厂商',\n model: '按模型',\n scene: '按场景',\n user: '按用户',\n },\n trend: {\n title: '用量趋势',\n inputTokens: '输入 Token',\n outputTokens: '输出 Token',\n callCount: '调用次数',\n },\n table: {\n createTime: '时间',\n provider: '厂商',\n model: '模型',\n scene: '场景',\n user: '用户',\n inputTokens: '输入 Token',\n outputTokens: '输出 Token',\n totalTokens: '合计 Token',\n latency: '耗时',\n status: '状态',\n success: '成功',\n failed: '失败',\n requestId: '请求 Id',\n streamed: '流式',\n usageSource: '用量来源',\n usageSourceReported: '上游上报',\n usageSourceMissing: '缺失估算',\n },\n share: '占比',\n },\n cache: {\n authTitle: '权限缓存',\n authDesc: '清除全部用户的权限码与数据范围缓存。直接改库或排障后,强制下次请求按最新授权重算。',\n authConfirm: '确定清除全部用户的权限/数据范围缓存?下次请求将重新计算授权。',\n dictTitle: '字典缓存',\n dictDesc: '清除全部字典类型的字典项缓存。直接改库后,强制下拉数据源按最新字典重建。',\n dictConfirm: '确定清除全部字典项缓存?',\n configTitle: '配置缓存',\n configDesc: '清除全部系统配置项的读穿透缓存。直接改库后,强制配置值按最新库表重读。',\n configConfirm: '确定清除全部系统配置缓存?',\n portalTitle: '门户菜单缓存',\n portalDesc: '递增门户代际,令所有用户的模块/菜单树缓存整体失效,下次进入重建。',\n portalConfirm: '确定重建门户菜单缓存?所有用户的菜单将在下次请求时重算。',\n execute: '执行',\n flushed: '已清除 {n} 项缓存',\n portalDone: '已重建门户菜单缓存',\n note: '仅提供定向失效,不浏览键、不读取值——缓存中含明文验证码/一次性令牌、键中内嵌手机号/IP。正常的授权变更已自动失效,此页用于直接改库等旁路场景的手动刷新。',\n },\n profile: {\n title: '个人资料',\n account: '账号',\n name: '姓名',\n org: '机构',\n position: '职位',\n nickname: '昵称',\n gender: '性别',\n phone: '手机号',\n email: '邮箱',\n avatar: '头像',\n avatarUploading: '上传中…',\n phoneInvalid: '手机号格式不正确',\n emailInvalid: '邮箱格式不正确',\n saved: '资料已更新',\n },\n personalSecurity: {\n title: '账号安全',\n // 全员可见:只说用户能做什么,不指向后台配置路径。\n hint: '在此绑定或管理身份验证器(TOTP),用于登录二次验证。',\n // 仅管理员可见(超管 / 能进系统配置):指向「安全策略」开关,普通用户无需也不应看到。\n adminHint:\n '若绑定失败或登录不要求二次验证,请到「系统配置 → 安全策略」确认已开启「启用动态口令」。',\n bindDesc: '使用账号与当前密码完成自助绑定;也可使用恢复码解除绑定后重新绑定。',\n setupAuthenticator: '设置身份验证器',\n useRecovery: '使用恢复码',\n note: '自愿绑定请从本页进入。若账号被要求启用二次验证且尚未绑定,登录账密通过后会弹出引导。',\n },\n changePassword: {\n title: '修改密码',\n oldPassword: '原密码',\n newPassword: '新密码',\n confirmPassword: '确认新密码',\n oldRequired: '请输入原密码',\n newRequired: '请输入新密码',\n confirmRequired: '请再次输入新密码',\n mismatch: '两次输入的新密码不一致',\n changed: '密码已修改,请重新登录',\n forcedHint: '首次登录或密码被重置,请先修改密码后再使用系统。',\n strength: { label: '密码强度', weak: '弱', fair: '中', strong: '强' },\n rules: {\n minLength: '至少 {n} 位',\n upper: '包含大写字母',\n lower: '包含小写字母',\n digit: '包含数字',\n special: '包含特殊字符',\n specialOptional: '包含特殊字符(可选,更安全)',\n },\n },\n // ── 后端错误码 msgKey → 文案 ──────────────────────────────\n error: {\n _fallback: '操作失败,请稍后重试',\n // 前端侧错误(不来自后端错误码):请求被超时闸掐断或主动取消\n network: {\n timeout: '请求超时,请检查网络后重试',\n aborted: '请求已取消',\n },\n auth: {\n passwordWrong: '账号或密码错误',\n captchaExpired: '验证码已过期',\n captchaWrong: '验证码错误',\n accountLocked: '账号已锁定,请稍后再试',\n accountDisabled: '账号已停用',\n tokenInvalid: '登录状态无效,请重新登录',\n refreshTokenInvalid: '登录已过期,请重新登录',\n tooManyRequests: '操作过于频繁,请稍后再试',\n smsCodeRequired: '请输入短信验证码',\n smsCodeWrong: '短信验证码错误',\n smsCodeExpired: '短信验证码错误或已失效,请重新获取',\n smsLoginDisabled: '短信验证码登录未启用',\n oauthProviderDisabled: '该第三方登录方式未启用或不存在',\n oauthStateInvalid: '登录会话已失效,请重新发起第三方登录',\n oauthExchangeFailed: '第三方登录换取身份失败,请重试',\n oauthAccountNotBound: '该第三方账号尚未绑定系统账号,请先登录本系统账号以完成绑定',\n oauthAlreadyBound: '该第三方账号已被绑定,或当前账号已绑定同一登录方式',\n totpRequired: '请输入动态口令完成二次验证',\n totpWrong: '动态口令错误',\n totpNotBound: '尚未绑定动态口令,请先完成绑定',\n bindInviteInvalid: '绑定无效或已过期,请重新开始设置',\n mfaBindInvalid: '绑定无效或已过期,请重新开始设置',\n recoveryCodeInvalid: '恢复码无效或已使用',\n csrfInvalid: '请求校验失败,请刷新页面后重试',\n reauthRequired: '此操作需要再次验证身份',\n mfaBindPasswordRequired: '绑定动态口令前请先验证当前密码',\n apiKeyInvalid: 'API Key 缺失或无效',\n externalAuthTypeNotFound: '登录方式类型不存在,或对应的扩展包尚未安装',\n externalAuthCodeExists: '该标识已被占用',\n externalAuthCodeInvalid: '标识格式不合法,或与内置登录方式的标识冲突',\n externalAuthFieldMissing: '请填写必填项:{field}',\n externalAuthDataProtectionKeyMissing:\n '尚未配置数据保护主密钥,无法安全保存第三方密钥。请先配置 SmartAdmin:Security:DataProtection:Key',\n externalAuthProviderNotFound: '该登录方式尚未配置',\n externalAuthEndpointBlocked: '该地址被出站访问围栏拒绝,请检查协议、主机与网段',\n },\n perm: {\n denied: '无权限访问',\n demoReadOnly: '当前为演示环境,禁止修改操作',\n superAdminRequired: '该操作仅限超级管理员执行',\n menuNotGrantable: '该菜单所属模块不允许转授',\n targetIsDelegatedAdmin: '对方是管理员,只有超管能为其单独授权',\n delegatedGrantExpiryInvalid: '允许必须设置到期日,且最长 {maxDays} 天',\n },\n user: {\n notFound: '用户不存在',\n accountExists: '账号已存在',\n superAdminProtected: '超级管理员受保护,禁止此操作',\n passwordTooWeak: '新密码不满足密码复杂度要求',\n passwordReused: '新密码不能与当前或最近使用过的密码相同',\n outOfDataScope: '目标用户超出当前数据范围',\n avatarUrlInvalid: '头像地址不合法',\n cannotOperateSelf: '不能对自己执行此操作',\n menuGrantInvalid: '授权变更不合法:同一菜单只能出现一次,到期时间须晚于当前时间',\n },\n role: {\n notFound: '角色不存在',\n codeExists: '角色编码已存在',\n notDelegatable: '目标角色不可转授',\n systemMenuNotAssignable: '除「用户管理」「角色管理」外,系统自带的菜单只能授给内置角色',\n },\n org: {\n notFound: '机构不存在',\n hasChildren: '存在子机构,不可删除',\n invalidParent: '上级机构无效',\n codeExists: '机构编码已存在',\n hasUsers: '机构下仍有用户,不可删除',\n outOfScope: '目标机构超出当前数据范围',\n },\n position: {\n notFound: '职位不存在',\n codeExists: '职位编码已存在',\n hasUsers: '该职位下仍有用户,不可删除',\n },\n module: {\n notFound: '应用不存在',\n codeExists: '应用编码已存在',\n protected: '内置应用受保护,禁止此操作',\n accessDenied: '无该应用访问权限',\n hasMenus: '应用下仍有挂靠菜单,请先迁移或删除后再删应用',\n },\n menu: {\n notFound: '菜单不存在',\n hasChildren: '存在子节点,不可删除',\n invalidParent: '上级菜单无效(不能指向自身或其子节点)',\n },\n session: { notFound: '会话不存在或已下线' },\n dict: {\n typeNotFound: '字典类型不存在',\n typeCodeExists: '字典类型编码已存在',\n itemNotFound: '字典项不存在',\n seedProtected: '种子数据受保护,不可删除',\n itemValueExists: '字典项值在该类型下已存在',\n },\n config: { notFound: '配置不存在', keyExists: '配置键已存在' },\n notice: {\n notFound: '通知不存在',\n receiverRequired: '定向发布必须指定至少一个接收对象',\n receiverNotFound: '接收对象不存在或已停用',\n actionInvalid:\n '动作列表不合法:文案不能为空,方法只能是 GET/POST,地址须是单个 / 开头的站内路径,最多 5 条',\n },\n file: {\n empty: '文件为空',\n tooLarge: '文件超出大小限制',\n extNotAllowed: '不支持的文件类型',\n notFound: '文件不存在',\n chunkMissing: '分片缺失,请重试上传',\n chunkHashMismatch: '文件校验失败,请重新上传',\n },\n excel: {\n providerMissing: '未安装 Excel 支持包,请安装 SmartAdmin.Excel 并调用 AddSmartAdminExcel()',\n },\n import: {\n fileEmpty: '导入文件为空',\n rowLimitExceeded: '导入行数超过上限',\n columnMissing: '必填列未映射',\n cellRequired: '该单元格为必填项',\n cellDictInvalid: '字典值无效',\n cellRefNotFound: '引用的数据不存在',\n cellFormatInvalid: '单元格格式不正确',\n duplicateInFile: '业务键在本文件内重复',\n duplicateInDb: '业务键在库中已存在',\n orgOutOfScope: '机构不在当前数据范围内',\n },\n export: {\n tooManyRows: '导出结果超过行数上限,请先收窄筛选条件',\n columnInvalid: '请求导出的列无效',\n },\n job: {\n notFound: '任务不存在',\n codeExists: '任务编码已存在',\n cronInvalid: 'cron 表达式不合法',\n triggerInvalid: '触发配置不合法',\n handlerNotFound: '处理器未注册',\n alreadyRunning: '上次执行尚未结束',\n runNotAlive: '该执行记录不在运行中',\n sqlDisabled: 'SQL 任务未启用',\n httpUrlBlocked: '目标地址被安全策略拒绝',\n statusConflict: '任务状态不允许该操作',\n propsInvalid: '任务参数缺失或不合法',\n logNotFound: '执行记录不存在',\n runLimitReached: '运行中任务数已达上限,请稍后再试',\n protected: '内置任务受保护,禁止删除',\n },\n ai: {\n providerNotFound: '厂商不存在',\n providerCodeExists: '厂商编码已存在',\n providerDisabled: '厂商已停用',\n apiKeyMissing: '未配置 API Key',\n baseUrlBlocked: '目标地址被安全策略拒绝',\n presetNotFound: '预置厂商不存在',\n presetImmutable: '预置厂商的协议、预置标识不可修改',\n modelNotFound: '模型不存在',\n noDefaultModel: '未配置默认模型',\n modelDisabled: '模型已停用',\n modelNameExists: '模型名称已存在',\n upstreamError: '上游服务调用失败',\n upstreamTimeout: '上游服务调用超时',\n upstreamRateLimited: '上游服务限流,请稍后重试',\n upstreamAuthFailed: '上游服务鉴权失败,请检查 API Key',\n upstreamBadResponse: '上游服务返回异常',\n dataProtectionKeyMissing: '数据保护密钥不可用,无法解密 API Key',\n sceneRequired: '必须指定调用场景(scene)',\n multimodalSystemUnsupported: 'System 角色消息不支持图片等多段内容',\n structuredOutputUnsupported: '该厂商不支持结构化输出(json_schema)约束',\n },\n recycle: {\n notFound: '回收站中未找到该记录',\n uniqueConflict: '恢复失败:编码/账号已被新记录占用',\n invalidType: '不支持的回收站类型',\n },\n request: {\n pageSizeExceeded: '每页条数超过上限 {max},请调小分页或使用导出',\n },\n system: { internal: '服务器内部错误' },\n },\n\n // 回收站\n recycle: {\n title: '回收站',\n name: '名称',\n code: '编码',\n deletedAt: '删除时间',\n restore: '恢复',\n purge: '彻底删除',\n restoreConfirm: '确定恢复「{name}」?',\n purgeConfirm: '确定彻底删除「{name}」?数据将无法恢复。',\n restored: '已恢复',\n purged: '已彻底删除',\n empty: '回收站为空',\n tabs: {\n user: '用户',\n role: '角色',\n org: '机构',\n position: '岗位',\n module: '模块',\n config: '配置',\n dict: '字典',\n menu: '菜单',\n job: '定时任务',\n },\n },\n // 接口文档入口页\n apiDocs: {\n title: '接口文档',\n openedHint: '接口文档已在新标签页打开。',\n fallbackLink: '没有自动打开?点此手动打开',\n copyToken: '复制我的接口令牌',\n copyTokenHint: '在新标签页里点右上角 Authentication → Bearer,粘贴这里复制的令牌',\n tokenCopied: '已复制',\n tokenWarn: '令牌是当前登录会话的凭据,等同于你的身份,请勿分享给他人。',\n },\n // 用户导入导出:列标题 + 文件名(与 UserImportProfile / UserExportProfile 的列一一对应)\n userExport: {\n account: '登录账号',\n name: '姓名',\n nickname: '昵称',\n phone: '手机号',\n email: '邮箱',\n gender: '性别',\n orgName: '所属机构',\n positionName: '职位',\n directorName: '直属主管',\n enabled: '启用状态',\n superAdmin: '超级管理员',\n createTime: '创建时间',\n fileName: '用户导出.xlsx',\n importTemplateName: '用户导入模板.xlsx',\n errorReportName: '用户导入错误报告.xlsx',\n },\n logOp: {\n fileName: '操作日志导出.xlsx',\n },\n}\n"],"names":["zhCN"],"mappings":"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"}