Files
1Panel/agent/i18n/lang/zh.yaml

686 lines
33 KiB
YAML
Raw Permalink 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 }}"
ErrMcpGatewayArgsParse: "MCP 自定义参数格式错误"
ErrMcpGatewayArgsConflict: "参数 {{ .name }} 由 1Panel 管理,不能在自定义参数中设置"
ErrTokenParse: "Token 错误: {{ .detail }}"
ErrInitialPassword: "原密码错误"
ErrInternalServer: "服务错误: {{ .detail }}"
ErrRecordExist: "记录已存在"
ErrRecordNotFound: "记录不存在"
WafLogExport: "WAF 日志导出"
MonitorLogExport: "网站监控日志导出"
LogExportNoData: "没有符合条件的日志"
LogExportDiskSpace: "可用磁盘空间不足 1 GiB导出任务已停止"
LogExportRetentionInvalid: "导出记录保留天数必须在 1 到 30 天之间"
ErrSystemLogKeywordFilterUnsupported: "当前系统版本不支持系统日志关键词过滤(需要 systemd 237 或更高版本)"
ErrStructTransform: "类型转换失败: {{ .err }}"
ErrNotSupportType: "不支持当前类型: {{ .name }}"
# 文件 AI
ErrFileAINotEnabled: "生成 AI 总结需在文件管理中启用并保存文件 AI 账号。关闭 AI 时仍可使用纯内容检索。"
ErrFileAISearchBadPattern: "搜索条件无效(正则或全词匹配): {{ .detail }}"
FileAISearchEmptyDir: "当前目录下没有可列出的文件或文件夹(或均被过滤)。"
# 远程下载
ErrWgetRemoteFailed: "远程下载地址无效或无法访问:{{ .detail }}"
ErrWgetInvalidContentType: "远程地址返回的不是文件内容(可能是错误页),{{ .detail }}"
ErrWgetProxyNotConfigured: "请先在面板设置中配置代理服务器"
ErrWgetProxyInvalid: "代理服务器地址无效:{{ .detail }}"
# 登录与安全
ErrNotLogin: "用户未登录: {{ .detail }}"
ErrPasswordExpired: "当前密码已过期: {{ .detail }}"
# 请求与 API
ErrProxy: "请求失败,请检查节点状态: {{ .detail }}"
ErrApiConfigStatusInvalid: "API 禁止访问: {{ .detail }}"
ErrApiConfigKeyInvalid: "API 接口密钥错误: {{ .detail }}"
ErrApiConfigIPInvalid: "调用 API 接口 IP 不在白名单: {{ .detail }}"
ErrApiConfigDisable: "此接口禁止 API 调用: {{ .detail }}"
ErrApiConfigKeyTimeInvalid: "API 时间戳错误: {{ .detail }}"
ErrCreateHttpClient: "创建请求失败 {{ .err }}"
ErrHttpReqTimeOut: "请求超时 {{ .err }}"
ErrHttpReqFailed: "请求失败 {{ .err }}"
ErrNoSuchHost: "无法找到请求的服务器 {{ .err }}"
ErrHttpReqNotFound: "无法找到请求的资源 {{ .err }}"
# 快速跳转
ErrMinQuickJump: "至少设置 1 个快速跳转入口"
ErrMaxQuickJump: "最多设置 4 个快速跳转入口"
# 通用
ErrShutDown: "命令已手动终止"
ErrUsernameIsExist: "用户名已存在"
ErrNameIsExist: "名称已存在"
ErrDemoEnvironment: "演示环境,禁止操作"
ErrCmdTimeout: "命令超时"
ErrCmdIllegal: "命令含非法字符,请修改后重试"
ErrPortExist: '{{ .port }} 端口已被 {{ .type }} [{{ .name }}] 占用'
TYPE_APP: "应用"
TYPE_RUNTIME: "运行环境"
TYPE_DOMAIN: "域名"
ErrTypePort: '端口 {{ .name }} 格式错误'
ErrTypePortRange: '端口范围需要在 1-65535 之间'
Success: "成功"
Failed: "失败"
SystemRestart: "系统重启,任务中断"
ErrGroupIsDefault: "默认分组不可删除"
ErrGroupIsInWebsiteUse: "分组正在被其他网站使用,无法删除"
Decrypt: "解密"
# 智能体
ErrAgentAccountBound: "该账号已绑定智能体,无法删除"
ErrTerminalAIAccountInUse: "该模型账号正被终端 AI 使用,请在终端 AI 设置中更换账号或关闭终端 AI 后重试"
ErrFileAIAccountInUse: "该模型账号正被文件管理 AI 使用,请在文件管理 AI 设置中更换账号或关闭文件管理 AI 后重试"
ErrAgentAccountUnavailable: "账号连接信息不可用: {{ .err }}"
ErrAgentProviderNotSupported: "不支持该智能体提供商"
ErrAgentAccountRequired: "请选择智能体账号后重试"
ErrAgentAccountNotVerified: "账号未通过验证"
ErrAgentAccountModelsRequired: "请至少配置一个模型"
ErrAgentAccountSingleInitialModel: "创建账号时只能配置一个初始模型"
ErrAgentModelNotInAccount: "所选模型未配置在当前账号中"
ErrAgentVerifyModelInUse: "该模型正用于验证账号,请先选择其他验证模型后再删除"
ErrAgentFallbackModelDuplicate: "备用模型不能重复"
ErrAgentFallbackModelPrimary: "备用模型不能与主模型相同"
ErrAgentModelInUse: "仍有智能体正在使用该模型: {{ .name }}"
ErrAgentBaseURLRequired: "Base URL 不能为空"
ErrAgentApiKeyRequired: "API Key 不能为空"
ErrAgentComposeRequired: "自定义编排内容不能为空"
ErrAgentIDRequired: "智能体 ID 不能为空"
ErrAgentAccountIDRequired: "账号 ID 不能为空"
ErrAgentLimitReached: "社区版最多支持创建 {{ .max }} 个智能体,升级至商业版无数量限制"
ErrAgentWebsiteBound: "该智能体已关联网站"
ErrAgentWebsiteTypeUnsupported: "只能关联反向代理或静态网站"
ErrAgentWebsiteInUse: "该网站已被其他智能体关联"
ErrAgentWebsiteUnbindUnsupported: "一键部署网站不支持手动解绑"
ErrQwenPawAuthRequest: "QwenPaw 认证信息更新失败: {{ .err }}"
ErrQwenPawAuthOutOfSync: "QwenPaw 当前凭据与 1Panel 记录不一致,请先重置 QwenPaw 密码或恢复应用 .env 中的凭据"
ErrQwenPawAuthDisabled: "QwenPaw 尚未启用登录认证"
ErrHermesPairingCodeUnavailable: "配对码在 hermes 中暂时不存在,可能是由于网络原因,请稍后尝试"
ErrHermesFeishuGroupAllowlistRequiresAllowlist: "飞书群组策略为白名单时,私聊策略不能为配对码"
# 备份与告警配置
Localhost: '本机'
ErrBackupInUsed: "该备份账号已在计划任务中使用,无法删除"
ErrBackupCheck: "备份账号测试连接失败 {{ .err }}"
ErrBackupLocalDelete: "暂不支持删除本地服务器备份账号"
ErrBackupLocalCreate: "暂不支持创建本地服务器备份账号"
ErrAlertConfigInUse: "告警配置正在使用中,无法删除"
ErrAlertConfigPhoneExist: "手机号已存在"
# 应用
ErrPortInUsed: "{{ .detail }} 端口已被占用!"
ErrAppLimit: "应用安装数量超限"
ErrNotInstall: "应用未安装"
ErrPortInOtherApp: "{{ .port }} 端口已被应用 {{ .apps }} 占用!"
ErrDbUserNotValid: "存量数据库用户名或密码不匹配"
ErrMysqlUserUsedByApps: "该数据库用户已被【{{ .detail }}】应用使用,无法修改 Host、删除或者撤销授权"
ErrUpdateBuWebsite: '应用更新成功,但网站配置文件修改失败,请检查配置'
Err1PanelNetworkFailed: '默认容器网络创建失败!{{ .detail }}'
ErrFileParse: '应用 docker-compose 解析失败'
ErrInstallDirNotFound: '安装目录不存在,如需卸载请选强制卸载'
AppStoreIsUpToDate: '应用商店已是最新版本'
LocalAppVersionNull: '{{ .name }} 应用未同步到版本!无法添加到应用列表'
LocalAppVersionErr: '{{ .name }} 同步版本 {{ .version }} 失败!{{ .err }}'
ErrFileNotFound: '{{ .name }} 文件不存在'
ErrFileParseApp: '{{ .name }} 文件解析失败 {{ .err }}'
ErrAppDirNull: '版本文件夹不存在'
LocalAppErr: "应用 {{ .name }} 同步失败!{{ .err }}"
ErrContainerName: "容器名称已存在"
ErrContainerNotFound: '{{ .name }} 容器不存在'
ErrContainerMsg: '{{ .name }} 容器异常,具体请在容器页面查看日志'
ErrAppBackup: '{{ .name }} 应用备份失败 {{ .err }}'
ErrVersionTooLow: '当前 1Panel 版本过低,无法更新应用商店,请升级版本之后操作'
ErrAppNameExist: '应用名称已存在'
ErrAppInstallNameExist: '应用安装名称 {{ .name }} 已存在'
AppStoreIsSyncing: '应用商店同步中,请稍后重试'
ErrGetCompose: "docker-compose.yml 文件获取失败!{{ .detail }}"
ErrComposeProjectNameParse: "解析 Docker Compose 配置输出中的项目名称失败:{{ .detail }}"
ErrComposeProjectNameEmpty: "无法从 Docker Compose 配置或文件父目录中推导出项目名称,请填写名称后重试"
ErrComposeNameInvalid: "Compose 项目名称格式错误:必须以小写字母或数字开头,仅支持小写字母、数字、- 和 _长度为 1-256 个字符"
ErrAppVersionUnavailable: "当前应用版本已从远程服务下架,请选择其他版本后重试"
ErrAppWarn: "状态异常,请查看日志"
ErrAppParamKey: "参数 {{ .name }} 字段异常"
ErrAppUpgrade: "应用 {{ .name }} 升级失败 {{ .err }}"
AppRecover: "应用 {{ .name }} 回滚"
PullImageStart: "开始拉取镜像 [{{ .name }}]"
PullImageSuccess: "镜像拉取成功"
AppStoreSyncSuccess: "应用商店同步成功"
SyncAppDetail: "同步应用配置"
AppVersionNotMatch: "{{ .name }} 应用需要更高的 1Panel 版本,跳过"
MoveSiteDir: "检测到网站目录变更,需迁移 OpenResty 网站目录到 {{ .name }}"
MoveSiteDirSuccess: "迁移网站目录成功"
DeleteRuntimePHP: "删除 PHP 运行环境"
CustomAppStoreFileValid: "应用商店包需要 .tar.gz 格式"
PullImageTimeout: "拉取镜像超时,请调整镜像加速配置"
ErrAppIsDown: "{{ .name }} 应用状态异常,请检查"
ErrCustomApps: "存在已安装应用,请先卸载"
ErrCustomRuntimes: "存在已安装运行环境,请先删除"
ErrAppVersionDeprecated: "{{ .name }} 应用不适配当前 1Panel 版本,跳过"
ErrDockerFailed: "Docker 状态异常,请检查服务状态"
ErrDockerComposeCmdNotFound: "Docker Compose 命令不存在,请先在宿主机安装"
UseExistImage: "镜像已存在,使用存量镜像"
UpgradePrepare: "准备应用升级"
UpgradeStop: "停止原应用"
UpgradeWaitReady: "等待应用就绪"
UpgradeBackupDisabled: "未启用升级备份,升级脚本产生的数据变更无法完整回滚"
UpgradeRollbackFailed: "回滚失败"
ErrDatabaseNotFound: "数据库 {{ .name }} 不存在"
# SSH
ExportIP: "登录 IP"
ExportArea: "归属地"
ExportPort: "端口"
ExportAuthMode: "登录方式"
ExportUser: "用户"
ExportStatus: "登录状态"
ExportDate: "时间"
# 文件
ErrFileCanNotRead: "此文件不支持预览"
ErrSensitiveFileRead: "不允许读取敏感文件"
ErrFileToLarge: "文件超过 10M无法打开"
ErrPathNotFound: "目录不存在"
ErrMovePathFailed: "目标路径不能包含原路径!"
ErrLinkPathNotFound: "目标路径不存在!"
ErrFileIsExist: "文件或文件夹已存在!"
ErrFileUpload: "{{ .name }} 上传文件失败 {{ .detail }}"
ErrFileDownloadDir: "不支持下载目录"
ErrFileSharePath: "无效的分享路径或目标不是文件"
ErrFileShareInvalid: "分享链接无效或已失效"
ErrFileShareExpired: "分享链接已过期"
ErrFileSharePassword: "访问密码错误"
ErrFileShareExhausted: "该分享链接的下载次数已用尽"
ErrFileSharePasswordPolicy: "访问密码至少 4 位"
ErrFileShareRateLimit: "访问过于频繁,请稍后再试"
ErrCmdNotFound: "{{ .name }} 命令不存在,请先在宿主机安装此命令"
ErrSourcePathNotFound: "源目录不存在"
ErrFavoriteExist: "已收藏此路径"
ErrInvalidChar: "禁止使用非法字符"
ErrPathNotDelete: "所选目录不可删除"
ErrLogFileToLarge: "日志文件超过 500M无法打开"
FileDropFailed: "清理文件 {{ .name }} 失败 {{ .err }}"
FileDropSuccess: "清理 {{ .name }} 成功,文件 {{ .count }},释放 {{ .size }}"
FileDropSum: "文件清理完成,共 {{ .count }},释放 {{ .size }}"
ErrBadDecrypt: "压缩包密码错误,解压失败,请检查后重试"
# 网站
ErrAliasIsExist: "标识已存在"
ErrBackupMatch: '该备份文件与当前网站部分数据不匹配 {{ .detail }}'
ErrBackupExist: '该备份文件对应部分源数据不存在 {{ .detail }}'
ErrPHPResource: '本地运行环境不支持切换!'
ErrPathPermission: 'index 目录存在非 1000:1000 权限目录,可能导致 Access denied请点击上方保存'
ErrDomainIsUsed: "域名已被网站【{{ .name }}】使用"
ErrDomainFormat: "{{ .name }} 域名格式不正确"
ErrDefaultAlias: "default 为保留代号,请使用其他代号"
ErrParentWebsite: "需要先删除子网站 {{ .name }}"
ErrBuildDirNotFound: "构建目录不存在"
ErrImageNotExist: "运行环境 {{ .name }} 镜像不存在,请重新编辑运行环境"
ErrProxyIsUsed: "负载均衡已被反向代理使用,无法删除"
ErrSSLValid: '证书文件异常,请检查证书状态!'
ErrWebsiteDir: '请选择网站目录下的目录'
ErrComposerFileNotFound: 'composer.json 文件不存在'
ErrRuntimeNoPort: '运行环境未设置端口,请先编辑运行环境'
ErrRuntimeProjectDirContainsCodeDir: '运行环境目录包含所选项目目录,请先更换项目目录后再重新创建'
Status: '状态'
start: '开启'
stop: '关闭'
restart: '重启'
kill: '强制停止'
pause: '暂停'
unpause: '恢复'
remove: '删除'
delete: '删除'
ErrDefaultWebsite: "已设置默认网站,请先取消再设置"
SSL: '证书'
Set: '设置'
# SSL 证书
ErrSSLCannotDelete: "{{ .name }} 证书正在被网站使用,无法删除"
ErrAccountCannotDelete: "账号关联证书,无法删除"
ErrSSLApply: "证书续签成功,但 OpenResty reload 失败,请检查配置"
ErrEmailIsExist: '邮箱已存在'
ErrSSLKeyNotFound: '私钥文件不存在'
ErrSSLCertificateNotFound: '证书文件不存在'
ErrSSLKeyFormat: '私钥文件校验失败'
ErrSSLCertificateFormat: '证书文件格式错误,请使用 pem 格式'
ErrEabKidOrEabHmacKeyCannotBlank: 'EabKid 或 EabHmacKey 不能为空'
ErrOpenrestyNotFound: 'Http 模式需要首先安装 Openresty'
ApplySSLStart: '开始申请证书,域名 [{{ .domain }}],方式 [{{ .type }}]'
dnsAccount: "DNS 自动"
dnsManual: "DNS 手动"
http: "HTTP"
ApplySSLFailed: '申请 [{{ .domain }}] 证书失败,{{ .detail }}'
ApplySSLSuccess: '申请 [{{ .domain }}] 证书成功'
DNSAccountName: 'DNS 账号 [{{ .name }}] 厂商 [{{ .type }}]'
PushDirLog: '证书推送到目录 [{{ .path }}] {{ .status }}'
ErrDeleteCAWithSSL: "当前机构下存在已签发证书,无法删除"
ErrDeleteWithPanelSSL: "面板 SSL 配置使用此证书,无法删除"
ErrDefaultCA: "默认机构不能删除"
ApplyWebSiteSSLLog: "开始更新网站证书 {{ .name }}"
ErrUpdateWebsiteSSL: "{{ .name }} 网站更新证书失败: {{ .err }}"
ApplyWebSiteSSLSuccess: "更新网站证书成功"
ErrExecShell: "执行脚本失败 {{ .err }}"
ExecShellStart: "开始执行脚本"
ExecShellSuccess: "脚本执行成功"
StartUpdateSystemSSL: "开始更新系统证书"
UpdateSystemSSLSuccess: "更新系统证书成功"
ErrWildcardDomain: "HTTP 模式无法申请泛域名证书"
ErrApplySSLCanNotDelete: "正在申请的证书{{ .name }}无法删除,请稍后重试"
StartPushSSLToNode: "开始推送证书到节点"
PushSSLToNodeFailed: "推送证书到节点失败: {{ .err }}"
PushSSLToNodeSuccess: "推送证书到节点成功"
# MySQL
ErrUserIsExist: "用户已存在,请重新输入"
ErrDatabaseIsExist: "数据库已存在,请重新输入"
ErrExecTimeOut: "SQL 执行超时,请检查数据库"
ErrRemoteExist: "远程数据库已存在该名称,请修改后重试"
ErrLocalExist: "本地数据库已存在该名称,请修改后重试"
RemoteBackup: "备份远程数据库前需先用镜像 {{ .name }} 启动本地容器数据库服务,请稍候"
RemoteRecover: "恢复远程数据库前需先用镜像 {{ .name }} 启动本地容器数据库服务,请稍候"
Arg: "参数"
# Redis
ErrTypeOfRedis: "恢复文件类型与当前持久化方式不符,请修改后重试"
# 容器
ErrInUsed: "{{ .detail }} 正被使用,无法删除!"
ErrObjectInUsed: "该对象正被使用,无法删除!"
ErrObjectBeDependent: "该镜像正被其他镜像所依赖,无法删除!"
ErrPortRules: "端口数目不匹配,请重新输入!"
ErrPgImagePull: "镜像拉取超时,请配置镜像加速或手动拉取 {{ .name }} 后重试"
PruneHelper: "本次清理 {{ .name }} 释放磁盘空间 {{ .size }}"
ImageRemoveHelper: "删除镜像 {{ .name }} ,释放磁盘空间 {{ .size }}"
BuildCache: "构建缓存"
Volume: "存储卷"
Network: "网络"
PruneStart: "清理中,请稍候..."
ContainerBackupPrepare: "准备容器备份工作目录"
ContainerBackupStop: "备份前停止容器"
ContainerBackupInspect: "备份容器 Inspect 与网络信息"
ContainerBackupMounts: "备份容器挂载数据"
ContainerBackupMeta: "写入容器备份元信息"
ContainerBackupStart: "备份后启动容器"
ContainerRecoverPrepare: "准备容器恢复工作目录"
ContainerRecoverExtract: "解压容器备份文件"
ContainerRecoverParse: "加载容器备份元信息"
ContainerRecoverCreate: "重建容器"
ContainerRecoverMounts: "恢复容器挂载数据"
ContainerRecoverStart: "启动已恢复容器"
ContainerRecoverCleanup: "清理容器恢复工作目录"
ComposeBackupPrepare: "准备编排备份工作目录"
ComposeBackupStop: "备份前停止编排"
ComposeBackupFiles: "备份编排文件"
ComposeBackupContainers: "备份编排容器"
ComposeBackupMeta: "写入编排备份元信息"
ComposeBackupStart: "备份后启动编排"
ComposeBackupCleanup: "清理编排备份工作目录"
ComposeRecoverPrepare: "准备编排恢复工作目录"
ComposeRecoverExtract: "解压编排备份文件"
ComposeRecoverMeta: "加载编排备份元信息"
ComposeRecoverMetaLogName: "编排恢复元信息:名称={{ .name }}"
ComposeRecoverMetaLogPath: "编排恢复元信息:备份路径={{ .backupPath }} 目标路径={{ .targetDir }}"
ComposeRecoverMetaLogCount: "编排恢复元信息:文件数={{ .files }} 容器数={{ .containers }}"
ComposeRecoverFiles: "恢复编排文件"
ComposeRecoverContainers: "恢复编排容器"
ComposeRecoverRecord: "保存编排记录"
ComposeRecoverCleanup: "清理编排恢复工作目录"
# 运行环境
ErrFileNotExist: "{{ .detail }} 文件不存在!请检查源文件完整性!"
ErrImageBuildErr: "镜像 build 失败"
ErrImageExist: "镜像已存在!请修改镜像名称"
ErrDelWithWebsite: "运行环境已经关联网站,无法删除"
ErrRuntimeStart: "启动失败"
ErrPackageJsonNotFound: "package.json 文件不存在"
ErrScriptsNotFound: "没有在 package.json 中找到 scripts 配置项"
ErrContainerNameNotFound: "无法获取容器名称,请检查 .env 文件"
ErrNodeModulesNotFound: "node_modules 文件夹不存在!请编辑运行环境或等待运行环境启动成功"
ErrContainerNameIsNull: "容器名称不存在"
ErrPHPPortIsDefault: "9000 端口为默认端口,请修改后重试"
ErrPHPRuntimePortFailed: "{{ .name }} 端口已被当前运行环境使用,请修改后重试"
# 工具
ErrConfigNotFound: "配置文件不存在"
ErrConfigParse: "配置文件格式有误"
ErrConfigIsNull: "配置文件不允许为空"
ErrConfigDirNotFound: "运行目录不存在"
ErrConfigAlreadyExist: "已存在同名配置文件"
ErrUserFindErr: "用户 {{ .name }} 查找失败 {{ .err }}"
# 计划任务
CutWebsiteLogSuccess: "{{ .name }} 网站日志切割成功,备份路径 {{ .path }}"
HandleShell: "执行脚本 {{ .name }}"
HandleCurl: "访问 URL {{ .name }}"
HandleNtpSync: "系统时间同步"
HandleSystemClean: "系统缓存清理"
SystemLog: "系统日志"
CutWebsiteLog: "切割网站日志"
FileOrDir: "目录 / 文件"
UploadFile: "上传备份文件 {{ .file }} 到 {{ .backup }}"
Upload: "上传"
IgnoreBackupErr: "备份失败,错误:{{ .detail }},忽略本次错误..."
IgnoreUploadErr: "上传失败,错误:{{ .detail }},忽略本次错误..."
LoadBackupFailed: "获取备份账号连接失败,错误:{{ .detail }}"
InExecuting: "任务执行中,请勿重复执行"
NoSuchResource: "数据库未查询到备份内容,跳过"
CleanLog: "清理日志"
CleanLogByName: "清理 {{ .name }} 日志"
WafIpGroupNotFound: "WAF IP组未找到请先到【高级功能-WAF-黑白名单-IP组】添加远程下载方式的IP组"
# 工具箱
ErrNotExistUser: "当前用户不存在,请修改后重试!"
ErrBanAction: "设置失败,{{ .name }} 服务不可用,请检查后重试"
ErrClamdscanNotFound: "未检测到 clamdscan 命令,请按文档安装"
TaskSwapSet: "设置 Swap"
SetSwap: "设置 Swap {{ .path }} - {{ .size }}"
CreateSwap: "创建 Swap 文件"
FormatSwap: "格式化 Swap 文件"
EnableSwap: "启用 Swap"
# 防篡改
CleanTamperSetting: "清理历史防护设置"
SetTamperWithRules: "根据规则启动目录防护"
ProtectDir: "防护目录 {{ .name }}"
IgnoreFile: "保护文件 {{ .name }}"
TamperSetSuccessful: "防护设置完成,开始监听以下目录:"
# WAF
ErrScope: "不支持修改此配置"
ErrStateChange: "状态修改失败"
ErrRuleExist: "规则已存在"
ErrRuleNotExist: "规则不存在"
ErrParseIP: "IP 格式错误"
ErrDefaultIP: "default 为保留名称,请更换其他名称"
ErrGroupInUse: "IP 组被黑/白名单使用,无法删除"
ErrIPGroupAclUse: "IP 组被网站 {{ .name }} 自定义规则使用,无法删除"
ErrIPGroupOriginProtectionUse: "IP 组被网站 {{ .name }} 的 CDN 源站保护使用,无法删除"
ErrOriginProtectionIPGroupRequired: "开启源站保护时必须选择至少一个非空 IP 组"
ErrOriginProtectionIPGroupInvalid: "IP 组 {{ .name }} 不存在或为空"
ErrGroupExist: "IP 组名称已存在"
ErrIPRange: "IP 范围错误"
ErrIPExist: "IP 已存在"
urlDefense: 'URL 规则'
urlHelper: '禁止访问的 URL'
dirFilter: '目录过滤'
xss: 'XSS'
phpExec: 'PHP 脚本执行'
oneWordTrojan: '一句话木马'
appFilter: '应用危险目录过滤'
webShell: 'WebShell'
args: '参数规则'
protocolFilter: '协议过滤'
javaFilter: 'Java 危险文件过滤'
scannerFilter: '扫描器过滤'
escapeFilter: '转义过滤'
customRule: '自定义规则'
httpMethod: 'HTTP 方法过滤'
fileExt: '文件上传限制'
defaultIpBlack: '恶意 IP 组'
cookie: 'Cookie 规则'
urlBlack: 'URL 黑名单'
uaBlack: 'User-Agent 黑名单'
attackCount: '攻击频率限制'
fileExtCheck: '文件上传限制'
geoRestrict: '地区访问限制'
unknownWebsite: '未授权域名访问'
notFoundCount: '404 频率限制'
headerDefense: 'Header 规则'
defaultUaBlack: 'User-Agent 规则'
methodWhite: 'HTTP 规则'
captcha: '人机验证'
fiveSeconds: '5 秒验证'
vulnCheck: '补充规则'
acl: '自定义规则'
sql: 'SQL 注入'
cc: '访问频率限制'
defaultUrlBlack: 'URL 规则'
sqlInject: 'SQL 注入'
ErrDBNotExist: "数据库不存在"
allow: "允许"
deny: "禁止"
OpenrestyNotFound: "Openresty 未安装"
remoteIpIsNull: "IP 列表为空"
OpenrestyVersionErr: "OpenResty 版本过低,请升级到 1.27.1.2-2-2-focal"
ErrFileTooLarge: "文件超过 1MB无法上传"
# 任务
TaskStart: "{{ .name }} 任务开始 [START]"
TaskEnd: "{{ .name }} 任务结束 [COMPLETED]"
TaskFailed: "{{ .name }} 任务失败"
TaskTimeout: "{{ .name }} 超时"
TaskSuccess: "{{ .name }} 任务成功"
TaskRetry: "开始第 {{ .name }} 次重试"
SubTaskSuccess: "{{ .name }} 成功"
SubTaskFailed: "{{ .name }} 失败: {{ .err }}"
TaskInstall: "安装"
TaskUninstall: "卸载"
TaskCreate: "创建"
TaskDelete: "删除"
TaskUpgrade: "升级"
TaskUpdate: "更新"
AgentPluginInstall: "安装插件"
AgentPluginEnable: "启用插件"
AgentPluginDisable: "禁用插件"
AgentPluginUpdate: "更新插件"
AgentPluginUninstall: "卸载插件"
TaskRestart: "重启"
TaskProtect: "防护"
TaskBackup: "备份"
TaskRecover: "恢复"
TaskRollback: "回滚"
TaskPull: "拉取"
TaskCommit: "制作"
TaskBuild: "构建"
TaskPush: "推送"
TaskClean: "清理"
TaskHandle: "执行"
TaskImport: "导入"
TaskExport: "导出"
Website: "网站"
App: "应用"
Runtime: "运行环境"
Database: "数据库"
ConfigFTP: "创建 FTP 用户 {{ .name }}"
ConfigOpenresty: "创建 Openresty 配置文件"
InstallAppSuccess: "应用 {{ .name }} 安装成功"
ConfigRuntime: "配置运行环境"
ConfigApp: "配置应用"
SuccessStatus: "{{ .name }} 成功"
FailedStatus: "{{ .name }} 失败 {{ .err }}"
HandleLink: "处理应用关联"
HandleDatabaseApp: "处理应用参数"
ExecShell: "执行 {{ .name }} 脚本"
PullImage: "拉取镜像"
Start: "开始"
Run: "启动"
Stop: "停止"
Image: "镜像"
Compose: "编排"
Container: "容器"
AppLink: "关联应用"
EnableSSL: "开启 HTTPS"
AppStore: "应用商店"
Firewall: "防火墙"
FirewallSyncStep: "同步规则到 {{ .name }}"
FirewallSyncResult: "同步结果:成功 {{ .succeeded }} 条,已存在 {{ .existing }} 条,失败 {{ .failed }} 条"
FirewallSyncFailed: "{{ .failed }} 条防火墙规则同步失败"
FirewallSyncFailedResetSkipped: "{{ .failed }} 条防火墙规则同步失败,未重置源防火墙"
FirewallResetSourceStep: "重置并停用源防火墙 {{ .name }}"
FirewallResetSourceResult: "源防火墙重置完成,已删除 {{ .removed }} 条数据库规则"
FirewallVerifyTargetStep: "验证目标防火墙规则"
FirewallTargetRuleIneffective: "目标规则已失效"
FirewallVerifyRuleFailed: "验证同步规则 {{ .name }} 失败:{{ .detail }}"
TaskSync: "同步"
LocalApp: "本地应用"
SubTask: "子任务"
RuntimeExtension: "运行环境扩展"
TaskIsExecuting: "任务运行中"
CustomAppstore: "自定义应用仓库"
TaskExec: "执行"
TaskBatch: "批量操作"
FileConvert: "文件格式转换"
# 任务 - ClamAV
Clamscan: "扫描 {{ .name }}"
TaskScan: "扫描"
# 任务 - AI
OllamaModelPull: "拉取 Ollama 模型 {{ .name }}"
OllamaModelSize: "获取 Ollama 模型 {{ .name }} 大小"
AIBenchmarkRun: "执行 AI 基准测试"
# 任务 - 快照
Snapshot: "快照"
SnapDBInfo: "写入 1Panel 数据库信息"
SnapCopy: "复制文件/目录 {{ .name }}"
SnapNewDB: "初始化数据库 {{ .name }} 连接"
SnapDeleteOperationLog: "删除操作日志"
SnapDeleteLoginLog: "删除访问日志"
SnapDeleteMonitor: "删除监控数据"
SnapRemoveSystemIP: "移除系统 IP"
SnapBaseInfo: "写入 1Panel 基本信息"
SnapInstallAppImageEmpty: "当前未勾选应用镜像,跳过..."
SnapInstallApp: "备份 1Panel 已安装应用"
SnapDockerSave: "压缩已安装应用"
SnapLocalBackup: "备份 1Panel 本地备份目录"
SnapCompressBackup: "压缩本地备份目录"
SnapPanelData: "备份 1Panel 数据目录"
SnapCompressPanel: "压缩数据目录"
SnapWebsite: "备份 1Panel 网站目录"
SnapCloseDBConn: "关闭数据库连接"
SnapCompress: "制作快照文件"
SnapCompressFile: "压缩快照文件"
SnapCheckCompress: "检查快照压缩文件"
SnapCompressSize: "快照文件大小 {{ .name }}"
SnapUpload: "上传快照文件"
SnapUploadTo: "上传快照文件到 {{ .name }}"
SnapUploadRes: "上传快照文件到 {{ .name }}"
SnapshotRecover: "快照恢复"
RecoverDownload: "下载快照文件"
Download: "下载"
RecoverDownloadAccount: "获取快照下载备份账号 {{ .name }}"
RecoverDecompress: "解压快照压缩文件"
Decompress: "解压"
BackupBeforeRecover: "快照前备份系统相关数据"
ReadJson: "读取快照内 Json 文件"
ReadJsonPath: "获取快照内 Json 文件路径"
ReadJsonContent: "读取 Json 文件"
ReadJsonMarshal: "Json 转义处理"
RecoverApp: "恢复已安装应用"
RecoverWebsite: "恢复网站目录"
RecoverAppImage: "恢复快照镜像备份"
RecoverCompose: "恢复其他编排内容"
RecoverComposeList: "获取所有待恢复编排"
RecoverComposeItem: "恢复编排 {{ .name }}"
RecoverAppEmpty: "快照文件中未发现应用镜像备份"
RecoverBaseData: "恢复基础数据及文件"
RecoverDaemonJsonEmpty: "快照文件及当前机器都不存在容器配置 daemon.json 文件"
RecoverDaemonJson: "恢复容器配置 daemon.json 文件"
RecoverDBData: "恢复数据库数据"
RecoverBackups: "恢复本地备份目录"
RecoverPanelData: "恢复数据目录"
# 任务 - 容器
ContainerImagePull: "拉取容器镜像 {{ .name }}"
ContainerRemoveOld: "删除原容器 {{ .name }}"
ContainerImageCheck: "检查镜像是否正常拉取"
ContainerLoadInfo: "获取容器基本信息"
ContainerRecreate: "容器更新失败,现在开始恢复原容器"
ContainerCreate: "创建新容器 {{ .name }}"
ContainerCreateFailed: "容器创建失败,删除失败容器"
ContainerStartCheck: "检查容器是否已启动"
ContainerAcquireLock: "等待容器 {{ .name }} 操作锁"
ContainerUpgradeItem: "升级容器 {{ .name }}"
ContainerUpgradeSummary: "汇总容器升级结果"
ContainerCleanupWarning: "容器更新成功,但备份容器 {{ .name }} 删除失败。请确认新容器运行正常后手动删除该备份容器。错误:{{ .err }}"
ContainerStopOld: "停止原容器 {{ .name }}"
ContainerRenameOld: "重命名原容器 {{ .name }} 以便回滚"
ContainerDisconnectOld: "释放原容器 {{ .name }} 的网络地址"
ContainerCreateReplacement: "创建替换容器 {{ .name }}"
ContainerStartReplacement: "启动替换容器 {{ .name }}"
ContainerWaitReplacement: "检查替换容器 {{ .name }} 是否就绪"
ContainerStartupDiagnostic: "替换容器 {{ .name }} 启动失败诊断"
ContainerRecentLogs: "最近 200 行容器日志"
ContainerDiagnosticLogsFailed: "获取失败容器 {{ .name }} 日志失败:{{ .err }}"
ContainerDiagnosticLogsEmpty: "容器没有可用日志"
ContainerRollbackRestartOld: "重新启动原容器 {{ .name }}"
ContainerRollbackRemoveReplacement: "删除启动失败的替换容器 {{ .name }}"
ContainerRollbackRenameOld: "恢复原容器 {{ .name }} 的名称"
ContainerRollbackReconnectOld: "恢复原容器 {{ .name }} 的网络"
# 任务 - 镜像
ImageBuild: "镜像构建"
ImagePull: "拉取镜像"
ImageRepoAuthFromDB: "从数据库获取仓库认证信息"
ImagePush: "推送镜像"
ImageRenameTag: "修改镜像 Tag"
ImageNewTag: "新镜像 Tag {{ .name }}"
ComposeCreate: "创建编排"
# 任务 - 网站
BackupNginxConfig: "备份网站 OpenResty 配置文件"
CompressFileSuccess: "压缩目录成功,压缩为 {{ .name }}"
CompressDir: "压缩目录"
DeCompressFile: "解压文件 {{ .name }}"
ErrCheckValid: "校验备份文件失败,{{ .name }}"
Rollback: "回滚"
websiteDir: "网站目录"
RecoverFailedStartRollBack: "恢复失败,开始回滚"
AppBackupFileIncomplete: "备份文件不完整,缺少 app.json 或 app.tar.gz 文件"
AppAttributesNotMatch: "应用类型或名称不一致"
# 告警
ErrAlertMethodNotSupported: "当前版本不支持此告警方式"
ErrAlertSync: "告警信息同步错误,请检查后重试"
# 任务 - 运行环境
ErrInstallExtension: "已有安装任务正在进行,请等待任务结束"
# 告警邮件模板
PanelAlertTitle: "面板告警通知"
TestAlertTitle: "测试邮件 - 验证邮箱连通性"
TestAlert: "这是一封测试邮件,用于验证邮箱发件配置。"
LicenseExpirationAlert: "您的 {{ .node }}{{ .ip }} 面板,许可证将在 {{ .day }} 天后到期,请登录面板查看详情。"
CronJobFailedAlert: "您的 {{ .node }}{{ .ip }} 面板,计划任务-{{ .name }}执行失败,请登录面板查看详情。"
ClamAlert: "您的 {{ .node }}{{ .ip }} 面板,病毒扫描任务发现 {{ .num }} 个感染文件,请登录面板查看详情。"
WebSiteAlert: "您的 {{ .node }}{{ .ip }} 面板,有 {{ .num }} 个网站将在 {{ .day }} 天后到期,请登录面板查看详情。"
SSLAlert: "您的 {{ .node }}{{ .ip }} 面板,有 {{ .num }} 张SSL证书将在 {{ .day }} 天后到期,请登录面板查看详情。"
DiskUsedAlert: "您的 {{ .node }}{{ .ip }} 面板,磁盘 {{ .name }} 已使用 {{ .used }},请登录面板查看详情。"
ResourceAlert: "您的 {{ .node }}{{ .ip }} 面板,平均 {{ .time }} 分钟内的 {{ .name }} 使用率为 {{ .used }},请登录面板查看详情。"
PanelVersionAlert: "您的 {{ .node }}{{ .ip }} 面板,有最新面板版本可供升级,请登录面板查看详情。"
PanelPwdExpirationAlert: "您的 {{ .node }}{{ .ip }} 面板,面板密码将在 {{ .day }} 天后到期,请登录面板查看详情。"
CommonAlert: "您的 {{ .node }}{{ .ip }} 面板,{{ .msg }},请登录面板查看详情。"
NodeExceptionAlert: "您的 {{ .node }}{{ .ip }} 面板,{{ .num }} 个节点存在异常,请登录面板查看详情。"
LicenseExceptionAlert: "您的 {{ .node }}{{ .ip }} 面板,{{ .num }} 个许可证存在异常,请登录面板查看详情。"
SSHAndPanelLoginAlert: "您的 {{ .node }}{{ .ip }} 面板,面板 {{ .name }} 登录 {{ .loginIp }} 异常,请登录面板查看详情。"
# 磁盘
DeviceNotFound: "设备 {{ .name }} 未找到"
DeviceIsMounted: "设备 {{ .name }} 已挂载,请先卸载"
PartitionDiskErr: "分区失败,{{ .err }}"
FormatDiskErr: "格式化磁盘失败,{{ .err }}"
MountDiskErr: "挂载磁盘失败,{{ .err }}"
XfsNotFound: "未检测到 xfs 文件系统,请先安装 xfsprogs"
# 终端
TerminalAIBlockedRiskyCommand: "已拦截风险命令:{{ .command }}"
TerminalAIThinking: "AI 正在思考..."
TerminalAIReadyToExecute: "思考完成,请回车执行(耗时 {{ .duration }}token{{ .tokens }}"
TerminalAIRequestFailed: "AI 请求失败:{{ .err }}"
# AI 网关
ErrAIProxyServiceNotInstalled: "{{ .name }} 服务未安装"
ErrAIProxyModelAccountNotFound: "模型账号 {{ .id }} 不存在"
ErrAIProxyModelMapRequired: "请填写必填项"
ErrAIProxyModelMapInvalid: "模型映射必须是合法的 JSON 对象:{{ .err }}"
ErrAIProxyModelMapEmpty: "模型映射不能为空"
ErrAIProxyModelMapEmptyExternalModel: "模型映射中存在空的请求模型"
ErrAIProxyModelMapEmptyUpstreamModel: "模型 {{ .model }} 的上游模型不能为空"
AIProxyUserFallback: "已删除用户 (ID: {{ .id }})"
AIProviderBailian: "阿里云百炼"
AIProviderBailianCodingPlan: "阿里云百炼 Coding Plan"
AIProviderArk: "火山方舟"
AIProviderArkCodingPlan: "火山方舟 Coding Plan"