ErrInvalidParams: "请求参数错误: {{ .detail }}"
ErrTokenParse: "Token 生成错误: {{ .detail }}"
ErrInitialPassword: "原密码错误"
ErrInternalServer: "服务内部错误: {{ .detail }}"
ErrRecordExist: "记录已存在"
ErrRecordNotFound: "记录未能找到"
ErrStructTransform: "类型转换失败: {{ .err }}"
ErrNotLogin: "用户未登录: {{ .detail }}"
ErrPasswordExpired: "当前密码已过期: {{ .detail }}"
ErrNotSupportType: "系统暂不支持当前类型: {{ .name }}"
ErrProxy: "请求错误，请检查该节点状态: {{ .detail }}"
ErrApiConfigStatusInvalid: "API 接口禁止访问: {{ .detail }}"
ErrApiConfigKeyInvalid: "API 接口密钥错误: {{ .detail }}"
ErrApiConfigIPInvalid: "调用 API 接口 IP 不在白名单: {{ .detail }}"
ErrApiConfigDisable: "此接口禁止使用 API 接口调用: {{ .detail }}"
ErrApiConfigKeyTimeInvalid: "API 接口时间戳错误: {{ .detail }}"

#common
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: "分组正在被其他网站使用，无法删除"

#backup
ErrBackupInUsed: "该备份账号已在计划任务中使用，无法删除"
ErrBackupCheck: "备份账号测试连接失败 {{ .err }}"
ErrBackupLocalDelete: "暂不支持删除本地服务器备份账号"
ErrBackupLocalCreate: "暂不支持创建本地服务器备份账号"

#app
ErrPortInUsed: "{{ .detail }} 端口已被占用！"
ErrAppLimit: "应用超出安装数量限制"
ErrNotInstall: "应用未安装"
ErrPortInOtherApp: "{{ .port }} 端口已被应用 {{ .apps }} 占用！"
ErrDbUserNotValid: "存量数据库，用户名密码不匹配！"
ErrUpdateBuWebsite: '应用更新成功，但是网站配置文件修改失败，请检查配置！'
Err1PanelNetworkFailed: '默认容器网络创建失败！{{ .detail }}'
ErrFileParse: '应用 docker-compose 文件解析失败!'
ErrInstallDirNotFound: '安装目录不存在，如需卸载，请选择强制卸载'
AppStoreIsUpToDate: '应用商店已经是最新版本'
LocalAppVersionNull: '{{ .name }} 应用未同步到版本！无法添加到应用列表'
LocalAppVersionErr: '{{ .name }} 同步版本 {{ .version }} 失败！{{ .err }}'
ErrFileNotFound: '{{ .name }} 文件不存在'
ErrFileParseApp: '{{ .name }} 文件解析失败 {{ .err }}'
ErrAppDirNull: '版本文件夹不存在'
LocalAppErr: "应用 {{ .name }} 同步失败！{{ .err }}"
ErrContainerName: "容器名称已存在"
ErrCreateHttpClient: "创建请求失败 {{ .err }}"
ErrHttpReqTimeOut: "请求超时 {{ .err }}"
ErrHttpReqFailed: "请求失败 {{ .err }}"
ErrNoSuchHost: "无法找到请求的服务器 {{ .err }}"
ErrHttpReqNotFound: "无法找到请求的资源 {{ .err }}"
ErrContainerNotFound: '{{ .name }} 容器不存在'
ErrContainerMsg: '{{ .name }} 容器异常，具体请在容器页面查看日志'
ErrAppBackup: '{{ .name }} 应用备份失败 {{ .err }}'
ErrVersionTooLow: '当前 1Panel 版本过低，无法更新应用商店，请升级版本之后操作'
ErrAppNameExist: '应用名称已存在'
AppStoreIsSyncing: '应用商店正在同步中，请稍后再试'
ErrGetCompose: "docker-compose.yml 文件获取失败！{{ .detail }}"
ErrAppWarn: "状态异常，请查看日志"
ErrAppParamKey: "参数 {{ .name }} 字段异常"
ErrAppUpgrade: "应用 {{ .name }} 升级失败 {{ .err }}"
AppRecover: "应用  {{ .name }} 回滚 "
PullImageStart: "开始拉取镜像 {{ .name }}"
PullImageSuccess: "镜像拉取成功"
AppStoreSyncSuccess: "应用商店同步成功"
SyncAppDetail: "同步应用配置"
AppVersionNotMatch: "{{ .name }} 应用需要更高的 1Panel 版本，跳过"
MoveSiteDir: "当前升级需要迁移 OpenResty 网站目录"
MoveSiteToDir: "迁移网站目录到 {{ .name }}"
ErrMoveSiteDir: "迁移网站目录失败"
MoveSiteDirSuccess: "迁移网站目录成功"
DeleteRuntimePHP: "删除 PHP 运行环境"
CustomAppStoreFileValid: "应用商店包需要 .tar.gz 格式"
PullImageTimeout: "拉取镜像超时,请尝试增加镜像加速或者更换其他镜像加速"
ErrAppIsDown: "{{ .name }} 应用状态异常，请检查"
ErrCustomApps: "存在已经安装的应用，请先卸载"
ErrCustomRuntimes: "存在已经安装的运行环境，请先删除"
ErrAppVersionDeprecated: " {{ .name }} 应用不适配当前 1Panel 版本，跳过"
ErrDockerFailed: "Docker 状态异常，请检查服务状态"
ErrDockerComposeCmdNotFound: "Docker Compose 命令不存在，请先在宿主机安装此命令"

