import { getFuLocaleMessage } from '@/lang/fu';

const message = {
    commons: {
        true: '是',
        false: '否',
        example: '例：',
        fit2cloud: '飞致云',
        lingxia: '凌霞',
        colon: '：',
        button: {
            run: '运行',
            prev: '上一步',
            next: '下一步',
            create: '创建',
            add: '添加',
            select: '选择',
            save: '保存',
            set: '设置',
            sync: '同步',
            delete: '删除',
            edit: '编辑',
            enable: '启用',
            disable: '停用',
            confirm: '确认',
            cancel: '取消',
            reset: '重置',
            setDefault: '恢复默认',
            restart: '重启',
            conn: '连接',
            disConn: '断开',
            clean: '清空',
            cleanAll: '清空所有',
            selectAll: '全选',
            login: '登录',
            close: '关闭',
            stop: '关闭',
            start: '开启',
            view: '详情',
            watch: '追踪',
            handle: '执行',
            clone: '克隆',
            expand: '展开',
            collapse: '收起',
            log: '日志',
            back: '返回',
            backup: '备份',
            recover: '恢复',
            retry: '重试',
            upload: '上传',
            download: '下载',
            init: '初始化',
            verify: '验证',
            saveAndEnable: '保存并启用',
            import: '导入',
            importAll: '全部导入',
            export: '导出',
            power: '授权',
            search: '搜索',
            refresh: '刷新',
            reconnect: '重新连接',
            get: '获取',
            upgrade: '升级',
            update: '更新',
            ignore: '忽略升级',
            copy: '复制',
            random: '随机密码',
            install: '安装',
            uninstall: '卸载',
            fullscreen: '网页全屏',
            quitFullscreen: '退出网页全屏',
            showAll: '显示所有',
            hideSome: '隐藏部分',
            agree: '同意',
            notAgree: '不同意',
            preview: '预览',
            open: '打开',
            notSave: '不保存',
            createNewFolder: '新建文件夹',
            createNewFile: '新建文件',
            helpDoc: '帮助文档',
            bind: '绑定',
            unbind: '解绑',
            cover: '覆盖',
            skip: '跳过',
            fix: '修复',
            down: '停止',
            up: '启动',
            sure: '确定',
            show: '显示',
            hide: '隐藏',
            visit: '访问',
            migrate: '迁移',
            tip: '提示',
        },
        operate: {
            start: '启动',
            stop: '停止',
            restart: '重启',
            reload: '重载',
            rebuild: '重建',
            sync: '同步',
            up: '启动',
            down: '停止',
            delete: '删除',
        },
        search: {
            timeStart: '开始时间',
            timeEnd: '结束时间',
            timeRange: '至',
            dateStart: '开始日期',
            dateEnd: '结束日期',
            date: '日期',
        },
        table: {
            all: '所有',
            total: '共 {0} 条',
            name: '名称',
            type: '类型',
            card: '卡片',
            table: '表格',
            status: '状态',
            statusSuccess: '成功',
            statusFailed: '失败',
            statusWaiting: '等待中...',
            records: '记录',
            group: '分组',
            default: '默认',
            createdAt: '创建时间',
            creator: '创建人',
            publishedAt: '发布时间',
            date: '时间',
            updatedAt: '更新时间',
            updater: '更新人',
            operate: '操作',
            message: '信息',
            description: '描述',
            interval: '耗时',
            user: '用户',
            title: '标题',
            port: '端口',
            forward: '转发',
            protocol: '协议',
            tableSetting: '表格设置',
            refreshRate: '刷新频率',
            noRefresh: '不刷新',
            selectColumn: '选择列',
            local: '本地',
            serialNumber: '序号',
            manageGroup: '管理分组',
            backToList: '返回列表',
            keepEdit: '继续编辑',
            pin: '置顶',
            unpin: '取消置顶',
        },
        loadingText: {
            Upgrading: '系统升级中，请稍候...',
            Restarting: '系统重启中，请稍候...',
            Recovering: '快照恢复中，请稍候...',
            Rollbacking: '快照回滚中，请稍候...',
        },
        msg: {
            noneData: '暂无数据',
            delete: '删除 操作不可回滚，是否继续？',
            clean: '清空 操作不可回滚，是否继续？',
            closeDrawerHelper: '系统可能不会保存您所做的更改，是否继续？',
            deleteSuccess: '删除成功',
            loginSuccess: '登录成功',
            operationSuccess: '操作成功',
            operationFailed: '操作失败',
            copySuccess: '复制成功',
            notSupportOperation: '不支持的当前操作',
            requestTimeout: '请求超时，请稍后重试',
            infoTitle: '提示',
            notRecords: '当前任务未产生执行记录',
            sureLogOut: '您是否确认退出登录?',
            createSuccess: '创建成功',
            updateSuccess: '更新成功',
            uploadSuccess: '上传成功',
            operateConfirm: '如果确认操作，请手动输入 ',
            inputOrSelect: '请选择或输入',
            selectOne: '请选择一个{0}',
            copyFailed: '复制失败',
            operatorHelper: '将对以下{0}进行 {1} 操作，是否继续？',
            backupSuccess: '备份成功',
            restoreSuccess: '备份成功',
            notFound: '抱歉，您访问的页面不存在',
            unSupportType: '不支持当前文件类型！',
            unSupportSize: '上传文件超过 {0}M，请确认！',
            fileExist: '当前文件夹已存在该文件，不支持重复上传！',
            fileNameErr: '仅支持上传名称包含英文、中文、数字或 .-_ ,长度 1-256 位的文件',
            confirmNoNull: '请确认 {0} 值不为空',
            errPort: '错误的端口信息，请确认！',
            remove: '移出',
            backupHelper: '当前操作将对 {0} 进行备份，是否继续？',
            recoverHelper: '将从 {0} 文件进行恢复，该操作不可回滚，是否继续？',
            refreshSuccess: '刷新成功',
            rootInfoErr: '已经是根目录了',
            resetSuccess: '重置成功',
            creatingInfo: '正在创建，无需此操作',
            installSuccess: '安装成功',
            uninstallSuccess: '卸载成功',
            offlineTips: '离线版不支持此操作',
            errImportFormat: '导入数据或格式异常，请检查后重试！',
            importHelper: '导入冲突或重复数据时，将以导入内容为标准，更新原数据库数据。',
            errImport: '文件内容异常：',
        },
        login: {
            username: '用户名',
            password: '密码',
            welcome: '欢迎回来，请使用用户名和密码登录。',
            errorAuthInfo: '您输入的用户名或密码不正确，请重新输入！',
            errorMfaInfo: '错误的验证信息，请重试！',
            captchaHelper: '验证码',
            errorCaptcha: '验证码错误！',
            codeInput: '请输入 6 位 MFA 验证码',
            mfaTitle: 'MFA 认证',
            mfaCode: 'MFA 验证码',
            title: 'Linux 服务器运维管理面板',
            passkey: '使用通行密钥',
            otherLoginMethods: '其他方式登录',
            passkeyFailed: '通行密钥登录失败，请重试',
            passkeyNotSupported: '当前浏览器或环境不支持通行密钥',
            passkeyToPassword: '无法使用通行密钥? 使用账号密码登录',
            licenseHelper: '《飞致云社区软件许可协议》',
            errorAgree: '请点击同意社区软件许可协议',
            agreeTitle: '服务协议及隐私保护',
            agreeContent:
                '为了更好的保障您的合法权益，请您阅读并同意以下协议 &laquo; <a href="https://www.fit2cloud.com/legal/licenses.html" target="_blank"> 飞致云社区软件许可协议 </a> &raquo;',
            logout: '退出登录',
        },
        rule: {
            username: '请输入用户名',
            password: '请输入密码',
            rePassword: '密码不一致，请检查后重新输入',
            requiredInput: '请填写必填项',
            requiredSelect: '请选择必选项',
            illegalChar: '暂不支持注入字符 & ; $ \' ` ( ) " > < ｜',
            illegalInput: '输入框中存在不合法字符',
            duplicate: '内容不能重复',
            commonName: '支持非特殊字符开头,英文、中文、数字、.-和_,长度1-128',
            userName: '支持非特殊字符开头、英文、中文、数字和_,长度3-30',
            simpleName: '支持非下划线开头，英文、数字、_,长度3-30',
            simplePassword: '支持非下划线开头，英文、数字、_,长度1-30',
            dbName: '支持非特殊字符开头，英文、中文、数字、.-_,长度1-64',
            composeName: '支持非特殊字符开头，小写英文、数字、-和_,长度1-256',
            imageName: '支持非特殊字符开头、英文、数字、:@/.-_,长度1-256',
            volumeName: '支持英文、数字、.-和_,长度2-30',
            supervisorName: '支持非特殊字符开头,英文、数字、-和_,长度1-128',
            complexityPassword: '支持长度为 8-30 位且包含字母、数字、特殊字符中至少两项的密码组合',
            commonPassword: '长度必须大于 6 位',
            linuxName: '长度1-128，名称不能含有{0}等符号',
            email: '请输入正确的邮箱',
            number: '请输入正确的数字',
            integer: '请输入正确的正整数',
            ip: '请输入正确的 IP 地址',
            host: '请输入正确的 IP 或域名',
            hostHelper: '支持输入 ip 或域名',
            port: '请输入正确的端口,1-65535',
            selectHelper: '请选择正确的 {0} 文件',
            domain: '域名格式错误',
            databaseName: '支持英文、数字、_,长度1-30',
            ipErr: '请输入正确的 IP 地址',
            numberRange: '数字范围: {0} - {1}',
            paramName: '支持英文、数字、.-和_,长度2-64',
            paramComplexity: '支持英文、数字、{0},长度6-128，特殊字符不能在首尾',
            paramUrlAndPort: '格式为 http(s)://(域名/ip):(端口)',
            nginxDoc: '仅支持英文大小写，数字，和.',
            appName: '支持英文、数字、-和_,长度2-30,并且不能以-_开头和结尾',
            containerName: '支持字母、数字、_-和.,不能以-_或.开头,长度2-128',
            mirror: '支持以 http(s):// 开头，英文大小写，数字，. / 和 - 的镜像加速地址，且不能有空行',
            disableFunction: '仅支持字母、下划线和,',
            leechExts: '仅支持字母数字和,',
            paramSimple: '支持小写字母和数字,长度1-128',
            filePermission: '权限错误',
            formatErr: '格式错误，检查后重试',
            phpExtension: '仅支持 , _ 小写英文和数字',
            paramHttp: '必须以 http:// 或 https:// 开头',
            phone: '手机号码格式不正确',
            authBasicPassword: '支持字母、数字以及常见特殊字符，长度1-72',
            length128Err: '长度不能超过128位',
            maxLength: '长度不能超过 {0} 位',
            alias: '支持英文、数字、-和_,长度1-128,并且不能以-_开头和结尾',
            vmName: '支持英文、数字、.-和_,长度1-64，且必须以英文或数字开头',
            vmNetwork: '支持英文、数字、.:-和_,长度1-64，且必须以英文或数字开头',
        },
        res: {
            paramError: '请求失败,请稍后重试!',
            forbidden: '当前用户无权限',
            serverError: '服务异常',
            notFound: '资源不存在',
            commonError: '请求失败',
        },
        service: {
            serviceNotStarted: '当前未启动 {0} 服务',
        },
        status: {
            running: '已启动',
            done: '已完成',
            scanFailed: '未完成',
            success: '成功',
            waiting: '请等待',
            waitForUpgrade: '等待升级',
            failed: '失败',
            stopped: '已停止',
            error: '失败',
            created: '已创建',
            restarting: '重启中',
            uploading: '上传中',
            unhealthy: '异常',
            removing: '移除中',
            paused: '已暂停',
            exited: '已停止',
            partial: '部分启动',
            dead: '已结束',
            installing: '安装中',
            enabled: '已启用',
            disabled: '已停止',
            normal: '正常',
            building: '制作镜像中',
            upgrading: '升级中',
            pending: '待编辑',
            rebuilding: '重建中',
            deny: '已屏蔽',
            accept: '已放行',
            used: '已使用',
            unused: '未使用',
            starting: '启动中',
            recreating: '重建中',
            creating: '创建中',
            init: '等待申请',
            ready: '正常',
            applying: '申请中',
            uninstalling: '卸载中',
            lost: '已失联',
            bound: '已绑定',
            unbind: '未绑定',
            exceptional: '异常',
            free: '空闲',
            enable: '已启用',
            disable: '已停止',
            deleted: '已删除',
            notfound: '不存在',
            inactive: '未启动',
            degraded: '降级',
            inaccessible: '不可访问',
            unknown: '未知',
            downloading: '下载中',
            packing: '打包中',
            sending: '下发中',
            healthy: '正常',
            executing: '执行中',
            installerr: '安装失败',
            applyerror: '申请失败',
            systemrestart: '中断',
            starterr: '启动失败',
            uperr: '启动失败',
            new: '新',
            conflict: '冲突',
            duplicate: '重复',
            unexecuted: '未执行',
            canceled: '已取消',
        },
        units: {
            second: '秒',
            minute: '分钟',
            hour: '小时',
            day: '天',
            week: '周',
            month: '月',
            year: '年',
            time: '次',
            core: '核',
            secondUnit: '秒',
            minuteUnit: '分钟',
            hourUnit: '小时',
            dayUnit: '天',
            millisecond: '毫秒',
            semicolon: '；',
        },
        log: {
            noLog: '暂无日志',
        },
    },
    menu: {
        home: '概览',
        apps: '应用商店',
        website: '网站',
        project: '项目',
        config: '配置',
        ssh: 'SSH 管理',
        firewall: '防火墙',
        filter: '过滤器',
        ssl: '证书',
        security: '安全',
        database: '数据库',
        aiTools: 'AI',
        mcp: 'MCP',
        container: '容器',
        cronjob: '计划任务',
        system: '系统',
        files: '文件',
        monitor: '监控',
        terminal: '终端',
        settings: '面板设置',
        toolbox: '工具箱',
        logs: '日志审计',
        runtime: '运行环境',
        processManage: '进程管理',
        process: '进程',
        network: '网络',
        supervisor: '进程守护',
        tamper: '防篡改',
        app: '应用',
        msgCenter: '任务中心',
        disk: '磁盘管理',
        template: '模板',
    },
    home: {
        recommend: '推荐',
        dir: '目录',
        alias: '别名',
        quickDir: '快捷目录',
        minQuickJump: '请至少设置一个快速跳转入口！',
        maxQuickJump: '最多可设置四个快速跳转入口！',
        database: '数据库 - 所有',
        restart_1panel: '重启面板',
        restart_system: '重启服务器',
        operationSuccess: '操作成功，正在重启，请稍后手动刷新浏览器！',
        entranceHelper: '设置安全入口有利于提高系统的安全性，如有需要，前往 面板设置-安全 中，启用安全入口',
        appInstalled: '已安装应用',
        systemInfo: '系统信息',
        hostname: '主机名称',
        platformVersion: '发行版本',
        kernelVersion: '内核版本',
        kernelArch: '系统类型',
        network: '流量',
        io: '磁盘 IO',
        ip: '主机地址',
        proxy: '系统代理',
        baseInfo: '基本信息',
        totalSend: '总发送',
        totalRecv: '总接收',
        rwPerSecond: '读写次数',
        ioDelay: '读写延迟',
        uptime: '启动时间',
        runningTime: '运行时间',
        mem: '系统内存',
        swapMem: 'Swap 分区',

        runSmoothly: '运行流畅',
        runNormal: '运行正常',
        runSlowly: '运行缓慢',
        runJam: '运行堵塞',

        core: '物理核心',
        logicCore: '逻辑核心',
        corePercent: '核心使用率',
        cpuFrequency: 'CPU 频率',
        cpuDetailedPercent: 'CPU 占用',
        cpuUser: '用户态',
        cpuSystem: '内核态',
        cpuIdle: '空闲',
        cpuIrq: '硬中断',
        cpuSoftirq: '软中断',
        cpuSteal: '被VM抢占',
        cpuTop: 'CPU 占用率 Top5 的进程信息',
        memTop: '内存占用率 Top5 的进程信息',
        loadAverage: '最近 {0} 分钟平均负载',
        load: '负载',
        mount: '挂载点',
        fileSystem: '文件系统',
        total: '总数',
        used: '已用',
        cache: '缓存',
        free: '空闲',
        shard: '共享',
        available: '可用',
        percent: '使用率',
        goInstall: '去安装',

        networkCard: '网卡',
        disk: '磁盘',

        memo: '备忘录',
        memoPlaceholder: '点击编辑按钮启用编辑',
        carouselSetting: '轮播设置',
        tooltipSensitiveInfo: '显示/隐藏敏感信息',
    },
    tabs: {
        more: '更多',
        hide: '收起',
        closeLeft: '关闭左侧',
        closeRight: '关闭右侧',
        closeCurrent: '关闭当前',
        closeOther: '关闭其它',
        closeAll: '关闭所有',
    },
    header: {
        logout: '退出登录',
    },
    database: {
        manage: '管理',
        deleteBackupHelper: '同时删除数据库备份',
        delete: '删除操作无法回滚，请输入 "',
        deleteHelper: '" 删除此数据库',
        deleteUserHelper: '" 删除此用户',
        userBoundDatabases: '用户已获得以下数据库的访问授权：',
        noMysql: '数据库服务 (MySQL 或 MariaDB)',
        noPostgresql: '数据库服务 PostgreSQL',
        goUpgrade: '去应用列表升级',
        goInstall: '去应用商店安装',
        isDelete: '已删除',
        permission: '权限',
        format: '字符集',
        collation: '排序规则',
        collationHelper: '为空则使用 {0} 字符集的默认排序规则',
        permissionForIP: '指定 IP',
        permissionAll: '所有人(%)',
        localhostHelper: '将容器部署的数据库权限配置为 localhost 会导致容器外部无法访问，请谨慎选择！',
        databaseConnInfo: '连接信息',
        rootPassword: 'root 密码',
        serviceName: '服务名称',
        serviceNameHelper: '用于同一 network 下的容器间访问',
        backupList: '备份列表',
        loadBackup: '导入备份',
        localUpload: '本地上传',
        hostSelect: '服务器选择',
        selectHelper: '是否确认导入备份文件 {0}？',
        remoteAccess: '远程访问',
        remoteHelper: '多个 ip 以逗号分隔，例：172.16.10.111,172.16.10.112',
        remoteConnHelper: 'root 帐号远程连接 MySQL 有安全风险，开启需谨慎！',
        changePassword: '改密',
        changeConnHelper: '此操作将修改当前数据库 {0}，是否继续？',
        changePasswordHelper: '当前数据库已经关联应用，修改密码将同步修改应用中数据库密码，修改后重启生效。',
        recoverTimeoutHelper: '-1 表示不限制超时时间',

        portHelper: '该端口为容器对外暴露端口，修改需要单独保存并且重启容器！',

        confChange: '配置修改',
        confNotFound: '未能找到该应用配置文件，请在应用商店升级该应用至最新版本后重试！',

        loadFromRemote: '从服务器同步',
        userBind: '绑定用户',
        userAuthorization: '用户授权',
        noUserAuthorization: '不授权',
        authorizedDatabaseCount: '已授权 {0} 个数据库',
        authorizationManagement: '授权管理',
        authorizedUsers: '已授权用户',
        authorizedUserCount: '{0} 个用户',
        addUserAuthorization: '添加用户授权',
        revokeAuthorization: '撤销授权',
        revokeAuthorizationHelper: '确定撤销用户 {0} 对数据库 {1} 的访问授权吗？',
        supplementPassword: '补充密码',
        supplementPasswordHelper: '仅将现有密码保存到 1Panel，不会修改 MySQL 用户密码。',
        noUserBind: '不绑定',
        pgBindHelper: '该操作用于创建新用户并将其绑定到目标数据库，暂不支持选择已存在于数据库中的用户。',
        pgSuperUser: '超级用户',
        loadFromRemoteHelper: '此操作将同步服务器上的数据库、用户及授权信息到 1Panel，是否继续？',
        passwordHelper: '无法获取，可点击修改',
        remote: '远程',
        remoteDB: '远程服务器',
        createRemoteDB: '添加远程服务器',
        unBindRemoteDB: '解绑远程服务器',
        unBindForce: '强制解绑',
        unBindForceHelper: '忽略解绑过程中的所有错误，确保最终操作成功',
        unBindRemoteHelper: '解绑远程数据库只会删除绑定关系，不会直接删除远程数据库',
        editRemoteDB: '编辑远程服务器',
        localDB: '本地数据库',
        address: '数据库地址',
        version: '数据库版本',
        userHelper: 'root 用户或拥有 root 权限的数据库用户',
        mongodbPermissionDbOwner: '数据库所有者',
        mongodbPermissionRead: '读取数据',
        mongodbPermissionReadWrite: '读取和写入数据',
        mongodbPermissionUserAdmin: '用户管理员',
        pgUserHelper: '拥有超级管理员权限的数据库用户',
        ssl: '使用 SSL',
        clientKey: '客户端私钥',
        clientCert: '客户端证书',
        hasCA: '拥有 CA 证书',
        caCert: 'CA 证书',
        skipVerify: '忽略校验证书可用性检测',
        initialDB: '初始数据库',

        formatHelper: '当前数据库字符集为 {0}，字符集不一致可能导致恢复失败',
        dropHelper: '将上传文件拖拽到此处，或',
        clickHelper: '点击上传',
        supportUpType:
            '仅支持 sql、sql.gz、tar.gz、.zip 文件格式，导入的压缩文件必须保证只有一个 .sql 文件或包含 test.sql',

        currentStatus: '当前状态',
        baseParam: '基础参数',
        performanceParam: '性能参数',
        runTime: '启动时间',
        connections: '总连接数',
        bytesSent: '发送',
        bytesReceived: '接收',
        queryPerSecond: '每秒查询',
        txPerSecond: '每秒事务',
        connInfo: '活动/峰值连接数',
        connInfoHelper: '若值过大，增加 max_connections',
        threadCacheHit: '线程缓存命中率',
        threadCacheHitHelper: '若过低,增加 thread_cache_size',
        indexHit: '索引命中率',
        indexHitHelper: '若过低,增加 key_buffer_size',
        innodbIndexHit: 'Innodb 索引命中率',
        innodbIndexHitHelper: '若过低,增加 innodb_buffer_pool_size',
        cacheHit: '查询缓存命中率',
        cacheHitHelper: '若过低,增加 query_cache_size',
        tmpTableToDB: '创建临时表到磁盘',
        tmpTableToDBHelper: '若过大,尝试增加 tmp_table_size',
        openTables: '已打开的表',
        openTablesHelper: 'table_open_cache 配置值应大于等于此值',
        selectFullJoin: '没有使用索引的量',
        selectFullJoinHelper: '若不为0，请检查数据表的索引是否合理',
        selectRangeCheck: '没有索引的 JOIN 量',
        selectRangeCheckHelper: '若不为0，请检查数据表的索引是否合理',
        sortMergePasses: '排序后的合并次数',
        sortMergePassesHelper: '若值过大，增加sort_buffer_size',
        tableLocksWaited: '锁表次数',
        tableLocksWaitedHelper: '若值过大，请考虑增加您的数据库性能',

        performanceTuning: '性能调整',
        optimizationScheme: '优化方案',
        keyBufferSizeHelper: '用于索引的缓冲区大小',
        queryCacheSizeHelper: '查询缓存，不开启请设为0',
        tmpTableSizeHelper: '临时表缓存大小',
        innodbBufferPoolSizeHelper: 'Innodb 缓冲区大小',
        innodbLogBufferSizeHelper: 'Innodb 日志缓冲区大小',
        sortBufferSizeHelper: '* 连接数, 每个线程排序的缓冲大小',
        readBufferSizeHelper: '* 连接数, 读入缓冲区大小',
        readRndBufferSizeHelper: '* 连接数, 随机读取缓冲区大小',
        joinBufferSizeHelper: '* 连接数, 关联表缓存大小',
        threadStackelper: '* 连接数, 每个线程的堆栈大小',
        binlogCacheSizeHelper: '* 连接数, 二进制日志缓存大小(4096的倍数)',
        threadCacheSizeHelper: '线程池大小',
        tableOpenCacheHelper: '表缓存',
        maxConnectionsHelper: '最大连接数',
        restart: '重启数据库',

        slowLog: '慢日志',
        noData: '暂无慢日志...',

        isOn: '开启',
        longQueryTime: '阈值(秒)',
        thresholdRangeHelper: '请输入正确的阈值(1 - 600)',

        timeout: '超时时间(秒)',
        timeoutHelper: '空闲连接超时时间，0表示不断开',
        maxclients: '最大连接数',
        requirepassHelper: '留空代表没有设置密码，修改需要单独保存并且重启容器！',
        databases: '数据库数量',
        maxmemory: '最大内存使用',
        maxmemoryHelper: '0 表示不做限制',
        tcpPort: '当前监听端口',
        uptimeInDays: '已运行天数',
        connectedClients: '连接的客户端数量',
        usedMemory: '当前 Redis 使用的内存大小',
        usedMemoryRss: '向操作系统申请的内存大小',
        usedMemoryPeak: 'Redis 的内存消耗峰值',
        memFragmentationRatio: '内存碎片比率',
        totalConnectionsReceived: '运行以来连接过的客户端的总数量',
        totalCommandsProcessed: '运行以来执行过的命令的总数量',
        instantaneousOpsPerSec: '服务器每秒钟执行的命令数量',
        keyspaceHits: '查找数据库键成功的次数',
        keyspaceMisses: '查找数据库键失败的次数',
        hit: '查找数据库键命中率',
        latestForkUsec: '最近一次 fork() 操作耗费的微秒数',
        redisCliHelper: '未检测到 redis-cli 服务，请先启用服务！',
        redisQuickCmd: 'Redis 快速命令',

        recoverHelper: '即将使用 [{0}] 对数据进行覆盖，是否继续?',
        mongodbRecoverDropAllCollections: '恢复前清空当前数据库',
        mongodbRecoverDropAllCollectionsHelper:
            '默认仅覆盖已有集合，保留新增集合；开启后将清空当前数据库，并按备份内容恢复。',
        submitIt: '覆盖数据',

        baseConf: '基础配置',
        allConf: '全部配置',
        restartNow: '立即重启',
        restartNowHelper1: '修改配置后需要重启生效，若您的数据需要持久化请先执行 save 操作。',
        restartNowHelper: '修改配置后需要重启生效。',

        persistence: '持久化',
        rdbHelper1: '秒內,插入',
        rdbHelper2: '条数据',
        rdbHelper3: '符合任意一个条件将会触发RDB持久化',
        rdbInfo: '请确认规则列表中值在 1-100000 之间',

        containerConn: '容器连接',
        copyConnURL: '复制连接 URL',
        connAddress: '地址',
        containerConnHelper: 'PHP 运行环境/容器安装的应用使用此连接地址',
        remoteConn: '外部连接',
        remoteConnHelper2: '非容器环境或外部连接需使用此地址。',
        remoteConnHelper3: '默认访问地址为主机IP，修改请前往面板设置页面的「默认访问地址」配置项。',
        localIP: '本机 IP',
    },
    aiTools: {
        agents: {
            agent: '智能体',
            account: '模型账号',
            batchOperation: '批量操作',
            operationType: '操作类型',
            batchAction: '批量{0}',
            installSkillAction: '下发 Skill',
            batchAgentTask: '批量{0}智能体',
            dispatchAgentTask: '下发智能体{0}任务',
            dispatchTask: '下发{0}任务',
            taskSubmitted: '{0}任务已下发',
            allNodes: '所有节点',
            targetVersion: '目标版本',
            skillSource: 'Skill 来源',
            skillKeyword: 'Skill 关键词',
            clawHubSkillPlaceholder: '请先搜索并选择 Skill',
            noAccountHint: '选择已有模型账号，或直接创建',
            accountCount: '模型账号 {0} 个',
            syncAgents: '同步关联智能体',
            syncAgentsHelper: '更新使用该模型账号的智能体 openclaw.json',
            appVersion: '应用版本',
            webuiPort: 'WebUI 端口',
            tokenOrAuth: 'Token/Auth',
            allowedOrigins: '访问地址',
            allowedOriginsRequired: '请至少填写一个访问地址',
            allowedOriginsInvalid: '访问地址格式错误，请输入 http(s)://域名或IP[:端口]',
            provider: '模型供应商',
            accountModelsHelper: '配置账号可提供给 OpenClaw 使用和切换的模型列表',
            accountModelsRequired: '请至少配置一个模型',
            verifyModel: '验证模型',
            verifyModelHelper: '请选择该账号有权限调用的模型，保存时将使用它发送最小请求验证连接。',
            verifyModelRequired: '请选择验证模型',
            discoverModels: '获取模型',
            automaticModelDiscovery: '自动获取',
            manualModelConfiguration: '手动配置',
            discoverModelsHelper: '从供应商的 /v1/models 接口获取模型，获取后将全部加入模型池',
            discoverModelsFailedFallback: '获取模型失败，请手动配置模型',
            discoverModelsFailedUseDefaults: '获取模型失败，已使用默认模型',
            accountModelsDuplicate: '模型池中存在重复模型，请检查后重试',
            modelPool: '模型池',
            fallbackModels: '备用模型',
            addFallbackModel: '新增备用模型',
            fallbackModelsEmpty: '尚未配置备用模型',
            modelInputTypes: '输入类型',
            reasoning: '推理模型',
            verified: '验证状态',
            verifySkipped: '不验证',
            skillsTab: '技能',
            pluginsTab: '插件',
            pluginsInstalled: '已安装',
            pluginsMarket: '插件市场',
            pluginsMarketHint: '请输入关键词搜索插件',
            pluginSearchPlaceholder: '搜索插件...',
            pluginOrigin: '来源',
            pluginOriginAll: '全部来源',
            pluginOriginBundled: '内置',
            pluginOriginExternal: '外部',
            pluginStatusAll: '全部状态',
            pluginEnabled: '已启用',
            pluginDisabled: '已禁用',
            pluginCategory: '分类',
            pluginVerification: '验证',
            pluginOfficial: '官方',
            pluginCommunity: '社区',
            pluginDownloads: '下载量',
            pluginEnable: '启用',
            pluginDisable: '禁用',
            pluginListEmpty: '暂无插件',
            pluginSearchEmpty: '未找到相关插件',
            pluginInstallConfirm: '确认安装插件 {0}？',
            pluginDisableConfirm: '确认禁用插件 {0}？',
            pluginUninstallConfirm: '确认卸载插件 {0}？',
            securityTab: '安全',
            otherTab: '其他',
            timeZone: '时区',
            browserEnabled: '浏览器开关',
            npmRegistry: 'NPM 源',
            npmRegistryHelper: '用于 OpenClaw 插件安装时的 npm registry，可选择预设源或手动输入自定义源',
            npmRegistryInvalid: '请输入正确的 NPM 源地址，需以 http:// 或 https:// 开头',
            pluginInstallNPMRegistryHelper: '可前往 设置 -> 其他 配置 NPM 源，以加速插件安装',
            skillsSearchPlaceholder: '搜索技能...',
            skillsEmpty: '暂无技能',
            skillsMarket: '技能市场',
            skillsMarketHint: '请选择来源并搜索技能',
            skillsMarketEmpty: '未找到相关技能',
            skillsMarketSourceClawhubGlobal: 'ClawHub（全球）',
            skillsMarketSourceClawhubChina: 'ClawHub（中国）',
            skillsMarketSourceSkillhub: 'SkillHub（腾讯）',
            skillsMarketSourceLocalHub: '本地 Skill 商店',
            skillsScore: '评分',
            skillsMarketSourceOfficial: '官方',
            versionUnsupportedTitle: '当前版本暂不支持该功能',
            versionUnsupportedHelper: '请升级 OpenClaw 到 {0} 或以上版本后使用。',
            skillsGroupBuiltIn: '内置',
            skillsGroupExternal: '外部',
            skillsGroupWorkspace: '工作区',
            switchModelSuccess: '模型切换成功',
            channelsTab: '频道',
            agentRoleTab: '角色',
            agentRoleUnsupported: '当前仅 OpenClaw 支持角色管理。',
            workspace: '工作区目录',
            agentDir: 'Agent 目录',
            roleMarkdownDescriptions: {
                'AGENTS.md': ['Agent 的操作说明，以及如何使用记忆。', '适合放规则、优先级和行为方式等内容。'],
                'SOUL.md': ['人格、语气和边界。'],
                'USER.md': ['用户是谁，以及应该如何称呼和回应用户。'],
                'IDENTITY.md': ['Agent 的名字、气质和 emoji。'],
                'TOOLS.md': ['关于本地工具和约定的说明。'],
                'HEARTBEAT.md': ['可选的心跳运行检查清单。', '尽量保持简短，避免消耗过多 token。'],
                'BOOT.md': [
                    '可选的启动检查清单，会在 gateway 重启且启用内部 hooks 时执行。',
                    '尽量保持简短；如需对外发送消息，请使用 message 工具。',
                ],
                'BOOTSTRAP.md': ['首次运行引导流程', '只会在全新的工作区中创建。'],
            },
            duplicateBinding: '频道和账号 ID 不能重复',
            accountIdOptional: '账号 ID（可选）',
            saveAllMd: '保存全部',
            roleMarkdownRestartHelper: '保存当前全部 MD 文件后，需要重启容器才能生效。请选择立即重启或稍后重启。',
            configFileRestartHelper: '保存配置文件后需要重启容器才能生效。',
            overviewSnapshot: '状态概览',
            primaryModel: '主模型',
            defaultModel: '默认模型',
            channelCount: '已配置频道数量',
            skillCount: '技能数量',
            jobCount: '定时任务数量',
            sessionCount: '会话数量',
            hermesChatAction: '对话',
            hermesChatTitle: 'Hermes 对话',
            hermesChatDialogTitle: 'Hermes 对话 - {0}',
            hermesChatNewChat: '新对话',
            hermesChatNoSessions: '暂无会话',
            hermesChatMessageCount: '{0} 条',
            hermesChatEmptyHint: '选择左侧会话或点击新对话',
            hermesChatTitlePlaceholder: '请输入会话标题',
            hermesChatRenameSuccess: '会话标题已更新',
            hermesChatDeleteConfirm: '确认删除会话 {0}？',
            hermesChatDeleteSuccess: '会话已删除',
            weixin: '微信',
            wecom: '企业微信',
            dingtalk: '钉钉',
            feishu: '飞书',
            pluginNotInstalled: '插件未安装，请先安装插件',
            dmPolicy: '私聊策略',
            threadSession: '线程会话',
            replyMode: '回复模式',
            requireMention: "群聊需 {'@'} 机器人",
            requireMentionTrue: "需要 {'@'}",
            requireMentionFalse: "无需 {'@'}",
            requireMentionOpen: '按群组配置',
            groupPolicy: '群组策略',
            policyAllowlist: '白名单',
            policyOpen: '开放',
            policyDisabled: '禁用',
            bots: 'Bot 列表',
            addBot: '新增 Bot',
            accountId: '账户 ID',
            accountIdPlaceholder: '用于区分不同 Bot 的唯一标识，保存后用于配置和路由识别',
            setDefaultBot: '设为默认 Bot',
            botDuplicateField: '{field} 不能重复',
            botRequired: '请至少添加一个 Bot',
            botId: 'Bot ID',
            allowFrom: '私聊白名单',
            allowFromPlaceholder: '一行一个发送方标识',
            allowlistPolicyHelper: '{0}，仅在{1}为白名单时生效',
            systemPrompt: '系统提示词',
            groupAllowFrom: '群组白名单',
            groupAllowFromPlaceholder: '一行一个群组标识',
            separateSessionByConversation: '按会话隔离',
            groupSessionScope: '群会话范围',
            groupSessionScopeGroup: '整群共享',
            groupSessionScopeGroupSender: '群内按人隔离',
            sharedMemoryAcrossConversations: '跨会话共享记忆',
            asyncMode: '异步模式',
            ackText: '确认消息',
            ackTextDefault: '任务已接收，处理中...',
            streaming: '流式传输',
            streamingOff: '关闭',
            streamingPartial: '部分输出',
            streamingBlock: '阻塞输出',
            streamingProgress: '进度输出',
            allowFromRequired: '请至少填写一个白名单项',
            pairingCode: '配对码',
            pairingCodePlaceholder: '请输入配对码',
            approvePairing: '批准配对',
            saveSuccess: '保存成功',
            successAndRestart: '{0}，容器正在自动重启。',
            pairingApproveSuccess: '配对成功',
            scanConnect: '扫码对接',
            scanConnectHelper: '点击后将在任务日志中显示二维码，扫码确认成功后将自动重启容器。',
            channelAutoRestartHelper: '保存后将自动重启容器以使配置生效。',
            dashboardAuthAutoRebuildHelper: '保存用户名密码后将自动重建容器以使配置生效。',
            dashboardAuthImmediateHelper: '保存后将立即更新 QwenPaw 登录凭据，无需重启容器。',
            channelDeleteConfirm: '确认删除 {0} 频道配置？',
            apiTypeBaseURLHelper: '当前类型最终请求 {0}，Base URL 建议填写 {1}',
            customImageURLHelper: 'Custom 图片账号请填写完整的图片生成接口 URL，系统不会自动补全路径，例如：{0}',
            apiTypeBaseURLMismatch: '当前 Base URL 看起来是 {0} 路径，和已选择的 {1} 不一致，建议改为 {2}',
            validateAvailability: '验证账号可用性',
            validateAvailabilityHelper: '保存前发送最小消息验证接口可用性',
            validateImageAvailabilityHelper: '保存前会真实生成一张最小图片，可能产生费用',
        },
        model: {
            model: '模型',
            localModel: '本地模型',
            create_helper: '拉取 "{0}"',
            ollama_doc: '您可以访问 Ollama 官网，搜索并查找更多模型。',
            container_conn_helper: '容器间访问或连接使用此地址',
            ollama_sync: '同步 Ollama 模型发现下列模型不存在，是否删除？',
            from_remote: '该模型并非通过 1Panel 下载，无相关拉取日志。',
            no_logs: '该模型的拉取日志已被删除，无法查看相关日志。',
            vllmVersionHelper: 'FusionXpark GB 10 服务器请选择 -cu130 版本',
            vllmCommandPortHelper: '启动命令必须使用 {0} 端口，否则服务将无法访问。',
            syncModelAccount: '同步到模型账号',
            modelAccountAddressHelper:
                '容器地址适合智能体容器调用；127.0.0.1、本机 IP 或自定义地址适合 AI 网关或外部服务调用。',
            containerAddress: '容器地址',
            customAddress: '自定义地址',
            downloader: '下载器',
            modelDir: '模型目录',
            manualDownload: '手动下载',
            modelSource: '模型来源',
            repoID: '仓库 ID',
            endpointLabel: '{0} 地址',
            acceleratedEndpointLabel: '{0} 加速地址',
            tokenOptionalLabel: '{0} Token（可选）',
            searchSource: '搜索 {0}',
            hfEndpointHelper: '国内访问 HuggingFace 不稳定时可配置加速地址，搜索、详情和下载都会使用该地址。',
            sortTrending: '热门趋势',
            sortLikes: '点赞最多',
            sortDownloads: '下载最多',
            sortUpdated: '最近更新',
            sortCreated: '最新创建',
            downloadsCount: '下载量',
            likes: '点赞',
            taskQueue: '下载队列',
            progress: '进度',
            localDownloaded: '已下载',
            modelInfo: '模型详情',
            downloading: '下载中',
            canceled: '已取消',
            downloadQueued: '已加入下载队列',
            cancelTaskConfirm: '确认取消该下载任务？',
            deleteLocalModelConfirm: '确认删除本地模型 {0}？',
        },
        proxy: {
            proxy: 'AI 网关增强',
            proxyHelper1: '绑定域名并开启 HTTPS，增强传输安全性',
            proxyHelper2: '限制 IP 访问，防止在公网暴露',
            proxyHelper3: '开启流式传输',
            proxyHelper4: '创建完成之后可以在网站列表中查看并管理',
            proxyHelper5: '创建完成之后可以在应用商店 - 已安装 - ollama - 参数中取消端口外部访问以提高安全性',
            proxyHelper6: '如需关闭代理配置，可以在网站列表中删除',
            whiteListHelper: '限制仅白名单中的 IP 可访问',
        },
        aiProxy: {
            title: 'AI 网关',
            apiReference: '接口说明',
            notInstalled: '未安装',
            usage: '用量统计',
            accountPool: '账号池',
            importModelAccount: '导入模型账号',
            editModelAccount: '编辑模型账号',
            selectModelAccount: '选择已有模型账号',
            upstreamApiAddress: '上游 API 地址',
            priority: '优先级',
            healthStatus: '健康状态',
            failureCount: '失败次数',
            lastError: '最近错误',
            modelMap: '模型映射',
            qpsLimit: 'QPS 限制',
            tokenLimit: 'Token 限制',
            tokenUsed: '已用 Token',
            tokenRemaining: '剩余 Token',
            resetToken: '重置 Token',
            resetTokenConfirm: '确认重置 {0} 的 Token 用量？',
            unlimited: '不限',
            unlimitedWithAuto: '不限，包含 auto',
            apiKeyCount: 'API Key 数',
            lastUsedAt: '最近使用时间',
            validityPeriod: '有效期',
            keepCurrentValidity: '保持当前有效期',
            neverExpires: '永不过期',
            validForDays: '有效 {0} 天',
            customDays: '自定义天数',
            enterValidityDays: '请输入有效天数',
            currentExpiresAt: '当前到期时间：{0}',
            currentNeverExpires: '当前为永不过期',
            expiresAt: '到期时间',
            expired: '已过期',
            reactivate: '重新激活',
            settingTitle: 'AI 网关设置',
            basicSetting: '基础设置',
            performanceSetting: '性能设置',
            logSetting: '日志设置',
            lbPolicy: '负载策略',
            protocolConversion: '协议转换',
            protocolConversionDesc:
                '开启后，文本请求可在 Chat Completions、Responses 和 Anthropic Messages 的受支持协议间直接转换，原生协议始终优先。',
            protocolConversionRisk:
                '协议转换无法保证无损，协议专属字段、工具调用、思考内容或多模态内容可能被降级或丢失，请权衡之后使用。',
            visionEnhancement: '视觉增强',
            visionEnhancementRisk: '视觉增强可能会将图片发送给独立的视觉模型供应商。',
            visionModelGroup: '视觉模型组',
            visionModelGroupDesc: '从该文本生成模型组中选择一个支持图片理解的模型，同一请求中的图片共用该模型。',
            visionTargetModelGroup: '目标模型组',
            visionTargetModelGroupDesc: '仅该文本生成模型组中的请求模型启用视觉增强，不会改变最终请求模型。',
            visionEnhancementDesc:
                '图片会先转换为文本证据，可能丢失细节，并增加延迟和模型费用。网关不会检测目标模型是否原生支持图片；保存后会重启网关，请权衡之后使用。',
            visionPreprocess: '视觉预处理',
            cacheHit: '缓存命中',
            apiType: 'API 类型',
            lbPolicyRoundRobin: '轮询',
            lbPolicyRoundRobinDesc: '按顺序依次选择可用模型账号，适合后端能力接近的场景。',
            lbPolicyWeightedRoundRobin: '加权轮询',
            lbPolicyWeightedRoundRobinDesc:
                '根据模型账号权重分配请求，权重越高承担的请求越多，适合后端性能不同的场景。',
            lbPolicyFailover: '故障转移',
            lbPolicyFailoverDesc: '优先使用优先级最高的模型账号，失败或冷却后再切换到下一个可用账号。',
            maxConcurrency: '最大并发',
            queueSize: '等待队列大小',
            queueTimeoutSeconds: '队列等待超时（秒）',
            requestTimeoutSeconds: '非流式请求超时（秒）',
            streamIdleTimeoutSeconds: '流式空闲超时（秒）',
            maxBodyMb: '最大请求体（MB）',
            runtimeRefreshSeconds: 'Runtime 刷新间隔（秒）',
            logRetentionDays: 'AI 网关日志保留天数',
            clearLogs: '清空日志',
            clearLogsConfirm: '将清空 AI 网关用量统计、内容合规审计、智能路由决策、请求体日志和服务日志，是否继续？',
            usageRetentionDays: '用量统计保留天数',
            contentAuditRetentionDays: '内容合规审计日志保留天数',
            logCleanupIntervalHours: '日志清理间隔（小时）',
            requestBodyLog: '请求体日志',
            requestBodyLogDesc: '用于将 AI 网关请求与响应内容写入 Elasticsearch，便于检索、审计和问题排查。',
            requestBodyLogIndexPrefix: '索引前缀',
            requestBodyLogRetentionDays: '请求体日志保留天数',
            requestBodyLogMaxBodyKb: '单请求体最大保存大小（KB）',
            requestBody: '请求体',
            requestBodySize: '请求体大小',
            requestBodyTruncated: '是否截断',
            responseBody: '响应体',
            responseBodySize: '响应体大小',
            responseBodyTruncated: '响应体是否截断',
            readableContent: '可读内容',
            rawResponse: '原始响应',
            replyContent: '回复内容',
            reasoningContent: '思考内容',
            statusTitle: 'AI 网关状态',
            serviceEnabled: '服务自启',
            proxyEnabled: '网关启用',
            statusMessage: '状态信息',
            esLogDropped: 'ES 日志丢弃数',
            esLogLastSuccessAt: 'ES 最近写入时间',
            esLogCircuitOpen: '熔断中',
            esLogCircuitUntil: 'ES 熔断结束时间',
            serviceOperateConfirm: '确认{0} AI 网关服务？',
            deleteTargetConfirm: '确认删除{0} {1}？',
            deleteBackendTitle: '删除模型账号',
            userFallback: '已删除用户 (ID: {0})',
            requestModel: '请求模型',
            upstreamModel: '上游模型',
            upstreamDuration: '上游耗时',
            requestModelPlaceholder: '如 qwen2.5-coder',
            upstreamModelPlaceholder: '如 Qwen/Qwen2.5-Coder-32B-Instruct',
            addMapping: '添加映射',
            overview: '概览',
            distribution: '分布',
            usageTrend: '使用趋势',
            distributionBy: '按{0}分布',
            unmatched: '未匹配',
            modelAccount: '模型账号',
            serviceProvider: '服务商',
            tokenUsage: 'Token 用量',
            percent: '占比',
            ranking: '排行榜',
            rank: '排名',
            promptToken: '输入 Token',
            completionToken: '输出 Token',
            totalToken: '总 Token',
            cachedToken: '缓存 Token',
            cacheHitRate: '缓存命中率',
            activeUsers: '活跃用户',
            activeModels: '活跃模型',
            failedRequests: '失败请求',
            averageTokenPerRequest: '平均 Token/请求',
            callLogs: '调用日志',
            usageKeywordPlaceholder: '搜索 Request ID / 模型 / 上游模型 / 错误信息',
            attemptChain: '调用链路',
            attemptIndex: '调用顺序',
            clientProtocol: '客户端 API',
            upstreamProtocol: '上游 API',
            conversionPath: '转换路径',
            noAttemptDetails: '暂无调用链路记录',
            input: '输入',
            output: '输出',
            total: '总计',
            healthHealthy: '健康',
            healthCooldown: '冷却',
            healthUnhealthy: '异常',
            healthDeleted: '已删除',
            healthUnknown: '未知',
            validationModelMapEmpty: '模型映射的模型名不能为空',
            validationModelMapDuplicate: '请求模型 {0} 重复',
            modelGroup: '模型组',
            modelCapability: '模型能力',
            textGeneration: '文本生成',
            imageGeneration: '图片生成',
            textModels: '文本模型',
            textToImageModels: '文生图模型',
            unauthorized: '未授权',
            imageCount: '图片数量',
            availableModels: '可用模型',
            modelGroupModels: '请求模型',
            modelGroupModelsPlaceholder: '请选择或输入请求模型名',
            modelGroupModelsHelper:
                '填写客户端请求 AI 网关时使用的请求模型名；智能路由会按顺序优先选择靠前模型，不做模型间负载均衡。',
            modelGroupGuide:
                '模型组配置客户端请求 AI 网关时使用的请求模型名；上游模型在账号池的模型映射中配置。auto 是虚拟模型名，不需要放进模型组。',
            modelGroupModelCount: '{0} 个模型',
            contentCompliance: '内容合规',
            contentAction: '处理动作',
            actionBlock: '阻断',
            actionAuditOnly: '仅记录',
            actionDropHistory: '删除历史',
            severity: '风险等级',
            severityHigh: '高',
            severityMedium: '中',
            severityLow: '低',
            sensitiveWord: '敏感词',
            sensitiveGroup: '敏感词分组',
            sensitiveWordCount: '词数',
            normalizedWord: '归一化词',
            matchedWords: '命中词',
            matchedGroups: '命中分组',
            importResult: '导入成功 {0} 条，重复 {1} 条，无效 {2} 条',
            auditLogs: '审计日志',
            smartRoute: '智能路由',
            smartRouteGuideTitle: '客户端使用 model=auto 进入智能路由',
            smartRouteGuideReady:
                'model=auto 会按请求复杂度在简单模型组和复杂模型组中选择模型；model 不是 auto 时仍按普通 AI 网关转发。',
            smartRouteGuideNotReady:
                '请先在设置中开启智能路由并配置简单/复杂模型组；配置完成后客户端使用 model=auto 进入智能路由。',
            copyAutoModel: '复制 auto',
            goSmartRouteSetting: '去设置',
            smartRoutePolicy: '路由策略',
            routeConfig: '路由配置',
            embeddingConfig: 'Embedding 设置',
            embeddingConfigDesc:
                '用于智能路由和内容合规语义样本匹配。建议使用 llama.cpp + Qwen3-Embedding-0.6B，配置后可重建样本向量。',
            decisionConfig: '判定参数',
            simpleModelGroup: '简单模型组',
            complexModelGroup: '复杂模型组',
            embeddingEndpoint: '地址',
            embeddingModel: '模型',
            embeddingApiKey: 'API Key',
            routeThreshold: '路由阈值',
            routeThresholdHelper: '用于智能路由：请求与简单/复杂样本相似度达到该值后，才采用样本匹配结果。',
            auditThreshold: '审核阈值',
            auditThresholdHelper: '用于内容合规：请求与审核样本相似度达到该值后，才认为命中审核样本。',
            topK: 'TopK',
            topKHelper: '每次取最相似的样本数量。',
            members: '成员',
            samples: '样本',
            routeSamplesGuide:
                '样本是简单/复杂问题的示例，用于 Embedding 相似度匹配；文本尽量写真实用户请求，新增后可生成或重建向量。',
            rebuildVectors: '重建向量',
            rebuildVectorsConfirm: '重建向量会重新请求 Embedding 服务处理智能路由和内容合规样本，是否继续？',
            createVectorOnImport: '导入后创建向量',
            createVectorOnImportHelper: '默认选中。已配置 Embedding 时会创建后台任务生成向量，未配置时仅创建样本。',
            route: '路由',
            audit: '审核',
            auditSamples: '审核样本',
            sampleText: '文本',
            sampleLabel: '标签',
            vectorModel: '向量模型',
            vectorDim: '维度',
            threshold: '阈值',
            preview: '预览',
            previewGuide: '预览用于测试一段请求会判为简单还是复杂，不会真实调用上游模型；来源为样本匹配或规则判断。',
            previewPlaceholder: '输入请求文本',
            confidence: '置信度',
            bestSampleSimilarity: '最高样本相似度',
            source: '来源',
            sourceHeuristic: '规则判断',
            sourceEmbedding: '样本匹配',
            sourceContext: '上下文继承',
            latency: '耗时',
            decisionLogs: '决策日志',
            requestID: '请求 ID',
            simple: '简单',
            complex: '复杂',
            sampleLabelSafe: '安全',
            sampleLabelReview: '复核',
            sampleLabelBlock: '阻断',
            latencyMs: '耗时(ms)',
            smartRouteSettingGuide:
                '开启后只有 model=auto 的请求才触发智能路由；简单模型组用于低成本任务，复杂模型组用于代码分析、架构设计、故障排查等任务。',
            sampleLabelPlaceholder: 'simple / complex / high',
            sampleImportPlaceholder: '每行一个样本',
        },
        skillsHub: {
            title: 'Skills Hub',
            upload: '上传 Skill',
            importSkill: '导入 Skill',
            repositoryAddress: '仓库地址',
            repositoryGithubOnly: '仅支持 GitHub 仓库地址',
            repositoryRef: '分支或 Tag',
            repositoryRefPlaceholder: '默认为 main，失败后将尝试 master',
            repositoryDownloadPreview: '目标下载地址：',
            packageURL: '压缩包 URL',
            packageURLPlaceholder: '请输入 .zip 压缩包地址',
            importSuccess: 'Skill 导入成功，已进入待审核状态。',
            source: '来源',
            applicableAgent: '适用智能体',
            overview: '概览',
            versionHistory: '版本历史',
            publishedAt: '上架时间',
            versionMarker: '标记',
            currentVersion: '当前查看',
            latestVersion: '最新版本',
            latestPublished: '最新发布',
            riskLevel: '风险等级',
            riskReferenceHint:
                '风险等级由系统根据 Skill 包内容自动检测生成，仅作为审核参考，不代表绝对安全。\n低：未发现明显风险\n中：包含脚本、依赖、外部 URL 或环境变量\n高：包含远程执行、敏感信息或高危命令',
            riskCheckResult: '安全检查结果',
            noRiskFound: '暂未发现明显风险。',
            riskFilePath: '文件路径',
            riskKeyword: '命中的关键字或规则',
            riskDescription: '风险说明',
            publishHighRiskConfirm: '该 Skill 存在高风险项，可能包含脚本执行、外部下载或敏感信息访问。确认仍要上架吗？',
            approve: '审核通过',
            reject: '审核驳回',
            publish: '上架',
            disable: '下架',
            customTarget: '自定义智能体',
            addCustomTarget: '添加智能体',
            installToTarget: '安装到自定义智能体',
            hostSkillDir: 'Skill 目录',
            hostSkillDirHelper: '请填写节点 Skill 目录路径。',
            installMethod: '安装方式',
            copy: '复制',
            extract: '解压',
            postInstallCommand: '安装后命令',
            localSource: '本地上传',
            uploadDragTitle: '拖拽 Skill 包到此处，或点击上传',
            uploadFormatLabel: '支持格式：',
            uploadFormatValue: '.zip、.7z、.tar、.tar.gz',
            uploadSizeLabel: '文件大小：',
            uploadSizeValue: '单个文件不超过 5 MB',
            uploadRequirementLabel: '包内要求：',
            uploadRequirementPrefix: 'Skill 包内必须包含',
            onlySupportedArchive: '仅支持上传 .zip、.7z、.tar、.tar.gz 格式的 Skill 包',
            uploadSizeExceeded: '单个 Skill 包不能超过 5 MB',
            uploadSuccess: 'Skill 上传成功，已进入待审核状态。',
            versionAutoFillPlaceholder: '可从文件名自动识别，请确认或手动填写',
            metadataOverwriteConfirm: 'Skill 包内的版本号与当前填写内容不一致，是否以当前填写内容为准？',
            metadataOverwriteConfirmWithVersions:
                'Skill 包内的版本号与当前填写内容不一致，包内版本：{packageVersion}，填写版本：{inputVersion}，是否以当前填写内容为准？',
            offlineNotice: '当前为离线环境，仅支持从本地 Skill 商店安装技能。',
            publishConfirm: '确认上架该 Skill？上架后可在智能体中从本地 Skill 商店安装。',
            disableConfirm: '确认下架该 Skill？已安装到智能体中的 Skill 不受影响。',
            deleteConfirm: '确认删除该 Skill？删除后不可恢复，已安装到智能体中的 Skill 不受影响。',
            rejectConfirm: '确认驳回该 Skill 的审核？驳回后 Skill 将进入“审核未通过”状态。',
            downloadPublishedOnly: '仅支持下载已上架的 Skill 包。',
            deleteTargetConfirm: '确认删除该自定义智能体？删除后用户不能继续选择该安装目标。',
            noInstallTarget: '暂无可用的自定义智能体，请先配置安装目标。',
            postInstallConfirm: '该目标配置了安装后命令，执行前请确认该命令可信。',
            status: {
                pending: '待审核',
                approved: '已审核',
                published: '已上架',
                disabled: '已下架',
                rejected: '审核未通过',
                deleted: '已删除',
            },
            agent: {
                common: '通用',
            },
            risk: {
                low: '低',
                medium: '中',
                high: '高',
            },
            riskType: {
                script_file: '脚本文件',
                dependency_manifest: '依赖声明',
                external_url: '外部 URL',
                environment_variable: '环境变量',
                dockerfile: 'Dockerfile',
                command_execution: '命令执行',
                remote_script_execution: '远程脚本执行',
                eval_execution: '动态执行',
                base64_execution: 'Base64 解码执行',
                privileged_command: '提权命令',
                dangerous_delete: '危险删除',
                world_writable_permission: '高危权限',
                credential: '疑似密钥',
                sensitive_path: '敏感路径',
                suspicious_download_execute: '可疑下载执行',
                binary_content: '二进制内容',
                scan_truncated: '扫描内容截断',
            },
            riskDescriptionText: {
                script_file: '包含脚本文件，可能执行本地命令。',
                dependency_manifest: '包含依赖声明文件，安装时可能拉取外部依赖。',
                external_url: '包含外部 URL，请确认外联地址可信。',
                environment_variable: '声明了环境变量，请确认用途和默认值。',
                dockerfile: '包含 Dockerfile，可能定义镜像构建或运行逻辑。',
                command_execution: '包含命令执行相关调用，请确认执行逻辑可信。',
                remote_script_execution: '包含远程脚本下载后直接执行逻辑。',
                eval_execution: '包含 eval 动态执行逻辑。',
                base64_execution: '包含 Base64 解码后执行逻辑。',
                privileged_command: '包含 sudo 提权命令。',
                dangerous_delete: '包含危险删除命令。',
                world_writable_permission: '包含 chmod 777 权限放开命令。',
                credential: '包含疑似 API Key、Token、Secret 或 Password。',
                sensitive_path: '包含访问敏感目录或敏感文件的行为。',
                suspicious_download_execute: '包含可疑外联下载或下载后执行逻辑。',
                binary_content: '文件中包含 NUL 字节，可能隐藏可执行内容或二进制内容。',
                scan_truncated: '文件内容超过扫描上限，未扫描部分仍需人工确认。',
            },
        },
        benchmark: {
            title: '基准测试',
            launchCommand: '启动命令',
            retest: '重新测试',
            statusRunning: '运行中',
            statusWaiting: '等待中',
            base: '基础信息',
            backend: '后端',
            baseUrl: '服务地址',
            endpoint: '接口路径',
            tokenizer: '分词器',
            tokenizerPlaceholder: '请选择或输入本地分词器目录，例如 /opt/1panel/tokenizers/DeepSeek-V3',
            runConfig: '运行配置',
            rawResult: '原始结果',
            resultMetrics: '结果指标',
            contextTokens: '上下文长度',
            contextTokensHelper: '本次测试的输入 Token 与输出 Token 上限之和。',
            outputThroughput: '输出吞吐',
            outputThroughputHelper: '模型每秒生成的输出 Token 数，越高表示生成速度越快。',
            totalThroughput: '总吞吐',
            totalThroughputHelper: '每秒处理的输入与输出 Token 总数，用于衡量整体处理能力。',
            firstTokenLatency: '首 Token 延迟',
            firstTokenLatencyHelper: '从请求发出到收到第一个 Token 的时间，越低表示响应越快。',
            tokenValueHelper: '请输入正整数或 k 单位，例如 512、1k、32k',
            numPrompts: '请求数量',
            concurrency: '并发数',
            requestRate: '请求速率',
            requestRateUnlimited: '不限速（最大吞吐）',
            requestRateCustom: '自定义 QPS',
            requestRateCustomPlaceholder: '请输入每秒请求数，如 2.5',
            successfulRequests: '成功请求',
            requestThroughput: '请求吞吐',
            mean: '平均',
            median: '中位数',
            timeout: '超时时间（秒）',
            image: 'vLLM 镜像',
            ignoreEos: '忽略 EOS',
            extraHeaders: '额外请求头',
        },
        gpu: {
            gpu: 'GPU 监控',
            gpuHelper: '当前系统未检测到 NVIDIA-SMI 或 XPU-SMI 指令，请检查后重试！',
            process: '进程信息',
            processCount: '进程数',
            type: '类型',
            typeG: '图形',
            typeC: '计算',
            typeCG: '计算+图形',
            processName: '进程名称',
            shr: '共享显存',
            temperatureHelper: 'GPU 温度过高会导致 GPU 频率下降',
            gpuUtil: 'GPU 使用率',
            temperature: '温度',
            performanceState: '性能状态',
            powerUsage: '功耗',
            memoryUsage: '显存使用率',
            fanSpeed: '风扇转速',
            power: '功率',
            powerCurrent: '当前功率',
            powerLimit: '功率上限',
            memory: '显存',
            memoryUsed: '显存使用',
            memoryTotal: '显存总计',
            percent: '使用率',

            base: '基础信息',
            driverVersion: '驱动版本',
            cudaVersion: 'CUDA 版本',
            processMemoryUsage: '显存使用',
            performanceStateHelper: '从 P0 (最大性能) 到 P12 (最小性能)',
            busID: '总线地址',
            persistenceMode: '持续模式',
            enabled: '开启',
            disabled: '关闭',
            persistenceModeHelper: '持续模式能更加快速地响应任务，但相应待机功耗也会增加',
            displayActive: '显卡初始化',
            displayActiveT: '是',
            displayActiveF: '否',
            ecc: '是否开启错误检查和纠正技术',
            computeMode: '计算模式',
            default: '默认',
            exclusiveProcess: '进程排他',
            exclusiveThread: '线程排他',
            prohibited: '禁止',
            defaultHelper: '默认: 进程可以并发执行',
            exclusiveProcessHelper: '进程排他: 只有一个 CUDA 上下文可以使用 GPU, 但可以由多个线程共享',
            exclusiveThreadHelper: '线程排他: 只有一个线程在 CUDA 上下文中可以使用 GPU',
            prohibitedHelper: '禁止: 不允许进程同时执行',
            migModeHelper: '用于创建 MIG 实例，在用户层实现 GPU 的物理隔离。',
            migModeNA: '不支持',
            current: '实时监控',
            history: '历史记录',
            notSupport: '当前版本或驱动不支持显示该参数。',
        },
        mcp: {
            server: 'MCP Server',
            baseUrl: '外部访问路径',
            baseUrlHelper: '例如：http://192.168.1.1:8000',
            ssePath: 'SSE 路径',
            ssePathHelper: '例如：/sse,注意不要与其他 Server 重复',
            environment: '环境变量',
            envKey: '变量名',
            envValue: '变量值',
            externalUrl: '外部连接地址',
            operatorHelper: '将对 {0} 进行 {1} 操作，是否继续？',
            domain: '默认访问地址',
            domainHelper: '例如：192.168.1.1 或 example.com',
            bindDomain: '绑定网站',
            commandPlaceHolder: '当前仅支持 npx 和 二进制启动的命令',
            importMcpJson: '导入 MCP Server 配置',
            importMcpJsonError: 'mcpServers 结构不正确',
            bindDomainHelper: '绑定网站之后会修改所有已安装 MCP Server 的访问地址，并关闭端口的外部访问',
            outputTransport: '输出类型',
            streamableHttpPath: '流式传输路径',
            streamableHttpPathHelper: '例如：/mcp, 注意不要与其他 Server 重复',
            npxHelper: '适合 npx 或 二进制启动的 mcp',
            uvxHelper: '适合 uvx 启动的 mcp',
            protocolVersion: '协议版本',
            protocolVersionHelper: '仅用于无状态 Streamable HTTP 自动初始化下游 stdio MCP Server',
            gatewayArgsHelper:
                '参数将追加到 supergateway 启动命令，不支持修改由 1Panel 管理的传输、端口、路径和协议参数',
            testConnection: '测试连接',
            connectionSuccess: '连接成功',
            connectionFailed: '连接失败',
        },
        tensorRT: {
            llm: 'TensorRT LLM',
            modelDir: '模型目录',
            commandHelper: '若需外部访问，请将命令中的端口设置为与应用端口相同',
            imageAlert: '由于镜像较大，建议先手动将镜像下载到服务器后再进行安装',
            modelSpeedup: '启用模型加速',
            modelType: '模型类型',
        },
    },
    container: {
        createByCommand: '命令创建',
        importContainerBackupTip: '导入容器备份文件，仅支持 .tar.gz 格式',
        importComposeBackupTip: '导入编排备份文件，仅支持 .tar.gz 格式',
        stopContainerBeforeBackup: '备份前停止容器',
        stopComposeBeforeBackup: '备份前停止编排',
        stopBeforeBackupHelper: '启用后备份前将停止容器或编排服务，完成后自动恢复，以确保数据一致性',
        commandInput: '命令输入',
        commandRule: '请输入正确的 docker run 容器创建命令！',
        commandHelper: '将在服务器上执行该条命令以创建容器，是否继续？',
        updateHelper1: '检测到该容器来源于应用商店，请注意以下两点：',
        updateHelper2: '1. 当前修改内容不会同步到应用商店的已安装应用。',
        updateHelper3: '2. 如果在已安装页面修改应用，当前编辑的部分内容将失效。',
        updateHelper4: '编辑容器需要重建，任何未持久化的数据将丢失，是否继续操作？',
        containerList: '容器列表',
        operatorHelper: '将对以下容器进行 {0} 操作，是否继续？',
        operatorAppHelper:
            '将对以下容器进行 {0} 操作，\n其中部分来源于应用商店，该操作可能会影响到该服务的正常使用。\n是否继续？',
        containerDeleteHelper:
            '检测到容器来源于应用商店，删除容器不会将其从 1Panel 中完全移除。如需彻底删除，请前往应用商店-『已安装』或『运行环境』等菜单中操作。是否继续？',
        start: '启动',
        stop: '停止',
        restart: '重启',
        kill: '强制停止',
        pause: '暂停',
        unpause: '恢复',
        rename: '重命名',
        remove: '删除',
        removeAll: '删除所有',
        containerPrune: '清理容器',
        containerPruneHelper1: '清理容器 将删除所有处于停止状态的容器。',
        containerPruneHelper2:
            '若容器来自于应用商店，在执行清理操作后，您需要前往 [应用商店] 的 [已安装] 列表，点击 [重建] 按钮进行重新安装。',
        containerPruneHelper3: '该操作无法回滚，是否继续？',
        imagePrune: '清理镜像',
        imagePruneSome: '未标签镜像',
        imagePruneSomeEmpty: '暂无待清理的未使用 none 标签镜像',
        imagePruneSomeHelper: '清理下列标签为 none 且未被任何容器使用的镜像',
        imagePruneAll: '未使用镜像',
        imagePruneAllEmpty: '暂无待清理的未使用镜像',
        imagePruneAllHelper: '清理下列未被任何容器使用的镜像',
        networkPrune: '清理网络',
        networkPruneHelper: '清理网络 将删除所有未被使用的网络，该操作无法回滚，是否继续？',
        volumePrune: '清理存储卷',
        volumePruneHelper: '清理存储卷 将删除所有未被使用的本地存储卷，该操作无法回滚，是否继续？',
        cleanSuccess: '操作成功，本次清理数量: {0} 个！',
        cleanSuccessWithSpace: '操作成功，本次清理数量: {0} 个，释放磁盘空间: {1}！',
        unExposedPort: '当前端口映射地址为 127.0.0.1，无法实现外部访问',
        upTime: '运行时长',
        fetch: '过滤',
        lines: '条数',
        linesHelper: '请输入正确的日志获取条数！',
        downloadLinesHelper: '选择或者输入日志下载行数',
        lastDay: '最近一天',
        last4Hour: '最近 4 小时',
        lastHour: '最近 1 小时',
        last10Min: '最近 10 分钟',
        cleanLog: '清空日志',
        cleanLogscope: '清理类型',
        downLogHelper1: '即将下载 {0} 容器所有日志，是否继续？',
        downLogHelper2: '即将下载 {0} 容器最近 {1} 条日志，是否继续？',
        cleanLogHelper: '清空日志需要重启容器，该操作无法回滚，是否继续？',
        newName: '新名称',
        workingDir: '工作目录',
        composeFileMissing: '未检测到编排文件',
        source: '资源使用率',
        cpuUsage: 'CPU 使用',
        cpuTotal: 'CPU 总计',
        core: '核心数',
        memUsage: '内存使用',
        memTotal: '内存限额',
        memCache: '缓存使用',
        loadSize: '获取容器大小',
        ip: 'IP 地址',
        cpuShare: 'CPU 权重',
        cpuShareHelper: '容器默认份额为 1024 个 CPU，增大可使当前容器获得更多的 CPU 时间',
        inputIpv4: '请输入 IPv4 地址',
        inputIpv6: '请输入 IPv6 地址',

        diskUsage: '磁盘占用',
        localVolume: '本地存储卷',
        buildCache: '构建缓存',
        usage: '已占用：{0}, 可释放：{1}',
        clean: '释放',
        imageClean: '清理镜像 将删除所有未被使用的镜像，该操作无法回滚，是否继续？',
        containerClean: '清理容器 将删除所有处于停止中状态的容器（包括应用商店停止应用），该操作无法回滚，是否继续？',
        sizeRw: '容器层大小',
        sizeRwHelper: '容器独有的可写层大小',
        sizeRootFs: '虚拟大小',
        sizeRootFsHelper: ' 容器依赖的所有镜像层 + 容器层的总大小',

        containerFromAppHelper: '检测到该容器来源于应用商店，应用操作可能会导致当前编辑失效',
        containerFromAppHelper1: '在应用商店的已安装页面，点击 [参数] 按钮，进入编辑页面修改容器名称。',
        command: '命令',
        console: '控制台交互',
        tty: '伪终端 ( -t )',
        openStdin: '标准输入 ( -i )',
        custom: '自定义',
        emptyUser: '为空时，将使用容器默认的用户登录',
        privileged: '特权模式',
        privilegedHelper: '允许容器在主机上执行某些特权操作，可能会增加容器风险，谨慎开启！',

        upgradeHelper: '仓库名称/镜像名称:镜像版本',
        upgradeWarning2: '升级操作需要重建容器，任何未持久化的数据将会丢失，是否继续？',
        oldImage: '当前镜像',
        sameImageContainer: '同镜像容器',
        sameImageHelper: '同镜像容器可勾选后批量升级',
        targetImage: '目标镜像',
        imageLoadErr: '未检测到容器的镜像名称',
        imageUpdateTagEmpty: '未检测到可更新的镜像标签',
        appHelper: '该容器来源于应用商店，升级可能导致该服务不可用',

        resource: '资源',
        input: '手动输入',
        forcePull: '强制拉取镜像',
        forcePullHelper: '忽略服务器已存在的镜像，重新拉取一次',
        imageUpdateHelper: '将检查镜像仓库中的同名标签，若有更新则拉取并更新本地镜像。',
        server: '服务器',
        serverExample: '80, 80-88, ip:80 或 ip:80-88',
        containerExample: '80 或 80-88',
        exposePort: '暴露端口',
        exposeAll: '暴露所有',
        cmdHelper: '例： nginx -g "daemon off;"',
        entrypointHelper: '例： docker-entrypoint.sh',
        autoRemove: '容器退出后自动删除容器',
        cpuQuota: 'CPU 限制',
        memoryLimit: '内存限制',
        limitHelper: '限制为 0 则关闭限制，最大可用为 {0}',
        macAddr: 'MAC 地址',
        mount: '挂载',
        volumeOption: '挂载卷',
        hostOption: '本机目录',
        serverPath: '服务器目录',
        containerDir: '容器目录',
        volumeHelper: '请确认存储卷内容输入正确',
        networkEmptyHelper: '请确认容器网络选择正确',
        modeRW: '读写',
        modeR: '只读',
        sharedLabel: '传播模式',
        private: '私有',
        privateHelper: '容器里的挂载变化和主机互不干扰',
        rprivate: '递归私有',
        rprivateHelper: '容器里所有挂载都和主机完全隔离',
        shared: '共享',
        sharedHelper: '主机和容器里的挂载变化互相可见',
        rshared: '递归共享',
        rsharedHelper: '主机和容器里所有挂载变化都互相可见',
        slave: '从属',
        slaveHelper: '容器能看见主机的挂载变化，但自己的变化不影响主机',
        rslave: '递归从属',
        rslaveHelper: '容器里所有挂载都能看见主机变化，但不影响主机',
        mode: '权限',
        env: '环境变量',
        restartPolicy: '重启规则',
        always: '一直重启',
        unlessStopped: '未手动停止则重启',
        onFailure: '失败后重启（默认重启 5 次）',
        no: '不重启',

        refreshTime: '刷新间隔',
        cache: '缓存',

        image: '镜像',
        imagePull: '拉取镜像',
        imagePullHelper: '支持选择拉取多个镜像，输入一组镜像后回车继续',
        imagePush: '推送镜像',
        imagePushHelper: '检测到该镜像存在多个标签，请确认推送时使用的镜像名称为：{0}',
        imageDelete: '删除镜像',
        repoName: '仓库名',
        imageName: '镜像名',
        httpRepo: 'http 仓库添加授信需要重启 docker 服务',
        delInsecure: '删除授信',
        delInsecureHelper: '删除授信需要重启 docker 服务，是否删除？',
        pull: '拉取',
        path: '路径',
        importImage: '导入镜像',
        imageBuild: '构建镜像',
        buildArgs: '构建参数',
        pathSelect: '路径选择',
        label: '标签',
        imageTag: '镜像标签',
        imageTagHelper: '支持设置多个镜像 tag，输入一个 tag 后回车继续',
        push: '推送',
        fileName: '文件名',
        export: '导出',
        exportImage: '导出镜像',
        size: '大小',
        tag: '标签',
        tagHelper: '一行一个，例： \nkey1=value1\nkey2=value2',
        imageNameHelper: '镜像名称及 Tag，例：nginx:latest',
        cleanBuildCache: '清理构建缓存',
        delBuildCacheHelper: '清理构建缓存 将删除所有构建产生的缓存，该操作无法回滚，是否继续？',
        urlWarning: '路径前缀不需要添加 http:// 或 https://, 请修改',

        network: '网络',
        networkHelper: '删除 1panel-network 容器网络将影响部分应用和运行环境的正常使用，是否继续？',
        networkName: '网络名',
        driver: '模式',
        option: '参数',
        attachable: '可用',
        parentNetworkCard: '父网卡',
        subnet: '子网',
        scope: 'IP 范围',
        gateway: '网关',
        auxAddress: '排除 IP',

        volume: '存储卷',
        volumeDir: '存储卷目录',
        nfsEnable: '启用 NFS 存储',
        nfsAddress: '地址',
        mountpoint: '挂载点',
        mountpointNFSHelper: '例：/nfs, /nfs-share',
        options: '可选参数',

        repo: '仓库',
        httpRepoHelper: '操作 http 类型仓库需要重启 Docker 服务。',
        downloadUrl: '下载地址',
        imageRepo: '镜像仓库',
        repoHelper: '是否包含镜像仓库/组织/项目?',
        auth: '认证',
        mirrorHelper:
            '当存在多个加速器时，需要换行显示，例： \nhttp://xxxxxx.m.daocloud.io \nhttps://xxxxxx.mirror.aliyuncs.com',
        registrieHelper: '当存在多个私有仓库时，需要换行显示，例：\n172.16.10.111:8081 \n172.16.10.112:8081',

        compose: '编排',
        composeFile: '编排文件',
        fromChangeHelper: '切换来源将清空当前已编辑内容，是否继续？',
        composePathHelper:
            '编排文件保存路径：{0}；若 Docker Compose 中指定了项目名称，则优先使用该名称，否则使用 {1}。',
        composeNamePriorityHelper:
            '项目名称优先级：Docker Compose 配置中指定的名称 > 文件父目录名称 > 此处填写的名称。',
        composeHelper: '通过 1Panel 编辑或模版创建的编排，将保存在 {0}/docker/compose 路径下',
        deleteFile: '删除文件',
        deleteComposeHelper: '删除容器编排的所有文件，包括配置文件和持久化文件，请谨慎操作！',
        deleteCompose: '" 删除此编排',
        composeDirectory: '编排目录',
        template: '模版',
        composeTemplate: '编排模版',
        exportHelper: '将选中的镜像导出为一个 tar 文件。',
        content: '内容',
        contentEmpty: '编排内容不能为空，请输入后重试！',
        containerNumber: '容器数量',
        containerStatus: '容器状态',
        exited: '已停止',
        running: '运行中 ( {0} / {1} )',
        composeDetailHelper: '该 compose 为 1Panel 编排外部创建。暂不支持启停操作。',
        composeOperatorHelper: '将对 {0} 进行 {1} 操作，是否继续？',
        composeDownHelper: '将停止并删除 {0} 编排下所有容器及网络，是否继续？',
        composeEnvHelper2: '该编排为 1Panel 应用商店创建，请在已安装应用中修改环境变量。',
        composeContentPlaceholder: '在此写入或粘贴 docker-compose 文件内容',

        setting: '配置',
        goSetting: '去修改',
        restartHelper: '修改配置后需要重启 Docker 服务生效',
        operatorStatusHelper: '此操作将{0}Docker 服务，是否继续？',
        dockerStatus: 'Docker 服务',
        daemonJsonPathHelper: '请保证配置路径与 docker.service 中指定的配置路径保持一致。',
        mirrors: '镜像加速',
        mirrorsHelper: '优先使用加速 URL 执行操作，设置为空则取消镜像加速。',
        mirrorsHelper2: '具体操作配置请参照官方文档',
        registries: '私有仓库',
        ipv6Helper: '开启 IPv6 后，需要增加 IPv6 的容器网络，具体操作配置请参照官方文档',
        ipv6CidrHelper: '容器的 IPv6 地址池范围',
        ipv6TablesHelper: 'Docker IPv6 对 iptables 规则的自动配置',
        experimentalHelper: '开启 ip6tables 必须开启此配置，否则 ip6tables 会被忽略',
        cutLog: '日志切割',
        cutLogHelper1: '当前配置只会影响新创建的容器；',
        cutLogHelper2: '已经创建的容器需要重新创建使配置生效；',
        cutLogHelper3:
            '注意，重新创建容器可能会导致数据丢失。如果你的容器中有重要数据，确保在执行重建操作之前进行备份。',
        maxSize: '文件大小',
        maxFile: '保留份数',
        liveHelper: '允许在 Docker 守护进程发生意外停机或崩溃时保留正在运行的容器状态',
        liveWithSwarmHelper: 'live-restore 守护进程配置与 Swarm 模式不兼容',
        iptablesDisable: '关闭 iptables',
        iptablesHelper1: 'Docker 对 iptables 规则的自动配置',
        iptablesHelper2: '关闭 iptables 会导致容器无法与外部网络通信。',
        daemonJsonPath: '配置路径',
        serviceUnavailable: '当前未启动 Docker 服务，请在',
        startIn: '中开启',
        sockPath: 'Socket 路径',
        sockPathHelper: 'Docker 守护进程（Docker Daemon）与客户端之间的通信通道',
        sockPathHelper1: '默认路径：/var/run/docker.sock',
        sockPathMsg: '保存设置 Socket 路径可能导致 Docker 服务不可用，是否继续？',
        sockPathErr: '请选择或输入正确的 Docker sock 文件路径',
        related: '关联资源',
        includeAppstore: '显示应用商店容器',
        excludeAppstore: '隐藏应用商店容器',

        cleanDockerDiskZone: '清理 Docker 使用的磁盘空间',
        cleanImagesHelper: '( 清理所有未被任何容器使用的镜像 )',
        cleanContainersHelper: '( 清理所有处于停止状态的容器 )',
        cleanVolumesHelper: '( 清理所有未被使用的本地存储卷 )',

        makeImage: '制作镜像',
        newImageName: '新镜像名称',
        commitMessage: '提交信息',
        author: '作者',
        ifPause: '制作过程中是否暂停容器',
        ifMakeImageWithContainer: '是否根据此容器制作新镜像？',
        finishTime: '上一次停止时间',
    },
    cronjob: {
        importHelper:
            '导入时将自动跳过重名计划任务。任务默认设置为【停用】状态，数据关联异常时，设置为【待编辑】状态。',
        changeStatus: '状态修改',
        disableMsg: '停止计划任务会导致该任务不再自动执行。是否继续？',
        enableMsg: '启用计划任务会让该任务定期自动执行。是否继续？',
        taskType: '任务类型',
        nextTime: '近 5 次执行',
        record: '报告',
        viewRecords: '查看报告',
        shell: 'Shell 脚本',
        stop: '手动结束',
        stopHelper: '该操作将强制停止该次任务执行，是否继续？',
        log: '备份日志',
        logHelper: '备份系统日志',
        logHelper1: '1. 1Panel 系统日志',
        logHelper2: '2. 服务器的 SSH 登录日志',
        logHelper3: '3. 所有网站日志',
        containerCheckBox: '在容器中执行（无需再输入进入容器命令）',
        containerName: '容器名称',
        ntp: '同步服务器时间',
        ntp_helper: '您可以在工具箱的快速设置页面配置 NTP 服务器',
        app: '备份应用',
        website: '备份网站',
        rulesHelper: '支持多个排除规则，使用英文逗号 , 分隔，例如：*.log,*.sql',
        lastRecordTime: '上次执行情况',
        all: '全部',
        failedRecord: '失败记录',
        successRecord: '成功记录',
        database: '备份数据库',
        backupArgs: '备份参数',
        backupArgsHelper: '未列出的备份参数可手动输入并选择，如: 输入 --no-data 后选择下拉列表中的第一个',
        singleTransaction: '使用单一事务备份 InnoDB 表，适用于大数据量的备份',
        quick: '逐行读取数据，而不是将整个表加载到内存中，适用于大数据量和低内存机器的备份',
        skipLockTables: '不锁定所有表进行备份，适用于高并发的数据库',
        setGtidPurgedOff: '备份时不导出 GTID 信息，适用于组复制环境中的数据库恢复',
        missBackupAccount: '未能找到备份账号',
        syncDate: '同步时间 ',
        clean: '缓存清理',
        curl: '访问 URL',
        taskName: '任务名称',
        cronSpec: '执行周期',
        cronSpecDoc: '自定义执行周期仅支持【分时日月周】格式，如 0 0 * * * ，具体可参考官方文档',
        cronSpecHelper: '请输入正确的执行周期',
        cleanHelper: '该操作将清理所有任务执行记录、备份文件和日志文件，是否继续？',
        backupContent: '备份内容',
        directory: '备份目录 / 文件',
        sourceDir: '备份目录',
        snapshot: '系统快照',
        allOptionHelper: '当前计划任务为备份所有【{0}】，暂不支持直接下载，可在【{0}】备份列表中查看',
        exclusionRules: '排除规则',
        exclusionRulesHelper: '选择或输入排除规则，输入完一组后回车继续，排除规则将对此次备份的所有压缩操作生效',
        default_download_path: '默认下载地址',
        saveLocal: '同时保留本地备份（和云存储保留份数一致）',
        url: 'URL 地址',
        urlHelper: '请输入正确的 URL 地址',
        targetHelper: '备份账号可在面板设置中维护',
        withImageHelper: '备份应用商店镜像，但是会增大快照文件体积。',
        ignoreApp: '排除应用',
        withImage: '备份应用镜像',
        retainCopies: '保留份数',
        retryTimes: '失败重试次数',
        timeout: '超时时间',
        ignoreErr: '忽略错误',
        ignoreErrHelper: '忽略备份过程中出现的错误，保证所有备份任务执行',
        retryTimesHelper: '为 0 表示失败后不重试',
        retainCopiesHelper: '执行记录及日志保留份数',
        retainCopiesHelper1: '备份文件保留份数',
        retainCopiesUnit: ' 份 (查看)',
        cronSpecRule: '第 {0} 行中执行周期格式错误，请检查后重试！',
        cronSpecRule2: '执行周期格式错误，请检查后重试！',
        perMonthHelper: '每月 {0} 日 {1}:{2} 执行',
        perWeekHelper: '每周 {0} {1}:{2} 执行',
        perDayHelper: '每日 {0}:{1} 执行',
        perHourHelper: '每小时 {0}分 执行',
        perNDayHelper: '每 {0} 日 {1}:{2} 执行',
        perNHourHelper: '每 {0}小时 {1}分 执行',
        perNMinuteHelper: '每 {0}分 执行',
        perNSecondHelper: '每 {0}秒 执行',
        perMonth: '每月',
        perWeek: '每周',
        perHour: '每小时',
        perNDay: '每 N 日',
        perDay: '每天',
        perNHour: '每 N 时',
        perNMinute: '每 N 分钟',
        perNSecond: '每 N 秒',
        day: '日',
        monday: '周一',
        tuesday: '周二',
        wednesday: '周三',
        thursday: '周四',
        friday: '周五',
        saturday: '周六',
        sunday: '周日',
        shellContent: '脚本内容',
        executor: '解释器',
        errRecord: '错误的日志记录',
        errHandle: '任务执行失败',
        noRecord: '当前计划任务暂未产生记录',
        cleanData: '删除备份文件',
        cleanRemoteData: '删除远程备份文件',
        cleanDataHelper: '删除该任务执行过程中产生的备份文件',
        noLogs: '暂无任务输出...',
        errPath: '备份路径 [{0}] 错误，无法下载！',
        cutWebsiteLog: '切割网站日志',
        cutWebsiteLogHelper: '切割的日志文件会备份到 1Panel 的 backup 目录下',
        syncIpGroup: '同步 WAF IP 组',
        syncIpGroupHelper: '同步 WAF 黑白名单中的远程 IP 组',

        requestExpirationTime: '上传请求过期时间（小时）',
        unitHours: '单位：小时',
        alertTitle: '计划任务-{0}「 {1} 」任务失败告警',
        library: {
            script: '脚本',
            syncNow: '立即同步',
            turnOnSync: '开启自动同步',
            turnOnSyncHelper: '开启自动同步将在每天凌晨时段进行自动同步',
            turnOffSync: '关闭自动同步',
            turnOffSyncHelper: '关闭自动同步可能导致脚本同步不及时，是否确认？',
            isInteractive: '交互式',
            interactive: '交互式脚本',
            interactiveHelper: '在脚本执行过程中需要用户输入参数或做出选择，且无法用于计划任务中。',
            library: '脚本库',
            remoteLibrary: '远程脚本库',
            create: '添加脚本',
            edit: '修改脚本',
            groupHelper: '针对脚本特征设置不同的分组，可以更加快速的对脚本进行筛选操作。',
            handleHelper: '将在 {0} 上执行 {1} 脚本，是否继续？',
            noSuchApp: '未检测到 {0} 服务，请前往脚本库页面手动安装！',
            syncHelper: '即将同步系统脚本库，该操作仅针对系统脚本，是否继续？',
        },

        cleanLog: '清理日志',
        cleanLogscope: '清理类型',
    },
    monitor: {
        globalFilter: '全局筛选',
        enableMonitor: '监控状态',
        storeDays: '保存天数',
        defaultNetwork: '默认网卡',
        defaultNetworkHelper: '默认监控和概览界面显示的网卡选项',
        defaultIO: '默认磁盘',
        defaultIOHelper: '默认监控和概览界面显示的磁盘选项',
        cleanMonitor: '清空监控记录',
        cleanHelper: '该操作将清空包括 GPU 在内的所有监控记录，是否继续？',

        avgLoad: '平均负载',
        loadDetail: '负载详情',
        resourceUsage: '资源使用率',
        networkCard: '网卡',
        read: '读取',
        write: '写入',
        readWriteCount: '读写次数',
        readWriteTime: '读写延迟',
        today: '今天',
        yesterday: '昨天',
        lastNDay: '近 {0} 天',
        lastNMonth: '近 {0} 月',
        lastHalfYear: '近半年',
        memory: '内存',
        percent: '占比',
        cache: '缓存',
        disk: '磁盘',
        network: '网络',
        up: '上行',
        down: '下行',
        interval: '采集间隔',
        intervalHelper: '请输入合适的监控采集时间间隔（10秒 - 12小时）',
        runtimeDiagnostics: '运行时诊断',
        runtimeRSS: '进程内存 (RSS)',
        runtimeHeapAlloc: '堆内存',
        runtimeHeapObjects: '堆对象',
        runtimeGoroutines: 'Goroutine 数量',
        goroutineSnapshot: 'Goroutine 快照',
        goroutineSummary: '共 {0} 个 Goroutine，聚合为 {1} 组调用栈',
        goroutineTruncated: '快照内容过大，当前仅展示部分调用栈。',
        captureSnapshot: '刷新快照',
        count: '数量',
        topFunction: '顶层函数',
        manualCapture: '手动抓取',
        startCapture: '开始抓取',
        capturing: '正在抓取',
        captureSuccess: '诊断文件已生成，已开始下载',
        profileCPU: 'CPU',
        profileHeap: '堆内存',
        profileGoroutine: 'Goroutine',
        profileMutex: '互斥锁',
        profileBlock: '阻塞',
        runtimeRSSDesc: '进程当前占用的物理内存，包括 Go 堆、线程栈及原生内存。',
        runtimeHeapAllocDesc: 'Go 堆中已分配且尚未释放的内存，持续增长可能表示对象未释放。',
        runtimeHeapObjectsDesc: 'Go 堆中当前存活的对象数量，持续增长可能表示对象未释放。',
        runtimeGoroutineDesc: '当前轻量级并发任务数量，持续增长通常需要检查 Goroutine 泄漏。',
        profileCPUDesc: '在指定时间内采样 CPU 调用栈，用于定位实际消耗 CPU 的热点函数。',
        profileHeapDesc: '记录当前仍在使用的 Go 堆对象及其分配调用栈，用于排查内存持续增长。',
        profileGoroutineDesc: '保存所有 Goroutine 的状态和调用栈，并按相同调用链聚合。',
        profileMutexDesc: '统计互斥锁竞争造成的等待时间，用于定位锁竞争热点。',
        profileBlockDesc: '统计 Channel、Select 和同步原语的阻塞等待，用于定位长时间阻塞。',
    },
    terminal: {
        local: '本机',
        defaultConn: '默认连接',
        defaultConnHelper: '该操作将【{0}】打开终端后自动连接所在节点终端，是否继续？',
        withReset: '重置连接信息',
        localConnJump: '默认连接信息在 【 终端 - 配置 】中维护，连接失败可前往编辑！',
        nodeAdminLocalOnly: '节点管理员仅支持本地终端',
        localHelper: 'local 名称仅用于系统本机标识',
        connLocalErr: '无法自动认证，请填写本地服务器的登录信息！',
        testConn: '连接测试',
        saveAndConn: '保存并连接',
        connTestOk: '连接信息可用',
        connTestFailed: '连接不可用，请检查连接信息！',
        host: '主机',
        createConn: '新建连接',
        noHost: '暂无主机',
        groupChange: '切换分组',
        expand: '全部展开',
        fold: '全部收起',
        batchInput: '批量输入',
        quickCommand: '快速命令',
        noSuchCommand: '导入的 csv 文件中未能发现快速命令数据，请检查后重试！',
        quickCommandHelper: '常用命令列表，用于在终端界面底部快速选择',
        groupDeleteHelper: '移除分组后，分组内所有连接将迁移到 default 分组，是否继续？',
        quickCommandBatchHelper: '每行一条快速命令，以 名称---命令 格式，例如：查看磁盘---df -h',
        command: '命令',
        quickCmd: '快速命令',
        addHost: '添加主机',
        localhost: '本地服务器',
        ip: '主机地址',
        authMode: '认证方式',
        passwordMode: '密码认证',
        rememberPassword: '记住认证信息',
        keyMode: '私钥认证',
        key: '私钥',
        keyPassword: '私钥密码',
        emptyTerminal: '暂无终端连接',
        lineHeight: '字体行高',
        letterSpacing: '字体间距',
        fontSize: '字体大小',
        fontFamily: '字体集',
        fontFamilySupportHelper:
            '选择或输入字体，是否生效取决于浏览器所在系统是否已安装该字体，未安装会自动回退，为空则使用默认字体',
        backgroundColor: '背景色',
        foregroundColor: '前景色',
        cursorBlink: '光标闪烁',
        cursorStyle: '光标样式',
        cursorUnderline: '下划线',
        cursorBlock: '块状',
        cursorBar: '条形',
        scrollback: '滚动行数',
        scrollSensitivity: '滚动速度',
        aiAssistant: 'AI 助手',
        aiAccountHelper: '使用所选模型账号生成并回填命令。Ollama、vLLM 本地模型请用自定义模型账号。',
        aiPrefix: '触发前缀',
        aiPrefixHelper: '输入“前缀 + 空格”并回车时，将触发 AI 命令生成，例如：{0} 帮我查询磁盘信息。',
        aiRiskCommands: '风险命令拦截',
        aiRiskCommandsHelper: '配置需拦截的风险命令（每行一条），命中后将阻止生成并以注释回填。',
        aiSummary: '以 {0} 前缀开头并回车时，会触发 AI 命令生成',
        aiPrefixAsciiVisible: '仅支持 ASCII 可见字符，不支持空格、中文或全角符号',
        saveHelper: '是否确认保存当前终端配置？',
    },
    toolbox: {
        common: {
            toolboxHelper: '部分安装和使用问题，可参考',
        },
        swap: {
            swap: 'Swap 分区',
            swapHelper1: 'Swap 的大小应该是物理内存的 1 到 2 倍，可根据具体情况进行调整；',
            swapHelper2: '在创建 Swap 文件之前，请确保系统硬盘有足够的可用空间，Swap 文件的大小将占用相应的磁盘空间；',
            swapHelper3:
                'Swap 可以帮助缓解内存压力，但仅是一个备选项，过多依赖可能导致系统性能下降，建议优先考虑增加内存或优化应用程序内存使用；',
            swapHelper4: '建议定期监控 Swap 的使用情况，以确保系统正常运行。',
            swapDeleteHelper:
                '该操作将移除 Swap 分区 {0}。出于系统安全考虑，不会自动删除对应文件，如需删除请手动处理！',
            saveHelper: '请先保存当前设置！',
            saveSwap: '保存当前配置将调整 Swap 分区 {0} 大小到 {1}，是否继续？',
            swapMin: '分区大小最小值为 40 KB，请修改后重试！',
            swapMax: '分区大小最大值为 {0}，请修改后重试！',
            swapOff: '分区大小最小值为 40 KB，设置成 0 则关闭 Swap 分区。',
        },
        device: {
            dnsHelper: '服务器地址域名解析',
            dnsAlert: '请注意！修改 /etc/resolv.conf 文件的配置时，重启系统后会将文件恢复为默认值',
            dnsHelper1: '当存在多个 DNS 时，需换行显示，例：\n114.114.114.114\n8.8.8.8',
            hostsHelper: '主机名解析',
            hosts: '域名',
            hostAlert: '已隐藏注释记录，点击“全部配置”按钮可查看或设置',
            toolbox: '快速设置',
            hostname: '主机名',
            passwd: '系统密码',
            passwdHelper: '输入字符不能包含 $ 和 &',
            timeZone: '系统时区',
            localTime: '服务器时间',
            timeZoneChangeHelper: '系统时区修改需要重启服务，是否继续？',
            timeZoneHelper: '时区修改依赖于 timedatectl 命令，如未安装可能导致修改失败',
            timeZoneCN: '北京',
            timeZoneAM: '洛杉矶',
            timeZoneNY: '纽约',
            ntpALi: '阿里',
            ntpGoogle: '谷歌',
            syncSite: 'NTP 服务器',
            syncSiteHelper: '该操作将使用 {0} 作为源进行系统时间同步，是否继续？',
            hostnameHelper: '主机名修改依赖于 hostnamectl 命令，如未安装可能导致修改失败',
            userHelper: '用户名依赖于 whoami 命令获取，如未安装可能导致获取失败。',
            passwordHelper: '密码修改依赖于 chpasswd 命令，如未安装可能导致修改失败',
            hostHelper: '填写的内容中存在空值，请检查修改后重试！',
            dnsCheck: '测试可用性',
            dnsOK: 'DNS 配置信息可用！',
            dnsTestFailed: 'DNS 配置信息不可用，请修改后重试！',
        },
        fail2ban: {
            sshPort: '监听 SSH 端口',
            sshPortHelper: '当前 Fail2ban 监听主机 SSH 连接端口',
            unActive: '当前未开启 Fail2ban 服务，请先开启！',
            operation: '对 Fail2ban 服务进行 [{0}] 操作，是否继续？',
            fail2banChange: 'Fail2ban 配置修改',
            ignoreHelper: '白名单中的 IP 列表将被忽略屏蔽，是否继续？',
            bannedHelper: '黑名单中的 IP 列表将被服务器屏蔽，是否继续？',
            maxRetry: '最大重试次数',
            banTime: '禁用时间',
            banTimeHelper: '默认禁用时间为 10 分钟，禁用时间为 -1 则表示永久禁用',
            banTimeRule: '请输入正确的禁用时间或 -1',
            banAllTime: '永久禁用',
            findTime: '发现周期',
            banAction: '禁用方式',
            banActionOption: '通过 {0} 来禁用指定的 IP 地址',
            allPorts: ' (所有端口)',
            ignoreIP: 'IP 白名单',
            bannedIP: 'IP 黑名单',
            logPath: '日志路径',
            logPathHelper: '默认 /var/log/secure 或 /var/log/auth.log',
        },
        ftp: {
            ftp: 'FTP 账户',
            notStart: '当前未开启 FTP 服务，请先开启！',
            initHelper: 'FTP 用户身份尚未初始化，请先点击顶部状态栏的初始化按钮！',
            operation: '对 FTP 服务进行 [{0}] 操作，是否继续？',
            noPasswdMsg: '无法获取当前 FTP 账号密码，请先设置密码后重试！',
            enableHelper: '启用选中的 FTP 账号后，该 FTP 账号恢复访问权限，是否继续操作？',
            disableHelper: '停用选中的 FTP 账号后，该 FTP 账号将失去访问权限，是否继续操作？',
            syncHelper: '同步服务器与数据库中的 FTP 账户数据，是否继续操作？',
            dirSystem: '该目录为系统保留目录，修改可能导致系统崩溃，请修改后重试！',
            dirHelper: '开启 FTP 需要修改目录权限，请谨慎选择',
            dirMsg: '开启 FTP 将修改整个 {0} 目录权限，是否继续？',
        },
        clam: {
            clam: '病毒扫描',
            cron: '定时扫描',
            cronHelper: '商业版支持定时扫描功能 ',
            specErr: '执行周期格式错误，请检查后重试！',
            disableMsg: '停止定时执行会导致该扫描任务不再自动执行。是否继续？',
            enableMsg: '启用定时执行会让该扫描任务定期自动执行。是否继续？',
            showFresh: '显示病毒库服务',
            hideFresh: '隐藏病毒库服务',
            clamHelper: 'ClamAV 建议最低配置：3 GiB 以上内存、单核 2.0 GHz 以上 CPU，以及至少 5 GiB 可用硬盘空间。',
            notStart: '当前未开启 ClamAV 服务，请先开启！',
            removeRecord: '删除报告文件',
            noRecords: '点击“执行”按钮开始扫描，扫描结果将会记录在这里。',
            removeInfected: '删除病毒文件',
            removeInfectedHelper: '删除任务检测到的病毒文件，以确保服务器的安全和正常运行。',
            clamCreate: '创建扫描规则',
            infectedStrategy: '感染文件策略',
            removeHelper: '删除病毒文件，请谨慎选择！',
            move: '移动',
            moveHelper: '将病毒文件移动到指定目录下',
            copyHelper: '将病毒文件复制到指定目录下',
            none: '不操作',
            noneHelper: '不对病毒文件采取任何操作',
            scanDir: '扫描目录',
            infectedDir: '隔离目录',
            scanDate: '扫描时间',
            scanResult: '扫描报告条数',
            tail: '日志显示行数',
            infectedFiles: '感染文件数',
            log: '详情',
            clamConf: '扫描配置',
            clamLog: '扫描日志',
            freshClam: '病毒库刷新配置',
            freshClamLog: '病毒库刷新日志',
            alertHelper: '商业版支持定时扫描和短信告警功能',
            alertTitle: '病毒扫描「 {0} 」任务检测到感染文件告警',
        },
    },
    logs: {
        core: '面板服务',
        agent: '节点监控',
        panelLog: '面板日志',
        operation: '操作日志',
        login: '访问日志',
        loginIP: '登录 IP',
        loginAddress: '登录地址',
        loginAgent: '用户代理',
        loginStatus: '登录状态',
        system: '系统日志',
        hostSystem: '主机日志',
        previousPage: '上一页',
        nextPage: '下一页',
        filter: '消息过滤',
        service: '服务',
        priority: '优先级',
        priorityEmergency: '紧急 Emergency',
        priorityAlert: '警报 Alert',
        priorityCritical: '严重 Critical',
        priorityError: '错误 Error',
        priorityWarning: '警告 Warning',
        priorityNotice: '通知 Notice',
        priorityInfo: '信息 Info',
        priorityDebug: '调试 Debug',
        message: '消息',
        deleteLogs: '清空日志',
        resource: '资源',
        detail: {
            dashboard: '概览',
            ai: 'AI',
            skills_hub: 'Skills Hub',
            ai_proxy: 'AI 网关',
            ai_benchmark: '基准测试',
            groups: '分组',
            hosts: '主机',
            apps: '应用',
            openresty: 'OpenResty',
            websites: '网站',
            monitor: '网站监控',
            containers: '容器',
            files: '文件管理',
            runtimes: '运行环境',
            process: '进程管理',
            toolbox: '工具箱',
            backups: '备份 / 恢复',
            tampers: '防篡改',
            xsetting: '界面设置',
            logs: '日志审计',
            settings: '面板设置',
            cronjobs: '计划任务',
            databases: '数据库',
            waf: 'WAF',
            licenses: '许可证',
            nodes: '节点',
            commands: '快速命令',
            opsReport: '运维报表',
            ops_report: '运维报表',
            users: '用户管理',
            roles: '角色',
            auth: '登陆认证',
            auth_sources: '认证设置',
            alert: '告警通知',
            sync: '资源同步',
            exchange: '资源同步',
            xapp: 'APP',
            vms: '虚拟机管理',
        },
        websiteLog: '网站日志',
        runLog: '运行日志',
        errLog: '错误日志',
        task: '任务日志',
        taskName: '任务名称',
        taskRunning: '执行中',
    },
    file: {
        name: '名称',
        fileDirNum: '共 {0} 个目录，{1} 个文件，',
        currentDir: '当前目录',
        dir: '文件夹',
        fileName: '文件名',
        search: '在当前目录下查找',
        aiSearch: 'AI 搜索',
        aiSearchTitle: 'AI 搜索',
        aiSearchHint:
            '按文件内容逐行匹配；匹配方式见搜索框右侧按钮与下方「高级条件」。启用并保存 AI 账号后，还可生成 Markdown 总结。',
        aiSearchAccountTitle: 'AI 账号',
        aiSearchAccountIntro: '选择用于生成总结的大模型账号，修改后请点击保存。',
        aiSearchAccountEnable: '启用文件 AI 搜索',
        aiSearchSaveAccount: '保存账号配置',
        aiSearchSectionQuery: '搜索',
        aiSearchSectionConditions: '检索条件',
        aiSearchResultsSection: '分析结果',
        aiSearchContentLabel: '搜索内容',
        aiSearchDirLabel: '目录',
        aiSearchExtLabel: '文件后缀',
        aiSearchModifiedPreset: '修改时间',
        aiSearchSizePresetLabel: '文件大小',
        aiSearchTimeAny: '不限时间',
        aiSearchTime3h: '最近 3 小时',
        aiSearchTime1d: '最近 1 天',
        aiSearchTime7d: '最近 7 天',
        aiSearchTime30d: '最近 30 天',
        aiSearchTimeCustom: '自定义',
        aiSearchSizeAny: '不限大小',
        aiSearchSize0_10mb: '0 ~ 10 MB',
        aiSearchSize10_100mb: '10 MB ~ 100 MB',
        aiSearchSize100_1gb: '100 MB ~ 1 GB',
        aiSearchSizeGte1gb: '≥ 1 GB',
        aiSearchSizeCustom: '自定义（字节）',
        aiSearchPlaceholder: '请输入搜索内容',
        aiSearchContainSub: '包含子目录',
        aiSearchMaxItems: '参与检索的路径/文件条数上限（目录枚举，1–2000）',
        aiSearchRun: '开始分析',
        aiSearchTruncated: '目录项过多，仅纳入部分列表，结果可能不完整。',
        aiSearchPreFiltered: '已按关键字对相对路径做预筛选，以缩小送给模型的条目范围。',
        aiSearchMeta: '供分析条目：{0} | 耗时 {1} | Token {2}',
        aiSearchQueryRequired: '请输入搜索描述或关键字',
        aiSearchContentHits: '内容命中',
        aiSearchContentScanMeta: '内容扫描：已读取 {0} 个文本文件（按当前检索条件；受大小与数量限制）。',
        aiSearchNoLineHits: '在已扫描的文本文件中，没有行符合当前检索条件；上方总结仍可能基于文件名与元数据。',
        aiSearchHitsTruncated: '部分文件未扫描或命中列表因上限被截断。',
        aiSearchHitFiles: '有命中的文件',
        aiSearchHitLines: '命中行',
        aiSearchOpenFile: '在编辑器中打开',
        aiSearchOpenAtLine: '打开并定位到此行',
        aiSearchGrepOnlyHint:
            '当前未启用文件 AI：只做确定性内容检索，不会调用大模型。启用并保存 AI 账号后可获得总结。搜索行与下方选项均生效。',
        aiSearchMatchCase: '区分大小写',
        aiSearchWholeWord: '全词匹配（英文词边界 \\b）',
        aiSearchUseRegex: '正则表达式（Go RE2 语法）',
        aiSearchExtensions: '文件后缀（逗号分隔，如 go,ts,md）',
        aiSearchMinSize: '最小文件体积（字节，0 表示不限制）',
        aiSearchMaxSize: '最大文件体积（字节，0 表示不限制）',
        aiSearchSectionAdvanced: '高级条件',
        aiSearchLimitMaxItems: '检索总文件数',
        aiSearchLimitMaxScan: '内容扫描文件数',
        aiSearchLimitMaxBytes: '单文件内容读取上限',
        aiSearchLimitHitsPerFile: '单文件命中行',
        aiSearchLimitTotalHits: '命中行总数',
        aiSearchLimitUnitEntries: '条',
        aiSearchLimitUnitFiles: '个文件',
        aiSearchLimitUnitBytes: 'B',
        aiSearchLimitUnitLines: '行',
        aiSearchMaxScanFiles: '内容扫描最多文件数',
        aiSearchMaxFileBytes:
            '内容扫描时每个文件最多读取的字节数。与上方「文件大小」不同：那是按磁盘上的文件大小决定是否进入列表；此项限制打开文件后用于匹配的实际读取量。',
        aiSearchMaxHitsPerFile: '单文件最多命中行',
        aiSearchMaxTotalHits: '命中行总数上限',
        aiSearchGrepMetaContent:
            '内容扫描：搜索总条目 {0}，已读取 {1} 个文本文件（按当前检索条件；受大小与数量限制）。耗时 {2}',
        aiSearchAdvancedResetDefaults: '恢复默认上限',
        mode: '权限',
        editPermissions: '编辑@:file.mode',
        owner: '所有者',
        file: '文件',
        remoteFile: '远程下载',
        share: '分享',
        sync: '数据同步',
        size: '大小',
        updateTime: '修改时间',
        rename: '重命名',
        role: '权限',
        info: '属性',
        linkFile: '软连接文件',
        shareList: '分享列表',
        fileTools: '文件工具',
        zip: '压缩',
        group: '用户组',
        path: '路径',
        public: '公共',
        setRole: '设置权限',
        link: '是否链接',
        rRole: '读取',
        wRole: '写入',
        xRole: '可执行',
        compress: '压缩',
        deCompress: '解压',
        compressType: '压缩格式',
        compressDst: '压缩路径',
        replace: '覆盖已存在的文件',
        compressSuccess: '压缩成功',
        deCompressSuccess: '解压成功',
        deCompressDst: '解压路径',
        linkType: '链接类型',
        softLink: '软链接',
        hardLink: '硬链接',
        linkPath: '链接路径',
        selectFile: '选择文件',
        downloadSuccess: '下载成功',
        downloadUrl: '下载地址',
        downloadStart: '下载开始!',
        wgetUrlInvalid: '请输入有效的 http(s) 下载地址',
        moveSuccess: '移动成功',
        copySuccess: '复制成功',
        pasteMsg: '请在目标目录点击右上角【粘贴】按钮',
        move: '移动',
        calculate: '计算',
        remark: '备注',
        setRemark: '设置备注',
        remarkPrompt: '请输入备注内容',
        remarkPlaceholder: '备注内容',
        remarkToggle: '备注',
        remarkToggleTip: '加载文件备注',
        canNotDeCompress: '无法解压此文件',
        uploadSuccess: '上传成功!',
        downloadProcess: '下载进度',
        downloading: '正在下载...',
        stopWgetConfirm: '确认停止该下载任务？',
        infoDetail: '文件属性',
        root: '根目录',
        list: '文件列表',
        sub: '子目录',
        theme: '主题',
        language: '语言',
        eol: '行尾符',
        history: '历史版本',
        historyTitle: '历史版本',
        historyHint: '记录文件变更前的版本，可查看文件内容的修改历史，回退内容修改版本。',
        historySettingTitle: '版本策略',
        historyEnable: '启用版本记录',
        historyMaxPerPath: '单文件保留条数',
        historyDiskQuota: '全局磁盘配额 (MB)',
        historyCurrentScope: '当前文件',
        historyAllScope: '所有文件',
        historyDeleteConfirm: '确定删除所选的修改记录？',
        historyNeedFile: '请先打开一个文件',
        historyRestore: '恢复此版本',
        historyOperationOnlyHint: '当前选中的是文件操作，不支持版本恢复。',
        historyCurrentFile: '当前文件',
        historyLatestVersion: '左侧显示历史版本内容，右侧显示所选文件的最新版本内容',
        historyCompareTarget: '对比目标',
        historyCompareTargetPath: '对比路径',
        historyRestoreConfirm: '确定将此版本恢复到当前文件吗？',
        historyRestoreDirtyConfirm: '当前文件还有未保存的修改，恢复后会覆盖这些内容。是否继续？',
        historyRestoreSuccess: '版本恢复成功',
        historyDirtyHint: '当前编辑器存在未保存修改，恢复版本会覆盖这些内容。',
        historyDiffHintCurrent: '左侧显示历史版本内容，右侧显示当前文件内容',
        historyDiffHintAll: '左侧显示历史版本内容，右侧显示所选文件的最新版本内容',
        copyDir: '复制路径',
        shareFile: '分享文件',
        shareExpire: '有效期限',
        shareExpire1h: '1 小时',
        shareExpire6h: '6 小时',
        shareExpire24h: '24 小时',
        shareExpire3d: '3 天',
        shareExpire7d: '7 天',
        sharePassword: '访问密码',
        sharePasswordPlaceholder: '不填则链接无需密码',
        shareMaxDownloads: '最大下载次数',
        shareMaxDownloadsHint: '0 表示不限制',
        shareGenerate: '生成链接',
        shareRegenerate: '再次分享',
        shareClose: '关闭',
        shareCancel: '取消分享',
        shareCancelConfirm: '确定取消该文件的分享？',
        shareDetail: '详情',
        shareCopyLink: '复制链接',
        shareLinkLabel: '分享链接',
        shareQrCode: '二维码',
        shareQrDialogTitle: '分享链接二维码图片',
        shareQrDialogHelper: '手机打开微信、QQ 扫一扫',
        shareSaveImage: '保存图片',
        shareOpenImage: '打开图片',
        shareExtractFile: '提取文件',
        shareDownloadingHint: '文件准备中，正在开始下载…',
        shareInvalid: '分享链接无效或已失效',
        shareDownloadFailed: '下载失败，请稍后重试',
        sharePasswordRequired: '访问密码',
        sharePasswordRequiredInput: '请输入访问密码',
        sharePasswordLengthHint: '访问密码长度需为 4-256 个字符',
        shareDownloadPasswordTip: '链接设置了访问密码，请输入后再下载',
        shareRiskAlert: '外链分享链接存在一定安全风险，建议仅分享给可信任人员，注意保护敏感信息不被泄露。',
        sharePasswordSeparate:
            '已设置访问密码，请通过安全渠道告知对方；打开链接时需在地址后加上参数 &password=密码，或使用支持填写密码的下载工具。',
        shareExpiresAt: '过期时间',
        paste: '粘贴',
        changeOwner: '修改用户和用户组',
        containSub: '同时修改子文件属性',
        ownerHelper: 'PHP 运行环境默认用户:用户组为 1000:1000, 容器内外用户显示不一致为正常现象',
        searchHelper: '支持 * 等通配符',
        uploadFailed: '【{0}】 文件上传失败',
        fileUploadStart: '正在上传【{0}】...',
        uploadOverallProgress: '总进度',
        uploadCurrentFileProgress: '当前文件',
        currentSelect: '当前选中: ',
        unsupportedType: '不支持的文件类型',
        deleteHelper: '确定删除所选文件？ 默认删除之后将进入回收站',
        fileHelper: '注意：1. 搜索结果不支持排序功能 2. 文件夹无法按大小排序。',
        forceDeleteHelper: '永久删除文件（不进入回收站，直接删除）',
        recycleBin: '回收站',
        sourcePath: '原路径',
        deleteTime: '删除时间',
        reduce: '还原',
        confirmReduce: '确定还原以下文件？',
        reduceSuccess: '还原成功',
        reduceHelper: '如果原路径存在同名文件或目录，将会被覆盖，是否继续？',
        clearRecycleBin: '清空回收站',
        clearRecycleBinHelper: '是否清空回收站？',
        favorite: '收藏夹',
        removeFavorite: '是否从收藏夹移出？',
        addFavorite: '添加/移出收藏夹',
        addFavoriteAction: '添加收藏夹',
        removeFavoriteAction: '移出收藏夹',
        clearList: '清空列表',
        deleteRecycleHelper: '确定永久删除以下文件？',
        typeErrOrEmpty: '【{0}】 文件类型错误或为空文件夹',
        dropHelper: '将需要上传的文件拖拽到此处',
        fileRecycleBin: '文件回收站',
        fileRecycleBinMsg: '已{0}回收站',
        wordWrap: '自动换行',
        deleteHelper2: '确定删除所选文件？删除操作不可回滚',
        ignoreCertificate: '忽略不可信证书',
        ignoreCertificateHelper:
            '下载时忽略不可信证书可能导致数据泄露或篡改。请谨慎使用此选项，仅在信任下载源的情况下启用',
        useProxy: '使用代理下载',
        useProxyHelper: '使用面板设置中的代理服务器访问远程下载地址',
        uploadOverLimit: '文件数量超过 1000！请压缩后上传',
        clashDidNotSupport: '文件名禁止包含 .1panel_clash',
        clashDeleteAlert: '回收站文件夹不能删除',
        clashOpenAlert: '回收站目录请点击【回收站】按钮打开',
        right: '前进',
        back: '后退',
        top: '返回上一级',
        up: '上一级',
        openWithVscode: 'VS Code 打开',
        vscodeHelper: '请确认认证方式、主机、端口和用户名。私钥认证需先在运行 VS Code 的本地电脑完成 SSH 配置。',
        vscodeCopyConfig: '复制脚本',
        vscodeKeyHelper: '私钥下载文件名将根据填写的路径生成。请将文件保存至该路径，配置脚本会校验文件并设置访问权限。',
        vscodeKeyPath: 'SSH 私钥路径',
        vscodeKeyPathPlaceholder: '例如：~/.ssh/id_ed25519',
        vscodeSelectKey: 'SSH 私钥',
        vscodeScriptPreview: 'SSH 配置脚本',
        vscodePasswordHelper: '密码认证不会写入本地 SSH 配置，连接远程主机时需在 VS Code 中输入密码。',
        vscodePasswordHint: '密码认证将使用填写的主机、端口和用户名发起连接，无需配置脚本或私钥文件。',
        vscodeScriptPreviewHint:
            '在运行 VS Code 的本地电脑执行配置脚本后，将写入用于远程连接的 SSH 别名。主机、端口、用户名、私钥或私钥路径变更后，请重新执行脚本。',
        vscodePasswordModeTitle: '密码认证',
        vscodePasswordModeHint: '密码认证将使用填写的主机、端口和用户名发起连接，无需配置脚本或私钥文件。',
        vscodePasswordStep1: '确认主机、端口和用户名。',
        vscodePasswordStep2: '打开 VS Code，连接时输入密码。',
        vscodePasswordStep3: '无需下载私钥。',
        saveContentAndClose: '文件已被修改，是否保存并关闭？',
        saveAndOpenNewFile: '文件已被修改，是否保存并打开新文件？',
        noEdit: '文件未修改,无需此操作！',
        noNameFolder: '未命名文件夹',
        noNameFile: '未命名文件',
        minimap: '缩略图',
        fileCanNotRead: '此文件不支持预览',
        previewTruncated: '文件过大，仅显示末尾内容',
        previewEmpty: '文件内容为空或不是文本文件',
        previewLargeFile: '预览',
        panelInstallDir: '1Panel 安装目录不能删除',
        wgetTask: '下载任务',
        existFileTitle: '同名文件提示',
        existFileHelper: '上传的文件存在同名文件，是否覆盖？',
        existFileSize: '文件大小 (新 -> 旧)',
        existFileDirHelper: '选择的文件/文件夹存在同名，请谨慎操作！',
        coverDirHelper: '选中覆盖的文件夹，将复制到目标路径！',
        noSuchFile: '未能找到该文件或目录，请检查后重试',
        setting: '设置',
        showHide: '显示隐藏文件',
        noShowHide: '不显示隐藏文件',
        cancelUpload: '取消上传',
        cancelUploadHelper: '是否取消上传，取消后将清空上传列表',
        keepOneTab: '至少保留一个标签页',
        notCanTab: '不可增加更多的标签页',
        convert: '转换格式',
        converting: '转换为',
        fileCanNotConvert: '此文件不支持转换格式',
        formatType: '格式类型',
        sourceFormat: '源格式',
        sourceFile: '源文件',
        saveDir: '保存目录',
        deleteSourceFile: '是否删除源文件',
        convertHelper: '是否为选中的文件进行格式转换',
        convertHelper1: '请选择需要转换格式的文件',
        execConvert: '开始转换，可以在任务中心查看转换日志',
        convertLogs: '转换日志',
        formatConvert: '格式转换',
    },
    ssh: {
        autoStart: '开机自启',
        enable: '设置开机自启',
        disable: '关闭开机自启',
        sshAlert: '列表数据根据登录时间排序，但请注意，切换时区或其他操作可能导致登录日志的时间出现偏差。',
        sshAlert2: '可通过工具箱中的 Fail2ban 屏蔽暴力破解 IP，从而保护主机安全。',
        sshOperate: '对 SSH 服务进行 [{0}] 操作，是否继续？',
        sshChange: 'SSH 配置修改',
        sshChangeHelper: '此操作将 {0} 修改为 [{1}] ，是否继续？',
        sshFileChangeHelper: '直接修改配置文件可能会导致服务不可用，请谨慎操作，是否继续？',
        port: '连接端口',
        portHelper: '指定 SSH 服务监听的端口号，默认为 22。',
        listenAddress: '监听地址',
        allV4V6: '0.0.0.0:{0}(IPv4) 和 :::{0}(IPv6)',
        listenHelper: '同时取消 IPv4 和 IPv6 设置，将会同时监听 0.0.0.0:{0}(IPv4) 和 :::{0}(IPv6)',
        addressHelper: '指定 SSH 服务监听的 IP 地址',
        permitRootLogin: 'root 用户',
        rootSettingHelper: 'root 用户 SSH 登录方式，默认所有 SSH 登录。',
        rootHelper1: '允许 SSH 登录',
        rootHelper2: '禁止 SSH 登录',
        rootHelper3: '仅允许密钥登录',
        rootHelper4: '仅允许执行预先定义的命令，不能进行其他操作',
        passwordAuthentication: '密码认证',
        pwdAuthHelper: '是否启用密码认证，默认启用。',
        pubkeyAuthentication: '密钥认证',
        privateKey: '私钥',
        publicKey: '公钥',
        password: '密码',
        createMode: '创建方式',
        generate: '自动生成',
        unSyncPass: '密钥密码无法同步',
        syncHelper: '同步操作将清理失效密钥并同步新增的完整密钥对，是否继续？',
        input: '手动输入',
        import: '文件上传',
        authKeys: '授权密钥',
        authKeysHelper: '是否保存当前公钥信息？',
        pubkey: '密钥信息',
        pubKeyHelper: '当前密钥信息仅对用户 {0} 生效',
        encryptionMode: '加密方式',
        passwordHelper: '支持大小写英文、数字,长度6-10',
        reGenerate: '重新生成密钥',
        keyAuthHelper: '是否启用密钥认证，默认启用。',
        useDNS: '反向解析',
        dnsHelper: '控制 SSH 服务器是否启用 DNS 解析功能，从而验证连接方的身份。',
        confFileOrderHelper: '下拉切换配置文件并编辑保存；按加载顺序生效，先加载优先生效，后加载不覆盖前值。',
        confFileOrderLabel: '{0}（加载顺序 #{1}）',
        analysis: '统计信息',
        denyHelper: '将对下列地址进行【屏蔽】操作，设置后该 IP 将禁止访问服务器，是否继续？',
        acceptHelper: '将对下列地址进行【放行】操作，设置后该 IP 将恢复正常访问，是否继续？',
        noAddrWarning: '当前未选中任何可【{0}】地址，请检查后重试！',
        loginLogs: '登录日志',
        loginMode: '登录方式',
        authenticating: '密钥',
        publickey: '密钥',
        belong: '归属地',
        local: '内网',
        remote: '外网',
        session: '会话',
        loginTime: '登录时间',
        loginIP: '登录IP',
        stopSSHWarn: '是否断开此SSH连接',
    },
    setting: {
        panel: '面板',
        user: '面板用户',
        userChange: '修改面板用户',
        userChangeHelper: '修改面板用户将退出登录，是否继续？',
        passwd: '面板密码',
        emailHelper: '用于密码找回',
        watermark: '水印设置',
        watermarkContent: '水印内容',
        contentHelper: '{0} 表示节点名称，{1} 表示节点地址，既可以使用变量，也可以填写自定义名称。',
        watermarkColor: '水印颜色',
        watermarkFont: '水印字号',
        watermarkHeight: '水印高度',
        watermarkWidth: '水印宽度',
        watermarkRotate: '旋转角',
        watermarkGap: '间距',
        watermarkCloseHelper: '是否确认关闭系统水印设置',
        watermarkOpenHelper: '是否确认保存当前系统水印设置',
        title: '面板别名',
        titleHelper: '支持长度3-30的英文、中文、数字、空格和常见的特殊字符',
        panelPort: '面板端口',
        portHelper: '建议端口范围8888 - 65535，注意：有安全组的服务器请提前在安全组放行新端口',
        portChange: '端口修改',
        portChangeHelper: '服务端口修改需要重启服务，是否继续？',
        theme: '主题颜色',
        menuTabs: '菜单标签页',
        menuAccordion: '菜单多项展开',
        menuAccordionHelper: '开启后，侧边栏可同时展开多个菜单分组。',
        componentSize: '组件大小',
        dark: '暗色',
        darkGold: '黑金',
        light: '亮色',
        auto: '跟随系统',
        language: '系统语言',
        docSource: '文档来源',
        withByRegion: '跟随运行区域（默认）',
        withByLang: '跟随系统语言',
        runtimeEnv: '运行环境',
        region: '运行区域',
        cn: '中国大陆',
        intl: '全球',
        regionHelper: '该操作可能影响后续资源下载与访问，是否继续？',
        regionHelper1: '系统安装包',
        regionHelper2: '应用商店和脚本库',
        regionHelper3: '用户手册及相关文档',
        regionHelper4: '该操作可能影响后续下载与访问，请谨慎操作。',
        regionTip: '运行区域影响系统更新源以及安装包下载地址。',
        docSourceTip: '文档来源决定文档与更新日志的跳转语言。',
        languageHelper: '默认跟随浏览器语言，设置后只对当前浏览器生效，更换浏览器后需要重新设置',
        sessionTimeout: '面板超时时间',
        sessionTimeoutError: '最小超时时间为 300 秒',
        sessionTimeoutHelper: '如果用户超过 {0} 秒未操作面板，面板将自动退出登录',
        systemIP: '默认访问地址',
        systemIPHelper: '应用跳转、容器访问等功能将使用此地址进行跳转，每个节点可设置不同地址。',
        proxy: '代理服务器',
        proxyHelper: '设置代理服务器后，将在以下场景中生效：',
        proxyHelper1: '应用商店的安装包下载和同步（商业版功能）',
        proxyHelper2: '系统版本升级及获取更新说明（商业版功能）',
        proxyHelper3: '系统许可证的验证和同步',
        proxyHelper4: 'Docker 拉取镜像等网络请求将通过代理服务器访问（商业版功能）',
        proxyHelper5: '系统类型脚本库的统一下载与同步（商业版功能）',
        proxyHelper6: '申请证书（商业版功能）',
        proxyType: '代理类型',
        proxyUrl: '代理地址',
        proxyPort: '代理端口',
        proxyPasswdKeep: '记住密码',
        proxyDocker: 'Docker 代理',
        proxyDockerHelper: '将代理服务器配置同步至 Docker，支持离线服务器拉取镜像等操作',
        syncToNode: '同步至子节点',
        syncToNodeHelper: '同步设置至所选节点',
        nodes: '节点',
        selectNode: '选择节点',
        selectNodeError: '请选择节点',
        apiInterface: 'API 接口',
        apiInterfaceClose: '关闭后将不能使用 API 接口进行访问，是否继续？',
        apiInterfaceHelper: '提供面板支持 API 接口访问',
        apiInterfaceAlert1: '请不要在生产环境开启，这可能增加服务器安全风险',
        apiInterfaceAlert2: '请不要使用第三方应用调用面板 API，以防止潜在的安全威胁。',
        apiInterfaceAlert3: 'API 接口文档',
        apiInterfaceAlert4: '使用文档',
        apiKey: '接口密钥',
        apiKeyHelper: '接口密钥用于外部应用访问 API 接口',
        ipWhiteList: 'IP 白名单',
        ipWhiteListEgs: '当存在多个 IP 时，需要换行显示，例： \n172.16.10.111 \n172.16.10.0/24',
        ipWhiteListHelper:
            '必需在 IP 白名单列表中的 IP 才能访问面板 API 接口，0.0.0.0/0（所有 IPv4），::/0（所有 IPv6）',
        apiTrustedProxies: 'API 可信代理',
        apiTrustedProxiesEgs: '每行填写一个代理服务器 IP 或 CIDR，例如：\n172.16.10.111\n172.16.10.0/24',
        apiTrustedProxiesHelper:
            '使用反向代理时，请填写代理服务器的 IP 或网段，以便正确获取客户端 IP；不使用时请留空。不支持 0.0.0.0/0 和 ::/0。',
        apiKeyValidityTime: '接口密钥有效期',
        apiKeyValidityTimeEgs: '接口密钥有效期（单位分）',
        apiKeyValidityTimeHelper: '接口时间戳到请求时的当前时间戳之间有效（单位分），设置为 0 时，不做时间戳校验',
        apiKeyReset: '接口密钥重置',
        apiKeyResetHelper: '重置密钥后，已关联密钥服务将失效，请重新添加新密钥至服务。',
        confDockerProxy: '配置 Docker 代理',
        restartNowHelper: '配置 Docker 代理需要重启 Docker 服务。',
        restartNow: '立即重启',
        restartLater: '稍后手动重启',
        systemIPWarning: '当前节点尚未配置默认访问地址，请前往面板设置进行设置！',
        systemIPWarning1: '当前服务器地址设置为 {0}，无法快速跳转！',
        syncTime: '服务器时间',
        timeZone: '时区',
        timeZoneChangeHelper: '修改时区需要重启服务，是否继续？',
        timeZoneHelper: '时区修改依赖系统 timedatectl 服务，重启 1Panel 服务后生效。',
        timeZoneCN: '北京',
        timeZoneAM: '洛杉矶',
        timeZoneNY: '纽约',
        ntpALi: '阿里云',
        ntpGoogle: 'Google',
        syncSite: 'NTP 服务器',
        syncSiteHelper: '该操作将使用 {0} 作为源同步系统时间，是否继续？',
        changePassword: '密码修改',
        oldPassword: '原密码',
        newPassword: '新密码',
        retryPassword: '确认密码',
        passwordEmptyTip: '密码为空则不做密码修改',
        noSpace: '输入信息不能包含空格符',
        duplicatePassword: '新密码不能与原始密码一致，请重新输入！',
        diskClean: '缓存清理',
        developerMode: '预览体验计划',
        developerModeHelper: '获取 1Panel 的预览版本，以分享有关新功能和更新的反馈',

        thirdParty: '第三方账号',
        scope: '使用范围',
        public: '公有',
        publicHelper: '公有类型的备份账号会同步到各个子节点，子节点可以一起使用',
        private: '私有',
        privateHelper: '私有类型的备份账号只创建在当前节点上，仅供当前节点使用',
        noTypeForCreate: '当前无可创建备份类型',
        LOCAL: '服务器磁盘',
        OSS: '阿里云 OSS',
        S3: '亚马逊 S3 云存储',
        mode: '模式',
        MINIO: 'MINIO',
        SFTP: 'SFTP',
        WebDAV: 'WebDAV',
        WebDAVAlist: 'WebDAV 连接 Alist 可参考官方文档',
        UPYUN: '又拍云',
        ALIYUN: '阿里云盘',
        ALIYUNHelper: '当前阿里云盘非客户端下载最大限制为 100 MB，超过限制需要通过客户端下载',
        ALIYUNRecover:
            '当前阿里云盘非客户端下载最大限制为 100 MB，超过限制需要通过客户端下载到本地后，同步快照进行恢复',
        GoogleDrive: '谷歌云盘',
        analysis: '解析',
        analysisHelper: '粘贴整个 token 内容，自动解析所需部分，具体操作可参考官方文档',
        serviceName: '服务名称',
        operator: '操作员',
        OneDrive: '微软 OneDrive',
        isCN: '世纪互联',
        isNotCN: '国际版',
        client_id: '客户端 ID',
        client_secret: '客户端密钥',
        redirect_uri: '重定向 Url',
        onedrive_helper: '自定义配置可参考官方文档',
        clickToRefresh: '单击可手动刷新',
        refreshTime: '令牌刷新时间',
        refreshStatus: '令牌刷新状态',
        codeWarning: '当前授权码格式错误，请重新确认！',
        backupDir: '备份目录',
        code: '授权码',
        codeHelper:
            '请点击获取按钮，然后登录 {0} 复制跳转链接中 code 后面的内容，粘贴到该输入框中，具体操作可参考官方文档。',
        googleHelper: '请先在创建 google 应用并获取客户端信息，写入表单后点击获取按钮，具体操作可参考官方文档。',
        loadCode: '获取',
        COS: '腾讯云 COS',
        ap_beijing_1: '北京一区',
        ap_beijing: '北京',
        ap_nanjing: '南京',
        ap_shanghai: '上海',
        ap_guangzhou: '广州',
        ap_chengdu: '成都',
        ap_chongqing: '重庆',
        ap_shenzhen_fsi: '深圳金融',
        ap_shanghai_fsi: '上海金融',
        ap_beijing_fsi: '北京金融',
        ap_hongkong: '中国香港',
        ap_singapore: '新加坡',
        ap_mumbai: '孟买',
        ap_jakarta: '雅加达',
        ap_seoul: '首尔',
        ap_bangkok: '曼谷',
        ap_tokyo: '东京',
        na_siliconvalley: '硅谷（美西）',
        na_ashburn: '弗吉尼亚（美东）',
        na_toronto: '多伦多',
        sa_saopaulo: '圣保罗',
        eu_frankfurt: '法兰克福',
        KODO: '七牛云 Kodo',
        scType: '存储类型',
        typeStandard: '标准存储',
        typeStandard_IA: '低频存储',
        typeArchive: '归档存储',
        typeDeep_Archive: '深度归档存储',
        scLighthouse: '默认，轻量对象存储仅支持该存储类型',
        scStandard: '标准存储，适用于实时访问的大量热点文件、频繁的数据交互等业务场景。',
        scStandard_IA: '低频存储，适用于较低访问频率（例如平均每月访问频率1到2次）的业务场景，最少存储30天。',
        scArchive: '归档存储，适用于极低访问频率（例如半年访问1次）的业务场景。',
        scDeep_Archive: '深度归档存储，适用于极低访问频率（例如1年访问1~2次）的业务场景。',
        archiveHelper: '归档存储的文件无法直接下载，需要先在对应的云服务商网站进行恢复操作，请谨慎使用！',
        backupAlert: '理论上只要云厂商兼容 S3 协议，就可以用现有的亚马逊 S3 云存储来备份，具体配置参考',
        domain: '加速域名',
        backupAccount: '备份账号',
        loadBucket: '获取桶',
        accountName: '账户名称',
        accountKey: '账户密钥',
        address: '地址',
        path: '路径',
        backupJump: '未在当前备份列表中的备份文件，请尝试从文件目录中下载后导入备份。',

        snapshot: '快照',
        noAppData: '暂无可选择系统应用',
        noBackupData: '暂无可选择备份数据',
        stepBaseData: '基础数据',
        stepAppData: '系统应用',
        stepPanelData: '系统数据',
        stepBackupData: '备份数据',
        stepOtherData: '其他数据',
        operationLog: '保留操作日志',
        loginLog: '保留访问日志',
        systemLog: '保留系统日志',
        taskLog: '保留任务日志',
        monitorData: '监控数据',
        dockerConf: 'Docker 配置',
        selectAllImage: '备份所有应用镜像',
        logLabel: '日志',
        agentLabel: '节点配置',
        appDataLabel: '应用数据',
        appImage: '应用镜像',
        appBackup: '应用备份',
        backupLabel: '备份目录',
        confLabel: '配置文件',
        dockerLabel: '容器',
        taskLabel: '计划任务',
        resourceLabel: '应用资源目录',
        runtimeLabel: '运行环境',
        appLabel: '应用',
        databaseLabel: '数据库',
        snapshotLabel: '快照文件',
        websiteLabel: '网站',
        directoryLabel: '目录',
        appStoreLabel: '应用商店',
        shellLabel: '脚本',
        tmpLabel: '临时目录',
        sslLabel: '证书目录',
        reCreate: '创建快照失败',
        reRollback: '回滚快照失败',
        deleteHelper: '将删除该快照的所有备份文件，包括第三方备份账号中的文件。',
        ignoreRule: '排除规则',
        editIgnoreRule: '@:commons.button.edit@:setting.ignoreRule',
        ignoreHelper: '快照时将使用该规则对 1Panel 数据目录进行压缩备份，请谨慎修改。',
        ignoreHelper1: '一行一个，例： \n*.log\n/opt/1panel/cache',
        status: '快照状态',
        panelInfo: '写入 1Panel 基础信息',
        panelBin: '备份 1Panel 系统文件',
        daemonJson: '备份 Docker 配置文件',
        appData: '备份 1Panel 已安装应用',
        panelData: '备份 1Panel 数据目录',
        backupData: '备份 1Panel 本地备份目录',
        compress: '制作快照文件',
        upload: '上传快照文件',
        recoverDetail: '恢复详情',
        recoverFailed: '快照恢复失败',
        importHelper: '快照文件目录：',
        lastRecoverAt: '上次恢复时间',
        lastRollbackAt: '上次回滚时间',
        reDownload: '重新下载',
        recoverErrArch: '不支持在不同服务器架构之间进行快照恢复操作!',
        recoverErrSize: '检测到当前磁盘空间不足，请检查或清理后重试!',
        recoverHelper: '即将从快照 {0} 开始恢复，恢复前请确认以下信息：',
        recoverHelper1: '恢复需要重启 Docker 以及 1Panel 服务',
        recoverHelper2: '请确保服务器磁盘空间充足 ( 快照文件大小: {0}, 可用空间: {1} )',
        recoverHelper3: '请确保服务器架构与创建快照服务器架构信息保持一致 (当前服务器架构: {0} )',
        recoverHelper4: '该操作仅回滚主节点，如存在已升级的子节点，请先回滚子节点后再执行此操作',
        rollback: '回滚',
        rollbackHelper:
            '即将回滚本次恢复，回滚将替换所有本次恢复的文件，过程中可能需要重启 Docker 以及 1Panel 服务，是否继续？',

        upgradeRecord: '更新记录',
        upgrading: '正在升级中，请稍候...',
        upgradeHelper: '升级操作需要重启 1Panel 服务，是否继续？',
        noUpgrade: '当前已经是最新版本',
        versionHelper: '1Panel 版本号命名规则为： [大版本].[功能版本].[Bug 修复版本]，例：',
        rollbackLocalHelper: '主节点暂不支持直接回滚，请手动执行 1pctl restore 命令回滚！',
        upgradeCheck: '检查更新',
        upgradeNotes: '更新内容',
        upgradeNow: '立即更新',
        source: '下载源',
        versionNotSame: '节点版本与主节点不一致，暂不支持切换，请在节点管理中升级后重试！',
        versionCompare: '检测到节点 {0} 版本已是当前可升级最新版本，请检查主节点版本后重试！',

        safe: '安全',
        bindInfo: '监听地址',
        bindAll: '监听所有',
        bindInfoHelper: '修改服务监听地址或协议可能导致服务不可用，是否继续？',
        ipv6: '监听 IPv6',
        bindAddress: '监听地址',
        entrance: '安全入口',
        showEntrance: '启用概览页未开启提醒',
        entranceHelper: '开启安全入口后只能通过指定安全入口登录面板',
        entranceError: '请输入 5-116 位安全登录入口，仅支持输入数字或字母',
        entranceInputHelper: '安全入口设置为空时，则取消安全入口',
        randomGenerate: '随机生成',
        expirationTime: '密码过期时间',
        unSetting: '未设置',
        noneSetting: '为面板密码设置过期时间，过期后需要重新设置密码',
        expirationHelper: '密码过期时间为 0 天时，则关闭密码过期功能',
        days: '密码过期天数',
        expiredHelper: '当前密码已过期，请重新修改密码：',
        timeoutHelper: '{0} 天后面板密码即将过期，过期后需要重新设置密码',
        complexity: '密码复杂度验证',
        complexityHelper: '开启后密码必须满足长度为 8-30 位，且包含字母、数字、特殊字符中至少两项',
        bindDomain: '域名绑定',
        unBindDomain: '域名解绑',
        panelSSL: '面板 SSL',
        unBindDomainHelper: '解除域名绑定可能造成系统不安全，是否继续？',
        bindDomainHelper: '设置域名绑定后，仅能通过设置中域名访问 1Panel 服务',
        bindDomainHelper1: '绑定域名为空时，则取消域名绑定',
        bindDomainWarning: '设置域名绑定后，将退出当前登录，且仅能通过设置中域名访问 1Panel 服务，是否继续？',
        allowIPs: '授权 IP',
        unAllowIPs: '取消授权',
        unAllowIPsWarning: '授权 IP 为空将允许所有 IP 访问系统，可能造成系统不安全，是否继续？',
        allowIPsHelper: '设置授权 IP 后，仅有设置中的 IP 可以访问 1Panel 服务',
        allowIPsWarning: '设置授权 IP 后，仅有设置中的 IP 可以访问 1Panel 服务，是否继续？',
        allowIPsHelper1: '授权 IP 为空时，则取消授权 IP',
        allowIPEgs: '当存在多个授权 IP 时，需要换行显示，例： \n172.16.10.111 \n172.16.10.0/24',
        mfa: '两步验证',
        mfaClose: '关闭两步验证将导致服务安全性降低，是否继续？',
        secret: '密钥',
        mfaAlert: '两步验证密码是基于当前时间生成，请确保服务器时间已同步',
        mfaHelper: '开启后会验证手机应用验证码',
        mfaHelper1: '下载两步验证手机应用 如:',
        mfaHelper2: '使用手机应用扫描以下二维码，获取 6 位验证码',
        mfaHelper3: '输入手机应用上的 6 位数字',
        mfaCode: '验证码',
        mfaInterval: '刷新时间（秒）',
        mfaTitleHelper: '用于区分不同 1Panel 主机，修改后请重新扫描或手动添加密钥信息！',
        mfaIntervalHelper:
            '修改刷新时间后，请重新扫描或手动添加密钥信息！\n部分验证器仅支持 30 秒刷新时间（如 Google/Microsoft Authenticator），请确认兼容性。',
        passkey: '通行密钥',
        passkeyManage: '管理',
        passkeyKeyManagement: '密钥管理',
        passkeyHelper: '用于快速登录，最多可绑定 5 个通行密钥',
        passkeyRequireSSL: '需设置域名绑定并通过 HTTPS 访问后才可使用通行密钥',
        passkeyTrustedProxies: '可信代理',
        passkeyTrustedProxiesHelper: '仅当请求来源命中以下 IP/CIDR 时，才信任 Forwarded 与 X-Forwarded-Proto 头',
        passkeyNotSupported: '当前浏览器或环境不支持通行密钥',
        passkeyPrereqTitle: '使用通行密钥需满足以下前置条件',
        passkeyPrereqBindDomain: '已设置 1Panel 域名绑定',
        passkeyPrereqHttps: '已通过 HTTPS 安全访问',
        passkeyPrereqBrowser: '当前环境支持 Passkey（WebAuthn + 平台认证器）',
        passkeyPrereqBrowserDetailWebAuthnUnavailable: '请使用系统浏览器访问，并确认已绑定域名且通过 HTTPS 打开面板',
        passkeyPrereqBrowserDetailPlatformCapabilityUnavailable:
            '当前环境无法使用设备认证，请改用系统浏览器并确认系统版本较新',
        passkeyPrereqBrowserDetailNoPlatformAuthenticator: '请先在系统中启用屏幕锁/指纹/面容/Windows Hello 后重试',
        passkeyPrereqBrowserDetailDetectFailed: '环境检测失败，请刷新页面重试，或改用系统浏览器访问',
        passkeyPrereqGoSetup: '去设置',
        passkeyCount: '已绑定 {0}/{1}',
        passkeyName: '名称',
        passkeyNameHelper: '请输入用于区分设备的名称',
        passkeyAdd: '添加通行密钥',
        passkeyCreatedAt: '创建时间',
        passkeyLastUsedAt: '最近使用',
        passkeyDeleteConfirm: '删除后将无法使用该通行密钥登录，是否继续？',
        passkeyLimit: '最多可绑定 5 个通行密钥',
        passkeyFailed: '通行密钥注册失败，请确认面板 SSL 证书是否为可信证书',
        sslChangeHelper: 'https 设置修改需要重启服务，是否继续？',
        sslDisable: '禁用',
        sslDisableHelper: '禁用 https 服务，需要重启面板才能生效，是否继续？',
        noAuthSetting: '未认证设置',
        noAuthSettingHelper: '用户在未登录且未正确输入安全入口、授权 IP、或绑定域名时，该响应可隐藏面板特征。',
        responseSetting: '响应设置',
        help200: '帮助页面',
        error400: '错误请求',
        error401: '未授权',
        error403: '禁止访问',
        error404: '未找到',
        error408: '请求超时',
        error416: '无效请求',
        error444: '连接被关闭',
        error500: '内部错误',

        https: '为面板设置HTTPS可提升访问安全性',
        strictHelper: '非 HTTPS 流量无法连接面板',
        muxHelper: '面板将同时监听 HTTP 和 HTTPS 协议，并将 HTTP 重定向到 HTTPS，此模式下可能会降低面板安全性',
        certType: '证书类型',
        selfSigned: '自签名',
        selfSignedHelper: '自签证书，不被浏览器信任，显示不安全是正常现象',
        select: '选择已有',
        domainOrIP: '域名或 IP：',
        timeOut: '过期时间：',
        rootCrtDownload: '根证书下载',
        primaryKey: '密钥',
        certificate: '证书',

        about: '关于',
        versionItem: '当前版本',
        backupCopies: '备份份数',
        backupCopiesHelper: '设置用于版本回滚的升级备份保留份数，为 0 则保留所有。',
        backupCopiesRule: '请至少保存 3 份升级备份记录',
        release: '版本更新日志',
        releaseHelper: '当前环境更新日志获取异常，可手动前往官方文档查看',
        project: '项目地址',
        issue: '问题反馈',
        doc: '官方文档',
        star: '点亮 Star',
        description: 'Linux 服务器运维管理面板',
        forum: '论坛求助',
        doc2: '使用手册',
        currentVersion: '当前运行版本：',

        license: '许可证',
        bindNode: '绑定节点',
        menuSetting: '菜单设置',
        menuHide: '菜单隐藏',
        menuSettingHelper: '当只存在 1 个子菜单时，菜单栏将仅展示该子菜单',
        showAll: '全部显示',
        hideALL: '全部隐藏',
        ifShow: '是否显示',
        menu: '菜单',
        confirmMessage: '即将刷新页面更新高级功能菜单列表，是否继续？',
        recoverMessage: '即将刷新页面恢复菜单列表到初始状态，是否继续？',
        compressPassword: '压缩密码',
        backupRecoverMessage: '请输入压缩或解压缩密码（留空则不设置）',
    },
    license: {
        offLine: '离线版',
        community: '社区版',
        oss: '社区版',
        ee: '企业版',
        pro: '专业版',
        trial: '试用',
        add: '添加社区版',
        licenseBindHelper: '仅当许可证已绑定节点时，才能使用其免费节点额度',
        licenseAlert: '仅当许可证正常绑定到节点时，该许可证才能添加社区版节点，只有正常绑定到许可证的节点支持切换。',
        licenseUnbindHelper: '检测到该许可证存在社区版节点，请解绑后重试！',
        subscription: '订阅',
        perpetual: '永久授权',
        product: '产品',
        versionConstraint: '{0} 版本买断',
        forceUnbind: '强制解绑',
        forceUnbindHelper: '强制解绑，会忽略解绑过程中产生的错误并最终解除许可证绑定',
        updateForce: '强制更新（忽略解绑过程中的所有错误，确保最终操作成功）',
        trialInfo: '版本',
        authorizationId: '订阅授权 ID',
        authorizedUser: '被授权方',
        lostHelper: '许可证已达到最大重试次数，请手动点击同步按钮，以确保商业版功能正常使用，详情：',
        exceptionalHelper: '许可证同步验证异常，请手动点击同步按钮，以确保商业版功能正常使用，详情：',
        quickUpdate: '快速更新',
        import: '导入',
        power: '授权',
        unbindHelper: '解除绑定后将清除该节点所有商业版相关设置，是否继续？',
        importLicense: '导入许可证',
        securityWarningTitle: '请勿使用破解版或来源不明的许可证！',
        securityWarningContent:
            '1Panel 需要以具备系统管理权限的用户运行，非官方许可证或被篡改版本可能导致服务器失控、数据泄露等严重安全风险。请通过飞致云官方渠道获取许可证和安装包。',
        importHelper: '请点击或拖动许可文件到此处',
        licenseRequiredTip: '当前尚未导入许可证，复制设备 ID 后获取许可证并导入后才能登录使用。',
        licenseRequiredShortTip: '请先复制设备 ID 获取许可证，导入许可证后即可登录。',
        licenseRequiredUserTip: '企业版许可证未绑定，请联系超级管理员导入许可证。',
        restoreCommunity: '恢复社区版',
        restoreCommunityOnline: '在线恢复',
        restoreCommunityOffline: '离线恢复',
        restoreCommunityPackageFound: '已检测到可用的社区版离线安装包，可以执行离线恢复。',
        restoreCommunityPackageMissing: '未检测到可用的社区版离线安装包，暂时无法执行离线恢复。',
        restoreCommunityOnlineHelper: '将自动下载当前版本的社区版安装包，完成切换。',
        restoreCommunityOfflineHelper: '请先将版本不低于当前企业版的官方安装包放入 {path} 后执行切换。',
        restoreCommunityConfirm:
            '版本切换后，可以使用当前企业版超级管理员账号登录社区版。切换过程中将清除企业版专属数据，请谨慎操作。',
        restoreCommunityStarting: '正在准备社区版，完成后面板将自动重启。',
        levelUpPro: '升级商业版',
        licenseSync: '许可证同步',
        knowMorePro: '了解商业版',
        closeAlert: '当前页面可在面板设置中关闭显示',
        introduce: '功能介绍',
        deviceID: '设备 ID',
        corporation: '授权公司',
        expired: '过期时间',
        edition: '版本',
        standard: '标准版',
        enterprise: '企业版',
        count: '授权数量',
        serialNo: '序列号',
        remark: '备注',
        waf: '升级商业版可以获得拦截地图、日志、封锁记录、地理位置封禁、自定义规则、自定义拦截页面等功能。',
        tamper: '升级商业版可以保护网站免受未经授权的修改或篡改。',
        tamperHelper: '操作失败，该文件或文件夹已经开启防篡改，请检查后重试！',
        setting: '升级商业版可以自定义面板 Logo、欢迎简介等信息。',
        monitor: '升级商业版可以查看网站的实时状态、访客趋势、访客来源、请求日志等信息。',
        alert: '升级商业版可通过短信接收告警信息，并查看告警日志，全面掌控各类关键事件，确保系统运行无忧。',
        node: '升级商业版可以使用 1Panel 管理多台 linux 服务器。',
        nodeApp: '升级商业版可以统一升级多节点应用版本，无需手动切换节点。',
        nodeDashboard: '升级商业版可以集中管理多节点应用、网站、数据库和计划任务。',
        fileExchange: '升级商业版可以在多台服务器之间快速传输文件。',
        app: '升级商业版可通过手机 APP，查看服务信息、异常监控等。',
        cluster: '升级商业版可以管理 MySQL/Postgres/Redis 主从集群。',
        vllm: '升级商业版可将 vLLM 服务统一纳入 1Panel 管理，集中完成部署、配置调整、状态运维与任务追踪，降低本地模型服务维护成本。',
        'model-downloader':
            '升级商业版可从 HuggingFace、ModelScope 或兼容镜像站搜索、下载并管理本地模型文件，统一维护本地模型目录与下载任务。',
    },
    clean: {
        scan: '开始扫描',
        scanHelper: '轻松梳理 1Panel 运行期间积累的垃圾文件',
        clean: '立即清理',
        reScan: '重新扫描',
        cleanHelper: '已勾选文件及目录清理后无法回滚，是否继续？',
        statusSuggest: '( 建议清理 )',
        statusClean: '( 很干净 )',
        statusEmpty: '非常干净，无需清理！',
        statusWarning: '( 谨慎操作 )',
        lastCleanTime: '上次清理时间: {0}',
        lastCleanHelper: '清理文件及目录：{0} 个， 总计清理：{1}',
        cleanSuccessful: '清理成功！',
        currentCleanHelper: '本次清理文件及目录：{0} 个， 总计清理：{1}',
        suggest: '（建议）',
        totalScan: '待清理垃圾文件共计： ',
        selectScan: '已选中垃圾文件共计： ',

        system: '系统垃圾',
        systemHelper: '快照、升级等过程中产生的临时文件',
        panelOriginal: '系统快照恢复前备份文件',
        upgrade: '系统升级备份文件',
        agentPackages: '历史版本子节点升级 / 安装包',
        upgradeHelper: '( 建议保留最新的升级备份用于系统回滚 )',
        snapshot: '系统快照临时文件',
        rollback: '恢复前备份目录',

        backup: '系统备份',
        backupHelper: '本地备份账号中未关联的备份文件',
        unknownBackup: '系统备份',
        tmpBackup: '临时备份',
        unknownApp: '未关联应用备份',
        unknownDatabase: '未关联数据库备份',
        unknownWebsite: '未关联网站备份',
        unknownSnapshot: '未关联快照备份',

        upload: '临时上传文件',
        uploadHelper: '系统上传备份列表中上传的临时文件',
        download: '临时下载文件',
        downloadHelper: '系统从第三方备份账号下载的临时文件',
        directory: '文件夹',

        systemLog: '日志文件',
        systemLogHelper: '系统日志、任务日志、网站日志文件',
        dockerLog: '容器操作日志文件',
        taskLog: '计划任务执行日志文件',
        shell: 'Shell 脚本计划任务',
        containerShell: '容器内执行 Shell 脚本计划任务',
        curl: 'CURL 计划任务',

        docker: '容器垃圾',
        dockerHelper: '容器、镜像、存储卷、构建缓存等文件',
        volumes: '存储卷',
        buildCache: '构建缓存',

        appTmpDownload: '应用临时下载文件',
        unknownWebsiteLog: '未关联网站日志备份文件',
    },
    app: {
        app: '应用',
        installName: '安装名称',
        installed: '已安装',
        all: '全部',
        version: '版本',
        detail: '详情',
        params: '参数',
        author: '作者',
        source: '来源',
        appName: '应用名称',
        deleteWarn: '删除操作会把所有数据和备份一并删除，此操作不可回滚，是否继续？',
        syncSuccess: '同步成功',
        canUpgrade: '可升级',
        backupName: '文件名称',
        backupPath: '文件路径',
        backupdate: '备份时间',
        versionSelect: '请选择版本',
        operatorHelper: '将对选中应用进行 {0} 操作，是否继续？',
        startOperatorHelper: '即将启动应用，是否继续？',
        stopOperatorHelper: '即将停止应用，是否继续？',
        restartOperatorHelper: '即将重启应用，是否继续？',
        reloadOperatorHelper: '即将重载应用，是否继续？',
        checkInstalledWarn: '未检测到 {0} ,请进入应用商店点击安装！',
        limitHelper: '该应用已安装，不支持重复安装',
        deleteHelper: '{0}已经关联以下资源，请检查后重试！',
        checkTitle: '提示',
        defaultConfig: '默认配置',
        defaultConfigHelper: '已恢复为默认配置，保存后生效',
        forceDelete: '强制删除',
        forceDeleteHelper: '强制删除，会忽略删除过程中产生的错误并最终删除元数据',
        deleteBackup: '删除备份',
        deleteBackupHelper: '同时删除应用备份',
        deleteDB: '删除数据库',
        deleteDBHelper: '同时删除与应用关联的数据库',
        noService: '无{0}',
        toInstall: '去安装',
        param: '参数配置',
        syncAppList: '更新远程应用',
        alreadyRun: '已安装',
        less1Minute: '小于1分钟',
        appOfficeWebsite: '官方网站',
        github: '开源社区',
        document: '文档说明',
        updatePrompt: '当前应用均为最新版本',
        installPrompt: '尚未安装任何应用',
        updateHelper: '更新参数可能导致应用无法启动，请提前备份并谨慎操作',
        updateWarn: '更新参数需要重建应用，是否继续？',
        busPort: '服务端口',
        syncStart: '开始同步！请稍后刷新应用商店',
        advanced: '高级设置',
        cpuCore: '核心数',
        containerName: '容器名称',
        containerNameHelper: '可以为空，为空自动生成',
        allowPort: '端口外部访问',
        allowPortHelper: '允许端口外部访问会放开防火墙端口',
        appInstallWarn: '应用端口默认不允许外部访问，可以在下方高级设置中选择放开',
        upgradeStart: '开始升级！请稍后刷新页面',
        toFolder: '进入安装目录',
        editCompose: '编辑 compose 文件',
        editComposeHelper: '编辑 compose 文件可能导致软件安装失败',
        composeNullErr: 'compose 不能为空',
        takeDown: '已废弃',
        allReadyInstalled: '已安装',
        installHelper: '配置镜像加速可以解决镜像拉取失败的问题',
        sortMode: '排序',
        installWarn: '当前未勾选端口外部访问，将无法通过外网IP:端口访问，是否继续？',
        showIgnore: '查看忽略应用',
        cancelIgnore: '取消忽略',
        ignoreList: '忽略列表',
        appHelper: '部分应用的安装使用说明请在应用详情页查看',
        backupApp: '升级前备份应用',
        backupAppHelper: '升级失败会使用备份自动回滚,请在日志审计-系统日志中查看失败原因',
        openrestyDeleteHelper: '强制删除 OpenResty 会删除所有的网站，请确认风险之后操作',
        downloadLogHelper1: '即将下载 {0} 应用所有日志，是否继续？',
        downloadLogHelper2: '即将下载 {0} 应用最近 {1} 条日志，是否继续？',
        syncAllAppHelper: '即将同步所有应用，是否继续？',
        hostModeHelper: '当前应用网络模式为 host 模式，如需放开端口，请在防火墙页面手动放开',
        showLocal: '本地应用',
        reload: '重载',
        upgradeWarn: '升级应用会替换 docker-compose.yml 文件，如有更改，可以点击查看文件对比',
        openclawHttpsUpgradeNoticeTitle:
            '注意：以下说明仅适用于 OpenClaw 从 2026.3.13 ~ 2026.3.22 版本升级到 2026.3.23 及以上版本的用户：',
        openclawHttpsUpgradeNoticeItem1:
            '升级完成后，智能体访问协议将恢复为 HTTP，请进入 配置 → 设置 → 安全 检查访问地址。',
        openclawHttpsUpgradeNoticeItem2: '如果之前通过反向代理网站访问，请将代理目标地址修改为 http://IP:Port。',
        newVersion: '新版本',
        oldVersion: '当前版本',
        composeDiff: '文件对比',
        showDiff: '查看对比',
        useNew: '使用自定义版本',
        useDefault: '使用默认版本',
        useCustom: '自定义 docker-compose.yml',
        useCustomHelper: '使用自定义 docker-compose.yml 文件，可能会导致应用升级失败，如无必要，请勿勾选',
        diffHelper: '左侧为旧版本，右侧为新版，编辑之后点击使用自定义版本保存',
        pullImage: '拉取镜像',
        pullImageHelper: '在应用启动之前执行 docker pull 来拉取镜像',
        deleteImage: '删除镜像',
        deleteImageHelper: '删除应用相关镜像，删除失败任务不会终止',
        requireMemory: '内存需求',
        supportedArchitectures: '支持架构',
        link: '链接',
        showCurrentArch: '本服务器架构应用',
        syncLocalApp: '同步本地应用',
        memoryRequiredHelper: '当前应用内存需求 {0}',
        gpuConfig: '开启 GPU 支持',
        gpuConfigHelper: '请确保机器有 NVIDIA GPU 并且安装 NVIDIA 驱动 和 NVIDIA docker Container Toolkit',
        webUI: 'Web 访问地址',
        webUIPlaceholder: '例如：example.com:8080/login',
        defaultWebDomain: '默认访问地址',
        defaultWebDomainHepler: '如果应用端口为 8080，则跳转地址为 http(s)://默认访问地址:8080',
        webUIConfig: '当前应用尚未配置访问地址，请在应用参数或前往面板设置进行设置！',
        toLink: '跳转',
        customAppHelper: '在使用自定义应用商店仓库之前，请确保没有任何已安装的应用。',
        forceUninstall: '强制卸载',
        syncCustomApp: '同步自定义应用',
        ignoreAll: '忽略后续所有版本',
        ignoreVersion: '忽略指定版本',
        specifyIP: '绑定主机 IP',
        specifyIPHelper: '设置端口绑定的主机地址/网卡（如果你不清楚这个的作用，请不要填写）',
        uninstallDeleteBackup: '卸载应用-删除备份',
        uninstallDeleteImage: '卸载应用-删除镜像',
        upgradeBackup: '应用升级前备份应用',
        upgradeDeleteImage: '升级应用-删除旧镜像',
        installAllowPort: '安装应用默认打开端口外部访问',
        noAppHelper: '未检测到应用，请前往任务中心查看应用商店同步日志',
        isEdirWarn: '检测到 docker-compose.yml 文件被修改，请查看对比',
    },
    website: {
        primaryDomain: '主域名',
        otherDomains: '其他域名',
        static: '静态网站',
        deployment: '一键部署',
        supportUpType: '仅支持 .tar.gz 文件格式，且压缩包内必须包含 {0}.json 文件',
        proxy: '反向代理',
        alias: '代号',
        ftpUser: 'FTP 账号',
        ftpPassword: 'FTP 密码',
        ftpHelper: '创建站点的同时，为站点创建一个对应 FTP 帐户，并且 FTP 目录指向站点所在目录。',
        remark: '备注',
        groupSetting: '分组管理',
        createGroup: '创建分组',
        appNew: '新装应用',
        appInstalled: '已装应用',
        delete: '删除网站',
        deleteApp: '删除应用',
        deleteBackup: '删除备份',
        domain: '域名',
        domainHelper: '一行一个域名，支持*和IP地址，支持"域名:端口"',
        addDomain: '新增域名',
        domainConfig: '域名设置',
        defaultDoc: '默认文档',
        perserver: '并发限制',
        perserverHelper: '限制当前站点最大并发数',
        perip: '单 IP 限制',
        peripHelper: '限制单个 IP 访问最大并发数',
        rate: '流量限制',
        rateLimit: '单请求限速',
        rateHelper: '限制每个请求的流量上限(单位:KB)',
        rateLimitHelper: '限制每个请求的每秒传输速率（单位：KB/s）',
        limitHelper: '启用流量控制',
        other: '其他',
        currentSSL: '当前证书',
        dnsAccount: 'DNS 账号',
        applySSL: '证书申请',
        SSLList: '证书列表',
        createDnsAccount: 'DNS 账户',
        aliyun: '阿里云',
        aliEsa: '阿里云 ESA',
        awsRoute53: 'Amazon Route 53',
        manual: '手动解析',
        key: '密钥',
        check: '查看',
        acmeAccountManage: 'Acme 账户',
        email: '邮箱',
        acmeAccount: 'Acme 账户',
        provider: '验证方式',
        dnsManual: '手动解析',
        expireDate: '过期时间',
        brand: '颁发组织',
        deploySSL: '部署',
        deploySSLHelper: '确定部署证书？',
        ssl: '证书',
        dnsAccountManage: 'DNS 账户',
        renewSSL: '续签',
        renewHelper: '确定续签证书？',
        renewSuccess: '续签证书',
        enableHTTPS: '启用 HTTPS',
        aliasHelper: '代号是网站目录的文件夹名称',
        lastBackupAt: '上次备份时间',
        null: '无',
        nginxConfig: 'Nginx配置',
        websiteConfig: '网站设置',
        proxySettings: '代理设置',
        advancedSettings: '高级设置',
        cacheSettings: '缓存设置',
        sniSettings: 'SNI 设置',
        basic: '基本',
        source: '配置文件',
        security: '安全',
        nginxPer: '性能调整',
        neverExpire: '永不过期',
        setDefault: '设为默认',
        deleteHelper: '相关应用状态不正常，请检查',
        toApp: '去已安装列表',
        cycle: '周期',
        frequency: '频率',
        ccHelper: '{0} 秒内累计请求同一URL超过 {1} 次,触发CC防御,封锁此IP',
        mustSave: '修改之后需要保存才能生效',
        fileExt: '文件扩展名',
        fileExtBlock: '文件扩展名黑名单',
        value: '值',
        enable: '开启',
        proxyAddress: '代理地址',
        proxyHelper: '例: 127.0.0.1:8080',
        forceDelete: '强制删除',
        forceDeleteHelper: '强制删除，会忽略删除过程中产生的错误并最终删除元数据',
        deleteAppHelper: '同时删除关联应用、数据库以及应用备份',
        deleteBackupHelper: '同时删除网站备份',
        deleteDatabaseHelper: '同时删除网站关联数据库',
        deleteConfirmHelper: '删除操作无法回滚，请输入 <span style="color:red"> "{0}" </span> 删除',
        staticPath: '对应主目录:',
        limit: '限制方案',
        blog: '论坛/博客',
        imageSite: '图片站',
        downloadSite: '下载站',
        shopSite: '商城',
        doorSite: '门户',
        qiteSite: '企业',
        videoSite: '视频',
        errLog: '错误日志',
        stopHelper: '停止站点后将无法正常访问，用户访问会显示当前站点停止页面，是否继续操作？',
        startHelper: '启用站点后，用户可以正常访问网站内容，是否继续操作？',
        sitePath: '网站目录',
        siteAlias: '网站代号',
        primaryPath: 'root 目录',
        folderTitle: '网站主要包含以下文件夹',
        wafFolder: '防火墙规则',
        indexFolder: '网站 root 目录（PHP 运行环境 静态网站代码存放目录）',
        sslFolder: '网站证书',
        enableOrNot: '是否启用',
        oldSSL: '选择已有证书',
        manualSSL: '手动导入证书',
        select: '选择',
        selectSSL: '选择证书',
        privateKey: '私钥(KEY)',
        certificate: '证书(PEM格式)',
        HTTPConfig: 'HTTP 选项',
        HTTPSOnly: '禁止 HTTP',
        HTTPToHTTPS: '访问HTTP自动跳转到HTTPS',
        HTTPAlso: 'HTTP可直接访问',
        sslConfig: 'SSL 选项',
        disableHTTPS: '禁用 HTTPS',
        disableHTTPSHelper: '禁用 HTTPS会删除证书相关配置，是否继续？',
        SSLHelper: '注意：请勿将SSL证书用于非法网站 \n 如开启后无法使用HTTPS访问，请检查安全组是否正确放行443端口',
        SSLConfig: '证书设置',
        SSLProConfig: 'SSL 协议设置',
        supportProtocol: '支持的协议版本',
        encryptionAlgorithm: '加密算法',
        notSecurity: '（不安全）',
        encryptHelper:
            "Let's Encrypt 签发证书有频率限制，但足以满足正常需求，过于频繁操作会导致签发失败。具体限制请看 <a target=“_blank” href='https://letsencrypt.org/zh-cn/docs/rate-limits/'>官方文档</a> ",
        ipValue: '值',
        ext: '文件扩展名',
        wafInputHelper: '按行输入数据，一行一个',
        data: '数据',
        ever: '永久',
        nextYear: '一年后',
        noLog: '当前没有日志...',
        defaultServer: '默认站点',
        noDefaultServer: '未设置',
        defaultServerHelper:
            '设置默认站点后,所有未绑定的域名和IP都被定向到默认站点\n可有效防止恶意解析\n但同时会导致 WAF 未授权域名拦截失败',
        websiteDeploymentHelper: '使用从 1Panel 部署的应用创建网站',
        websiteStatictHelper: '在主机上创建网站目录',
        websiteProxyHelper:
            '代理已有服务。例如本机已安装使用 8080 端口的 halo 服务，那么代理地址为 http://127.0.0.1:8080',
        restoreHelper: '确认使用此备份恢复？',
        wafValueHelper: '值',
        runtimeProxyHelper: '使用从 1Panel 创建的运行环境',
        runtime: '运行环境',
        deleteRuntimeHelper: '运行环境应用需要跟网站一并删除，请谨慎处理',
        proxyType: '监听网络类型',
        unix: 'Unix 网络',
        tcp: 'TCP/IP 网络',
        phpFPM: 'FPM 配置文件',
        phpConfig: 'PHP 配置文件',
        updateConfig: '配置修改',
        isOn: '开启',
        isOff: '关闭',
        rewrite: '伪静态',
        rewriteMode: '方案',
        current: '当前',
        rewriteHelper: '若设置伪静态后，网站无法正常访问，请尝试设置回default',
        runDir: '运行目录',
        runUserHelper:
            '通过 PHP 容器运行环境部署的网站，需要将 index 和子目录下的所有文件、文件夹所有者和用户组设置为 1000，本地 PHP 环境需要参考本地 PHP-FPM 用户和用户组设置',
        userGroup: '运行用户/组',
        uGroup: '用户组',
        proxyPath: '前端请求路径',
        proxyPass: '后端代理地址',
        cache: '缓存',
        cacheTime: '缓存时间',
        enableCache: '开启缓存',
        proxyHost: '后端域名',
        disabled: '已停止',
        startProxy: '开启反向代理',
        stopProxy: '关闭反向代理',
        sourceFile: '源文',
        proxyHelper1: '访问这个目录时将会把目标URL的内容返回并显示',
        proxyPassHelper: '代理的站点，必须为可正常访问的URL',
        proxyHostHelper: '将域名添加到请求头传递到代理服务器',
        modifier: '匹配规则',
        modifierHelper: '例：= 精确匹配，~ 正则匹配，^~ 匹配路径开头 等',
        replace: '文本替换',
        replaceHelper:
            'nginx文本替换功能可以在反向代理时对响应内容进行字符串替换。常用于修改代理后端返回的HTML、CSS、JavaScript等文件中的链接地址、API接口地址等。支持正则表达式匹配，可实现复杂的内容替换需求。',
        addReplace: '添加文本替换',
        replaced: '搜索字符串（不能为空）',
        replaceText: '替换为字符串',
        replacedErr: '搜索字符串不能为空',
        replacedErr2: '搜索字符串不能重复',
        replacedListEmpty: '无文本替换规则',
        proxySslName: '代理 SNI 名称',
        basicAuth: '密码访问',
        editBasicAuthHelper: '密码为非对称加密，无法回显，编辑需要重新设置密码',
        antiLeech: '防盗链',
        extends: '扩展名',
        browserCache: '浏览器缓存',
        noModify: '不修改',
        serverCache: '服务器缓存',
        leechLog: '记录防盗链日志',
        accessDomain: '允许的域名',
        leechReturn: '响应资源',
        noneRef: '允许 Referer 为空',
        disable: '未启用',
        disableLeechHelper: '是否禁用防盗链',
        disableLeech: '禁用防盗链',
        ipv6: '监听 IPV6',
        leechReturnError: '请填写 HTTP 状态码',
        blockedRef: '允许非标准 Referer',
        accessControl: '防盗链控制',
        leechcacheControl: '缓存控制',
        logEnableControl: '记录请求日志',
        leechSpecialValidHelper:
            '允许 Referer 为空启用时，不会阻止无 Referer 的请求（直接访问等），启用非标准 Referer 时会放行任何不以 http/https 开头的 Referer 请求（客户端请求等）',
        leechInvalidReturnHelper: '拦截盗链请求后，返回的 HTTP 状态码',
        leechlogControlHelper: '记录静态资源的请求，生产环境通常可以关闭避免过多无意义的日志',
        selectAcme: '选择 acme 账号',
        imported: '手动创建',
        importType: '导入方式',
        pasteSSL: '粘贴代码',
        localSSL: '选择服务器文件',
        privateKeyPath: '私钥文件',
        certificatePath: '证书文件',
        ipWhiteListHelper: 'IP 白名单的作用：所有规则对IP白名单无效',
        redirect: '重定向',
        sourceDomain: '源域名/路径',
        targetURL: '目标URL地址',
        keepPath: '保留URI参数',
        path: '路径',
        redirectType: '重定向类型',
        redirectWay: '方式',
        keep: '保留',
        notKeep: '不保留',
        redirectRoot: '重定向到首页',
        redirectHelper: '301永久重定向，302临时重定向',
        changePHPVersionWarn: '此操作不可回滚，是否继续',
        changeVersion: '切换版本',
        retainConfig: '是否保留 php-fpm.conf 和 php.ini 文件',
        runDirHelper2: '请确保二级运行目录位于 index 目录下',
        openrestyHelper: 'OpenResty 默认 HTTP 端口：{0} HTTPS 端口 ：{1}，可能影响网站域名访问和 HTTPS 强制跳转',
        primaryDomainHelper: '支持域名:端口',
        acmeAccountType: '账号类型',
        keyType: '密钥算法',
        tencentCloud: '腾讯云',
        containWarn: '其他域名中包含主域名，请重新输入',
        rewriteHelper2: '从应用商店安装的 WordPress 等应用，默认已经配置好伪静态，重复配置可能会报错',
        websiteBackupWarn: '仅支持导入本机备份，导入其他机器备份可能会恢复失败',
        ipWebsiteWarn: 'IP 为域名的网站，需要设置为默认站点才能正常访问',
        hstsHelper: '开启 HSTS 可以增加网站安全性',
        includeSubDomains: '子域',
        hstsIncludeSubDomainsHelper: '启用后，HSTS策略将应用于当前域名的所有子域名',
        defaultHtml: '默认页面',
        website404: '网站 404 错误页',
        domain404: '网站不存在页',
        indexHtml: '静态网站默认页',
        stopHtml: '网站停用页',
        indexPHP: 'PHP 网站默认页',
        sslExpireDate: '证书过期时间',
        website404Helper: '网站 404 错误页仅支持 PHP 运行环境网站和静态网站',
        sni: '回源 SNI',
        sniHelper: '反代后端为 https 的时候可能需要设置回源 SNI，具体需要看 CDN 服务商文档',
        proxySslVerify: '校验后端 SSL 证书',
        proxySslVerifyHelper: '开启后，反向代理 HTTPS 后端时将严格校验服务器证书（默认不校验）',
        huaweicloud: '华为云',
        createDb: '创建数据库',
        enableSSLHelper: '开启失败不会影响网站创建',
        batchAdd: '批量添加域名',
        batchInput: '批量编辑',
        domainNotFQDN: '该域名可能无法在公网访问',
        domainInvalid: '域名格式不正确',
        domainBatchHelper: '一行一个域名，格式：域名:端口\n示例：example.com',
        generateDomain: '生成',
        global: '全局',
        subsite: '子网站',
        subsiteHelper: '子网站可以选择已存在的 PHP 和静态网站的目录作为主目录',
        parentWbeiste: '父级网站',
        deleteSubsite: '删除当前网站需要先删除子网站 {0}',
        loadBalance: '负载均衡',
        server: '节点',
        algorithm: '算法',
        ipHash: 'IP 哈希',
        ipHashHelper: '基于客户端 IP 地址将请求分配到特定服务器，可以确保特定客户端总是被路由到同一服务器',
        leastConn: '最小连接',
        leastConnHelper: '将请求发送到当前活动连接数最少的服务器',
        leastTime: '最小时间',
        leastTimeHelper: '将请求发送到当前活动连接时间最短的服务器',
        defaultHelper:
            '默认方法，请求被均匀分配到每个服务器，如果服务器有权重配置，则根据指定的权重分配请求，权重越高的服务器接收更多请求',
        weight: '权重',
        maxFails: '最大失败次数',
        maxConns: '最大连接数',
        strategy: '策略',
        strategyDown: '停用',
        strategyBackup: '备用',
        ipHashBackupErr: 'IP 哈希不支持备用节点',
        failTimeout: '故障超时',
        failTimeoutHelper:
            '服务器健康检查的时间窗口长度。在该时间段内累计失败次数达到阈值时，服务器将被暂时移除，并在经过相同时长后重新尝试。默认 10 秒',

        staticChangePHPHelper: '当前为静态网站，可以切换为 PHP 网站',
        proxyCache: '反代缓存',
        cacheLimit: '缓存空间限制',
        shareCache: '缓存计数内存大小',
        cacheExpire: '缓存过期时间',
        shareCacheHelper: '每1M内存可以存储约8000个缓存对象',
        cacheLimitHelper: '超过限制会自动删除旧的缓存',
        cacheExpireJHelper: '超出时间缓存未命中将会被删除',
        realIP: '真实 IP',
        ipFrom: 'IP 来源',
        ipFromHelper:
            '通过配置可信 IP 来源，OpenResty 会分析 HTTP Header 中的 IP 信息，准确识别并记录访客的真实 IP 地址，包括在访问日志中',
        ipFromExample1: '如果前端是 Frp 等工具，可以填写 Frp 的 IP 地址，类似 127.0.0.1',
        ipFromExample2: '如果前端是 CDN，可以填写 CDN 的 IP 地址段',
        ipFromExample3: '如果不确定，可以填 0.0.0.0/0（ipv4）  ::/0（ipv6） [注意：允许任意来源 IP 不安全]',
        http3Helper:
            'HTTP/3 是 HTTP/2 的升级版本，提供更快的连接速度和更好的性能，但是不是所有浏览器都支持 HTTP/3，开启后可能会导致部分浏览器无法访问',
        cors: '跨域访问',
        enableCors: '开启跨域',
        allowOrigins: '允许访问的域名',
        allowMethods: '允许的请求方法',
        allowHeaders: '允许的请求头',
        allowCredentials: '允许携带cookies',
        preflight: '预检请求快速响应',
        preflightHleper:
            '开启后，当浏览器发送跨域预检请求（OPTIONS 请求）时，系统会自动返回 204 状态码并设置必要的跨域响应头',

        changeDatabase: '切换数据库',
        changeDatabaseHelper1: '数据库关联用于备份恢复网站',
        changeDatabaseHelper2: '切换其他数据库会导致以前的备份无法恢复',
        saveCustom: '另存为模版',
        rainyun: '雨云',
        volcengine: '火山引擎',
        runtimePortHelper: '当前运行环境存在多个端口，请选择一个代理端口',
        runtimePortWarn: '当前运行环境没有端口，无法代理',
        cacheWarn: '请先关闭反代中的缓存开关',
        loadBalanceHelper: '创建负载均衡后，请前往‘反向代理’，添加代理并将后端地址设置为：http://<负载均衡名称>。',
        useProxy: '使用代理',
        useProxyHelper: '使用面板设置中的代理服务器地址',
        westCN: '西部数码',
        openBaseDir: '防跨站攻击',
        openBaseDirHelper: 'open_basedir 用于限制 PHP 文件访问路径，有助于防止跨站访问和提升安全性',
        serverCacheTime: '服务器缓存时间',
        serverCacheTimeHelper: '请求在服务器端缓存的时间，到期前相同请求会直接返回缓存结果，不再请求源站。',
        browserCacheTime: '浏览器缓存时间',
        browserCacheTimeHelper: '静态资源在浏览器本地缓存的时间，减少重复请求。到期前用户刷新页面会直接使用本地缓存。',
        donotLinkeDB: '不关联数据库',
        toWebsiteDir: '进入网站目录',
        execParameters: '执行参数',
        extCommand: '补充命令',
        mirror: '镜像源',
        execUser: '执行用户',
        execDir: '执行目录',
        packagist: '中国全量镜像',

        batchOperate: '批量操作',
        batchOperateHelper: '批量{0}网站，是否继续操作？',
        stream: 'TCP/UDP 代理',
        streamPorts: '监听端口',
        streamPortsHelper: '设置对外监听的端口号，客户端将通过此端口访问服务，按逗号分割，例如：5222,5223',
        streamHelper: 'TCP/UDP 端口转发与负载均衡',
        udp: '启用 UDP',

        syncHtmlHelper: '同步到 PHP 和静态网站',
    },
    php: {
        short_open_tag: '短标签支持',
        max_execution_time: '最大脚本运行时间',
        max_input_time: '最大输入时间',
        memory_limit: ' 脚本内存限制',
        post_max_size: 'POST数据最大尺寸',
        file_uploads: '是否允许上传文件',
        upload_max_filesize: '允许上传文件的最大尺寸',
        max_file_uploads: '允许同时上传文件的最大数量',
        default_socket_timeout: 'Socket超时时间',
        error_reporting: '错误级别',
        display_errors: '是否输出详细错误信息',
        cgi_fix_pathinfo: '是否开启 pathinfo',
        date_timezone: '时区',
        disableFunction: '禁用函数',
        disableFunctionHelper: '输入要禁用的函数，例如exec，多个请用,分割',
        uploadMaxSize: '上传限制',
        indexHelper: '为保障 PHP 网站正常运行，请将代码放置于主目录下的 index 目录，并避免重命名',
        extensions: '扩展模版',
        extension: '扩展',
        extensionsHelper: '多个扩展请用,分割',
        extensionHelper: '多个扩展请使用英文逗号分隔',
        toExtensionsList: '查看扩展列表',
        containerConfig: '容器配置',
        containerConfigHelper: '环境变量等信息可以在创建完成之后在配置-容器配置中修改',
        dateTimezoneHelper: '示例：TZ=Asia/Shanghai（请根据需要自行添加）',
    },
    nginx: {
        serverNamesHashBucketSizeHelper: '服务器名字的hash表大小',
        clientHeaderBufferSizeHelper: '客户端请求的头buffer大小',
        clientMaxBodySizeHelper: '最大上传文件',
        keepaliveTimeoutHelper: '连接超时时间',
        gzipMinLengthHelper: '最小压缩文件',
        gzipCompLevelHelper: '压缩率',
        gzipHelper: '是否开启压缩传输',
        connections: '活动连接(Active connections)',
        accepts: '总连接次数(accepts)',
        handled: '总握手次数(handled)',
        requests: '总请求数(requests)',
        reading: '请求数(Reading)',
        writing: '响应数(Writing)',
        waiting: '驻留进程(Waiting)',
        status: '当前状态',
        configResource: '配置修改',
        saveAndReload: '保存并重载',
        clearProxyCache: '清除反代缓存',
        clearProxyCacheWarn: '此操作将删除缓存目录下的所有文件, 是否继续？',
        create: '新增模块',
        update: '编辑模块',
        params: '参数',
        packages: '软件包',
        script: '脚本',
        module: '模块',
        build: '构建',
        buildWarn: '本地构建模块需要占用一定的 CPU 和内存，静态模块还会重建并重启 OpenResty，是否继续？',
        buildPurposeHint: '动态模块构建后热加载生效（容器不重启）；包含静态模块时将全量重建镜像并重建容器',
        buildMode: '构建方式',
        buildModeDynamic: '动态模块',
        buildModeStatic: '静态模块',
        buildStatus: '构建状态',
        loadOrder: '加载顺序',
        modulesToBuild: '动态模块（构建后热加载，容器不重启）',
        staticModules: '静态模块',
        staticModulesHelper: '构建时将全量重建并重启 OpenResty',
        forceBuild: '忽略缓存重新构建',
        buildFailed: '上次构建失败',
        pending: '待构建',
        ready: '已构建',
        failed: '构建失败',
        dynamicUnsupported: '当前 OpenResty 版本不支持动态构建',
        moduleDynamicUnsupported: '该模块参数不支持动态构建',
        mirrorUrl: '软件源',
        paramsHelper: '例如：--add-module=/tmp/ngx_brotli，动态模式会自动转换参数',
        packagesHelper: '例如：git,curl 按,分割',
        scriptHelper: '编译之前执行的脚本，一般为下载模块源码，安装依赖等',
        buildHelper: '动态模块构建后通过配置加载；静态模块仍需重新构建 OpenResty',
        defaultHttps: 'HTTPS 防窜站',
        defaultHttpsHelper1: '开启后可以解决 HTTPS 窜站问题',
        sslRejectHandshake: '拒绝默认 SSL 握手',
        sslRejectHandshakeHelper: '开启之后可以避免证书泄露，设置默认网站会让此设置失效',
    },
    ssl: {
        create: '申请证书',
        provider: '类型',
        manualCreate: '手动创建',
        acmeAccount: 'Acme 账号',
        resolveDomain: '解析域名',
        err: '错误',
        value: '记录值',
        dnsResolveHelper: '请到DNS解析服务商处添加以下解析记录：',
        detail: '详情',
        msg: '证书信息',
        ssl: '证书',
        key: '私钥',
        startDate: '生效时间',
        organization: '签发机构',
        renewConfirm: '是否确定给域名 {0} 申请证书？',
        autoRenew: '自动续签',
        autoRenewHelper: '距离到期时间30天自动续签',
        renewSuccess: '续签成功',
        renewWebsite: '该证书已经和以下网站关联，申请会同步应用到这些网站',
        createAcme: '创建账户',
        acmeHelper: 'Acme 账户用于申请免费证书',
        upload: '上传证书',
        applyType: '申请方式',
        apply: '申请',
        applyStart: '证书申请开始',
        getDnsResolve: '正在获取 DNS 解析值,请稍后 ...',
        selfSigned: '自签证书',
        ca: '证书颁发机构',
        commonName: '证书主体名称(CN)',
        caName: '机构名称',
        company: '公司/组织',
        department: '部门',
        city: '城市',
        province: '省份',
        country: '国家代号',
        commonNameHelper: '例如:',
        selfSign: '签发证书',
        days: '有效期',
        domainHelper: '一行一个域名,支持*和IP地址',
        pushDir: '推送证书到本地目录',
        dir: '目录',
        pushDirHelper: '会在此目录下生成两个文件，证书文件：fullchain.pem 密钥文件：privkey.pem',
        organizationDetail: '机构详情',
        fromWebsite: '从网站中获取',
        dnsMauanlHelper: '手动解析模式需要在创建完之后点击申请按钮获取 DNS 解析值',
        httpHelper: '使用 HTTP 模式需安装 OpenResty，且不支持申请泛域名证书。',
        buypassHelper: 'Buypass 大陆地区无法访问',
        googleHelper: '如何获取 EAB HmacKey 和 EAB kid',
        googleCloudHelper: 'Google Cloud API 大陆大部分地区无法访问',
        skipDNSCheck: '跳过 DNS 校验',
        skipDNSCheckHelper: '如果出现申请超时问题，请勾选此处，其他情况请勿勾选',
        cfHelper: '请勿使用 Global API Key',
        deprecated: '即将废弃',
        deprecatedHelper: '已经停止维护，可能会在以后的某个版本废弃，请使用腾讯云方式解析',
        dnsPodRemoved: '已移除',
        dnsPodRemovedTip: 'DnsPod 已被 lego v5 移除，当前账号无法用于证书申请/续签，请改用腾讯云 DNS 账号',
        dnsPodRemovedSSLTip: '此证书绑定的 DnsPod 账号在 lego v5 已不可用，自动续签将失败，请将 DNS 账号切换到腾讯云',
        disableCNAME: '禁用 CNAME',
        disableCNAMEHelper: '有 CNAME 配置的域名，如果申请失败，可以勾选此处',
        nameserver: 'DNS 服务器',
        nameserverHelper: '使用自定义的 DNS 服务器来校验域名',
        edit: '编辑证书',
        execShell: '申请证书之后执行脚本',
        shell: '脚本内容',
        shellHelper:
            '脚本默认执行目录为 1Panel 安装目录，如果有推送证书，那么执行目录为证书推送目录。默认超时时间 30 分钟',
        customAcme: '自定义 ACME 服务',
        customAcmeURL: 'ACME 服务 URL',
        baiduCloud: '百度云',
        pushNode: '同步到其他节点',
        pushNodeHelper: '申请/续期之后推送到选择的节点',
        fromMaster: '主节点推送',
        hostedZoneID: '托管区域 ID',
        isIP: 'IP 证书',
        useEAB: '使用 EAB 认证',
    },
    firewall: {
        create: '创建规则',
        edit: '编辑规则',
        advancedControl: '高级控制',
        advancedControlNotAvailable: '当前使用 {0} 防火墙，高级规则仅支持 iptables',
        ccDeny: 'CC 防护',
        ipWhiteList: 'IP 白名单',
        ipBlockList: 'IP 黑名单',
        fileExtBlockList: '文件扩展名黑名单',
        urlWhiteList: 'URL 白名单',
        urlBlockList: 'URL 黑名单',
        argsCheck: 'GET 参数校验',
        postCheck: 'POST 参数校验',
        cookieBlockList: 'Cookie 黑名单',

        dockerHelper: '当前防火墙无法禁用容器端口映射，已安装应用可前往【已安装】页面编辑应用参数，配置端口放行规则。',
        iptablesHelper: '检测到系统正在使用 {0} 防火墙，如需切换至 iptables，请先手动卸载！',
        quickJump: '快速跳转',
        used: '已使用',
        unUsed: '未使用',
        dockerRestart: '防火墙操作需要重启 Docker 服务',
        firewallHelper: '{0}系统防火墙',
        firewallNotStart: '当前未开启系统防火墙，请先开启！',
        restartFirewallHelper: '该操作将对当前防火墙进行重启操作，是否继续？',
        stopFirewallHelper: '系统防火墙关闭后，服务器将失去安全防护，是否继续？',
        startFirewallHelper: '系统防火墙开启后，可以更好的防护服务器安全，是否继续？',
        noPing: '禁 ping',
        enableBanPing: '禁 ping',
        disableBanPing: '解除禁 ping',
        noPingTitle: '是否禁 ping',
        noPingHelper: '禁 ping 后将无法 ping 通服务器，是否继续？',
        onPingHelper: '解除禁 ping 后您的服务器可能会被黑客发现，是否继续？',
        changeStrategy: '修改{0}策略',
        changeStrategyIPHelper1: 'IP 策略修改为【屏蔽】，设置后该 IP 将禁止访问服务器，是否继续？',
        changeStrategyIPHelper2: 'IP 策略修改为【放行】，设置后该 IP 将恢复正常访问，是否继续？',
        changeStrategyPortHelper1: '端口策略修改为【拒绝】，设置后端口将拒绝外部访问，是否继续？',
        changeStrategyPortHelper2: '端口策略修改为【允许】，设置后端口将恢复正常访问，是否继续？',
        stop: '禁止',
        portFormatError: '请输入正确的端口信息！',
        portHelper1: '多个端口，如：8080,8081',
        portHelper2: '范围端口，如：8080-8089',
        changeStrategyHelper: '即将把 [{1}] 的 {0} 策略修改为 [{2}]，设置后 {0} 将按 [{2}] 策略对外访问，是否继续？',
        strategy: '策略',
        accept: '允许',
        drop: '拒绝',
        anyWhere: '所有 IP',
        address: '指定 IP',
        addressHelper: '支持输入 IP 或 IP 段',
        allow: '放行',
        deny: '屏蔽',
        addressFormatError: '请输入合法的 ip 地址！',
        addressHelper1: '支持输入 IP 或 IP 段：172.16.10.11 或 172.16.0.0/24',
        addressHelper2: '多个 IP 或 IP 段 请用 "," 隔开：172.16.10.11,172.16.0.0/24',
        allIP: '所有 IP',
        portRule: '端口规则',
        forwardRule: '端口转发',
        ipRule: 'IP 规则',
        userAgent: 'User-Agent 过滤',
        destination: '目的地',
        sourcePort: '源端口',
        targetIP: '目标 IP',
        targetPort: '目标端口',
        forwardHelper1: '如果是本机端口转发，目标IP为：127.0.0.1',
        forwardHelper2: '如果目标IP不填写，则默认为本机端口转发',
        forwardPortHelper: '支持端口范围，如：8080-8089',
        forwardInboundInterface: '转发入站网卡',
        exportHelper: '即将导出 {0} 条防火墙规则，是否继续？',
        importSuccess: '成功导入 {0} 条规则',
        importPartialSuccess: '导入完成：成功 {0} 条，失败 {1} 条',

        ipv4Limit: '当前操作暂仅支持 IPv4 地址',
        basicStatus: '当前未绑定链 {0} ，请先绑定！',
        baseIptables: 'iptables 服务',
        forwardIptables: 'iptables 端口转发服务',
        advanceIptables: 'iptables 高级配置服务',
        initMsg: '即将初始化 {0}, 是否继续？',
        initHelper: '检测到 {0} 未初始化，请点击顶部状态栏的初始化按钮进行配置！',
        bindHelper: '绑定 仅当状态为绑定时，防火墙规则才能生效，是否确认？',
        unbindHelper: '解绑 解除绑定时，已添加的所有防火墙规则将失效，请谨慎操作，是否确认？',
        whiteList: '白名单',
        portWhiteList: '端口白名单',
        portWhiteListAlter: '防火墙初始化或启动时，将自动放行白名单端口',
        portWhiteListHelper: '支持指定协议（如 80/tcp、443/udp），未指定时默认使用 TCP。',
        defaultStrategy: '当前链 {0} 的默认策略为 {1}',
        defaultStrategy2: '当前链 {0} 的默认策略为 {1}，当前状态为未绑定，已添加的防火墙规则需要绑定后生效！',
        filterRule: 'Filter 规则',
        filterHelper: 'Filter 规则允许您在 INPUT/OUTPUT 级别控制网络流量。请谨慎配置，避免锁定系统。',
        chain: '链',
        targetChain: '目标链',
        sourceIP: '源 IP',
        destIP: '目标 IP',
        inboundDirection: '入站方向',
        outboundDirection: '出站方向',
        destPort: '目标端口',
        action: '动作',
        reject: '拒绝',
        sourceIPHelper: 'CIDR 格式，如 192.168.1.0/24，留空表所有地址',
        destIPHelper: 'CIDR 格式，如 10.0.0.0/留空表所有地址',
        portHelper: '0 表示任意端口',
        allPorts: '所有端口',
        deleteRuleConfirm: '将删除 {0} 条规则，是否继续？',
    },
    runtime: {
        runtime: '运行环境',
        default: '默认',
        workDir: '工作目录',
        localHelper: '本地环境安装及离线环境使用相关问题，可参考 ',
        versionHelper: 'PHP的版本,例 v8.0',
        buildHelper: '扩展越多，制作镜像时占用的 CPU 越高，可在创建环境后再安装扩展',
        openrestyWarn: 'PHP 需要升级  OpenResty 至 1.21.4.1 版本以上才能使用',
        toupgrade: '去升级',
        edit: '编辑运行环境',
        extendHelper: '未列出的扩展可手动输入并选择，如：输入 sockets 后选择下拉列表中的第一个',
        rebuildHelper: '编辑扩展后需要【重建】PHP 应用之后才能生效',
        rebuild: '重建 PHP 应用',
        source: 'PHP 扩展源',
        ustc: '中国科学技术大学',
        netease: '网易',
        aliyun: '阿里云',
        tsinghua: '清华大学',
        xtomhk: 'XTOM 镜像站（香港）',
        xtom: 'XTOM 镜像站（全球）',
        phpsourceHelper: '根据你的网络环境选择合适的源',
        appPort: '应用端口',
        externalPort: '外部映射端口',
        packageManager: '包管理器',
        codeDir: '项目目录',
        appPortHelper: '应用端口是指容器内部的端口',
        externalPortHelper: '外部映射端口是指容器对外暴露的端口',
        runScript: '启动命令',
        runScriptHelper: '启动命令列表是从源码目录下的 package.json 文件中解析而来',
        open: '放开',
        operatorHelper: '将对选中的运行环境进行 {0} 操作，是否继续？',
        taobao: '淘宝',
        tencent: '腾讯',
        imageSource: '镜像源',
        moduleManager: '模块管理',
        module: '模块',
        nodeOperatorHelper: '是否{0} {1} 模块？操作可能导致运行环境异常，请确认后操作',
        customScript: '自定义启动命令',
        customScriptHelper: '请填写完整的启动命令，例如：npm run start，pm2 启动命令请换为 pm2-runtime，否则会启动失败',
        portError: '不能填写相同端口',
        systemRestartHelper: '状态说明：中断-系统重启导致状态获取失败',
        javaScriptHelper: '请填写完整启动命令，例如：java -jar halo.jar -Xmx1024M -Xms256M',
        javaDirHelper: '目录中要包含 jar 包，子目录中包含也可',
        goHelper: '请填写完整启动命令，例如：go run main.go 或 ./main',
        goDirHelper: '目录中要包含 go 文件或二进制文件，子目录中包含也可',
        extension: '扩展',
        installExtension: '是否确认安装扩展 {0}',
        loadedExtension: '已加载扩展',
        popularExtension: '常用扩展',
        uninstallExtension: '是否确认卸载扩展 {0}',
        phpConfigHelper: '修改配置需要重启运行环境，是否继续',
        operateMode: '运行模式',
        dynamic: '动态',
        static: '静态',
        ondemand: '按需',
        dynamicHelper: '动态调整进程数，灵活性高，适合流量波动较大或低内存的网站',
        staticHelper: '固定进程数，适合高并发和稳定流量的网站，资源消耗较高',
        ondemandHelper: '进程按需启动和销毁，资源利用最优，但初始响应可能较慢',
        max_children: '允许创建的最大进程数',
        start_servers: '启动时创建的进程数',
        min_spare_servers: '最小空闲进程数',
        max_spare_servers: '最大空闲进程数',
        envKey: '名称',
        envValue: '值',
        environment: '环境变量',
        pythonHelper:
            '请填写完整启动命令，例如：pip install -r requirements.txt && python  manage.py runserver 0.0.0.0:5000',
        dotnetHelper: '请填写完整启动命令，例如 dotnet MyWebApp.dll',
        dirHelper: '说明：请填写容器内的目录路径',
        concurrency: '并发方案',
        loadStatus: '负载状态',
        extraHosts: '主机映射',
    },
    process: {
        pid: '进程ID',
        ppid: '父进程ID',
        numThreads: '线程',
        memory: '内存',
        diskRead: '磁盘读',
        diskWrite: '磁盘写',
        netSent: '上行',
        netRecv: '下行',
        numConnections: '连接',
        startTime: '启动时间',
        running: '运行中',
        sleep: '睡眠',
        stop: '停止',
        idle: '空闲',
        zombie: '僵尸进程',
        wait: '等待',
        lock: '锁定',
        blocked: '阻塞',
        cmdLine: '启动命令',
        basic: '基本信息',
        mem: '内存信息',
        openFiles: '文件打开',
        env: '环境变量',
        noenv: '无',
        net: '网络连接',
        laddr: '本地地址/端口',
        raddr: '远程地址/端口',
        stopProcess: '结束',
        viewDetails: '查看详情',
        stopProcessWarn: '是否确定结束此进程 (PID:{0})？',
        kill: '结束进程',
        killNow: '立即结束',
        killHelper: '结束进程 {0} 可能导致部分程序无法正常运行，是否继续？',
        processName: '进程名称',
    },
    tool: {
        supervisor: {
            loadStatusErr: '获取进程状态失败，请检查 supervisor 服务状态',
            notSupport: '未检测到 Supervisor 服务，请前往脚本库页面手动安装',
            list: '守护进程',
            config: 'Supervisor 配置',
            primaryConfig: '主配置文件位置',
            notSupportCtl: '未检测到 supervisorctl，请前往脚本库页面手动安装',
            user: '启动用户',
            command: '启动命令',
            dir: '运行目录',
            numprocs: '进程数量',
            initWarn:
                '初始化操作需要修改配置文件的 [include] files 参数，修改后的服务配置文件所在目录: 1panel安装目录/1panel/tools/supervisord/supervisor.d/',
            operatorHelper: '将对 {0} 进行 {1} 操作，是否继续？',
            uptime: '运行时长',
            notStartWarn: '当前未开启 Supervisor ，请先启动',
            serviceName: '服务名称',
            initHelper: '检测到 Supervisor 服务未初始化，请点击顶部状态栏的初始化按钮进行配置',
            serviceNameHelper: 'systemctl 管理的 Supervisor 服务名称，一般为 supervisor、supervisord',
            restartHelper: '初始化会重启服务，导致原有的守护进程全部关闭',
            RUNNING: '运行中',
            STOPPED: '已停止',
            STOPPING: '停止中',
            STARTING: '启动中',
            FATAL: '启动失败',
            BACKOFF: '启动异常',
            ERROR: '错误',
            statusCode: '状态码',
            manage: '管理',
            autoRestart: '自动重启',
            EXITED: '已退出',
            autoRestartHelper: '程序异常退出后是否自动重启',
            autoStart: '自动启动',
            autoStartHelper: 'Supervisor 启动后是否自动启动服务',
        },
    },
    disk: {
        management: '磁盘管理',
        partition: '分区',
        unmount: '取消挂载',
        unmountHelper: '是否取消挂载分区 {0}？',
        mount: '挂载',
        partitionAlert: '进行磁盘分区时需要格式化磁盘，原有数据将被删除，请提前保存或快照数据',
        mountPoint: '挂载目录',
        systemDisk: '系统磁盘',
        unpartitionedDisk: '未分区磁盘',
        handlePartition: '立即分区',
        filesystem: '文件系统',
        unmounted: '未挂载',
        cannotOperate: '无法操作',
        systemDiskHelper: '提示：当前磁盘为系统盘，无法进行操作',
        autoMount: '开机自动挂载',
        model: '设备型号',
        diskType: '磁盘类型',
        serial: '序列号',
        noFail: '挂载失败不影响系统启动',
    },
    xpack: {
        ldap: {
            source: '来源',
            directoryMissing: 'LDAP 中不存在',
            localCredentialsManaged: '该用户的用户名和密码由 LDAP 管理，无法在本地修改。',
            sources: {
                local: '本地',
                ldap: 'LDAP',
            },
            importUsers: '导入 AD/LDAP 用户',
            searchUsersPlaceholder: '搜索用户名',
            readFromLDAP: '从 LDAP 读取',
            selectedUsers: '已选择 {0} 项',
            queriedAt: '读取时间',
            cachedResult: '缓存结果',
            roleForNewUsers: '新用户角色',
            selectRole: '请选择角色',
            roleOnlyForNewUsers: '仅在本次处理包含新用户时需要选择角色。',
            roleRequiredForNewUsers: '请为新的 LDAP 用户选择角色。',
            changedFields: '变更字段',
            importSelected: '导入/更新选中',
            importAll: '导入/更新全部',
            importPreview: 'AD/LDAP 导入预览',
            importCompleted: 'AD/LDAP 用户处理完成',
            incompletePreview: 'LDAP 目录未完整读取，请重新从 LDAP 读取。',
            missingUsersWarning: '严格同步将停用 LDAP 中不存在的用户。',
            missingUsersWarningDetail: '{0} 个本地 LDAP 用户将无法继续登录。',
            action: '处理结果',
            reason: '原因',
            noImportChanges: '没有需要处理的变更',
            confirmImport: '确认导入',
            created: '新建',
            updated: '更新',
            reactivated: '恢复',
            unchanged: '无变化',
            conflicts: '冲突',
            missing: '将停用',
            missingUsersConfirm: 'LDAP 中不存在的 {0} 个用户将被停用并退出登录，是否继续？',
            strictSyncConfirm: '确认严格同步',
            status: { importable: '可导入', update_available: '待更新', up_to_date: '已是最新', conflict: '同名冲突' },
            fields: { name: '用户名', externalDN: '目录 DN', externalID: '外部标识', authSourceStatus: '认证状态' },
            actions: {
                created: '新建',
                updated: '更新',
                reactivated: '恢复',
                unchanged: '无变化',
                skipped: '跳过',
                conflicts: '冲突',
                conflict: '冲突',
                missing: '停用',
                errors: '错误',
                error: '错误',
            },
        },
        expiresEnterpriseAlert: '温馨提醒：企业版许可证将于 [{0}] 天后到期，届时将停止使用所有企业版功能。',
        expiresProAlert: '温馨提醒：专业版许可证将于 [{0}] 天后到期，届时将停止使用所有专业版功能。',
        menu: '高级功能',
        upage: 'AI 建站',
        proAlert: '升级商业版使用此功能',
        logExport: {
            title: '导出日志',
            records: '导出记录',
            retentionDays: '导出记录保留天数',
            timeRange: '时间范围',
            timeRequired: '请选择导出时间范围',
            websiteRequired: '请选择网站',
            blackStatus: '黑名单状态',
            black: '已拉黑',
            notBlack: '未拉黑',
            fuzzy: '模糊匹配',
            regex: '正则表达式',
            invalidRegex: '请输入有效的 RE2 正则表达式，最长 256 个字符',
            created: '导出任务已创建',
            fileName: '文件名',
            fileSize: '文件大小',
            expiresAt: '过期时间',
            cancelConfirm: '确认取消此导出任务？',
            deleteConfirm: '确认删除此导出记录及文件？',
        },
        waf: {
            WAF: 'WAF',
            name: 'WAF',
            resource: '资源',
            blackWhite: '黑白名单',
            globalSetting: '全局设置',
            websiteSetting: '网站设置',
            blockRecords: '封锁记录',
            world: '世界',
            china: '中国',
            intercept: '拦截',
            request: '请求',
            count4xx: '4xx 数量',
            count5xx: '5xx 数量',
            todayStatus: '今日状态',
            reqMap: '拦截地图（30日）',
            count: '数量',
            hight: '高',
            low: '低',
            reqCount: '请求数',
            interceptCount: '拦截数',
            requestTrends: '请求趋势（7日）',
            interceptTrends: '拦截趋势（7日）',
            whiteList: '白名单',
            blackList: '黑名单',
            ipBlackListHelper: '黑名单中的 IP 无法访问网站',
            ipWhiteListHelper: '白名单中的 IP 不受任何规则限制',
            uaBlackListHelper: '携带黑名单中的 User-Agent 的请求将被拦截',
            uaWhiteListHelper: '携带白名单中的 User-Agent 的请求不受任何规则限制',
            urlBlackListHelper: '请求黑名单中的 URL 将被拦截',
            urlWhiteListHelper: '请求白名单中的 URL 不受任何规则限制',
            ccHelper: '{0} 秒内累计请求任意网站超过 {1} 次，封锁此 IP {2}',
            blockTime: '封禁时间',
            attackHelper: '{0} 秒内累计拦截超过 {1} 次，封锁此 IP {2} ',
            notFoundHelper: '{0} 秒内累计请求返回 404 超过 {1} 次，封锁此 IP {2} ',
            frequencyLimit: '频率限制',
            regionLimit: '地区限制',
            defaultRule: '默认规则',
            accessFrequencyLimit: '访问频率限制',
            attackLimit: '攻击频率限制',
            notFoundLimit: '404 频率限制',
            urlLimit: 'URL 频率限制',
            urlLimitHelper: '为单个 URL 设置访问频率',
            sqliDefense: 'SQL 注入防御',
            sqliHelper: '识别请求中的 SQL 注入并拦截',
            xssHelper: '识别请求中的 XSS 并拦截',
            xssDefense: 'XSS 防御',
            uaDefense: 'User-Agent 规则',
            uaHelper: '包含常见的恶意爬虫规则',
            argsDefense: '参数规则',
            argsHelper: '禁止请求中携带恶意参数',
            cookieDefense: 'Cookie 规则',
            cookieHelper: '禁止请求中携带恶意 Cookie',
            headerDefense: 'Header 规则',
            headerHelper: '禁止请求中携带恶意 Header',
            httpRule: 'HTTP 规则',
            httpHelper:
                '设置允许访问的方法类型，如果想限制某些类型访问，请关闭这个类型的按钮，例如：仅允许 GET 类型访问，那么需要关闭除了 GET 之外的其他类型按钮',
            geoRule: '地区访问限制',
            geoHelper: '使用一个开关组合地区和省份策略，地区规则先执行，省份规则可进一步限制中国省级区域',
            regionPolicy: '地区策略',
            provincePolicy: '省份策略',
            provinceRuleLabel: '省份',
            openRestyFeatureVersionAlert: 'OpenResty 版本需高于 1.31.1.1-0，{0}才会生效。',
            ipLocation: 'IP 归属地',
            ipLocationSearchHelper: '请输入 IP 归属地，支持模糊搜索',
            action: '动作',
            ruleType: '攻击类型',
            ipHelper: '请输入 IP',
            attackLog: '攻击日志',
            rule: '规则',
            ipArr: 'IPV4 范围',
            ipStart: '起始 IP',
            ipEnd: '结束 IP',
            ipv4: 'IPV4',
            ipv6: 'IPV6',
            urlDefense: 'URL 规则',
            urlHelper: '禁止访问的 URL',
            dirFilter: '目录过滤',
            sqlInject: 'SQL 注入',
            xss: 'XSS',
            webshell: 'WebShell',
            phpExec: 'PHP 脚本执行',
            oneWordTrojan: '一句话木马',
            appFilter: '应用危险目录过滤',
            webShell: 'Webshell',
            args: '参数规则',
            protocolFilter: '协议过滤',
            javaFilter: 'Java 危险文件过滤',
            scannerFilter: '扫描器过滤',
            escapeFilter: '转义过滤',
            customRule: '自定义规则',
            httpMethod: 'HTTP 方法过滤',
            fileExt: '文件上传限制',
            fileExtHelper: '禁止上传的文件扩展名',
            deny: '禁止',
            allow: '允许',
            allowOnly: '仅放行',
            field: '匹配对象',
            pattern: '匹配条件',
            ruleContent: '匹配内容',
            contain: '包含',
            equal: '等于',
            regex: '正则表达式',
            notEqual: '不等于',
            customRuleHelper: '根据条件匹配执行相应动作',
            actionAllow: '允许',
            blockIP: '封禁 IP',
            code: '返回状态码',
            noRes: '断开连接 (444)',
            badReq: '参数错误 (400)',
            forbidden: '禁止访问 (403)',
            serverErr: '服务器错误 (500)',
            resHtml: '响应页面',
            allowHelper: '允许访问会跳过 WAF 规则，请谨慎使用',
            captcha: '人机验证',
            fiveSeconds: '5 秒验证',
            location: '地区',
            redisConfig: 'Redis 配置',
            redisHelper: '开启 Redis 可以将临时拉黑的 IP 持久化',
            wafHelper: '关闭之后所有网站将失去防护',
            websiteWafHelper: '关闭之后此网站将失去防护',
            attackIP: '攻击 IP',
            attackParam: '攻击信息',
            execRule: '命中规则',
            acl: '自定义规则',
            sql: 'SQL 注入',
            cc: '访问频率限制',
            isBlocking: '封禁中',
            isFree: '已解封',
            unLock: '解封',
            unLockHelper: '是否解封 IP:{0}?',
            saveDefault: '保存默认',
            saveToWebsite: '应用到网站',
            saveToWebsiteHelper: '是否将当前设置应用到所有网站？',
            websiteHelper: '此处为创建网站的默认设置，修改之后需要应用到网站才能生效',
            websiteHelper2: '此处为创建网站的默认设置，具体配置请在网站处修改',
            ipGroup: 'IP 组',
            ipGroupHelper: '一行一个 IP 或 IP 段，支持 IPv4 和 IPv6， 例如：192.168.1.1 或 192.168.1.0/24',
            ipBlack: 'IP 黑名单',
            openRestyAlert: 'OpenResty 版本需要高于 {0}',
            initAlert: '首次使用需要初始化，会修改网站配置文件，原有的 WAF 配置会丢失，请一定提前备份 OpenResty',
            initHelper: '初始化操作将清除现有的 WAF 配置，您确定要进行初始化吗？',
            mainSwitch: '总开关',
            websiteSwitch: '开关',
            websiteAlert: '请先创建网站',
            defaultUrlBlack: 'URL 规则',
            htmlRes: '拦截页面',
            urlSearchHelper: '请输入 URL，支持模糊搜索',
            hostSearchHelper: '请输入 Host，支持模糊搜索',
            toCreate: '去创建',
            closeWaf: '关闭 WAF',
            closeWafHelper: '关闭 WAF 会使网站失去防护，是否继续',
            addblack: '拉黑',
            addwhite: '加白',
            addblackHelper: '是否把 IP:{0} 添加到默认黑名单?',
            addwhiteHelper: '是否把 IP:{0} 添加到默认白名单?',
            defaultUaBlack: 'User-Agent 规则',
            defaultIpBlack: '恶意 IP 组',
            cookie: 'Cookie 规则',
            urlBlack: 'URL 黑名单',
            uaBlack: 'User-Agent 黑名单',
            attackCount: '攻击频率限制',
            fileExtCheck: '文件上传限制',
            geoRestrict: '地区访问限制',
            originProtect: 'CDN 源站保护',
            attacklog: '拦截记录',
            unknownWebsite: '未授权域名访问',
            geoRuleEmpty: '地区或省份至少选择一项',
            unknown: '网站不存在',
            geo: '地区限制',
            revertHtml: '是否还原{0}为默认页面？',
            five_seconds: '5 秒验证',
            header: 'Header 规则',
            methodWhite: 'HTTP 规则',
            expiryDate: '有效期',
            expiryDateHelper: '验证通过后有效期内不再验证',
            defaultIpBlackHelper: '从互联网收集的一些恶意 IP，阻止其访问',
            notFoundCount: '404 频率限制',
            matchValue: '匹配值',
            headerName: '支持非特殊字符开头，英文、数字、-,长度3-30',
            cdnHelper: '使用 CDN 的网站可以打开此处来获取正确来源 IP',
            clearLogWarn: '清空日志将无法恢复，是否继续？',
            commonRuleHelper: '规则为模糊匹配',
            blockIPHelper: '封锁 IP 临时存储在 OpenResty 中，重启 OpenResty 会解封，可以通过拉黑功能永久拉黑',
            addWhiteUrlHelper: '是否把 URL {0} 添加到白名单?',
            dashHelper: '社区版也可使用全局设置和网站设置中的功能',
            wafStatusHelper: '当前防火墙未开启，网站安全防护已暂停，建议尽快启用。',
            enableProtection: '开启防护',
            ccMode: '模式',
            global: '全局模式',
            uriMode: 'URL 模式',
            globalHelper: '全局模式：单位时间请求任意 URL 次数之和超过阈值即触发',
            uriModeHelper: 'URL 模式：单位时间请求单个 URL 次数超过阈值即触发',
            ip: 'IP 黑名单',
            globalSettingHelper: '带有【网站】标签的设置，需要在【网站设置】配置生效，全局设置仅为新建网站的默认设置',
            globalSettingHelper2: '设置生效需要【全局设置】和【网站设置】的开关同时打开',
            urlCCHelper: '{0} 秒内累计请求此 URL 超过 {1} 次，封锁此 IP {2} ',
            urlCCHelper2: 'URL 不能带参数',
            notContain: '不包含',
            urlcc: 'URL 频率限制',
            method: '请求类型',
            addIpsToBlock: '批量拉黑 IP',
            addIpSegmentToBlock: '拉黑 IP 段',
            addIpSegmentsToBlock: '批量拉黑 IP 段',
            addUrlsToWhite: '批量加白 URL',
            noBlackIp: 'IP 已拉黑，无需再次拉黑',
            noWhiteUrl: 'URL 已加白，无需再次加白',
            spiderIpHelper: '开启后仅放行已选择的蜘蛛，关闭后会拦截所有蜘蛛访问',
            spiderIp: '蜘蛛 IP 池',
            spider: '蜘蛛',
            spiderAllowlist: '蜘蛛放行范围',
            spiderAllowlistEmpty: '未选择任何蜘蛛，保存后将拦截所有蜘蛛访问',
            geoIp: 'IP 地址库',
            geoIpHelper: '用来确认 IP 的地理位置',
            stat: '攻击报表',
            statTitle: '报表',
            attackIp: '攻击 IP',
            attackCountNum: '攻击次数',
            percent: '占比',
            addblackUrlHelper: '是否把 URL:{0} 添加到默认黑名单?',
            rce: '远程代码执行',
            software: '软件',
            cveHelper: '包含常见软件、框架的漏洞',
            vulnCheck: '补充规则',
            ssrf: 'SSRF 漏洞',
            afr: '任意文件读取',
            ua: '未授权访问',
            id: '信息泄露',
            aa: '认证绕过',
            dr: '目录遍历',
            xxe: 'XXE 漏洞',
            suid: '序列化漏洞',
            dos: '拒绝服务漏洞',
            afd: '任意文件下载',
            sqlInjection: 'SQL 注入',
            afw: '任意文件写入',
            il: '信息泄漏',
            clearAllLog: '清空所有日志',
            exportLog: '导出日志',
            appRule: '应用规则',
            appRuleHelper: '常见应用的规则，开启之后可以减少误报，一个网站只能使用一个规则',
            logExternal: '排除记录类型',
            ipWhite: 'IP 白名单',
            urlWhite: 'URL 白名单',
            uaWhite: 'User-Agent 白名单',
            logExternalHelper:
                '排除记录类型不会被记录到日志中，黑白名单、地区访问限制、自定义规则会产生大量日志，建议排除',
            ssti: 'SSTI 攻击',
            crlf: 'CRLF 注入',
            strict: '严格模式',
            strictHelper: '使用更严格的规则来校验请求',
            executionStrategy: '执行策略',
            detectionStrength: '检测强度',
            protectionMode: '防护模式',
            observationMode: '观察模式',
            standardMode: '标准模式',
            observationModeHelper: '仅检测并记录日志，不会拦截请求',
            observationModeConfirm: '开启观察模式后，所有 WAF 命中都只记录日志，不会拦截请求，是否继续？',
            globalStrictRequired: '需要先在全局设置中开启严格模式',
            websiteSearchHelper: '请输入网站域名、别名或备注',
            configReadFailed: '配置读取失败',
            detailSetting: '详细设置',
            observe: '观察',
            saveLog: '保存日志',
            remoteURLHelper: '远程 URL 需要保证每行一个 IP 并且没有其他字符',
            notFound: 'Not Found (404)',
            serviceUnavailable: '服务不可用 (503)',
            gatewayTimeout: '网关超时 (504)',
            belongToIpGroup: '属于 IP 组',
            notBelongToIpGroup: '不属于 IP 组',
            unknownWebsiteKey: '未知域名',
            special: '指定',
            fileToLarge: '文件超过 1MB 无法上传',
            uploadOverLimit: '上传文件超过数量限制，最大1个',
            importRuleHelper: '一行一个规则',
        },
        monitor: {
            name: '网站监控',
            pv: '浏览量',
            uv: '访客数',
            flow: '流量',
            ip: '独立 IP',
            spider: '蜘蛛',
            visitors: '访客趋势',
            today: '今天',
            last7days: '最近 7 天',
            last30days: '最近 30 天',
            all: '全部',
            uvMap: '访客地图 (30日)',
            qps: '实时请求数（1分钟）',
            flowSec: '实时流量（1分钟）',
            excludeCode: '排除状态码',
            excludeUrl: '排除 URL',
            excludeExt: '排除扩展名',
            cdnHelper: '通过 CDN 设置的 Header 来获取真实 IP',
            reqRank: '访问统计',
            refererDomain: '来源',
            os: '操作系统',
            browser: '浏览器/客户端',
            device: '设备',
            showMore: '查看更多',
            unknown: '其他',
            pc: '电脑',
            mobile: '移动端',
            wechat: '微信',
            machine: '机器',
            tencent: '腾讯浏览器',
            ucweb: 'UC 浏览器',
            '2345explorer': '2345 浏览器',
            huaweibrowser: '华为浏览器',
            log: '请求日志',
            statusCode: '状态码',
            requestTime: '响应时间',
            flowRes: '响应流量',
            method: '请求类型',
            statusCodeHelper: '可在上方输入状态码',
            statusCodeError: '状态码类型错误',
            methodHelper: '可在上方输入请求类型',
            baidu: '百度',
            google: '谷歌',
            bing: '必应',
            bytes: '今日头条',
            sogou: '搜狗',
            failed: '错误',
            ipCount: 'IP 数',
            spiderCount: '蜘蛛请求',
            averageReqTime: '平均响应时间',
            totalFlow: '总流量',
            logSize: '日志文件大小',
            realIPType: '真实IP获取方式',
            realIPRecognition: '真实 IP 识别',
            fromHeader: '从 HTTP Header 中获取',
            fromHeaders: '从 Header 列表中获取',
            header: 'HTTP Header',
            cdnConfig: 'CDN 适配',
            xff1: '获取 X-Forwarded-For 的上一级代理地址',
            xff2: '获取 X-Forwarded-For 的上上一级代理地址',
            xff3: '获取 X-Forwarded-For 的上上上一级代理地址',
            xffHelper: '例如：X-Forwarded-For: <client>,<proxy1>,<proxy2>,<proxy3> 上一级代理会取最后一个 IP <proxy3>',
            headersHelper: '从下列常用的 CDN 携带真实 IP 的 HTTP Header 中获取，取第一个能获取到的值',
            monitorCDNHelper: '修改网站监控的 CDN 配置会同步更新 WAF 的 CDN 配置',
            wafCDNHelper: '修改 WAF 的 CDN 配置会同步更新网站监控的 CDN 配置',
            originProtection: '源站保护',
            originProtectionHelper: '只允许选定 IP 组中的 CDN 节点连接源站，访客真实 IP 识别使用独立开关',
            originProtectionIPGroups: 'CDN 回源 IP 组',
            originProtectionIPGroupsPlaceholder: '请选择可信 CDN 回源 IP 组',
            originProtectionWarning: '配置错误可能导致网站无法访问，请先确认 IP 组包含全部 CDN 回源地址',
            originProtectionEnableConfirm: '开启后，非所选 IP 组的连接将被视为源站直连并阻止访问，是否继续？',
            statusErr: '状态码格式错误',
            shenma: '神马搜索',
            duckduckgo: 'DuckDuckGo',
            yandex: 'Yandex',
            gptbot: 'GPTBot',
            '360': '360 搜索',
            excludeUri: '排除 Uri',
            top100Helper: '显示 Top 100 的数据',
            logSaveDay: '日志保存天数',
            cros: 'Chrome OS',
            theworld: '世界之窗浏览器',
            edge: 'Edge',
            maxthon: '遨游浏览器',
            monitorStatusHelper: '当前网站监控未开启，立即开启',
            excludeIp: '排除 IP',
            excludeUa: '排除 User-Agent',
            remotePort: '远程端口',
            unknown_browser: '未知',
            unknown_os: '未知',
            unknown_device: '未知',
            logSaveSize: '最大日志保存大小',
            logSaveSizeHelper: '此处为单个网站的日志保存大小',
            '360se': '360 安全浏览器',
            websites: '网站列表',
            trend: '趋势统计',
            reqCount: '请求数',
            uriHelper: '可以使用 /test/* 或 /*/index.php 来排除 Uri',
        },
        tamper: {
            tamper: '网站防篡改',
            tamperCreateHint: '当前目录可能受防篡改或文件属性限制影响，导致创建失败。',
            ignoreTemplate: '排除模版',
            protectTemplate: '保护模版',
            ignoreTemplateHelper:
                '请输入排除内容，回车或空格分隔。（具体目录 ./log 或目录名 tmp，排除文件需要输入具体文件 ./data/test.html）',
            protectTemplateHelper:
                '请输入保护内容，回车或空格分隔。（具体文件 ./index.html、文件后缀 .html、 文件类型 js，保护目录需要输入具体目录 ./log）',
            templateContent: '模版内容',
            template: '模版',
            saveTemplate: '保存为模版',
            tamperHelper1:
                '一键部署类型的网站，建议启用应用目录防篡改功能；如出现网站无法正常使用或备份、恢复失败的情况，请先关闭防篡改功能；',
            tamperHelper2: '将限制非排除目录下受保护文件的读写、删除、权限和所有者修改操作',
            tamperPath: '防护目录',
            tamperPathEdit: '修改路径',
            log: '拦截日志',
            totalProtect: '总防护',
            todayProtect: '今日防护',
            templateRule: '长度1-512，名称不能含有{0}等符号',
            ignore: '排除',
            ignoreHelper:
                '请选择或输入排除内容，回车或空格分隔。（具体目录 ./log 或目录名 tmp，排除文件需要输入或选择具体文件 ./data/test.html）',
            protect: '保护',
            protectHelper:
                '请选择或输入保护内容，回车或空格分隔。（具体文件 ./index.html、文件后缀 .html、文件类型 js, 保护目录需要输入或选择具体目录 ./log）',
            tamperHelper00: '排除和保护仅支持输入相对路径；',
            tamperHelper01: '开启防篡改后，系统将限制非排除目录下保护文件的创建、编辑和删除操作等操作；',
            tamperHelper02: '优先级：具体路径保护 > 具体路径排除 > 保护 > 排除',
            tamperHelper03: '监听操作只针对于非排除目录，监听该目录下非保护文件的创建操作。',
            disableHelper: '即将关闭下列网站的防篡改功能，是否继续？',
            appendOnly: '仅追加',
            appendOnlyHelper: '将限制该目录下文件的删除操作，仅允许添加排除目录或非保护文件',
            immutable: '保护',
            immutableHelper: '保护该文件的编辑、删除、权限和所有者修改操作',
            onWatch: '监听',
            onWatchHelper: '监听该目录下保护文件或非排除目录的创建拦截',
            forceStop: '强制关闭',
            forceStopHelper: '即将强制关闭该网站目录的防篡改功能，是否继续？',
        },
        setting: {
            setting: '界面设置',
            title: '面板描述',
            titleHelper: '将显示在用户登录页面（例如：Linux 服务器运维管理面板，建议 8-15 个字符）',
            logo: 'Logo (不带文字)',
            logoHelper: '将会显示在菜单收缩时管理页面左上方 (建议图片大小为: 82px*82px)',
            logoWithText: 'Logo (带文字)',
            logoWithTextHelper: '将会显示在菜单展开时管理页面左上方 (建议图片大小为: 185px*55px)',
            favicon: '网站图标',
            faviconHelper: '网站图标 (建议图片大小为: 16px*16px)',
            setDefault: '恢复默认',
            setHelper: '即将保存当前界面设置内容，是否继续？',
            setDefaultHelper: '即将恢复所有界面设置到初始状态，是否继续？',
            logoGroup: 'Logo',
            imageGroup: '图片',
            loginImage: '图片',
            loginImageHelper: '将会显示在登录页面(建议图片大小为: 500*416px)',
            loginBgType: '背景类型',
            loginBgImage: '背景图片',
            loginBgImageHelper: '将会显示在登录页面背景图片(建议图片大小为: 1920*1080px)',
            loginBgColor: '背景颜色',
            loginBgColorHelper: '将在登录页面显示为背景颜色',
            image: '图片',
            bgColor: '背景色',
            loginGroup: '登录页',
            loginBtnLinkColor: '按钮/链接颜色',
            loginBtnLinkColorHelper: '将在登录页面显示为按钮和链接颜色',
        },
        helper: {
            wafTitle1: '拦截地图',
            wafContent1: '统计并展示 30 天内的拦截地理位置分布',
            wafTitle2: '地区访问限制',
            wafContent2: '按照地理位置限制网站的访问来源',
            wafTitle3: '自定义拦截页面',
            wafContent3: '自定义请求被拦截之后的显示页面',
            wafTitle4: '自定义规则（ACL）',
            wafContent4: '根据自定义的规则拦截请求',

            tamperTitle1: '文件完整性监控',
            tamperContent1: '监控网站文件的完整性，包括核心文件、脚本文件和配置文件等。',
            tamperTitle2: '实时扫描和检测',
            tamperContent2: '通过实时扫描网站文件系统，检测是否存在异常或被篡改的文件。',
            tamperTitle3: '安全权限设置',
            tamperContent3:
                '通过合理的权限设置和访问控制策略，网站防篡改功能可以限制对网站文件的访问权限，减少潜在的攻击面。',
            tamperTitle4: '日志记录与分析',
            tamperContent4: '记录文件访问和操作日志，以便管理员进行后续的审计和分析，以及发现潜在的安全威胁。',

            settingTitle1: '自定义欢迎语',
            settingContent1: '在 1Panel 登录页上设置自定义的欢迎语。',
            settingTitle2: '自定义 Logo',
            settingContent2: '允许上传包含品牌名称或其他文字的 Logo 图像。',
            settingTitle3: '自定义网站 icon',
            settingContent3: '允许上传自定义的图标，以替代默认的浏览器图标，提升用户体验。',

            monitorTitle1: '访客趋势',
            monitorContent1: '统计并展示网站的访客趋势',
            monitorTitle2: '访客地图',
            monitorContent2: '统计并展示网站的访客地理位置分布',
            monitorTitle3: '访问统计',
            monitorContent3: '统计网站的请求信息，包括蜘蛛，访问设备，请求状态等',
            monitorTitle4: '实时监控',
            monitorContent4: '实时监控网站的请求信息，包括请求数，流量等',

            alertTitle1: '短信告警',
            alertContent1:
                '当服务器资源使用异常、网站及证书过期、新版本更新、密码过期等情况发生时，通过短信告警通知用户，确保及时处理。',
            alertTitle2: '告警日志',
            alertContent2: '为用户提供查看告警日志的功能，方便追踪和分析历史告警事件。',
            alertTitle3: '告警设置',
            alertContent3:
                '为用户提供自定义手机号、每日推送次数、每日推送时间的配置，方便用户的设置来更加合理的进行推送告警。',

            nodeDashTitle1: '应用管理',
            nodeDashContent1: '统一管理多节点应用，支持状态监控、快速起停、终端连接及备份',
            nodeDashTitle2: '网站管理',
            nodeDashContent2: '统一管理多节点网站，实时监控状态，支持批量起停与快速备份',
            nodeDashTitle3: '数据库管理',
            nodeDashContent3: '统一管理多节点数据库，关键状态一目了然，支持一键备份',
            nodeDashTitle4: '计划任务管理',
            nodeDashContent4: '统一管理多节点计划任务，支持状态监控、快速启停与手动触发执行',

            nodeTitle1: '一键添加节点',
            nodeContent1: '快速接入多台服务器节点',
            nodeTitle2: '批量升级',
            nodeContent2: '一次操作同步升级所有节点',
            nodeTitle3: '节点状态监控',
            nodeContent3: '实时掌握各节点运行状态',
            nodeTitle4: '快速远程连接',
            nodeContent4: '一键直连节点远程终端',

            fileExchangeTitle1: '密钥认证传输',
            fileExchangeContent1: '通过 SSH 密钥进行身份验证，确保传输的安全性。',
            fileExchangeTitle2: '高效文件同步',
            fileExchangeContent2: '仅同步变化内容，大幅提高传输速度与稳定性。',
            fileExchangeTitle3: '支持多节点互传',
            fileExchangeContent3: '可在不同节点间便捷传送项目文件，灵活管理多台服务器。',

            nodeAppTitle1: '应用升级管理',
            nodeAppContent1: '统一监控多节点应用更新情况，支持一键升级',

            appTitle1: '灵活管理面板',
            appContent1: '随时随地轻松管理你的 1Panel 服务器。',
            appTitle2: '全面服务信息',
            appContent2: '在移动端进行应用、网站、Docker、数据库等基础管理，支持快速创建应用与网站。',
            appTitle3: '实时异常监控',
            appContent3: '移动端实时查看服务器状态、WAF 安全监控、网站访问统计与进程健康状况。',

            clusterTitle1: '主从部署',
            clusterContent1: '支持在不同节点创建 MySQL/Postgres/Redis 主从实例，自动完成主从关联与初始化',
            clusterTitle2: '主从管理',
            clusterContent2: '统一页面集中管理多个主从节点，查看其角色、运行状态等信息',
            clusterTitle3: '复制状态',
            clusterContent3: '展示主从复制状态与延迟信息，辅助排查同步异常问题',
            vllmTitle1: '统一纳管',
            vllmContent1: '将分散的 vLLM 服务统一接入 1Panel，集中查看实例、版本、状态与运行目录。',
            vllmTitle2: '快速部署',
            vllmContent2: '通过可视化表单完成版本选择、模型目录挂载与启动参数配置，减少手工编排成本。',
            vllmTitle3: '运维便捷',
            vllmContent3: '在同一页面完成创建、编辑、启停、重启、删除与任务追踪，提升本地模型服务维护效率。',
            vllmTitle4: '配置可控',
            vllmContent4: '结合高级设置统一管理端口、容器、启动命令与 Compose 配置，便于标准化交付与后续调整。',
            modelDownloaderTitle1: '模型发现',
            modelDownloaderContent1: '直接搜索 HuggingFace 模型仓库，查看下载量、点赞数、模型详情与文件列表。',
            modelDownloaderTitle2: '加速下载',
            modelDownloaderContent2: '支持配置 HuggingFace 加速地址与 HF Token，适配官方站、镜像站和私有模型访问。',
            modelDownloaderTitle3: '任务追踪',
            modelDownloaderContent3: '统一查看下载队列、任务状态、进度、错误信息，并支持取消、重试和记录清理。',
            modelDownloaderTitle4: '本地管理',
            modelDownloaderContent4: '集中维护本地模型目录，查看模型路径、大小和时间，支持删除不再需要的模型文件。',
        },
        node: {
            master: '主节点',
            masterBackup: '主节点备份',
            backupNode: '备份节点',
            backupFrequency: '备份频率（小时）',
            backupCopies: '备份份数',
            noBackupNode: '当前备份节点为空，请选择备份节点保存后重试！',
            masterBackupAlert:
                '当前未配置主节点备份，为保障数据安全，请尽快设置备份节点，便于主节点故障时可人工切换新主节点。',
            node: '节点',
            addr: '地址',
            nodeUpgrade: '更新设置',
            nodeUpgradeHelper: '选中的节点将在主节点升级完成后自动开始升级，无需手动操作。',
            nodeUpgradePackageManage: '安装包管理',
            nodeUpgradePackageClean: '清理',
            nodeUpgradePackageFormatHelper: '仅支持 `1panel-agent_v*_*` 或 `1panel-v*-linux-*` 安装包',
            nodeUpgradePackageHostConfirm: '即将选择服务器文件：{0}，是否继续？',
            nodeUpgradePackageCleanHelper: '即将清理所有低版本升级包，是否继续？',
            nodeUpgradeOfflinePackageHelper: '离线环境中，异构节点需先上传对应更新包后再更新。',
            healthCheck: '健康检查',
            healthCheckFrequency: '自动检查频率',
            healthCheckFrequencyHelper: '按设置的频率自动检查节点健康状态。输入 0 时关闭自动检查。',
            healthCheckFrequencyLimit: '检查频率不能超过一天，且必须为非负整数。',
            autoCheckFailedNodes: '自动检查失败节点',
            autoCheckFailedNodesHelper: '自动检查时，同时检查状态为失败或异常的节点。仅在检查频率不为 0 时生效。',
            loadFailedNodeResources: '刷新失败节点资源信息',
            loadFailedNodeResourcesHelper: '刷新节点列表时，同时查询状态为失败或异常的节点资源信息。',
            nodeUnhealthy: '节点状态异常',
            deletedNode: '已删除节点 {0} 暂不支持升级操作！',
            nodeUnhealthyHelper: '检测到该节点状态异常，请在 [节点管理] 中检查后重试！',
            nodeUnbind: '节点未绑定许可证',
            nodeUnbindHelper: '检测到该节点未绑定许可证，请在 [ 面板设置 - 许可证 ] 菜单中绑定后重试！',
            memTotal: '内存总计',
            nodeManagement: '多机管理',
            multiOverview: '多机概览',
            commonNodes: '常用节点',
            searchNodePlaceholder: '搜索节点名称、分组或地址',
            nodeItem: '节点管理',
            panelItem: '面板管理',
            addPanel: '添加面板',
            addPanelHelper: '面板添加成功后，您可在 [ 概览 - 面板 ] 中快速访问目标面板。',
            panel: '1Panel 面板',
            others: '其他面板',
            addNode: '添加节点',
            connInfo: '连接信息',
            nodeInfo: '节点信息',
            withProxy: '开启代理访问',
            withoutProxy: '关闭代理访问',
            withProxyHelper: '将使用面板设置中维护的系统代理 {0} 访问子节点，是否继续？',
            withoutProxyHelper: '将停止使用面板设置中维护的系统代理访问子节点，是否继续？',
            syncInfo: '数据同步',
            syncHelper: '主节点数据发生变化时，实时同步到该子节点',
            syncBackupAccount: '备份账号设置',
            syncWithMaster: '升级为商业版后，将默认同步所有数据，可在节点管理中手动调整同步策略。',
            syncProxy: '系统代理设置',
            syncProxyHelper: '同步系统代理设置需要重启 Docker',
            syncProxyHelper1: '重启 Docker 可能会影响当前正在运行的容器服务。',
            syncProxyHelper2: '可前往 容器 - 配置 页面手动重启。',
            syncProxyHelper3: '同步系统代理设置需要重启 Docker，重启可能会影响当前正在运行的容器服务',
            syncProxyHelper4: '同步系统代理设置需要重启 Docker，可稍后前往 容器 - 配置 页面手动重启。',
            syncCustomApp: '同步自定义应用仓库',
            syncAlertSetting: '系统告警设置',
            syncNodeInfo: '节点基础数据',
            nodeSyncHelper: '节点信息同步将同步以下信息：',
            nodeSyncHelper1: '1. 公用的备份账号信息',
            nodeSyncHelper2: '2. 主节点与子节点的连接信息',

            nodeCheck: '可用性检查',
            checkSSH: '检查节点 SSH 连接',
            checkUserPermission: '检查节点用户权限',
            isNotRoot: '检查到该节点不支持免密 sudo，且当前为非 root 用户',
            checkLicense: '检查节点许可证状态',
            checkService: '检查节点已存在服务信息',
            checkPort: '检查节点端口可达',
            panelExist: '检查到该节点正在运行 1Panel V1 服务，请先通过迁移脚本升级至 V2 后再进行添加。',
            coreExist:
                '当前节点已作为主节点启用，无法直接作为从节点添加。请先将其降级为从节点后再添加，具体可参考文档。',
            agentExist: '检查到该节点已安装 1panel-agent，继续添加将保留现有数据，仅替换 1panel-agent 服务。',
            agentNotExist: '检查到该节点未安装 1panel-agent，无法直接编辑该节点信息，请先删除后重新添加。',
            oldDataExist: '检查到该节点存在 1Panel V2 历史数据，将使用以下信息覆盖当前设置',
            errLicense: '检查到该节点绑定的许可证不可用，请检查后重试！',
            errNodePort: '检查到节点端口 [ {0} ] 无法访问，请检查防火墙或安全组是否已放行该端口。',

            reinstallHelper: '重新安装节点 {0}, 是否继续？',
            unhealthyCheck: '异常检查',
            fixOperation: '修复方案',
            checkName: '检查项',
            checkSSHConn: '检查 SSH 连接可用性',
            fixSSHConn: '手动编辑节点，确认连接信息',
            checkConnInfo: '检查 Agent 连接信息',
            checkStatus: '检查节点服务可用性',
            fixStatus: 'systemctl status 1panel-agent.service 检查服务是否已启动',
            checkAPI: '检查节点 API 可用性',
            fixAPI: '排查节点日志，检查防火墙端口是否正常放行',
            forceDelete: '强制删除',
            operateHelper: '将对以下节点进行 {0} 操作，是否继续？',
            operatePanelHelper: '将对以下面板进行 {0} 操作，是否继续？',
            uninstall: '删除节点数据',
            uninstallHelper: '将删除节点所有 1Panel 相关数据，谨慎选择！',
            forceDeleteHelper: '强制删除将会忽略节点删除错误，删除数据库元数据',
            baseDir: '安装目录',
            baseDirHelper: '安装目录为空时，默认安装在 /opt 目录下',
            nodePort: '节点端口',
            offline: '离线模式',
            freeCount: '免费额度 [{0}] ',
            offlineHelper: '节点为离线环境时使用',

            appUpgrade: '应用升级',
            appUpgradeHelper: '有 {0} 个应用需要升级',
            dashboardSetting: '概览设置',
            keepOneDashboardComponent: '请至少保留一个概览板块',
        },
        opsReport: {
            name: '运维报表',
            overview: '概览',
            system: '主机运行',
            login: '登录与安全配置',
            website: '网站防护',
            resource: '运行资源',
            cronjob: '计划任务',
            alert: '告警通知',
            history: '导出历史',
            setting: '设置',
            page: {
                enterprise: '企业版',
                reportNode: '报表节点',
                selectReportNode: '选择报表节点',
                currentNode: '当前节点',
                scoreMeta: '扣分 {0} 分 · 风险 {1} 项',
                hostAddress: '主机地址',
                panelVersion: '面板版本',
                cpuCores: '物理核心',
                coreUnit: '{0} 核',
                memoryTotal: '内存总量',
                reportDate: '报表日期',
                serverSecurityOverview: '服务器安全运营概览',
                securityScore: '安全评分',
                overviewSummary: '当前安全等级为 {0}，合计扣分 {1} 分，识别到 {2} 个风险项，覆盖 {3} 个检查对象。',
                riskDistribution: '风险分布',
                totalDeducted: '合计扣分',
                noRiskDeducted: '未触发扣分',
                scoreTrend: '评分趋势',
                scoreLevelSafe: '安全',
                scoreLevelAttention: '需关注',
                scoreLevelMediumRisk: '中风险',
                scoreLevelHighRisk: '高风险',
                scoreCategoryHost: '主机资源',
                scoreCategoryLogin: '登录安全',
                scoreCategoryWebsite: '网站与证书',
                scoreCategoryCronjob: '计划任务',
                scoreCategoryResource: '运行资源',
                scoreCategoryAlert: '告警通知',
                scoreDiskHigh: '磁盘 {0} 使用率 {1}%',
                scoreDiskMedium: '磁盘 {0} 使用率 {1}%',
                scoreResourceHigh: '{0} 当前使用率 {1}%',
                scoreResourceMedium: '{0} 当前使用率 {1}%',
                scoreLoadMedium: '负载当前值 {0}',
                scoreMonitorDisabled: '主机监控未开启',
                scorePanelLoginFailedHigh: '面板登录失败 {0} 次',
                scorePanelLoginFailedMedium: '面板登录失败 {0} 次',
                scoreSSHLoginFailedHigh: 'SSH 登录失败 {0} 次',
                scoreSSHLoginFailedMedium: 'SSH 登录失败 {0} 次',
                scoreMFADisabled: 'MFA 未开启',
                scoreAllowIPsOpen: '授权 IP 与绑定域名均未配置或未限制访问',
                scorePanelHTTPSDisabled: '面板 HTTPS 未启用',
                scoreSSHRootLogin: 'SSH 允许 Root 登录',
                scoreSSHPasswordAuth: 'SSH 开启密码认证且未启用密钥认证',
                scoreSSLExpired: '{0} 证书已到期',
                scoreSSLHigh: '{0} 证书剩余 {1} 天',
                scoreSSLMedium: '{0} 证书剩余 {1} 天',
                scoreWebsiteExpired: '{0} 网站已到期',
                scoreWebsiteExpire: '{0} 网站剩余 {1} 天到期',
                scoreWebsiteHTTP: '{0} 未启用 HTTPS',
                scoreWebsiteStopped: '{0} 状态异常',
                scoreWebsiteMonitorUnavailable: '网站监控检测到不可用站点',
                scoreWebsiteMonitorAvailability: '网站监控请求可用率 {0}% 低于阈值',
                scoreWebsiteMonitorStatusAbnormal: '网站监控已开启，但状态异常',
                scoreWafDisabled: 'WAF 未开启，网站未纳入防护',
                scoreWafHighRiskHit: 'WAF 统计周期内命中 {0} 条风险规则',
                scoreCronjobFailed: '近 7 天存在 {0} 条计划任务失败记录',
                scoreAppFailed: '{0} 应用运行异常',
                scoreAppStopped: '{0} 应用已停止',
                scoreContainerHigh: '{0} 容器状态异常',
                scoreContainerExited: '{0} 容器已停止',
                scoreContainerResource: '{0} 容器资源使用率过高',
                scoreContainerPublicPort: '{0} 容器存在公网暴露端口',
                scoreAlertNoTask: '未配置告警任务',
                scoreAlertNoEnabledTask: '告警任务均未启用',
                scoreAlertDisabledTask: '存在 {0} 个停用告警任务',
                scoreAlertNoChannel: '未启用告警通知通道',
                scoreAlertFailedHigh: '存在 {0} 条告警失败日志',
                scoreAlertFailedMedium: '存在 {0} 条告警失败日志',
                scoreAlertPending: '存在 {0} 条告警待同步日志',
                attentionItems: '待关注项',
                attentionAssets: '待关注资产',
                riskItems: '风险项',
                object: '对象',
                description: '说明',
                itemUnit: '项',
                recordUnit: '条',
                certUnit: '张',
                containerUnit: '个',
                loginFailed: '登录失败',
                sslExpire: '证书到期',
                abnormalContainer: '异常容器',
                statAttentionDesc: '当前合计扣分 {0} 分',
                statLoginDesc: '面板 {0} 条 · SSH {1} 条',
                statSslDesc: '共检查 {0} 张证书',
                statContainerDesc: '共检查 {0} 个容器',
                statAlertDesc: '启用任务 {0} 个 · 通道 {1} 个',
                assetHostDesc: '磁盘最高使用率 {0}%',
                assetWebsiteDesc: '{0} 张证书即将到期，{1} 个网站状态异常',
                assetResourceDesc: '{0} 个应用异常，{1} 个容器异常',
                assetCronjobDesc: '近 7 天 {0} 条失败记录，{1} 个任务未启用',
                assetAlertDesc: '{0} 条失败日志，{1} 条待同步日志',
                app: '应用',
                website: '网站',
                websiteSsl: '网站 / 证书',
                cronjob: '计划任务',
                container: '容器',
                sslCertificate: 'SSL 证书',
                loginSecurity: '登录安全',
                panelLogin: '面板登录',
                sshLogin: 'SSH 登录',
                failedRecord: '失败记录',
                expired: '已到期',
                expiredDays: '已过期 {0} 天',
                remainingDays: '{0} · 剩余 {1} 天',
                enabled: '已开启',
                disabled: '未开启',
                exportRecordFailed: '保存导出记录失败',
                hostInfo: '主机信息',
                hostname: '主机名',
                osVersion: '系统版本',
                kernelVersion: '内核版本',
                arch: '架构',
                uptime: '运行时间',
                diskUsage: '磁盘使用',
                mountPoint: '挂载点',
                device: '设备',
                capacity: '容量',
                used: '已用',
                usageRate: '使用率',
                memory: '内存',
                load: '负载',
                maxDiskUsage: '磁盘最高使用率',
                panelLoginSecurity: '面板登录安全配置',
                sshSecurity: 'Linux 服务器 SSH 安全配置',
                panelFailedRecords: '面板登录失败记录',
                sshFailedRecords: 'SSH 登录失败记录',
                location: '归属地',
                configItem: '配置项',
                currentValue: '当前值',
                securityEntrance: '安全入口',
                configured: '已配置',
                notConfigured: '未配置',
                normal: '正常',
                needAttention: '需关注',
                allowIPs: '授权 IP',
                restricted: '已限制',
                unrestricted: '未限制',
                bindDomain: '绑定域名',
                accessRestriction: '访问限制',
                panelHTTPS: '面板 HTTPS',
                passwordComplexity: '密码复杂度',
                sshService: 'SSH 服务',
                running: '运行中',
                notRunning: '未运行',
                listenPort: '监听端口',
                read: '已读取',
                rootLogin: 'Root 登录',
                passwordAuth: '密码认证',
                keyAuth: '密钥认证',
                panelLoginFailed: '面板登录失败',
                sshLoginFailed: 'SSH 登录失败',
                panelSecurityItems: '面板安全项',
                sshSecurityItems: 'SSH 安全项',
                loginSecurityHealthStatus: '登录安全健康状态',
                adjustSSHSecurity: '调整 SSH 安全',
                viewLoginLogs: '查看登录日志',
                riskLevel: '风险等级',
                goConfig: '去配置',
                viewMore: '查看更多',
                involvedIPs: '涉及 {0} 个 IP',
                sessionTimeout: '会话超时时间',
                countUnit: '次',
                recent24Hours: '近 24 小时',
                currentService: '当前服务',
                riskItemsExist: '存在 {0} 项风险',
                loginHealthRiskDesc: '存在 {0} 项风险配置，建议立即加固登录安全配置，降低被入侵风险。',
                loginHealthNormalDesc: '当前登录与 SSH 安全配置处于正常状态',
                loginHealthNormalReason: '登录安全配置正常',
                securityEntranceConfiguredDesc: '已配置安全入口，降低默认入口暴露风险',
                securityEntranceRiskDesc: '未开启安全入口，建议隐藏默认登录入口',
                allowIPsRestrictedDesc: '已限制允许访问面板的 IP',
                allowIPsRiskDesc: '未限制访问 IP，公网环境建议配置授权 IP',
                bindDomainRestrictedDesc: '已绑定访问域名',
                bindDomainRiskDesc: '未绑定访问域名，建议限制固定域名访问',
                accessRestrictionValue: '授权 IP：{0} / 绑定域名：{1}',
                accessRestrictionNormalDesc: '已配置授权 IP 或绑定域名，面板访问来源受限',
                accessRestrictionRiskDesc: '授权 IP 与绑定域名均未配置或未限制访问，建议至少配置一项',
                panelHTTPSNormalDesc: '面板已启用 HTTPS',
                panelHTTPSRiskDesc: '面板未启用 HTTPS，登录链路存在明文风险',
                passwordComplexityNormalDesc: '已开启密码复杂度校验',
                passwordComplexityRiskDesc: '未开启密码复杂度校验，弱密码风险较高',
                mfa: 'MFA 认证',
                mfaNormalDesc: '已开启 MFA 认证，登录安全性更高',
                mfaRiskDesc: '未开启 MFA 认证，建议启用多因素认证',
                sessionTimeoutNormalDesc: '会话超时时间处于较安全范围',
                sessionTimeoutRiskDesc: '会话超时时间较长，建议控制空闲会话有效期',
                sshServiceNormalDesc: 'SSH 服务运行正常',
                sshServiceRiskDesc: 'SSH 服务未运行或状态异常',
                sshPortNormalDesc: 'SSH 端口已调整为非默认端口',
                sshPortRiskDesc: '仍使用默认 22 端口，建议按需调整',
                rootLoginNormalDesc: 'Root 用户不可直接登录',
                rootLoginRiskDesc: 'Root 用户可以直接登录，建议禁用',
                passwordAuthNormalDesc: '已禁用 SSH 密码登录',
                passwordAuthRiskDesc: '允许使用密码登录，暴力破解风险较高',
                keyAuthNormalDesc: '已启用 SSH 密钥认证',
                keyAuthRiskDesc: '未启用密钥认证，建议使用密钥登录',
                websiteOverview: '网站概览',
                primaryDomain: '主域名',
                expireTime: '到期时间',
                domain: '域名',
                issuer: '颁发机构',
                autoRenew: '自动续签',
                websiteCount: '网站数量',
                httpsWebsite: 'HTTPS 网站',
                certCount: '证书数量',
                websiteExpire: '网站到期',
                database: '数据库',
                remoteDatabase: '远程数据库',
                address: '地址',
                containerResourceUsage: '容器资源占用',
                spaceUsage: '占用空间',
                reclaimable: '可回收空间',
                containerReclaimable: '容器可回收',
                image: '镜像',
                volume: '数据卷',
                buildCache: '构建缓存',
                alert: '告警',
                alertConfigured: '已配置告警',
                alertOperations: '告警通知',
                alertTaskCount: '告警任务',
                enabledAlertTask: '启用任务',
                disabledAlertTask: '停用任务',
                alertChannels: '通知通道',
                alertLogCount: '告警日志',
                alertSuccessRate: '告警成功率',
                alertFailedLogs: '失败告警日志',
                alertPendingLogs: '待同步日志',
                alertPending: '待同步',
                alertTaskStats: '告警任务统计',
                alertTaskType: '告警类型',
                alertLogStatusStats: '告警执行状态',
                alertHealthNormal: '正常',
                alertHealthAttention: '需关注',
                alertHealthRisk: '高风险',
                alertHealthSummary: '告警健康状态',
                alertHealthNormalReason: '告警任务、通知通道和执行日志均处于正常状态',
                alertNoChannelReason: '未启用通知通道',
                alertFailedLogReason: '存在 {0} 条失败日志',
                alertPendingReason: '存在 {0} 条待同步日志',
                alertDisabledTaskReason: '{0} 个告警任务已停用',
                alertNoTaskReason: '未配置告警任务',
                goAlertConfig: '告警配置',
                goAlertLogs: '告警日志',
                configureAlertChannel: '配置通知通道',
                createAlertTask: '创建告警任务',
                viewAlertTasks: '查看告警任务',
                viewFailedAlertLogs: '查看失败日志',
                viewAlertLogs: '查看告警日志',
                alertChannelSummary: '已启用 {0} / {1} 个通道',
                alertTaskEnabledDesc: '已启用 {0} 个任务',
                alertTaskSummary: '启用 {0} 个，停用 {1} 个',
                alertLogSummary: '成功 {0} 条，失败 {1} 条',
                alertPendingDesc: '{0} 条日志等待同步',
                alertLogSuccessDesc: '已完成通知',
                alertLogFailedDesc: '需检查通道配置或发送链路',
                alertLogPendingDesc: '离线或同步链路待处理',
                failedAlertLogs: '失败告警日志',
                disabledAlertTasks: '停用告警任务',
                alertTableDisplayDesc: '当前展示 {0} 条，共 {1} 条',
                noAlertTask: '暂无告警任务',
                noFailedAlertLog: '暂无失败告警日志',
                noDisabledAlertTask: '暂无停用告警任务',
                alertMsg: '告警内容',
                alertMethod: '告警方式',
                alertRule: '告警规则',
                alertCronjobType: '计划任务：{0}',
                alertAllTargets: '全部对象',
                alertAllDisks: '全部磁盘',
                alertAllCertificates: '全部证书',
                alertAllWebsites: '全部网站',
                alertDiskRuleShort: '{0} 超过 {1}{2}，每天 {3} 次',
                alertAverageRuleShort: '{0} 分钟均值超过 {1}%，每天 {2} 次',
                alertTimeRuleShort: '剩余 {0} 天内触发，发送 {1} 次',
                alertSendCountRuleShort: '每天发送 {0} 次',
                failedExecutionRecords: '失败执行记录',
                taskID: '任务 ID',
                executeTime: '执行时间',
                backupTasks: '备份类任务',
                systemMetrics: '运行指标',
                cpu: 'CPU',
                thresholdPercent: '阈值 {0}%',
                recent24HourPeakPercent: '近 24 小时峰值 {0}',
                loadAverage: '1 / 5 / 15 分钟负载：{0} / {1} / {2}',
                sourceMount: '挂载点 {0}',
                storageUsage: '空间占用',
                localDisk: '本地磁盘',
                highUsagePeriods: '高负载时段',
                timeRange: '时间范围',
                threshold: '阈值',
                duration: '持续时间',
                peak: '峰值',
                scoring: '计分',
                counted: '计入',
                notCounted: '未计入',
                dataSource: '数据来源',
                noHighUsagePeriod: '暂无高负载时段',
                monitorDisabledOrNoData: '主机监控未启用或暂无监控数据',
                systemHealthStatus: '近 24 小时主机运行风险状态',
                mainReasons: '主要原因',
                viewHostMonitor: '查看主机监控',
                systemHealthAttentionDesc: '近 24 小时检测到 {0} 个风险项，建议优先关注资源峰值和磁盘使用率',
                systemHealthNormalDesc: '近 24 小时主机运行指标处于正常状态',
                monitorEnabled: '监控已开启',
                cpuCoreUsage: '{0} / {1} 核',
                load1Minute: '1 分钟负载',
                diskSpaceUsage: '磁盘空间占用',
                usedCapacity: '已使用 / 总容量',
                fileSystem: '文件系统',
                resourceTrendSummary: '资源趋势摘要',
                last24Hours: '近 24 小时',
                granularityHour: '粒度：1 小时',
                current: '当前',
                average: '平均',
                totalItems: '共 {0} 项',
                to: '至',
                hoursShort: '{0} 小时',
                minutesShort: '{0} 分钟',
                websiteStatus: '网站状态',
                websiteHealthStatus: '网站防护健康状态',
                websiteHealthNormalReason: '网站、证书、WAF 与网站监控均处于正常状态',
                websiteHealthAttentionDesc: '检测到 {0} 个风险项，建议尽快处理以保障网站安全与可用性',
                websiteHealthNormalDesc: '当前网站防护指标处于正常状态',
                handleSslRisk: '处理证书风险',
                viewWaf: '查看 WAF',
                priority: '优先级',
                riskDescription: '风险描述',
                deductScore: '影响分值',
                remaining: '剩余',
                wafSourceIpTop: 'WAF 拦截来源 IP TOP5',
                wafAffectedSiteTop: '受影响站点 TOP5',
                sslRisk: '证书风险',
                sslExpiring: '证书临期',
                includedInReport: '已纳入报表',
                needRenewal: '建议续签',
                fromExpireInfo: '来自到期信息',
                runningWebsite: '运行中网站',
                fromWebsiteStatus: '来自网站列表状态',
                stoppedWebsite: '已停止网站',
                confirmStoppedWebsite: '确认是否符合预期',
                expiringWebsite: '快要过期网站',
                expiringSoon: '即将到期',
                none: '暂无',
                noSslRisk: '暂无需处理证书',
                websiteProtection: 'WAF 与网站监控',
                websiteMonitor: '网站监控',
                waf: 'WAF',
                siteAvailability: '请求可用率',
                monitoredSites: '监控站点',
                requestCount: '请求数',
                abnormalSites: '异常站点',
                count5xxSource: '按 5xx 请求统计',
                wafIntercept: 'WAF 拦截',
                websiteMonitorDisabledOrNoData: '网站监控未启用或暂无监控数据',
                wafDisabledOrNoData: 'WAF 未启用或暂无拦截数据',
                serviceEnabledButAbnormal: '已开启，但状态异常',
                noWafData: '暂无 WAF 拦截数据',
                sourceIP: '来源 IP',
                hitCount: '命中次数',
                level: '等级',
                attackType: '攻击类型',
                requestRatio: '请求占比',
                installed: '已安装',
                normalRunning: '正常运行',
                failedStart: '启动失败',
                manualStopped: '手动停止',
                failed: '失败',
                success: '成功',
                canUpdate: '可升级',
                listSeparator: '、',
                containerCount: '容器数量',
                stopped: '停止',
                abnormal: '异常',
                abnormalContainers: '异常容器',
                resourceUsage: '资源使用',
                exposedContainerPorts: '暴露端口',
                portMapping: '端口映射',
                risk: '风险',
                noAbnormalContainer: '暂无异常容器',
                noExposedContainer: '未检测到暴露端口',
                publicExpose: '公网暴露',
                privateExpose: '内网映射',
                resourceHealth: '运行资源健康状态',
                checkTime: '检测时间',
                resourceHealthNormalDesc: '当前应用、数据库和容器资源处于正常状态',
                resourceHealthAttentionDesc: '检测到 {0} 个需关注项，建议优先处理停止资源和公网暴露端口',
                resourceHealthRiskDesc: '检测到 {0} 个高风险项，请优先处理异常容器或启动失败应用',
                resourceThresholdContainers: 'CPU / 内存超阈值容器',
                noThresholdExceededContainer: '暂无超阈值容器',
                triggerMetric: '触发项',
                resourceReasonAppFailed: '{0} 个应用启动失败',
                resourceReasonAppStopped: '{0} 个应用已停止',
                resourceReasonContainerAbnormal: '{0} 个容器状态异常',
                resourceReasonContainerStopped: '{0} 个容器已停止',
                resourceReasonPublicPorts: '公网暴露端口 {0} 项',
                resourceReasonNormal: '应用、数据库和容器状态正常',
                viewAbnormalContainers: '查看异常容器',
                viewExposedPorts: '查看暴露端口',
                viewAppResources: '查看应用资源',
                viewRuntimeResources: '查看运行资源',
                viewContainerResources: '查看容器资源',
                configuredServices: '已配置服务',
                publicPrivatePorts: '公网暴露 {0} 项 / 内网映射 {1} 项',
                currentDisplayTotal: '当前展示 {0} 条，共 {1} 条',
                reclaimableSpace: '可回收空间',
                estimatedReclaimable: '预计可回收',
                unusedImageSpace: '未使用镜像空间',
                stoppedContainerSpace: '停止容器空间',
                unusedVolumeSpace: '未使用存储卷空间',
                buildCacheSpace: 'Docker 构建缓存空间',
                executionRecords: '执行记录',
                successRate: '成功率',
                failedJobs: '失败任务',
                recentRecoveryPoint: '最近恢复点',
                disabledCronjobTasks: '未启用计划任务',
                remoteCoverage: '远程覆盖',
                recent7Days: '近 7 天',
                taskTypeStats: '任务类型统计',
                total: '总计',
                taskTypeDesc: '已启用 {0} 个，未启用 {1} 个',
                failedOrAttentionTasks: '失败或需关注任务',
                execution: '执行情况',
                latestExecution: '最近执行',
                remoteBackup: '远程备份',
                localOnly: '仅本地',
                covered: '已覆盖',
                noAttentionCronjob: '暂无失败或需关注的计划任务',
                cronjobHealth: '计划任务健康状态',
                cronjobHealthNormalDesc: '当前计划任务执行与备份配置处于正常状态',
                cronjobHealthAttentionDesc: '存在 {0} 个需关注项，建议优先处理未启用任务和失败记录',
                cronjobHealthRiskDesc: '存在 {0} 个风险项，建议优先处理失败任务和未启用任务',
                cronjobReasonFailed: '失败记录 {0} 条',
                cronjobReasonDisabled: '{0} 个任务未启用',
                cronjobReasonLocalOnlyBackup: '备份仅本地 {0} 个',
                cronjobReasonNormal: '计划任务执行与备份覆盖正常',
                riskLow: '低风险',
                viewFailedRecords: '查看失败任务',
                viewCronjobTasks: '查看计划任务',
                checkBackupTasks: '检查备份任务',
                generationRule: '生成规则',
                scheduleDaily: '每天',
                scheduleDailyDesc: '每天 09:00 生成近 24 小时报表',
                scheduleWeekly: '每周',
                scheduleWeeklyDesc: '每周一 09:00 生成近 7 天报表',
                scheduleMonthly: '每月',
                scheduleMonthlyDesc: '每月 1 日 09:00 生成上月报表',
                scheduleCurrentDaily: '每天 09:00 生成近 24 小时报表 · 下次 {0}',
                scheduleCurrentWeekly: '每周一 09:00 生成近 7 天报表 · 下次 {0}',
                scheduleCurrentMonthly: '每月 1 日 09:00 生成上月报表 · 下次 {0}',
                notificationMethod: '通知方式',
                channel: '通道',
                receiver: '接收对象',
                systemThreshold: '系统阈值',
                metric: '指标',
                currentRule: '当前规则',
                hostMonitor: '主机监控',
                monitorInterval: '监控间隔',
                exportSettings: '导出设置',
                lastExportReport: '最近生成结果',
                noLastExportReport: '暂无导出报告记录',
                lastExportStatus: '最后导出状态',
                exportFile: '导出文件',
                generateTime: '生成时间',
                fileSize: '文件大小',
                viewExportHistory: '查看导出历史',
                defaultFormat: '默认格式',
                savePath: '保存目录',
                savePathRequired: '请设置报表保存目录',
                autoExport: '启用自动导出',
                autoExportDesc: '开启后将每天 09:00 自动生成运维报表',
                autoExportEnabled: '已启用自动导出',
                autoExportDisabled: '未启用自动导出',
                readOnlyPermissionTip: '当前账号仅可查看运维报表设置，如需修改请联系管理员授权。',
                refreshing: '刷新中',
                exporting: '导出中',
                exportFailed: '导出报表失败',
                generating: '生成中',
                saved: '已保存',
                saveFailed: '保存设置失败',
                generateNow: '立即生成',
                generateSuccess: '已生成报表文件：{0}',
                generateFailed: '生成报表失败',
                enabledStatus: '已启用',
                disabledStatus: '已停用',
                alertConfigInvalid: '配置异常',
                thresholdRule: '阈值 {0}，连续 {1} 次触发',
                hours: '{0} 小时',
                minutes: '{0} 分钟',
                seconds: '{0} 秒',
                totalExports: '导出总数',
                successExports: '成功导出',
                failedExports: '失败导出',
                reportName: '报表名称',
                exportFormat: '导出格式',
                operator: '操作人',
                triggerType: '触发方式',
                filePath: '文件路径',
                manualExport: '手动',
                scheduledExport: '定时',
                exportResult: '导出结果',
                exportDetail: '导出说明',
            },
        },
        user: {
            user: '用户',
            userInfo: '用户信息',
            userManage: '用户管理',
            superAdmin: '超级管理员',
            superAdminDesc: '拥有系统全部管理权限，可管理所有资源和配置。',
            nodeAdmin: '节点管理员',
            nodeAdminDesc: '拥有指定节点的管理权限，可管理节点内资源和配置。',
            readOnly: '只读用户',
            readOnlyDesc: '拥有系统全部只读权限，可查看所有资源和配置。',
            bindNode: '绑定节点',
            boundUsers: '绑定用户',
            role: '角色',
            roleName: '名称',
            permission: '权限',
            permissionDuplicate: '每个节点只能添加一种角色',
            nodeAdminMasterConfirm: '主节点节点管理员权限较高，请结合实际管理需要谨慎分配。',
            permissionLinkageTip: '存在依赖时将自动勾选关联权限，手动取消后部分功能可能提示“当前用户无权限”。',
            allViewPermissionHelper: '拥有 AI 网关的所有查看权限。',
            apiKeyViewPermissionHelper: '仅能查看 AI 网关 API Key。',
            masterOnlyPermission: '主节点权限',
            masterOnlyPermissionHelper: '该权限仅在主节点生效。',
            view: '查看',
            manage: '管理',
            authManage: '认证管理',
            auth: {
                providerNavigation: '认证类型',
                defaultNode: '默认节点',
                defaultNodePlaceholder: '请选择节点',
                defaultNodeHelper: '仅用于新用户。',
                defaultNodeRequired: '请选择有效的默认节点。',
                nodesLoadFailed: '节点列表加载失败，请重试后再选择默认节点。',
                nodeHandling: '节点处理',
                assignDefaultNode: '分配默认节点：{node}',
                keepExistingNode: '保留已有节点权限',
                providers: {
                    ldap: 'AD/LDAP',
                    passkey: 'Passkey',
                    radius: 'Radius',
                    oidc: 'OIDC',
                    saml2: 'SAML2',
                    cas: 'CAS',
                    oauth2: 'OAuth2',
                    dingtalk: '钉钉',
                    feishu: '飞书',
                    wecom: '企业微信',
                },
                providerDescriptions: {
                    ldap: '兼容 Active Directory、OpenLDAP 等 LDAP 服务',
                    passkey: '使用设备凭据进行无密码安全登录',
                    radius: '通过 Radius 服务完成网络访问认证',
                    oidc: '使用 OpenID Connect 接入企业单点登录',
                    saml2: '通过 SAML2 完成企业身份联合登录',
                    cas: '接入集中式认证服务实现单点登录',
                    oauth2: '接入兼容 OAuth2 的第三方身份服务',
                    dingtalk: '使用钉钉组织身份和扫码登录',
                    feishu: '使用飞书组织身份和账号同步',
                    wecom: '使用企业微信成员身份认证',
                },
                planned: '待接入',
                plannedTitle: '{0} 认证设置',
                plannedDesc: '该认证方式正在规划中，暂不可用。',
                oidc: {
                    accessMode: '接入方式',
                    accessModeDesc: '身份提供方支持 Discovery 时优先使用标准模式。',
                    actionCreate: '创建用户',
                    actionKeepName: '保留当前名称',
                    actionPending: '等待结果',
                    actionReject: '拒绝登录',
                    actionUpdate: '更新身份信息',
                    advanced: '高级设置',
                    advancedDesc: '默认值适用于标准 Provider；只有不兼容时才调整。',
                    assignDefaultRole: '分配默认角色：{role}',
                    authorizationEndpoint: '授权端点',
                    authorizationEndpointInvalid: '请输入有效的授权端点地址。',
                    authorizationFlow: '授权流程',
                    automatic: '自动',
                    automaticPolicy: '自动处理策略',
                    automaticPolicyDesc: '以下规则由后端固定执行，不作为管理员开关。',
                    basic: '基础配置',
                    basicDesc: '先选择 Provider 模式，再配置客户端和回调地址。',
                    browserTest: '测试登录',
                    browserTestConflict: '身份验证成功，但用户名冲突',
                    browserTestConflictHelper: '映射名称属于其他身份，不会自动认领。',
                    browserTestExpired: '浏览器测试已过期',
                    browserTestExpiredHelper: '请重新开始测试，并在有效期内完成授权。',
                    browserTestFailed: '浏览器测试失败',
                    browserTestFailedHelper: '无法完成身份预览，请查看后端返回的本地化错误。',
                    browserTestIsolation: '执行真实授权往返，但不会创建或更新用户、分配角色或生成正式 Session。',
                    browserTestPopupBlocked: '请允许当前站点打开弹窗，然后重新测试。',
                    browserTestPopupClosed: '授权窗口在测试完成前被关闭。',
                    browserTestSuccess: 'Provider 验证成功',
                    browserTestSuccessHelper: '已完成身份映射预览，没有修改用户或 Session。',
                    browserTestTitle: 'OIDC 浏览器测试登录',
                    browserTestWaiting: '等待 Provider 授权',
                    browserTestWaitingHelper: '请在新窗口完成登录，本页面会自动更新。',
                    callbackCopied: 'OIDC 回调地址已复制。',
                    callbackURL: '回调地址',
                    callbackURLHelper: '请将此地址添加到身份提供方客户端的允许回调列表。',
                    cancelClearSecret: '取消清除',
                    clearSecret: '清除密钥',
                    clearSecretConfirm: '客户端密钥只会在保存后删除，是否继续？',
                    clientAuthMethod: '客户端认证方式',
                    clientAuthMethodHelper: '请选择身份提供方为该客户端配置的认证方式。',
                    clientAuthMethodRequired: '请选择客户端认证方式。',
                    clientID: '客户端 ID',
                    clientIDRequired: '请输入客户端 ID。',
                    clientSecret: '客户端密钥',
                    clockSkew: '令牌时间偏差',
                    clockSkewHelper: '允许身份提供方与面板存在少量时间偏差，建议保持 60 秒。',
                    clockSkewRequired: '请输入令牌时间偏差。',
                    compatibilityMode: '兼容模式',
                    compatibilityModeHelper: '仅用于 Discovery 不完整或端点被改写的 Provider，核心 OIDC 校验不会关闭。',
                    configurationFailedHelper: '测试失败，页面只显示后端本地化错误。',
                    configurationFailedTag: '测试失败',
                    configurationHighRiskPassed: '配置测试通过，但包含高风险兼容项。',
                    configurationHighRiskTag: '高风险配置通过',
                    configurationNotTested: '当前配置尚未测试。',
                    configurationNotTestedTag: '尚未测试',
                    configurationPassed: '当前配置已通过安全和能力检查。',
                    configurationPassedTag: '测试通过',
                    configurationStaleHelper: '配置已修改，请重新测试保存。',
                    configurationStaleTag: '结果已过期',
                    configurationTestMeta: '测试时间 {time}，耗时 {duration} ms；不保存 Provider 原始响应。',
                    configurationTestResult: '配置测试结果',
                    configurationTestResultDesc:
                        '这里只检查自动发现结果与身份提供方能力，不交换授权码，也不能证明客户端密钥正确；请使用“浏览器测试登录”完成端到端验证。',
                    configurationTestSuccess: 'OIDC 配置测试成功。',
                    configurationTesting: '正在测试当前 OIDC 配置…',
                    configurationTestingTag: '正在测试',
                    configureSecret: '配置密钥',
                    conflictExistingRename: '已有 subject 返回的新 name 已被占用',
                    conflictExistingRenameResult: '保留原 User.Name，并允许已绑定用户继续登录',
                    conflictLDAP: 'LDAP 用户',
                    conflictLocal: '本地用户',
                    conflictNewAvailable: '新 subject，映射后的 name 未占用',
                    conflictNewAvailableResult: '创建本地企业用户并分配默认角色',
                    conflictNone: '无冲突',
                    conflictOIDC: '其他 OIDC 身份',
                    conflictOccupied: '映射 name 已被本地、LDAP 或其他 OIDC 身份占用',
                    conflictOccupiedResult: '拒绝新身份，不自动绑定或合并',
                    conflictType: '冲突类型',
                    connectionSecurity: '连接安全',
                    connectionSecurityDesc: '默认校验证书，私有 IdP 地址由系统自动识别。',
                    connectionTest: '连接与配置测试',
                    connectionTestCompatibilityDesc: '验证自定义端点和协议安全策略。',
                    connectionTestStandardDesc: '根据签发者地址自动发现端点和能力。',
                    connectionTestTab: '连接测试',
                    customCA: '自定义 CA',
                    customCAHelper: '仅作用于当前认证源，且不会写入日志。',
                    customCARequired: '请提供自定义 CA 证书。',
                    defaultRole: '默认角色',
                    defaultRoleHelper: '仅首次创建用户时分配，后续登录不修改角色。',
                    defaultRolePlaceholder: '请选择角色',
                    defaultRoleRequired: '请选择有效的默认角色。',
                    disableAfterSave: '保存后将停用 OIDC。',
                    disableConfirm: '停用 OIDC 会立即使该认证源用户的访问失效，是否继续？',
                    disableDiscardConfirm:
                        '停用 OIDC 属于故障兜底操作：只关闭登录入口，并立即使该认证源用户的访问失效。本页其他未保存修改（包括客户端密钥修改）将被丢弃。是否继续？',
                    disableTitle: '停用 OIDC',
                    disabled: '未启用',
                    discoveryAllowlist: 'Discovery ∩ 安全白名单',
                    enable: '是否开启',
                    enableAfterSave: '保存成功后启用 OIDC。',
                    enabled: '已启用',
                    endSessionEndpoint: '会话注销端点',
                    endSessionEndpointHelper: '首期只保存，不执行身份提供方发起的单点登出。',
                    endSessionEndpointInvalid: '请输入有效的会话注销端点地址。',
                    endpointDiscoveryPlaceholder: '测试连接后显示',
                    firstLogin: '首次登录',
                    firstLoginPolicy: '创建本地企业用户，并分配配置的默认角色。',
                    fixedAuthorizationCode: 'Authorization Code Flow',
                    fixedNoTokenPersistence: '不持久化 Token、Claims 和 verifier',
                    fixedSecurityPolicy: '系统固定执行，无需配置',
                    fixedStateNonce: '一次性 state 与 nonce',
                    fixedTokenValidation: 'ID Token 签名与 Claims 校验',
                    highRiskSaveConfirm: '当前启用配置包含高风险兼容项，请确认隔离环境确实需要这些设置。',
                    highRiskTitle: '高风险 OIDC 配置',
                    hs256Compatibility: 'HS256（兼容模式）',
                    hs256KeyHelper: 'HS256 固定使用当前认证源的客户端密钥，不接受另一份签名密钥。',
                    hs256Warning: 'HS256 使用共享对称密钥验证 ID Token；仅在 Provider 无法使用非对称算法时启用。',
                    identityBindingPolicy: '身份主键固定为 AuthSourceID + issuer + subject，同名不会认领其他账号。',
                    identityMissing: '身份已失效',
                    issuer: '签发者地址',
                    issuerHelper: '用于 OIDC 自动发现，返回的 issuer 必须与该地址一致。',
                    issuerInvalid: '请输入不含查询参数和片段的有效 HTTP 或 HTTPS 签发者地址。',
                    issuerRequired: '请输入签发者地址。',
                    jwksRotation: 'JWKS 自动轮换',
                    jwksURI: 'JWKS 地址',
                    jwksURIHelper: '使用非对称签名且密钥来源为 JWKS 时必填。',
                    jwksURIInvalid: '请为当前签名密钥来源填写有效的 JWKS 地址。',
                    keepExistingRole: '保留已有角色和本地权限',
                    localSecurityData: '本地安全数据',
                    localSecurityDataPolicy: '不覆盖角色、MFA、API Key、Passkey 和本地权限。',
                    localCredentialsManaged:
                        '用户名和本地密码由 OIDC 身份管理，不能在此修改；角色、权限、MFA、API Key 与 Passkey 仍由本地管理。',
                    localUserFields: '本地用户字段',
                    localUserFieldsDesc: '首期只映射 User.Name，不使用 JSON 映射表达式。',
                    loginWith: '使用 {provider} 登录',
                    manualEndpoints: '自定义端点',
                    manualEndpointsDesc: '仅用于自动发现不完整或上游网关改写端点的身份提供方。',
                    mappingResult: '映射结果',
                    mode: '接入模式',
                    modeRequired: '请选择接入模式。',
                    nameClaim: '用户名 Claim',
                    nameClaimHelper: '填写身份提供方返回用户名的字段，如 preferred_username。',
                    nameClaimRequired: '请输入用户名 Claim。',
                    nameConflict: '同名冲突策略',
                    panelURL: '面板对外地址',
                    panelURLHTTPWarning: 'HTTP 不保护授权响应，仅用于 Provider 接受的隔离私有环境。',
                    panelURLHelper: '填写用户实际访问面板的地址，用于生成回调地址。',
                    panelURLInvalid: '请输入只包含协议、主机和可选端口的对外地址。',
                    panelURLRequired: '请输入面板对外地址。',
                    pkceDisabled: '不使用 PKCE（仅兼容模式）',
                    pkceDisabledWarning: '关闭 PKCE 会降低授权码流程的抗截获能力。',
                    pkceHelper: '优先使用 S256，永不提供 plain。',
                    pkceS256: 'S256（推荐）',
                    plannedHandling: '预计处理',
                    privateNetworkIdP: '私有网络 IdP',
                    privateNetworkIdPHelper:
                        '显式允许私有地址；元数据、回环、链路本地、异常重定向和 DNS 重绑定仍会阻止。',
                    privateNetworkWarning: '当前认证源已允许访问私有网络。',
                    protocolCompatibility: '协议兼容',
                    protocolCompatibilityDesc: 'ID Token 签名校验始终不能关闭。',
                    providerAndClient: '身份提供方与客户端',
                    providerAndClientDesc: '客户端密钥只允许替换或清除，页面不会回显。',
                    providerCapabilities: 'Provider 能力',
                    recentTestSuccess: '最近测试成功：{0}',
                    recommended: '推荐',
                    rejectPlain: '拒绝 plain',
                    replaceSecret: '更换密钥',
                    requestAndClaims: '请求与属性',
                    requestAndClaimsDesc: '配置授权范围、用户信息补充和请求参数。',
                    requestTimeout: '请求超时',
                    requestTimeoutRequired: '请输入请求超时时间。',
                    restore: '还原',
                    restored: '已还原到上次保存的 OIDC 配置。',
                    result: '处理结果',
                    rolesLoadFailed: '角色列表加载失败，请重试后再选择默认角色。',
                    roleHandling: '角色处理',
                    scenario: '场景',
                    scopes: '授权范围',
                    scopesHelper: '必须包含 openid，多个范围使用空格分隔。',
                    scopesRequired: 'Scopes 必须包含 openid。',
                    seconds: '秒',
                    secretClearHelper: '清除后，重新启用 OIDC 前必须配置新的客户端密钥。',
                    secretConfigured: '已配置',
                    secretNotConfigured: '未配置',
                    secretPlaceholder: '输入新的客户端密钥',
                    secretReplaceHelper: '新密钥将在保存时替换原值，请同时更新身份提供方中的客户端密钥。',
                    secretRequiredHelper: '启用 OIDC 前需要配置客户端密钥。',
                    secretRequiredToEnable: '请先配置客户端密钥，再启用 OIDC。',
                    secretSavedHelper: '已加密保存，留空则继续使用当前密钥。',
                    secretWaiting: '等待输入',
                    secretWillClear: '保存后清除',
                    secretWillReplace: '待替换',
                    signingAlgorithm: 'ID Token 签名算法',
                    signingAlgorithmHelper: '只能选择后端安全白名单中的算法。',
                    signingKey: '签名密钥',
                    signingKeyClientSecret: '客户端密钥（仅 HS256）',
                    signingKeyJWKS: 'JWKS URI 自动获取和轮换',
                    signingKeySource: '签名密钥来源',
                    signingKeySourceHelper: '优先使用 JWKS；静态公钥无法自动轮换。',
                    signingKeyStatic: '静态 JWK 或 PEM 公钥',
                    standardDiscovery: '标准模式（自动发现）',
                    standardDiscoveryDesc: '面板自动发现端点和能力，不保存自动发现原文。',
                    standardMode: '标准模式',
                    standardModeHelper: '根据 Issuer 自动发现端点、签名能力和 PKCE 支持。',
                    standardProtocolPolicy: '标准协议策略',
                    standardProtocolPolicyDesc: '自动协商签名能力，不需要填写签名算法和 Key。',
                    staticSigningKey: '静态签名公钥',
                    staticSigningKeyHelper: '只接受公钥材料；Provider 换 Key 后需要手动更新。',
                    staticSigningKeyPlaceholder: '粘贴 JWK、JWKS JSON 或 PEM 公钥',
                    staticSigningKeyRequired: '请提供静态签名公钥。',
                    staticSigningKeyWarning: '静态签名公钥无法自动轮换；Provider 换 Key 前必须手动更新。',
                    settingLoadFailed: 'OIDC 配置加载失败',
                    settingLoadFailedHelper: '为避免用空白默认值覆盖已有配置，当前表单已锁定。请在连接恢复后重试。',
                    subsequentLogin: '后续登录',
                    subsequentLoginPolicy: '按 subject 找到绑定，仅在新名称可用时更新 User.Name。',
                    testBeforeBrowserTest: '请先测试当前配置，再进行浏览器测试登录。',
                    testBeforeEnable: '保存变更配置前，请先测试当前配置。',
                    testConfiguration: '测试连接',
                    testDiscovery: '测试连接',
                    tlsCustomCA: 'HTTPS · 自定义 CA 证书',
                    tlsPrivateHTTP: 'HTTP · 仅私有网络（危险）',
                    tlsPrivateHTTPWarning: 'HTTP 不提供传输加密，只允许显式放行的私有目标。',
                    tlsSkipVerify: '跳过 TLS 证书校验',
                    tlsSystem: 'HTTPS · 系统证书校验（推荐）',
                    tokenEndpoint: '令牌端点',
                    tokenEndpointInvalid: '请输入有效的令牌端点地址。',
                    transportSecurity: '传输安全',
                    transportSecurityHelper: '优先使用 HTTPS；私有 HTTP 还需要显式允许私有网络。',
                    unsavedChanges: 'OIDC 配置有未保存的更改。',
                    usedClaim: '使用 Claim',
                    userInfoEndpoint: '用户信息端点',
                    userInfoEndpointHelper: '用户名字段缺失时，系统将从该端点补充；留空则不补充。',
                    userInfoEndpointInvalid: '请输入有效的用户信息端点地址。',
                    userMapping: '用户配置',
                    userMappingDesc: '设置 OIDC 用户名映射，以及首次登录创建用户时使用的默认节点和角色。',
                },
                saml2: {
                    actionCreate: '创建用户',
                    actionPending: '等待结果',
                    actionReject: '拒绝登录',
                    actionReuse: '使用已绑定用户',
                    assignDefaultRole: '分配新用户角色：{role}',
                    basic: '基础配置',
                    basicDesc: '配置大多数标准 SAML2 身份提供商所需的常用选项。',
                    browserTest: '测试登录',
                    browserTestConflict: '身份验证成功，但用户名冲突',
                    browserTestConflictHelper: '映射后的用户名属于其他身份，不会自动关联。',
                    browserTestExpired: '浏览器测试已过期',
                    browserTestExpiredHelper: '请重新开始测试，并在有效期内完成登录。',
                    browserTestFailed: '浏览器测试失败',
                    browserTestFailedHelper: '无法完成身份预览，请查看后端返回的本地化错误。',
                    browserTestIsolation: '执行真实 SAML2 往返，但不会创建用户、分配角色或生成正式会话。',
                    browserTestPopupBlocked: '请允许当前站点打开弹窗，然后重新测试。',
                    browserTestPopupClosed: '登录窗口在测试完成前被关闭。',
                    browserTestSuccess: 'SAML2 身份验证成功',
                    browserTestSuccessHelper: '身份映射预览已完成，没有修改用户或会话。',
                    browserTestTitle: 'SAML2 测试登录',
                    browserTestWaiting: '等待 IdP 登录',
                    browserTestWaitingHelper: '请在新窗口完成登录，本页面会自动更新。',
                    certificateFileInvalid: '请选择有效的 PEM、CRT 或 CER 证书文件。',
                    configured: '已配置',
                    configurationFailedHelper: '测试失败，页面只显示后端本地化错误。',
                    configurationNotTested: '当前配置尚未测试。',
                    configurationPassed: '当前配置已通过校验。',
                    configurationStaleHelper: '影响认证的配置已经修改，请重新测试当前草稿。',
                    configurationTestSuccess: 'SAML2 配置测试成功。',
                    configurationTesting: '正在测试当前 SAML2 配置…',
                    conflictLDAP: 'LDAP 用户',
                    conflictLocal: '本地用户',
                    conflictNone: '无冲突',
                    conflictOIDC: 'OIDC 身份',
                    conflictSAML2: '其他 SAML2 身份',
                    conflictType: '冲突类型',
                    credentialFileReadFailed: '无法读取凭据文件。',
                    credentialFileTooLarge: '凭据文件不能超过 256 KiB。',
                    credentialsRequired: '请同时配置 SP 私钥和 SP 证书。',
                    defaultRole: '新用户角色',
                    defaultRoleHelper: '仅首次创建时设置；后续登录保留本地角色、MFA 和权限。',
                    defaultRolePlaceholder: '请选择角色',
                    defaultRoleRequired: '请选择有效的新用户角色。',
                    disableConfirm: '停用 SAML2 会立即拒绝新登录并使其用户会话失效，是否继续？',
                    disableDiscardConfirm: '停用 SAML2 会丢弃本页其他未保存修改，并立即使其用户会话失效，是否继续？',
                    disableTitle: '停用 SAML2',
                    disabled: '未启用',
                    enable: '是否开启',
                    enabled: '已启用',
                    idpMetadata: 'IdP 元数据',
                    idpMetadataDesc: '填写 URL 或粘贴 XML，二选一即可；同时填写时优先读取 URL。',
                    keepExistingRole: '保留已有角色和本地权限',
                    loginWith: '使用 {provider} 登录',
                    mappingResult: '映射结果',
                    metadataRequired: '请填写 IdP 元数据 URL 或 XML。',
                    metadataURLHelper: '测试和保存时由后端读取并校验元数据。',
                    metadataURLInvalid: '请输入不含凭据和片段的有效 HTTPS 元数据 URL。',
                    metadataURLRecommended: '元数据 URL（推荐）',
                    metadataXML: '元数据 XML',
                    metadataXMLHelper: '适用于身份提供商（IdP）没有可访问的元数据 URL 的场景。',
                    metadataXMLInvalid: '请输入包含有效 EntityDescriptor 的元数据 XML。',
                    metadataXMLPlaceholder: '粘贴 <EntityDescriptor>...</EntityDescriptor>',
                    nameAttribute: '用户名属性',
                    nameAttributeHelper: '从已验证的 SAML 断言中读取该属性，并映射为面板用户名。',
                    nameAttributePlaceholder: '例如 uid、username 或 account',
                    nameAttributeRequired: '请填写用户名属性。',
                    notConfigured: '未配置',
                    or: '或',
                    pageDesc: '通过 IdP 元数据接入企业单点登录，常用配置在一个页面完成。',
                    plannedHandling: '预计处理',
                    privateKeyFileInvalid: '请选择有效的 PEM 私钥文件。',
                    recentTestSuccess: '最近测试成功：{0}',
                    restore: '还原',
                    restored: '已还原到上次保存的 SAML2 配置。',
                    roleHandling: '角色处理',
                    rolesLoadFailed: '角色列表加载失败，请重试后再选择新用户角色。',
                    selectFile: '选择文件',
                    serviceStatus: '服务状态',
                    serviceStatusDesc: '首次启用前需要先通过当前配置测试。',
                    settingLoadFailed: 'SAML2 配置加载失败',
                    settingLoadFailedHelper: '为避免用空白默认值覆盖已有配置，当前表单已锁定。请在连接恢复后重试。',
                    spCertificate: 'SP 证书',
                    spCertificateHelper: '通过 SP 元数据提供给身份提供商（IdP），用于验证登录和注销请求。',
                    spCredentials: 'SP 私钥与证书',
                    spCredentialsDesc: '用于签名登录和注销消息；具体签名与安全校验策略由后端固定处理。',
                    spEntityID: 'SP 实体 ID',
                    spEntityIDHelper:
                        'SP 唯一标识，需与身份提供商中配置的实体 ID 或受众标识一致，同时也是 SP 元数据地址。',
                    acsURL: 'ACS 地址',
                    sloURL: 'SLO 地址',
                    spPrivateKey: 'SP 私钥',
                    spPrivateKeyHelper: '用于签名 SAML 登录请求和注销消息，加密保存且不会回显。',
                    syncLogout: '同步注销',
                    syncLogoutHelper: '用户退出面板时同时退出身份提供商；从身份提供商注销时也会同步退出面板。',
                    testBeforeBrowserTest: '请先测试当前配置，再进行浏览器测试登录。',
                    testBeforeEnable: '启用 SAML2 或保存认证敏感变更前，请先测试当前配置。',
                    testConfiguration: '测试配置',
                    unsavedChanges: 'SAML2 配置有未保存的更改。',
                    usedAttribute: '用户名映射',
                    usersAndRoles: '用户与角色',
                    usersAndRolesDesc: '设置面板用户名映射，以及首次登录创建用户时使用的默认节点和角色。',
                },
                ldap: {
                    basic: '基础配置',
                    loginTitle: 'LDAP 登录',
                    loginWith: '使用 LDAP 登录',
                    backToLocalLogin: '返回面板登录',
                    enable: '是否开启',
                    enabled: '已启用',
                    disabled: '未启用',
                    connection: '基础连接',
                    connectionDesc: '配置目录服务和用于搜索用户的绑定账号。',
                    serverURL: '服务端地址',
                    serverURLHelper: '支持 ldap:// 和 ldaps:// 地址。',
                    userBaseDN: '用户 Base DN',
                    userBaseDNHelper: 'LDAP 用户搜索的起始 DN，可使用 OU、CN 或域根 DN。',
                    bindDN: '绑定 DN',
                    bindPassword: '密码',
                    passwordSaved: '留空则保留已保存的密码',
                    userSearch: '用户搜索',
                    userSearchDesc: '配置用户搜索基准与过滤器，并映射到面板用户名字段。',
                    userFilter: '用户过滤器',
                    userFilterTooltip: '按用户名查询时替换 %(user)s，全量读取时替换为 *。',
                    userFilterHelper: '搜索和认证时会对用户名执行 LDAP filter escaping。',
                    attributeMap: '映射属性',
                    attributeMapTooltip: '面板用户名字段（name）到 LDAP 属性的 JSON 映射。',
                    attributeMapHelper: '填写映射到面板用户名字段（name）的 LDAP 属性。',
                    advanced: '高级设置',
                    advancedDesc: '配置 TLS 和 LDAP 查询分页。',
                    strictSync: '严格同步',
                    strictSyncTooltip:
                        '完整全量处理后，LDAP 中不存在的同源用户，其认证状态将标记为“LDAP 中不存在”，但不会删除。',
                    strictSyncHelper: '仅作用于完整成功的全量处理；导入选中用户时不会改变其他用户的认证状态。',
                    skipTLSVerify: '跳过 TLS 证书校验',
                    skipTLSVerifyTooltip: '连接 LDAPS 时不校验服务端证书。',
                    connectTimeout: '连接超时（秒）',
                    searchPageSize: 'LDAP 查询分页大小',
                    restore: '还原',
                    testConnection: '测试连接',
                    testLogin: '测试登录',
                    userImport: '用户导入',
                    saveBeforeImport: '请先保存当前 AD/LDAP 配置，再导入用户。',
                    format: '格式化',
                    restoreExample: '恢复示例',
                    mappingValid: 'JSON 格式正确，name 已配置。',
                    mappingInvalid: '请输入有效的 JSON。',
                    mappingObject: '映射属性必须是 JSON 对象。',
                    mappingOnlyName: '仅支持 name 映射。',
                    mappingStringValues: '每个映射属性都必须是字符串。',
                    mappingNameRequired: 'name 必须是非空字符串。',
                    restored: '已还原为上次保存的配置。',
                    connectionTestSuccess: 'LDAP 连接测试成功。',
                    recentTestSuccess: '最近测试成功：{0}',
                    recentTestFailed: '最近测试失败：{0}',
                    serverURLRequired: '请输入 LDAP 服务端地址。',
                    serverURLInvalid: '请输入有效的 ldap:// 或 ldaps:// 地址。',
                    userBaseDNRequired: '请输入用户 Base DN。',
                    bindDNRequired: '请输入绑定 DN。',
                    passwordRequired: '请输入密码。',
                    userFilterRequired: '请输入用户过滤器。',
                    connectTimeoutRequired: '请输入连接超时时间。',
                    searchPageSizeRequired: '请输入 LDAP 查询分页大小。',
                    sync: {
                        title: '定时同步',
                        description: '定期读取 LDAP 全量用户，并维护面板中的 LDAP 用户。',
                        enable: '是否启用',
                        enableHelper: '关闭后不再自动执行，仍可手动立即同步。',
                        schedule: '执行周期',
                        daily: '每天',
                        weekly: '每周',
                        customCron: '自定义 Cron',
                        preview: '预览',
                        previewTitle: '未来 5 次执行',
                        previewEmpty: '暂无可用执行时间',
                        cronHelper: '使用“分 时 日 月 周”五段式 Cron 表达式。',
                        autoImport: '自动导入新用户',
                        autoImportHelper: '关闭后，仅维护已导入 LDAP 用户的目录标识和状态，不会自动创建新用户。',
                        defaultRole: '新用户角色',
                        defaultRolePlaceholder: '请选择角色',
                        defaultRoleHelper: '仅用于定时同步中新创建的用户，后续可在用户管理中调整。',
                        defaultRoleRequired: '请选择新 LDAP 用户的角色。',
                        strictSyncHelper:
                            '全量同步成功后，将 LDAP 中缺失的用户标记为“LDAP 中不存在”并清理会话，不会删除用户、角色或权限。',
                        runNow: '立即同步',
                        lastRunSuccess: '最近同步成功：{0}',
                        lastRunFailed: '最近同步失败：{0}',
                        lastRunRunning: '同步开始时间：{0}',
                        sourceDisabled: '请先启用并保存 AD/LDAP，再执行同步。',
                        cronRequired: '请输入 Cron 表达式。',
                        saveBeforeRun: '请先保存同步设置，再执行同步。',
                        runConfirmTitle: '执行严格同步',
                        runConfirmDescription:
                            '完整全量查询中缺失的 LDAP 用户，其认证状态将标记为“LDAP 中不存在”并清理活动会话，是否继续？',
                        runSuccess: 'LDAP 同步完成。',
                        weekdays: {
                            0: '周日',
                            1: '周一',
                            2: '周二',
                            3: '周三',
                            4: '周四',
                            5: '周五',
                            6: '周六',
                        },
                    },
                    syncLogs: {
                        title: '同步记录',
                        description: '查看定时和手动 LDAP 同步的执行结果。',
                        startedAt: '开始时间',
                        trigger: '触发方式',
                        manual: '手动执行',
                        scheduled: '定时执行',
                        success: '成功',
                        failed: '失败',
                        running: '执行中',
                        result: '执行结果',
                        resultSummary: '新增 {0}，更新 {1}，缺失 {2}',
                        duration: '耗时',
                        action: '处理动作',
                    },
                    testLoginTitle: '测试 AD/LDAP 登录',
                    testLoginDesc: '使用 AD/LDAP 用户凭据执行 bind 验证，仅测试认证能力，不创建面板登录会话。',
                    ldapUsername: 'LDAP 用户名',
                    usernameRequired: '请输入 LDAP 用户名。',
                    startTest: '开始测试',
                    testLoginSuccess: '认证成功。',
                    testLoginSuccessWithDN: '认证成功，用户 DN：{0}',
                    import: {
                        title: '导入 AD/LDAP 用户',
                        source: '数据来源：AD/LDAP 目录',
                        lastRead: '最近读取：{0}',
                        cacheHit: '使用缓存结果',
                        keywordPlaceholder: '搜索用户名',
                        search: '搜索',
                        refresh: '从 LDAP 读取',
                        refreshTip: '忽略短时缓存并重新读取 LDAP 目录。',
                        loadFailed: 'LDAP 目录读取失败。',
                        retry: '重试',
                        noData: '未找到目录用户。',
                        username: '用户名',
                        status: '状态',
                        changes: '变更字段',
                        noChanges: '无变化',
                        importable: '可导入',
                        updateAvailable: '待更新',
                        upToDate: '已是最新',
                        conflict: '同名冲突',
                        selectedCount: '已选择 {0} 项',
                        totalCount: '共 {0} 个用户',
                        newUserRole: '新用户角色',
                        newUserRoleRequired: '请选择新用户角色。',
                        noNewUsers: '本次无新用户。',
                        roleOnlyForNewUsers: '所选角色仅应用于本次新建用户。',
                        strictOff: '严格同步未启用，全量处理不会停用用户。',
                        importSelected: '导入/更新选中（{0}）',
                        importAll: '导入/更新全部（{0}）',
                        previewTitle: '确认全量处理',
                        previewDesc: '已完整读取 LDAP 目录，当前搜索关键字不会缩小本次处理范围。',
                        created: '新建',
                        updated: '更新',
                        unchanged: '无变化',
                        conflicts: '冲突',
                        missing: '将停用',
                        reactivated: '恢复',
                        strictWarning:
                            '严格同步已启用。LDAP 中不存在的同源用户将无法继续登录，但不会删除用户、角色和本地权限。',
                        missingUsers: 'LDAP 中不存在的用户',
                        missingScope: '仅处理当前 LDAP 认证源。',
                        willDisable: '将停用',
                        confirmAll: '确认导入',
                        confirmAllWithMissing: '确认导入并停用 {0} 个用户',
                        executeSuccess: 'LDAP 用户处理成功。',
                        queryExpired: '目录查询结果已过期，请重新从 LDAP 读取。',
                        planIncomplete: 'LDAP 目录未完整读取，不能执行全量处理。',
                    },
                },
            },
        },
        customApp: {
            name: '自定义仓库',
            appStoreType: '仓库来源',
            appStoreUrl: '仓库地址',
            local: '本地',
            remote: '远程',
            imagePrefix: '镜像前缀',
            imagePrefixHelper:
                '用于自定义镜像前缀，自动修改 Compose 文件中的镜像字段。\n 例如，当镜像前缀设置为 1panel/custom 时，MaxKB 的镜像将变更为 1panel/custom/maxkb:v1.10.0。',
            closeHelper: '是否取消使用自定义仓库',
            appStoreUrlHelper: '仅支持 .tar.gz 格式',
            postNode: '同步至子节点',
            postNodeHelper: '将自定义应用仓库包同步到子节点安装目录下的 tmp/customApp/apps.tar.gz',
            nodes: '节点',
            selectNode: '选择节点',
            selectNodeError: '请选择节点',
            licenseHelper: '商业版支持自定义应用仓库功能',
            databaseHelper: '应用关联数据库，请选择目标节点数据库',
            nodeHelper: '不能选择当前节点',
            migrateHelper: '当前仅支持迁移单体应用和只关联 MySQL、MariaDB、PostgreSQL 数据库的应用',
            opensslHelper: '如果使用加密备份，两个节点之间的 openssl 版本必须保持一致，不然会导致迁移失败',
            installApp: '批量安装',
            installAppHelper: '批量安装应用到选择的节点中',
        },
        alert: {
            isAlert: '是否告警',
            alertCount: '告警次数',
            clamHelper: '扫描到感染文件时触发告警通知',
            cronJobHelper: '定时任务执行失败时将触发告警通知',
            licenseHelper: '商业版支持更多告警功能',
            alertCountHelper: '每日最大告警次数',
            alert: '短信告警',
            logs: '告警日志',
            list: '告警列表',
            addTask: '创建告警',
            editTask: '编辑告警',
            alertMethod: '告警方式',
            alertMsg: '告警内容',
            alertRule: '告警规则',
            titleSearchHelper: '请输入告警标题，支持模糊搜索',
            taskType: '告警类型',
            ssl: '网站证书到期',
            siteEndTime: '网站到期',
            panelPwdEndTime: '面板密码到期',
            panelUpdate: '面板新版本提醒',
            cpu: '面板服务器 CPU 过高告警',
            memory: '面板服务器内存过高告警',
            load: '面板服务器负载过高告警',
            disk: '面板服务器磁盘过高告警',
            website: '网站',
            certificate: '证书',
            remainingDays: '剩余天数',
            sendCount: '告警次数',
            sms: '短信通知',
            wechat: '微信公众号',
            dingTalk: '钉钉通知',
            feiShu: '飞书通知',
            mail: '邮箱通知',
            email: '邮箱通知',
            weCom: '企业微信',
            bark: 'Bark',
            sendCountRulesHelper: '到期前发送告警的总数（每日仅发送一次）',
            panelUpdateRulesHelper: '新版本发送告警总数（每日仅发送一次）',
            oneDaySendCountRulesHelper: '每日发送告警的总数',
            siteEndTimeRulesHelper: '永不过期的网站，不触发告警',
            autoRenewRulesHelper: '证书开启自动续期，剩余天数小于 31 天，不触发告警',
            panelPwdEndTimeRulesHelper: '面板未设置密码到期时长，不能使用密码到期告警',
            sslRulesHelper: '所有 ssl 证书',
            diskInfo: '磁盘信息',
            monitoringType: '监测类型',
            autoRenew: '自动续签',
            useDisk: '占用磁盘',
            usePercentage: '占用百分比',
            changeStatus: '状态修改',
            disableMsg: '停止告警任务会导致该任务不再发送告警消息。是否继续？',
            enableMsg: '启用告警任务会让该任务发送告警消息。是否继续？',
            useExceed: '使用超过',
            useExceedRulesHelper: '使用超过指定值触发告警',
            cpuUseExceedAvg: 'CPU 平均使用率超过指定值',
            memoryUseExceedAvg: '内存平均使用率超过指定值',
            loadUseExceedAvg: '负载平均使用率超过指定值',
            cpuUseExceedAvgHelper: '指定时间内 CPU 平均使用率超过指定值',
            memoryUseExceedAvgHelper: '指定时间内内存平均使用率超过指定值',
            loadUseExceedAvgHelper: '指定时间内负载平均使用率超过指定值',
            resourceAlertRulesHelper: '注意：30 分钟内持续告警只发送一次',
            specifiedTime: '指定时间',
            deleteTitle: '删除告警',
            deleteMsg: '是否确认删除告警任务？',

            allSslTitle: '所有网站证书到期告警',
            sslTitle: '网站「 {0} 」证书到期告警',
            allSiteEndTimeTitle: '所有网站到期告警',
            siteEndTimeTitle: '网站「 {0} 」到期告警',
            panelPwdEndTimeTitle: '面板密码到期告警',
            panelUpdateTitle: '面板新版本提醒',
            cpuTitle: 'CPU 占用过高告警',
            memoryTitle: '内存占用过高告警',
            loadTitle: '负载占用过高告警',
            diskTitle: '挂载目录「{0}」的磁盘占用过高告警',
            allDiskTitle: '磁盘占用过高告警',

            timeRule: '剩余时间小于 {0} 天 (如未处理，次日会重新发送)',
            panelUpdateRule: '检测到面板有新版本时发送一次 (如未处理，次日会重新发送)',
            avgRule: '{0} 分钟内平均{1}占用超过 {2}% 触发，每天发送 {3} 次',
            diskRule: '挂载目录「 {0} 」的磁盘占用超过 {1}{2} 触发，每天发送 {3} 次',
            allDiskRule: '磁盘占用超过 {0}{1} 触发，每天发送 {2} 次',

            cpuName: ' CPU ',
            memoryName: '内存',
            loadName: '负载',
            diskName: '磁盘',

            syncAlertInfo: '同步告警信息',
            syncAlertInfoMsg: '是否同步告警信息内容状态？',
            pushError: '推送失败',
            pushSuccess: '推送成功',
            syncError: '同步失败',
            success: '告警成功',
            pushing: '推送中...',
            error: '告警失败',
            cleanLog: '清空日志',
            cleanAlertLogs: '清空告警日志',
            daily: '当日第 {0} 次告警',
            cumulative: '累计第 {0} 次告警',
            clams: '病毒扫描告警',
            taskName: '任务名称',
            cronJobType: '任务类型',
            clamPath: '扫描目录',
            cronjob: '计划任务执行{0}异常',
            app: '备份应用',
            web: '备份网站',
            database: '备份数据库',
            directory: '备份目录',
            log: '备份日志',
            snapshot: '系统快照',
            clamsRulesHelper: '需要开启告警通知的病毒扫描任务',
            cronJobRulesHelper: '需要配置此类型的计划任务',
            clamsTitle: '病毒扫描「 {0} 」任务检测到感染文件告警',
            cronJobAppTitle: '计划任务-备份应用「 {0} 」任务失败告警',
            cronJobWebsiteTitle: '计划任务-备份网站「 {0} 」任务失败告警',
            cronJobDatabaseTitle: '计划任务-备份数据库「 {0} 」任务失败告警',
            cronJobDirectoryTitle: '计划任务-备份目录「 {0} 」任务失败告警',
            cronJobLogTitle: '计划任务-备份日志「 {0} 」任务失败告警',
            cronJobSnapshotTitle: '计划任务-系统快照「 {0} 」任务失败告警',
            cronJobShellTitle: '计划任务-Shell 脚本「 {0} 」任务失败告警',
            cronJobCurlTitle: '计划任务-访问 URL「 {0} 」任务失败告警',
            cronJobCutWebsiteLogTitle: '计划任务-切割网站日志「 {0} 」任务失败告警',
            cronJobCleanTitle: '计划任务-缓存清理「 {0} 」任务失败告警',
            cronJobNtpTitle: '计划任务-同步服务器时间「 {0} 」任务失败告警',
            clamsRule: '病毒扫描任务检测到感染文件告警，每天发送 {0} 次',
            cronJobAppRule: '备份应用任务失败告警，每天发送 {0} 次',
            cronJobWebsiteRule: '备份网站任务失败告警，每天发送 {0} 次',
            cronJobDatabaseRule: '备份数据库任务失败告警，每天发送 {0} 次',
            cronJobDirectoryRule: '备份目录任务失败告警，每天发送 {0} 次',
            cronJobLogRule: '备份日志任务失败告警，每天发送 {0} 次',
            cronJobSnapshotRule: '系统快照任务失败告警，每天发送 {0} 次',
            cronJobShellRule: 'Shell 脚本任务失败告警，每天发送 {0} 次',
            cronJobCurlRule: '访问 URL 任务失败告警，每天发送 {0} 次',
            cronJobCutWebsiteLogRule: '切割网站日志任务失败告警，每天发送 {0} 次',
            cronJobCleanRule: '缓存清理任务失败告警，每天发送 {0} 次',
            cronJobNtpRule: '同步服务器时间任务失败告警，每天发送 {0} 次',
            alertSmsHelper: '短信额度：总量 {0} 条，已使用 {1} 条',
            goBuy: '去购买',
            phone: '手机号',
            phoneHelper: '请填写真实的手机号，以免不能正常接收告警信息',
            dailyAlertNum: '每日告警次数',
            dailyAlertNumHelper: '每日告警通知的总次数，最多通知 100 次',
            timeRange: '时间范围',
            sendTimeRange: '可发送时间范围',
            sendTimeRangeHelper: '可推送{0}时间范围',
            to: '至',
            startTime: '开始时间',
            endTime: '结束时间',
            defaultPhone: '默认使用与许可证绑定的账户手机号',
            noticeAlert: '通知告警',
            resourceAlert: '资源告警',
            agentOfflineAlertHelper: '节点开启离线告警，将通过主节点每半小时扫描执行一次告警任务',
            offline: '离线告警',
            offlineHelper: '设置为离线告警，将通过主节点每半小时扫描执行一次告警任务',
            offlineOff: '开启离线告警',
            offlineOffHelper: '开启离线告警，将通过主节点每半小时扫描执行一次告警任务',
            offlineClose: '关闭离线告警',
            offlineCloseHelper: '关闭离线告警，告警需通过子节点自行告警，请保证子节点网络畅通，以避免告警失败',
            alertNotice: '告警通知',
            methodConfig: '发送方式配置',
            createMethod: '创建发送方式',
            methodInvalid: '失效配置 {0}',
            commonConfig: '全局配置',
            smsConfig: '短信通知',
            smsConfigHelper: '配置短信通知号码',
            emailConfig: '邮箱',
            emailConfigHelper: '配置 SMTP 邮件发送服务',
            deleteConfigTitle: '删除告警配置',
            deleteConfigMsg: '是否确认删除告警配置？',
            test: '测试',
            alertTestOk: '测试通知成功',
            alertTestFailed: '测试通知失败',
            displayName: '显示名称',
            sender: '发信地址',
            password: '密码',
            host: 'SMTP 服务器',
            port: '端口号',
            encryption: '加密方式',
            recipient: '收件人',
            licenseTime: '许可证到期提醒',
            licenseTimeTitle: '许可证到期提醒',
            displayNameHelper: '邮件的发件人显示名称',
            senderHelper: '用于发送邮件的邮箱地址',
            passwordHelper: '邮件服务的授权码',
            hostHelper: 'SMTP 服务器地址，例如: smtp.qq.com',
            portHelper: 'SSL 通常为465，TLS 通常为587',
            sslHelper: '如果 SMTP 端口是 465，通常需要启用 SSL',
            tlsHelper: '如果 SMTP 端口是 587，通常需要启用 TLS',
            triggerCondition: '触发条件',
            loginFail: '内，登录失败',
            nodeException: '节点异常告警',
            licenseException: '许可证异常告警',
            panelLogin: '面板登录异常告警',
            sshLogin: 'SSH 登录异常告警',
            panelIpLogin: '面板登录 IP 异常告警',
            sshIpLogin: 'SSH 登录 IP 异常告警',
            ipWhiteListHelper: '白名单中的 IP 不受规则限制，登录成功不进行告警',
            nodeExceptionRule: '节点异常告警，每天发送 {0} 次',
            licenseExceptionRule: '许可证异常告警，每天发送 {0} 次',
            panelLoginRule: '面板登录告警，每天发送 {0} 次',
            sshLoginRule: 'SSH 登录告警，每天发送 {0} 次',
            userNameHelper: '用户名为空会默认使用发件箱地址',
            alertConfigHelper: '配置告警通知通道，用于接收面板消息推送',
            weComConfigHelper: '企业微信告警通知配置',
            wechatConfigHelper: '微信公众号告警通知配置',
            dingTalkConfigHelper: '钉钉告警通知配置',
            feiShuConfigHelper: '飞书告警通知配置',
            barkConfigHelper: 'Bark 告警通知配置',
            webhookName: '机器人名称',
            webhookUrl: 'Webhook 地址',
            alertConfigProHelper: '商业版额外支持企业微信、钉钉、飞书及短信告警。',
            recipientPlaceholder: '请输入收件人邮箱地址',
            addRecipient: '添加收件人',
            webhookItem: 'Webhook',
            addWebhook: '添加 Webhook',
            selectAlertType: '选择告警类型',
            configDetail: '配置详情',
            webhookCount: '个 Webhook',
        },
        theme: {
            lingXiaGold: '凌霞金',
            classicBlue: '经典蓝',
            freshGreen: '清新绿',
            customColor: '自定义主题色',
            setDefault: '恢复默认',
            setDefaultHelper: '即将恢复主题配色到初始状态，是否继续？',
            setHelper: '即将保存当前选定的主题配色，是否继续？',
        },
        app: {
            app: 'APP',
            title: '面板别名',
            titleHelper: '面板别名用于 APP 端的显示（默认面板别名）',
            qrCode: '二维码',
            apiStatusHelper: '面板 APP 需要开启 API 接口功能',
            apiInterfaceHelper: '支持面板 API 接口访问功能（面板 APP 需要开启该功能）',
            apiInterfaceHelper1:
                '面板 APP 访问需将访问者添加至白名单，非固定 IP 建议添加 0.0.0.0/0（所有 IPv4），::/0（所有 IPv6）',
            qrCodeExpired: '刷新时间',
            apiLeakageHelper: '请勿泄露二维码，确保仅在受信任的环境中使用',
        },
        sync: {
            menu: '资源同步',
            file: '文件对传',
            fileSyncConfirm: '是否将 {0} 节点文件/文件夹 {1} 传输到 {2} 节点 {3} 目录？',

            image: '镜像对传',
            imageBatchDesc: '先选择源节点和源镜像，再批量选择目标节点进行转发。',
            imageBatchConfirmPrefix: '即将把 {0} 张镜像转发到 {1} 个节点，共 {2} 个任务。',

            ssl: '证书同步',
            sslBatchDesc: '选择源节点后，可将指定证书同步到当前面板环境。',
            sslBatchConfirmPrefix: '即将把 {0} 张证书同步到 {1} 个节点，共 {2} 个任务。',

            app: '应用对传',
            appBatchDesc: '选择源节点、单个应用和目标节点后，确认资源依赖并执行应用对传任务。',
            appSelectedApp: '已选应用：',
            appPreviewTitle: '对传预览',
            appPreviewDesc: '确认目标节点和依赖资源后执行应用对传。',
            appDatabaseDependency: '数据库依赖',
            appResourceRequired: '请先选择所有必需的关联资源。',
            appUnsupportedMultipleResources: '当前仅支持迁移最多关联一个资源的应用。',
            appUnsupportedResourceType: '当前仅支持迁移无资源依赖或仅依赖 MySQL、MariaDB、PostgreSQL 的应用。',

            targetTitle: '目标节点',
            targetDesc: '源节点会自动排除，可选择一个或多个目标节点。',
            targetSearchPlaceholder: '搜索节点名称或地址',
            noTargetNodes: '没有可选目标节点',
            noSourceNode: '请先选择源节点',
            reviewTargets: '目标节点',
            reviewEmpty: '请先选择资源和目标节点',
            selectSourceFirst: '请先选择源节点。',
            selectResourceFirst: '请先选择要同步的资源。',
            selectTargetFirst: '请先选择至少一个目标节点。',
            submitSuccess: '同步任务已提交。',
        },
        vm: {
            vm: '虚拟机',
            title: '虚拟机管理',
            healthCheck: '健康检查',
            healthCheckResult: {
                pass: '正常',
                info: '信息',
                warn: '警告',
                fail: '失败',
                normal: '正常',
                fixCommand: '修复命令',
                technicalDetail: '技术详情',
                check: {
                    vmName: '虚拟机名称',
                    libvirtConnection: 'Libvirt 连接',
                    vmDefinition: '虚拟机定义',
                    domainXML: '虚拟机 XML',
                    architecture: '架构',
                    virtualizationType: '虚拟化类型',
                    machineType: '机器类型',
                    efiCapability: 'EFI 能力',
                    qemuEmulator: 'QEMU 模拟器',
                    bootOrder: '启动顺序',
                    arm64Firmware: 'ARM64 固件',
                    arm64Features: 'ARM64 特性',
                    arm64Video: 'ARM64 显示设备',
                    arm64FirmwareFile: 'ARM64 固件文件',
                    arm64CDROM: 'ARM64 光驱',
                    blockDevice: '块设备',
                    isoArchitecture: 'ISO 架构',
                    network: '网络',
                    qemuLog: 'QEMU 日志',
                    arm64RuntimeFirmware: 'ARM64 固件运行参数',
                },
                reason: {
                    invalidName: '虚拟机名称无效。',
                    connectionFailed: '无法连接 {uri}。',
                    vmNotFound: '找不到虚拟机 {name}。',
                    xmlReadFailed: '读取虚拟机 XML 失败。',
                    liveXMLFallback: '无法读取持久化配置，已改用当前运行配置。',
                    xmlParseFailed: '解析虚拟机 XML 失败。',
                    stateReadFailed: '无法确认虚拟机运行状态，将跳过运行态固件检查。',
                    guestArchMissing: 'XML 中缺少客体架构。',
                    archMismatch: '宿主机架构为 {hostArch}，客体架构为 {guestArch}，不支持跨架构运行。',
                    nonKVMType: '虚拟化类型为 {type}，不是默认的 KVM。',
                    archOrMachineMissing: 'XML 中缺少架构或机器类型。',
                    machineUnsupported: '宿主机不支持 {arch}/{machine}。',
                    emulatorNotSpecified: 'XML 未显式指定模拟器，将由 Libvirt 选择。',
                    fileNotFound: '文件不存在：{path}',
                    fileNotExecutable: '文件不可执行：{path}',
                    bootDeviceMissing: 'XML 中没有启动设备。',
                    diskNotFirst: '硬盘不是第一启动项，当前顺序：{order}',
                    cdromNotInBootOrder: '已挂载 CD-ROM，但启动顺序中没有光驱。',
                    firmwareNotConfigured: '未配置 EFI 或 Loader，客体可能无法初始化显示或引导。',
                    acpiCustom: '检测到 ACPI，请确认这是客体明确需要的自定义配置。',
                    acpiRequiresUEFI: '检测到 ACPI 但没有 UEFI，会触发 ACPI requires UEFI。',
                    apicUnsupported: '检测到 x86 APIC，ARM64 配置不应包含该项。',
                    gicNotDeclared: '持久化 XML 未显示 GIC，Libvirt 可能在运行态自动补充。',
                    videoNotConfigured: 'XML 中没有配置显示设备。',
                    videoNotVirtio: '显示设备类型为 {type}，推荐使用 Virtio。',
                    firmwareFileMissing: '固件文件不存在或不是普通文件：{path}',
                    firmwareNotAvailable: 'Libvirt 未报告 EFI 能力，且未找到 ARM64 UEFI 固件。',
                    cdromBusNotSCSI: 'CD-ROM 使用 {bus} 总线，ARM64 应使用 SCSI。',
                    cdromNotOnVirtioSCSI: 'CD-ROM 未连接到 Virtio SCSI 控制器。',
                    diskSourceMissing: '{device} {target} 没有源文件。',
                    sourceNotFound: '{device} {target} 的源文件不存在：{path}',
                    sourceIsDirectory: '{device} {target} 的源路径是目录：{path}',
                    systemDiskNotFound: '没有检测到系统磁盘。',
                    isoArchMismatch: '{guestArch} 客体挂载了疑似 {imageArch} 镜像：{path}',
                    networkReadFailed: '无法读取网络 {name}。',
                    networkStateReadFailed: '无法读取网络 {name} 的状态。',
                    networkInactive: '网络 {name} 存在但未启动。',
                    logUnavailable: '暂无可分析的启动日志。',
                    logErrorsFound: '最近一次启动记录中发现常见错误。',
                    vmNotRunning: '虚拟机当前未运行，已跳过 QEMU 运行参数检查。',
                    runtimeFirmwareMissing: 'QEMU 日志中未发现 pflash、AAVMF 或 QEMU_EFI。',
                },
            },
            overview: '概览',
            dependencies: '依赖',
            dependencyPurpose: '作用',
            dependencyPurposeMap: {
                libvirt: '提供虚拟机管理服务，负责虚拟机生命周期和资源调度。',
                storage: '提供默认存储目录或存储池，用于保存虚拟机磁盘文件。',
            },
            dependencyNotReady: '虚拟机依赖检测未通过，请处理后再使用虚拟机功能。',
            helperUnavailable: '虚拟机能力初始化失败，请检查 Core 日志或重新升级后再使用虚拟机功能。',
            kvmUnavailable: '未检测到可用的 KVM 硬件虚拟化能力。',
            kvmCheckCpu: '确认宿主机 CPU 支持 Intel VT-x 或 AMD-V 虚拟化能力。',
            kvmCheckBios: '进入 BIOS/UEFI 开启虚拟化相关选项。',
            kvmCheckModule: '确认内核模块 kvm、kvm_intel 或 kvm_amd 已正确加载。',
            kvmCheckDevice: '确认 /dev/kvm 存在，且当前运行环境不是不支持 KVM 的容器或云主机。',
            cpu: 'CPU',
            memory: '内存',
            disk: '磁盘',
            abnormal: '异常',
            resourceOverview: '资源概况',
            cpuAllocated: 'CPU 分配',
            memoryAllocated: '内存分配',
            storageUsed: '存储使用',
            riskReminder: '风险提醒',
            noRisk: '暂无风险',
            runtimeHealth: '运行环境',
            runtimeAbnormal: '虚拟机运行环境异常',
            noDependency: '暂无依赖检测数据',
            storageOverview: '存储池概况',
            totalAllocated: '按虚拟机配置总量统计',
            runningAllocated: '运行中占用：{0}',
            storageAvailable: '剩余可用：{0}',
            inProgress: '任务进行中',
            needAttention: '需要关注',
            normal: '正常',
            environmentRisk: '虚拟机运行环境未就绪，请处理依赖或虚拟化服务。',
            storageRisk: '存储池 {0} 使用率已达 {1}%。',
            abnormalRisk: '当前有 {0} 台虚拟机处于异常状态。',
            pausedRisk: '当前有 {0} 台虚拟机处于暂停状态。',
            memoryRisk: '虚拟机内存分配率已达 {0}%。',
            cpuLimitHelper: '当前可用 CPU：{0} 核',
            cpuLimitExceeded: 'CPU 超出限制，当前最大可用：{0} 核',
            memoryLimitHelper: '当前可分配内存：{0}（宿主机需要预留 {1} 内存）',
            memoryLimitExceeded: '内存超出限制，当前最大可分配：{0}',
            storageLimitHelper: '目标存储池当前可用空间：{0}',
            storageLimitExceeded: '磁盘容量超出限制，当前最大可用：{0}',
            iso: '镜像',
            createFromTemplate: '从模板启动',
            template: '模板',
            templateName: '模板名称',
            convertToTemplate: '转为模板',
            sourceVM: '来源虚拟机',
            templateSize: '模板大小',
            deleteTemplateConfirm: '删除模板 {0}，该操作不可回滚，是否继续？',
            orphanClean: '孤立数据清理',
            orphanScan: '重新扫描',
            orphanCleanHelper:
                '仅展示未被虚拟机、快照或已登记模板引用的候选文件。请确认文件不再使用后再清理，清理操作不可恢复。',
            orphanSelected: '已选择 {0} 个文件，共 {1}',
            orphanSize: '文件大小',
            orphanCleanConfirm: '确认清理已选择的 {0} 个文件（{1}）吗？该操作不可恢复。',
            orphanCleanSuccess: '已清理 {0} 个文件，释放 {1}。',
            orphanType: {
                orphan_domain_disk: '孤立磁盘',
                orphan_snapshot: '孤立快照',
                partial_file: '未完成文件',
            },
            diskSize: '磁盘容量',
            diskPath: '磁盘路径',
            isoPath: '镜像源文件',
            storagePool: '存储池',
            network: '网络',
            bridgeName: '桥接名称',
            natNetworkHelper: '虚拟机可通过宿主机访问网络，外部设备通常无法直接访问虚拟机。',
            bridgeNetworkHelper:
                '让虚拟机接入宿主机已有的网桥（如 br0）。如宿主机有未使用的额外网卡，也可为其创建网桥后使用。',
            bridgeNameHelper:
                '请选择宿主机上已存在的 Linux bridge，例如 br0。物理网卡不是 bridge，docker/libvirt 管理的 bridge 不能在这里选择。',
            natCIDRHelper: 'CIDR、网关和 DHCP 地址段将用于新建的 NAT 虚拟网络。',
            networkCIDR: '网络 CIDR',
            gateway: '网关',
            dhcpStart: 'DHCP 起始地址',
            dhcpEnd: 'DHCP 结束地址',
            bootOrder: '启动项',
            bootDiskFirst: '磁盘优先（HD → CD-ROM）',
            bootIsoFirst: '镜像优先（CD-ROM → HD）',
            bootOrderConfirm: '确定将启动顺序修改为 {0} 吗？虚拟机下次启动时，将按此顺序尝试当前已挂载且可启动的设备。',
            startAfterCreate: '创建后启动',
            autoStart: '开机自启',
            resourceAutoStart: '开机自启',
            capacity: '容量',
            available: '可用',
            vmCount: '关联虚拟机',
            usedIPs: '已用 IP',
            monitor: '监控',
            monitorNotReady: '虚拟机未运行，无法获取监控数据。',
            monitorLoadFailed: '获取虚拟机监控数据失败。',
            monitorLoadFailedWithReason: '获取虚拟机监控数据失败：{0}',
            rename: '重命名',
            newName: '新名称',
            renameHelper: '请输入新的虚拟机名称，重命名需要虚拟机处于关机状态。',
            renameConfirm: '确认将虚拟机 [{0}] 重命名为 [{1}]？',
            renameRunningHelper: '请先关闭虚拟机后再重命名。',
            cpuUsage: 'CPU 使用率',
            memoryUsage: '内存使用率',
            diskIO: '磁盘 IO',
            networkIO: '网络 IO',
            diskReadWrite: '磁盘读 / 写',
            networkRxTx: '网络收 / 发',
            rx: '接收',
            tx: '发送',
            console: '控制台',
            consoleNotReady: 'VNC 控制台不可用，请启动虚拟机并检查 VNC 图形配置。',
            consoleDisconnected: 'VNC 控制台已断开连接。',
            consoleConnectFailed: 'VNC 控制台连接失败，请检查控制台代理服务。',
            consoleCredentialsRequired: 'VNC 控制台需要认证信息，请检查后端代理配置。',
            snapshot: '快照',
            createSnapshot: '创建快照',
            recoverSnapshot: '恢复快照',
            snapshotSize: '占用',
            currentSnapshot: '当前',
            snapshotEmpty: '暂无快照',
            snapshotHelper:
                '快照会保存虚拟机当前状态作为还原点，后续数据变化会记录在差分文件中，不影响原始磁盘。恢复快照时，虚拟机会回到该时间点状态。',
            snapshotOperationHelper: '当前快照无法删除；仅可在虚拟机关机时恢复快照。',
            snapshotRecoverConfirm: '确认将虚拟机 [{1}] 恢复到快照 [{0}]？恢复后虚拟机磁盘会回到该快照状态。',
            interface: '网络接口',
            device: '设备',
            path: '路径',
            start: '启动',
            shutdown: '关机',
            reboot: '重启',
            destroy: '强制停止',
            suspend: '暂停',
            resume: '恢复',
            operateConfirm: '确认 {0} 虚拟机 [{1}]？',
            forceDelete: '强制删除',
            forceDeleteHelper: '强制删除将会忽略虚拟机删除错误，删除面板元数据并释放资源占用。',
            deleteNameHelper: '" 删除此虚拟机',
            isoSource: '镜像来源',
            downloadFromServer: '远程下载',
            isoTargetDir: '镜像目标路径',
            isoTargetDirHelper: '本地上传或从服务器下载的镜像会保存到该目录。',
            addingIsoRecord: '正在添加 ISO 记录',
            transferInProgress: 'ISO 传输中，请勿关闭当前抽屉或页面。',
            isoSize: '镜像大小',
            deleteIsoConfirm: '删除操作不可回滚，是否继续？',
            deleteSourceFile: '删除源文件',
            deleteSourceFileHelper: '勾选后会同时删除该镜像记录引用的源文件，文件删除后无法恢复。',
            dir: '本地目录',
        },
        cluster: {
            cluster: '应用高可用',
            name: '集群名称',
            addCluster: '添加集群',
            installNode: '安装节点',
            master: '主节点',
            slave: '从节点',
            replicaStatus: '主从状态',
            unhealthyDeleteError: '安装节点状态异常，请在节点列表检查后重试！',
            replicaStatusError: '状态获取异常 请检查主节点',
            masterHostError: '主节点 IP 不能为 127.0.0.1',
        },
    },
    template: {
        create: '创建模板',
        edit: '编辑模板',
        name: '模板名称',
        type: '模板类型',
        single: '单文件',
        multi: '多文件(zip)',
        content: '模板内容',
        variables: '变量定义',
        remark: '备注',
        filePath: '文件路径',
        upload: '上传 zip',
        preview: '预览',
        previewEmpty: '选择模板后可实时预览',
        generate: '生成产物',
        outputName: '产物名称',
        outputList: '产物列表',
        outputCreate: '生成产物',
        confirmDelete: '确定删除此模板吗？关联的产物也将被删除',
        confirmDeleteOutput: '确定删除此产物吗？',
        variableKey: '变量名',
        variableLabel: '标签',
        variableType: '类型',
        variableDefault: '默认值',
        variableOptions: '选项(逗号分隔)',
        variableRequired: '必填',
        varTypeText: '单行文本',
        varTypeTextHelper: '普通文本输入框',
        varTypeTextarea: '多行文本',
        varTypeTextareaHelper: '适用于段落、长文本',
        varTypeNumber: '数字',
        varTypeNumberHelper: '仅允许输入数字',
        varTypeSelect: '下拉选择',
        varTypeSelectHelper: '从预设选项中选择,需填写选项',
        varTypeColor: '颜色',
        varTypeColorHelper: '颜色选择器',
        autoDetectHelper: '自动识别内容中双花括号包裹的变量并加入变量定义表格',
        selectTemplate: '选择模板',
        fillVariables: '填写变量',
        noVariables: '此模板没有定义变量',
        outputSuccess: '产物生成成功',
        importButton: '从模板导入',
    },
};
export default {
    ...getFuLocaleMessage('zh'),
    ...message,
};
