import fit2cloudEnLocale from 'fit2cloud-ui-plus/src/locale/lang/en';

const message = {
    commons: {
        true: 'true',
        false: 'false',
        example: 'e.g.:',
        fit2cloud: 'FIT2CLOUD',
        lingxia: 'Lingxia',
        colon: ': ',
        button: {
            prev: 'Previous',
            next: 'Next',
            create: 'Create ',
            add: 'Add ',
            save: 'Save ',
            set: 'Setting',
            sync: 'Sync ',
            delete: 'Delete ',
            edit: 'Edit',
            enable: 'Enable',
            disable: 'Disable',
            confirm: 'Confirm',
            cancel: 'Cancel',
            reset: 'Reset',
            setDefault: 'Restore Default',
            restart: 'Restart',
            conn: 'Connect',
            disconn: 'Disconnect',
            clean: 'Clean',
            login: 'Login',
            close: 'Close',
            stop: 'Stop',
            start: 'Start',
            view: 'View',
            watch: 'Watch',
            handle: 'Handle',
            expand: 'Expand',
            collapse: 'Collapse',
            log: 'Log',
            back: 'Back',
            backup: 'Backup',
            recover: 'Recover',
            retry: 'Retry',
            upload: 'Upload',
            download: 'Download',
            init: 'Init',
            verify: 'Verify',
            saveAndEnable: 'Save and enable',
            import: 'Import',
            search: 'Search',
            refresh: 'Refresh',
            get: 'Get',
            upgrade: 'Upgrade',
            update: 'update',
            ignore: 'Ignore upgrade',
            copy: 'Copy',
            random: 'Random',
            install: 'Install',
            uninstall: 'Uninstall',
            fullscreen: 'WebsiteFullscreen',
            quitFullscreen: 'Quit WebsiteFullscreen',
            showAll: 'Show All',
            hideSome: 'Hide Some',
            agree: 'Agree',
            notAgree: 'Not Agree',
            preview: 'Preview',
            open: 'Open',
            notSave: 'Not Save',
            createNewFolder: 'Create new folder',
            createNewFile: 'Create new file',
            helpDoc: 'Help Document',
            bind: 'Bind',
            unbind: 'Unbind',
            fix: 'Fix',
            down: 'Stop',
            up: 'Start',
        },
        search: {
            timeStart: 'Time start',
            timeEnd: 'Time end',
            timeRange: 'To',
            dateStart: 'Date start',
            dateEnd: 'Date end',
        },
        table: {
            all: 'All',
            total: 'Total {0}',
            name: 'Name',
            type: 'Type',
            status: 'Status',
            statusSuccess: 'Success',
            statusFailed: 'Failed',
            statusWaiting: 'Waiting...',
            records: 'Records',
            group: 'Group',
            default: 'Default',
            createdAt: 'Creation Time',
            publishedAt: 'Publish Time',
            date: 'Date',
            updatedAt: 'Update Time',
            operate: 'Operations',
            message: 'Message',
            description: 'Description',
            interval: 'Interval',
            user: 'User',
            title: 'Title',
            port: 'Port',
            forward: 'Forward',
            protocol: 'Protocol',
            tableSetting: 'Table setting',
            refreshRate: 'Rate',
            noRefresh: 'No Refresh',
            refreshRateUnit: '{0} Seconds/Time',
            selectColumn: 'Select column',
            local: 'local',
        },
        loadingText: {
            Upgrading: 'System upgrade, please wait...',
            Restarting: 'System restart, please wait...',
            Recovering: 'Recovering from snapshot, please wait...',
            Rollbacking: 'Rollbacking from snapshot, please wait...',
        },
        msg: {
            noneData: 'No data available',
            delete: 'This operation delete cannot be rolled back. Do you want to continue?',
            clean: 'This operation clean cannot be rolled back. Do you want to continue?',
            deleteSuccess: 'Delete Success',
            loginSuccess: 'Login Success',
            operationSuccess: 'Successful operation',
            copySuccess: 'Copy Successful',
            notSupportOperation: 'This operation is not supported',
            requestTimeout: 'The request timed out, please try again later',
            infoTitle: 'Hint',
            notRecords: 'No execution record is generated for the current task',
            sureLogOut: 'Are you sure you want to log out?',
            createSuccess: 'Create Success',
            updateSuccess: 'Update Success',
            uploadSuccess: 'Update Success',
            operateConfirm: 'If you are sure about the operation, please input it manually',
            inputOrSelect: 'Please select or enter',
            copyFailed: 'Copy failed',
            operatorHelper: 'Would you like to continue performing {1} operation on {0}?',
            notFound: 'Sorry, the page you requested does not exist.',
            unSupportType: 'Current file type is not supported!',
            unSupportSize: 'The uploaded file exceeds {0}M, please confirm!',
            fileExist: 'The file already exists in the current folder. Repeat uploading is not supported!',
            fileNameErr:
                'You can upload only files whose name contains 1 to 256 characters, including English, Chinese, digits, or periods (.-_)',
            confirmNoNull: 'Make sure the value {0} is not empty',
            errPort: 'Incorrect port information, please confirm!',
            remove: 'Remove',
            backupHelper: 'The current operation will back up {0}. Do you want to proceed?',
            recoverHelper: 'Restoring from {0} file. This operation is irreversible. Do you want to continue?',
            refreshSuccess: 'Refresh successful',
            rootInfoErr: "It's already the root directory",
            resetSuccess: 'Reset successful',
            creatingInfo: 'Creating, no need for this operation',
            installSuccess: 'Install successful',
            uninstallSuccess: 'Uninstall successful',
        },
        login: {
            username: 'Username',
            password: 'Password',
            welcome: 'Welcome back, please enter your username and password to log in!',
            errorAuthInfo: 'The user name or password you entered is incorrect, please re-enter!',
            errorMfaInfo: 'Incorrect authentication information, please try again!',
            captchaHelper: 'Captcha',
            errorCaptcha: 'Captcha code error!',
            notSafe: 'Access Denied',
            safeEntrance1: 'The secure login has been enabled in the current environment',
            safeEntrance2: 'Enter the following command on the SSH terminal to view the panel entry: 1pctl user-info',
            errIP1: 'Authorized IP address access is enabled in the current environment',
            errDomain1: 'Access domain name binding is enabled in the current environment',
            errHelper: 'To reset the binding information, run the following command on the SSH terminal: ',
            codeInput: 'Please enter the 6-digit verification code of the MFA validator',
            mfaTitle: 'MFA Certification',
            mfaCode: 'MFA verification code',
            title: 'Linux Server Management Panel',
            licenseHelper: '<Community License Agreement>',
            errorAgree: 'Click to agree to the Community Software License',
            logout: 'Logout',
            agreeTitle: 'Agreement',
            agreeContent:
                'In order to better protect your legitimate rights and interests, please read and agree to the following agreement &laquo; <a href = "https://www.fit2cloud.com/legal/licenses.html" target = "_blank" > Community License Agreement </a> &raquo;',
        },
        rule: {
            username: 'Please enter a username',
            password: 'Please enter a password',
            rePassword: 'The passwords are inconsistent. Please check and re-enter the password',
            requiredInput: 'Please enter the required fields',
            requiredSelect: 'Please select the required fields',
            illegalInput: 'There are illegal characters in the input box.',
            commonName:
                'Supports non-special characters starting with English, Chinese, numbers, .- and _, length 1-128',
            userName: 'Support English, Chinese, numbers and _ length 3-30',
            simpleName: 'Supports non-underscore starting, English, numbers, _, length 3-30',
            simplePassword: 'Supports non-underscore starting, English, numbers, _, length 1-30',
            dbName: 'Supports non-special character starting, including English, Chinese, numbers, .-_, with a length of 1-64',
            composeName:
                'Supports non-special characters at the beginning, lowercase letters, numbers, - and _, length 1-256',
            imageName: 'Support English, numbers, :@/.-_, length 1-256',
            volumeName: 'Support English, numbers, .-_, length 2-30',
            supervisorName: 'Supports non-special characters starting with English, numbers, - and _, length 1-128',
            complexityPassword:
                'Please enter a password combination with a length of 8-30 characters, including letters, numbers, and at least two special characters.',
            commonPassword: 'Please enter a password with more than 6 characters',
            linuxName: 'Length 1-128, the name cannot contain symbols such as {0}',
            email: 'Email format error',
            number: 'Please enter the correct number',
            integer: 'Please enter the correct positive integer',
            ip: 'Please enter the correct IP address',
            host: 'Enter the correct IP address or domain name',
            hostHelper: 'Support input of IP address or domain',
            port: 'Please enter the correct port',
            selectHelper: 'Please select the correct {0} file',
            domain: 'domain name format error',
            databaseName: 'Support English, numbers, _, length 1-30',
            ipErr: 'IP [{0}] format error, please check',
            numberRange: 'Number range: {0} - {1}',
            paramName: 'Support English, numbers, .- and _, length 2-30',
            paramComplexity:
                'Support English, numbers, {0}, length 6-128,Special characters cannot be at the beginning and end',
            paramUrlAndPort: 'The format is http(s)://(domain name/ip):(port)',
            nginxDoc: 'Only supports English case, numbers, and .',
            appName: 'Support English, numbers, - and _, length 2-30, and cannot start and end with -_',
            containerName: 'Supports letters, numbers, -, _ and .; cannot start with - _ or .; length: 2-128',
            mirror: 'The mirror acceleration address should start with http(s)://, support English letters (both uppercase and lowercase), numbers, . / and -, and should not contain blank lines.',
            disableFunction: 'Only support letters ,underscores,and,',
            leechExts: 'Only support letters, numbers and,',
            paramSimple: 'Support lowercase letters and numbers, length 1-128',
            filePermission: 'File Permission Error',
            formatErr: 'Format error, please check and retry',
            phpExtension: 'Only supports , _ lowercase English and numbers',
            paramHttp: 'Must start with http:// or https://',
            phone: 'The format of the phone number is incorrect',
        },
        res: {
            paramError: 'The request failed, please try again later!',
            forbidden: 'The current user has no permission',
            serverError: 'Service exception',
            notFound: 'The resource does not exist',
            commonError: 'The request failed',
        },
        service: {
            serviceNotStarted: 'The {0} service is not currently started',
        },
        status: {
            running: 'Running',
            done: 'Done',
            scanFailed: 'Incomplete',
            success: 'Success',
            waiting: 'Waiting',
            failed: 'Failed',
            stopped: 'Stopped',
            error: 'Error',
            created: 'Created',
            restarting: 'Restarting',
            uploading: 'Uploading',
            unhealthy: 'Unhealthy',
            removing: 'Removing',
            paused: 'Paused',
            exited: 'Exited',
            dead: 'Dead',
            installing: 'Installing',
            enabled: 'Enabled',
            disabled: 'Disabled',
            normal: 'Normal',
            building: 'Building',
            upgrading: 'Upgrading',
            rebuilding: 'ReBuilding',
            deny: 'Denied',
            accept: 'Accepted',
            used: 'Used',
            unused: 'Unused',
            starting: 'Starting',
            recreating: 'Recreating',
            creating: 'Creating',
            init: 'Waiting for application',
            ready: 'normal',
            applying: 'Applying',
            uninstalling: 'Uninstalling',
            lost: 'Lost Contact',
            bound: 'Bound',
            exceptional: 'Exceptional',
            free: 'Free',
            enable: 'Enabled',
            disable: 'Disabled',
            deleted: 'Deleted',
            downloading: 'Downloading',
            packing: 'Packing',
            sending: 'Sending',
            healthy: 'Normal',
            executing: 'Executing',
            installerr: 'Installation failed',
        },
        units: {
            second: 'Second',
            minute: 'Minute',
            hour: 'Hour',
            day: 'Day',
            week: 'Week',
            month: 'Month',
            year: 'Year',
            time: 'Time',
            core: 'Core',
            secondUnit: 's',
            minuteUnit: 'min',
            hourUnit: 'h',
            dayUnit: 'd',
            millisecond: 'ms',
        },
    },
    menu: {
        home: 'Overview',
        apps: 'App Store',
        website: 'Website',
        project: 'Project',
        config: 'Config',
        ssh: 'SSH Setting',
        firewall: 'Firewall',
        ssl: 'Certificate',
        database: 'Database',
        container: 'Container',
        cronjob: 'Cronjob',
        host: 'Host',
        security: 'Security',
        files: 'File',
        monitor: 'Monitor',
        terminal: 'Terminal',
        settings: 'Setting',
        toolbox: 'Toolbox',
        logs: 'Log',
        runtime: 'Runtime',
        processManage: 'Process',
        process: 'Process',
        network: 'Network',
        supervisor: 'Supervisor',
        name: 'Tamper Proof',
    },
    home: {
        recommend: 'recommend',
        dir: 'dir',
        restart_1panel: 'Restart Panel',
        restart_system: 'Restart Server',
        operationSuccess: 'Operation succeeded, rebooting, please refresh the browser manually later!',
        entranceHelper:
            'Enabling a secure entrance can help improve system security. If necessary, go to the Control Panel settings, select Security, and enable the secure entrance.',
        appInstalled: 'App',
        systemInfo: 'System info',
        hostname: 'Hostname',
        platformVersion: 'Platform version',
        kernelVersion: 'Kernel version',
        kernelArch: 'Kernel arch',
        network: 'Network',
        io: 'Disk IO',
        ip: 'Ip Addr',
        proxy: 'System Proxy',
        baseInfo: 'Base info',
        totalSend: 'Total send',
        totalRecv: 'Total recv',
        rwPerSecond: 'IO times',
        ioDelay: 'IO delay',
        uptime: 'Up Time',
        runningTime: 'Running Time',
        mem: 'System',
        swapMem: 'Swap Partition',

        runSmoothly: 'Run smoothly',
        runNormal: 'Run normal',
        runSlowly: 'Run slowly',
        runJam: 'Run Blockaged',

        core: 'Physical core',
        logicCore: 'Logic core',
        loadAverage: 'Average load in the last {0} minutes',
        load: 'Load',
        mount: 'Mount point',
        fileSystem: 'File system',
        total: 'Total',
        used: 'Used',
        free: 'Free',
        percent: 'Percent',
        goInstall: 'Go install',

        networkCard: 'NetworkCard',
        disk: 'Disk',
    },
    tabs: {
        more: 'More',
        hide: 'Hide',
        closeLeft: 'Close left',
        closeRight: 'Close right',
        closeCurrent: 'Close current',
        closeOther: 'Close other',
        closeAll: 'Close All',
    },
    header: {
        logout: 'Logout',
    },
    database: {
        manage: 'Management',
        deleteBackupHelper: 'Delete database backups simultaneously',
        delete: 'Delete operation cannot be rolled back, please input "',
        deleteHelper: '" to delete this database',
        create: 'Create',
        noMysql: 'Database service (MySQL or MariaDB)',
        noPostgresql: 'Database service Postgresql',
        goUpgrade: 'Go for upgrade',
        goInstall: 'Go for install',
        isDelete: 'Deleted',
        permission: 'Permission',
        permissionForIP: 'IP',
        permissionAll: 'All of them(%)',
        databaseConnInfo: 'Conn info',
        rootPassword: 'Root password',
        serviceName: 'Service Name',
        serviceNameHelper: 'Access between containers in the same network.',
        backupList: 'Backup',
        loadBackup: 'Import',
        remoteAccess: 'Remote Access',
        remoteHelper: 'Multiple IP comma-delimited, example: 172.16.10.111, 172.16.10.112',
        remoteConnHelper:
            'Remote connection to mysql as user root may have security risks. Therefore, perform this operation with caution.',
        changePassword: 'Password',
        changePasswordHelper:
            'The database has been associated with an application. Changing the password will change the database password of the application at the same time. The change takes effect after the application restarts.',

        confChange: 'Configuration',
        confNotFound:
            'The configuration file could not be found. Please upgrade the application to the latest version in the app store and try again!',

        portHelper:
            'This port is the exposed port of the container. You need to save the modification separately and restart the container!',

        loadFromRemote: 'Sync from Server',
        userBind: 'Bind User',
        pgBindHelper:
            'This operation is used to create a new user and bind it to the target database. Currently, selecting users already existing in the database is not supported.',
        pgSuperUser: 'Super User',
        loadFromRemoteHelper:
            'This action will synchronize the database info on the server to 1Panel, do you want to continue?',
        passwordHelper: 'Unable to retrieve, please modify',
        remote: 'Remote',
        remoteDB: 'Remote DB',
        createRemoteDB: 'Create Remote Server',
        unBindRemoteDB: 'Unbind remote server',
        unBindForce: 'Force unbind',
        unBindForceHelper: 'Ignore all errors during the unbinding process to ensure the final operation is successful',
        unBindRemoteHelper:
            'Unbinding the remote database will only remove the binding relationship and will not directly delete the remote database',
        editRemoteDB: 'Edit Remote Server',
        localDB: 'Local DB',
        address: 'DB address',
        version: 'DB version',
        userHelper: 'The root user or a database user with root privileges can access the remote database.',
        pgUserHelper: 'Database user with superuser privileges.',
        ssl: 'Use SSL',
        clientKey: 'Client Private Key',
        clientCert: 'Client Certificate',
        caCert: 'CA Certificate',
        hasCA: 'Has CA Certificate',
        skipVerify: 'Ignore Certificate Validity Check',

        formatHelper:
            'The current database character set is {0}, the character set inconsistency may cause recovery failure',
        selectFile: 'Select file',
        dropHelper: 'You can drag and drop the uploaded file here or',
        clickHelper: 'click to upload',
        supportUpType: 'Only sql, sql.gz, and tar.gz files are supported',
        zipFormat: 'tar.gz compressed package structure: test.tar.gz compressed package must contain test.sql',

        currentStatus: 'Current State',
        baseParam: 'Basic parameter',
        performanceParam: 'Performance parameter',
        runTime: 'Startup time',
        connections: 'Total connections',
        bytesSent: 'Send bytes',
        bytesReceived: 'Received bytes',
        queryPerSecond: 'Query per second',
        txPerSecond: 'Tx per second',
        connInfo: 'active/peak connections',
        connInfoHelper: 'If the value is too large, increase max_connections',
        threadCacheHit: 'Thread cache hit',
        threadCacheHitHelper: 'If it is too low, increase thread_cache_size',
        indexHit: 'Index hit',
        indexHitHelper: 'If it is too low, increase key_buffer_size',
        innodbIndexHit: 'Innodb index hit rate',
        innodbIndexHitHelper: 'If it is too low, increase innodb_buffer_pool_size',
        cacheHit: 'Querying the Cache Hit',
        cacheHitHelper: 'If it is too low, increase query_cache_size',
        tmpTableToDB: 'Temporary table to disk',
        tmpTableToDBHelper: 'If it is too large, try increasing tmp_table_size',
        openTables: 'Open tables',
        openTablesHelper: 'The configuration value of table_open_cache must be greater than or equal to this value',
        selectFullJoin: 'Select full join',
        selectFullJoinHelper: 'If the value is not 0, check whether the index of the data table is correct',
        selectRangeCheck: 'The number of joins with no index',
        selectRangeCheckHelper: 'If the value is not 0, check whether the index of the data table is correct',
        sortMergePasses: 'Number of sorted merges',
        sortMergePassesHelper: 'If the value is too large, increase sort_buffer_size',
        tableLocksWaited: 'Lock table number',
        tableLocksWaitedHelper: 'If the value is too large, consider increasing your database performance',

        performanceTuning: 'Performance Tuning',
        optimizationScheme: 'Optimization scheme',
        keyBufferSizeHelper: 'Buffer size for index',
        queryCacheSizeHelper: 'Query cache. If this function is disabled, set this parameter to 0',
        tmpTableSizeHelper: 'Temporary table cache size',
        innodbBufferPoolSizeHelper: 'Innodb buffer size',
        innodbLogBufferSizeHelper: 'Innodb log buffer size',
        sortBufferSizeHelper: '* connections, buffer size per thread sort',
        readBufferSizeHelper: '* connections, read buffer size',
        readRndBufferSizeHelper: '* connections, random read buffer size',
        joinBufferSizeHelper: '* connections, association table cache size',
        threadStackelper: '* connections, stack size per thread',
        binlogCacheSizeHelper: '* onnections, binary log cache size (multiples of 4096)',
        threadCacheSizeHelper: 'Thread pool size',
        tableOpenCacheHelper: 'Table cache',
        maxConnectionsHelper: 'Max connections',
        restart: 'Restart',

        slowLog: 'Slowlogs',
        noData: 'No slow log yet...',

        isOn: 'On',
        longQueryTime: 'threshold(s)',
        thresholdRangeHelper: 'Please enter the correct threshold (1 - 600).',

        timeout: 'Timeout',
        timeoutHelper: 'Idle connection timeout period. 0 indicates that the connection is on continuously',
        maxclients: 'Max clients',
        requirepassHelper:
            'Leave this blank to indicate that no password has been set. Changes need to be saved separately and the container restarted!',
        databases: 'Number of databases',
        maxmemory: 'Maximum memory usage',
        maxmemoryHelper: '0 indicates no restriction',
        tcpPort: 'Current listening port',
        uptimeInDays: 'Days in operation',
        connectedClients: 'Number of connected clients',
        usedMemory: 'Current memory usage of Redis',
        usedMemoryRss: 'Memory size requested from the operating system',
        usedMemoryPeak: 'Peak memory consumption of Redis',
        memFragmentationRatio: 'Memory fragmentation ratio',
        totalConnectionsReceived: 'Total number of clients connected since run',
        totalCommandsProcessed: 'The total number of commands executed since the run',
        instantaneousOpsPerSec: 'Number of commands executed by the server per second',
        keyspaceHits: 'The number of times a database key was successfully found',
        keyspaceMisses: 'Number of failed attempts to find the database key',
        hit: 'Find the database key hit ratio',
        latestForkUsec: 'The number of microseconds spent on the last fork() operation',
        redisCliHelper: 'redis-cli service not detected, please enable the service first!',
        redisQuickCmd: 'Redis quick command',

        recoverHelper: 'Data is about to be overwritten with [{0}]. Do you want to continue?',
        submitIt: 'Overwrite the data',

        baseConf: 'Basic configuration',
        allConf: 'All configuration',
        restartNow: 'Restart now',
        restartNowHelper1:
            'You need to restart the system after the configuration changes take effect. If your data needs to be persisted, perform the save operation first.',
        restartNowHelper: 'The modification takes effect only after the system restarts.',

        persistence: 'Persistence',
        rdbHelper1: 'In seconds, insert',
        rdbHelper2: 'The data',
        rdbHelper3: 'Meeting either condition triggers RDB persistence',
        rdbInfo: 'Ensure that the value in the rule list ranges from 1 to 100000',

        containerConn: 'Container Connection',
        connAddress: 'Address',
        containerConnHelper:
            'This connection address is used by applications running on the PHP execution environment/container installation.',
        remoteConn: 'External Connection',
        remoteConnHelper2: 'Use this address for non-container or external connections',
        localIP: 'Local IP',
    },
    container: {
        create: 'Create',
        createByCommand: 'Create by command',
        commandInput: 'Command input',
        commandRule: 'Please enter the correct docker run container creation command!',
        commandHelper: 'This command will be executed on the server to create the container. Do you want to continue?',
        edit: 'Edit container',
        updateHelper1: 'Detected that this container comes from the app store. Please note the following two points:',
        updateHelper2:
            '1. The current modifications will not be synchronized to the installed applications in the app store.',
        updateHelper3:
            '2. If you modify the application on the installed page, the currently edited content will become invalid.',
        updateHelper4:
            'Editing the container requires rebuilding, and any non-persistent data will be lost. Do you want to continue?',
        containerList: 'Container list',
        operatorHelper: '{0} will be performed on the following container, Do you want to continue?',
        operatorAppHelper:
            'The {0} operation will be performed on the following containers,\n some of which are from the App Store. This operation may affect the normal use of the service. \nDo you want to continue?',
        start: 'Start',
        stop: 'Stop',
        restart: 'Restart',
        kill: 'Kill',
        pause: 'Pause',
        unpause: 'Unpause',
        rename: 'Rename',
        remove: 'Remove',
        removeAll: 'Remove All',
        containerPrune: 'Prune',
        containerPruneHelper1: 'Cleaning containers will delete all containers that are in a stopped state.',
        containerPruneHelper2:
            'If the containers are from the app store, after performing the cleanup, you need to go to the [Installed] list in the [App Store] and click the [Rebuild] button to reinstall them.',
        containerPruneHelper3: 'This operation cannot be rolled back. Do you want to continue?',
        imagePrune: 'Prune',
        imagePruneSome: 'Clean unlabeled',
        imagePruneSomeEmpty: 'No image with the "none" tag is to be cleared',
        imagePruneSomeHelper: 'Clean the images with the tag "none" that are not used by any containers.',
        imagePruneAll: 'Clean unused',
        imagePruneAllEmpty: 'No unused images to be cleared',
        imagePruneAllHelper: 'Clean the images that are not used by any containers.',
        networkPrune: 'Prune',
        networkPruneHelper: 'Remove all unused networks. Do you want to continue?',
        volumePrune: 'Prune',
        volumePruneHelper: 'Remove all unused local volumes. Do you want to continue?',
        cleanSuccess: 'The operation is successful, the number of this cleanup: {0}!',
        cleanSuccessWithSpace:
            'The operation is successful. The number of disks cleared this time is {0}. The disk space freed is {1}!',
        unExposedPort: 'The current port mapping address is 127.0.0.1, which cannot enable external access.',
        upTime: 'UpTime',
        fetch: 'Fetch',
        lines: 'Lines',
        linesHelper: 'Please enter the correct number of logs to retrieve!',
        lastDay: 'Last Day',
        last4Hour: 'Last 4 Hours',
        lastHour: 'Last Hour',
        last10Min: 'Last 10 Minutes',
        cleanLog: 'Clean log',
        downLogHelper1: 'Are you sure you want to download all logs for container {0}?',
        downLogHelper2: 'Are you sure you want to download the recent {1} logs for container {0}?',
        cleanLogHelper:
            'Clearing logs requires restarting the container, and this operation cannot be rolled back. Do you want to continue?',
        newName: 'New name',
        workingDir: 'Working Dir',
        source: 'Resource Rate',
        cpuUsage: 'CPU Usage',
        cpuTotal: 'CPU Total',
        core: 'Core',
        memUsage: 'Memory Usage',
        memTotal: 'Memory Limit',
        memCache: 'Memory Cache',
        ip: 'IP address',
        cpuShare: 'CPU Share',
        cpuShareHelper:
            'The default CPU share for a container is 1024, which can be increased to give the container more CPU time.',
        inputIpv4: 'Please enter the IPv4 address',
        inputIpv6: 'Please enter the IPv6 address',

        containerFromAppHelper:
            'Detected that this container originates from the app store. App operations may cause current edits to be invalidated.',
        containerFromAppHelper1:
            'Click the [Param] button in the installed applications list to enter the editing page and modify the container name.',
        command: 'Command',
        console: 'Console Interaction',
        tty: 'TTY (-t)',
        openStdin: 'OpenStdin (-i)',
        custom: 'Custom',
        emptyUser: 'When empty, you will log in as  default',
        privileged: 'Privileged',
        privilegedHelper:
            'Allows the container to perform certain privileged operations on the host, which may increase container risks. Use with caution!',
        editComposeHelper:
            'Note: The environment variables set will be written to the 1panel.env file by default.\nIf you want to use these parameters in the container, you also need to manually add an env_file reference in the compose file.',

        upgradeHelper: 'Repository Name/Image Name: Image Version',
        upgradeWarning2:
            'The upgrade operation requires rebuilding the container, any unpersisted data will be lost. Do you wish to continue?',
        oldImage: 'Current Image',
        targetImage: 'Target Image',
        imageLoadErr: 'No image name detected for the container',
        appHelper: 'This container is sourced from the app store; upgrading might render the service unavailable',

        resource: 'Resource',
        input: 'Input',
        forcePull: 'forced image pull ',
        forcePullHelper: 'Ignore existing images on the server and pull again.',
        server: 'Host',
        serverExample: '80, 80-88, ip:80 or ip:80-88',
        containerExample: '80 or 80-88',
        exposePort: 'Expose port',
        exposeAll: 'Expose all',
        cmdHelper: 'e.g. nginx -g "daemon off;"',
        entrypointHelper: 'e.g. docker-entrypoint.sh',
        autoRemove: 'Auto remove',
        cpuQuota: 'NacosCPU',
        memoryLimit: 'Memory',
        limitHelper: 'If you limit it to 0, then the limitation is turned off, and the maximum available is {0}.',
        macAddr: 'MAC Address',
        mount: 'Mount',
        volumeOption: 'Volume',
        hostOption: 'Host',
        serverPath: 'Server path',
        containerDir: 'Container path',
        volumeHelper: 'Ensure that the content of the storage volume is correct',
        modeRW: 'RW',
        modeR: 'R',
        mode: 'Mode',
        env: 'Environment',
        restartPolicy: 'Restart policy',
        always: 'always',
        unlessStopped: 'unless-stopped',
        onFailure: 'on-failure（five times by default）',
        no: 'never',

        refreshTime: 'Refresh time',
        cache: 'Cache',

        image: 'Image',
        imagePull: 'Pull',
        imagePush: 'Push',
        imageDelete: 'Image delete',
        imageTagDeleteHelper: 'Remove other tags associated with this image ID',
        repoName: 'Repo Name',
        imageName: 'Image name',
        pull: 'Pull',
        path: 'Path',
        importImage: 'Import',
        build: 'Build',
        imageBuild: 'Build',
        pathSelect: 'Path',
        label: 'Label',
        imageTag: 'Image Tag',
        push: 'Push',
        fileName: 'FileName',
        export: 'Export',
        exportImage: 'Image export',
        size: 'Size',
        tag: 'Tag',
        tagHelper: 'one in a row, for example, \nkey1=value1\nkey2=value2',
        imageNameHelper: 'Image name and Tag, for example: nginx:latest',
        cleanBuildCache: 'Clean Build Cache',
        delBuildCacheHelper:
            'Cleaning the build cache will delete all cached artifacts generated during builds. This action cannot be undone. Continue?',
        urlWarning: 'The URL prefix does not need to include http:// or https://. Please modify.',

        network: 'Network',
        networkHelper:
            'Deleting the 1panel-network container network will affect the normal use of some applications and runtime environments. Do you want to continue?',
        createNetwork: 'Create',
        networkName: 'Name',
        driver: 'Driver',
        option: 'Option',
        attachable: 'Attachable',
        subnet: 'Subnet',
        scope: 'IP Scope',
        gateway: 'Gateway',
        auxAddress: 'Exclude IP',

        volume: 'Volume',
        volumeDir: 'Volume dir',
        nfsEnable: 'Enable NFS storage',
        nfsAddress: 'Address',
        mountpoint: 'Mountpoint',
        mountpointNFSHelper: 'e.g. /nfs, /nfs-share',
        options: 'Options',
        createVolume: 'Create',

        repo: 'Repo',
        createRepo: 'Add',
        httpRepo: 'The http repository needs to restart the docker service to add credit',
        delInsecure: 'Deletion of credit',
        delInsecureHelper: 'docker service needs to be restarted to delete the credit. Do you want to delete it?',
        downloadUrl: 'Download URL',
        imageRepo: 'Image repo',
        repoHelper: 'Does it include a mirror repository/organization/project?',
        auth: 'Auth',
        mirrorHelper:
            'If there are multiple mirrors, newlines must be displayed, for example:\nhttp://xxxxxx.m.daocloud.io \nhttps://xxxxxx.mirror.aliyuncs.com',
        registrieHelper:
            'If multiple private repositories exist, newlines must be displayed, for example:\n172.16.10.111:8081 \n172.16.10.112:8081',

        compose: 'Compose',
        fromChangeHelper: 'Switching the source will clear the current edited content. Do you want to continue?',
        composePathHelper: 'Config file save path: {0}',
        composeHelper:
            'The composition created through 1Panel editor or template will be saved in the {0}/docker/compose directory.',
        deleteFile: 'Delete file',
        allDelete: 'Permanently Delete',
        deleteComposeHelper:
            '1. Delete container orchestration records \n2. Delete all container orchestration files, including configuration and persistent files',
        deleteCompose: '"Delete this composition"',
        createCompose: 'Create',
        composeDirectory: 'Compose Directory',
        template: 'Template',
        composeTemplate: 'Compose template',
        createComposeTemplate: 'Create',
        content: 'Content',
        contentEmpty: 'Compose content cannot be empty, please enter and try again!',
        containerNumber: 'Container number',
        containerStatus: 'Container Status',
        exited: 'Exited',
        running: 'Running',
        composeDetailHelper:
            'The compose is created external to 1Panel. The start and stop operations are not supported.',
        composeOperatorHelper: '{1} operation will be performed on {0}. Do you want to continue?',
        composeDownHelper:
            'This will stop and remove all containers and networks under the {0} compose. Do you want to continue?',

        setting: 'Setting',
        goSetting: 'Go to edit',
        operatorStatusHelper: 'This action will {0} Docker service, do you want to continue?',
        dockerStatus: 'Docker Service',
        daemonJsonPathHelper: 'Ensure that the configuration path is the same as that specified in docker.service.',
        mirrors: 'Registry mirrors',
        mirrorsHelper:
            'The acceleration URL is preferred to perform operations. If this parameter is set to empty, mirror acceleration is disabled.',
        mirrorsHelper2: 'For details, see the official documents, ',
        registries: 'Insecure registries',
        ipv6Helper:
            'When enabling IPv6, you need to add an IPv6 container network. Refer to the official documentation for specific configuration steps.',
        ipv6CidrHelper: 'IPv6 address pool range for containers',
        ipv6TablesHelper: 'Automatic configuration of Docker IPv6 for iptables rules',
        experimentalHelper:
            'Enabling ip6tables requires this configuration to be turned on; otherwise, ip6tables will be ignored',
        cutLog: 'Log option',
        cutLogHelper1: 'The current configuration will only affect newly created containers.',
        cutLogHelper2: 'Existing containers need to be recreated for the configuration to take effect.',
        cutLogHelper3:
            'Please note that recreating containers may result in data loss. If your containers contain important data, make sure to backup before performing the rebuilding operation.',
        maxSize: 'Max-Size',
        maxFile: 'Max-File',
        liveHelper:
            'Allows the running container state to be preserved in case of unexpected shutdown or crash of the Docker daemon',
        liveWithSwarmHelper: 'live-restore daemon configuration is incompatible with swarm mode.',
        iptablesDisable: 'Close iptables',
        iptablesHelper1: 'Automatic configuration of iptables rules for Docker.',
        iptablesHelper2:
            'Disabling iptables will result in the containers being unable to communicate with external networks.',
        daemonJsonPath: 'Conf Path',
        serviceUnavailable: 'Docker service is not started at present, please click',
        startIn: ' to start',
        sockPath: 'Socket Path',
        sockPathHelper: 'Communication channel between Docker Daemon and the client',
        sockPathHelper1: 'Default Path: /var/run/docker-x.sock',
        sockPathMsg:
            'Saving the Socket Path setting may result in Docker service being unavailable. Do you want to continue?',
        sockPathErr: 'Please select or enter the correct Docker sock file path',
        related: 'Related',
        includeAppstore: 'Show app store container',

        cleanDockerDiskZone: 'Clean up disk space used by Docker',
        cleanImagesHelper: '( Clean up all images that are not used by any containers )',
        cleanContainersHelper: '( Clean up all stopped containers )',
        cleanVolumesHelper: '( Clean up all unused local volumes )',

        makeImage: 'Create Image',
        newImageName: 'New Image Name',
        commitMessage: 'Commit Message',
        author: 'Author',
        ifPause: 'Pause Container During Creation',
        ifMakeImageWithContainer: 'Create New Image from This Container?',
    },
    cronjob: {
        create: 'Create Cronjob',
        edit: 'Edit Cronjob',
        changeStatus: 'Change status',
        disableMsg:
            'Stopping the scheduled task will result in the task no longer automatically executing. Do you want to continue?',
        enableMsg:
            'Enabling the scheduled task will allow the task to automatically execute on a regular basis. Do you want to continue?',
        taskType: 'Type',
        nextTime: 'Next 5 executions',
        record: 'Records',
        shell: 'Shell',
        log: 'Backup Logs',
        logHelper: 'Backup System Log',
        ogHelper1: '1.1Panel System log ',
        logHelper2: '2. SSH login log of the server ',
        logHelper3: '3. All site logs ',
        containerCheckBox: 'In container (no need to enter the container command)',
        containerName: 'Container Name',
        ntp: 'Time Synchronization',
        ntp_helper: 'You can configure the NTP server on the Quick Setup page of the Toolbox.',
        app: 'Backup App',
        website: 'Backup Website',
        rulesHelper:
            'When there are multiple compression exclusion rules, they need to be displayed with line breaks. For example: \n*.log \n*.sql',
        lastRecordTime: 'Last Execution',
        all: 'All',
        failedRecord: 'Failed Records',
        successRecord: 'Successful Records',
        database: 'Backup Database',
        missBackupAccount: 'The backup account could not be found',
        syncDate: 'Synchronization time ',
        clean: 'Cache Clean',
        curl: 'Access URL',
        taskName: 'Name',
        cronSpec: 'Lifecycle',
        cronSpecHelper: 'Enter the correct execution period',
        cleanHelper:
            'This operation records all job execution records, backup files, and log files. Do you want to continue?',
        backupContent: 'Backup Content',
        directory: 'Backup Directory / File',
        sourceDir: 'Backup Directory',
        snapshot: 'System Snapshot',
        allOptionHelper:
            'The current task plan is to back up all [{0}]. Direct download is not supported at the moment. You can check the backup list of [{0}] menu.',
        exclusionRules: 'Exclusive rule',
        exclusionRulesHelper: 'The exclusion rules will apply to all compression operations of this backup.',
        default_download_path: 'Default Download Link',
        saveLocal: 'Retain local backups (the same as the number of cloud storage copies)',
        url: 'URL Address',
        targetHelper: 'Backup accounts are maintained in panel settings.',
        retainCopies: 'Retain Copies',
        retainCopiesHelper: 'Number of copies to retain for execution records and logs',
        retainCopiesHelper1: 'Number of copies to retain for backup files',
        retainCopiesUnit: ' copies (View)',
        cronSpecRule: 'The execution period format in line {0} is incorrect. Please check and try again!',
        cronSpecRule2: 'Execution period format is incorrect, please check and try again!',
        perMonthHelper: 'Execute on the {0} day of every month at {1}:{2}',
        perWeekHelper: 'Execute every week on {0} at {1}:{2}',
        perDayHelper: 'Execute every day at {0}:{1}',
        perHourHelper: 'Execute every hour at {0} minutes',
        perNDayHelper: 'Execute every {0} days at {1}:{2}',
        perNHourHelper: 'Execute every {0} hours at {1}',
        perNMinuteHelper: 'Execute every {0} minutes',
        perNSecondHelper: 'Execute every {0} seconds',
        perMonth: 'Every monthly',
        perWeek: 'Every week',
        perHour: 'Every hour',
        perNDay: 'Every N days',
        perDay: 'Every days',
        perNHour: 'Every N hours',
        perNMinute: 'Every N minutes',
        perNSecond: 'Every N seconds',
        day: 'Day',
        monday: 'Monday',
        tuesday: 'Tuesday',
        wednesday: 'Wednesday',
        thursday: 'Thursday',
        friday: 'Friday',
        saturday: 'Saturday',
        sunday: 'Sunday',
        shellContent: 'Script',
        executor: 'Executor',
        errRecord: 'Incorrect logging',
        errHandle: 'Cronjob execution failure',
        noRecord: 'The execution did not generate any logs',
        cleanData: 'Clean data',
        cleanDataHelper: 'Delete the backup file generated during this task.',
        noLogs: 'No task output yet...',
        errPath: 'Backup path [{0}] error, cannot download!',
        cutWebsiteLog: 'Cut Website Log',
        cutWebsiteLogHelper: 'The cut log files will be backed up to the backup directory of 1Panel',

        requestExpirationTime: 'Upload Request Expiration Time（Hours）',
        unitHours: 'Unit: Hours',
        alertTitle: 'Planned Task - {0} 「{1}」 Task Failure Alert',
    },
    monitor: {
        globalFilter: 'Global Filter',
        enableMonitor: 'Enable',
        storeDays: 'Expiration days',
        defaultNetwork: 'Default Network Adapter',
        defaultNetworkHelper: 'Network adapter option displayed in the default monitoring and overview interface',
        cleanMonitor: 'Clearing monitoring records',

        avgLoad: 'Average load',
        loadDetail: 'Load detail',
        resourceUsage: 'Resource utilization rate',
        networkCard: 'NetworkCard',
        read: 'Read',
        write: 'Write',
        readWriteCount: 'Read or write Times',
        readWriteTime: 'Read or write delay',
        today: 'Today',
        yesterday: 'Yesterday',
        lastNDay: 'Last {0} day',
        lastNMonth: 'Last {0} months',
        lastHalfYear: 'Last half year',
        memory: 'Memory',
        cache: 'Cache',
        disk: 'Disk',
        network: 'Network',
        up: 'Up',
        down: 'Down',
        interval: 'Interval(min)',

        gpuUtil: 'GPU Utilization',
        temperature: 'Temperature',
        performanceState: 'Performance State',
        powerUsage: 'Power Usage',
        memoryUsage: 'Memory Usage',
        fanSpeed: 'Fan Speed',
    },
    terminal: {
        local: 'Local',
        localHelper: 'The `local` name is used only for system local identification',
        connLocalErr: 'Unable to automatically authenticate, please fill in the local server login information!',
        testConn: 'Test connection',
        saveAndConn: 'Save and Connect',
        connTestOk: 'Connection information available',
        connTestFailed: 'Connection unavailable, please check connection information!',
        host: 'Host',
        createConn: 'New connection',
        noHost: 'No host',
        groupChange: 'Change group',
        expand: 'Expand all',
        fold: 'All contract',
        batchInput: 'Batch input',
        quickCommand: 'Quick Command',
        quickCommandHelper: 'Frequently used command list for quick selection at the bottom of the terminal interface',
        groupDeleteHelper:
            'After the group is removed, all connections in the group will be migrated to the default group. Do you want to continue?',
        command: 'Command',
        quickCmd: 'Quick Command',
        addHost: 'Add Host',
        localhost: 'Localhost',
        ip: 'Address',
        authMode: 'Auth Mode',
        passwordMode: 'Password',
        rememberPassword: 'Remember Authentication Information',
        keyMode: 'PrivateKey',
        key: 'Private key',
        keyPassword: 'Private key password',
        emptyTerminal: 'No terminal is currently connected',
        lineHeight: 'Line Height',
        letterSpacing: 'Letter Spacing',
        fontSize: 'Font Size',
        cursorBlink: 'Cursor Blink',
        cursorStyle: 'Cursor Style',
        cursorUnderline: 'Underline',
        cursorBlock: 'Block',
        cursorBar: 'Bar',
        scrollback: 'Scrollback',
        scrollSensitivity: 'Scroll Sensitivity',
        saveHelper: 'Are you sure you want to save the current terminal configuration?',
    },
    toolbox: {
        swap: {
            swap: 'Swap Partition',
            swapHelper1:
                'The size of the swap should be 1 to 2 times the physical memory, adjustable based on specific requirements;',
            swapHelper2:
                'Before creating a swap file, ensure that the system disk has sufficient available space, as the swap file size will occupy the corresponding disk space;',
            swapHelper3:
                'Swap can help alleviate memory pressure, but it is only an alternative. Excessive reliance on swap may lead to a decrease in system performance. It is recommended to prioritize increasing memory or optimizing application memory usage;',
            swapHelper4: 'It is advisable to regularly monitor the usage of swap to ensure normal system operation.',
            swapDeleteHelper:
                'This operation will remove the Swap partition {0}. For system security reasons, the corresponding file will not be automatically deleted. If deletion is required, please proceed manually!',
            saveHelper: 'Please save the current settings first!',
            saveSwap:
                'Saving the current configuration will adjust the Swap partition {0} size to {1}. Do you want to continue?',
            swapMin: 'The minimum partition size is 40 KB. Please modify and try again!',
            swapMax: 'The maximum value for partition size is {0}. Please modify and try again!',
            swapOff: 'The minimum partition size is 40 KB. Setting it to 0 will disable the Swap partition.',
        },
        device: {
            dnsHelper: 'Server Address Domain Resolution',
            dnsAlert:
                'Attention! Modifying the configuration of /etc/resolv.conf file will restore the file to its default values after system restart.',
            dnsHelper1:
                'When there are multiple DNS entries, they should be displayed on new lines. e.g.\n114.114.114.114\n8.8.8.8',
            hostsHelper: 'Hostname Resolution',
            hosts: 'Domain',
            hostAlert: 'Hidden commented records, please click the All configuration button to view or set',
            toolbox: 'Quick Setup',
            hostname: 'Hostname',
            passwd: 'System Password',
            passwdHelper: 'Input characters cannot include $ and &',
            timeZone: 'Time Zone',
            localTime: 'Server Time',
            timeZoneChangeHelper: 'Modifying the system time zone requires restarting the service. Continue?',
            timeZoneHelper:
                'Time zone modification depends on the timedatectl command. If not installed, the modification may fail.',
            timeZoneCN: 'Beijing',
            timeZoneAM: 'Los Angeles',
            timeZoneNY: 'New York',
            ntpALi: 'Alibaba',
            ntpGoogle: 'Google',
            syncSite: 'NTP Server',
            hostnameHelper:
                'Hostname modification depends on the hostnamectl command. If not installed, the modification may fail.',
            userHelper:
                'The username depends on the whoami command for retrieval. If not installed, retrieval may fail.',
            passwordHelper:
                'Password modification depends on the chpasswd command. If not installed, the modification may fail.',
            hostHelper:
                'There is an empty value in the provided content. Please check and try again after modification!',
            dnsCheck: 'Test Availability',
            dnsOK: 'DNS configuration information is available!',
            dnsTestFailed: 'DNS configuration information is not available. Please modify and try again!',
        },
        fail2ban: {
            sshPort: 'Listen to SSH Port',
            sshPortHelper: 'Current Fail2ban listens to the SSH connection port of the host',
            noFail2ban: 'Fail2ban service not detected, please refer to the official documentation for installation!',
            unActive: 'The Fail2ban service is not enabled at present, please enable it first!',
            operation: 'Perform [{0}] operation on Fail2ban service, continue?',
            fail2banChange: 'Fail2ban Configuration Modification',
            ignoreHelper: 'The IP list in the whitelist will be ignored for blocking, continue?',
            bannedHelper: 'The IP list in the blacklist will be blocked by the server, continue?',
            maxRetry: 'Maximum Retry Attempts',
            banTime: 'Ban Time',
            banTimeHelper: 'Default ban time is 10 minutes, -1 indicates permanent ban',
            banTimeRule: 'Please enter a valid ban time or -1',
            banAllTime: 'Permanent Ban',
            findTime: 'Discovery Period',
            banAction: 'Ban Action',
            banActionOption: 'Ban specified IP addresses using {0}',
            allPorts: ' (All Ports)',
            ignoreIP: 'IP Whitelist',
            bannedIP: 'IP Blacklist',
            logPath: 'Log Path',
            logPathHelper: 'Default is /var/log/secure or /var/log/auth.log',
        },
        ftp: {
            ftp: 'FTP Account',
            notStart: 'FTP service is currently not running, please start it first!',
            noFtp: 'FTP (pure-ftpd) service not detected, please refer to the official documentation for installation!',
            operation: 'Perform [{0}] operation on FTP service, continue?',
            noPasswdMsg: 'Can not get the current FTP account password, please set the password and try again! ',
            enableHelper:
                'Enabling the selected FTP account will restore its access permissions. Do you want to continue?',
            disableHelper:
                'Disabling the selected FTP account will revoke its access permissions. Do you want to continue?',
            syncHelper: 'Sync FTP account data between server and database. Do you want to continue?',
        },
        clam: {
            clam: 'Virus Scan',
            cron: 'Scheduled scan',
            cronHelper: 'Professional version supports scheduled scan feature',
            specErr: 'Execution schedule format error, please check and retry!',
            disableMsg:
                'Stopping scheduled execution will prevent this scan task from running automatically. Do you want to continue?',
            enableMsg:
                'Enabling scheduled execution will allow this scan task to run automatically at regular intervals. Do you want to continue?',
            showFresh: 'Show Virus Database Service',
            hideFresh: 'Hide Virus Database Service',
            clamHelper:
                'The minimum recommended configuration for ClamAV is: 3 GiB of RAM or more, single-core CPU with 2.0 GHz or higher, and at least 5 GiB of available hard disk space.',
            noClam: 'ClamAV service not detected, please refer to the official documentation for installation!',
            notStart: 'ClamAV service is currently not running, please start it first!',
            removeRecord: 'Delete Report Files',
            removeResultHelper: 'Delete report files generated during task execution to free up storage space.',
            removeInfected: 'Delete Virus Files',
            removeInfectedHelper:
                'Delete virus files detected during the task to ensure server security and normal operation.',
            clamCreate: 'Create Scan Rules',
            infectedStrategy: 'Infected Strategy',
            removeHelper: 'Delete virus files, choose carefully!',
            move: 'Move',
            moveHelper: 'Move virus files to specified directory',
            copyHelper: 'Copy virus files to specified directory',
            none: 'Do Nothing',
            noneHelper: 'Take no action on virus files',
            scanDir: 'Scan Directory',
            infectedDir: 'Infected Directory',
            scanDate: 'Scan Date',
            scanResult: 'Scan log tail',
            tail: 'Lines',
            infectedFiles: 'Infected Files',
            log: 'Details',
            clamConf: 'Scan Configuration',
            clamLog: 'Scan Logs',
            freshClam: 'Update Virus Definitions',
            freshClamLog: 'Update Virus Definitions Logs',
            alertHelper: 'Professional version supports scheduled scan and SMS alert',
            alertTitle: 'Virus scan task 「{0}」 detected infected file alert',
        },
    },
    logs: {
        panelLog: 'Panel Logs',
        operation: 'Operation Logs',
        login: 'Login Logs',
        loginIP: 'Login IP',
        loginAddress: 'Login Address',
        loginAgent: 'Login Agent',
        loginStatus: 'Status',
        system: 'System Logs',
        deleteLogs: 'Clearing Logs',
        resource: 'Resource',
        detail: {
            groups: 'Group',
            hosts: 'Host',
            apps: 'App',
            websites: 'Website',
            containers: 'Container',
            files: 'File Manage',
            runtimes: 'Runtime',
            process: 'Process',
            toolbox: 'Toolbox',
            tampers: 'Tamper',
            xsetting: 'Interface Settings',
            logs: 'Panel Logs',
            settings: 'Panel Setting',
            cronjobs: 'Cronjob',
            databases: 'Database',
        },
        websiteLog: 'Website Logs',
        runLog: 'Run Log',
        errLog: 'Err Log',
        task: 'Task Log',
        taskName: 'Task Name',
        taskRunning: 'Running',
    },
    file: {
        dir: 'Folder',
        fileName: 'File name',
        search: 'Find',
        mode: 'Permission',
        owner: 'Owner',
        file: 'File',
        remoteFile: 'Remote Download',
        share: 'Share',
        sync: 'Data Synchronization',
        size: 'Size',
        updateTime: 'Modification Time',
        rename: 'Rename',
        role: 'Permission',
        info: 'Attribute',
        linkFile: 'Soft link',
        shareList: 'Share list',
        zip: 'Compressed',
        group: 'Group',
        path: 'Path',
        public: 'Public',
        setRole: 'Set permissions',
        link: 'Whether to link',
        rRole: 'Read',
        wRole: 'Write',
        xRole: 'Executable',
        name: 'Name',
        compress: 'Compress',
        deCompress: 'Decompress',
        compressType: 'Compress format',
        compressDst: 'Compress path',
        replace: 'Overwrite existing files',
        compressSuccess: 'Compressed successfully',
        deCompressSuccess: 'Decompress succeeded',
        deCompressDst: 'Decompress path',
        linkType: 'Link Type',
        softLink: 'Soft link',
        hardLink: 'Hard link',
        linkPath: 'Link Path',
        selectFile: 'Select file',
        downloadUrl: 'Download URL',
        downloadStart: 'Download start!',
        moveSuccess: 'Move success',
        copySuccess: 'Copy success',
        move: 'Move',
        calculate: 'Calculate',
        canNotDeCompress: 'Cannot decompress this file',
        uploadSuccess: 'Upload successful!',
        downloadProcess: 'Download progress',
        downloading: 'Downloading...',
        infoDetail: 'File Properties',
        list: 'File List',
        sub: 'Subdirectory',
        downloadSuccess: 'Download Success',
        theme: 'Theme',
        language: 'Language',
        eol: 'End Of Line',
        copyDir: 'Copy Dir',
        paste: 'Paste',
        changeOwner: 'Modify user and user group',
        containSub: 'Modify sub-file attributes at the same time',
        ownerHelper:
            'The default user of the PHP operating environment: the user group is 1000:1000, it is normal that the users inside and outside the container show inconsistencies',
        searchHelper: 'Support wildcards such as *',
        uploadFailed: '[{0}] File Upload file',
        fileUploadStart: 'Uploading [{0}]....',
        currentSelect: 'Current Select: ',
        unsupportedType: 'Unsupported file type',
        deleteHelper:
            'Are you sure you want to delete the following files? By default, it will enter the recycle bin after deletion',
        fileHelper: 'Note: 1. Search results do not support sorting. 2. Folders cannot be sorted by size.',
        forceDeleteHelper: 'Permanently delete the file (without entering the recycle bin, delete it directly)',
        recycleBin: 'Recycle Bin',
        sourcePath: 'Original path',
        deleteTime: 'Delete time',
        confirmReduce: 'Are you sure you want to restore the following files?',
        reduceSuccess: 'Restore successful',
        reduce: 'Reduction',
        reduceHelper:
            'If a file or directory with the same name exists in the original path, it will be overwritten. Do you want to continue?',
        clearRecycleBin: 'Clear',
        clearRecycleBinHelper: 'Do you want to clear the Recycle Bin?',
        favorite: 'Favorites',
        removeFavorite: 'Remove from Favorites?',
        addFavorite: 'Add to Davorites',
        clearList: 'Clear list',
        deleteRecycleHelper: 'Are you sure you want to permanently delete the following files?',
        typeErrOrEmpty: '[{0}] file type is wrong or empty folder',
        dropHelper: 'Drag the files you want to upload here',
        fileRecycleBin: 'Enable Recycle Bin',
        fileRecycleBinMsg: '{0} recycle Bin',
        wordWrap: 'Automatically wrap',
        deleteHelper2:
            'Are you sure you want to delete the selected file? The deletion operation cannot be rolled back',
        ignoreCertificate: 'Ignore Certificate',
        ignoreCertificateHelper:
            'Ignoring untrusted certificates during downloads may lead to data leakage or tampering. Please use this option with caution, only when trusting the download source.',
        uploadOverLimit: 'The number of files exceeds 1000! Please compress and upload',
        clashDitNotSupport: 'File names are prohibited from containing .1panel_clash',
        clashDeleteAlert: 'The Recycle Bin folder cannot be deleted',
        clashOpenAlert: 'Please click the [Recycle Bin] button to open the recycle bin directory',
        right: 'Forward',
        back: 'Back',
        top: 'Go Back',
        up: 'Go back',
        openWithVscode: 'Open with VS Code',
        vscodeHelper: 'Please make sure that VS Code is installed locally and the SSH Remote plugin is configured',
        saveContentAndClose: 'The file has been modified, do you want to save and close it?',
        saveAndOpenNewFile: 'The file has been modified, do you want to save and open the new file?',
        noEdit: 'The file has not been modified, no need to do this!',
        noNameFolder: 'Untitled Folder',
        noNameFile: 'Untitled File',
        minimap: 'Code Mini Map',
        fileCanNotRead: 'File can not read',
        panelInstallDir: '1Panel installation directory cannot be deleted',
    },
    ssh: {
        autoStart: 'Auto Start',
        enable: 'Enable Autostart',
        disable: 'Disable Autostart',
        sshAlert:
            'The list data is sorted based on login time, but please note that changing time zones or other operations may cause deviations in the time of login logs.',
        sshAlert2:
            'You can use Fail2ban in the toolbox to block IP addresses attempting brute force attacks, thus enhancing the security of the host.',
        sshOperate: 'Operation [{0}] on the SSH service is performed. Do you want to continue?',
        sshChange: 'SSH Setting',
        sshChangeHelper: 'This action changed {0} to [{1}]. Do you want to continue?',
        sshFileChangeHelper:
            'Modifying the configuration file may cause service availability. Exercise caution when performing this operation. Do you want to continue?',
        portHelper: 'Specifies the port number monitored by the SSH service. The default port number is 22.',
        listenAddress: 'Listening address',
        allV4V6: '0.0.0.0:{0}(IPv4) and :::{0}(IPv6)',
        listenHelper:
            'Canceling IPv4 and IPv6 settings simultaneously will listen on both 0.0.0.0:{0}(IPv4) and :::{0}(IPv6)',
        addressHelper: 'Specify the IP address on which the SSH service will listen',
        permitRootLogin: 'root user',
        rootSettingHelper: 'The default login mode is SSH for user root.',
        rootHelper1: 'Allow SSH login',
        rootHelper2: 'Disable SSH login',
        rootHelper3: 'Only key login is allowed',
        rootHelper4: 'Only predefined commands can be executed. No other operations can be performed.',
        passwordAuthentication: 'Password auth',
        pwdAuthHelper: 'Whether to enable password authentication. This parameter is enabled by default.',
        pubkeyAuthentication: 'Key auth',
        key: 'Key',
        password: 'Password',
        pubkey: 'Key info',
        encryptionMode: 'Encryption mode',
        passwordHelper: 'Can contain 6 to 10 digits and English cases',
        generate: 'Generate key',
        reGenerate: 'Regenerate key',
        keyAuthHelper: 'Whether to enable key authentication. This parameter is enabled by default.',
        useDNS: 'useDNS',
        dnsHelper:
            'Controls whether the DNS resolution function is enabled on the SSH server to verify the identity of the connection.',
        analysis: 'Statistical information',
        denyHelper:
            "Performing a 'deny' operation on the following addresses. After setting, the IP will be prohibited from accessing the server. Do you want to continue?",
        acceptHelper:
            "Performing an 'accept' operation on the following addresses. After setting, the IP will regain normal access. Do you want to continue?",
        noAddrWarning: 'No [{0}] addresses are currently selected. Please check and try again!',
        loginLogs: 'Login Logs',
        loginMode: 'Mode',
        authenticating: 'Key',
        publickey: 'Key',
        belong: 'Belong',
        local: 'Local',
        session: 'Session',
        loginTime: 'Login Time',
        loginIP: 'Login IP',
        stopSSHWarn: 'Whether to disconnect this SSH connection',
    },
    setting: {
        panel: 'Panel',
        user: 'Panel User',
        userChange: 'Change Panel User',
        userChangeHelper: 'Changing the panel user will log you out. Continue?',
        passwd: 'Panel Password',
        emailHelper: 'For password retrieval',
        title: 'Panel Alias',
        panelPort: 'Panel Port',
        titleHelper:
            'Supports a length of 3 to 30 characters, including English letters, Chinese characters, numbers, spaces, and common special characters',
        portHelper:
            'The recommended port range is 8888 to 65535. Note: If the server has a security group, permit the new port from the security group in advance',
        portChange: 'Port change',
        portChangeHelper: 'Modify the service port and restart the service. Do you want to continue?',
        theme: 'Theme',
        menuTabs: 'Menu tabs',
        dark: 'Dark',
        darkGold: 'Dark Gold',
        light: 'Light',
        auto: 'Follow System',
        language: 'Language',
        languageHelper:
            'By default, it follows the browser language. This parameter takes effect only on the current browser',
        sessionTimeout: 'Timeout',
        sessionTimeoutError: 'The minimum timeout is 300 seconds',
        sessionTimeoutHelper:
            'If you do not operate the panel for more than {0} seconds, the panel automatically logs out',
        systemIP: 'System Address',
        proxy: 'Server Proxy',
        proxyHelper: 'After setting up the proxy server, it will be effective in the following scenarios:',
        proxyHelper1: 'Downloading and synchronizing installation packages from the app store (Professional)',
        proxyHelper2: 'System version upgrades and retrieving update information (Professional)',
        proxyHelper3: 'Verification and synchronization of system licenses',
        proxyHelper4: 'Docker network access will be done through a proxy server (Professional)',
        proxyType: 'Proxy Type',
        proxyUrl: 'Proxy Address',
        proxyPort: 'Proxy Port',
        proxyPasswdKeep: 'Remember Password',
        proxyDocker: 'Docker Proxy',
        proxyDockerHelper:
            'Synchronize proxy server configuration to Docker, support offline server image pulling and other operations',
        apiInterface: 'API Interface',
        apiInterfaceClose: 'Once closed, API interfaces cannot be accessed. Do you want to continue?',
        apiInterfaceHelper: 'Provide panel support for API interface access',
        apiInterfaceAlert1:
            'Please do not enable it in production environments as it may increase server security risks',
        apiInterfaceAlert2:
            'Please do not use third-party applications to call the panel API to prevent potential security threats.',
        apiInterfaceAlert3: 'API Docs',
        apiInterfaceAlert4: 'Usage Docs',
        apiKey: 'API Key',
        apiKeyHelper: 'Interface key is used for external applications to access API interfaces',
        ipWhiteList: 'IP Whitelist',
        ipWhiteListEgs:
            'When there are multiple IPs, line breaks are required for display, for example:  \n172.161.10.111  \n172.161.10.0/24 ',
        ipWhiteListHelper: 'IPs must be in the IP whitelist list to access the panel API interface',
        apiKeyValidityTime: 'Validity period of interface key',
        apiKeyValidityTimeEgs: 'Validity period of interface key (in minutes)',
        apiKeyValidityTimeHelper:
            'The interface timestamp is valid if its difference from the current timestamp (in minutes) is within the allowed range. A value of 0 disables verification.',
        apiKeyReset: 'Interface key reset',
        apiKeyResetHelper: 'the associated key service will become invalid. Please add a new key to the service',
        confDockerProxy: 'Configure Docker Proxy',
        restartNowHelper: 'Configuring Docker proxy requires restarting the Docker service.',
        restartNow: 'Restart immediately',
        systemIPWarning: 'The server address is not currently set. Please set it in the control panel first!',
        systemIPWarning1: 'The current server address is set to {0}, and quick redirection is not possible!',
        syncTime: 'Server Time',
        timeZone: 'Time Zone',
        timeZoneChangeHelper: 'Changing the time zone requires restarting the service. Do you want to continue?',
        timeZoneHelper:
            'Timezone modification depends on the system timedatectl service. take effect after restart the 1Panel service.',
        timeZoneCN: 'Bei Jing',
        timeZoneAM: 'Los Angeles',
        timeZoneNY: 'New York',
        ntpALi: 'Alibaba',
        ntpGoogle: 'Google',
        syncSite: 'Ntp Server',
        syncSiteHelper:
            'This operation will use {0} as the source for system time synchronization. Do you want to continue?',
        changePassword: 'Password change',
        oldPassword: 'Original password',
        newPassword: 'New password',
        retryPassword: 'Confirm password',
        noSpace: 'Input information cannot include space characters',
        duplicatePassword: 'The new password cannot be the same as the original password, please re-enter!',
        diskClean: 'Cache Clean',
        developerMode: 'Preview Experience Program',
        developerModeHelper: 'Get a preview version of 1Panel to provide feedback on new features and updates',

        thirdParty: 'Third-party Account',
        scope: 'Scope',
        public: 'Public',
        publicHelper:
            'Public type backup accounts will be synchronized to each sub-node, and sub-nodes can use them together',
        private: 'Private',
        privateHelper:
            'Private type backup accounts are only created on the current node and are for the use of the current node only',
        noTypeForCreate: 'No backup type is currently created',
        LOCAL: 'Server Disks',
        OSS: 'Ali OSS',
        S3: 'Amazon S3',
        mode: 'Mode',
        MINIO: 'MINIO',
        SFTP: 'SFTP',
        WebDAV: 'WebDAV',
        WebDAVAlist: 'WebDAV connect Alist can refer to the official documentation',
        UPYUN: 'UPYUN',
        ALIYUN: 'Aliyun Drive',
        ALIYUNHelper:
            'The current maximum limit for non-client downloads on Aliyun Drive is 100 MB. Exceeding this limit requires downloading through the client.',
        ALIYUNRecover:
            'The current maximum limit for non-client downloads on Aliyun Drive is 100 MB. Exceeding this limit requires downloading through the client to the local device, then synchronizing the snapshot for recovery.',
        GoogleDrive: 'Google Drive',
        analysis: 'Analysis',
        analysisHelper:
            'Paste the entire token content to automatically parse the required parts. For specific operations, please refer to the official documentation.',
        serviceName: 'Service Name',
        operator: 'Operator',
        OneDrive: 'Microsoft OneDrive',
        isCN: 'Century Internet',
        isNotCN: 'International Version',
        client_id: 'Client ID',
        client_secret: 'Client Secret',
        redirect_uri: 'Redirect URL',
        onedrive_helper: 'Custom configuration can be referred to in the official documentation',
        clickToRefresh: 'Click to refresh',
        refreshTime: 'Token Refresh Time',
        refreshStatus: 'Token Refresh Status',
        backupDir: 'Backup Dir',
        codeWarning: 'The current authorization code format is incorrect, please confirm again!',
        code: 'Auth code',
        codeHelper:
            'Please click on the "Acquire" button, then login to {0} and copy the content after "code" in the redirected link. Paste it into this input box. For specific instructions, please refer to the official documentation.',
        loadCode: 'Acquire',
        COS: 'Tencent COS',
        ap_beijing_1: 'Beijing Zone 1',
        ap_beijing: 'Beijing',
        ap_nanjing: 'Nanjing',
        ap_shanghai: 'Shanghai',
        ap_guangzhou: 'Guangzhou',
        ap_chengdu: 'Chengdu',
        ap_chongqing: 'Chongqing',
        ap_shenzhen_fsi: 'Shenzhen Financial',
        ap_shanghai_fsi: 'Shanghai Financial',
        ap_beijing_fsi: 'Beijing Financial',
        ap_hongkong: 'Hong Kong, China',
        ap_singapore: 'Singapore',
        ap_mumbai: 'Mumbai',
        ap_jakarta: 'Jakarta',
        ap_seoul: 'Seoul',
        ap_bangkok: 'Bangkok',
        ap_tokyo: 'Tokyo',
        na_siliconvalley: 'Silicon Valley (US West)',
        na_ashburn: 'Ashburn (US East)',
        na_toronto: 'Toronto',
        sa_saopaulo: 'Sao Paulo',
        eu_frankfurt: 'Frankfurt',
        KODO: 'Qiniu Kodo',
        scType: ' Storage Type',
        typeStandard: 'Standard',
        typeStandard_IA: 'Standard_IA',
        typeArchive: 'Archive',
        typeDeep_Archive: 'Deep_Archive',
        scStandard:
            'Standard Storage is suitable for business scenarios with a large number of hot files that require real-time access, frequent data interaction, and so on.',
        scStandard_IA:
            'Low-frequency storage is suitable for business scenarios with relatively low access frequency, and stores data for at least 30 days.',
        scArchive: 'Archival storage is suitable for business scenarios with extremely low access frequency.',
        scDeep_Archive: 'Durable cold storage is suitable for business scenarios with extremely low access frequency.',
        archiveHelper:
            'Archival storage files cannot be downloaded directly and must first be restored through the corresponding cloud service provider`s website. Please use with caution!',
        backupAlert:
            "In theory, as long as the cloud provider is compatible with the S3 protocol, existing Amazon S3 cloud storage can be used for backup. For specific configurations, please refer to the <a target=“_blank” href='https://1panel.cn/docs/user_manual/settings/#3'>official documentation.</a> ",
        domain: 'Accelerate domain',
        backupAccount: 'Backup Account',
        loadBucket: 'Get bucket',
        accountName: 'Account name',
        accountKey: 'Account key',
        address: 'Address',
        path: 'Path',

        safe: 'Security',
        bindInfo: 'Bind Info',
        bindAll: 'Listen All',
        bindInfoHelper:
            'Changing the service listening address or protocol may result in service unavailability. Do you want to continue?',
        ipv6: 'Listen IPv6',
        bindAddress: 'Listen Address',
        entrance: 'Entrance',
        showEntrance: 'Enable Home Page Notification Not Enabled',
        entranceHelper: 'Enabling secure entry will only allow logging in to the panel through specified secure entry.',
        entranceError:
            'Please enter a secure login entry point of 5-116 characters, only numbers or letters are supported.',
        entranceInputHelper: 'When the security entry is set to blank, the security entry is cancelled.',
        randomGenerate: 'Random',
        expirationTime: 'Expiry Date',
        unSetting: 'Unset',
        noneSetting:
            'Set the expiration time for the panel password. After the expiration, you need to reset the password',
        expirationHelper: 'If the password expiration time is [0] days, the password expiration function is disabled',
        days: 'Expiration Days',
        expiredHelper: 'The current password has expired. Please change the password again.',
        timeoutHelper:
            '[ {0} days ] The panel password is about to expire. After the expiration, you need to reset the password',
        complexity: 'Complexity Verification',
        complexityHelper:
            'After enabling, the password must have a length of 8-30 characters, including letters, numbers, and at least two special characters.',
        bindDomain: 'Bind Domain',
        unBindDomain: 'Unbind domain',
        panelSSL: 'Panel SSL',
        panelSSLHelper:
            'After the automatic renewal of the panel SSL, you need to manually restart the 1Panel service for the changes to take effect.',
        unBindDomainHelper:
            'The action of unbinding a domain name may cause system insecurity. Do you want to continue?',
        bindDomainHelper:
            'After the domain binding, only the domain in the setting can be used to access 1Panel service',
        bindDomainHelper1: 'If the binding domain is empty, the binding of the domain is cancelled',
        bindDomainWarning:
            'After domain binding, you will be logged out and can only access 1Panel service through the domain name specified in the settings. Do you want to continue?',
        allowIPs: 'Authorized IP',
        unAllowIPs: 'Unauthorized IP',
        unAllowIPsWarning:
            'Authorizing an empty IP will allow all IPs to access the system, which may cause system insecurity. Do you want to continue?',
        allowIPsHelper:
            'After setting the authorized IP address, only the IP address in the setting can access the 1Panel service',
        allowIPsWarning:
            'After setting the authorized IP address, only the IP address in the setting can access the 1Panel service. Do you want to continue?',
        allowIPsHelper1: 'If the authorized IP address is empty, the authorized IP address is canceled',
        allowIPEgs:
            'If multiple ip authorizations exist, newlines need to be displayed. For example, \n172.16.10.111 \n172.16.10.0/24',
        mfa: 'MFA',
        mfaClose: 'Disabling MFA will reduce the security of the service. Do you want to continue?',
        secret: 'Secret',
        mfaInterval: 'Refresh interval (s)',
        mfaTitleHelper:
            'Used to differentiate between different 1Panel hosts. After modification, please rescan or manually add the key information!',
        mfaIntervalHelper: 'Please rescan or manually add key information after modifying the refresh time.',
        mfaAlert:
            'MFA password is generated based on the current time. Please ensure that the server time is synchronized.',
        mfaHelper: 'After this function is enabled, the mobile application verification code will be verified',
        mfaHelper1: 'Download a MFA verification mobile app e.g.:',
        mfaHelper2: 'Scan the following QR code using the mobile app to obtain the 6-digit verification code',
        mfaHelper3: 'Enter six digits from the app',
        mfaCode: 'Code',
        sslChangeHelper: 'Modify the https setting and restart the service. Do you want to continue?',
        sslDisable: 'Disable',
        sslDisableHelper:
            'If the https service is disabled, you need to restart the panel for it to take effect. Do you want to continue?',
        noAuthSetting: 'Unauthorized Setting',
        noAuthSettingHelper:
            'When the user is not logged in and has not correctly entered the security gateway, authorized IP, or bound domain, this response can hide panel features.',
        responseSetting: 'Response Setting',
        help200: 'Help Page',
        error400: 'Bad Request',
        error401: 'Unauthorized',
        error403: 'Forbidden',
        error404: 'Not Found',
        error408: 'Request Timeout',
        error416: 'Range Not Satisfiable',
        error444: 'Connection Closed',
        error500: 'Internal Server Error',

        https: 'Setting up HTTPS protocol access for the panel can enhance the security of panel access.',
        certType: 'Certificate type',
        selfSigned: 'Self signed',
        selfSignedHelper:
            'It is normal for self-signed certificates to be not trusted by browsers and display a security warning as the certificate is not issued by a trusted third party.',
        select: 'Select',
        domainOrIP: 'Domain or IP：',
        timeOut: 'Timeout',
        rootCrtDownload: 'Root certificate download',
        primaryKey: 'Primary key',
        certificate: 'Certificate',
        backupJump:
            'Backup files not in the current backup list, please try downloading from the file directory and importing for backup.',

        snapshot: 'Snapshot',
        noAppData: 'No system applications available for selection',
        noBackupData: 'No backup data available for selection',
        stepBaseData: 'Base Data',
        stepAppData: 'System Application',
        stepPanelData: 'System Data',
        stepBackupData: 'Backup Data',
        stepOtherData: 'Other Data',
        operationLog: 'Retain Operation Log',
        loginLog: 'Retain Access Log',
        systemLog: 'Retain System Log',
        taskLog: 'Retain Task Log',
        monitorData: 'Retain Monitoring Data',
        selectAllImage: 'Backup All Application Images',
        agentLabel: 'Node Configuration',
        appDataLabel: 'Application Data',
        appImage: 'Application Image',
        appBackup: 'Application Backup',
        backupLabel: 'Backup Directory',
        confLabel: 'Configuration File',
        dockerLabel: 'Container',
        taskLabel: 'Scheduled Task',
        resourceLabel: 'Application Resource Directory',
        runtimeLabel: 'Runtime Environment',
        appLabel: 'Application',
        databaseLabel: 'Database',
        snapshotLabel: 'Snapshot File',
        websiteLabel: 'Website',
        directoryLabel: 'Directory',
        appStoreLabel: 'Application Store',
        shellLabel: 'Script',
        tmpLabel: 'Temporary Directory',
        sslLabel: 'Certificate Directory',
        reCreate: 'Failed to create snapshot',
        reRollback: 'Rollback snapshot failed',
        deleteHelper:
            'All backup files for the snapshot, including those in the third-party backup account, will be deleted.',
        status: 'Snapshot status',
        ignoreRule: 'Ignore Rule',
        ignoreHelper:
            'This rule will be used to compress and backup the 1Panel data directory during snapshots, please modify with caution.',
        ignoreHelper1: 'One item per line, e.g.: \n*.log\n/opt/1panel/cache',
        panelInfo: 'Write 1Panel basic information',
        panelBin: 'Backup 1Panel system files',
        daemonJson: 'Backup Docker configuration file',
        appData: 'Backup installed apps from 1Panel',
        panelData: 'Backup 1Panel data directory',
        backupData: 'Backup local backup directory for 1Panel',
        compress: 'Create Snapshot file',
        upload: 'Upload snapshot file',
        recoverDetail: 'Recover detail',
        createSnapshot: 'Create Snapshot',
        importSnapshot: 'Sync Snapshot',
        importHelper: 'Snapshot directory:',
        lastRecoverAt: 'Last recovery time',
        lastRollbackAt: 'Last rollback time',
        reDownload: 'Download the backup file again',
        recoverErrArch: 'Snapshot recovery between different server architectures is not supported!',
        recoverErrSize: 'Detected insufficient disk space, please check or clean up and try again!',
        recoverHelper:
            'Starting recovery from snapshot {0}, please confirm the following information before proceeding:',
        recoverHelper1: 'Recovery requires restarting Docker and 1Panel services',
        recoverHelper2:
            'Please ensure there is sufficient disk space on the server (Snapshot file size: {0}, Available space: {1})',
        recoverHelper3:
            'Please ensure the server architecture matches the architecture of the server where the snapshot was created (Current server architecture: {0})',
        rollback: 'Rollback',
        rollbackHelper:
            'Rolling back this recovery will replace all files from this recovery, and may require restarting Docker and 1Panel services. Do you want to continue?',

        upgradeRecord: 'Upgrade record',
        upgrading: ' Upgrading, please wait...',
        upgradeHelper: 'The upgrade requires restarting the 1Panel service. Do you want to continue?',
        noUpgrade: 'It is currently the latest version',
        versionHelper:
            'Name rules: [major version].[functional version].[Bug fix version], as shown in the following example:',
        versionHelper1: 'v1.0.1 is a Bug fix after v1.0.0',
        versionHelper2: 'v1.1.0 is a feature release after v1.0.0',
        upgradeCheck: 'Check for updates',
        upgradeNotes: 'Release note',
        upgradeNow: 'Upgrade now',
        source: 'Download source',
        hasNewVersion: 'New version Available',
        versionHigher:
            'Detected that node {0} version is higher than the main node, switching is not supported at this time. Please upgrade the main node system version and try again!',
        versionLower:
            'Detected that node {0} version is lower than the main node, switching is not supported at this time. Please upgrade the system version of this node and try again!',

        about: 'About',
        project: 'Project Address',
        issue: 'Feedback',
        doc: 'Official document',
        star: 'Star',
        description: 'Linux Server Panel',
        forum: 'Forum Help',
        doc2: 'User Manual',
        currentVersion: 'Version',

        license: 'License',
        bindNode: 'Bind Node',
        advancedMenuHide: 'Advanced Menu Hide',
        showMainAdvancedMenu:
            'If only one menu is retained, only the main advanced menu will be displayed in the sidebar',
        showAll: 'Show All',
        hideALL: 'Hide All',
        ifShow: 'Whether to Show',
        menu: 'Menu',
        confirmMessage: 'The page will be refreshed to update the advanced menu list. Continue?',
        compressPassword: 'Compression Password',
        backupRecoverMessage: 'Please enter the compression or decompression password (leave blank to not set)',
    },
    license: {
        community: 'Community Edition: ',
        community2: 'Community Edition',
        pro: 'Professional Edition: ',
        xpack: 'Professional Edition',
        trial: 'Trial Version',
        forceDelete: 'Force delete, will ignore errors during the deletion process and eventually remove metadata',
        deleteHelper: 'Deleting the license may cause child nodes to be unable to switch, please proceed with caution!',
        office: 'Official Version',
        trialInfo: 'Version',
        authorizationId: 'Subscription Authorization ID',
        authorizedUser: 'Authorized User',
        expiresAt: 'Expiration Date',
        productName: 'Product Name',
        productStatus: 'Product Status',
        lostHelper:
            'The license has reached the maximum number of retry attempts. Please manually click the sync button to ensure the professional version functions properly.',
        exceptionalHelper:
            'License synchronization verification is abnormal. Please manually click the sync button to ensure the professional version functions properly.',
        quickUpdate: 'Quick Update',
        power: 'Authorization',
        unbindHelper: 'Unbinding will clear all professional edition settings for this node. Do you wish to continue?',
        unbindMasterHelper:
            'There are currently other nodes besides the master node. The {0} operation is not supported. Please delete the nodes in the node management and try again.',
        importLicense: 'Import License',
        importHelper: 'Please click or drag the license file here',
        indefinitePeriod: 'Indefinite Period',
        levelUpPro: 'Upgrade to Professional Edition',
        licenseSync: 'License Sync',
        knowMorePro: 'Learn More',
        closeAlert: 'The current page can be closed in the panel settings',
        introduce: 'Feature Introduction',
        waf: 'Upgrading to the professional version can provide features such as interception map, logs, block records, geographical location blocking, custom rules, custom interception pages, etc.',
        tamper: 'Upgrading to the professional version can protect websites from unauthorized modifications or tampering.',
        tamperHelper: 'Operation failed, the file or folder has tamper protection enabled. Please check and try again!',
        gpu: 'Upgrading to the professional version can help users visually monitor important parameters of GPU such as workload, temperature, memory usage in real time.',
        setting:
            'Upgrading to the professional version allows customization of panel logo, welcome message, and other information.',
        monitor:
            'Upgrade to the professional version to view the real-time status of the website, visitor trends, visitor sources, request logs and other information. ',
        alert: 'Upgrade to the professional version to receive alarm information via SMS and view alarm logs, fully control various key events, and ensure worry-free system operation',
        node: 'Upgrading to the professional version allows you to manage multiple Linux servers with 1Panel.',
    },
    clean: {
        scan: 'Start Scanning',
        scanHelper: 'Easily tidy up junk files accumulated during 1Panel runtime',
        clean: 'Clean Now',
        reScan: 'Rescan',
        cleanHelper:
            'After checking the files and directories for cleaning, it cannot be undone (system cache cleaning requires a service restart). Do you want to continue?',
        statusSuggest: '( Recommended Cleaning )',
        statusClean: '( Very Clean )',
        statusEmpty: 'Very clean, no cleaning needed!',
        statusWarning: '( Proceed with Caution )',
        lastCleanTime: 'Last Cleaned: {0}',
        lastCleanHelper: 'Files and directories cleaned: {0}, Total cleaned: {1}',
        cleanSuccessful: 'Cleaning Successful!',
        currentCleanHelper: 'Files and directories cleaned in this session: {0}, Total cleaned: {1}',
        suggest: '(Recommended)',
        totalScan: 'Total junk files to be cleaned: ',
        selectScan: 'Total selected junk files: ',

        system: 'System Junk',
        systemHelper:
            'Temporary files generated during snapshots, upgrades, and obsolete file contents during version iterations',
        panelOriginal: 'System snapshot recovery backup files',
        upgrade: 'System upgrade backup files',
        upgradeHelper: '(Recommend keeping the latest upgrade backup for system rollback)',
        cache: 'System cache files',
        cacheHelper: '(Proceed with caution, clearing requires a service restart)',
        snapshot: 'System snapshot temporary files',
        snapshotTmp: 'System snapshot upload temporary files',
        snapshotLocal: 'System snapshot creation temporary files',
        rollback: 'Backup files before recover',
        unused: 'Unused system directories',
        oldUpgrade: 'Unused pre-upgrade backup directories',
        oldOriginal: 'Unused pre-snapshot recovery backup directories',
        oldAppsBak: 'Unused application backup directories',

        upload: 'Temporary upload files',
        uploadHelper: 'Temporary files uploaded from the system backup list',
        download: 'Temporary Download Files',
        downloadHelper: 'Temporary files downloaded from third-party backup accounts by the system',
        directory: 'Directory',

        systemLog: 'System Log Files',
        systemLogHelper:
            'System log information, container build or image pull log information, and log files generated in scheduled tasks',
        dockerLog: 'Container operation log files',
        taskLog: 'Scheduled task execution log files',
        shell: 'Shell script scheduled tasks',
        containerShell: 'Container internal Shell script scheduled tasks',
        curl: 'CURL scheduled tasks',

        containerTrash: 'Container Trash',
        volumes: 'Volumes',
        buildCache: 'Container Build Cache',
    },
    app: {
        app: 'Application',
        installName: 'Name',
        installed: 'Installed',
        all: 'All',
        version: 'Version',
        detail: 'Details',
        params: 'Param',
        author: 'Author',
        source: 'Source',
        appName: 'Application Name',
        start: 'Start',
        stop: 'Stop',
        rebuild: 'Rebuild',
        deleteWarn:
            'The delete operation will delete all data and backups together. This operation cannot be rolled back. Do you want to continue? ',
        syncSuccess: 'Sync successfully',
        canUpgrade: 'Upgrade',
        backupName: 'File Name',
        backupPath: 'File Path',
        backupdate: 'Backup time',
        versionSelect: 'Please select a version',
        operatorHelper: 'Operation {0} will be performed on the selected application, Do you want to continue? ',
        checkInstalledWarn: '{0} is not detected, please enter the app store and click to install!',
        gotoInstalled: 'Go to install',
        limitHelper: 'The application has already been installed, does not support repeated installation',
        deleteHelper: '{0} has been associated with the following resources. Please check and try again!',
        checkTitle: 'Prompt',
        defaultConfig: 'Default Configuration',
        defaultConfigHelper: 'It has been restored to the default configuration, it will take effect after saving',
        forceDelete: 'Force delete',
        forceDeleteHelper:
            'Forced deletion will ignore errors generated during the deletion process and eventually delete metadata',
        deleteBackup: 'Delete backup',
        deleteBackupHelper: 'Also delete the application backup',
        deleteDB: 'Delete Database',
        deleteDBHelper: 'Also delete the database',
        noService: 'No {0}',
        toInstall: 'to install',
        param: 'parameter configuration',
        alreadyRun: 'Age',
        syncAppList: 'Sync',
        less1Minute: 'Less than 1 minute',
        appOfficeWebsite: 'Website',
        github: 'Github',
        document: 'Document',
        updatePrompt: 'The current application is the latest version',
        installPrompt: 'No apps installed yet',
        updateHelper: 'Updating parameters may cause the application to fail to start, please operate with caution',
        updateWarn: 'Update parameters need to rebuild the application, Do you want to continue? ',
        busPort: 'Port',
        syncStart: 'Start syncing! Please refresh the app store later',
        advanced: 'Advanced Settings',
        cpuCore: 'Number of cores',
        containerName: 'Container Name',
        containerNameHelper: 'can be empty, it will be automatically generated',
        allowPort: 'Port external access',
        allowPortHelper: 'Allowing external port access will release the firewall port',
        appInstallWarn:
            'The application does not release the external access port by default, you can choose to release it in the advanced settings',
        upgradeStart: 'Start upgrading! Please refresh the page later',
        toFolder: 'Open the installation directory',
        editCompose: 'Edit compose file',
        editComposeHelper: 'Editing the compose file may cause the software installation to fail',
        composeNullErr: 'compose cannot be empty',
        takeDown: 'TakeDown',
        allReadyInstalled: 'Installed',
        installHelper: 'Configuring image acceleration can solve the problem of image pull failure',
        upgradeHelper:
            'Abnormal applications need to be synchronized to normal status first. If the upgrade fails, please check the failure reason in the log audit-system log',
        installWarn:
            'Currently, if the port external access is not checked, it will not be able to access through the external network IP: port. Do you want to continue?',
        showIgnore: 'View ignore application',
        cancelIgnore: 'Cancel ignore',
        ignoreList: 'ignore list',
        appHelper: 'Please view the installation instructions of some applications on the application details page',
        backupApp: 'Backup application before upgrade',
        backupAppHelper:
            'If the upgrade fails, the backup will be automatically rolled back. Please check the failure reason in the log audit-system log',
        openrestyDeleteHelper:
            'Forcibly deleting OpenResty will delete all websites, please confirm the risk before operation',
        downloadLogHelper1: 'All logs of {0} application are about to be downloaded. Do you want to continue? ',
        downloadLogHelper2:
            'The latest {1} logs of {0} application are about to be downloaded. Do you want to continue? ',
        syncAllAppHelper: 'All applications are about to be synchronized. Do you want to continue? ',
        hostModeHelper:
            'The current application network mode is host mode. If you need to open the port, please open it manually on the firewall page.',
        showLocal: 'Local',
        reload: 'Reload',
        upgradeWarn:
            'Upgrading the application will replace the docker-compose.yml file. If there are any changes, you can click to view the file comparison',
        newVersion: 'New version',
        oldVersion: 'Current version',
        composeDiff: 'File comparison',
        showDiff: 'View comparison',
        useNew: 'Use custom version',
        useDefault: 'Use default version',
        useCustom: 'Customize docker-compose.yml',
        useCustomHelper:
            'Using a custom docker-compose.yml file may cause the application upgrade to fail. If it is not necessary, do not check it',
        diffHelper:
            'The left side is the old version, the right side is the new version. After editing, click to save the custom version',
        pullImage: 'Pull Image',
        pullImageHelper: 'Execute docker pull to pull the image before the application starts',
        deleteImage: 'Delete Image',
        deleteImageHelper: 'Delete the image related to the application. The task will not stop if deletion fails',
        requireMemory: 'Memory',
        supportedArchitectures: 'Architectures',
        link: 'Link',
        showCurrentArch: 'Architecture',
        syncLocalApp: 'Sync Local App',
        memoryRequiredHelper: 'Current application memory requirement {0}',
        gpuConfig: 'Enable GPU Support',
        gpuConfigHelper:
            'Please ensure the machine has an NVIDIA GPU and that NVIDIA drivers and the NVIDIA Docker Container Toolkit are installed',
        webUI: 'Web Access Address',
        webUIPlaceholder: 'For example: http://example.com:8080/login',
        defaultWebDomain: 'Default Access Address',
        defaultWebDomainHepler:
            'If the application port is 8080, the redirect address will be http(s)://default access address:8080',
        webUIConfig: 'Please add the access address in the application parameters or the app store settings',
        toLink: 'Open',
        customAppHelper:
            'The current package is from the main node app store, please modify the configuration on the main node',
        forceUninstall: 'Force Uninstall',
    },
    website: {
        primaryDomain: 'Primary Domain',
        otherDomains: 'Other Domains',
        static: 'Static',
        deployment: 'Deployment',
        supportUpType: 'Only .tar.gz files are supported',
        zipFormat: '.tar.gz compressed package structure: test.tar.gz compressed package must contain {0} file',
        proxy: 'Reverse Proxy',
        alias: 'Alias',
        ftpUser: 'FTP Account',
        ftpPassword: 'FTP Password',
        ftpHelper:
            "When creating a site, simultaneously create a corresponding FTP account for the site, with the FTP directory pointing to the site's directory.",
        remark: 'Remark',
        groupSetting: 'Group Management',
        createGroup: 'Create Group',
        appNew: 'New Application',
        appInstalled: 'Installed Application',
        create: 'Create',
        delete: 'Delete Website',
        deleteApp: 'Delete Application',
        deleteBackup: 'Delete Backup',
        domain: 'Domain',
        domainHelper: 'One domain per line, support * and IP address, support domain name: port',
        addDomain: 'Add',
        domainConfig: 'Domains',
        defaultDoc: 'Document',
        perserver: 'Concurrency',
        perserverHelper: 'Limit the maximum concurrency of the current site',
        perip: 'Single IP',
        peripHelper: 'Limit the maximum number of concurrent access to a single IP',
        rate: 'Flow Limit',
        rateHelper: 'Limit the flow of each request (unit: KB)',
        limitHelper: 'Enable flow control',
        other: 'Other',
        currentSSL: 'Current Certificate',
        dnsAccount: 'DNS Account',
        applySSL: 'Certificate Application',
        SSLList: 'Certificate List',
        createDnsAccount: 'DNS Account',
        aliyun: 'Aliyun DNS',
        manual: 'Manual parsing',
        key: 'Key',
        check: 'View',
        acmeAccountManage: 'Acme Account',
        email: 'Email',
        acmeAccount: 'Acme Account',
        provider: 'Verification Method',
        dnsManual: 'Manual Resolution',
        expireDate: 'Expiry Date',
        brand: 'Organization',
        deploySSL: 'Deployment',
        deploySSLHelper: 'Are you sure to deploy the certificate? ',
        ssl: 'Certificate',
        dnsAccountManage: 'DNS Account',
        renewSSL: 'Renew',
        renewHelper: 'Are you sure to renew the certificate? ',
        renewSuccess: 'Renew Certificate',
        enableHTTPS: 'Enable',
        aliasHelper: 'Alias is the folder name of the website directory',
        lastBackupAt: 'last backup time',
        null: 'none',
        nginxConfig: 'Nginx configuration',
        websiteConfig: 'Website Settings',
        basic: 'Basic',
        source: 'Configuration',
        security: 'Security',
        nginxPer: 'Performance Tuning',
        neverExpire: 'Never Expire',
        setDefault: 'Set as default',
        deleteHelper: 'Related application status is abnormal, please check',
        toApp: 'Go to the installed list',
        cycle: 'Cycle',
        frequency: 'Frequency',
        ccHelper:
            'Accumulatively request the same URL more than {1} times within {0} seconds, trigger CC defense, block this IP',
        mustSave: 'The modification needs to be saved to take effect',
        fileExt: 'file extension',
        fileExtBlock: 'file extension blacklist',
        value: 'value',
        enable: 'Enable',
        proxyAddress: 'Proxy Address',
        proxyHelper: 'Example: 127.0.0.1:8080',
        forceDelete: 'Force Delete',
        forceDeleteHelper:
            'Forced deletion will ignore errors generated during the deletion process and eventually delete metadata',
        deleteAppHelper: 'Delete associated applications and application backups at the same time',
        deleteBackupHelper: 'Also delete website backup',
        deleteConfirmHelper:
            'The delete operation cannot be rolled back, please enter <span style="color:red"> "{0}" </span> to delete',
        staticPath: 'Corresponding main directory:',
        limit: 'Scheme',
        blog: 'Forum/Blog',
        imageSite: 'Picture Site',
        downloadSite: 'Download Site',
        shopSite: 'Mall',
        doorSite: 'Portal',
        qiteSite: 'Enterprise',
        videoSite: 'Video',
        errLog: 'Error Log',
        accessLog: 'Website Logs',
        stopHelper:
            'After stopping the site, it will not be able to access normally, and the user will display the stop page of the current site when visiting. Do you want to continue? ',
        startHelper:
            'After enabling the site, users can access the content of the site normally, do you want to continue? ',
        sitePath: 'Directory',
        siteAlias: 'Site  Alias',
        primaryPath: 'Root Directory',
        folderTitle: 'The website mainly contains the following folders',
        wafFolder: 'Firewall Rules',
        indexFolder: 'Website Root Directory',
        logFolder: 'Website Logs',
        sslFolder: 'Website Certificate',
        enableOrNot: 'Enable',
        oldSSL: 'Existing certificate',
        manualSSL: 'Import certificate',
        select: 'Select',
        selectSSL: 'Select Certificate',
        privateKey: 'Key (KEY)',
        certificate: 'Certificate (PEM format)',
        HTTPConfig: 'HTTP Options',
        HTTPSOnly: 'Disable HTTP',
        HTTPToHTTPS: 'Access HTTP automatically jumps to HTTPS',
        HTTPAlso: 'HTTP can be accessed directly',
        sslConfig: 'SSL options',
        disableHTTPS: 'Disable HTTPS',
        disableHTTPSHelper:
            'Disabling HTTPS will delete the certificate related configuration, Do you want to continue?',
        SSLHelper:
            'Note: Do not use SSL certificates for illegal websites \n If HTTPS access cannot be used after opening, please check whether the security group has correctly released port 443',
        SSLConfig: 'Certificate Settings',
        SSLProConfig: 'Protocol Settings',
        supportProtocol: 'Protocol Version',
        encryptionAlgorithm: 'Rncryption Algorithm',
        notSecurity: '(not safe)',
        encryptHelper:
            "Let's Encrypt has a frequency limit for issuing certificates, but it is sufficient to meet normal needs. Too frequent operations will cause issuance failure. For specific restrictions, please see <a target='_blank' href='https://letsencrypt.org/zh-cn/docs /rate-limits/'>official document</a> ",
        ipValue: 'Value',
        ext: 'file extension',
        wafInputHelper: 'Input data by line, one line',
        data: 'data',
        ever: 'permanent',
        nextYear: 'One year later',
        noLog: 'There are currently no logs...',
        defaultServer: 'Default Site',
        noDefaultServer: 'Not set',
        defaultServerHelper:
            'After setting the default site, all unbound domain names and IPs are directed to the default site\n which can effectively prevent malicious analysis',
        restoreHelper: 'Are you sure to restore using this backup?',
        websiteDeploymentHelper: 'Create a website using an application deployed from 1Panel',
        websiteStatictHelper: 'Create a website directory on the host',
        websiteProxyHelper:
            'Proxying Existing Service: For example, if there is a Halo service installed and running on the local machine using port 8080, then the proxy address would be http://127.0.0.1:8080',
        runtimeProxyHelper: 'Use runtime created from 1Panel',
        runtime: 'Runtime',
        deleteRuntimeHelper:
            'The Runtime application needs to be deleted together with the website, please handle it with caution',
        proxyType: 'Network Type',
        unix: 'Unix Network',
        tcp: 'TCP/IP Network',
        phpFPM: 'FPM Config',
        phpConfig: 'PHP Config',
        updateConfig: 'Update Config',
        isOn: 'On',
        isOff: 'Off',
        rewrite: 'Pseudo-static',
        rewriteMode: 'Scheme',
        current: 'Current',
        rewriteHelper:
            'If setting pseudo-static causes the website to become inaccessible, please try reverting to the default settings',
        runDir: 'Run Directory',
        runUserHelper:
            'For websites deployed through the PHP container runtime environment, you need to set the owner and user group of all files and folders under index and subdirectories to 1000. For the local PHP environment, refer to the local PHP-FPM user and user group settings',
        userGroup: 'User/Group',
        uGroup: 'Group',
        proxyPath: 'Proxy Path',
        proxyPass: 'Target URL',
        cache: 'Cache',
        cacheTime: 'Cache Duration',
        enableCache: 'Cache',
        proxyHost: 'ProxyHost',
        disabled: 'Stopped',
        startProxy: 'Start Reverse proxy',
        stopProxy: 'Stop the Reverse proxy',
        proxyFile: 'Source',
        proxyHelper1: 'When accessing this directory, the content of the target URL will be returned and displayed',
        proxyPassHelper: 'The proxied site must be a valid and accessible URL',
        proxyHostHelper: 'Pass the domain name in the request header to the proxy server',
        modifier: 'Matching Rules',
        modifierHelper: 'Example: = exact match, ~ regular match, ^~ match the beginning of the path, etc',
        replace: 'Text Replacement',
        addReplace: 'Add',
        replaced: 'Search String (cannot be empty)',
        replaceText: 'Replace with string',
        replacedErr: 'The Search String cannot be empty',
        replacedErr2: 'The Search String cannot be repeated',
        basicAuth: 'Basic Authentication',
        editBasicAuthHelper:
            'The password is asymmetrically encrypted and cannot be echoed. Editing needs to reset the password',
        antiLeech: 'Anti-leech',
        extends: 'Extension',
        browserCache: 'Cache',
        leechLog: 'Record anti-leech log',
        accessDomain: 'Allowed Domains',
        leechReturn: 'Response Resource',
        noneRef: 'Allow Rmpty Referrer',
        disable: 'not enabled',
        disableLeechHelper: 'Whether to disable the anti-leech',
        disableLeech: 'Disable anti-leech',
        ipv6: 'Listen IPV6',
        leechReturnError: 'Please fill in the HTTP status code',
        selectAcme: 'Select Acme account',
        imported: 'Manually Created',
        importType: 'Import Type',
        pasteSSL: 'Paste code',
        localSSL: 'Select server file',
        privateKeyPath: 'Private key file',
        certificatePath: 'Certificate file',
        ipWhiteListHelper: 'The role of IP whitelist: all rules are invalid for IP whitelist',
        redirect: 'Redirect',
        sourceDomain: 'Source Domain',
        targetURL: 'Target URL Address',
        keepPath: 'URI params',
        path: 'path',
        redirectType: 'redirection type',
        redirectWay: 'Way',
        keep: 'keep',
        notKeep: 'Do not keep',
        redirectRoot: 'Redirect to the homepage',
        redirectHelper: '301 permanent redirection, 302 temporary redirection',
        changePHPVersionWarn: 'This operation cannot be rolled back, do you want to continue?',
        changeVersion: 'Switch version',
        retainConfig: 'Whether to keep php-fpm.conf and php.ini files',
        runDirHelper2: 'Please ensure that the secondary running directory is under the index directory',
        openrestyHelper:
            'OpenResty default HTTP port: {0} HTTPS port: {1}, which may affect website domain name access and HTTPS forced redirect',
        primaryDomainHelper: 'Support domain name: port',
        acmeAccountType: 'Account Type',
        keyType: 'Key Algorithm',
        tencentCloud: 'Tencent Cloud',
        containWarn: 'The domain name contains the main domain, please re-enter',
        rewriteHelper2:
            'Applications like WordPress installed from the app store typically come with pseudo-static configurations pre-set. Reconfiguring them unnecessarily may lead to errors',
        websiteBackupWarn:
            'Only supports importing local backups, importing backups from other machines may cause recovery failure',
        ipWebsiteWarn: 'Websites with IP as domain names need to be set as default sites to be accessed normally',
        hstsHelper: 'Enabling HSTS can increase website security',
        defaultHtml: 'Default Page',
        website404: 'Website 404 error page',
        domain404: 'Website page does not exist',
        indexHtml: 'Static website default page',
        stopHtml: 'Website stop page',
        indexPHP: 'PHP website default page',
        sslExpireDate: 'SSL Expiry Date',
        website404Helper: 'Website 404 error page only supports PHP runtime environment websites and static websites',
        sni: 'Origin SNI',
        sniHelper:
            "When the reverse proxy backend is HTTPS, you might need to set the origin SNI. Please refer to the CDN service provider's documentation for details.",
        huaweicloud: 'Huawei Cloud',
        createDb: 'Create Database',
        enableSSLHelper: 'Failure to enable will not affect the creation of the website',
        batchAdd: 'Batch Add Domains',
        generateDomain: 'Generate',
        domainSSLHelper:
            'Enabling SSL on a non-443 port will cause the 443 port to stop listening. If you need the 443 port to continue listening, please add the domain:443',
        global: 'Global',
        subsite: 'Subsite',
        subsiteHelper: 'A subsite can select an existing PHP or static website directory as the main directory.',
        parentWbeiste: 'Parent Website',
        deleteSubsite: 'To delete the current website, you must first delete the subsite(s) {0}',
        loadBalance: 'Load Balancing',
        server: 'Server',
        algorithm: 'Algorithm',
        ipHash: 'IP Hash',
        ipHashHelper:
            'Distributes requests to a specific server based on the client IP address, ensuring that a particular client is always routed to the same server.',
        leastConn: 'Least Connections',
        leastConnHelper: 'Sends requests to the server with the fewest active connections.',
        leastTime: 'Least Time',
        leastTimeHelper: 'Sends requests to the server with the shortest active connection time.',
        defaultHelper:
            'Default method, requests are evenly distributed to each server. If servers have weights configured, requests are distributed based on the specified weights, with higher-weighted servers receiving more requests.',
        weight: 'Weight',
        maxFails: 'Max Fails',
        maxConns: 'Max Connections',
        strategy: 'Strategy',
        strategyDown: 'Down',
        strategyBackup: 'Backup',
        staticChangePHPHelper: 'Currently a static website, you can switch to a PHP website',
        proxyCache: 'Reverse Proxy Cache',
        cacheLimit: 'Cache Space Limit',
        shareCahe: 'Cache Count Memory Size',
        cacheExpire: 'Cache Expiration Time',
        shareCaheHelper: 'Approximately 8000 cache objects can be stored per 1M of memory',
        cacheLimitHelper: 'Old cache will be automatically deleted when the limit is exceeded',
        cacheExpireJHelper: 'Cache will be deleted if it misses after the expiration time',
        realIP: 'Real IP',
        ipFrom: 'IP Source',
        ipFromHelper:
            "By configuring trusted IP sources, OpenResty will analyze IP information in HTTP headers, accurately identify and record visitors' real IP addresses, including in access logs",
        ipFromExample1: "If the frontend is a tool like Frp, you can enter Frp's IP address, such as 127.0.0.1",
        ipFromExample2: "If the frontend is a CDN, you can enter the CDN's IP address range",
        ipFromExample3:
            'If unsure, you can enter 0.0.0.0/0 (ipv4) ::/0 (ipv6) [Note: Allowing any source IP is not secure]',
        http3Helper:
            'HTTP/3 is an upgrade to HTTP/2, offering faster connection speeds and better performance, but not all browsers support HTTP/3. Enabling it may cause some browsers to be unable to access the site.',

        changeDatabase: 'Change Database',
        changeDatabaseHelper1: 'Database association is used for backing up and restoring the website.',
        changeDatabaseHelper2: 'Switching to another database will cause previous backups to be unrecoverable.',
        saveCustom: 'Save as Template',
        rainyun: 'Rain Yun',
        volcengine: 'Volcengine',
        runtimePortHelper: 'The current runtime environment has multiple ports. Please select a proxy port.',
    },
    php: {
        short_open_tag: 'Short tag support',
        max_execution_time: 'Maximum script execution time',
        max_input_time: 'Maximum input time',
        memory_limit: 'Script memory limit',
        post_max_size: 'POST data maximum size',
        file_uploads: 'Whether to allow uploading files',
        upload_max_filesize: 'The maximum size allowed to upload files',
        max_file_uploads: 'The maximum number of files allowed to be uploaded at the same time',
        default_socket_timeout: 'Socket timeout',
        error_reporting: 'Error level',
        display_errors: 'Whether to output detailed error information',
        cgi_fix_pathinfo: 'Whether to open pathinfo',
        date_timezone: 'Time zone',
        disableFunction: 'Disable function',
        disableFunctionHelper: 'Enter the function to be disabled, such as exec, please use multiple, split',
        uploadMaxSize: 'Upload limit',
        indexHelper:
            'In order to ensure the normal operation of the PHP website, please place the code in the index directory and avoid renaming',
        extensions: 'Extension template',
        extension: 'Extension',
        extensionHelper: 'Please use multiple extensions, split',
        toExtensionsList: 'View extension list',
    },
    nginx: {
        serverNamesHashBucketSizeHelper: 'The hash table size of the server name',
        clientHeaderBufferSizeHelper: 'The header buffer size requested by the client',
        clientMaxBodySizeHelper: 'Maximum Upload File',
        keepaliveTimeoutHelper: 'Connection Timeout',
        gzipMinLengthHelper: 'Minimum Compressed File',
        gzipCompLevelHelper: 'Compression Rate',
        gzipHelper: 'Enable compression for transmission',
        connections: 'Active connections',
        accepts: 'Accepts',
        handled: 'Handled',
        requests: 'Requests',
        reading: 'Reading',
        writing: 'Writing',
        waiting: 'Waiting',
        status: 'Current Status',
        configResource: 'Configuration',
        saveAndReload: 'Save and Reload',
        clearProxyCache: 'Clear reverse proxy cache',
        clearProxyCacheWarn: 'This action will delete all files in the cache directory. Do you want to continue?',
        create: 'Add a new module',
        update: 'Edit a module',
        params: 'Parameters',
        packages: 'Packages',
        script: 'Scripts',
        module: 'Modules',
        build: 'Build',
        buildWarn:
            'Building OpenResty requires reserving a certain amount of CPU and memory, which may take a long time, please be patient',
        mirrorUrl: 'Software Source',
        paramsHelper: 'For example: --add-module=/tmp/ngx_brotli',
        packagesHelper: 'For example: git, curl (separated by commas)',
        scriptHelper:
            'Scripts to execute before compilation, usually for downloading module source code, installing dependencies, etc.',
        buildHelper:
            'Click build after adding/modifying a module. OpenResty will automatically restart upon successful build.',
    },
    ssl: {
        create: 'Apply',
        provider: 'Type',
        manualCreate: 'Manually Created',
        acmeAccount: 'Acme Account',
        resolveDomain: 'Resolve domain name',
        err: 'Error',
        value: 'record value',
        dnsResolveHelper: 'Please go to the DNS resolution service provider to add the following resolution records:',
        detail: 'Details',
        msg: 'Information',
        ssl: 'Certificate',
        key: 'Private Key',
        startDate: 'Effective Time',
        organization: 'issuing organization',
        renewConfirm: 'Are you sure you want to apply for a certificate for domain name {0}? ',
        autoRenew: 'Automatic Renewal',
        autoRenewHelper: 'Automatically renew 30 days before expiration',
        renewSuccess: 'Renewal successful',
        renewWebsite:
            'This certificate has been associated with the following websites, and the application will be applied to these websites simultaneously',
        createAcme: 'Create Account',
        acmeHelper: 'Acme Account is used to apply for free certificates',
        upload: 'Upload',
        applyType: 'Application Method',
        apply: 'Apply',
        applyStart: 'Certificate application starts',
        getDnsResolve: 'Getting DNS resolution value, please wait...',
        selfSigned: 'Self-signed certificate',
        ca: 'Certification Authority',
        commonName: 'Certificate subject name (CN)',
        caName: 'Institution name',
        company: 'company/organization',
        department: 'department',
        city: 'city',
        province: 'province',
        country: 'country code',
        commonNameHelper: 'For example:',
        selfSign: 'Issue Certificate',
        days: 'validity period',
        domainHelper: 'One domain name per line, supports * and IP address',
        pushDir: 'Push the certificate to the local directory',
        dir: 'directory',
        pushDirHelper:
            'Two files will be generated in this directory, the certificate file: fullchain.pem and the key file: privkey.pem',
        organizationDetail: 'Organization Details',
        fromWebsite: 'From Websites',
        dnsMauanlHelper:
            'In manual resolution mode, you need to click the apply button after creation to obtain the DNS resolution value',
        httpHelper: 'HTTP mode requires OpenResty to be installed',
        buypassHelper: 'Buypass is not accessible in mainland China',
        googleHelper: 'How to get EAB HmacKey and EAB kid',
        googleCloudHelper: 'Google Cloud API is not accessible in most parts of mainland China',
        httpHelper2: 'Unable to apply for a generic domain name certificate in HTTP mode',
        skipDNSCheck: 'Skip DNS check',
        skipDNSCheckHelper: 'If there is an application timeout problem, please check here, otherwise do not check it',
        cfHelper: 'Do not use Global API Key',
        deprecated: 'will be deprecated',
        deprecatedHelper:
            'Maintenance has been stopped and may be abandoned in a future version. Please use Tencent Cloud method for analysis',
        disableCNAME: 'Disable CNAME',
        disableCNAMEHelper: 'Domain name with CNAME configuration, if the application fails, you can check here',
        nameserver: 'DNS server',
        nameserverHelper: 'Use a custom DNS server to verify domain names',
        edit: 'Edit certificate',
        execShell: 'Execute the script after applying for the certificate',
        shell: 'Script content',
        shellHelper:
            'The default execution directory of the script is the 1Panel installation directory. If a certificate is pushed, the execution directory is the certificate push directory. The default timeout is 30 minutes',
    },
    firewall: {
        create: 'Create Rule',
        edit: 'Edit rule',
        notSupport:
            'No system firewall detected (firewalld or ufw). Please refer to the official documentation for installation.',
        ccDeny: 'CC Protection',
        ipWhiteList: 'IP Whitelist',
        ipBlockList: 'IP Blacklist',
        fileExtBlockList: 'File extension blacklist',
        urlWhiteList: 'URL Whitelist',
        urlBlockList: 'URL Blacklist',
        argsCheck: 'GET parameter check',
        postCheck: 'POST parameter verification',
        cookieBlockList: 'Cookie Blacklist',

        dockerHelper:
            'Linux firewall {0} cannot disable Docker port mapping, the application can edit the parameters on the [Installed] page to control whether the port is released',
        quickJump: 'Quick jump',
        used: 'Used',
        unUsed: 'Unused',
        firewallHelper: '{0} System firewall',
        firewallNotStart: 'The system firewall is not enabled at present, please enable it first!',
        restartFirewallHelper: 'This operation will restart the current firewall. Do you want to continue?',
        stopFirewallHelper:
            'After the system firewall is disabled, the server loses security protection. Do you want to continue?',
        startFirewallHelper:
            'After the firewall is enabled, the server security can be better protected. Do you want to continue?',
        noPing: 'Disable ping',
        noPingTitle: 'Disable ping',
        noPingHelper: 'If the ping function is disabled, the server cannot be pinged. Do you want to continue?',
        onPingHelper: 'If you disable ping, hackers may discover your server. Do you want to continue?',
        changeStrategy: 'Change the {0} strategy',
        changeStrategyIPHelper1:
            'Change the IP address strategy to [deny]. After the IP address is set, access to the server is prohibited. Do you want to continue?',
        changeStrategyIPHelper2:
            'Change the IP address strategy to [allow]. After the IP address is set, normal access is restored. Do you want to continue?',
        changeStrategyPortHelper1:
            'Change the port policy to [drop]. After the port policy is set, external access is denied. Do you want to continue?',
        changeStrategyPortHelper2:
            'Change the port policy to [accept]. After the port policy is set, normal port access will be restored. Do you want to continue?',
        stop: 'Stop',
        portFormatError: 'Please enter the correct port information!',
        portHelper1: 'Multiple ports, e.g. 8080 and 8081',
        portHelper2: 'Range port, e.g. 8080-8089',
        changeStrategyHelper:
            'Change [{1}] {0} strategy to [{2}]. After setting, {0} will access {2} externally. Do you want to continue?',
        portHelper: 'Multiple ports can be entered, e.g. 80,81, or range ports, e.g. 80-88',
        strategy: 'Strategy',
        accept: 'Accept',
        drop: 'Drop',
        anyWhere: 'AnyWhere',
        address: 'Specified IP',
        addressHelper: 'Support IP address or IP segment',
        allow: 'Allow',
        deny: 'Deny',
        addressFormatError: 'Please enter a valid ip address!',
        addressHelper1: 'Supports input of single IPs or IP ranges: 172.16.10.11 or 172.16.0.0/24',
        addressHelper2: 'For multiple IPs or IP ranges, separate with commas: 172.16.10.11, 172.16.0.0/24',
        allIP: 'All IP',
        portRule: 'Port Rule',
        forwardRule: 'Forwarding',
        ipRule: 'IP Rule',
        userAgent: 'User-Agent filter',
        sourcePort: 'Source Port',
        targetIP: 'Destination IP',
        targetPort: 'Destination Port',
        forwardHelper1: 'In the case of local port forwarding, the destination IP is: 127.0.0.1',
        forwardHelper2: 'If the destination IP is not filled in, it will be forwarded to the local port by default',
        forwardHelper3: 'Currently only supports port forwarding for IPv4',
    },
    runtime: {
        runtime: 'Runtime',
        workDir: 'Working directory',
        create: 'Create',
        localHelper: 'The local operating environment needs to be installed by itself',
        versionHelper: 'PHP version, e.g. v8.0',
        buildHelper:
            'The more extensions you select, the more CPU will be used during the image creation process. You can install extensions after the environment is created.',
        openrestyWarn: 'PHP needs to be upgraded to OpenResty to version 1.21.4.1 or later to use',
        toupgrade: 'To Upgrade',
        edit: 'Edit runtime',
        extendHelper:
            'Unlisted extensions can be manually entered and selected. For example, enter "sockets" and choose the first option from the dropdown list to view the extension list.',
        rebuildHelper: 'After editing the extension, you need to rebuild the PHP application to take effect',
        rebuild: 'Rebuild PHP App',
        source: 'PHP extension source',
        ustc: 'University of Science and Technology of China',
        netease: 'Netease',
        aliyun: 'Alibaba Cloud',
        tsinghua: 'Tsinghua University',
        xtomhk: 'XTOM Mirror Station (Hong Kong)',
        xtom: 'XTOM Mirror Station (Global)',
        phpsourceHelper: 'Choose the appropriate source according to your network environment',
        appPort: 'App Port',
        externalPort: 'External Port',
        packageManager: 'Package Manager',
        codeDir: 'Code Directory',
        appPortHelper: 'The port used by the application',
        externalPortHelper: 'The port exposed to the outside world',
        runScript: 'Run Script',
        runScriptHelper: 'The startup command list is parsed from the package.json file in the source directory',
        open: 'Open',
        operatorHelper:
            'The {0} operation will be performed on the selected operating environment. Do you want to continue? ',
        statusHelper:
            'Status description: Starting - the container has been started, but the application is starting; abnormal - the container has been started, but the application status is abnormal',
        taobao: 'Taobao',
        tencent: 'Tencent',
        imageSource: 'Image source',
        moduleManager: 'Module Management',
        module: 'Module',
        nodeOperatorHelper:
            'Is {0} {1} module? The operation may cause abnormality in the operating environment, please confirm before proceeding',
        customScript: 'Custom startup command',
        customScriptHelper: 'Please fill in the complete startup command, for example: npm run start',
        portError: 'Cannot fill in the same port',
        systemRestartHelper: 'Status description: Interruption - status acquisition failed due to system restart',
        javaScriptHelper:
            'Please fill in the complete startup command, for example: java -jar halo.jar -Xmx1024M -Xms256M',
        javaDirHelper: 'The directory must contain jar files, subdirectories are also acceptable',
        goHelper: 'Please provide a complete start command, for example: go run main.go or ./main',
        goDirHelper: 'The directory must contain go files or binary files, subdirectories are also acceptable',
        extension: 'Extension',
        installExtension: 'Do you confirm to install the extension {0}',
        loadedExtension: 'Loaded Extension',
        popularExtension: 'Popular Extension',
        uninstallExtension: 'Are you sure you want to uninstall the extension {0}',
        phpConfigHelper:
            'Modifying the configuration requires restarting the operating environment, do you want to continue',
        operateMode: 'operation mode',
        dynamic: 'dynamic',
        static: 'static',
        ondemand: 'on-demand',
        dynamicHelper:
            'dynamically adjust the number of processes, high flexibility, suitable for websites with large traffic fluctuations or low memory',
        staticHelper:
            'fixed number of processes, suitable for websites with high concurrency and stable traffic, high resource consumption',
        ondemandHelper:
            'processes are started and destroyed on demand, resource utilization is optimal, but the initial response may be slow',
        max_children: 'maximum number of processes allowed to be created',
        start_servers: 'number of processes created at startup',
        min_spare_servers: 'minimum number of idle processes',
        max_spare_servers: 'maximum number of idle processes',
        envKey: 'Name',
        envValue: 'Value',
        environment: 'Environment Variable',
        pythonHelper:
            'Please provide a complete start command, for example: pip install -r requirements.txt && python  manage.py runserver 0.0.0.0:5000',
        donetHelper: 'Please fill in the complete startup comman, for example: dotnet MyWebApp.dll',
    },
    process: {
        pid: 'Process ID',
        ppid: 'Parent Process ID',
        numThreads: 'Threads',
        memory: 'Memory',
        diskRead: 'Disk Read',
        diskWrite: 'Disk Write',
        netSent: 'uplink',
        netRecv: 'downstream',
        numConnections: 'Connections',
        startTime: 'Start Time',
        running: 'Running',
        sleep: 'sleep',
        stop: 'stop',
        idle: 'idle',
        zombie: 'zombie process',
        wait: 'waiting',
        lock: 'lock',
        blocked: 'blocked',
        cmdLine: 'Start Command',
        basic: 'Basic Info',
        mem: 'Memory Info',
        openFiles: 'File Open',
        env: 'Environment',
        noenv: 'None',
        net: 'Network Connection',
        laddr: 'Source address/port',
        raddr: 'Destination address/port',
        stopProcess: 'End',
        stopProcessWarn: 'Are you sure you want to end this process (PID:{0})? ',
        processName: 'Processname',
    },
    tool: {
        supervisor: {
            loadStatusErr: 'Failed to retrieve process status, please check the status of the supervisor service.',
            notSupport: 'Supervisor is not detected, please refer to the official document for installation',
            list: 'Daemon process',
            config: 'Supervisor configuration',
            primaryConfig: 'Main configuration file location',
            notSupportCrl: 'The supervisorctl is not detected, please refer to the official document for installation',
            user: 'User',
            command: 'Command',
            dir: 'Directory',
            numprocs: 'Numprocs',
            initWarn:
                'The initialization operation needs to modify the [include] files parameter of the configuration file, the directory where the modified service configuration file is located: 1panel installation directory/1panel/tools/supervisord/supervisor.d/',
            operatorHelper: 'Operation {1} will be performed on {0}, continue? ',
            uptime: 'running time',
            notStartWarn: 'Supervisor is not started, please start it first',
            serviceName: 'Service name',
            initHelper:
                'The initialization process will modify the configuration file, causing all existing processes to stop, please confirm the risk in advance',
            serviceNameHelper: 'Supervisor service name managed by systemctl, usually supervisor or supervisord',
            restartHelper:
                'Initialization will restart the service, causing all the original daemon processes to close',
            RUNNING: 'Running',
            STOPPED: 'Stopped',
            STOPPING: 'Stopping',
            STARTING: 'Starting',
            FATAL: 'Failed to start',
            BACKOFF: 'Start exception',
            ERROR: 'Error',
            statusCode: 'Status code',
            manage: 'Management',
        },
    },
    alert: {
        isAlert: 'Alert',
        alertCount: 'Alert Count',
        clamHelper: 'Trigger SMS alert when scanning infected files',
        cronJobHelper: 'Trigger SMS alert when scheduled task execution fails',
        licenseHelper: 'Professional version supports SMS alert',
        alertCountHelper: 'Maximum daily alarm frequency',
    },
    xpack: {
        expiresTrialAlert:
            'Friendly reminder: Your Pro trial will expire in {0} days, and all Pro features will no longer be accessible. Please renew or upgrade to the full version in a timely manner.',
        expiresAlert:
            'Friendly reminder: Your Pro license will expire in {0} days, and all Pro features will no longer be accessible. Please renew promptly to ensure continued usage.',
        menu: 'Pro',
        waf: {
            name: 'WAF',
            blackWhite: 'Black and White List',
            globalSetting: 'Global Settings',
            websiteSetting: 'Website Settings',
            blockRecords: 'Blocked Records',
            world: 'World',
            china: 'China',
            intercept: 'Interception',
            request: 'Requests',
            count4xx: '4xx Quantity',
            count5xx: '5xx Quantity',
            todayStatus: "Today's Status",
            reqMap: 'Attack Map (Last 30 days)',
            resource: 'Source',
            count: 'Quantity',
            hight: 'High',
            low: 'Low',
            reqCount: 'Requests',
            interceptCount: 'Interception Number',
            requestTrends: 'Request Trends (Last 7 Days)',
            interceptTrends: 'Interception Trends (Last 7 Days)',
            whiteList: 'Whitelist',
            blackList: 'Blacklist',
            ipBlackListHelper: 'IP addresses in the blacklist are blocked from accessing the website',
            ipWhiteListHelper: 'IP addresses in the whitelist bypass all restrictions',
            uaBlackListHelper: 'Requests with User-Agent values in the blacklist will be blocked',
            uaWhiteListHelper: 'Requests with User-Agent values in the whitelist bypass all restrictions',
            urlBlackListHelper: 'Requests to URLs in the blacklist will be blocked',
            urlWhiteListHelper: 'Requests to URLs in the whitelist bypass all restrictions',
            ccHelper:
                'If a website receives more than {1} requests from the same IP within {0} seconds, the IP will be blocked for {2}',
            blockTime: 'Blocking Duration',
            attackHelper: 'If cumulative interceptions exceed {1} within {0} seconds, the IP will be blocked for {2}',
            notFoundHelper:
                'If cumulative requests return 404 errors more than {1} times within {0} seconds, the IP will be blocked for {2}',
            frequencyLimit: 'Frequency Limit',
            regionLimit: 'Region Limit',
            defaultRule: 'Default Rules',
            accessFrequencyLimit: 'Access Frequency Limit',
            attackLimit: 'Attack Frequency Limit',
            notFoundLimit: '404 Frequency Limit',
            urlLimit: 'URL Frequency Limit',
            urlLimitHelper: 'Set access frequency for a single URL',
            sqliDefense: 'SQL Injection Protection',
            sqliHelper: 'Detect SQL injection in requests and block them',
            xssHelper: 'Detect XSS in requests and block them',
            xssDefense: 'XSS Protection',
            uaDefense: 'Malicious User-Agent Rules',
            uaHelper: 'Includes rules to identify common malicious bots',
            argsDefense: 'Malicious Parameter Rules',
            argsHelper: 'Blocks requests containing malicious parameters',
            cookieDefense: 'Malicious Cookie Rules',
            cookieHelper: 'Prohibit malicious cookies from being carried in requests',
            headerDefense: 'Malicious Header Rules',
            headerHelper: 'Prohibit requests from containing malicious headers',
            httpRule: 'HTTP Request Method Rules',
            httpHelper:
                'Set the method types that are allowed to access. If you want to restrict certain types of access, please turn off this type of button. For example: only GET type access is allowed, then you need to turn off other types of buttons except GET',
            geoRule: 'Regional Access Restrictions',
            geoHelper:
                'Restrict access to your website from certain regions, for example: if access is allowed from mainland China, then requests from outside mainland China will be blocked',
            ipLocation: 'IP Location',
            action: 'Action',
            ruleType: 'Attack Type',
            ipHelper: 'Enter the IP address',
            attackLog: 'Attack Log',
            rule: 'Rule',
            ipArr: 'IPV4 Range',
            ipStart: 'Start IP',
            ipEnd: 'End IP',
            ipv4: 'IPv4',
            ipv6: 'IPv6',
            urlDefense: 'URL Rules',
            urlHelper: 'Forbidden URL',
            dirFilter: 'Directory Filter',
            sqlInject: 'SQL Injection',
            xss: 'XSS',
            phpExec: 'PHP Script Execution',
            oneWordTrojan: 'One word Trojan',
            appFilter: 'Dangerous Directory Filtering',
            webshell: 'Webshell',
            args: 'Malicious Parameters',
            protocolFilter: 'Protocol Filter',
            javaFilter: 'Java Dangerous File Filtering',
            scannerFilter: 'Scanner Filter',
            escapeFilter: 'Escape Filter',
            customRule: 'Custom Rules',
            httpMethod: 'HTTP Method Filter',
            fileExt: 'File Upload Limit',
            fileExtHelper: 'Prohibited file extensions for upload',
            deny: 'Forbidden',
            allow: 'Allow',
            field: 'Object',
            pattern: 'Condition',
            ruleContent: 'Content',
            contain: 'include',
            equal: 'equal',
            regex: 'regular expression',
            notEqual: 'Not equal to',
            customRuleHelper: 'Take actions based on specified conditions',
            actionAllow: 'Allow',
            blockIP: 'Block IP',
            code: 'Return Status Code',
            noRes: 'Disconnect (444)',
            badReq: 'Invalid Parameters (400)',
            forbidden: 'Access Forbidden (403)',
            serverErr: 'Server Error (500)',
            resHtml: 'Response Page',
            allowHelper: 'Allowing access will skip subsequent WAF rules, please use with caution',
            captcha: 'human-machine verification',
            fiveSeconds: '5-Seconds verification',
            location: 'Region',
            redisConfig: 'Redis Configuration',
            redisHelper: 'Enable Redis to persist temporarily blocked IPs',
            wafHelper: 'All websites will lose protection after closing',
            attackIP: 'Attacking IP',
            attackParam: 'Attack Details',
            execRule: 'Hit Rule',
            acl: 'ACL',
            sql: 'SQL Injection',
            cc: 'Access Frequency Limit',
            isBlocking: 'Blocked',
            isFree: 'Unblocked',
            unLock: 'Unlock',
            unLockHelper: 'Do you want to unblock IP: {0}?',
            saveDefault: 'Save Default',
            saveToWebsite: 'Apply to Website',
            saveToWebsiteHelper: 'Apply current settings to all websites? ',
            websiteHelper:
                'Here are the default settings for creating a website. Modifications need to be applied to the website to take effect',
            websiteHelper2:
                'Here are the default settings for creating a website. Please modify the specific configuration at the website',
            ipGroup: 'IP Group',
            ipGroupHelper:
                'One IP or IP segment per line, supports IPv4 and IPv6, for example: 192.168.1.1 or 192.168.1.0/24',
            ipBlack: 'IP blacklist',
            openRestyAlert: 'OpenResty version needs to be higher than {0}',
            initAlert:
                'Initialization is required for first-time use, the website configuration file will be modified, and the original WAF configuration will be lost. Please be sure to back up OpenResty in advance',
            initHelper:
                'The initialization operation will clear the existing WAF configuration. Are you sure you want to initialize? ',
            mainSwitch: 'Main Switch',
            websiteAlert: 'Please create a website first',
            defaultUrlBlack: 'URL Rules',
            htmlRes: 'Intercept Page',
            urlSearchHelper: 'Please enter the URL to support fuzzy search',
            toCreate: 'Create',
            closeWaf: 'Close WAF',
            closeWafHelper: 'Closing WAF will cause the website to lose protection, do you want to continue',
            addblack: 'Black',
            addwhite: 'Add white',
            addblackHelper: 'Add IP:{0} to the default blacklist?',
            addwhiteHelper: 'Add IP:{0} to the default whitelist?',
            defaultUaBlack: 'User-Agent rule',
            defaultIpBlack: 'Malicious IP Group',
            cookie: 'Cookie Rules',
            urlBlack: 'URL Blacklist',
            uaBlack: 'User-Agent blacklist',
            attackCount: 'Attack frequency limit',
            fileExtCheck: 'File upload limit',
            geoRestrict: 'Regional access restriction',
            attacklog: 'Interception Record',
            unknownWebsite: 'Unauthorized domain name access',
            geoRuleEmpty: 'Region cannot be empty',
            unknown: 'Website Not Exist',
            geo: 'Region Restriction',
            revertHtml: 'Do you want to restore {0} as the default page?',
            five_seconds: '5-Second verification',
            header: 'Header rules',
            methodWhite: 'HTTP rules',
            expiryDate: 'Expiration date',
            expiryDateHelper:
                'After passing the verification, it will no longer be verified within the validity period',
            defaultIpBlackHelper: 'Some malicious IPs collected from the Internet to prevent access',
            notFoundCount: '404 Frequency Limit',
            matchValue: 'Match value',
            headerName: 'Supports English, numbers, -, length 3-30',
            cdnHelper: 'Websites using CDN can open here to obtain the correct source IP',
            clearLogWarn: 'Clearing the log will not be possible, do you want to continue?',
            commonRuleHelper: 'Rule is fuzzy matching',
            blockIPHelper:
                'Blocked IPs are temporarily stored in OpenResty and will be unblocked when you restart OpenResty. They can be permanently blocked through the blocking function',
            addWhiteUrlHelper: 'Add URL {0} to the whitelist?',
            dashHelper: 'The community version can also use the functions in global settings and website settings',
            wafStatusHelper: 'WAF is not enabled, please enable it in global settings',
            ccMode: 'Mode',
            global: 'Global Mode',
            uriMode: 'URL Mode',
            globalHelper:
                'Global Mode: Triggered when the total number of requests to any URL within a unit of time exceeds the threshold',
            uriModeHelper:
                'URL Mode: Triggered when the number of requests to a single URL within a unit of time exceeds the threshold',

            ip: 'IP BlackList',
            globalSettingHelper:
                'Settings with the [Website] tag need to be enabled in [Website Settings], and global settings are only the default settings for newly created websites',
            globalSettingHelper2:
                'Settings need to be enabled in both [Global Settings] and [Website Settings] at the same time',
        },
        monitor: {
            name: 'Website Monitoring',
            pv: 'Page Views',
            uv: 'Unique Visitors',
            flow: 'Traffic Flow',
            ip: 'IP',
            spider: 'Spider',
            visitors: 'Visitor Trends',
            today: 'Today',
            last7days: 'Last 7 Days',
            last30days: 'Last 30 Days',
            uvMap: 'Visitor Map (30th)',
            qps: 'Real-time Requests (per minute)',
            flowSec: 'Real-time Traffic (per minute)',
            excludeCode: 'Exclude Status Codes',
            excludeUrl: 'Exclude URLs',
            excludeExt: 'Exclude Extensions',
            cdnHelper: 'Obtain the real IP from the CDN-provided Header',
            reqRank: 'Visit Ranking',
            refererDomain: 'Referrer Domain',
            os: 'System',
            browser: 'Browser/Client',
            device: 'Device',
            showMore: 'More',
            unknown: 'Other',
            pc: 'Computer',
            mobile: 'Mobile Device',
            wechat: 'WeChat',
            machine: 'machine',
            tencent: 'Tencent Browser',
            ucweb: 'UC Browser',
            '2345explorer': '2345 browser',
            huaweibrowser: 'Huawei Browser',
            log: 'Request Logs',
            statusCode: 'Status Code',
            requestTime: 'Response Time',
            flowRes: 'Response Traffic',
            method: 'Request Method',
            statusCodeHelper: 'Enter the status code above',
            statusCodeError: 'Invalid status code type',
            methodHelper: 'Enter the request method above',
            all: 'All',
            baidu: 'Baidu',
            google: 'Google',
            bing: 'Bing',
            bytes: 'Today headlines',
            sogou: 'Sogou',
            failed: 'Error',
            ipCount: 'IP Count',
            spiderCount: 'Spider Requests',
            averageReqTime: 'Average Response Time',
            totalFlow: 'Total Flow',
            logSize: 'Log File Size',
            realIPType: 'Real IP acquisition method',
            fromHeader: 'Get from HTTP Header',
            fromHeaders: 'Get from Header list',
            header: 'HTTP Header',
            cdnConfig: 'CDN Configuration',
            xff1: 'First-level Proxy from X-Forwarded-For',
            xff2: 'Second-level Proxy from X-Forwarded-For',
            xff3: 'Third-level Proxy from X-Forwarded-For',
            xffHelper:
                'For example: X-Forwarded-For: <client>,<proxy1>,<proxy2>,<proxy3> The upper level proxy will take the last IP <proxy3>',
            headersHelper:
                'Obtain the real IP from commonly used CDN HTTP headers, selecting the first available value',
            monitorCDNHelper:
                'Modifying the CDN configuration for website monitoring will also update the WAF CDN settings',
            wafCDNHelper: 'Modifying the WAF CDN configuration will also update the website monitoring CDN settings',
            statusErr: 'Invalid status code format',
            shenma: 'Shenma Search',
            duckduckgo: 'DuckDuckGo',
            '360': '360 Search',
            excludeUri: 'Exclude URIs',
            top100Helper: 'Show the top 100 data',
            logSaveDay: 'Log Retention Period (days)',
            cros: 'Chrome OS',
            theworld: 'TheWorld Browser',
            edge: 'Microsoft Edge',
            maxthon: 'Maxthon Browser',
            monitorStatusHelper: 'Monitoring is not enabled, please enable it in settings',
            excludeIp: 'Exclude IP Addresses',
            excludeUa: 'Exclude User-Agent',
        },
        tamper: {
            tamper: 'Site Integrity',
            tamperHelper1:
                'For one-click deployment type websites, it is recommended to enable the application directory anti-tampering feature. If the website malfunctions or backup/restore fails, please disable the anti-tampering feature first.',
            tamperHelper2:
                'It will restrict the read, write, delete, permission, and owner modification operations of protected files under non-excluded directories',
            op: 'Operation',
            create: 'Create',
            file: 'File',
            tamperPath: 'Protected Directory',
            tamperPathEdit: 'Modify Path',
            log: 'Intercept Logs',
            totalProtect: 'Total Protections',
            todayProtect: 'Today’s Protections',
            addRule: 'Add Rule',
            ignore: 'Exclude Directory',
            ignoreHelper: 'One entry per line, e.g., \ntmp\n./tmp',
            ignoreHelper1: 'Add folder names or specific paths to exclude from protection.',
            ignoreHelper2: 'Use relative paths starting with ./ to exclude specific folders.',
            protect: 'Protected file',
            protectHelper: 'One entry per line, e.g., \npng\n./test.css',
            protectHelper1: 'Specify file names, extensions, or specific files to protect.',
            protectHelper2: 'Use relative paths starting with ./ to protect specific files.',
            enableHelper:
                'The anti-tampering function of website {0} is about to be enabled to enhance website security. Do you want to continue?',
            disableHelper:
                'The anti-tampering function of website {0} is about to be disabled. Do you want to continue?',
        },
        gpu: {
            gpu: 'GPU Monitor',
            base: 'Basic Information',
            gpuHelper: 'NVIDIA-SMI or XPU-SMI command not detected on the current system. Please check and try again!',
            driverVersion: 'Driver Version',
            cudaVersion: 'CUDA Version',
            process: 'Process Information',
            type: 'Type',
            typeG: 'Graphics',
            typeC: 'Compute',
            typeCG: 'Compute + Graphics',
            processName: 'Process Name',
            processMemoryUsage: 'Memory Usage',
            temperatureHelper: 'High GPU temperature can cause GPU frequency throttling',
            performanceStateHelper: 'From P0 (maximum performance) to P12 (minimum performance)',
            busID: 'Bus ID',
            persistenceMode: 'Persistence Mode',
            enabled: 'Enabled',
            disabled: 'Disabled',
            persistenceModeHelper:
                'Persistence mode allows quicker task responses but increases standby power consumption.',
            displayActive: 'Graphics Card Initialized',
            displayActiveT: 'Yes',
            displayActiveF: 'No',
            ecc: 'Error Correction and Check Technology',
            computeMode: 'Compute Mode',
            default: 'Default',
            exclusiveProcess: 'Exclusive Process',
            exclusiveThread: 'Exclusive Thread',
            prohibited: 'Prohibited',
            defaultHelper: 'Default: Processes can execute concurrently',
            exclusiveProcessHelper:
                'Exclusive Process: Only one CUDA context can use the GPU, but can be shared by multiple threads',
            exclusiveThreadHelper: 'Exclusive Thread: Only one thread in a CUDA context can use the GPU',
            prohibitedHelper: 'Prohibited: Processes are not allowed to execute simultaneously',
            migModeHelper: 'Used to create MIG instances for physical isolation of the GPU at the user level.',
            migModeNA: 'Not Supported',
        },
        setting: {
            setting: 'Panel Settings',
            title: 'Panel Description',
            titleHelper:
                'Will be displayed on the user login page (e.g. Linux server operation and maintenance management panel, recommended 8-15 characters)',
            logo: 'Logo (Without Text)',
            logoHelper:
                'Will be displayed in the upper left corner of the management page when the menu is collapsed (recommended image size: 82px*82px)',
            logoWithText: 'Logo (With Text)',
            logoWithTextHelper:
                'Will be displayed in the upper left corner of the management page when the menu is expanded (recommended image size: 185px*55px)',
            favicon: 'Website Icon',
            faviconHelper: 'Website icon (recommended image size: 16px*16px)',
            reUpload: 'Choose File',
            supportType: 'Only JPG, PNG, JPEG, and GIF files are supported.',
            setDefault: 'Restore Default',
            setHelper: 'The current settings will be saved. Do you want to continue?',
            setDefaultHelper: 'All panel settings will be restored to default. Do you want to continue?',
            reset: 'Reset',
            revertHtml: 'Do you want to restore {0} to the default page? ',
        },
        helper: {
            wafTitle1: 'Interception Map',
            wafContent1: 'Displays the geographical distribution of interceptions over the past 30 days',
            wafTitle2: 'Regional Access Restrictions',
            wafContent2: 'Restrict website access sources according to geographical locations',
            wafTitle3: 'Custom interception page',
            wafContent3: 'Create a custom page to display after a request is intercepted',
            wafTitle4: 'Custom Rules (ACL)',
            wafContent4: 'Intercept requests according to custom rules',

            tamperTitle1: 'File Integrity Monitoring',
            tamperContent1:
                'Monitor the integrity of website files, including core files, script files, and configuration files.',
            tamperTitle2: 'Real-time Scanning and Detection',
            tamperContent2: 'Detect abnormal or tampered files by real-time scanning the website file system.',
            tamperTitle3: 'Security Permission Settings',
            tamperContent3:
                'Restrict access to website files through proper permission settings and access control policies, reducing potential attack surface.',
            tamperTitle4: 'Logging and Analysis',
            tamperContent4:
                'Record file access and operation logs for subsequent auditing and analysis by administrators, as well as to identify potential security threats.',

            gpuTitle1: 'Overview Monitoring',
            gpuContent1: 'Display the current GPU usage on the overview page.',
            gpuTitle2: 'GPU Details',
            gpuContent2: 'Show GPU parameters in finer detail.',

            settingTitle1: 'Custom Welcome Message',
            settingContent1: 'Set a custom welcome message on the 1Panel login page.',
            settingTitle2: 'Custom Logo',
            settingContent2: 'Allow uploading logo images containing brand names or other text.',
            settingTitle3: 'Custom Website Icon',
            settingContent3:
                'Allow uploading custom icons to replace the default browser icon, improving user experience.',

            monitorTitle1: 'Visitor Trend',
            monitorContent1: 'Statistics and displays website visitor trends',
            monitorTitle2: 'Visitor Map',
            monitorContent2: 'Statistics and displays the geographical distribution of visitors to the website',
            monitorTitle3: 'Access Statistics',
            monitorContent3:
                'Statistics on website request information, including spiders, access devices, request status, etc.',
            monitorTitle4: 'Real-time monitoring',
            monitorContent4:
                'Real-time monitoring of website request information, including number of requests, traffic, etc.',

            alertTitle1: 'SMS Alerts',
            alertContent1:
                'When abnormal server resource usage, website and certificate expiration, new version update, password expiration, etc. occur, users will be notified via SMS alarm to ensure timely processing.',
            alertTitle2: 'Alert log',
            alertContent2:
                'Provide users with the function of viewing alarm logs to facilitate tracking and analysis of historical alarm events.',
            alertTitle3: 'Alert Settings',
            alertContent3:
                'Provide users with custom phone numbers, daily push frequency, and daily push time configurations, making it easier for users to set up more reasonable push alerts.',
        },
        alert: {
            alert: 'SMS Alert',
            logs: 'Alert Logs',
            list: 'Alert List',
            addTask: 'Create Alert',
            editTask: 'Edit Alert',
            alertMethod: 'Method',
            alertMsg: 'Alert Message',
            alertRule: 'Alert Rules',
            titleSearchHelper: 'Enter alert title for fuzzy search',
            taskType: 'Type',
            ssl: 'Certificate (SSL) Expiry',
            siteEndTime: 'Website Expiry',
            panelPwdEndTime: 'Panel Password Expiry',
            panelUpdate: 'New Panel Version Available',
            cpu: 'Server CPU Alert',
            memory: 'Server Memory Alert',
            load: 'Server Load Alert',
            disk: 'Server Disk Alert',
            website: 'Website',
            certificate: 'SSL Certificate',
            remainingDays: 'Remaining Days',
            sendCount: 'Send Count',
            sms: 'SMS',
            wechat: 'WeChat',
            dingTalk: 'DingTalk',
            feiShu: 'FeiShu',
            mail: 'Email',
            weCom: 'WeCom',
            sendCountRulesHelper: 'Total alerts sent before expiry (once daily)',
            panelUpdateRulesHelper: 'Total alerts sent for new panel version (once daily)',
            oneDaySendCountRulesHelper: 'Maximum alerts sent per day',
            siteEndTimeRulesHelper: 'Websites that never expire will not trigger alerts',
            autoRenewRulesHelper:
                'Certificates with auto-renew enabled and remaining days less than 31 will not trigger alerts',
            panelPwdEndTimeRulesHelper: 'Panel password expiry alerts are unavailable if no expiration is set',
            sslRulesHelper: 'All SSL Certificates',
            diskInfo: 'Disk',
            monitoringType: 'Monitoring Type',
            autoRenew: 'Auto-Renew',
            useDisk: 'Disk Usage',
            usePercentage: 'Usage Percentage',
            changeStatus: 'Change Status',
            disableMsg:
                'Stopping the alert task will prevent this task from sending alert messages. Do you want to continue?',
            enableMsg: 'Enabling the alert task will allow this task to send alert messages. Do you want to continue?',
            useExceed: 'Usage Exceeds',
            useExceedRulesHelper: 'Trigger alert when usage exceeds the set value',
            cpuUseExceedAvg: 'The average cpu usage exceeds the specified value',
            memoryUseExceedAvg: 'The average memory usage exceeds the specified value',
            loadUseExceedAvg: 'The average load usage exceeds the specified value',
            cpuUseExceedAvgHelper: 'The average cpu usage within the specified time exceeds the specified value',
            memoryUseExceedAvgHelper: 'The average memory usage within the specified time exceeds the specified value',
            loadUseExceedAvgHelper: 'The average load usage within the specified time exceeds the specified value',
            resourceAlertRulesHelper: 'Note: Continuous alerts within 30 minutes will send only one SMS',
            specifiedTime: 'Specified Time',
            deleteTitle: 'Delete Alert',
            deleteMsg: 'Are you sure you want to delete the alert task?',

            allSslTitle: 'All Website SSL Certificate Expiry Alerts',
            sslTitle: 'SSL Certificate Expiry Alert for Website {0}',
            allSiteEndTimeTitle: 'All Website Expiry Alerts',
            siteEndTimeTitle: 'Website {0} Expiry Alert',
            panelPwdEndTimeTitle: 'Panel Password Expiry Alert',
            panelUpdateTitle: 'New Panel Version Notification',
            cpuTitle: 'High CPU Usage Alert',
            memoryTitle: 'High Memory Usage Alert',
            loadTitle: 'High Load Alert',
            diskTitle: 'High Disk Usage Alert for Mount Directory {0}',
            allDiskTitle: 'High Disk Usage Alert',

            timeRule: 'Remaining time less than {0} days (if not handled, will resend the next day)',
            panelUpdateRule:
                'Send an alert once when a new panel version is detected (if not handled, will resend the next day)',
            avgRule: 'Average {1} usage exceeds {2}% within {0} minutes, triggers alert, sends {3} times per day',
            diskRule: 'Disk usage for mount directory {0} exceeds {1}{2}, triggers alert, sends {3} times per day',
            allDiskRule: 'Disk usage exceeds {0}{1}, triggers alert, sends {2} times per day',

            cpuName: ' CPU ',
            memoryName: 'Memory',
            loadName: 'Load',
            diskName: 'Disk',

            syncAlertInfo: 'Manual Push',
            syncAlertInfoMsg: 'Do you want to manually push the alert task?',
            pushError: 'Push Failed',
            pushSuccess: 'Push Successful',
            syncError: 'Sync Failed',
            success: 'Alert Successful',
            cleanLog: 'Clean Logs',
            cleanAlertLogs: 'Clean Alert Logs',
            daily: 'Daily Alert Count: {0}',
            cumulative: 'Cumulative Alert Count: {0}',
            clams: 'Virus scan',
            taskName: 'Task Name',
            cronJobType: 'Task Type',
            clamPath: 'Scan Directory',
            cronjob: 'Cronjob',
            app: 'Backup App',
            web: 'Backup Website',
            database: 'Backup Database',
            directory: 'Backup Directory',
            log: 'Backup Logs',
            snapshot: 'System Snapshot',
            clamsRulesHelper: 'Virus scanning tasks that require SMS alerts',
            cronJobRulesHelper: 'This type of scheduled task needs to be configured',
            clamsTitle: 'Virus scan task 「 {0} 」 detected infected file alert',
            cronJobAppTitle: 'Cronjob - Backup App 「 {0} 」 Task Failure Alert',
            cronJobWebsiteTitle: 'Cronjob - Backup Website「 {0} 」Task Failure Alert',
            cronJobDatabaseTitle: 'Cronjob - Backup Database「 {0} 」Task Failure Alert',
            cronJobDirectoryTitle: 'Cronjob - Backup Directory「 {0} 」Task Failure Alert',
            cronJobLogTitle: 'Cronjob - Backup Logs「 {0} 」Task Failure Alert',
            cronJobSnapshotTitle: 'Cronjob - Backup Snapshot「 {0} 」Task Failure Alert',
            cronJobShellTitle: 'Cronjob - Shell script 「 {0} 」Task Failure Alert',
            cronJobCurlTitle: 'Cronjob - URL access「 {0} 」Task Failure Alert',
            cronJobCutWebsiteLogTitle: 'Cronjob - Cut website log「 {0} 」Task Failure Alert',
            cronJobCleanTitle: 'Cronjob - Cache cleaning「 {0} 」Task Failure Alert',
            cronJobNtpTitle: 'Cronjob - Synchronization server time「 {0} 」Task Failure Alert',
            clamsRule: 'Virus scan detected infected file alert，sent {0} times per day',
            cronJobAppRule: 'Backup app task failed alert，sent {0} times per day',
            cronJobWebsiteRule: 'Backup website task failed alert，sent {0} times per day',
            cronJobDatabaseRule: 'Backup database task failed alert，sent {0} times per day',
            cronJobDirectoryRule: 'Backup directory task failed alert，sent {0} times per day',
            cronJobLogRule: 'Backup logs task failed alert，sent {0} times per day',
            cronJobSnapshotRule: 'Backup snapshot task failed alert，sent {0} times per day',
            cronJobShellRule: 'Shell script task failed alert，sent {0} times per day',
            cronJobCurlRule: 'URL access task failed alert，sent {0} times per day',
            cronJobCutWebsiteLogRule: 'Cut website log task failed alert，sent {0} times per day',
            cronJobCleanRule: 'Cache cleaning task failed alert，sent {0} times per day',
            cronJobNtpRule: 'Synchronization server time task failed alert，sent {0} times per day',
            alertSmsHelper: 'SMS limit: total of {0} messages, {1} already used',
            goBuy: 'Purchase More',
            phone: 'Phone',
            phoneHelper: 'Provide real phone number for alert messages',
            dailyAlertNum: 'Daily Alert Limit',
            dailyAlertNumHelper: 'Maximum number of alerts per day (up to 100)',
            timeRange: 'Time Range',
            sendTimeRange: 'Send sms time range',
            sendTimeRangeHelper: 'Can push {0} time range',
            to: 'to',
            startTime: 'Start Time',
            endTime: 'End Time',
            defaultPhone: 'Default to license-bound account phone number',
            noticeAlert: 'Notice Alert',
            resourceAlert: 'Resource Alert',
        },
        theme: {
            lingXiaGold: 'Ling Xia Gold',
            classicBlue: 'Classic Blue',
            freshGreen: 'Fresh Green',
            customColor: 'Custom Color',
            setDefault: 'Default',
            setDefaultHelper:
                'The theme color scheme is about to be restored to its initial state. Do you want to continue?',
            setHelper: 'The currently selected theme color scheme is about to be saved. Do you want to continue?',
        },
    },
};

export default {
    ...fit2cloudEnLocale,
    ...message,
};