#file
ErrFileCanNotRead: "此文件不支持预览"
ErrFileToLarge: "文件超过10M，无法打开"
ErrPathNotFound: "目录不存在"
ErrMovePathFailed: "目标路径不能包含原路径！"
ErrLinkPathNotFound: "目标路径不存在!"
ErrFileIsExist: "文件或文件夹已存在！"
ErrFileUpload: "{{ .name }} 上传文件失败 {{ .detail }}"
ErrFileDownloadDir: "不支持下载文件夹"
ErrCmdNotFound: "{{ .name}} 命令不存在，请先在宿主机安装此命令"
ErrSourcePathNotFound:  "源目录不存在"
ErrFavoriteExist: "已收藏此路径"
ErrInvalidChar: "禁止使用非法字符"
ErrPathNotDelete: "所选目录不可删除"
ErrLogFileToLarge: "日志文件超过 500M，无法打开"

#website
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: '证书文件异常，请检查证书状态！'

#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}}无法删除，请稍后再试"

#mysql
ErrUserIsExist: "当前用户已存在，请重新输入"
ErrDatabaseIsExist: "当前数据库已存在，请重新输入"
ErrExecTimeOut: "SQL 执行超时，请检查数据库"
ErrRemoteExist: "远程数据库已存在该名称，请修改后重试"
ErrLocalExist: "本地数据库已存在该名称，请修改后重试"

#redis
ErrTypeOfRedis: "恢复文件类型与当前持久化方式不符，请修改后重试"

#container
ErrInUsed: "{{ .detail }} 正被使用，无法删除"
ErrObjectInUsed: "该对象正被使用，无法删除"
ErrObjectBeDependent: "该镜像依赖于其他镜像，无法删除"
ErrPortRules: "端口数目不匹配，请重新输入！"
ErrPgImagePull: "镜像拉取超时，请配置镜像加速或手动拉取 {{ .name }} 镜像后重试"
PruneHelper: "本次清理 {{ .name }} {{ .count }} 个，释放磁盘空间 {{ .size }}"
ImageRemoveHelper: "删除镜像 {{ .name }} ，释放磁盘空间 {{ .size }}"
BuildCache: "构建缓存"
Volume: "存储卷"
Network: "网络"

