Files
1Panel/core/i18n/lang/zh.yaml
ssongliu 30dc36b95d feat: integrate virtual machine migration into XPack (#13740)
* feat: integrate virtual machine migration into XPack

* chore: remove virtual machine test files
2026-09-08 14:20:26 +08:00

531 lines
30 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 基础错误
ErrInvalidParams: "请求参数错误: {{ .detail }}"
ErrTokenParse: "Token 生成错误: {{ .detail }}"
ErrInitialPassword: "原密码错误"
ErrInternalServer: "服务内部错误: {{ .detail }}"
ErrInternalServerKey: "服务内部错误:"
ErrRecordExist: "记录已存在"
ErrRecordNotFound: "记录未能找到"
ErrStructTransform: "类型转换失败: {{ .detail }}"
ErrNotSupportType: "系统暂不支持当前类型: {{ .name }}"
ErrDemoEnvironment: "演示服务器,禁止此操作!"
ErrCmdTimeout: "命令执行超时!"
ErrPortInUsed: "{{ .name }} 端口已被占用!"
ErrFileNotFound: '{{ .name }} 文件不存在'
ErrReqFailed: "{{.name}} 请求失败: {{ .err }}"
# 请求与安全入口
ErrNoSuchHost: "无法找到请求的服务器 {{ .err }}"
ErrHttpReqNotFound: "无法找到请求的资源 {{ .err }}"
ErrHttpReqFailed: "请求失败 {{ .err }}"
ErrHttpReqTimeOut: "请求超时 {{ .err }}"
ErrCreateHttpClient: "创建请求失败 {{ .err }}"
ErrProxy: "请求错误,请检查该节点状态: {{ .detail }}"
ErrProxySetting: "代理服务器信息不可用 {{ .err }},请检查后重试!"
ErrEntrance: "安全入口信息错误,请检查后重试!"
ErrEntranceFormat: "暂不支持安全入口 {{ .name }} ,请检查后重试!"
# 登录与安全
ErrNotLogin: "用户未登录: {{ .detail }}"
ErrSessionDataNotFound: "当前会话已过期!"
ErrSessionDataFormat: "当前会话数据格式异常!"
ErrPasswordExpired: "当前密码已过期: {{ .detail }}"
ErrLoginLocked: "失败次数过多,当前登录已被临时锁定 5 分钟。"
ErrApiConfigStatusInvalid: "API 接口禁止访问: {{ .detail }}"
ErrApiConfigKeyInvalid: "API 接口密钥错误: {{ .detail }}"
ErrApiConfigIPInvalid: "调用 API 接口 IP 不在白名单: {{ .detail }}"
ErrApiConfigDisable: "此接口禁止使用 API 接口调用: {{ .detail }}"
ErrApiConfigKeyTimeInvalid: "API 接口时间戳错误: {{ .detail }}"
ErrPasskeyDisabled: "需开启 HTTPS 才能使用 Passkey"
ErrPasskeyNotConfigured: "尚未配置 Passkey"
ErrPasskeyLimit: "Passkey 数量已达上限(最多 5 个)"
ErrPasskeySession: "Passkey 会话已过期或无效"
ErrPasskeyDuplicate: "Passkey 已存在"
ErrPasskeyVerify: "Passkey 验证失败"
ErrOIDCNotEnabled: "OIDC 认证尚未启用"
ErrOIDCConfigInvalid: "OIDC 配置无效"
ErrOIDCConfigChanged: "OIDC 配置已变更,请重新发起认证"
ErrOIDCDiscoveryFailed: "OIDC Provider 配置发现失败"
ErrOIDCIssuerMismatch: "OIDC Issuer 与配置的 Issuer 不一致"
ErrOIDCUnsupportedPKCE: "OIDC Provider 不支持要求的 PKCE 方式"
ErrOIDCUnsupportedSigningAlgorithm: "不支持该 OIDC 签名算法"
ErrOIDCInvalidState: "OIDC 登录状态无效或已被使用"
ErrOIDCLoginExpired: "OIDC 登录请求已过期,请重试"
ErrOIDCTokenExchange: "OIDC 授权码换取 Token 失败"
ErrOIDCTokenValidation: "OIDC Token 校验失败"
ErrOIDCUserInfoValidation: "OIDC 用户信息校验失败"
ErrOIDCNameClaimMissing: "配置的 OIDC 用户名 Claim 缺失或无效"
ErrOIDCNameConflictLocal: "OIDC 用户名与本地用户冲突"
ErrOIDCNameConflictLDAP: "OIDC 用户名与 LDAP 用户冲突"
ErrOIDCNameConflictOIDC: "OIDC 用户名与其他 OIDC 身份冲突"
ErrOIDCDefaultRoleInvalid: "OIDC 配置的默认角色不可用"
ErrOIDCPrivateAddressDenied: "OIDC 端点地址不符合网络安全策略"
ErrOIDCTLSValidation: "OIDC TLS 证书校验失败"
ErrOIDCTestExpired: "OIDC 浏览器测试已过期,请重新测试"
ErrOIDCLocalCredentialsReadonly: "OIDC 用户名和密码由身份提供方管理,不能在本地修改。"
ErrOIDCPasswordExpirationUnsupported: "OIDC 用户不使用本地密码过期策略。"
ErrOIDCInternal: "OIDC 认证发生内部错误,请稍后重试。"
# 用户与权限
ErrNoSuchUser: "未能找到该用户信息,请检查后重试!"
ErrToMaster: "该用户无权限对主节点进行该操作,请检查后重试!"
ErrToNode: "该用户无权限对该节点进行该操作,请检查后重试!"
ErrRBAC: "用户权限不足,无法进行该操作,请检查后重试!"
ErrNoneNode: "该用户无任何节点权限,请联系管理员或检查后重试!"
ErrOnlySuperAdmin: "仅超级管理员支持该功能!"
ErrRolePresetCannotDelete: "系统预设角色,无法删除"
ErrRolePresetCannotUpdate: "系统预设角色,无法修改"
ErrRoleBoundToUser: "角色已被用户绑定,无法删除"
ErrRolePresetCannotBind: "系统预设角色,无法分配给用户"
ErrNodeAdminMasterForbidden: "主节点不允许添加节点管理员权限"
ErrSuperAdminCannotDelete: "超级管理员用户无法删除"
ErrGroupIsDefault: "默认分组,无法删除"
ErrGroupIsInUse: "分组正被使用,无法删除"
# 许可证
LicenseCheck: '检查许可证是否可用'
ErrLicenseInUsed: '检查到该许可证已被绑定,请检查后重试!'
ErrLicenseExpired: '检查到该许可证已过期,请检查后重试!'
ErrLicense: "许可证格式错误,请检查后重试!"
ErrLicenseCheck: "许可证校验失败,请检查后重试!"
ErrXpackVersion: "许可证校验失败,该许可证受版本限制,无法成功导入,请检查后重试!"
ErrLicenseSave: "许可证信息保存失败,错误 {{ .err }},请重试!"
ErrLicenseSync: "许可证信息同步失败,数据库中未检测到许可证信息!"
ErrLicenseExist: "该许可证记录已存在,您可直接前往许可证页面进行节点绑定。"
ErrXpackNotFound: "该部分为专业版功能,请先在 面板设置-许可证 界面导入许可证"
ErrXpackExceptional: "该部分为专业版功能,请先在 面板设置-许可证 界面同步许可证状态"
ErrXpackLost: "许可证已达到最大重试次数,请进入【面板设置】【许可证】页面手动点击同步按钮,以确保专业版功能正常使用"
ErrEnterpriseLicenseRequired: "企业版许可证未导入,请先导入许可证"
ErrDeviceLost: "许可证校验必要文件丢失,请检查后重试!"
ErrDeviceErr: "当前环境与许可证导入环境不一致,请编辑许可证重新导入!"
ErrXpackTimeout: "请求超时,网络连接可能不稳定,请稍后再试!"
ErrUnbindMaster: "检测到节点管理内存在专业版节点,无法解绑当前许可证,请先移除或解绑后重试!"
ErrFreeNodeLimit: "可添加节点数量已达到上限,请购买后重试!"
ErrNodeBound: "该许可证已绑定到其他节点,请检查后重试!"
ErrNodeBoundDelete: "该许可证已被绑定,不支持删除操作,请检查后重试!"
ErrNodeBoundLimit: "当前免费节点已经达到上限,请检查后重试!"
ErrLicenseFree: "仅当许可证正常绑定到节点后,才能使用其免费节点,请检查后重试!"
ErrLicenseUnbind: "检测到该许可证存在社区版节点,请在 [ 面板设置 - 许可证 ] 中解绑后重试!"
ErrLicenseBindCount: "新许可证免费节点数量小于当前已绑定的社区版节点数量,请检查后重试!"
ErrNoSuchNode: "未能找到该节点信息,请检查后重试!"
ErrNodeUnbind: "检测到该节点未在许可证绑定范围内,请检查后重试!"
ErrNodeBind: "检测到该节点已绑定许可证,请检查后重试!"
ErrNodeLocalRollback: "主节点暂不支持直接回滚,请手动执行 1pctl restore 命令回滚!"
ErrIntlLicense: "当前版本暂不支持导入国际版许可证,敬请期待!"
InvalidRequestBodyType: "请求体格式错误,请检查请求内容是否符合格式要求后重试!"
InvalidLicenseCodeType: "提供的许可证格式错误,请检查后重试!"
LicenseNotFoundType: "许可证不存在,系统中未找到与提供许可证匹配的记录,请检查后重试!"
LicenseRevokedType: "请求的许可证已被废弃,无法使用,请检查后重试!"
LicenseExpiredType: "许可证已超过有效期,请续费或在 面板设置-许可证 界面重新导入许可证后重试!"
LicenseProductMismatchType: "许可证与当前请求的产品或服务不匹配!"
InvalidAssigneeType: "许可证分配的目标用户或设备信息无效,请检查后重试!"
LicenseUsageNotFoundType: "无使用记录,当前许可证尚未被激活或使用,请检查后重试!"
LicenseUsageLimitExceededType: "该许可证已绑定到其他节点,请检查后重试!"
# 节点与集群
MasterNode: "主节点"
Node: "节点"
ErrLocalDelete: "无法删除本地节点!"
ErrMasterDelete: "无法删除主节点,请先删除从节点"
ClusterNameIsExist: "集群名称已存在"
AppStatusUnHealthy: "应用获取状态异常,请在节点列表检查安装节点状态"
MasterNodePortNotAvailable: "节点 {{ .name }} 端口 {{ .port }} 连通性校验失败,请检查防火墙/安全组设置和主节点状态"
ClusterMasterNotExist: "集群主节点失联,请删除子节点"
# 虚拟机
ErrVMNotFound: "虚拟机不存在"
ErrVMAlreadyExists: "虚拟机已存在"
ErrVMCountLimit: "专业版最多可创建 {{ .limit }} 台虚拟机,请删除已有虚拟机或升级企业版后重试。"
ErrVMImageAlreadyExists: "虚拟机镜像文件已存在: {{ .detail }}"
ErrVMStoragePathInUse: "存储池路径已被 [{{ .name }}] 使用"
ErrVMHelperNotFound: "1panel-kvm 不存在"
ErrVMBridgeManaged: "桥接名称已被 libvirt 或 Docker 管理"
ErrVMNetworkInUse: "网络正在被使用,无法删除"
ErrVMStorageInUse: "存储池正在被使用,无法删除"
ErrVMStorageNameCannotChange: "存储池名称无法修改"
ErrVMStoragePathCannotChange: "存储池路径无法修改"
ErrVMRunning: "虚拟机正在运行"
ErrVMLibvirtConnect: "连接 libvirt 失败: {{ .detail }}"
ErrVMPermission: "没有虚拟机操作权限: {{ .detail }}"
ErrVMNetworkNotFound: "虚拟机网络不存在: {{ .detail }}"
ErrVMInvalidPath: "虚拟机路径非法: {{ .detail }}"
ErrVMInvalidInput: "虚拟机参数非法: {{ .detail }}"
ErrVMCommandFailed: "虚拟机命令执行失败: {{ .err }}"
VMCreateTask: "创建虚拟机 [{{ .name }}]"
VMCreateFromTemplateTask: "从模板创建虚拟机 [{{ .name }}]"
VMUpdateTask: "更新虚拟机 [{{ .name }}]"
VMRenameTask: "重命名虚拟机 [{{ .name }}] 为 [{{ .newName }}]"
VMDeleteTask: "删除虚拟机 [{{ .name }}]"
VMTemplateCreateTask: "转存虚拟机 [{{ .name }}] 为模板 [{{ .template }}]"
VMTemplateDeleteTask: "删除虚拟机模板 [{{ .name }}]"
VMForceDeleteMetadataOnly: "1panel-kvm 不存在,仅强制删除虚拟机 [{{ .name }}] 元数据"
VMForceDeleteMetadataAfterLibvirtFailed: "从 libvirt 删除虚拟机 [{{ .name }}] 失败,强制删除元数据: {{ .err }}"
VMForceDeleteDiskFailed: "强制删除虚拟机磁盘文件 [{{ .path }}] 失败: {{ .err }}"
VMForceDeleteDiskSuccess: "已强制删除虚拟机磁盘文件 [{{ .path }}]"
VMSnapshotCreateTask: "创建虚拟机 [{{ .vm }}] 快照 [{{ .snapshot }}]"
VMSnapshotCreateStep: "创建虚拟机快照 [{{ .snapshot }}]"
VMSnapshotRecoverTask: "恢复虚拟机 [{{ .vm }}] 快照 [{{ .snapshot }}]"
VMSnapshotRecoverStep: "恢复虚拟机快照 [{{ .snapshot }}]"
VMSnapshotDeleteTask: "删除虚拟机 [{{ .vm }}] 快照 [{{ .snapshot }}]"
VMSnapshotDeleteStep: "删除虚拟机快照 [{{ .snapshot }}]"
# 应用
CustomAppStoreFileValid: "应用商店包需要 .tar.gz 格式"
AppBackup: "应用备份"
AppBackupPush: "传输应用备份文件 {{.file}} 到节点 {{ .name }}"
ErrSourceTargetSame: "源节点和目标节点不能相同!"
AppInstall: "在 {{ .targetNode }} 节点安装应用 {{ .name }}"
AppInstallCheck: "检查应用安装环境"
# 备份
ErrBackupInUsed: "该备份账号已在计划任务中使用,无法删除"
ErrBackupCheck: "备份账号测试连接失败 {{ .err }}"
ErrBackupLocal: "本地服务器备份账号暂不支持该操作!"
ErrBackupPublic: "检测到该备份账号为非公用,请检查后重试!"
ErrOSSConn: "无法获取最新版本,请确认服务器是否能够连接外部网络。"
MvBackup: "移动数据到备份目录"
# 告警
ErrAlertSync: "告警信息同步错误,请检查后重试!"
# AI 网关
ErrAIProxyUserGroupIsDefault: "默认用户组无法删除"
ErrAIProxyUserGroupInUse: "用户组正被使用,无法删除"
ErrAIProxyUserGroupExists: "用户组名称已存在"
ErrAIProxyBackendAccountExists: "该模型账号已导入 AI 网关账号池,请勿重复导入"
ErrAIProxyModelGroupInUse: "模型组正在使用,无法删除"
ErrAIProxyModelGroupExists: "模型组名称已存在"
ErrAIProxySensitiveGroupInUse: "敏感词分组正在使用,无法删除"
ErrAIProxySensitiveGroupExists: "敏感词分组名称已存在"
AIProxyContentPolicyViolation: "抱歉,我无法处理该请求。请求内容可能不符合内容合规要求,请调整后重试。"
AIBenchmarkRun: "执行 AI 基准测试"
# 任务
TaskStart: "{{ .name }} 任务开始 [START]"
TaskEnd: "{{ .name }} 任务结束 [COMPLETED]"
TaskFailed: "{{ .name }} 任务失败"
TaskTimeout: "{{ .name }} 超时"
TaskSuccess: "{{ .name }} 任务成功"
TaskRetry: "开始第 {{ .name }} 次重试"
SubTaskSuccess: "{{ .name }} 成功"
SubTaskFailed: "{{ .name }} 失败: {{ .err }}"
TaskInstall: "安装"
TaskUpgrade: "升级"
TaskSync: "同步"
TaskSyncForNode: "同步节点数据"
TaskBackup: "备份"
TaskPush: "推送"
TaskRsync: "同步"
SuccessStatus: "{{ .name }} 成功"
FailedStatus: "{{ .name }} 失败 {{ .err }}"
Start: "开始"
SubTask: "子任务"
Skip: "忽略错误并继续..."
Success: "成功"
# AI 网关智能路由任务
AIProxySmartRouteCreateTask: "创建 AI 网关智能路由样本"
AIProxySmartRouteCreateSubTask: "创建样本并生成向量"
AIProxySmartRouteCreateStart: "开始创建样本,共 {{ .total }} 条"
AIProxySmartRouteCreateFailed: "[{{ .current }}/{{ .total }}] 创建失败type={{ .type }} label={{ .label }} error={{ .err }}"
AIProxySmartRouteCreateSuccess: "[{{ .current }}/{{ .total }}] 创建成功sampleID={{ .id }} type={{ .type }} label={{ .label }}"
AIProxySmartRouteCreateComplete: "创建完成:成功 {{ .success }} 条,失败 {{ .failed }} 条"
AIProxySmartRouteCreateError: "创建样本失败:失败 {{ .failed }} 条,最后错误"
AIProxySmartRouteRebuildTask: "重建 AI 网关智能路由样本向量"
AIProxySmartRouteRebuildSubTask: "重建样本向量"
AIProxySmartRouteEmbeddingRequired: "Embedding 地址和模型不能为空"
AIProxySmartRouteRebuildStart: "开始重建样本向量,共 {{ .total }} 条"
AIProxySmartRouteRebuildFailed: "[{{ .current }}/{{ .total }}] 重建失败sampleID={{ .id }} type={{ .type }} label={{ .label }} error={{ .err }}"
AIProxySmartRouteRebuildSuccess: "[{{ .current }}/{{ .total }}] 重建成功sampleID={{ .id }} type={{ .type }} label={{ .label }}"
AIProxySmartRouteRebuildComplete: "重建完成:成功 {{ .success }} 条,失败 {{ .failed }} 条"
AIProxySmartRouteRebuildError: "重建样本向量失败:失败 {{ .failed }} 条,最后错误"
# 智能体批量任务
BatchInstallAgent: "批量安装智能体"
DispatchAgentInstallTasks: "下发智能体安装任务"
BatchUpgradeAgent: "批量升级智能体"
DispatchAgentUpgradeTasks: "下发智能体升级任务"
BatchAgentInstallDispatchFailed: "{{ .node }} 节点下发 {{ .agentType }} 安装任务失败 Message: {{ .err }}"
BatchAgentInstallSubmitted: "{{ .node }} 节点下发 {{ .agentType }} 安装任务成功!"
BatchAgentUpgradeDispatchFailed: "{{ .node }} 节点下发 {{ .agentType }} 升级任务失败 Message: {{ .err }}"
BatchAgentUpgradeAlreadyLatest: "{{ .node }} 节点 {{ .agent }} 已是目标版本,跳过"
BatchAgentUpgradeSubmitted: "{{ .node }} 节点下发 {{ .agent }} 升级任务成功!"
BatchAgentUpgradeFailed: "{{ .node }} 节点下发 {{ .agent }} 升级任务失败 Message: {{ .err }}"
BatchInstallAgentSkill: "批量下发 Skill"
DispatchAgentSkillInstallTasks: "下发 Skill 安装任务"
BatchAgentSkillDispatchFailed: "{{ .node }} 节点下发 {{ .skill }} 到 {{ .target }} 失败 Message: {{ .err }}"
BatchAgentNoAgentsFound: "{{ .node }} 节点未发现 {{ .agentType }} 智能体,跳过"
BatchAgentSkillSkipped: "{{ .node }} 节点 {{ .agent }} 跳过 Message: {{ .msg }}"
BatchAgentSkillInstallSubmitted: "{{ .node }} 节点下发 {{ .skill }} 到 {{ .agent }} 安装任务成功!"
BatchAgentSkillInstallFailed: "{{ .node }} 节点下发 {{ .skill }} 到 {{ .agent }} 安装任务失败 Message: {{ .err }}"
BatchAgentOperateDispatchFailed: "{{ .node }} 节点下发 {{ .agentType }} {{ .operate }}任务失败 Message: {{ .err }}"
BatchAgentOperateSkipped: "{{ .node }} 节点 {{ .agent }} 跳过 Message: {{ .msg }}"
BatchAgentOperateSubmitted: "{{ .node }} 节点下发 {{ .agent }} {{ .operate }}任务成功!"
BatchAgentOperateFailed: "{{ .node }} 节点下发 {{ .agent }} {{ .operate }}任务失败 Message: {{ .err }}"
BatchStartAgent: "批量启动智能体"
DispatchAgentStartTasks: "下发智能体启动任务"
BatchStopAgent: "批量停止智能体"
DispatchAgentStopTasks: "下发智能体停止任务"
BatchRestartAgent: "批量重启智能体"
DispatchAgentRestartTasks: "下发智能体重启任务"
BatchDeleteAgent: "批量删除智能体"
DispatchAgentDeleteTasks: "下发智能体删除任务"
AgentOperateStart: "启动"
AgentOperateStop: "停止"
AgentOperateRestart: "重启"
AgentOperateDelete: "删除"
# 应用与技能任务
PushAppInstallTaskToNode: "推送应用安装任务到节点 [{{ .name }}]"
AppInstallTask: "应用安装任务"
PushAppFailed: "推送应用安装任务失败"
SkillHubInstallTask: "安装技能 [{{ .name }}]"
SkillHubInstallToTarget: "安装技能 [{{ .name }}] 到目标 [{{ .target }}]"
# 脚本库
ScriptLibrary: "脚本库"
RemoteScriptLibrary: "远程脚本库"
ScriptSyncSkip: "检查到当前脚本库已是最新版本!"
DownloadData: "下载脚本库文件 data.yaml"
DownloadPackage: "下载脚本库压缩包"
AnalyticCompletion: "解析成功,现在开始同步到数据库..."
# 节点同步
SyncNode: "同步数据到节点 {{ .name }}"
LocalName: "local 名称仅用于系统本机标识"
SyncPackageData: "打包同步数据"
SyncPackageEncrypt: "数据包加密"
SyncRequest: "请求节点同步接口"
SyncFailedRetry: "第 {{ .index }} 次同步节点数据失败超时,正在重试..."
SyncFailed: "同步失败,请在节点列表中手动同步!"
SyncSystemProxy: "系统代理配置"
SyncScripts: "脚本库"
SyncBackupAccounts: "备份账号"
SyncAlertSetting: "告警设置"
SyncCustomApp: "自定义应用"
SyncLanguage: "系统语言"
SyncEdition: "运行区域"
# 节点升级
NodeUpgrade: "升级节点 {{ .name }}"
UpgradeCheck: "检查节点更新"
UpgradeCheckLocal: "本地节点不支持批量升级,跳过..."
UpgradeCheckLatest: "检测到该节点已是最新版本,跳过..."
NewSSHClient: "初始化 SSH 连接"
BackupBeforeUpgrade: "升级前备份数据"
UploadUpgradeFile: "下发升级所需文件"
RestartAfterUpgrade: "升级后启动服务"
LoadAutoUpgradeNodesFailed: "加载自动升级节点失败,错误: {{ .err }}"
AutoUpgradeNodes: "自动升级节点: {{ .nodes }}"
UpdateAutoUpgradeNodesStatusFailed: "更新自动升级节点状态失败,错误: {{ .err }}"
# 添加节点
MasterData: "主节点数据"
LoadSftpClient: "获取上传客户端"
PackageMasterData: "生成主节点备份压缩包"
UploadBackup: "上传备份数据"
TaskAddNode: "添加节点"
LoadNodeArch: "获取节点架构信息"
LoadNodeArchDetail: "检测到主节点架构: {{ .local }},子节点架构: {{ .node }}"
LoadNodeUpgradeDetail: "使用 v1 版本历史安装目录: {{ .baseDir }},服务监听端口: {{ .port }}"
SyncAgentBaseInfo: "同步节点基础数据"
GenerateSSLInfo: "生成节点 SSL 信息"
ConnInfoNotMatch: "连接信息不匹配"
MakeAgentPackage: "生成节点安装包"
SendAgent: "下发节点安装包"
StartService: "启动服务"
NoBackupNode: "当前备份节点为空,请选择备份节点保存后重试!"
# 节点文件与镜像同步
LocalNodeIpFailed: "无法获取主节点 IP ,请编辑主节点增加 IP 地址和 SSH 认证信息"
HandlePrivateKey: "处理节点私钥"
HandlePublicKey: "处理节点公钥"
ExchangeFile: "开始从 {{ .source }} 节点同步 {{ .sourcePath }} 到 {{ .dest }} 节点 {{ .destPath }}"
NodeFile: "节点文件"
ImageSyncTaskName: "镜像同步 {{ .count }} 张镜像"
SSLSyncTaskName: "证书同步 {{ .count }} 张证书"
AppSyncTaskName: "应用同步 {{ .name }}"
SSLSyncToNode: "推送证书 [{{ .cert }}] 到节点 [{{ .node }}]"
ImageSyncSave: "保存镜像 {{ .image }}"
ImageSyncSaveTags: "保存镜像标签 {{ .tags }}"
ImageSyncToNode: "同步镜像 {{ .image }} 到节点 {{ .node }}"
ImageSyncLoad: "在节点 {{ .node }} 加载镜像 {{ .image }}"
ImageSyncClean: "清理镜像 {{ .image }} 临时文件"
ImageSyncNoTag: "镜像 {{ .image }} 没有标签,将使用镜像 ID 保存"
ImageSyncFrontendTagsIgnored: "镜像 {{ .image }} 在源节点未查询到标签,已忽略前端传入标签"
ImageSyncHandlePrivateKey: "处理镜像同步节点私钥"
ImageSyncHandlePublicKey: "处理镜像同步节点公钥"
ImageSyncTransfer: "开始传输镜像临时文件:{{ .source }}:{{ .sourcePath }} -> {{ .dest }}:{{ .destPath }}"
# 命令行
SudoHelper: "请使用 {{ .cmd }} 或切换到 root 用户"
UsernameNeed: "企业版必须指定 --username"
DBConnErr: "错误: 初始化数据库连接失败,{{ .err }}"
SystemVersion: "版本: "
SystemMode: "模式: "
# 命令行 - 应用
AppVersion: "应用版本"
AppCommands: "应用相关命令"
AppInit: "初始化应用"
AppKeyVal: "应用的 key仅支持英文"
AppCreateFileErr: "文件 {{ .name }} 创建失败 {{ .err }}"
AppCreateDirErr: "文件夹 {{ .name }} 创建失败 {{ .err }}"
AppMissKey: "应用的 key 缺失,使用 -k 指定"
AppMissVersion: "应用版本缺失,使用 -v 指定"
AppVersionExist: "版本已存在!"
AppCreateSuccessful: "创建成功!"
AppWriteErr: "文件 {{ .name }} 写入失败 {{ .err }}"
# 命令行 - 监听 IP
ListenIPCommands: "切换监听 IP"
ListenIPv4: "监听 IPv4"
ListenIPv6: "监听 IPv6"
ListenChangeSuccessful: "切换成功!已切换至监听 {{ .value }}"
# 命令行 - 重置
ResetCommands: "重置系统信息"
ResetMFA: "取消 1Panel 两步验证"
ResetHttps: "取消 1Panel https 方式登录"
ResetEntrance: "取消 1Panel 安全入口"
ResetIPs: "取消 1Panel 授权 IP 限制"
ResetDomain: "取消 1Panel 访问域名绑定"
ResetPasskey: "清空 1Panel 通行密钥"
# 命令行 - 用户
UserList: "获取 1Panel 用户列表"
UserTableName: "名称"
UserTableMFAStatus: "MFA 状态"
UserTableSuperAdmin: "超级管理员"
UserTableCreatedAt: "创建时间"
UserEmptyList: "暂无用户"
UserInfo: "获取面板信息"
UserInfoAddr: "面板地址: "
UserInfoPassHelp: "提示: 修改密码可执行命令: "
# 命令行 - 回滚
RestoreCommands: "回滚 1Panel 服务及数据"
RestoreNoSuchFile: "暂无可回滚文件"
RestoreStep1: "1/5开始从 {{ .name }} 目录回滚 1Panel 服务及数据... "
RestoreStep2: "2/51Panel 二进制回滚成功"
RestoreStep3: "3/51Panel 脚本回滚成功"
RestoreStep4: "4/51Panel 服务回滚成功"
RestoreStep5: "5/51Panel 数据回滚成功"
RestoreSuccessful: "回滚成功!已回滚到 {{ .version }},正在重启服务,请稍候..."
# 命令行 - 修改
UpdateCommands: "修改面板信息"
UpdateUser: "修改用户信息"
UpdatePassword: "修改用户密码"
UpdatePort: "修改面板端口"
UpdateUserNull: "错误: 输入用户为空!"
UpdateUserBlank: "错误: 输入用户中包含空格字符!"
UpdateUserFormat: "错误: 输入用户错误仅支持英文、中文、数字和_长度3-30"
UpdateUserErr: "错误: 用户修改失败,{{ .err }}"
UpdateSuccessful: "修改成功!"
UpdateUserResult: "用户: {{ .name }}"
UpdatePasswordRead: "错误: 用户密码信息读取错误,{{ .err }}"
UpdatePasswordNull: "错误: 输入用户密码为空!"
UpdateUPasswordBlank: "错误: 输入用户密码中包含空格字符!"
UpdatePasswordFormat: "错误: 用户密码仅支持字母、数字、特殊字符(!@#$%*_,.?),长度 8-30 位!"
UpdatePasswordLen: "错误: 请输入 6 位以上密码!"
UpdatePasswordRe: "确认密码: "
UpdatePasswordErr: "错误: 用户密码修改失败,{{ .err }}"
UpdatePasswordSame: "错误: 两次密码不匹配,请检查后重试!"
UpdatePasswordResult: "用户密码: {{ .name }}"
UpdatePortFormat: "错误: 输入的端口号必须在 1 到 65535 之间!"
UpdatePortUsed: "错误: 该端口号正被占用,请检查后重试!"
UpdatePortErr: "错误: 面板端口修改失败,{{ .err }}"
UpdatePortResult: "面板端口: {{ .name }}"
UpdatePortFirewallAdd: "添加防火墙端口规则失败,{{ .err }},请您手动将 {{ .name }} 端口添加至防火墙规则中。"
UpdatePortFirewallDel: "错误: 防火墙端口删除失败,{{ .err }}"
UpdatePortFirewallReload: "防火墙重载失败,{{ .err }},请您手动重载防火墙。"
# 移动端
ErrVerifyToken: '令牌验证错误,请重置后再次扫码'
ErrInvalidToken: '无效的令牌,请重置后再次扫码'
ErrExpiredToken: '二维码已失效,请重新生成后再次扫码'
# 命令导出
Name: "名称"
Command: "命令"
# LDAP
ErrLDAPConnectionTest: "LDAP 连接测试失败,请检查服务地址、绑定账号和网络设置。"
ErrLDAPLoginTest: "LDAP 登录测试失败,请检查用户名和密码。"
LDAPConnectionTestSuccess: "LDAP 连接测试成功。"
ErrLDAPDirectorySearch: "读取 LDAP 用户失败,请检查连接和搜索设置。"
ErrLDAPConfigLoad: "加载 LDAP 配置失败。"
ErrLDAPConfigSave: "保存 LDAP 配置失败。"
ErrLDAPURLInvalid: "LDAP 服务地址必须使用 ldap:// 或 ldaps://,并包含有效的主机地址。"
ErrLDAPBindDNRequired: "请输入绑定 DN。"
ErrLDAPBindPasswordRequired: "请输入绑定密码。"
ErrLDAPUserOURequired: "请输入用户 OU。"
ErrLDAPConnectTimeoutRange: "连接超时时间必须在 1 到 120 秒之间。"
ErrLDAPSearchPageSizeRange: "LDAP 查询分页大小必须在 1 到 10000 之间。"
ErrLDAPResultPageSizeRange: "结果分页大小不能超过 200。"
ErrLDAPAttributeMapOnlyName: "属性映射仅支持 name 字段。"
ErrLDAPNameAttributeRequired: "请输入映射到 name 的 LDAP 属性。"
ErrLDAPAttributeNameInvalid: "属性映射中包含无效的 LDAP 属性名。"
ErrLDAPUserFilterRequired: "请输入用户过滤器。"
ErrLDAPUserFilterInvalid: "用户过滤器不是有效的 LDAP 过滤器。"
ErrLDAPAttributeMapObject: "属性映射必须是有效的 JSON 对象。"
ErrLDAPImportModeInvalid: "导入模式必须为导入选中用户或导入全部用户。"
ErrLDAPImportSelectionRequired: "请至少选择一个要导入的 LDAP 用户。"
ErrLDAPImportSelectionInvalid: "选中的 LDAP 用户无效或已不存在,请重新读取目录。"
ErrLDAPConfigChanged: "LDAP 配置已变更,请重新读取目录并预览导入。"
ErrLDAPRoleRequired: "请选择新 LDAP 用户的角色。"
ErrLDAPImportPlanIncomplete: "不能执行不完整的 LDAP 导入计划。"
ErrLDAPQueryTokenInvalid: "LDAP 查询结果已过期,请重新读取目录。"
ErrLDAPPlanTokenInvalid: "LDAP 导入预览已过期,请重新预览。"
ErrLDAPOperationFailed: "LDAP 操作失败,请重试。"
ErrLDAPEntryIdentityMissing: "LDAP 条目缺少稳定 ID 或用户名。"
ErrLDAPDuplicateExternalID: "LDAP 返回了重复的用户 ID。"
ErrLDAPUsernameConflict: "该用户名已被其他用户使用。"
ErrLDAPUsernameSourceConflict: "该用户名已被本地用户或其他认证源使用。"
ErrLDAPUsernameConcurrentConflict: "导入期间该用户名已被其他用户占用。"
ErrLDAPLocalCredentialsReadonly: "LDAP 用户名和密码由 LDAP 管理,不能在本地修改。"
ErrLDAPPasswordExpirationUnsupported: "LDAP 用户不使用本地密码过期策略。"
ErrLDAPSyncSourceDisabled: "请先启用 AD/LDAP再开启或执行同步。"
ErrLDAPSyncConfigSave: "保存 LDAP 同步设置失败。"
ErrLDAPSyncSchedule: "更新 LDAP 同步计划失败。"
ErrLDAPSyncCronInvalid: "请输入有效的五段式 Cron 表达式。"
ErrLDAPSyncWeekdayInvalid: "请选择有效的星期。"
ErrLDAPSyncCronRequired: "请输入 Cron 表达式。"
ErrLDAPSyncScheduleTypeInvalid: "请选择有效的同步执行周期。"
ErrLDAPSyncTimeInvalid: "请输入有效的执行时间。"
ErrLDAPSyncRunning: "已有 LDAP 同步任务正在执行。"
ErrLDAPSyncDirectoryIncomplete: "LDAP 全量查询结果不完整,本次未改变任何用户状态。"
ErrLDAPSyncFailed: "LDAP 用户同步失败。"
LDAPSyncSuccess: "LDAP 用户同步成功。"
ErrSAML2NotEnabled: "SAML2 认证尚未启用"
ErrSAML2ConfigInvalid: "SAML2 配置无效"
ErrSAML2ConfigChanged: "SAML2 配置已变更,请重新发起认证"
ErrSAML2PanelOriginMissing: "请输入有效的面板对外访问地址,仅包含协议、主机和可选端口"
ErrSAML2MetadataInvalid: "IdP Metadata 缺失或无效"
ErrSAML2MetadataURLInvalid: "IdP Metadata URL 或 Metadata 中的端点地址不符合安全策略"
ErrSAML2MetadataFetch: "获取 IdP Metadata 失败"
ErrSAML2MetadataCertificate: "IdP Metadata 中没有可用的签名证书"
ErrSAML2KeyPairInvalid: "SP 私钥和证书无效或不匹配"
ErrSAML2NameAttributeMissing: "配置的 SAML2 用户名属性缺失或无效"
ErrSAML2DefaultRoleInvalid: "SAML2 配置的默认角色不可用"
ErrSAML2SLOUnavailable: "IdP 未提供支持的单点注销服务"
ErrSAML2TestExpired: "SAML2 测试已过期,请重新测试"
ErrSAML2LoginExpired: "SAML2 登录请求已过期,请重试"
ErrSAML2InvalidState: "SAML2 登录状态无效或已被使用"
ErrSAML2RequestBuild: "生成 SAML2 请求失败"
ErrSAML2ResponseInvalid: "SAML2 响应无效"
ErrSAML2SignatureInvalid: "SAML2 签名校验失败"
ErrSAML2Replay: "SAML2 消息已被使用"
ErrSAML2NameIDMissing: "SAML2 NameID 缺失或无效"
ErrSAML2SessionIndexMissing: "SAML2 SessionIndex 缺失或无效"
ErrSAML2NameConflictLocal: "SAML2 用户名与本地用户冲突"
ErrSAML2NameConflictLDAP: "SAML2 用户名与 LDAP 用户冲突"
ErrSAML2NameConflictOIDC: "SAML2 用户名与 OIDC 用户冲突"
ErrSAML2NameConflictSAML2: "SAML2 用户名与其他 SAML2 身份冲突"
ErrSAML2Internal: "SAML2 认证发生内部错误,请稍后重试"
ErrSAML2LogoutExpired: "SAML2 注销请求已过期"
ErrSAML2LogoutInvalid: "SAML2 注销消息无效"
ErrSAML2LocalCredentialsReadonly: "SAML2 用户名和密码由身份提供商管理,无法在本地修改。"
ErrSAML2PasswordExpirationUnsupported: "SAML2 用户不使用本地密码过期策略。"