#runtime
ErrFileNotExist: "{{ .detail }} 文件不存在！请检查源文件完整性！"
ErrImageBuildErr: "镜像 build 失败"
ErrImageExist: "镜像已存在！请修改镜像名称"
ErrDelWithWebsite: "运行环境已经关联网站，无法删除"
ErrRuntimeStart: "启动失败"
ErrPackageJsonNotFound: "package.json 文件不存在"
ErrScriptsNotFound: "没有在 package.json 中找到 scripts 配置项"
ErrContainerNameNotFound: "无法获取容器名称，请检查 .env 文件"
ErrNodeModulesNotFound: "node_modules 文件夹不存在！请编辑运行环境或者等待运行环境启动成功"
ErrContainerNameIsNull: "容器名称不存在"
ErrPHPPortIsDefault: "9000 端口为默认端口，请修改后重试"
ErrPHPRuntimePortFailed: "{{ .name }} 端口已被当前运行环境使用，请修改后重试"

#tool
ErrConfigNotFound: "配置文件不存在"
ErrConfigParse: "配置文件格式有误"
ErrConfigIsNull: "配置文件不允许为空"
ErrConfigDirNotFound: "运行目录不存在"
ErrConfigAlreadyExist: "已存在同名配置文件"
ErrUserFindErr: "用户 {{ .name }} 查找失败 {{ .err }}"

#cronjob
CutWebsiteLogSuccess: "{{ .name }} 网站日志切割成功，备份路径 {{ .path }}"
HandleShell: "执行脚本 {{ .name }}"
HandleNtpSync: "系统时间同步"
HandleSystemClean: "系统缓存清理"
SystemLog: "系统日志"
CutWebsiteLog: "切割网站日志"
FileOrDir: "目录 / 文件"
UploadFile: "上传备份文件 {{ .file }} 到 {{ .backup }}"
IgnoreBackupErr: "备份失败，错误：{{ .detail }}，忽略本次错误..."
IgnoreUploadErr: "上传失败，错误：{{ .detail }}，忽略本次错误..."

#toolbox
ErrNotExistUser: "当前用户不存在，请修改后重试！"
ErrBanAction: "设置失败，当前 {{ .name }} 服务不可用，请检查后重试！"
ErrClamdscanNotFound: "未检测到 clamdscan 命令，请参考文档安装！"

#waf
ErrScope: "不支持修改此配置"
ErrStateChange: "状态修改失败"
ErrRuleExist: "规则已存在"
ErrRuleNotExist: "规则不存在"
ErrParseIP: "IP 格式错误"
ErrDefaultIP: "default 为保留名称，请更换其他名称"
ErrGroupInUse: "IP 组被黑/白名单使用，无法删除"
ErrIPGroupAclUse: "IP 组被网站 {{ .name }} 自定义规则使用，无法删除"
ErrGroupExist: "IP 组名称已存在"
ErrIPRange: "IP 范围错误"
ErrIPExist: "IP 已存在"
urlDefense: 'URL 规则'
urlHelper: '禁止访问的 URL'
dirFilter: '目录过滤'
xss: 'XSS'
phpExec: 'PHP 脚本执行'
oneWordTrojan: '一句话木马'
appFilter: '应用危险目录过滤'
webshell: 'Webshell'
args: '参数规则'
protocolFilter: '协议过滤'
javaFileter: '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 版本过低，请升级 Openresty 至 1.27.1.2-2-2-focal"

#task
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: "更新"
TaskRestart: "重启"
TaskBackup: "备份"
TaskRecover: "恢复"
TaskRollback: "回滚"
TaskPull: "拉取"
TaskCommit: "制作"
TaskBuild: "构建"
TaskPush: "推送"
TaskClean: "清理"
TaskHandle: "执行"
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: "应用商店"
TaskSync: "同步"
LocalApp: "本地应用"
SubTask: "子任务"
RuntimeExtension: "运行环境扩展"
TaskIsExecuting: "任务正在运行"
CustomAppstore: "自定义应用仓库"

# task - ai
OllamaModelPull: "拉取 Ollama 模型  {{ .name }} "
OllamaModelSize: "获取 Ollama 模型  {{ .name }} 大小 "

# task - snapshot
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: "上传快照文件"
SnapLoadBackup: "获取备份账号信息"
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: "恢复数据目录"

# task - container
ContainerNewCliet: "初始化 Docker Client"
ContainerImagePull: "拉取容器镜像 {{ .name }}"
ContainerRemoveOld: "删除原容器 {{ .name }}"
ContainerImageCheck: "检查镜像是否正常拉取"
ContainerLoadInfo: "获取容器基本信息"
ContainerRecreate: "容器更新失败，现在开始恢复原容器"
ContainerCreate: "创建新容器 {{ .name }}"
ContainerCreateFailed: "容器创建失败，删除失败容器"
ContainerStartCheck: "检查容器是否已启动"

# task - image
ImageBuild: "镜像构建"
ImageBuildStdoutCheck: "解析镜像输出内容"
ImageBuildRes: "镜像构建输出：{{ .name }}"
ImagePull: "拉取镜像"
ImageRepoAuthFromDB: "从数据库获取仓库认证信息"
ImaegPullRes: "镜像拉取输出：{{ .name }}"
ImagePush: "推送镜像"
ImageRenameTag: "修改镜像 Tag"
ImageNewTag: "新镜像 Tag {{ .name }}"
ImaegPushRes: "镜像推送输出：{{ .name }}"
ComposeCreate: "创建编排"
ComposeCreateRes: "编排创建输出：{{ .name }}"

# task - website
BackupNginxConfig: "备份网站 OpenResty 配置文件"
CompressFileSuccess: "压缩目录成功，压缩为 {{ .name }}"
CompressDir: "压缩目录"
DeCompressFile: "解压文件 {{ .name }}"
ErrCheckValid: "校验备份文件失败，{{ .name }}"
Rollback: "回滚"
websiteDir: "网站目录"
RecoverFailedStartRollBack: "恢复失败，开始回滚"
AppBackupFileIncomplete: "备份文件不完整 缺少  app.json 或者 app.tar.gz  文件"
AppAttributesNotMatch: "应用类型或者名称不一致"

#alert
ErrAlert: "告警信息格式错误，请检查后重试！"
ErrAlertPush: "告警信息推送错误，请检查后重试！"
ErrAlertSave: "告警信息保存错误，请检查后重试！"
ErrAlertSync: "告警信息同步错误，请检查后重试！"
ErrAlertRemote: "告警信息远端错误，请检查后重试！"

#task - runtime
ErrInstallExtension: "已有安装任务正在进行，请等待任务结束"

# alert mail template
PanelAlertTitle: "面板告警通知"
TestAlertTitle: "测试邮件 - 验证邮箱连通性"
TestAlert: "这是一封测试邮件，旨在验证您的邮箱发件配置是否正确。"
LicenseExpirationAlert: "您的 1Panel 面板，许可证将在 {{ .day }} 天后到期，详情请登录面板查看。"
CronJobFailedAlert: "您的 1Panel 面板，计划任务-{{ .name }}执行失败，详情请登录面板查看。"
ClamAlert: "您的 1Panel 面板，病毒扫描任务发现 {{ .num }} 个感染文件，详情请登录面板查看。"
WebSiteAlert: "您的 1Panel 面板，有 {{ .num }} 个网站将在 {{ .day }} 天后到期，详情请登录面板查看。"
SSLAlert: "您的 1Panel 面板，有 {{ .num }} 张SSL证书将在 {{ .day }} 天后到期，详情请登录面板查看。"
DiskUsedAlert: "您的 1Panel 面板，磁盘 {{ .name }} 已使用 {{ .used }}，详情请登录面板查看。"
ResourceAlert: "您的 1Panel 面板，平均 {{ .time }} 分钟内的 {{ .name }} 使用率为 {{ .used }}，详情请登录面板查看。"
PanelVersionAlert: "您的 1Panel 面板，有最新面板版本可供升级，详情请登录面板查看。"
PanelPwdExpirationAlert: "您的 1Panel 面板，面板密码将在 {{ .day }} 天后到期，详情请登录面板查看。"