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

const message = {
    commons: {
        true: 'Benar',
        false: 'Palsu',
        colon: ': ',
        example: 'cth., ',
        fit2cloud: 'FIT2CLOUD',
        lingxia: 'LXware',
        button: {
            run: 'Jalankan',
            add: 'Tambah',
            select: 'Pilih',
            save: 'Simpan',
            set: 'Tetapan',
            sync: 'Selaras',
            delete: 'Padam',
            edit: 'Sunting',
            enable: 'Aktifkan',
            disable: 'Nyahaktifkan',
            confirm: 'Sahkan',
            cancel: 'Batal',
            reset: 'Tetapkan semula',
            restart: 'Mulakan semula',
            conn: 'Sambung',
            disConn: 'Putus sambungan',
            clean: 'Kosongkan',
            cleanAll: 'Kosongkan semua',
            selectAll: 'Pilih semua',
            login: 'Log masuk',
            close: 'Tutup',
            stop: 'Henti',
            start: 'Mula',
            view: 'Lihat',
            watch: 'Ikuti',
            handle: 'Jalankan',
            clone: 'Klon',
            expand: 'Kembang',
            collapse: 'Runtuh',
            log: 'Log',
            back: 'Kembali',
            backup: 'Sandaran',
            recover: 'Pulihkan',
            retry: 'Cuba lagi',
            upload: 'Muat naik',
            download: 'Muat turun',
            init: 'Mulakan',
            verify: 'Sahkan',
            saveAndEnable: 'Simpan dan aktifkan',
            import: 'Import',
            importAll: 'Import semua',
            export: 'Eksport',
            power: 'Hantar',
            search: 'Cari',
            refresh: 'Segarkan',
            reconnect: 'Sambung semula',
            get: 'Dapatkan',
            upgrade: 'Tingkatkan',
            update: 'Kemas Kini',
            ignore: 'Abaikan peningkatan',
            install: 'Pasang',
            copy: 'Salin',
            random: 'Jana',
            uninstall: 'Nyahpasang',
            fullscreen: 'Masuk ke skrin penuh',
            quitFullscreen: 'Keluar dari skrin penuh',
            showAll: 'Tunjukkan Semua',
            hideSome: 'Sembunyikan Sebahagian',
            agree: 'Setuju',
            notAgree: 'Tidak Setuju',
            preview: 'Pratonton',
            open: 'Buka',
            notSave: 'Jangan simpan',
            createNewFolder: 'Cipta folder baru',
            createNewFile: 'Cipta fail baru',
            helpDoc: 'Dokumentasi',
            unbind: 'Nyahkaitkan',
            cover: 'Tindih',
            skip: 'Langkau',
            fix: 'Betulkan',
            down: 'Hentikan',
            up: 'Mulakan',
            sure: 'Sahkan',
            show: 'Tunjukkan',
            hide: 'Sembunyikan',
            visit: 'Buka',
            migrate: 'Migrasi',
            prev: 'Sebelumnya',
            next: 'Seterusnya',
            create: 'Cipta',
            setDefault: 'Pulihkan lalai',
            bind: 'Pautkan',
            tip: 'Tip',
        },
        operate: {
            start: 'Mula',
            stop: 'Hentikan',
            restart: 'Mulai Semula',
            reload: 'Muat Semula',
            rebuild: 'Bangun Semula',
            sync: 'Segerakkan',
            up: 'Naik',
            down: 'Turun',
            delete: 'Padam',
        },
        search: {
            timeStart: 'Masa mula',
            timeEnd: 'Masa tamat',
            timeRange: 'Hingga',
            dateStart: 'Tarikh mula',
            dateEnd: 'Tarikh tamat',
            date: 'Tarikh',
        },
        table: {
            all: 'Semua',
            total: 'Jumlah {0}',
            name: 'Nama',
            type: 'Jenis',
            card: 'Kad',
            table: 'Jadual',
            status: 'Status',
            statusSuccess: 'Berjaya',
            statusFailed: 'Gagal',
            statusWaiting: 'Menunggu...',
            records: 'Rekod',
            group: 'Kumpulan',
            createdAt: 'Waktu dicipta',
            publishedAt: 'Waktu diterbitkan',
            date: 'Tarikh',
            updatedAt: 'Waktu dikemas kini',
            operate: 'Operasi',
            message: 'Mesej',
            description: 'Penerangan',
            interval: 'Selang masa',
            user: 'Pemilik',
            title: 'Tajuk',
            port: 'Port',
            forward: 'Hadapan',
            protocol: 'Protokol',
            tableSetting: 'Tetapan jadual',
            refreshRate: 'Kadar penyegaran',
            selectColumn: 'Pilih lajur',
            local: 'Tempatan',
            serialNumber: 'Nombor siri',
            manageGroup: 'Urus Kumpulan',
            backToList: 'Kembali ke Senarai',
            keepEdit: 'Teruskan Mengedit',
            pin: 'Semat ke atas',
            unpin: 'Nyahsemat',
            default: 'Lalai',
            noRefresh: 'Tiada segar semula auto',
            creator: 'Pencipta',
            updater: 'Pengemaskini',
        },
        loadingText: {
            Upgrading: 'Peningkatan sistem, sila tunggu...',
            Restarting: 'Memulakan semula sistem, sila tunggu...',
            Recovering: 'Memulihkan daripada snapshot, sila tunggu...',
            Rollbacking: 'Mengembalikan daripada snapshot, sila tunggu...',
        },
        msg: {
            noneData: 'Tiada data tersedia',
            delete: 'Operasi ini tidak boleh diundur. Adakah anda mahu meneruskan?',
            clean: 'Operasi ini tidak boleh diundur. Adakah anda mahu meneruskan?',
            closeDrawerHelper: 'Sistem mungkin tidak menyimpan perubahan yang anda buat. Adakah anda ingin teruskan?',
            deleteSuccess: 'Berjaya dipadam',
            loginSuccess: 'Berjaya log masuk',
            operationSuccess: 'Berjaya dilakukan',
            operationFailed: 'Operasi gagal',
            copySuccess: 'Berjaya disalin',
            notSupportOperation: 'Operasi ini tidak disokong',
            requestTimeout: 'Permintaan telah tamat masa, sila cuba lagi nanti',
            infoTitle: 'Petunjuk',
            notRecords: 'Tiada rekod pelaksanaan dijana untuk tugas semasa',
            sureLogOut: 'Adakah anda pasti mahu log keluar?',
            createSuccess: 'Berjaya dicipta',
            updateSuccess: 'Berjaya dikemas kini',
            uploadSuccess: 'Berjaya dimuat naik',
            operateConfirm: 'Jika anda pasti dengan operasi ini, sila masukkan secara manual: ',
            inputOrSelect: 'Sila pilih atau masukkan',
            selectOne: 'Sila pilih satu {0}',
            copyFailed: 'Gagal disalin',
            operatorHelper:
                'Operasi "{1}" akan dilakukan pada "{0}" dan tidak boleh diundur. Adakah anda mahu meneruskan?',
            notFound: 'Maaf, halaman yang anda minta tidak wujud.',
            unSupportType: 'Jenis fail semasa tidak disokong.',
            unSupportSize: 'Fail yang dimuat naik melebihi {0}M, sila sahkan!',
            fileExist: 'Fail sudah wujud dalam folder semasa. Memuat naik semula tidak disokong.',
            fileNameErr:
                'Anda hanya boleh memuat naik fail dengan nama yang mengandungi 1 hingga 256 aksara, termasuk Bahasa Inggeris, Cina, nombor, atau titik (.-_)',
            confirmNoNull: 'Pastikan nilai {0} tidak kosong.',
            errPort: 'Maklumat port tidak betul, sila sahkan!',
            remove: 'Buang',
            backupHelper: 'Operasi semasa akan membuat sandaran {0}. Adakah anda mahu meneruskan?',
            recoverHelper:
                'Memulihkan daripada fail {0}. Operasi ini tidak boleh diundur. Adakah anda mahu meneruskan?',
            refreshSuccess: 'Berjaya disegarkan',
            rootInfoErr: 'Ia sudah menjadi direktori akar',
            resetSuccess: 'Berjaya ditetapkan semula',
            creatingInfo: 'Sedang mencipta, operasi ini tidak diperlukan',
            offlineTips: 'Versi luar talian tidak menyokong operasi ini',
            errImportFormat: 'Data import atau format adalah tidak normal, sila periksa dan cuba lagi!',
            importHelper:
                'Apabila mengimport data yang bercanggah atau pendua, kandungan yang diimport akan digunakan sebagai piawai untuk mengemas kini data pangkalan data asal.',
            errImport: 'Kandungan fail adalah tidak normal:',
            backupSuccess: 'Sandaran berjaya',
            restoreSuccess: 'Pemulihan berjaya',
            installSuccess: 'Pemasangan berjaya',
            uninstallSuccess: 'Nyahpasang berjaya',
        },
        login: {
            username: 'Pengguna',
            password: 'Kata Laluan',
            passkey: 'Log masuk Passkey',
            otherLoginMethods: 'Kaedah log masuk lain',
            welcome: 'Selamat datang kembali, sila masukkan nama pengguna dan kata laluan anda untuk log masuk!',
            errorAuthInfo: 'Nama pengguna atau kata laluan yang anda masukkan tidak betul, sila cuba lagi!',
            errorMfaInfo: 'Maklumat pengesahan tidak betul, sila cuba lagi!',
            captchaHelper: 'Captcha',
            errorCaptcha: 'Ralat kod captcha!',
            codeInput: 'Sila masukkan kod pengesahan 6 digit dari pengesah MFA',
            mfaTitle: 'Pengesahan MFA',
            mfaCode: 'Kod pengesahan MFA',
            title: 'Panel Pengurusan Pelayan Linux',
            licenseHelper: '<Perjanjian Lesen Komuniti>',
            errorAgree: 'Klik untuk bersetuju dengan Lesen Perisian Komuniti',
            logout: 'Log keluar',
            agreeTitle: 'Agreement',
            agreeContent:
                'Untuk melindungi hak dan kepentingan sah anda dengan lebih baik, sila baca dan setuju dengan perjanjian berikut &laquo; <a href = "https://www.fit2cloud.com/legal/licenses.html" target = "_blank" > Perjanjian Lesen Komuniti </a> &raquo;',
            passkeyFailed: 'Log masuk Passkey gagal, sila cuba lagi',
            passkeyNotSupported: 'Pelayar atau persekitaran semasa tidak menyokong passkey',
            passkeyToPassword: 'Ada masalah menggunakan passkey? Gunakan kata laluan sahaja',
        },
        rule: {
            username: 'Masukkan nama pengguna',
            password: 'Masukkan kata laluan',
            rePassword: 'Pengesahan kata laluan tidak sepadan dengan kata laluan.',
            requiredInput: 'Ruangan ini wajib diisi.',
            requiredSelect: 'Pilih satu item dalam senarai',
            illegalChar: 'Suntikan aksara & ; $ \' ` ( ) " > < ｜ tidak disokong buat masa ini',
            illegalInput: 'Ruangan ini tidak boleh mengandungi aksara tidak sah.',
            duplicate: 'Nilai ini mesti unik.',
            commonName:
                'Ruangan ini mesti bermula dengan aksara bukan khas dan mesti terdiri daripada aksara rumi, Cina, nombor, ".", "-", dan "_" dengan panjang 1-128 aksara.',
            userName:
                'Menyokong bermula dengan bukan aksara khas, Bahasa Inggeris, Bahasa Cina, nombor, dan _, panjang 3-30',
            simpleName:
                'Ruangan ini tidak boleh bermula dengan aksara garis bawah ("_") dan mesti terdiri daripada aksara rumi, nombor, dan "_" dengan panjang 3-30 aksara.',
            simplePassword:
                'Ruangan ini tidak boleh bermula dengan aksara garis bawah ("_") dan mesti terdiri daripada aksara rumi, nombor, dan "_" dengan panjang 1-30 aksara.',
            dbName: 'Ruangan ini tidak boleh bermula dengan aksara garis bawah ("_") dan mesti terdiri daripada aksara rumi, nombor, dan "_" dengan panjang 1-64 aksara.',
            imageName: 'Menyokong bermula dengan bukan aksara khas, Bahasa Inggeris, nombor, :@/.-_, panjang 1-256',
            composeName:
                'Menyokong aksara bukan khas pada permulaan, huruf kecil, nombor, "-", dan "_", dengan panjang 1-256 aksara.',
            volumeName:
                'Ruangan ini mesti terdiri daripada aksara Bahasa Inggeris, nombor, ".", "-", dan "_" dengan panjang 2-30 aksara.',
            supervisorName:
                'Ruangan ini mesti bermula dengan aksara bukan khas dan mesti terdiri daripada aksara rumi, nombor, "-", dan "_" dengan panjang 1-128 aksara.',
            complexityPassword:
                'Menyokong gabungan kata laluan dengan panjang 8-30 aksara yang mengandungi sekurang-kurangnya dua daripada huruf, nombor, dan aksara khas.',
            commonPassword: 'Panjang ruangan ini mesti melebihi 6 aksara.',
            linuxName:
                'Panjang ruangan ini mesti antara 1 hingga 128 aksara. Ruangan ini tidak boleh mengandungi aksara khas berikut: "{0}".',
            email: 'Ruangan ini mesti mengandungi alamat emel yang sah.',
            number: 'Ruangan ini mesti mengandungi nombor.',
            integer: 'Ruangan ini mesti mengandungi integer positif.',
            ip: 'Ruangan ini mesti mengandungi alamat IP yang sah.',
            host: 'Ruangan ini mesti mengandungi alamat IP atau nama domain yang sah.',
            hostHelper: 'Menyokong input alamat IP atau nama domain',
            port: 'Ruangan ini mesti mengandungi nombor port yang sah.',
            selectHelper: 'Sila pilih fail {0} yang betul',
            domain: 'Ruangan ini mesti dalam format: example.com atau example.com:8080.',
            databaseName:
                'Ruangan ini mesti terdiri daripada aksara Bahasa Inggeris, nombor, dan "_" dengan panjang 1-30 aksara.',
            ipErr: 'Ruangan ini mesti mengandungi alamat IP yang sah.',
            numberRange: 'Ruangan ini mesti mengandungi nombor antara {0} dan {1}.',
            paramName:
                'Ruangan ini mesti terdiri daripada aksara rumi, nombor, ".", "-", dan "_" dengan panjang 2-30 aksara.',
            paramComplexity:
                'Ruangan ini tidak boleh bermula atau berakhir dengan aksara khas dan mesti terdiri daripada aksara rumi, nombor, "{0}" dengan panjang 6-128 aksara.',
            paramUrlAndPort: 'Ruangan ini mesti dalam format "http(s)://(nama domain/IP):(port)".',
            nginxDoc: 'Ruangan ini mesti terdiri daripada aksara rumi, nombor, dan ".".',
            appName:
                'Ruangan ini tidak boleh bermula atau berakhir dengan "-" dan "_" dan mesti terdiri daripada aksara rumi, nombor, "-", dan "_" dengan panjang 2-30 aksara.',
            containerName:
                'Menyokong huruf, nombor, -, _ dan .; tidak boleh bermula dengan -, _ atau .; panjang: 2-128 aksara.',
            mirror: 'Alamat pecutan cermin mesti bermula dengan http(s)://, menyokong huruf (huruf besar dan kecil), nombor, ., / dan -, serta tidak boleh mengandungi baris kosong.',
            disableFunction: 'Hanya menyokong huruf, garis bawah, dan ,',
            leechExts: 'Hanya menyokong huruf, nombor, dan ,',
            paramSimple: 'Menyokong huruf kecil dan nombor, panjang 1-128 aksara.',
            filePermission: 'Ralat Kebenaran Fail',
            formatErr: 'Ralat format, sila semak dan cuba lagi',
            phpExtension: 'Hanya menyokong huruf kecil, _, dan nombor',
            paramHttp: 'Mesti bermula dengan http:// atau https://',
            phone: 'Format nombor telefon tidak betul.',
            authBasicPassword: 'Menyokong huruf, nombor, dan aksara khas biasa, panjang 1-72',
            length128Err: 'Panjang tidak boleh melebihi 128 aksara',
            maxLength: 'Panjang tidak boleh melebihi {0} aksara',
            alias: 'Menyokong Bahasa Inggeris, nombor, - dan _, panjang 1-128, dan tidak boleh bermula atau berakhir dengan -_.',
            vmName: 'Menyokong huruf Inggeris, nombor, ".", "-" dan "_"; panjang: 1-64; mesti bermula dengan huruf atau nombor.',
            vmNetwork:
                'Menyokong huruf Inggeris, nombor, ".", ":", "-" dan "_"; panjang: 1-64; mesti bermula dengan huruf atau nombor.',
        },
        res: {
            paramError: 'Permintaan gagal, sila cuba lagi nanti!',
            forbidden: 'Pengguna semasa tidak mempunyai kebenaran',
            serverError: 'Kecacatan perkhidmatan',
            notFound: 'Sumber tidak wujud',
            commonError: 'Permintaan gagal',
        },
        service: {
            serviceNotStarted: 'Perkhidmatan {0} belum dimulakan.',
        },
        status: {
            running: 'Sedang Berjalan',
            done: 'Selesai',
            scanFailed: 'Tidak Lengkap',
            success: 'Berjaya',
            waiting: 'Menunggu',
            waitForUpgrade: 'Tunggu Naik Taraf',
            failed: 'Gagal',
            stopped: 'Dihentikan',
            error: 'Ralat',
            created: 'Dicipta',
            restarting: 'Memulakan Semula',
            uploading: 'Sedang Memuat Naik',
            unhealthy: 'Tidak Sihat',
            removing: 'Sedang Membuang',
            paused: 'Dijeda',
            exited: 'Keluar',
            partial: 'Separa',
            dead: 'Mati',
            installing: 'Sedang Memasang',
            enabled: 'Diaktifkan',
            disabled: 'Dilumpuhkan',
            normal: 'Normal',
            building: 'Sedang Membina',
            upgrading: 'Sedang Meningkatkan',
            pending: 'Menunggu Edit',
            rebuilding: 'Sedang Membina Semula',
            deny: 'Ditolak',
            accept: 'Diterima',
            used: 'Digunakan',
            starting: 'Sedang Memulakan',
            recreating: 'Sedang Mencipta Semula',
            creating: 'Sedang Mencipta',
            init: 'Menunggu aplikasi',
            ready: 'Normal',
            applying: 'Sedang Memohon',
            uninstalling: 'Menyahpasang',
            lost: 'Hilang',
            bound: 'Terikat',
            unbind: 'Tidak terikat',
            exceptional: 'Luar biasa',
            free: 'Bebas',
            enable: 'Aktif',
            disable: 'Dilumpuhkan',
            deleted: 'Dihapus',
            notfound: 'Tidak ditemukan',
            inactive: 'Tidak aktif',
            degraded: 'Menurun',
            inaccessible: 'Tidak boleh diakses',
            unknown: 'Tidak diketahui',
            downloading: 'Memuat turun',
            packing: 'Membungkus',
            sending: 'Menghantar',
            healthy: 'Sihat',
            executing: 'Melaksanakan',
            installerr: 'Pemasangan gagal',
            applyerror: 'Permohonan gagal',
            systemrestart: 'Dihentikan',
            starterr: 'Permulaan gagal',
            uperr: 'Permulaan gagal',
            new: 'Baru',
            conflict: 'Konflik',
            duplicate: 'Pendua',
            unexecuted: 'Tidak Dilaksanakan',
            canceled: 'Dibatalkan',
            unused: 'Tidak digunakan',
        },
        units: {
            second: 'saat | saat | saat',
            minute: 'minit | minit | minit',
            hour: 'jam | jam | jam',
            day: 'hari | hari | hari',
            week: 'minggu | minggu | minggu',
            month: 'bulan | bulan | bulan',
            year: 'tahun | tahun | tahun',
            time: 'masa',
            core: 'teras | teras | teras',
            secondUnit: 's',
            minuteUnit: 'min',
            hourUnit: 'h',
            dayUnit: 'd',
            millisecond: 'Milisaat',
            semicolon: ';',
        },
        log: {
            noLog: 'Tiada log sedia ada',
        },
    },
    menu: {
        home: 'Papan Pemuka',
        apps: 'App Store',
        website: 'Laman | Laman',
        project: 'Projek',
        config: 'Konfigurasi',
        ssh: 'Tetapan SSH',
        firewall: 'Firewall',
        ssl: 'Sijil',
        database: 'Pangkalan Data',
        aiTools: 'AI',
        mcp: 'MCP',
        container: 'Kontena',
        cronjob: 'Tugas Berjadual',
        system: 'System',
        security: 'Security',
        files: 'Files',
        monitor: 'Monitoring',
        terminal: 'Terminal',
        settings: 'Tetapan',
        toolbox: 'Toolbox',
        logs: 'Log | Logs',
        runtime: 'Persekitaran Masa Jalan',
        processManage: 'Pengurusan Proses',
        process: 'Proses',
        network: 'Rangkaian',
        supervisor: 'Supervisor',
        tamper: 'Bukti Pengubahsuaian',
        app: 'Aplikasi',
        msgCenter: 'Tugas',
        disk: 'Disk',
        template: 'Templat',
        filter: 'Penapis',
    },
    home: {
        recommend: 'Disyorkan',
        dir: 'Direktori',
        alias: 'Alias',
        quickDir: 'Akses Pantas',
        minQuickJump: 'Tambah sekurang-kurangnya satu entri akses pantas',
        maxQuickJump: 'Anda boleh menambah sehingga empat entri akses pantas',
        database: 'Pangkalan Data - Semua',
        restart_1panel: 'Mulakan semula panel',
        restart_system: 'Mulakan semula pelayan',
        operationSuccess: 'Selesai dengan jayanya. Menyusun semula sekarang, muat semula pelayar kemudian.',
        entranceHelper:
            'Pintu masuk selamat tidak diaktifkan. Hidupkan di "Tetapan -> Keselamatan" untuk tingkatkan keselamatan.',
        appInstalled: 'Aplikasi yang dipasang',
        systemInfo: 'Maklumat sistem',
        hostname: 'Nama hos',
        platformVersion: 'Sistem pengendalian',
        kernelVersion: 'Kernel',
        kernelArch: 'Seni bina',
        network: 'Rangkaian',
        io: 'Disk I/O',
        ip: 'Local IP',
        proxy: 'Proksi sistem',
        baseInfo: 'Base info',
        totalSend: 'Jumlah dihantar',
        totalRecv: 'Jumlah diterima',
        rwPerSecond: 'Operasi I/O',
        ioDelay: 'I/O latency',
        uptime: 'Up since',
        runningTime: 'Uptime',
        mem: 'Memori Sistem',
        swapMem: 'Swap partition',
        runSmoothly: 'Beban rendah',
        runNormal: 'Beban sederhana',
        runSlowly: 'Beban tinggi',
        runJam: 'Beban berat',
        core: 'Teras Fizikal',
        corePercent: 'Penggunaan Teras',
        cpuFrequency: 'Frekuensi CPU',
        cpuDetailedPercent: 'Pengagihan Masa CPU',
        cpuUser: 'Pengguna',
        cpuSystem: 'Sistem',
        cpuIdle: 'Tidak Aktif',
        cpuIrq: 'IRQ',
        cpuSoftirq: 'Soft IRQ',
        cpuSteal: 'Dicuri',
        cpuTop: 'Maklumat Proses 5 Teratas Mengikut Penggunaan CPU',
        memTop: 'Maklumat Proses 5 Teratas Mengikut Penggunaan Memori',
        logicCore: 'Teras Logik',
        loadAverage: 'Purata beban dalam {0} minit terakhir',
        load: 'Beban',
        mount: 'Titik Pemasangan',
        fileSystem: 'Sistem Fail',
        total: 'Jumlah',
        used: 'Digunakan',
        cache: 'Cache',
        free: 'Bebas',
        shard: 'Shard',
        available: 'Tersedia',
        percent: 'Penggunaan',
        goInstall: 'Pergi pasang',
        networkCard: 'Kad rangkaian',
        disk: 'Disk',
        memo: 'Catatan',
        memoPlaceholder: 'Klik butang edit untuk mengaktifkan penyuntingan.',
        carouselSetting: 'Tetapan karusel',
        tooltipSensitiveInfo: 'Tunjuk/Sembunyikan maklumat sensitif',
    },
    tabs: {
        more: 'Lagi',
        hide: 'Sembunyi',
        closeLeft: 'Tutup kiri',
        closeRight: 'Tutup kanan',
        closeCurrent: 'Tutup semasa',
        closeOther: 'Tutup lain',
        closeAll: 'Tutup Semua',
    },
    header: {
        logout: 'Log keluar',
    },
    database: {
        manage: 'Pengurusan',
        deleteBackupHelper: 'Padam sandaran pangkalan data secara serentak',
        delete: 'Operasi padam tidak boleh diundurkan, sila masukkan "',
        deleteHelper: '" untuk memadam pangkalan data ini',
        deleteUserHelper: '" untuk memadam pengguna ini',
        userBoundDatabases: 'mempunyai akses kepada pangkalan data berikut:',
        noMysql: 'Perkhidmatan pangkalan data (MySQL atau MariaDB)',
        noPostgresql: 'Perkhidmatan pangkalan data PostgreSQL',
        goUpgrade: 'Pergi tingkatkan',
        goInstall: 'Pergi pasang',
        isDelete: 'Dihapuskan',
        permission: 'Kebenaran',
        format: 'Set Aksara',
        collation: 'Kolasi',
        collationHelper: 'Jika kosong, gunakan kolasi lalai set aksara {0}',
        permissionForIP: 'IP',
        permissionAll: 'Kesemuanya(%)',
        localhostHelper:
            'Mengkonfigurasi kebenaran pangkalan data sebagai "localhost" untuk penyebaran kontena akan menghalang akses luar ke kontena. Sila pilih dengan teliti!',
        databaseConnInfo: 'Sambungan',
        rootPassword: 'Kata laluan root',
        serviceName: 'Nama Perkhidmatan',
        serviceNameHelper: 'Akses antara kontena dalam rangkaian yang sama.',
        backupList: 'Sandaran',
        loadBackup: 'Import',
        localUpload: 'Muat Naik Tempatan',
        hostSelect: 'Pemilihan Pelayan',
        selectHelper: 'Adakah anda pasti ingin mengimport fail sandaran {0}?',
        remoteAccess: 'Akses jauh',
        remoteHelper: 'Berbilang IP dipisahkan dengan koma, contoh: 172.16.10.111,172.16.10.112',
        remoteConnHelper:
            'Sambungan jauh ke MySQL sebagai pengguna root mungkin mempunyai risiko keselamatan. Oleh itu, lakukan operasi ini dengan berhati-hati.',
        changePassword: 'Kata laluan',
        changeConnHelper: 'Operasi ini akan mengubah pangkalan data semasa {0}. Adakah anda ingin meneruskan?',
        changePasswordHelper:
            'Pangkalan data telah dikaitkan dengan aplikasi. Menukar kata laluan akan menukar kata laluan pangkalan data aplikasi pada masa yang sama. Perubahan ini akan berkuat kuasa selepas aplikasi dimulakan semula.',
        recoverTimeoutHelper: '-1 bermaksud tiada had masa tamat',
        confChange: 'Konfigurasi',
        confNotFound:
            'Fail konfigurasi tidak dapat dijumpai. Sila tingkatkan aplikasi ke versi terkini di gedung aplikasi dan cuba lagi!',
        portHelper:
            'Port ini adalah port yang didedahkan oleh kontena. Anda perlu menyimpan pengubahsuaian secara berasingan dan memulakan semula kontena!',
        loadFromRemote: 'Selaras',
        userBind: 'Kaitkan pengguna',
        userAuthorization: 'Kebenaran pengguna',
        noUserAuthorization: 'Jangan beri kebenaran',
        authorizedDatabaseCount: '{0} pangkalan data dibenarkan',
        authorizationManagement: 'Pengurusan kebenaran',
        authorizedUsers: 'Pengguna yang dibenarkan',
        authorizedUserCount: '{0} pengguna',
        addUserAuthorization: 'Tambah kebenaran pengguna',
        revokeAuthorization: 'Tarik balik kebenaran',
        revokeAuthorizationHelper: 'Tarik balik akses pengguna {0} kepada pangkalan data {1}?',
        supplementPassword: 'Tambah kata laluan',
        supplementPasswordHelper: 'Hanya menyimpan kata laluan sedia ada ke 1Panel dan tidak mengubahnya dalam MySQL.',
        noUserBind: 'Tiada kaitan',
        pgBindHelper:
            'Operasi ini digunakan untuk mencipta pengguna baharu dan mengaitkannya dengan pangkalan data sasaran. Pada masa ini, memilih pengguna yang sudah wujud dalam pangkalan data tidak disokong.',
        pgSuperUser: 'Pengguna Super',
        loadFromRemoteHelper:
            'Ini akan menyelaraskan pangkalan data, pengguna dan kebenaran dari pelayan ke 1Panel. Teruskan?',
        passwordHelper: 'Tidak dapat diperoleh, klik untuk ubah',
        remote: 'Jauh',
        remoteDB: 'Pelayan jauh | Pelayan-pelayan jauh',
        createRemoteDB: 'Kaitkan @.lower:database.remoteDB',
        unBindRemoteDB: 'Nyahkaitkan @.lower:database.remoteDB',
        unBindForce: 'Paksa nyahkait',
        unBindForceHelper: 'Abaikan semua ralat semasa proses nyahkait untuk memastikan operasi akhir berjaya',
        unBindRemoteHelper:
            'Nyahkaitkan pangkalan data jauh hanya akan menghapuskan hubungan pengikatan dan tidak akan terus memadamkan pangkalan data jauh.',
        editRemoteDB: 'Edit pelayan jauh',
        localDB: 'Pangkalan data tempatan',
        address: 'Alamat pangkalan data',
        version: 'Versi pangkalan data',
        userHelper:
            'Pengguna root atau pengguna pangkalan data dengan keistimewaan root boleh mengakses pangkalan data jauh.',
        mongodbPermissionDbOwner: 'Pemilik pangkalan data',
        mongodbPermissionRead: 'Baca data',
        mongodbPermissionReadWrite: 'Baca dan tulis data',
        mongodbPermissionUserAdmin: 'Pentadbir pengguna',
        pgUserHelper: 'Pengguna pangkalan data dengan keistimewaan superuser.',
        ssl: 'Gunakan SSL',
        clientKey: 'Kunci peribadi klien',
        clientCert: 'Sijil klien',
        caCert: 'Sijil CA',
        hasCA: 'Mempunyai sijil CA',
        skipVerify: 'Abaikan pemeriksaan kesahihan sijil',
        initialDB: 'Pangkalan Data Awal',
        formatHelper:
            'Set aksara pangkalan data semasa adalah {0}, ketidakkonsistenan set aksara mungkin menyebabkan kegagalan pemulihan.',
        dropHelper: 'Anda boleh seret dan lepaskan fail yang ingin dimuat naik di sini atau',
        clickHelper: 'klik untuk memuat naik',
        supportUpType:
            'Hanya menyokong format fail sql, sql.gz, tar.gz, .zip. Fail termampat yang diimport mesti mengandungi hanya satu fail .sql atau termasuk test.sql',
        currentStatus: 'Keadaan semasa',
        baseParam: 'Parameter asas',
        performanceParam: 'Parameter prestasi',
        runTime: 'Waktu mula',
        connections: 'Jumlah sambungan',
        bytesSent: 'Byte dihantar',
        bytesReceived: 'Byte diterima',
        queryPerSecond: 'Pertanyaan per saat',
        txPerSecond: 'Tx per saat',
        connInfo: 'sambungan aktif/puncak',
        connInfoHelper: 'Jika nilai terlalu besar, tingkatkan "max_connections".',
        threadCacheHit: 'Cache benang berjaya',
        threadCacheHitHelper: 'Jika terlalu rendah, tingkatkan "thread_cache_size".',
        indexHit: 'Indeks berjaya',
        indexHitHelper: 'Jika terlalu rendah, tingkatkan "key_buffer_size".',
        innodbIndexHit: 'Kadar berjaya indeks Innodb',
        innodbIndexHitHelper: 'Jika terlalu rendah, tingkatkan "innodb_buffer_pool_size".',
        cacheHit: 'Berjaya pertanyaan cache',
        cacheHitHelper: 'Jika terlalu rendah, tingkatkan "query_cache_size".',
        tmpTableToDB: 'Jadual sementara ke cakera',
        tmpTableToDBHelper: 'Jika terlalu besar, cuba tingkatkan "tmp_table_size".',
        openTables: 'Jadual dibuka',
        openTablesHelper: 'Nilai konfigurasi "table_open_cache" mesti lebih besar atau sama dengan nilai ini.',
        selectFullJoin: 'Pilih penyertaan penuh',
        selectFullJoinHelper: 'Jika nilai bukan 0, periksa sama ada indeks jadual data adalah betul.',
        selectRangeCheck: 'Bilangan penyertaan tanpa indeks',
        selectRangeCheckHelper: 'Jika nilai bukan 0, periksa sama ada indeks jadual data adalah betul.',
        sortMergePasses: 'Bilangan penggabungan terisih',
        sortMergePassesHelper: 'Jika nilai terlalu besar, tingkatkan "sort_buffer_size".',
        tableLocksWaited: 'Bilangan kunci jadual',
        tableLocksWaitedHelper:
            'Jika nilai terlalu besar, pertimbangkan untuk meningkatkan prestasi pangkalan data anda.',
        performanceTuning: 'Penalaan prestasi',
        optimizationScheme: 'Skema pengoptimuman',
        keyBufferSizeHelper: 'Saiz penimbal untuk indeks',
        queryCacheSizeHelper: 'Cache pertanyaan. Jika fungsi ini dilumpuhkan, tetapkan parameter ini kepada 0.',
        tmpTableSizeHelper: 'Saiz cache jadual sementara',
        innodbBufferPoolSizeHelper: 'Saiz penimbal Innodb',
        innodbLogBufferSizeHelper: 'Saiz penimbal log Innodb',
        sortBufferSizeHelper: '* sambungan, saiz penimbal per urutan benang',
        readBufferSizeHelper: '* sambungan, saiz penimbal bacaan',
        readRndBufferSizeHelper: '* sambungan, saiz penimbal bacaan rawak',
        joinBufferSizeHelper: '* sambungan, saiz cache jadual perkaitan',
        threadStackelper: '* sambungan, saiz tumpukan per benang',
        binlogCacheSizeHelper: '* sambungan, saiz cache log binari (gandaan 4096)',
        threadCacheSizeHelper: 'Saiz kolam benang',
        tableOpenCacheHelper: 'Cache jadual',
        maxConnectionsHelper: 'Sambungan maksimum',
        restart: 'Mulakan semula',
        slowLog: 'Log lambat',
        noData: 'Tiada log lambat lagi.',
        isOn: 'Hidup',
        longQueryTime: 'Ambang (saat)',
        thresholdRangeHelper: 'Sila masukkan ambang yang betul (1 - 600).',
        timeout: 'Tamat masa(saat)',
        timeoutHelper: 'Tempoh tamat masa sambungan tidak aktif. 0 menunjukkan sambungan sentiasa aktif.',
        maxclients: 'Klien maksimum',
        requirepassHelper:
            'Biarkan ruangan ini kosong untuk menunjukkan bahawa tiada kata laluan telah ditetapkan. Perubahan perlu disimpan secara berasingan dan kontena perlu dimulakan semula!',
        databases: 'Bilangan pangkalan data',
        maxmemory: 'Penggunaan memori maksimum',
        maxmemoryHelper: '0 menunjukkan tiada had.',
        tcpPort: 'Port mendengar semasa.',
        uptimeInDays: 'Hari beroperasi.',
        connectedClients: 'Bilangan klien yang disambungkan.',
        usedMemory: 'Penggunaan memori semasa Redis.',
        usedMemoryRss: 'Saiz memori yang diminta daripada sistem pengendalian.',
        usedMemoryPeak: 'Penggunaan memori puncak Redis.',
        memFragmentationRatio: 'Nisbah pemecahan memori.',
        totalConnectionsReceived: 'Jumlah bilangan klien yang disambungkan sejak dijalankan.',
        totalCommandsProcessed: 'Jumlah bilangan arahan yang dilaksanakan sejak dijalankan.',
        instantaneousOpsPerSec: 'Bilangan arahan yang dilaksanakan oleh pelayan setiap saat.',
        keyspaceHits: 'Bilangan kali kunci pangkalan data berjaya dijumpai.',
        keyspaceMisses: 'Bilangan percubaan gagal untuk mencari kunci pangkalan data.',
        hit: 'Nisbah pencarian kunci pangkalan data yang berjaya.',
        latestForkUsec: 'Bilangan mikrodetik yang dihabiskan pada operasi fork() terakhir.',
        redisCliHelper: '"redis-cli" perkhidmatan tidak dikesan. Aktifkan perkhidmatan terlebih dahulu.',
        redisQuickCmd: 'Arahan pantas Redis',
        recoverHelper: 'Ini akan menimpa data dengan [{0}]. Adakah anda mahu meneruskan?',
        mongodbRecoverDropAllCollections: 'Kosongkan pangkalan data semasa sebelum pemulihan',
        mongodbRecoverDropAllCollectionsHelper:
            'Secara lalai, hanya koleksi sedia ada akan ditulis ganti dan koleksi baharu akan dikekalkan. Apabila diaktifkan, pangkalan data semasa akan dikosongkan dan kemudian dipulihkan daripada sandaran.',
        submitIt: 'Tindih data',
        baseConf: 'Asas',
        allConf: 'Semua',
        restartNow: 'Mula semula sekarang',
        restartNowHelper1:
            'Anda perlu memulakan semula sistem selepas perubahan konfigurasi berkuat kuasa. Jika data anda perlu dipelihara, lakukan operasi simpan terlebih dahulu.',
        restartNowHelper: 'Perubahan ini hanya akan berkuat kuasa selepas sistem dimulakan semula.',
        persistence: 'Ketekalan',
        rdbHelper1: 'saat, masukkan',
        rdbHelper2: 'data',
        rdbHelper3: 'Memenuhi mana-mana syarat akan mencetuskan ketekalan RDB.',
        rdbInfo: 'Pastikan nilai dalam senarai peraturan berada dalam julat 1 hingga 100000',
        containerConn: 'Sambungan kontena',
        copyConnURL: 'Salin URL sambungan',
        connAddress: 'Alamat',
        containerConnHelper:
            'Alamat sambungan ini boleh digunakan oleh aplikasi yang berjalan pada runtime laman web (PHP, dll.) atau kontena.',
        remoteConn: 'Sambungan luaran',
        remoteConnHelper2: 'Gunakan alamat ini untuk persekitaran bukan kontena atau sambungan luar.',
        remoteConnHelper3:
            'Alamat akses lalai ialah IP hos. Untuk mengubahnya, pergi ke item konfigurasi "Alamat Akses Lalai" pada halaman tetapan panel.',
        localIP: 'IP Tempatan',
    },
    aiTools: {
        agents: {
            agent: 'Agen',
            account: 'Akaun model',
            batchOperation: 'Operasi pukal',
            operationType: 'Jenis operasi',
            batchAction: '{0} pukal',
            installSkillAction: 'Hantar Skill',
            batchAgentTask: '{0} ejen secara pukal',
            dispatchAgentTask: 'Hantar tugas untuk {0} ejen',
            dispatchTask: 'Hantar tugas {0}',
            taskSubmitted: 'Tugas {0} telah dihantar',
            allNodes: 'Semua nod',
            targetVersion: 'Versi sasaran',
            skillSource: 'Sumber Skill',
            skillKeyword: 'Kata kunci Skill',
            clawHubSkillPlaceholder: 'Cari dan pilih Skill dahulu',
            noAccountHint: 'Pilih akaun model sedia ada atau tambah yang baharu.',
            accountCount: 'Akaun model {0}',
            syncAgents: 'Segerakkan agen berkaitan',
            syncAgentsHelper: 'Kemas kini openclaw.json untuk agen yang menggunakan akaun model ini',
            appVersion: 'Versi aplikasi',
            webuiPort: 'Port WebUI',
            tokenOrAuth: 'Token/Pengesahan',
            allowedOrigins: 'Alamat akses',
            allowedOriginsRequired: 'Masukkan sekurang-kurangnya satu alamat akses',
            allowedOriginsInvalid: 'Gunakan format http(s)://hos-atau-ip[:port]',
            provider: 'Penyedia model',
            accountModelsHelper:
                'Konfigurasikan model yang ditawarkan oleh akaun ini kepada OpenClaw untuk pemilihan dan tetapan',
            accountModelsRequired: 'Pilih sekurang-kurangnya satu model',
            verifyModel: 'Model Pengesahan',
            verifyModelHelper:
                'Pilih model yang boleh dicapai oleh akaun ini. Permintaan minimum akan dihantar semasa menyimpan untuk mengesahkan sambungan.',
            verifyModelRequired: 'Pilih model pengesahan',
            discoverModels: 'Dapatkan model',
            automaticModelDiscovery: 'Dapatkan automatik',
            manualModelConfiguration: 'Konfigurasi manual',
            discoverModelsHelper:
                'Dapatkan model daripada API /v1/models penyedia dan tambahkan semuanya ke katalog model',
            discoverModelsFailedFallback: 'Gagal mendapatkan model. Konfigurasikan model secara manual.',
            discoverModelsFailedUseDefaults: 'Gagal mendapatkan model. Model lalai sedang digunakan.',
            accountModelsDuplicate: 'Terdapat model pendua dalam katalog',
            modelPool: 'Katalog model',
            fallbackModels: 'Model fallback',
            addFallbackModel: 'Tambah model fallback',
            fallbackModelsEmpty: 'Tiada model fallback dikonfigurasikan',
            modelInputTypes: 'Jenis input',
            reasoning: 'Model penaakulan',
            verified: 'Disahkan',
            verifySkipped: 'Tanpa pengesahan',
            skillsTab: 'Kemahiran',
            pluginsTab: 'Pemalam',
            pluginsInstalled: 'Dipasang',
            pluginsMarket: 'Pasaran pemalam',
            pluginsMarketHint: 'Masukkan kata kunci untuk mencari pemalam',
            pluginSearchPlaceholder: 'Cari pemalam...',
            pluginOrigin: 'Sumber',
            pluginOriginAll: 'Semua sumber',
            pluginOriginBundled: 'Terbina dalam',
            pluginOriginExternal: 'Luaran',
            pluginStatusAll: 'Semua status',
            pluginEnabled: 'Diaktifkan',
            pluginDisabled: 'Dinyahaktifkan',
            pluginCategory: 'Kategori',
            pluginVerification: 'Pengesahan',
            pluginOfficial: 'Rasmi',
            pluginCommunity: 'Komuniti',
            pluginDownloads: 'Muat turun',
            pluginEnable: 'Aktifkan',
            pluginDisable: 'Nyahaktifkan',
            pluginListEmpty: 'Tiada pemalam',
            pluginSearchEmpty: 'Tiada pemalam sepadan ditemui',
            pluginInstallConfirm: 'Pasang pemalam {0}?',
            pluginDisableConfirm: 'Nyahaktifkan pemalam {0}?',
            pluginUninstallConfirm: 'Nyahpasang pemalam {0}?',
            securityTab: 'Keselamatan',
            otherTab: 'Lain-lain',
            timeZone: 'Zon Waktu',
            browserEnabled: 'Pelayar diaktifkan',
            npmRegistry: 'Registri NPM',
            npmRegistryHelper:
                'Digunakan untuk pemasangan plugin OpenClaw. Anda boleh memilih registri pratetap atau memasukkan registri tersuai.',
            npmRegistryInvalid: 'Masukkan URL registri NPM yang sah bermula dengan http:// atau https://',
            pluginInstallNPMRegistryHelper:
                'Pergi ke Tetapan -> Lain-lain untuk mengkonfigurasi registri NPM dan mempercepat pemasangan plugin',
            skillsSearchPlaceholder: 'Cari kemahiran...',
            skillsEmpty: 'Tiada kemahiran',
            skillsMarket: 'Pasaran kemahiran',
            skillsMarketHint: 'Pilih sumber dan cari kemahiran',
            skillsMarketEmpty: 'Tiada kemahiran berkaitan ditemui',
            skillsMarketSourceClawhubGlobal: 'ClawHub (Global)',
            skillsMarketSourceClawhubChina: 'ClawHub (China)',
            skillsMarketSourceSkillhub: 'SkillHub (Tencent)',
            skillsMarketSourceLocalHub: 'Kedai Skill tempatan',
            skillsScore: 'Skor',
            skillsMarketSourceOfficial: 'Rasmi',
            versionUnsupportedTitle: 'Ciri ini tidak disokong dalam versi semasa',
            versionUnsupportedHelper: 'Sila naik taraf OpenClaw ke versi {0} atau lebih baharu.',
            skillsGroupBuiltIn: 'Terbina dalam',
            skillsGroupExternal: 'Luaran',
            skillsGroupWorkspace: 'Ruang kerja',
            switchModelSuccess: 'Model berjaya ditukar',
            channelsTab: 'Saluran',
            agentRoleTab: 'Ejen',
            agentRoleUnsupported: 'Pengurusan peranan kini hanya disokong untuk OpenClaw.',
            workspace: 'Direktori ruang kerja',
            agentDir: 'Direktori ejen',
            roleMarkdownDescriptions: {
                'AGENTS.md': [
                    'Arahan operasi untuk ejen dan cara ia perlu menggunakan memori.',
                    'Dimuatkan pada permulaan setiap sesi.',
                    'Tempat yang sesuai untuk peraturan, keutamaan, dan butiran cara bertindak.',
                ],
                'SOUL.md': ['Persona, nada, dan batasan.', 'Dimuatkan setiap sesi.'],
                'USER.md': ['Siapa pengguna dan bagaimana hendak menyapanya.', 'Dimuatkan setiap sesi.'],
                'IDENTITY.md': ['Nama, gaya, dan emoji ejen.', 'Dicipta atau dikemas kini semasa ritual bootstrap.'],
                'TOOLS.md': [
                    'Nota tentang alat tempatan dan konvensyen anda.',
                    'Tidak mengawal ketersediaan alat; ini hanya panduan.',
                ],
                'HEARTBEAT.md': [
                    'Senarai semak ringkas pilihan untuk heartbeat.',
                    'Pastikan ringkas untuk mengelakkan pembaziran token.',
                ],
                'BOOT.md': [
                    'Senarai semak permulaan pilihan yang dijalankan ketika gateway dimulakan semula jika hook dalaman diaktifkan.',
                    'Pastikan ringkas; gunakan alat message untuk penghantaran keluar.',
                ],
                'BOOTSTRAP.md': [
                    'Ritual sekali sahaja untuk kali pertama dijalankan.',
                    'Hanya dicipta untuk ruang kerja yang benar-benar baharu.',
                    'Padam selepas ritual selesai.',
                ],
            },
            duplicateBinding: 'Gabungan saluran dan ID akaun mesti unik',
            accountIdOptional: 'ID akaun (pilihan)',
            saveAllMd: 'Simpan semua',
            roleMarkdownRestartHelper:
                'Menyimpan semua fail markdown semasa memerlukan kontena dimulakan semula untuk berkuat kuasa. Pilih sama ada hendak memulakan semula sekarang atau kemudian.',
            configFileRestartHelper:
                'Menyimpan fail konfigurasi memerlukan kontena dimulakan semula serta-merta untuk berkuat kuasa.',
            overviewSnapshot: 'Ringkasan',
            primaryModel: 'Model utama',
            defaultModel: 'Model lalai',
            channelCount: 'Bilangan saluran dikonfigurasi',
            skillCount: 'Bilangan kemahiran',
            jobCount: 'Bilangan tugas berjadual',
            sessionCount: 'Bilangan sesi',
            hermesChatAction: 'Perbualan',
            hermesChatTitle: 'Perbualan Hermes',
            hermesChatDialogTitle: 'Perbualan Hermes - {0}',
            hermesChatNewChat: 'Perbualan baharu',
            hermesChatNoSessions: 'Tiada sesi',
            hermesChatMessageCount: '{0} mesej',
            hermesChatEmptyHint: 'Pilih sesi di sebelah kiri atau klik Perbualan baharu',
            hermesChatTitlePlaceholder: 'Masukkan tajuk sesi',
            hermesChatRenameSuccess: 'Tajuk sesi telah dikemas kini',
            hermesChatDeleteConfirm: 'Padam sesi {0}?',
            hermesChatDeleteSuccess: 'Sesi berjaya dipadam',
            weixin: 'Weixin',
            wecom: 'WeCom',
            dingtalk: 'DingTalk',
            feishu: 'Feishu',
            pluginNotInstalled: 'Plugin belum dipasang. Sila pasang dahulu.',
            dmPolicy: 'Dasar DM',
            threadSession: 'Sesi utas',
            replyMode: 'Mod balasan',
            requireMention: 'Perlu sebutan',
            requireMentionTrue: "Perlu {'@'}",
            requireMentionFalse: "Tidak perlu {'@'}",
            requireMentionOpen: 'Ikut konfigurasi kumpulan',
            groupPolicy: 'Dasar kumpulan',
            policyAllowlist: 'Senarai benarkan',
            policyOpen: 'Terbuka',
            policyDisabled: 'Dilumpuhkan',
            bots: 'Bot',
            addBot: 'Tambah bot',
            accountId: 'ID akaun',
            accountIdPlaceholder:
                'ID unik untuk membezakan bot dan digunakan untuk konfigurasi serta penghalaan selepas disimpan.',
            setDefaultBot: 'Tetapkan sebagai lalai',
            botDuplicateField: '{field} sudah wujud',
            botRequired: 'Tambah sekurang-kurangnya satu bot',
            botId: 'ID bot',
            allowFrom: 'Senarai benarkan DM',
            allowFromPlaceholder: 'Satu ID penghantar setiap baris',
            allowlistPolicyHelper: '{0}. Hanya digunakan apabila {1} ialah Senarai benarkan.',
            systemPrompt: 'Prompt sistem',
            groupAllowFrom: 'Senarai benarkan kumpulan',
            groupAllowFromPlaceholder: 'Satu ID kumpulan setiap baris',
            separateSessionByConversation: 'Asingkan sesi mengikut perbualan',
            groupSessionScope: 'Skop sesi kumpulan',
            groupSessionScopeGroup: 'Dikongsi mengikut kumpulan',
            groupSessionScopeGroupSender: 'Mengikut penghantar',
            sharedMemoryAcrossConversations: 'Kongsi memori merentas perbualan',
            asyncMode: 'Mod async',
            ackText: 'Teks pengesahan',
            ackTextDefault: 'Tugas diterima, sedang diproses...',
            streaming: 'Penstriman',
            streamingOff: 'Mati',
            streamingPartial: 'Separa',
            streamingBlock: 'Sekat',
            streamingProgress: 'Kemajuan',
            allowFromRequired: 'Masukkan sekurang-kurangnya satu entri senarai benarkan',
            pairingCode: 'Kod pasangan',
            pairingCodePlaceholder: 'Masukkan kod pasangan',
            approvePairing: 'Luluskan pasangan',
            saveSuccess: 'Berjaya disimpan',
            successAndRestart: '{0}. Bekas sedang dimulakan semula secara automatik.',
            pairingApproveSuccess: 'Pasangan berjaya diluluskan',
            scanConnect: 'Imbas untuk sambung',
            scanConnectHelper:
                'Klik untuk memulakan tugas log masuk QR. Kod QR akan dipaparkan dalam log tugas dan bekas akan dimulakan semula secara automatik selepas imbasan berjaya.',
            channelAutoRestartHelper:
                'Menyimpan akan memulakan semula bekas secara automatik supaya konfigurasi berkuat kuasa.',
            dashboardAuthAutoRebuildHelper:
                'Menyimpan nama pengguna atau kata laluan akan membina semula bekas secara automatik supaya perubahan berkuat kuasa.',
            dashboardAuthImmediateHelper:
                'Apabila disimpan, kelayakan log masuk QwenPaw dikemas kini serta-merta tanpa memulakan semula bekas.',
            channelDeleteConfirm: 'Padam konfigurasi saluran {0}?',
            apiTypeBaseURLHelper: 'Jenis ini menghantar permintaan ke {0}. Base URL yang disyorkan: {1}',
            customImageURLHelper:
                'Masukkan URL titik akhir penjanaan imej yang lengkap untuk akaun Custom. Laluan tidak ditambah secara automatik. Contoh: {0}',
            apiTypeBaseURLMismatch:
                'Base URL semasa kelihatan seperti laluan {0}, tetapi {1} dipilih. URL yang disyorkan: {2}',
            validateAvailability: 'Sahkan ketersediaan akaun',
            validateAvailabilityHelper: 'Hantar mesej minimum sebelum menyimpan untuk mengesahkan API',
            validateImageAvailabilityHelper: 'Menjana satu imej minimum sebelum menyimpan dan mungkin dikenakan caj',
        },
        model: {
            model: 'Model',
            localModel: 'Model Tempatan',
            create_helper: 'Tarik "{0}"',
            ollama_doc: 'Anda boleh melawat laman web rasmi Ollama untuk mencari dan menemui lebih banyak model.',
            container_conn_helper: 'Gunakan alamat ini untuk akses atau sambungan antara kontena',
            ollama_sync:
                'Semasa menyegerakkan model Ollama, model berikut didapati tidak wujud. Adakah anda mahu memadamkannya?',
            from_remote: 'Model ini tidak dimuat turun melalui 1Panel; tiada log muat turun berkaitan.',
            no_logs: 'Log muat turun model ini telah dipadam dan tidak boleh dilihat.',
            vllmVersionHelper: 'Untuk pelayan FusionXpark GB 10, sila pilih versi -cu130.',
            vllmCommandPortHelper:
                'Perintah permulaan mesti menggunakan port {0}; jika tidak, perkhidmatan tidak dapat diakses.',
            syncModelAccount: 'Segerakkan ke akaun model',
            modelAccountAddressHelper:
                'Alamat kontena sesuai untuk kontena agen; 127.0.0.1, IP sistem, atau alamat tersuai sesuai untuk AI Gateway atau perkhidmatan luaran.',
            containerAddress: 'Alamat kontena',
            customAddress: 'Alamat tersuai',
            downloader: 'Pemuat Turun',
            modelDir: 'Direktori Model',
            manualDownload: 'Muat Turun Manual',
            modelSource: 'Sumber model',
            repoID: 'ID Repositori',
            endpointLabel: 'Endpoint {0}',
            acceleratedEndpointLabel: 'Titik akhir pecutan {0}',
            tokenOptionalLabel: 'Token {0} (pilihan)',
            searchSource: 'Cari {0}',
            hfEndpointHelper:
                'Konfigurasikan titik akhir pecutan apabila akses HuggingFace tidak stabil. Carian, butiran dan muat turun akan menggunakannya.',
            sortTrending: 'Trend popular',
            sortLikes: 'Paling disukai',
            sortDownloads: 'Paling banyak dimuat turun',
            sortUpdated: 'Dikemas kini baru-baru ini',
            sortCreated: 'Terbaru dibuat',
            downloadsCount: 'Muat turun',
            likes: 'Suka',
            taskQueue: 'Baris Gilir Muat Turun',
            progress: 'Kemajuan',
            localDownloaded: 'Dimuat turun',
            modelInfo: 'Butiran Model',
            downloading: 'Sedang memuat turun',
            canceled: 'Dibatalkan',
            downloadQueued: 'Ditambah ke baris gilir muat turun',
            cancelTaskConfirm: 'Batalkan tugas muat turun ini?',
            deleteLocalModelConfirm: 'Padam model tempatan {0}?',
        },
        proxy: {
            proxy: 'Peningkatan Gateway AI',
            proxyHelper1: 'Ikatkan domain dan aktifkan HTTPS untuk meningkatkan keselamatan penghantaran',
            proxyHelper2: 'Hadkan akses IP untuk mengelakkan pendedahan di internet awam',
            proxyHelper3: 'Aktifkan penstriman',
            proxyHelper4: 'Setelah selesai, anda boleh melihat dan mengurusnya dalam senarai laman web',
            proxyHelper5:
                'Selepas diaktifkan, anda boleh melumpuhkan akses luaran ke port dalam App Store - Dipasang - Ollama - Parameter untuk meningkatkan keselamatan.',
            proxyHelper6: 'Untuk melumpuhkan konfigurasi proksi, anda boleh memadamnya dari senarai laman web.',
            whiteListHelper: 'Hadkan akses kepada hanya IP dalam senarai putih',
        },
        aiProxy: {
            title: 'Gateway AI',
            apiReference: 'Rujukan API',
            notInstalled: 'Belum dipasang',
            usage: 'Penggunaan',
            accountPool: 'Kolam Akaun',
            importModelAccount: 'Import akaun model',
            editModelAccount: 'Edit akaun model',
            selectModelAccount: 'Pilih akaun model sedia ada',
            upstreamApiAddress: 'Alamat API Hulu',
            priority: 'Keutamaan',
            healthStatus: 'Status kesihatan',
            failureCount: 'Bilangan gagal',
            lastError: 'Ralat terkini',
            modelMap: 'Pemetaan model',
            qpsLimit: 'Had QPS',
            tokenLimit: 'Had Token',
            tokenUsed: 'Token digunakan',
            tokenRemaining: 'Token berbaki',
            resetToken: 'Tetapkan semula Token',
            resetTokenConfirm: 'Tetapkan semula penggunaan Token untuk {0}?',
            unlimited: 'Tanpa had',
            unlimitedWithAuto: 'Tanpa had, termasuk auto',
            lastUsedAt: 'Terakhir digunakan',
            validityPeriod: 'Tempoh sah',
            keepCurrentValidity: 'Kekalkan tempoh sah semasa',
            neverExpires: 'Tidak luput',
            validForDays: 'Sah selama {0} hari',
            customDays: 'Hari tersuai',
            enterValidityDays: 'Masukkan tempoh sah dalam hari',
            currentExpiresAt: 'Tarikh luput semasa: {0}',
            currentNeverExpires: 'Pada masa ini tidak luput',
            expiresAt: 'Tarikh luput',
            expired: 'Telah luput',
            reactivate: 'Aktifkan semula',
            settingTitle: 'Tetapan gateway AI',
            basicSetting: 'Tetapan Asas',
            performanceSetting: 'Tetapan Prestasi',
            logSetting: 'Tetapan Log',
            lbPolicy: 'Strategi imbangan beban',
            protocolConversion: 'Penukaran protokol',
            protocolConversionDesc:
                'Benarkan penukaran terus yang disokong antara Chat Completions, Responses dan Anthropic Messages. Protokol asli sentiasa diutamakan.',
            protocolConversionRisk:
                'Penukaran protokol tidak menjamin tanpa kehilangan. Medan khusus protokol, panggilan alat, penaakulan atau kandungan multimodal mungkin diturunkan atau hilang. Gunakan selepas mempertimbangkan risikonya.',
            visionEnhancement: 'Peningkatan visual',
            visionEnhancementRisk:
                'Peningkatan visual mungkin menghantar imej kepada penyedia model visual yang berasingan.',
            visionModelGroup: 'Kumpulan model visual',
            visionModelGroupDesc:
                'Pilih model yang memahami imej daripada kumpulan penjanaan teks ini. Semua imej dalam satu permintaan menggunakan model yang sama.',
            visionTargetModelGroup: 'Kumpulan model sasaran',
            visionTargetModelGroupDesc:
                'Aktifkan peningkatan hanya untuk model dalam kumpulan ini tanpa mengubah model permintaan akhir.',
            visionEnhancementDesc:
                'Imej ditukar kepada bukti teks dan mungkin kehilangan butiran, serta menambah latensi dan kos. Gerbang tidak mengesan sokongan imej asli. Menyimpan akan memulakan semula gerbang; gunakan selepas mempertimbangkan risikonya.',
            visionPreprocess: 'Prapemprosesan visual',
            cacheHit: 'Cache ditemui',
            apiType: 'Jenis API',
            lbPolicyRoundRobin: 'Round Robin',
            lbPolicyRoundRobinDesc:
                'Pilih akaun model tersedia mengikut turutan. Sesuai apabila kapasiti backend hampir sama.',
            lbPolicyWeightedRoundRobin: 'Round Robin berwajaran',
            lbPolicyWeightedRoundRobinDesc:
                'Agihkan permintaan mengikut berat akaun model. Berat lebih tinggi menerima lebih banyak trafik.',
            lbPolicyFailover: 'Failover',
            lbPolicyFailoverDesc:
                'Gunakan akaun model berkeutamaan tertinggi dahulu, kemudian tukar ke akaun tersedia seterusnya selepas gagal atau cooldown.',
            maxConcurrency: 'Keserentakan maksimum',
            queueSize: 'Saiz baris gilir',
            queueTimeoutSeconds: 'Tamat masa menunggu baris gilir (s)',
            requestTimeoutSeconds: 'Tamat masa permintaan bukan penstriman (s)',
            streamIdleTimeoutSeconds: 'Tamat masa melahu penstriman (s)',
            maxBodyMb: 'Saiz badan maksimum (MB)',
            runtimeRefreshSeconds: 'Selang segar semula runtime (s)',
            logRetentionDays: 'Pengekalan Log Gateway AI (hari)',
            clearLogs: 'Kosongkan Log',
            clearLogsConfirm:
                'Ini akan mengosongkan statistik penggunaan, audit pematuhan kandungan, keputusan penghalaan pintar, log badan permintaan dan log perkhidmatan Gateway AI. Teruskan?',
            usageRetentionDays: 'Pengekalan Statistik Penggunaan (hari)',
            contentAuditRetentionDays: 'Pengekalan Audit Pematuhan Kandungan (hari)',
            logCleanupIntervalHours: 'Selang Pembersihan Log (jam)',
            requestBodyLog: 'Log Badan Permintaan',
            requestBodyLogDesc:
                'Menulis badan permintaan dan respons AI Gateway ke Elasticsearch untuk carian, audit dan penyelesaian masalah.',
            requestBodyLogIndexPrefix: 'Awalan Indeks',
            requestBodyLogRetentionDays: 'Pengekalan Log Badan Permintaan (hari)',
            requestBodyLogMaxBodyKb: 'Saiz Maksimum Badan Permintaan (KB)',
            requestBody: 'Badan Permintaan',
            requestBodySize: 'Saiz Badan Permintaan',
            requestBodyTruncated: 'Dipotong',
            responseBody: 'Badan Respons',
            responseBodySize: 'Saiz Badan Respons',
            responseBodyTruncated: 'Badan Respons Dipotong',
            readableContent: 'Kandungan Boleh Dibaca',
            rawResponse: 'Respons Asal',
            replyContent: 'Kandungan Balasan',
            reasoningContent: 'Kandungan Penaakulan',
            statusTitle: 'Status gateway AI',
            serviceEnabled: 'Auto mula perkhidmatan',
            proxyEnabled: 'Gateway diaktifkan',
            statusMessage: 'Mesej status',
            esLogDropped: 'Log ES dibuang',
            esLogLastSuccessAt: 'Tulisan ES terakhir',
            esLogCircuitOpen: 'Litar terbuka',
            esLogCircuitUntil: 'Litar ES hingga',
            serviceOperateConfirm: 'Sahkan untuk {0} perkhidmatan gateway AI?',
            deleteTargetConfirm: 'Padam {0} {1}?',
            deleteBackendTitle: 'Padam akaun model',
            userFallback: 'Pengguna dipadam (ID: {0})',
            requestModel: 'Model permintaan',
            upstreamModel: 'Model upstream',
            upstreamDuration: 'Masa upstream',
            requestModelPlaceholder: 'cth. qwen2.5-coder',
            upstreamModelPlaceholder: 'cth. Qwen/Qwen2.5-Coder-32B-Instruct',
            addMapping: 'Tambah pemetaan',
            overview: 'Gambaran keseluruhan',
            distribution: 'Taburan',
            usageTrend: 'Trend penggunaan',
            distributionBy: 'Taburan mengikut {0}',
            unmatched: 'Tidak sepadan',
            modelAccount: 'Akaun model',
            serviceProvider: 'Penyedia',
            tokenUsage: 'Penggunaan Token',
            percent: 'Peratus',
            ranking: 'Kedudukan',
            rank: 'Kedudukan',
            promptToken: 'Token input',
            completionToken: 'Token output',
            totalToken: 'Jumlah Token',
            cachedToken: 'Token cache',
            cacheHitRate: 'Kadar hit cache',
            activeUsers: 'Pengguna aktif',
            activeModels: 'Model aktif',
            failedRequests: 'Permintaan gagal',
            averageTokenPerRequest: 'Purata Token/permintaan',
            callLogs: 'Log panggilan',
            usageKeywordPlaceholder: 'Cari Request ID / model / model upstream / mesej ralat',
            attemptChain: 'Rantaian percubaan',
            attemptIndex: 'Urutan panggilan',
            clientProtocol: 'API klien',
            upstreamProtocol: 'API upstream',
            conversionPath: 'Laluan penukaran',
            noAttemptDetails: 'Tiada rekod rantaian percubaan',
            input: 'Input',
            output: 'Output',
            total: 'Jumlah',
            healthHealthy: 'Sihat',
            healthCooldown: 'Cooldown',
            healthUnhealthy: 'Tidak sihat',
            healthDeleted: 'Dipadam',
            healthUnknown: 'Tidak diketahui',
            validationModelMapEmpty: 'Nama model dalam pemetaan model tidak boleh kosong',
            validationModelMapDuplicate: 'Model permintaan {0} berulang',
            modelGroup: 'Kumpulan Model',
            modelCapability: 'Keupayaan Model',
            textGeneration: 'Penjanaan Teks',
            imageGeneration: 'Penjanaan Imej',
            textModels: 'Model Teks',
            textToImageModels: 'Model Teks-ke-Imej',
            unauthorized: 'Tidak dibenarkan',
            imageCount: 'Bilangan Imej',
            availableModels: 'Model Tersedia',
            modelGroupModels: 'Model Permintaan',
            modelGroupModelsPlaceholder: 'Pilih atau masukkan nama model permintaan',
            modelGroupModelsHelper:
                'Masukkan nama model permintaan yang digunakan klien untuk memanggil AI Gateway; penghalaan pintar mencuba model mengikut susunan dan tidak mengimbang beban antara model.',
            modelGroupGuide:
                'Kumpulan model mengandungi nama model permintaan yang didedahkan oleh AI Gateway. Konfigurasikan model upstream dalam pemetaan model kumpulan akaun. auto ialah nama model maya dan tidak perlu ditambah pada kumpulan model.',
            modelGroupModelCount: '{0} model',
            contentCompliance: 'Pematuhan Kandungan',
            contentAction: 'Tindakan',
            actionBlock: 'Sekat',
            actionAuditOnly: 'Audit sahaja',
            actionDropHistory: 'Buang sejarah',
            severity: 'Tahap',
            severityHigh: 'Tinggi',
            severityMedium: 'Sederhana',
            severityLow: 'Rendah',
            sensitiveWord: 'Perkataan sensitif',
            sensitiveGroup: 'Kumpulan perkataan sensitif',
            sensitiveWordCount: 'Perkataan',
            normalizedWord: 'Perkataan dinormalkan',
            matchedWords: 'Perkataan sepadan',
            matchedGroups: 'Kumpulan sepadan',
            importResult: 'Diimport {0}, pendua {1}, tidak sah {2}',
            auditLogs: 'Log Audit',
            smartRoute: 'Penghalaan Pintar',
            smartRouteGuideTitle: 'Gunakan model=auto pada klien untuk memasuki penghalaan pintar',
            smartRouteGuideReady:
                'model=auto memilih kumpulan model ringkas atau kompleks mengikut kerumitan permintaan. Model lain dihantar seperti biasa.',
            smartRouteGuideNotReady:
                'Aktifkan penghalaan pintar dan konfigurasikan kumpulan ringkas/kompleks dahulu. Kemudian gunakan model=auto pada klien.',
            copyAutoModel: 'Salin auto',
            goSmartRouteSetting: 'Pergi ke tetapan',
            smartRoutePolicy: 'Polisi Penghalaan',
            routeConfig: 'Konfigurasi Penghalaan',
            embeddingConfig: 'Konfigurasi Embedding',
            embeddingConfigDesc:
                'Digunakan untuk penghalaan pintar dan padanan sampel semantik pematuhan kandungan. Disyorkan: llama.cpp + Qwen3-Embedding-0.6B. Konfigurasikan sebelum membina semula vektor sampel.',
            decisionConfig: 'Parameter Keputusan',
            simpleModelGroup: 'Kumpulan Model Ringkas',
            complexModelGroup: 'Kumpulan Model Kompleks',
            embeddingEndpoint: 'Endpoint',
            embeddingModel: 'Model',
            embeddingApiKey: 'API Key',
            routeThreshold: 'Ambang Penghalaan',
            routeThresholdHelper:
                'Untuk Smart Route: guna padanan sampel hanya apabila persamaan permintaan mencapai nilai ini.',
            auditThreshold: 'Ambang Audit',
            auditThresholdHelper:
                'Untuk Pematuhan Kandungan: anggap sampel audit sepadan hanya apabila persamaan mencapai nilai ini.',
            topK: 'TopK',
            topKHelper: 'Bilangan sampel paling serupa yang dibandingkan setiap kali.',
            members: 'Ahli',
            samples: 'Sampel',
            routeSamplesGuide:
                'Sampel ialah contoh permintaan ringkas/kompleks untuk padanan persamaan Embedding. Gunakan permintaan pengguna sebenar, kemudian cipta atau bina semula vektor.',
            rebuildVectors: 'Bina Semula Vektor',
            rebuildVectorsConfirm:
                'Membina semula vektor akan meminta perkhidmatan Embedding memproses semula sampel Smart Route dan pematuhan kandungan. Teruskan?',
            createVectorOnImport: 'Cipta vektor selepas import',
            createVectorOnImportHelper:
                'Dipilih secara lalai. Jika Embedding dikonfigurasi, tugas latar belakang mencipta vektor; jika tidak, hanya sampel dicipta.',
            route: 'Laluan',
            audit: 'Audit',
            auditSamples: 'Sampel Audit',
            sampleText: 'Teks',
            sampleLabel: 'Label',
            vectorModel: 'Model Vektor',
            vectorDim: 'Dimensi',
            threshold: 'Ambang',
            preview: 'Pratonton',
            previewGuide:
                'Pratonton menguji sama ada permintaan ringkas atau kompleks tanpa memanggil model upstream. Sumber ialah padanan sampel atau peraturan.',
            previewPlaceholder: 'Masukkan teks permintaan',
            confidence: 'Keyakinan',
            bestSampleSimilarity: 'Kesamaan sampel tertinggi',
            source: 'Sumber',
            sourceHeuristic: 'Berdasarkan peraturan',
            sourceEmbedding: 'Padanan sampel',
            sourceContext: 'Pewarisan konteks',
            latency: 'Latensi',
            decisionLogs: 'Log Keputusan',
            requestID: 'ID Permintaan',
            simple: 'Ringkas',
            complex: 'Kompleks',
            sampleLabelSafe: 'Selamat',
            sampleLabelReview: 'Semak',
            sampleLabelBlock: 'Sekat',
            latencyMs: 'Latensi(ms)',
            smartRouteSettingGuide:
                'Selepas diaktifkan, hanya permintaan model=auto mencetuskan penghalaan pintar. Kumpulan ringkas untuk tugas kos rendah; kumpulan kompleks untuk analisis kod, reka bentuk seni bina dan penyelesaian masalah.',
            sampleLabelPlaceholder: 'simple / complex / high',
            sampleImportPlaceholder: 'Satu sampel setiap baris',
            apiKeyCount: 'Kuantiti',
        },
        skillsHub: {
            title: 'Skills Hub',
            upload: 'Muat naik Skill',
            importSkill: 'Import Kemahiran',
            repositoryAddress: 'Alamat repositori',
            repositoryGithubOnly: 'Hanya alamat repositori GitHub disokong',
            repositoryRef: 'Cawangan atau Tag',
            repositoryRefPlaceholder: 'Lalai main; jika gagal, akan mencuba master',
            repositoryDownloadPreview: 'URL muat turun sasaran:',
            packageURL: 'URL pakej',
            packageURLPlaceholder: 'Masukkan alamat pakej .zip',
            importSuccess: 'Skill berjaya diimport dan kini menunggu semakan.',
            source: 'Sumber',
            applicableAgent: 'Agen berkaitan',
            overview: 'Gambaran keseluruhan',
            versionHistory: 'Sejarah versi',
            publishedAt: 'Masa diterbitkan',
            versionMarker: 'Penanda',
            currentVersion: 'Sedang dilihat',
            latestVersion: 'Versi terkini',
            latestPublished: 'Terbitan terkini',
            riskLevel: 'Tahap risiko',
            riskReferenceHint:
                'Tahap risiko dijana secara automatik daripada kandungan pakej Skill dan hanya untuk rujukan semakan.\nRendah: tiada risiko jelas\nSederhana: skrip, kebergantungan, URL luaran atau pemboleh ubah persekitaran\nTinggi: pelaksanaan jauh, maklumat sensitif atau arahan berbahaya',
            riskCheckResult: 'Keputusan pemeriksaan keselamatan',
            noRiskFound: 'Tiada risiko jelas ditemui.',
            riskFilePath: 'Laluan fail',
            riskKeyword: 'Kata kunci atau peraturan sepadan',
            riskDescription: 'Penerangan risiko',
            publishHighRiskConfirm:
                'Skill ini mempunyai item berisiko tinggi dan mungkin mengandungi pelaksanaan skrip, muat turun luaran atau akses maklumat sensitif. Teruskan terbitkan?',
            approve: 'Luluskan',
            reject: 'Tolak',
            publish: 'Terbitkan',
            disable: 'Nyahterbit',
            customTarget: 'Agen tersuai',
            addCustomTarget: 'Tambah agen',
            installToTarget: 'Pasang ke agen tersuai',
            hostSkillDir: 'Direktori Skill',
            hostSkillDirHelper: 'Masukkan laluan direktori Skill pada nod.',
            installMethod: 'Kaedah pemasangan',
            copy: 'Salin',
            extract: 'Ekstrak',
            postInstallCommand: 'Arahan selepas pemasangan',
            localSource: 'Muat naik tempatan',
            uploadDragTitle: 'Seret pakej Skill ke sini, atau klik untuk memuat naik',
            uploadFormatLabel: 'Format:',
            uploadFormatValue: '.zip, .7z, .tar, .tar.gz',
            uploadSizeLabel: 'Saiz fail:',
            uploadSizeValue: 'Tidak melebihi 5 MB bagi setiap fail',
            uploadRequirementLabel: 'Keperluan pakej:',
            uploadRequirementPrefix: 'Pakej Skill mesti mengandungi',
            onlySupportedArchive: 'Hanya pakej Skill .zip, .7z, .tar dan .tar.gz disokong',
            uploadSizeExceeded: 'Satu pakej Skill tidak boleh melebihi 5 MB',
            uploadSuccess: 'Skill berjaya dimuat naik dan kini menunggu semakan.',
            versionAutoFillPlaceholder: 'Dikesan automatik daripada nama fail jika boleh. Sahkan atau isi manual',
            metadataOverwriteConfirm: 'Versi dalam pakej Skill berbeza daripada input semasa. Guna input semasa?',
            metadataOverwriteConfirmWithVersions:
                'Versi dalam pakej Skill berbeza daripada input semasa. Versi pakej: {packageVersion}; versi input: {inputVersion}. Guna input semasa?',
            offlineNotice: 'Persekitaran semasa di luar talian. Hanya Skill daripada kedai tempatan boleh dipasang.',
            publishConfirm: 'Terbitkan Skill ini? Selepas diterbitkan, ia boleh dipasang dari kedai Skill tempatan.',
            disableConfirm: 'Nyahterbit Skill ini? Skill yang telah dipasang pada agen tidak akan terjejas.',
            deleteConfirm:
                'Padam Skill ini? Tindakan ini tidak boleh dipulihkan. Skill yang telah dipasang pada agen tidak akan terjejas.',
            rejectConfirm: 'Tolak semakan Skill ini? Skill akan masuk ke status ditolak.',
            downloadPublishedOnly: 'Hanya pakej Skill yang telah diterbitkan boleh dimuat turun.',
            deleteTargetConfirm: 'Padam agen tersuai ini? Pengguna tidak lagi boleh memilih sasaran pemasangan ini.',
            noInstallTarget: 'Tiada agen tersuai tersedia. Konfigurasikan sasaran pemasangan dahulu.',
            postInstallConfirm:
                'Sasaran ini mempunyai arahan selepas pemasangan. Sahkan arahan tersebut dipercayai sebelum dijalankan.',
            status: {
                pending: 'Menunggu semakan',
                approved: 'Diluluskan',
                published: 'Diterbitkan',
                disabled: 'Dinyahterbit',
                rejected: 'Ditolak',
                deleted: 'Dipadam',
            },
            agent: {
                common: 'Umum',
            },
            risk: {
                low: 'Rendah',
                medium: 'Sederhana',
                high: 'Tinggi',
            },
            riskType: {
                script_file: 'Fail skrip',
                dependency_manifest: 'Manifest kebergantungan',
                external_url: 'URL luaran',
                environment_variable: 'Pemboleh ubah persekitaran',
                dockerfile: 'Dockerfile',
                command_execution: 'Pelaksanaan arahan',
                remote_script_execution: 'Pelaksanaan skrip jauh',
                eval_execution: 'Pelaksanaan dinamik',
                base64_execution: 'Pelaksanaan dekod Base64',
                privileged_command: 'Arahan berkeistimewaan',
                dangerous_delete: 'Pemadaman berbahaya',
                world_writable_permission: 'Kebenaran berisiko tinggi',
                credential: 'Kredensial disyaki',
                sensitive_path: 'Laluan sensitif',
                suspicious_download_execute: 'Muat turun dan pelaksanaan mencurigakan',
                binary_content: 'Kandungan binari',
                scan_truncated: 'Imbasan dipotong',
            },
            riskDescriptionText: {
                script_file: 'Mengandungi fail skrip yang mungkin menjalankan arahan tempatan.',
                dependency_manifest:
                    'Mengandungi manifest kebergantungan yang mungkin memuat turun kebergantungan luaran.',
                external_url: 'Mengandungi URL luaran. Sahkan alamat keluar tersebut dipercayai.',
                environment_variable: 'Mengisytiharkan pemboleh ubah persekitaran. Sahkan tujuan dan nilai lalainya.',
                dockerfile: 'Mengandungi Dockerfile yang mungkin mentakrifkan binaan imej atau logik runtime.',
                command_execution:
                    'Mengandungi panggilan berkaitan pelaksanaan arahan. Sahkan logik tersebut dipercayai.',
                remote_script_execution: 'Mengandungi logik yang memuat turun dan terus menjalankan skrip jauh.',
                eval_execution: 'Mengandungi pelaksanaan dinamik melalui eval.',
                base64_execution: 'Mengandungi logik yang menjalankan kandungan selepas penyahkodan Base64.',
                privileged_command: 'Mengandungi arahan sudo untuk peningkatan keistimewaan.',
                dangerous_delete: 'Mengandungi arahan pemadaman berbahaya.',
                world_writable_permission: 'Mengandungi perubahan kebenaran chmod 777.',
                credential: 'Mengandungi API Key, Token, Secret atau Password yang disyaki.',
                sensitive_path: 'Mengandungi akses kepada direktori atau fail sensitif.',
                suspicious_download_execute:
                    'Mengandungi logik muat turun luaran atau muat turun dan laksana yang mencurigakan.',
                binary_content:
                    'Fail mengandungi bait NUL dan mungkin menyembunyikan kandungan boleh laksana atau binari.',
                scan_truncated: 'Fail melebihi had imbasan. Kandungan yang tidak diimbas masih perlu disemak manual.',
            },
        },
        benchmark: {
            title: 'Penanda Aras',
            launchCommand: 'Arahan Pelancaran',
            retest: 'Uji Semula',
            statusRunning: 'Sedang berjalan',
            statusWaiting: 'Menunggu',
            base: 'Maklumat Asas',
            backend: 'Backend',
            baseUrl: 'URL Asas',
            endpoint: 'Endpoint',
            tokenizer: 'Tokenizer',
            tokenizerPlaceholder:
                'Pilih atau masukkan direktori tokenizer tempatan, cth. /opt/1panel/tokenizers/DeepSeek-V3',
            runConfig: 'Konfigurasi Jalan',
            rawResult: 'Keputusan Mentah',
            resultMetrics: 'Metrik Keputusan',
            contextTokens: 'Panjang Konteks',
            contextTokensHelper: 'Had token input ditambah had token output untuk penanda aras ini.',
            outputThroughput: 'Throughput Output',
            outputThroughputHelper: 'Token output dijana setiap saat. Lebih tinggi bermaksud penjanaan lebih pantas.',
            totalThroughput: 'Jumlah Throughput',
            totalThroughputHelper:
                'Token input dan output diproses setiap saat. Digunakan untuk mengukur kapasiti keseluruhan.',
            firstTokenLatency: 'Latensi Token Pertama',
            firstTokenLatencyHelper:
                'Masa dari menghantar permintaan hingga menerima token pertama. Lebih rendah bermaksud respons lebih pantas.',
            tokenValueHelper: 'Masukkan integer positif atau nilai k, cth. 512, 1k, 32k',
            numPrompts: 'Prompt',
            concurrency: 'Keserentakan',
            mean: 'Min',
            median: 'Median',
            requestRate: 'Kadar Permintaan',
            requestRateUnlimited: 'Tanpa had (throughput maksimum)',
            requestRateCustom: 'QPS tersuai',
            requestRateCustomPlaceholder: 'Permintaan sesaat, cth. 2.5',
            successfulRequests: 'Permintaan berjaya',
            requestThroughput: 'Throughput Permintaan',
            timeout: 'Tamat Masa (saat)',
            image: 'Imej vLLM',
            ignoreEos: 'Abaikan EOS',
            extraHeaders: 'Pengepala Tambahan',
        },
        gpu: {
            gpu: 'Pemantauan GPU',
            gpuHelper: 'Sistem tidak mengesan arahan NVIDIA-SMI atau XPU-SMI. Sila periksa dan cuba lagi!',
            process: 'Maklumat Proses',
            type: 'Jenis',
            typeG: 'Grafik',
            typeC: 'Pengiraan',
            typeCG: 'Pengiraan+Grafik',
            processName: 'Nama Proses',
            shr: 'Memori Kongsi',
            temperatureHelper: 'Suhu GPU tinggi boleh menyebabkan pengurangan frekuensi GPU',
            gpuUtil: 'Penggunaan GPU',
            temperature: 'Suhu',
            performanceState: 'Status Prestasi',
            powerUsage: 'Penggunaan Kuasa',
            memoryUsage: 'Penggunaan Memori',
            fanSpeed: 'Kelajuan Kipas',
            power: 'Kuasa',
            powerCurrent: 'Kuasa Semasa',
            powerLimit: 'Had Kuasa',
            memory: 'Memori',
            memoryUsed: 'Memori Digunakan',
            memoryTotal: 'Jumlah Memori',
            percent: 'Penggunaan',
            base: 'Maklumat Asas',
            driverVersion: 'Versi Pemacu',
            cudaVersion: 'Versi CUDA',
            processMemoryUsage: 'Penggunaan Memori',
            performanceStateHelper: 'Dari P0 (prestasi maksimum) hingga P12 (prestasi minimum)',
            busID: 'Alamat Bas',
            persistenceMode: 'Mod Kegigihan',
            enabled: 'Diaktifkan',
            disabled: 'Dilumpuhkan',
            persistenceModeHelper:
                'Mod kegigihan bertindak balas kepada tugas dengan lebih cepat, tetapi penggunaan kuasa siap sedia akan meningkat dengan sewajarnya',
            displayActive: 'Permulaan GPU',
            displayActiveT: 'Ya',
            displayActiveF: 'Tidak',
            ecc: 'Teknologi Pemeriksaan dan Pembetulan Ralat',
            computeMode: 'Mod Pengiraan',
            default: 'Lalai',
            exclusiveProcess: 'Proses Eksklusif',
            exclusiveThread: 'Benang Eksklusif',
            prohibited: 'Dilarang',
            defaultHelper: 'Lalai: Proses boleh dilaksanakan serentak',
            exclusiveProcessHelper:
                'Proses Eksklusif: Hanya satu konteks CUDA boleh menggunakan GPU, tetapi boleh dikongsi oleh berbilang benang',
            exclusiveThreadHelper: 'Benang Eksklusif: Hanya satu benang dalam konteks CUDA boleh menggunakan GPU',
            prohibitedHelper: 'Dilarang: Pelaksanaan proses serentak tidak dibenarkan',
            migModeHelper:
                'Digunakan untuk mencipta contoh MIG, melaksanakan pengasingan fizikal GPU pada lapisan pengguna.',
            migModeNA: 'Tidak Disokong',
            current: 'Pemantauan Masa Nyata',
            history: 'Rekod Sejarah',
            notSupport: 'Versi atau pemacu semasa tidak menyokong paparan parameter ini.',
            processCount: 'Bilangan proses',
        },
        mcp: {
            server: 'Pelayan MCP',
            baseUrl: 'Laluan Akses Luar',
            baseUrlHelper: 'Contoh: http://192.168.1.2:8000',
            ssePath: 'Laluan SSE',
            ssePathHelper: 'Contoh: /sse, berhati-hati jangan bertindan dengan pelayan lain',
            environment: 'Pemboleh Ubah Persekitaran',
            envKey: 'Nama Pemboleh Ubah',
            envValue: 'Nilai Pemboleh Ubah',
            externalUrl: 'Alamat Sambungan Luar',
            operatorHelper: 'Akan melakukan operasi {1} pada {0}, teruskan?',
            domain: 'Alamat Akses Lalai',
            domainHelper: 'Contoh: 192.168.1.1 atau example.com',
            bindDomain: 'Sematkan Laman Web',
            commandPlaceHolder: 'Kini hanya menyokong perintah pelancaran npx dan binari',
            importMcpJson: 'Import Konfigurasi Pelayan MCP',
            importMcpJsonError: 'Struktur mcpServers tidak betul',
            bindDomainHelper:
                'Setelah mengikat laman web, ia akan mengubah alamat akses semua Pelayan MCP yang dipasang dan menutup akses luaran ke pelabuhan',
            outputTransport: 'Jenis Output',
            streamableHttpPath: 'Laluan Streaming',
            streamableHttpPathHelper: 'Contoh: /mcp, elakkan daripada bertindan dengan pelayan lain',
            npxHelper: 'Sesuai untuk mcp yang dimulakan dengan npx atau binari',
            uvxHelper: 'Sesuai untuk mcp yang dimulakan dengan uvx',
            protocolVersion: 'Versi Protokol',
            protocolVersionHelper:
                'Hanya digunakan oleh Streamable HTTP tanpa keadaan untuk memulakan MCP Server stdio hiliran secara automatik',
            gatewayArgsHelper:
                'Argumen ditambahkan pada arahan supergateway. Argumen pengangkutan, port, laluan dan protokol yang diurus oleh 1Panel tidak boleh diubah',
            testConnection: 'Uji Sambungan',
            connectionSuccess: 'Sambungan berjaya',
            connectionFailed: 'Sambungan gagal',
        },
        tensorRT: {
            llm: 'TensorRT LLM',
            modelDir: 'Direktori Model',
            commandHelper: 'Jika akses luar diperlukan, tetapkan port dalam arahan sama dengan port aplikasi',
            imageAlert:
                'Disebabkan saiz imej yang besar, disyorkan untuk memuat turun imej secara manual ke pelayan sebelum pemasangan',
            modelSpeedup: 'Dayakan pecutan model',
            modelType: 'Jenis model',
        },
    },
    container: {
        createByCommand: 'Cipta melalui perintah',
        importContainerBackupTip: 'Import fail sandaran kontena, hanya format .tar.gz disokong',
        importComposeBackupTip: 'Import fail sandaran compose, hanya format .tar.gz disokong',
        stopContainerBeforeBackup: 'Hentikan kontena sebelum sandaran',
        stopComposeBeforeBackup: 'Hentikan compose sebelum sandaran',
        stopBeforeBackupHelper:
            'Apabila diaktifkan, kontena atau perkhidmatan compose akan dihentikan sebelum sandaran dan dipulihkan secara automatik selepas selesai untuk memastikan ketekalan data.',
        commandInput: 'Input perintah',
        commandRule: 'Sila masukkan arahan docker run yang sah untuk mencipta kontena.',
        commandHelper: 'Arahan ini akan dijalankan pada pelayan untuk mencipta kontena. Teruskan?',
        updateHelper1: 'Dikesan bahawa kontena ini berasal dari gedung aplikasi. Sila perhatikan dua perkara berikut:',
        updateHelper2: '1. Pengubahsuaian semasa tidak akan diselaraskan ke aplikasi yang dipasang di gedung aplikasi.',
        updateHelper3:
            '2. Jika anda mengubah aplikasi di halaman yang dipasang, kandungan yang sedang diedit akan menjadi tidak sah.',
        updateHelper4:
            'Mengedit kontena memerlukan pembinaan semula, dan sebarang data yang tidak berterusan akan hilang. Adakah anda mahu meneruskan?',
        containerList: 'Senarai kontena',
        operatorHelper: '{0} akan dilakukan pada kontena berikut. Adakah anda mahu meneruskan?',
        operatorAppHelper:
            'Operasi "{0}" akan dilakukan pada kontena berikut dan mungkin mempengaruhi perkhidmatan yang sedang berjalan. Adakah anda mahu meneruskan?',
        containerDeleteHelper:
            "Dikesan bahawa bekas ini berasal dari Kedai Apl. Memadam bekas tidak akan mengalihnya sepenuhnya dari 1Panel. Untuk memadam sepenuhnya, sila pergi ke Kedai Apl -> menu 'Dipasang' atau 'Persekitaran Runtime'. Teruskan?",
        start: 'Mulakan',
        stop: 'Hentikan',
        restart: 'Mulakan semula',
        kill: 'Hentikan paksa',
        pause: 'Jeda',
        unpause: 'Sambung semula',
        rename: 'Tukar nama',
        remove: 'Buang',
        removeAll: 'Buang semua',
        containerPrune: 'Prune',
        containerPruneHelper1: 'Ini akan memadam semua kontena yang berada dalam keadaan dihentikan.',
        containerPruneHelper2:
            'Jika kontena berasal dari gedung aplikasi, anda perlu ke "Gedung Aplikasi -> Dipasang" dan klik butang "Bangun Semula" untuk memasangnya semula selepas pembersihan.',
        containerPruneHelper3: 'Operasi ini tidak boleh diundur. Adakah anda mahu meneruskan?',
        imagePrune: 'Prune',
        imagePruneSome: 'Bersihkan yang tidak berlabel',
        imagePruneSomeEmpty: 'Tiada imej dengan tag "none" yang boleh dibersihkan.',
        imagePruneSomeHelper: 'Bersihkan imej dengan tag "none" yang tidak digunakan oleh mana-mana kontena.',
        imagePruneAll: 'Bersihkan yang tidak digunakan',
        imagePruneAllEmpty: 'Tiada imej yang tidak digunakan boleh dibersihkan.',
        imagePruneAllHelper: 'Bersihkan imej yang tidak digunakan oleh mana-mana kontena.',
        networkPrune: 'Prune',
        networkPruneHelper: 'Ini akan membuang semua rangkaian yang tidak digunakan. Adakah anda mahu meneruskan?',
        volumePrune: 'Prune',
        volumePruneHelper: 'Ini akan membuang semua volum tempatan yang tidak digunakan. Adakah anda mahu meneruskan?',
        cleanSuccess: 'Operasi berjaya, bilangan yang dibersihkan kali ini: {0}!',
        cleanSuccessWithSpace:
            'Operasi berjaya. Bilangan cakera yang dibersihkan kali ini ialah {0}. Ruang cakera yang dibebaskan ialah {1}!',
        unExposedPort: 'Alamat pemetaan port semasa ialah 127.0.0.1, yang tidak dapat mengaktifkan akses luaran.',
        upTime: 'Waktu hidup',
        fetch: 'Dapatkan',
        lines: 'Baris',
        linesHelper: 'Sila masukkan bilangan log yang betul untuk diambil!',
        downloadLinesHelper: 'Pilih atau masukkan bilangan baris log untuk dimuat turun.',
        lastDay: 'Hari terakhir',
        last4Hour: '4 jam terakhir',
        lastHour: 'Jam terakhir',
        last10Min: '10 minit terakhir',
        cleanLog: 'Bersihkan log',
        cleanLogscope: 'Jenis pembersihan',
        downLogHelper1: 'Ini akan memuat turun semua log dari kontena {0}. Adakah anda mahu meneruskan?',
        downLogHelper2: 'Ini akan memuat turun {1} log terkini daripada kontena {0}. Adakah anda mahu meneruskan?',
        cleanLogHelper: 'Ini memerlukan memulakan semula kontena dan tidak boleh diundur. Adakah anda mahu meneruskan?',
        newName: 'Nama baru',
        source: 'Penggunaan sumber',
        cpuUsage: 'Penggunaan CPU',
        cpuTotal: 'Jumlah CPU',
        core: 'Teras',
        memUsage: 'Penggunaan memori',
        memTotal: 'Had memori',
        memCache: 'Cache memori',
        loadSize: 'Dapatkan Saiz Bekas',
        ip: 'Alamat IP',
        cpuShare: 'Bahagian CPU',
        cpuShareHelper:
            'Enjin kontena menggunakan nilai asas 1024 untuk bahagian CPU. Anda boleh meningkatkannya untuk memberikan lebih masa CPU kepada kontena.',
        inputIpv4: 'Contoh: 192.168.1.1',
        inputIpv6: 'Contoh: 2001:0db8:85a3:0000:0000:8a2e:0370:7334',
        diskUsage: 'Penggunaan Cakera',
        localVolume: 'Isipadu Storan Tempatan',
        buildCache: 'Cache Binaan',
        usage: 'Digunakan: {0}, Boleh Dibebaskan: {1}',
        clean: 'Bebaskan',
        imageClean:
            'Membersihkan imej akan memadam semua imej yang tidak digunakan. Operasi ini tidak boleh dikembalikan. Teruskan?',
        containerClean:
            'Membersihkan bekas akan memadam semua bekas yang dihentikan (termasuk aplikasi berhenti dari Kedai Apl). Operasi ini tidak boleh dikembalikan. Teruskan?',
        sizeRw: 'Saiz Lapisan Bekas',
        sizeRwHelper: 'Saiz lapisan boleh tulis yang unik untuk bekas',
        sizeRootFs: 'Saiz Maya',
        sizeRootFsHelper: 'Jumlah saiz semua lapisan imej yang disandarkan oleh bekas + lapisan bekas',
        containerFromAppHelper:
            'Dikesan bahawa kontena ini berasal dari gedung aplikasi. Operasi aplikasi boleh menyebabkan suntingan semasa menjadi tidak sah.',
        containerFromAppHelper1:
            'Klik butang [Param] dalam senarai aplikasi yang dipasang untuk memasuki halaman penyuntingan dan mengubah nama kontena.',
        command: 'Arahan',
        console: 'Interaksi kontena',
        tty: 'Peruntukkan TTY palsu (-t)',
        openStdin: 'Pastikan STDIN terbuka walaupun tidak disambungkan (-i)',
        custom: 'Kustom',
        emptyUser: 'Apabila kosong, anda akan log masuk sebagai lalai',
        privileged: 'Privileged',
        privilegedHelper:
            'Benarkan kontena menjalankan operasi teristimewa tertentu pada hos, yang boleh meningkatkan risiko kontena. Gunakan dengan berhati-hati!',
        upgradeHelper: 'Nama Repository/Nama Imej: Versi Imej',
        upgradeWarning2:
            'Operasi peningkatan memerlukan pembinaan semula kontena, sebarang data yang tidak disimpan akan hilang. Adakah anda mahu meneruskan?',
        oldImage: 'Imej semasa',
        sameImageContainer: 'Kontena imej sama',
        sameImageHelper: 'Kontena yang menggunakan imej sama boleh dinaik taraf secara berkumpulan setelah dipilih',
        targetImage: 'Imej sasaran',
        imageLoadErr: 'Tiada nama imej dikesan untuk kontena',
        imageUpdateTagEmpty: 'Tiada tag imej yang boleh dikemas kini dikesan',
        appHelper:
            'Kontena berasal dari gedung aplikasi, dan peningkatan boleh menyebabkan perkhidmatan tidak tersedia.',
        input: 'Input manual',
        forcePull: 'Tarik imej sentiasa ',
        forcePullHelper: 'Ini akan mengabaikan imej sedia ada di pelayan dan menarik imej terkini dari pendaftaran.',
        imageUpdateHelper:
            'Semak tag yang sama di registry, jika ada kemas kini barulah tarik dan kemas kini imej tempatan.',
        server: 'Hos',
        serverExample: '80, 80-88, ip:80 atau ip:80-88',
        containerExample: '80 atau 80-88',
        exposePort: 'Dedahkan port',
        exposeAll: 'Dedahkan semua',
        cmdHelper: 'Contoh: nginx -g "daemon off;"',
        entrypointHelper: 'Contoh: docker-entrypoint.sh',
        autoRemove: 'Buang automatik',
        cpuQuota: 'Bilangan teras CPU',
        memoryLimit: 'Memori',
        limitHelper: 'Jika ditetapkan kepada 0, ia bermakna tiada had. Nilai maksimum ialah {0}',
        mount: 'Mount',
        volumeOption: 'Volume',
        hostOption: 'Hos',
        serverPath: 'Laluan pelayan',
        containerDir: 'Laluan kontena',
        networkEmptyHelper: 'Sila pastikan pemilihan rangkaian bekas adalah betul',
        modeRW: 'RW',
        modeR: 'R',
        sharedLabel: 'Mod Penyebaran',
        private: 'Peribadi',
        privateHelper: 'Perubahan pemasangan dalam bekas dan hos tidak saling mempengaruhi',
        rprivate: 'Peribadi Rekursif',
        rprivateHelper: 'Semua pemasangan dalam bekas diasingkan sepenuhnya dari hos',
        shared: 'Berkongsi',
        sharedHelper: 'Perubahan pemasangan dalam hos dan bekas kelihatan antara satu sama lain',
        rshared: 'Berkongsi Rekursif',
        rsharedHelper: 'Semua perubahan pemasangan dalam hos dan bekas kelihatan antara satu sama lain',
        slave: 'Hamba',
        slaveHelper: 'Bekas dapat melihat perubahan pemasangan hos, tetapi perubahan sendiri tidak mempengaruhi hos',
        rslave: 'Hamba Rekursif',
        rslaveHelper: 'Semua pemasangan dalam bekas dapat melihat perubahan hos, tetapi tidak mempengaruhi hos',
        mode: 'Mod',
        env: 'Persekitaran',
        restartPolicy: 'Polisi Mulakan Semula',
        always: 'sentiasa',
        unlessStopped: 'melainkan dihentikan',
        onFailure: 'gagal (lima kali secara lalai)',
        no: 'tidak pernah',
        refreshTime: 'Selang penyegaran',
        cache: 'Cache',
        image: 'Imej | Imej-imej',
        imagePull: 'Tarik',
        imagePullHelper:
            'Menyokong pemilihan berbilang imej untuk ditarik, tekan Enter selepas memasukkan setiap imej untuk teruskan',
        imagePush: 'Tekan',
        imagePushHelper:
            'Terdapat pengesahan bahawa imej ini mempunyai beberapa tag. Sila pastikan nama imej yang digunakan untuk menolak adalah: {0}',
        imageDelete: 'Padam imej',
        repoName: 'Pendaftaran kontena',
        imageName: 'Nama imej',
        pull: 'Tarik',
        path: 'Laluan',
        importImage: 'Import',
        buildArgs: 'Argumen Binaan',
        imageBuild: 'Bina',
        pathSelect: 'Laluan',
        label: 'Label',
        imageTag: 'Tag imej',
        imageTagHelper:
            'Menyokong penetapan berbilang tag imej, tekan Enter selepas memasukkan setiap tag untuk teruskan',
        push: 'Tekan',
        fileName: 'Nama fail',
        export: 'Eksport',
        exportImage: 'Eksport imej',
        size: 'Saiz',
        tag: 'Tag',
        tagHelper: 'Satu setiap baris. Sebagai contoh,\nkey1=value1\nkey2=value2',
        imageNameHelper: 'Nama dan Tag imej, sebagai contoh: nginx:latest',
        cleanBuildCache: 'Bersihkan cache bina',
        delBuildCacheHelper:
            'Ini akan memadam semua artefak cache yang dijana semasa binaan dan tidak boleh diundur. Adakah anda mahu meneruskan?',
        urlWarning: 'Awalan URL tidak perlu termasuk http:// atau https://. Sila ubah.',
        network: 'Rangkaian | Rangkaian-rangkaian',
        networkHelper:
            'Ini boleh menyebabkan beberapa aplikasi dan persekitaran runtime tidak berfungsi dengan betul. Adakah anda mahu meneruskan?',
        networkName: 'Nama',
        driver: 'Pemacu',
        option: 'Pilihan',
        attachable: 'Boleh dilampirkan',
        parentNetworkCard: 'Kad Rangkaian Induk',
        subnet: 'Subnet',
        scope: 'Skop IP',
        gateway: 'Gerbang',
        auxAddress: 'Kecualikan IP',
        volume: 'Volum | Volum-volum',
        volumeDir: 'Direktori volum',
        nfsEnable: 'Aktifkan storan NFS',
        nfsAddress: 'Alamat',
        mountpoint: 'Titik pemasangan',
        mountpointNFSHelper: 'contoh: /nfs, /nfs-share',
        options: 'Pilihan',
        repo: 'Pendaftaran',
        httpRepoHelper: 'Mengoperasikan repositori jenis HTTP memerlukan mulakan semula perkhidmatan Docker.',
        httpRepo:
            'Memilih protokol HTTP memerlukan memulakan semula perkhidmatan Docker untuk menambahkannya ke pendaftaran tidak selamat.',
        delInsecure: 'Padamkan pendaftaran tidak selamat',
        delInsecureHelper:
            'Ini akan memulakan semula perkhidmatan Docker untuk mengeluarkannya dari pendaftaran tidak selamat. Adakah anda mahu meneruskan?',
        downloadUrl: 'Pelayan',
        imageRepo: 'Repo imej',
        repoHelper: 'Adakah ia termasuk repositori cermin/organisasi/projek?',
        auth: 'Memerlukan pengesahan',
        mirrorHelper:
            'Jika terdapat banyak cermin, baris baru mesti dipaparkan, contohnya:\nhttp://xxxxxx.m.daocloud.io \nhttps://xxxxxx.mirror.aliyuncs.com',
        registrieHelper:
            'Jika terdapat banyak repositori persendirian, baris baru mesti dipaparkan, contohnya:\n172.16.10.111:8081 \n172.16.10.112:8081',
        compose: 'Compose | Compose-compose',
        composeFile: 'Fail Susunan',
        fromChangeHelper: 'Menukar sumber akan membersihkan kandungan yang sedang diedit. Adakah anda mahu meneruskan?',
        composePathHelper:
            'Laluan simpan fail Compose: {0}; jika nama projek ditentukan dalam Docker Compose, nama tersebut akan diutamakan; jika tidak, {1} akan digunakan.',
        composeNamePriorityHelper:
            'Keutamaan nama projek: nama dalam konfigurasi Docker Compose > direktori induk fail > nama yang dimasukkan di sini.',
        composeHelper:
            'Komposisi yang dicipta melalui editor atau templat 1Panel akan disimpan dalam direktori {0}/docker/compose.',
        deleteFile: 'Padam fail',
        deleteComposeHelper:
            'Padam semua fail berkaitan komposisi kontena, termasuk fail konfigurasi dan fail berterusan. Sila berhati-hati!',
        deleteCompose: 'Padam komposisi ini.',
        composeDirectory: 'Direktori',
        template: 'Templat',
        composeTemplate: 'Templat Compose | Templat Compose',
        content: 'Kandungan',
        contentEmpty: 'Kandungan Compose tidak boleh kosong, sila masukkan dan cuba lagi!',
        containerNumber: 'Bilangan kontena',
        containerStatus: 'Status kontena',
        exited: 'Keluar',
        running: 'Berjalan ( {0} / {1} )',
        composeDetailHelper: 'Komposisi dibuat di luar 1Panel. Operasi mula dan berhenti tidak disokong.',
        composeOperatorHelper: 'Operasi {1} akan dilakukan pada {0}. Adakah anda mahu meneruskan?',
        composeDownHelper:
            'Ini akan menghentikan dan menghapuskan semua kontena dan rangkaian di bawah komposisi {0}. Adakah anda mahu meneruskan?',
        composeEnvHelper2:
            'Penyelarasan ini dibuat oleh Kedai Apl 1Panel. Sila ubah pembolehubah persekitaran dalam aplikasi yang dipasang.',
        composeContentPlaceholder: 'Tulis atau tampal kandungan fail docker-compose anda di sini',
        setting: 'Tetapan | Tetapan',
        restartHelper: 'Perubahan konfigurasi memerlukan perkhidmatan Docker dimulakan semula untuk berkuat kuasa',
        operatorStatusHelper: 'Ini akan "{0}" perkhidmatan Docker. Adakah anda mahu meneruskan?',
        dockerStatus: 'Perkhidmatan Docker',
        daemonJsonPathHelper: 'Pastikan laluan konfigurasi sama seperti yang dinyatakan dalam docker.service.',
        mirrors: 'Cermin pendaftaran',
        mirrorsHelper:
            'Gunakan URL cermin registri terlebih dahulu untuk operasi imej. Biarkan kosong untuk melumpuhkan cermin registri.',
        mirrorsHelper2: 'Untuk maklumat lanjut, lihat dokumen rasmi.',
        registries: 'Pendaftaran tidak selamat',
        ipv6Helper:
            'Apabila IPv6 diaktifkan, anda perlu menambah rangkaian kontena IPv6. Rujuk dokumen rasmi untuk langkah konfigurasi tertentu.',
        ipv6CidrHelper: 'Julat kolam alamat IPv6 untuk kontena',
        ipv6TablesHelper: 'Konfigurasi automatik Docker IPv6 untuk peraturan iptables.',
        experimentalHelper:
            'Mengaktifkan ip6tables memerlukan konfigurasi ini dihidupkan; jika tidak, ip6tables akan diabaikan.',
        cutLog: 'Pilihan log',
        cutLogHelper1: 'Konfigurasi semasa hanya akan mempengaruhi kontena yang baru dicipta.',
        cutLogHelper2: 'Kontena sedia ada perlu dicipta semula agar konfigurasi berkuat kuasa.',
        cutLogHelper3:
            'Harap maklum bahawa mencipta semula kontena boleh menyebabkan kehilangan data. Jika kontena anda mengandungi data penting, pastikan membuat sandaran sebelum melakukan operasi pembinaan semula.',
        maxSize: 'Saiz maksimum',
        maxFile: 'Fail maksimum',
        liveHelper:
            'Secara lalai, apabila daemon Docker ditamatkan, ia mematikan kontena yang sedang berjalan. Anda boleh mengkonfigurasi daemon supaya kontena kekal berjalan jika daemon menjadi tidak tersedia. Fungsi ini dipanggil pemulihan langsung. Pilihan pemulihan langsung membantu mengurangkan waktu henti kontena akibat kerosakan daemon, pemadaman terancang, atau peningkatan.',
        liveWithSwarmHelper: 'Konfigurasi daemon live-restore tidak serasi dengan mod swarm.',
        iptablesDisable: 'Tutup iptables',
        iptablesHelper1: 'Konfigurasi automatik peraturan iptables untuk Docker.',
        iptablesHelper2:
            'Melumpuhkan iptables akan menyebabkan kontena tidak dapat berkomunikasi dengan rangkaian luaran.',
        daemonJsonPath: 'Laluan Konfigurasi',
        serviceUnavailable: 'Perkhidmatan Docker tidak dimulakan pada masa ini.',
        startIn: ' untuk dimulakan',
        sockPath: 'Socket domain Unix',
        sockPathHelper: 'Saluran komunikasi antara daemon Docker dan klien.',
        sockPathHelper1: 'Laluan lalai: /var/run/docker-x.sock',
        sockPathMsg:
            'Menyimpan tetapan Laluan Socket boleh menyebabkan perkhidmatan Docker tidak tersedia. Adakah anda mahu meneruskan?',
        sockPathErr: 'Sila pilih atau masukkan laluan fail sock Docker yang betul',
        related: 'Berkaitan',
        includeAppstore: 'Tunjukkan kontena dari gedung aplikasi',
        excludeAppstore: 'Sembunyikan Kontena Kedai Aplikasi',
        cleanDockerDiskZone: 'Bersihkan ruang cakera yang digunakan oleh Docker',
        cleanImagesHelper: '( Bersihkan semua imej yang tidak digunakan oleh mana-mana kontena )',
        cleanContainersHelper: '( Bersihkan semua kontena yang dihentikan )',
        cleanVolumesHelper: '( Bersihkan semua volum tempatan yang tidak digunakan )',
        makeImage: 'Cipta imej',
        newImageName: 'Nama imej baru',
        commitMessage: 'Mesej komit',
        author: 'Pengarang',
        ifPause: 'Jeda Kontena Semasa Penciptaan',
        ifMakeImageWithContainer: 'Cipta Imej Baru daripada Kontena Ini?',
        finishTime: 'Masa berhenti terakhir',
        workingDir: 'Direktori kerja',
        composeFileMissing: 'Fail Compose tidak dikesan',
        resource: 'Sumber',
        macAddr: 'Alamat MAC',
        volumeHelper: 'Pastikan kandungan volum storan adalah betul',
        exportHelper: 'Eksport imej terpilih ke satu fail tar.',
        goSetting: 'Pergi ke tetapan',
    },
    cronjob: {
        importHelper:
            'Tugas terjadual dengan nama sama akan dilangkau secara automatik semasa import. Tugas akan ditetapkan ke status 【Lumpuh】 secara lalai, dan ditetapkan ke status 【Menunggu Edit】 apabila perkaitan data tidak normal.',
        changeStatus: 'Tukar status',
        disableMsg:
            'Ini akan menghentikan tugas berjadual daripada dilaksanakan secara automatik. Adakah anda mahu meneruskan?',
        enableMsg: 'Ini akan membenarkan tugas berjadual dilaksanakan secara automatik. Adakah anda mahu meneruskan?',
        taskType: 'Jenis',
        record: 'Rekod',
        viewRecords: 'Rekod',
        shell: 'Shell',
        stop: 'Hentikan Manual',
        stopHelper: 'Operasi ini akan memaksa menghentikan pelaksanaan tugas semasa. Teruskan?',
        log: 'Log sandaran',
        logHelper: 'Log sistem sandaran',
        logHelper2: '2. Log log masuk SSH pelayan ',
        logHelper3: '3. Semua log laman web ',
        containerCheckBox: 'Dalam kontena (tidak perlu masukkan arahan kontena)',
        containerName: 'Nama kontena',
        ntp: 'Penyelarasan masa',
        ntp_helper: 'Anda boleh mengkonfigurasi pelayan NTP di halaman Tetapan Pantas Alat.',
        app: 'Aplikasi sandaran',
        website: 'Laman web sandaran',
        rulesHelper: 'Menyokong pelbagai peraturan pengecualian, dipisahkan dengan koma Inggeris , contoh: *.log,*.sql',
        lastRecordTime: 'Waktu pelaksanaan terakhir',
        all: 'Semua',
        failedRecord: 'Rekod kegagalan',
        successRecord: 'Rekod berjaya',
        database: 'Pangkalan data sandaran',
        backupArgs: 'Argumen Sandaran',
        backupArgsHelper:
            'Argumen sandaran yang tidak disenaraikan boleh dimasukkan dan dipilih secara manual. Contoh: Masukkan --no-data dan pilih pilihan pertama dari senarai juntai bawah.',
        singleTransaction:
            'Sandaran jadual InnoDB menggunakan transaksi tunggal, sesuai untuk sandaran data isipadu besar',
        quick: 'Baca data baris demi baris daripada memuatkan keseluruhan jadual ke dalam ingatan, sesuai untuk sandaran data isipadu besar dan mesin ingatan rendah',
        skipLockTables: 'Sandaran tanpa mengunci semua jadual, sesuai untuk pangkalan data konkuren tinggi',
        setGtidPurgedOff:
            'Jangan eksport maklumat GTID, sesuai untuk pemulihan pangkalan data dalam persekitaran Group Replication',
        missBackupAccount: 'Akaun sandaran tidak dijumpai',
        syncDate: 'Waktu penyelarasan',
        clean: 'Bersihkan cache',
        curl: 'Akses URL',
        taskName: 'Nama',
        cronSpec: 'Kitaran pencetus',
        cronSpecDoc:
            'Kitaran pelaksanaan tersuai hanya menyokong format [minit jam hari bulan minggu], contohnya 0 0 * * *. Untuk maklumat lanjut, sila rujuk dokumen rasmi.',
        cronSpecHelper: 'Masukkan tempoh pelaksanaan yang betul',
        cleanHelper:
            'Operasi ini merekodkan semua rekod pelaksanaan tugas, fail sandaran, dan fail log. Adakah anda mahu meneruskan?',
        directory: 'Direktori sandaran',
        sourceDir: 'Direktori sumber',
        snapshot: 'Snapshot sistem',
        allOptionHelper:
            'Pelan tugas semasa adalah untuk menyandarkan semua [{0}]. Muat turun terus tidak disokong buat masa ini. Anda boleh menyemak senarai sandaran dalam menu [{0}].',
        exclusionRules: 'Peraturan pengecualian',
        exclusionRulesHelper:
            'Pilih atau masukkan peraturan pengecualian, tekan Enter selepas setiap set untuk teruskan. Peraturan pengecualian akan digunakan untuk semua operasi mampatan dalam sandaran ini',
        default_download_path: 'Pautan muat turun lalai',
        saveLocal: 'Simpan sandaran tempatan (sama seperti bilangan salinan storan awan)',
        url: 'Alamat URL',
        urlHelper: 'Sila masukkan alamat URL yang sah',
        targetHelper: 'Akaun sandaran diselenggara dalam tetapan panel.',
        withImageHelper: 'Sandarkan imej kedai aplikasi, tetapi ini akan meningkatkan saiz fail snapshot.',
        ignoreApp: 'Kecualikan aplikasi',
        withImage: 'Sandarkan Imej Aplikasi',
        retainCopies: 'Simpan salinan',
        retryTimes: 'Bilangan Cubaan Semula',
        timeout: 'Masa Tamat',
        ignoreErr: 'Abaikan ralat',
        ignoreErrHelper: 'Abaikan ralat semasa sandaran untuk memastikan semua tugas sandaran dilaksanakan',
        retryTimesHelper: '0 bermaksud tiada cubaan semula selepas gagal',
        retainCopiesHelper: 'Bilangan salinan untuk menyimpan rekod pelaksanaan dan log',
        retainCopiesHelper1: 'Bilangan salinan untuk menyimpan fail sandaran',
        retainCopiesUnit: ' salinan (Lihat)',
        cronSpecRule: 'Format tempoh pelaksanaan dalam baris {0} adalah salah. Sila semak dan cuba lagi!',
        perMonthHelper: 'Laksanakan pada hari ke-{0} setiap bulan pada {1}:{2}',
        perWeekHelper: 'Laksanakan setiap minggu pada hari {0} pada {1}:{2}',
        perDayHelper: 'Laksanakan setiap hari pada {0}:{1}',
        perHourHelper: 'Laksanakan setiap jam pada minit ke-{0}',
        perNDayHelper: 'Laksanakan setiap {0} hari pada {1}:{2}',
        perNHourHelper: 'Laksanakan setiap {0} jam pada {1}',
        perNMinuteHelper: 'Laksanakan setiap {0} minit',
        perNSecondHelper: 'Laksanakan setiap {0} saat',
        perMonth: 'Setiap bulan',
        perWeek: 'Setiap minggu',
        perHour: 'Setiap jam',
        perNDay: 'Setiap N hari',
        perDay: 'Setiap hari',
        perNHour: 'Setiap N jam',
        perNMinute: 'Setiap N minit',
        perNSecond: 'Setiap N saat',
        day: 'hari',
        monday: 'Isnin',
        tuesday: 'Selasa',
        wednesday: 'Rabu',
        thursday: 'Khamis',
        friday: 'Jumaat',
        saturday: 'Sabtu',
        sunday: 'Ahad',
        shellContent: 'Skrip',
        errRecord: 'Log salah',
        errHandle: 'Kegagalan pelaksanaan tugas cron',
        noRecord: 'Picu Tugas Cron, dan anda akan melihat rekod di sini.',
        cleanData: 'Bersihkan data',
        cleanRemoteData: 'Padam data jarak jauh',
        cleanDataHelper: 'Padam fail sandaran yang dijana semasa tugas ini.',
        noLogs: 'Tiada keluaran tugas lagi...',
        errPath: 'Laluan sandaran [{0}] salah, tidak boleh dimuat turun!',
        cutWebsiteLog: 'Putaran log laman web',
        cutWebsiteLogHelper: 'Fail log yang diputar akan disandarkan ke direktori sandaran 1Panel.',
        syncIpGroup: 'Segerakkan kumpulan IP WAF',
        syncIpGroupHelper: 'Segerakkan kumpulan IP jauh yang digunakan dalam senarai hitam/putih WAF',
        requestExpirationTime: 'Waktu luput permintaan muat naik (Jam)',
        unitHours: 'Unit: Jam',
        alertTitle: 'Tugas Terancang - {0} 「{1}」 Amaran Kegagalan Tugas',
        library: {
            script: 'Skrip',
            syncNow: 'Segerakan Sekarang',
            turnOnSync: 'Hidupkan Segerakan Auto',
            turnOnSyncHelper:
                'Menghidupkan segerakan auto akan melakukan penyegerakan automatik pada waktu awal pagi setiap hari',
            turnOffSync: 'Matikan Segerakan Auto',
            turnOffSyncHelper: 'Mematikan segerakan auto mungkin menyebabkan kelewatan penyegerakan skrip, sahkan?',
            isInteractive: 'Interaktif',
            interactive: 'Skrip interaktif',
            interactiveHelper:
                'Memerlukan input pengguna semasa pelaksanaan dan tidak boleh digunakan dalam tugas terjadual.',
            library: 'Perpustakaan Skrip',
            remoteLibrary: 'Pustaka Skrip Jauh',
            create: 'Tambah Skrip',
            edit: 'Sunting Skrip',
            groupHelper:
                'Tetapkan kumpulan yang berbeza berdasarkan ciri skrip, yang membolehkan operasi penapisan skrip dilakukan dengan lebih pantas.',
            handleHelper: 'Akan melaksanakan skrip {1} pada {0}, teruskan?',
            noSuchApp:
                'Perkhidmatan {0} tidak dikesan. Sila pasang dengan cepat menggunakan pustaka skrip terlebih dahulu!',
            syncHelper: 'Akan menyelaraskan pustaka skrip sistem. Operasi ini hanya melibatkan skrip sistem. Teruskan?',
        },
        nextTime: '5 pelaksanaan seterusnya',
        logHelper1: '1. Log sistem 1Panel',
        backupContent: 'Kandungan sandaran',
        cronSpecRule2: 'Format tempoh pelaksanaan tidak betul, semak dan cuba lagi!',
        executor: 'Pelaksana',
        cleanLog: 'Bersih log automatik',
        cleanLogscope: 'Tempoh simpan log',
    },
    monitor: {
        globalFilter: 'Penapis Global',
        enableMonitor: 'Status Pemantauan',
        storeDays: 'Hari Penyimpanan',
        defaultNetwork: 'Kad Rangkaian Lalai',
        defaultNetworkHelper:
            'Pilihan kad rangkaian lalai yang dipaparkan dalam antara muka pemantauan dan gambaran keseluruhan',
        defaultIO: 'Cakera Lalai',
        defaultIOHelper: 'Pilihan cakera lalai yang dipaparkan dalam antara muka pemantauan dan gambaran keseluruhan',
        cleanMonitor: 'Kosongkan Rekod Pemantauan',
        cleanHelper: 'Operasi ini akan membersihkan semua rekod pemantauan termasuk GPU. Teruskan?',
        avgLoad: 'Purata beban',
        loadDetail: 'Butiran beban',
        resourceUsage: 'Penggunaan sumber',
        networkCard: 'Antara muka rangkaian',
        read: 'Baca',
        write: 'Tulis',
        readWriteCount: 'Operasi I/O',
        readWriteTime: 'Kelewatan I/O',
        today: 'Hari ini',
        yesterday: 'Semalam',
        lastNDay: '{0} hari terakhir',
        lastNMonth: '{0} bulan terakhir',
        lastHalfYear: 'Setengah tahun terakhir',
        memory: 'Memori',
        percent: 'Peratusan',
        cache: 'Cache',
        disk: 'Cakera',
        network: 'Rangkaian',
        up: 'Naik',
        down: 'Turun',
        interval: 'Selang Kumpulan',
        intervalHelper: 'Sila masukkan selang kumpulan pemantauan yang sesuai (10 saat - 12 jam)',
        runtimeDiagnostics: 'Diagnostik Masa Jalan',
        runtimeRSS: 'Memori Proses (RSS)',
        runtimeHeapAlloc: 'Memori Heap',
        runtimeHeapObjects: 'Objek Heap',
        runtimeGoroutines: 'Goroutine',
        goroutineSnapshot: 'Petikan Goroutine',
        goroutineSummary: '{0} goroutine dikumpulkan kepada {1} tindanan panggilan',
        goroutineTruncated: 'Petikan terlalu besar. Hanya sebahagian tindanan panggilan dipaparkan.',
        captureSnapshot: 'Segarkan Petikan',
        count: 'Bilangan',
        topFunction: 'Fungsi Teratas',
        manualCapture: 'Tangkapan Manual',
        startCapture: 'Mula Tangkap',
        capturing: 'Sedang Menangkap',
        captureSuccess: 'Fail diagnostik dijana; muat turun dimulakan',
        profileCPU: 'CPU',
        profileHeap: 'Heap',
        profileGoroutine: 'Goroutine',
        profileMutex: 'Mutex',
        profileBlock: 'Sekatan',
        runtimeRSSDesc: 'Memori fizikal yang digunakan proses, termasuk heap Go, tindanan thread dan memori natif.',
        runtimeHeapAllocDesc:
            'Memori yang diperuntukkan pada heap Go dan belum dilepaskan. Pertumbuhan berterusan mungkin menunjukkan objek tertahan.',
        runtimeHeapObjectsDesc:
            'Bilangan objek hidup dalam heap Go. Pertumbuhan berterusan mungkin menunjukkan objek tertahan.',
        runtimeGoroutineDesc:
            'Bilangan tugas serentak ringan semasa. Pertumbuhan berterusan mungkin menunjukkan kebocoran Goroutine.',
        profileCPUDesc:
            'Mengambil sampel tindanan panggilan CPU untuk tempoh dipilih bagi mencari fungsi yang menggunakan CPU.',
        profileHeapDesc:
            'Merekod objek heap Go yang masih digunakan dan tindanan peruntukannya untuk menyiasat pertumbuhan memori.',
        profileGoroutineDesc:
            'Menyimpan keadaan dan tindanan panggilan setiap Goroutine serta mengumpulkan laluan yang sama.',
        profileMutexDesc: 'Mengukur masa menunggu akibat persaingan mutex untuk mencari titik persaingan kunci.',
        profileBlockDesc: 'Mengukur sekatan pada Channel, Select dan primitif penyegerakan.',
    },
    terminal: {
        local: 'Tempatan',
        defaultConn: 'Sambungan Lalai',
        defaultConnHelper:
            'Operasi ini akan menyambung secara automatik ke terminal nod selepas membuka terminal untuk 【{0}】. Teruskan?',
        withReset: 'Tetapkan Semula Maklumat Sambungan',
        localConnJump:
            'Maklumat sambungan lalai dikekalkan dalam [Terminal - Tetapan]. Jika sambungan gagal, sila edit di sana!',
        nodeAdminLocalOnly: 'Pentadbir nod hanya menyokong terminal setempat.',
        localHelper: 'Nama tempatan hanya digunakan untuk pengenalan sistem tempatan.',
        connLocalErr: 'Tidak dapat mengesahkan secara automatik, sila isi maklumat log masuk pelayan tempatan.',
        testConn: 'Uji sambungan',
        saveAndConn: 'Simpan dan sambung',
        connTestOk: 'Maklumat sambungan tersedia',
        connTestFailed: 'Sambungan tidak tersedia, sila semak maklumat sambungan.',
        host: 'Hos | Hos-hos',
        createConn: 'Sambungan baru',
        noHost: 'Tiada hos',
        groupChange: 'Tukar kumpulan',
        expand: 'Kembangkan semua',
        fold: 'Kontrak semua',
        batchInput: 'Pemprosesan kelompok',
        quickCommand: 'Arahan pantas | Arahan pantas',
        noSuchCommand: 'Tiada data arahan pantas ditemui dalam fail CSV yang diimport, sila periksa dan cuba lagi!',
        quickCommandHelper: 'Anda boleh menggunakan arahan pantas di bahagian bawah "Terminal -> Terminal".',
        groupDeleteHelper:
            'Selepas kumpulan dikeluarkan, semua sambungan dalam kumpulan akan dipindahkan ke kumpulan lalai. Adakah anda mahu meneruskan?',
        quickCommandBatchHelper:
            'Satu arahan pantas setiap baris, menggunakan format Nama---Arahan, contohnya: Semak cakera---df -h',
        command: 'Arahan',
        quickCmd: 'Arahan pantas',
        addHost: 'Tambah',
        localhost: 'Localhost',
        ip: 'Alamat',
        authMode: 'Pengesahan',
        passwordMode: 'Kata laluan',
        rememberPassword: 'Ingat maklumat pengesahan',
        keyMode: 'Kunci Peribadi',
        key: 'Kunci peribadi',
        keyPassword: 'Kata laluan kunci peribadi',
        emptyTerminal: 'Tiada terminal yang sedang disambungkan.',
        lineHeight: 'Ketinggian baris',
        letterSpacing: 'Jarak huruf',
        fontSize: 'Saiz fon',
        fontFamily: 'Set fon',
        fontFamilySupportHelper:
            'Pilih atau masukkan fon. Sama ada berkesan bergantung pada sama ada fon tersebut dipasang pada sistem pelayar; jika tiada, ia akan fallback secara automatik. Jika kosong, fon lalai akan digunakan.',
        backgroundColor: 'Warna latar belakang',
        foregroundColor: 'Warna teks',
        cursorBlink: 'Kedipan kursor',
        cursorStyle: 'Gaya kursor',
        cursorUnderline: 'Garis bawah',
        cursorBlock: 'Blok',
        cursorBar: 'Bar',
        scrollback: 'Skrol balik',
        scrollSensitivity: 'Kepekaan skrol',
        aiAssistant: 'Pembantu AI',
        aiAccountHelper:
            'Gunakan akaun model yang dipilih untuk menjana dan mengisi arahan. Untuk model tempatan seperti Ollama dan vLLM, gunakan akaun model tersuai.',
        aiPrefix: 'Awalan pencetus',
        aiPrefixHelper:
            'Masukkan "awalan + ruang" dan tekan Enter untuk mencetuskan penjanaan arahan AI, contohnya: {0} bantu saya semak maklumat cakera.',
        aiRiskCommands: 'Pencegatan arahan berisiko',
        aiRiskCommandsHelper:
            'Konfigurasikan arahan berisiko yang perlu dipintas, satu bagi setiap baris. Apabila sepadan, penjanaan akan disekat dan diisi semula sebagai komen.',
        aiSummary:
            'Apabila baris bermula dengan awalan {0} dan anda menekan Enter, penjanaan arahan AI akan dicetuskan.',
        aiPrefixAsciiVisible:
            'Hanya aksara ASCII yang kelihatan disokong. Ruang, aksara CJK dan simbol lebar penuh tidak dibenarkan.',
        saveHelper: 'Adakah anda pasti mahu menyimpan konfigurasi terminal semasa?',
    },
    toolbox: {
        common: {
            toolboxHelper: 'Untuk beberapa isu pemasangan dan penggunaan, sila rujuk kepada',
        },
        swap: {
            swap: 'Partition Swap',
            swapHelper1:
                'Saiz partition swap harus 1 hingga 2 kali ganda memori fizikal, boleh disesuaikan berdasarkan keperluan tertentu;',
            swapHelper2:
                'Sebelum mencipta fail swap, pastikan cakera sistem mempunyai ruang yang mencukupi, kerana saiz fail swap akan menggunakan ruang cakera yang bersamaan;',
            swapHelper3:
                'Swap boleh membantu mengurangkan tekanan memori, tetapi ia hanya alternatif. Kebergantungan berlebihan pada swap boleh menyebabkan penurunan prestasi sistem. Disarankan untuk mengutamakan peningkatan memori atau pengoptimuman penggunaan memori aplikasi;',
            swapHelper4:
                'Disarankan untuk memantau penggunaan swap secara berkala bagi memastikan operasi sistem berjalan dengan normal.',
            swapDeleteHelper:
                'Operasi ini akan membuang partition Swap {0}. Atas sebab keselamatan sistem, fail yang sepadan tidak akan dipadamkan secara automatik. Jika pemadaman diperlukan, sila lakukan secara manual!',
            saveHelper: 'Sila simpan tetapan semasa terlebih dahulu!',
            saveSwap:
                'Menyimpan konfigurasi semasa akan menyesuaikan saiz partition Swap {0} kepada {1}. Adakah anda mahu meneruskan?',
            swapMin: 'Saiz minimum partition adalah 40 KB. Sila ubah dan cuba lagi!',
            swapMax: 'Nilai maksimum untuk saiz partition adalah {0}. Sila ubah dan cuba lagi!',
            swapOff: 'Saiz minimum partition adalah 40 KB. Menetapkannya kepada 0 akan mematikan partition Swap.',
        },
        device: {
            dnsHelper: 'Pelayan DNS',
            dnsAlert:
                'Perhatian! Mengubah konfigurasi fail /etc/resolv.conf akan mengembalikan fail ke nilai lalai selepas sistem dimulakan semula.',
            dnsHelper1:
                'Apabila terdapat pelbagai entri DNS, ia perlu dipaparkan pada baris baru. Contoh:\n114.114.114.114\n8.8.8.8',
            hostsHelper: 'Resolusi nama hos',
            hosts: 'Domain',
            hostAlert: 'Rekod komen tersembunyi, sila klik butang Semua Konfigurasi untuk melihat atau menetapkan',
            toolbox: 'Tetapan pantas',
            hostname: 'Nama hos',
            passwd: 'Kata laluan sistem',
            passwdHelper: 'Aksara input tidak boleh termasuk $ dan &',
            timeZone: 'Zon waktu',
            localTime: 'Waktu pelayan',
            timeZoneChangeHelper: 'Mengubah zon waktu sistem memerlukan memulakan semula perkhidmatan. Teruskan?',
            timeZoneHelper:
                'Jika anda tidak memasang arahan "timedatectl", anda mungkin tidak dapat mengubah zon waktu kerana sistem menggunakan arahan itu untuk mengubah zon waktu.',
            timeZoneCN: 'Beijing',
            timeZoneAM: 'Los Angeles',
            timeZoneNY: 'New York',
            ntpALi: 'Alibaba',
            ntpGoogle: 'Google',
            syncSite: 'Pelayan NTP',
            hostnameHelper:
                'Pengubahan nama hos bergantung pada arahan "hostnamectl". Jika arahan itu tidak dipasang, pengubahan mungkin gagal.',
            userHelper:
                'Nama pengguna bergantung pada arahan "whoami" untuk pengambilan. Jika arahan itu tidak dipasang, pengambilan mungkin gagal.',
            passwordHelper:
                'Pengubahan kata laluan bergantung pada arahan "chpasswd". Jika arahan itu tidak dipasang, pengubahan mungkin gagal.',
            hostHelper:
                'Terdapat nilai kosong dalam kandungan yang disediakan. Sila semak dan cuba lagi selepas pengubahsuaian!',
            dnsCheck: 'Uji Ketersediaan',
            dnsOK: 'Maklumat konfigurasi DNS tersedia!',
            dnsTestFailed: 'Maklumat konfigurasi DNS tidak tersedia.',
            syncSiteHelper: 'Gunakan {0} untuk penyegerakan masa sistem. Teruskan?',
        },
        fail2ban: {
            sshPort: 'Dengar pada port SSH',
            sshPortHelper: 'Fail2ban semasa mendengar pada port sambungan SSH hos',
            unActive: 'Perkhidmatan Fail2ban tidak diaktifkan pada masa ini.',
            operation: 'Anda akan melaksanakan operasi "{0}" pada perkhidmatan Fail2ban. Adakah anda mahu meneruskan?',
            fail2banChange: 'Pengubahan Konfigurasi Fail2ban',
            ignoreHelper:
                'Senarai IP dalam senarai dibenarkan akan diabaikan untuk disekat. Adakah anda mahu meneruskan?',
            bannedHelper: 'Senarai IP dalam senarai sekatan akan disekat oleh pelayan. Adakah anda mahu meneruskan?',
            maxRetry: 'Percubaan maksimum',
            banTime: 'Waktu sekatan',
            banTimeHelper: 'Waktu sekatan lalai adalah 10 minit, -1 menunjukkan sekatan kekal',
            banTimeRule: 'Sila masukkan waktu sekatan yang sah atau -1',
            banAllTime: 'Sekatan kekal',
            findTime: 'Tempoh penemuan',
            banAction: 'Tindakan sekatan',
            banActionOption: 'Sekat alamat IP tertentu menggunakan {0}',
            allPorts: ' (Semua Port)',
            ignoreIP: 'Senarai IP yang dibenarkan',
            bannedIP: 'Senarai IP yang disekat',
            logPath: 'Laluan log',
            logPathHelper: 'Lalai adalah /var/log/secure atau /var/log/auth.log',
        },
        ftp: {
            ftp: 'Akaun FTP | Akaun FTP',
            notStart: 'Perkhidmatan FTP tidak berjalan pada masa ini, sila mulakan dahulu!',
            initHelper:
                'Identiti pengguna FTP belum dimulakan. Klik Mulakan pada bar status di bahagian atas terlebih dahulu.',
            operation: 'Ini akan melaksanakan operasi "{0}" pada perkhidmatan FTP. Adakah anda mahu meneruskan?',
            noPasswdMsg:
                'Tidak dapat mendapatkan kata laluan akaun FTP semasa, sila tetapkan kata laluan dan cuba lagi!',
            enableHelper:
                'Mengaktifkan akaun FTP yang dipilih akan memulihkan kebenaran aksesnya. Adakah anda mahu meneruskan?',
            disableHelper:
                'Melumpuhkan akaun FTP yang dipilih akan membatalkan kebenaran aksesnya. Adakah anda mahu meneruskan?',
            syncHelper: 'Selaraskan data akaun FTP antara pelayan dan pangkalan data. Adakah anda mahu meneruskan?',
            dirSystem:
                'Direktori ini dikhaskan untuk sistem. Pengubahsuaian mungkin menyebabkan sistem rosak, sila ubah dan cuba lagi!',
            dirHelper: 'Membolehkan FTP memerlukan perubahan kebenaran direktori - sila pilih dengan berhati-hati',
            dirMsg: 'Membolehkan FTP akan mengubah kebenaran untuk seluruh direktori {0}. Teruskan?',
        },
        clam: {
            clam: 'Imbasan virus',
            cron: 'Imbasan berjadual',
            cronHelper: 'Edisi Komersial menyokong imbasan berjadual',
            specErr: 'Ralat format jadual pelaksanaan, sila semak dan cuba lagi!',
            disableMsg:
                'Menghentikan pelaksanaan berjadual akan menghalang tugas imbasan ini daripada berjalan secara automatik. Adakah anda mahu meneruskan?',
            enableMsg:
                'Mengaktifkan pelaksanaan berjadual akan membolehkan tugas imbasan ini berjalan secara automatik pada selang waktu yang tetap. Adakah anda mahu meneruskan?',
            showFresh: 'Tunjukkan perkhidmatan pengemas kini tanda tangan',
            hideFresh: 'Sembunyikan perkhidmatan pengemas kini tanda tangan',
            clamHelper:
                'Konfigurasi minimum yang disyorkan untuk ClamAV ialah: RAM 3 GiB atau lebih, CPU teras tunggal dengan 2.0 GHz atau lebih tinggi, dan sekurang-kurangnya 5 GiB ruang cakera keras yang tersedia.',
            notStart: 'Perkhidmatan ClamAV tidak berjalan pada masa ini, sila mulakan dahulu!',
            removeRecord: 'Padam fail laporan',
            noRecords: 'Klik butang "Picu" untuk memulakan imbasan dan anda akan melihat rekod di sini.',
            removeInfected: 'Padam fail virus',
            removeInfectedHelper:
                'Padam fail virus yang dikesan semasa tugas untuk memastikan keselamatan pelayan dan operasi normal.',
            clamCreate: 'Cipta peraturan imbasan',
            infectedStrategy: 'Strategi fail dijangkiti',
            removeHelper: 'Padam fail virus, pilih dengan berhati-hati!',
            move: 'Pindah',
            moveHelper: 'Pindahkan fail virus ke direktori yang ditentukan',
            copyHelper: 'Salin fail virus ke direktori yang ditentukan',
            none: 'Jangan buat apa-apa',
            noneHelper: 'Tidak mengambil tindakan ke atas fail virus',
            scanDir: 'Imbas direktori',
            infectedDir: 'Direktori fail dijangkiti',
            scanDate: 'Tarikh Imbasan',
            scanResult: 'Hujung log imbasan',
            tail: 'Baris',
            infectedFiles: 'Fail dijangkiti',
            log: 'Butiran',
            clamConf: 'Daemon Clam AV',
            clamLog: '@:toolbox.clam.clamConf log',
            freshClam: 'FreshClam',
            freshClamLog: '@:toolbox.clam.freshClam log',
            alertHelper: 'Edisi Komersial menyokong imbasan berjadual dan amaran SMS',
            alertTitle: 'Tugas imbasan virus 「{0}」 mengesan amaran fail dijangkiti',
        },
    },
    logs: {
        core: 'Perkhidmatan Panel',
        agent: 'Pemantauan Nod',
        panelLog: 'Log Panel',
        operation: 'Log Operasi',
        login: 'Log Masuk',
        loginIP: 'IP Log Masuk',
        loginAddress: 'Alamat Log Masuk',
        loginAgent: 'Ejen Log Masuk',
        loginStatus: 'Status',
        system: 'Log Sistem',
        hostSystem: 'Log hos',
        previousPage: 'Halaman sebelumnya',
        nextPage: 'Halaman seterusnya',
        filter: 'Tapis mesej',
        service: 'Perkhidmatan',
        priority: 'Keutamaan',
        priorityEmergency: 'Kecemasan',
        priorityAlert: 'Amaran',
        priorityCritical: 'Kritikal',
        priorityError: 'Ralat',
        priorityWarning: 'Peringatan',
        priorityNotice: 'Notis',
        priorityInfo: 'Maklumat',
        priorityDebug: 'Nyahpepijat',
        message: 'Mesej',
        deleteLogs: 'Bersihkan Log',
        resource: 'Sumber',
        detail: {
            dashboard: 'Overview',
            ai: 'AI',
            skills_hub: 'Skills Hub',
            ai_proxy: 'Proksi AI',
            ai_benchmark: 'Penanda Aras',
            groups: 'Kumpulan',
            hosts: 'Hos',
            apps: 'Aplikasi',
            openresty: 'OpenResty',
            websites: 'Laman Web',
            monitor: 'Pemantauan Laman Web',
            containers: 'Kontena',
            files: 'Pengurusan Fail',
            runtimes: 'Persekitaran Jalankan',
            process: 'Pengurusan Proses',
            toolbox: 'Kotak Alat',
            backups: 'Sandaran / Pulihkan',
            tampers: 'Perlindungan daripada Pinda',
            xsetting: 'Tetapan Antara Muka',
            logs: 'Audit Log',
            settings: 'Tetapan Panel',
            cronjobs: 'Tugas Terjadual',
            waf: 'WAF',
            databases: 'Pangkalan',
            licenses: 'lesen',
            nodes: 'nod',
            commands: 'Perintah Pantas',
            opsReport: 'Laporan Operasi',
            ops_report: 'Laporan Operasi',
            users: 'Pengurusan pengguna',
            roles: 'Peranan',
            auth: 'Pengesahan log masuk',
            auth_sources: 'Tetapan Pengesahan',
            alert: 'Pemberitahuan amaran',
            sync: 'Penyegerakan Sumber',
            exchange: 'Penyegerakan Sumber',
            xapp: 'App',
            vms: 'Pengurusan Mesin Maya',
        },
        websiteLog: 'Log Laman Web',
        runLog: 'Log Jalankan',
        errLog: 'Log Ralat',
        task: 'Log tugas',
        taskName: 'Nama tugas',
        taskRunning: 'Sedang berjalan',
    },
    file: {
        fileDirNum: '{0} direktori, {1} fail,',
        currentDir: 'Direktori Semasa',
        dir: 'Folder',
        fileName: 'Nama fail',
        search: 'Cari',
        mode: 'Kebenaran',
        editPermissions: 'Sunting kebenaran',
        owner: 'Pemilik',
        file: 'Fail',
        remoteFile: 'Muat turun dari jarak jauh',
        share: 'Kongsi',
        sync: 'Penyelarasan Data',
        size: 'Saiz',
        updateTime: 'Diubah suai',
        rename: 'Tukar nama',
        role: 'Kebenaran',
        info: 'Atribut',
        linkFile: 'Pautan lembut',
        shareList: 'Senarai kongsi',
        fileTools: 'Alat fail',
        aiSearchHitLines: 'Baris padanan',
        aiSearch: 'Carian AI',
        aiSearchTitle: 'Carian AI',
        aiSearchHint:
            'Cari kandungan fail baris demi baris. Gunakan butang di sebelah kanan baris carian dan "Syarat lanjutan" di bawah. Apabila akaun AI diaktifkan dan disimpan, ringkasan Markdown juga boleh dijana.',
        aiSearchAccountTitle: 'Akaun AI',
        aiSearchAccountIntro: 'Pilih akaun model besar untuk menjana ringkasan, kemudian simpan selepas perubahan.',
        aiSearchAccountEnable: 'Dayakan carian AI fail',
        aiSearchSaveAccount: 'Simpan konfigurasi akaun',
        aiSearchSectionQuery: 'Carian',
        aiSearchSectionConditions: 'Syarat carian',
        aiSearchResultsSection: 'Hasil analisis',
        aiSearchContentLabel: 'Kandungan carian',
        aiSearchDirLabel: 'Direktori',
        aiSearchExtLabel: 'Sambungan fail',
        aiSearchModifiedPreset: 'Masa diubah',
        aiSearchSizePresetLabel: 'Saiz fail',
        aiSearchTimeAny: 'Bila-bila masa',
        aiSearchTime3h: '3 jam terakhir',
        aiSearchTime1d: '1 hari terakhir',
        aiSearchTime7d: '7 hari terakhir',
        aiSearchTime30d: '30 hari terakhir',
        aiSearchTimeCustom: 'Tersuai',
        aiSearchSizeAny: 'Tiada had saiz',
        aiSearchSize0_10mb: '0 ~ 10 MB',
        aiSearchSize10_100mb: '10 MB ~ 100 MB',
        aiSearchSize100_1gb: '100 MB ~ 1 GB',
        aiSearchSizeGte1gb: '≥ 1 GB',
        aiSearchSizeCustom: 'Tersuai (bait)',
        aiSearchPlaceholder: 'Masukkan kandungan carian',
        aiSearchContainSub: 'Subfolder',
        aiSearchMaxItems: 'Had maksimum laluan/fail yang terlibat dalam carian (enumerasi direktori, 1–2000)',
        aiSearchRun: 'Mula analisis',
        aiSearchTruncated: 'Terlalu banyak item direktori, hanya sebahagian senarai disertakan.',
        aiSearchPreFiltered: 'Laluan relatif telah ditapis awal mengikut kata kunci.',
        aiSearchMeta: 'Item untuk analisis: {0} | Tempoh {1} | Token {2}',
        aiSearchQueryRequired: 'Masukkan penerangan carian atau kata kunci',
        aiSearchContentHits: 'Padanan kandungan',
        aiSearchContentScanMeta: 'Imbasan kandungan: {0} fail teks dibaca.',
        aiSearchNoLineHits: 'Tiada baris yang sepadan ditemui dalam fail teks yang telah diimbas.',
        aiSearchHitsTruncated: 'Sebahagian fail tidak diimbas atau senarai padanan dipotong oleh had.',
        aiSearchHitFiles: 'Fail yang sepadan',
        aiSearchOpenFile: 'Buka dalam editor',
        aiSearchOpenAtLine: 'Buka dan pergi ke baris ini',
        aiSearchGrepOnlyHint:
            'AI fail belum diaktifkan: hanya carian kandungan deterministik dijalankan, tanpa model. Dayakan dan simpan akaun AI di atas untuk mendapatkan ringkasan. Baris carian dan pilihan di bawah masih berfungsi.',
        aiSearchMatchCase: 'Peka huruf besar/kecil',
        aiSearchWholeWord: 'Padanan keseluruhan perkataan (sempadan perkataan Inggeris \\b)',
        aiSearchUseRegex: 'Ungkapan regular (sintaks Go RE2)',
        aiSearchExtensions: 'Sambungan fail (dipisahkan koma, contohnya go,ts,md)',
        aiSearchMinSize: 'Saiz fail minimum (bait, 0 = tiada had)',
        aiSearchMaxSize: 'Saiz fail maksimum (bait, 0 = tiada had)',
        aiSearchSectionAdvanced: 'Syarat lanjutan',
        aiSearchLimitMaxItems: 'Jumlah fail carian',
        aiSearchLimitMaxScan: 'Jumlah fail untuk imbasan kandungan',
        aiSearchLimitMaxBytes: 'Had baca kandungan setiap fail',
        aiSearchLimitHitsPerFile: 'Baris padanan setiap fail',
        aiSearchLimitTotalHits: 'Jumlah keseluruhan baris padanan',
        aiSearchLimitUnitEntries: 'item',
        aiSearchLimitUnitFiles: 'fail',
        aiSearchLimitUnitBytes: 'B',
        aiSearchLimitUnitLines: 'baris',
        aiSearchMaxScanFiles: 'Maksimum fail untuk imbasan kandungan',
        aiSearchMaxFileBytes:
            'Bait maksimum yang dibaca dari setiap fail semasa imbasan kandungan. Berbeza dengan penapis saiz di atas (saiz pada cakera menentukan sama ada fail masuk senarai), ini mengehadkan jumlah bacaan sebenar untuk padanan.',
        aiSearchMaxHitsPerFile: 'Maksimum baris padanan setiap fail',
        aiSearchMaxTotalHits: 'Had jumlah baris padanan',
        aiSearchGrepMetaContent:
            'Imbasan kandungan: {0} jumlah item, {1} fail teks dibaca (mengikut syarat carian semasa; had saiz/bilangan dikenakan). Tempoh {2}',
        aiSearchAdvancedResetDefaults: 'Pulihkan had lalai',
        zip: 'Dimampatkan',
        group: 'Kumpulan',
        path: 'Laluan',
        public: 'Lain-lain',
        setRole: 'Tetapkan kebenaran',
        link: 'Pautan fail',
        rRole: 'Baca',
        wRole: 'Tulis',
        xRole: 'Boleh laksana',
        name: 'Nama',
        compress: 'Mampatkan',
        deCompress: 'Nyahmampatkan',
        compressType: 'Format mampatan',
        compressDst: 'Laluan mampatan',
        replace: 'Timpa fail sedia ada',
        compressSuccess: 'Berjaya dimampatkan',
        deCompressSuccess: 'Berjaya dinyahmampatkan',
        deCompressDst: 'Laluan nyahmampatan',
        linkType: 'Jenis pautan',
        softLink: 'Pautan lembut',
        hardLink: 'Pautan keras',
        linkPath: 'Laluan pautan',
        selectFile: 'Pilih fail',
        downloadUrl: 'URL Jarak Jauh',
        downloadStart: 'Muat turun bermula',
        wgetUrlInvalid: 'Masukkan URL muat turun http(s) yang sah',
        moveSuccess: 'Berjaya dipindahkan',
        copySuccess: 'Berjaya disalin',
        pasteMsg: 'Sila klik butang "Tampal" di bahagian kanan atas direktori sasaran',
        move: 'Pindah',
        calculate: 'Kira',
        remark: 'Catatan',
        setRemark: 'Tetapkan catatan',
        remarkPrompt: 'Masukkan catatan',
        remarkPlaceholder: 'Catatan',
        remarkToggle: 'Catatan',
        remarkToggleTip: 'Muatkan catatan fail',
        canNotDeCompress: 'Tidak dapat nyahmampatkan fail ini',
        uploadSuccess: 'Berjaya dimuat naik',
        downloadProcess: 'Kemajuan muat turun',
        downloading: 'Sedang muat turun...',
        infoDetail: 'Sifat fail',
        root: 'Direktori akar',
        list: 'Senarai fail',
        sub: 'Subfolder',
        downloadSuccess: 'Berjaya dimuat turun',
        theme: 'Tema',
        language: 'Bahasa',
        eol: 'Akhir baris',
        history: 'Sejarah versi',
        historyTitle: 'Sejarah versi',
        historyHint:
            'Rekod versi sebelum perubahan fail, lihat sejarah perubahan kandungan fail dan kembali ke versi kandungan.',
        historySettingTitle: 'Dasar versi',
        historyEnable: 'Dayakan rekod versi',
        historyMaxPerPath: 'Simpan setiap fail',
        historyDiskQuota: 'Kuota cakera global (MB)',
        historyCurrentScope: 'Fail semasa',
        historyAllScope: 'Semua fail',
        historyDeleteConfirm: 'Adakah anda pasti mahu memadam rekod perubahan yang dipilih?',
        historyNeedFile: 'Sila buka fail terlebih dahulu',
        historyRestore: 'Pulihkan versi ini',
        historyOperationOnlyHint: 'Item yang dipilih ialah operasi fail dan tidak menyokong pemulihan versi.',
        historyCurrentFile: 'Fail semasa',
        historyLatestVersion:
            'Bahagian kiri memaparkan kandungan versi sejarah, bahagian kanan memaparkan versi terkini fail yang ' +
            'dipilih',
        historyCompareTarget: 'Sasaran perbandingan',
        historyCompareTargetPath: 'Laluan perbandingan',
        historyRestoreConfirm: 'Pulihkan versi ini ke fail semasa?',
        historyRestoreDirtyConfirm:
            'Fail semasa mempunyai perubahan yang belum disimpan. Pemulihan akan menulis ganti perubahan tersebut. ' +
            'Teruskan?',
        historyRestoreSuccess: 'Versi berjaya dipulihkan',
        historyDirtyHint:
            'Editor semasa mempunyai perubahan yang belum disimpan. Pemulihan versi akan menulis ganti perubahan ' +
            'tersebut.',
        historyDiffHintCurrent:
            'Bahagian kiri memaparkan kandungan versi sejarah, bahagian kanan memaparkan kandungan fail semasa',
        historyDiffHintAll:
            'Bahagian kiri memaparkan kandungan versi sejarah, bahagian kanan memaparkan versi terkini fail yang ' +
            'dipilih',
        copyDir: 'Salin',
        shareFile: 'Kongsi fail',
        shareExpire: 'Tempoh sah',
        shareExpire1h: '1 jam',
        shareExpire6h: '6 jam',
        shareExpire24h: '24 jam',
        shareExpire3d: '3 hari',
        shareExpire7d: '7 hari',
        sharePassword: 'Kata laluan',
        sharePasswordPlaceholder: 'Biarkan kosong jika tanpa kata laluan',
        shareMaxDownloads: 'Muat turun maksimum',
        shareMaxDownloadsHint: '0 bermakna tanpa had',
        shareGenerate: 'Cipta pautan',
        shareRegenerate: 'Kongsi semula',
        shareClose: 'Tutup',
        shareCancel: 'Batalkan perkongsian',
        shareCancelConfirm: 'Adakah anda pasti mahu membatalkan perkongsian fail ini?',
        shareDetail: 'Butiran',
        shareCopyLink: 'Salin pautan',
        shareLinkLabel: 'Pautan perkongsian',
        shareQrCode: 'Kod QR',
        shareQrDialogTitle: 'Kod QR pautan perkongsian',
        shareQrDialogHelper: 'Imbas kod QR ini dengan peranti mudah alih anda',
        shareSaveImage: 'Simpan imej',
        shareOpenImage: 'Buka imej',
        shareExtractFile: 'Dapatkan fail',
        shareDownloadingHint: 'Fail sedang disediakan. Muat turun akan bermula sebentar lagi.',
        shareInvalid: 'Pautan perkongsian tidak sah atau telah tamat tempoh',
        shareDownloadFailed: 'Muat turun gagal. Cuba lagi kemudian',
        sharePasswordRequired: 'Kata laluan akses',
        sharePasswordRequiredInput: 'Masukkan kata laluan perkongsian',
        sharePasswordLengthHint: 'Panjang kata laluan perkongsian mestilah 4-256 aksara',
        shareDownloadPasswordTip: 'Pautan ini dilindungi kata laluan. Masukkan kata laluan sebelum memuat turun.',
        shareRiskAlert:
            'Pautan perkongsian mungkin membawa risiko keselamatan. Kongsi hanya dengan orang yang dipercayai dan elakkan pendedahan maklumat sensitif.',
        sharePasswordSeparate:
            'Kata laluan telah ditetapkan. Kongsikannya dengan selamat. Penerima mesti menambah &password=... pada URL atau menggunakan klien yang boleh menghantar parameter pertanyaan kata laluan.',
        shareExpiresAt: 'Tamat tempoh pada',
        paste: 'Tampal',
        changeOwner: 'Ubah suai pengguna dan kumpulan pengguna',
        containSub: 'Guna perubahan kebenaran secara rekursif',
        ownerHelper:
            'Pengguna lalai persekitaran operasi PHP: kumpulan pengguna adalah 1000:1000, dan adalah normal jika pengguna di dalam dan di luar kontena menunjukkan ketidakkonsistenan',
        searchHelper: 'Sokong wildcard seperti *',
        uploadFailed: '[{0}] Gagal memuat naik fail',
        fileUploadStart: 'Memuat naik [{0}]...',
        uploadOverallProgress: 'Kemajuan keseluruhan',
        uploadCurrentFileProgress: 'Fail semasa',
        currentSelect: 'Pilihan semasa: ',
        unsupportedType: 'Jenis fail tidak disokong',
        deleteHelper:
            'Adakah anda pasti mahu memadam fail berikut? Secara lalai, ia akan masuk ke tong kitar semula selepas dipadamkan',
        fileHelper: 'Nota:\n1. Keputusan carian tidak boleh diisih.\n2. Folder tidak boleh diisih mengikut saiz.',
        forceDeleteHelper: 'Padamkan fail secara kekal (tanpa masuk ke tong kitar semula, padam terus)',
        recycleBin: 'Tong kitar semula',
        sourcePath: 'Laluan asal',
        deleteTime: 'Masa padam',
        confirmReduce: 'Adakah anda pasti mahu memulihkan fail berikut?',
        reduceSuccess: 'Berjaya dipulihkan',
        reduce: 'Pulihkan',
        reduceHelper:
            'Jika fail atau direktori dengan nama yang sama wujud di laluan asal, ia akan ditimpa. Adakah anda mahu meneruskan?',
        clearRecycleBin: 'Bersihkan',
        clearRecycleBinHelper: 'Adakah anda mahu membersihkan tong kitar semula?',
        favorite: 'Kegemaran',
        removeFavorite: 'Buang daripada kegemaran?',
        addFavorite: 'Tambah/Buang ke Kegemaran',
        addFavoriteAction: 'Tambah ke Kegemaran',
        removeFavoriteAction: 'Buang daripada Kegemaran',
        clearList: 'Bersihkan senarai',
        deleteRecycleHelper: 'Adakah anda pasti mahu memadam fail berikut secara kekal?',
        typeErrOrEmpty: '[{0}] jenis fail salah atau folder kosong',
        dropHelper: 'Seret fail yang anda mahu muat naik ke sini',
        fileRecycleBin: 'Aktifkan tong kitar semula',
        fileRecycleBinMsg: '{0} tong kitar semula',
        wordWrap: 'Bungkus secara automatik',
        deleteHelper2: 'Adakah anda pasti mahu memadam fail yang dipilih? Operasi pemadaman tidak boleh dipulihkan',
        ignoreCertificate: 'Benarkan sambungan pelayan tidak selamat',
        ignoreCertificateHelper:
            'Membenarkan sambungan pelayan tidak selamat boleh menyebabkan kebocoran atau pengubahan data. Gunakan pilihan ini hanya jika mempercayai sumber muat turun.',
        useProxy: 'Muat turun melalui proksi',
        useProxyHelper: 'Gunakan pelayan proksi dalam tetapan panel untuk mengakses URL muat turun jauh',
        uploadOverLimit: 'Bilangan fail melebihi 1000! Sila mampatkan dan muat naik',
        clashDidNotSupport: 'Nama fail dilarang mengandungi .1panel_clash',
        clashDeleteAlert: 'Folder "Tong Kitar Semula" tidak boleh dipadamkan',
        clashOpenAlert: 'Sila klik butang "Tong Kitar Semula" untuk membuka direktori tong kitar semula',
        right: 'Ke hadapan',
        back: 'Ke belakang',
        top: 'Pergi ke atas',
        up: 'Kembali',
        openWithVscode: 'Buka dengan VS Code',
        vscodeHelper:
            'Sahkan mod pengesahan, hos, port dan nama pengguna. Pengesahan kunci memerlukan konfigurasi SSH pada komputer yang menjalankan VS Code sebelum digunakan.',
        vscodeCopyConfig: 'Salin skrip persediaan',
        vscodeKeyHelper:
            'Nama muat turun kunci peribadi dijana daripada laluan yang dikonfigurasi. Simpan fail ke laluan tersebut; skrip persediaan akan menyemak fail dan menetapkan kebenaran.',
        vscodeKeyPath: 'Laluan kunci peribadi SSH',
        vscodeKeyPathPlaceholder: 'Contohnya: ~/.ssh/id_ed25519',
        vscodeSelectKey: 'Kunci peribadi SSH',
        vscodeScriptPreview: 'Skrip persediaan SSH',
        vscodePasswordHelper:
            'Pengesahan kata laluan tidak ditulis ke konfigurasi SSH tempatan. Masukkan kata laluan dalam VS Code semasa menyambung ke hos jauh.',
        vscodePasswordHint:
            'Pengesahan kata laluan menyambung menggunakan hos, port dan nama pengguna yang dikonfigurasi. Tiada skrip persediaan atau fail kunci peribadi diperlukan.',
        vscodeScriptPreviewHint:
            'Jalankan skrip persediaan pada komputer yang menjalankan VS Code untuk mendaftar alias SSH sambungan jauh. Jalankan semula selepas hos, port, nama pengguna, kunci peribadi atau laluan kunci berubah.',
        vscodePasswordModeTitle: 'Pengesahan kata laluan',
        vscodePasswordModeHint:
            'Pengesahan kata laluan menyambung menggunakan hos, port dan nama pengguna yang dikonfigurasi. Tiada skrip persediaan atau fail kunci peribadi diperlukan.',
        vscodePasswordStep1: 'Sahkan hos, port, dan nama pengguna.',
        vscodePasswordStep2: 'Buka VS Code dan masukkan kata laluan apabila diminta.',
        vscodePasswordStep3: 'Tiada muat turun kunci peribadi diperlukan.',
        saveContentAndClose: 'Fail telah diubah suai, adakah anda mahu menyimpan dan menutupnya?',
        saveAndOpenNewFile: 'Fail telah diubah suai, adakah anda mahu menyimpan dan membuka fail baru?',
        noEdit: 'Fail tidak diubah suai, tiada keperluan untuk tindakan ini!',
        noNameFolder: 'Folder tanpa nama',
        noNameFile: 'Fail tanpa nama',
        minimap: 'Peta mini kod',
        fileCanNotRead: 'Fail tidak dapat dibaca',
        previewTruncated: 'Fail terlalu besar, hanya menunjukkan bahagian terakhir',
        previewEmpty: 'Fail kosong atau bukan fail teks',
        previewLargeFile: 'Pratonton',
        panelInstallDir: 'Direktori pemasangan 1Panel tidak boleh dipadamkan',
        wgetTask: 'Tugas Muat Turun',
        stopWgetConfirm: 'Adakah anda pasti mahu menghentikan tugas muat turun ini?',
        existFileTitle: 'Amaran fail dengan nama yang sama',
        existFileHelper: 'Fail yang dimuat naik mengandungi fail dengan nama yang sama. Adakah anda mahu menimpanya?',
        existFileSize: 'Saiz fail (baru -> lama)',
        existFileDirHelper: 'Fail/folder yang dipilih mempunyai nama yang sama. Sila berhati-hati!\n',
        coverDirHelper: 'Folder yang dipilih untuk ditimpa akan disalin ke laluan destinasi!',
        noSuchFile: 'Fail atau direktori tidak ditemui. Sila periksa dan cuba lagi.',
        setting: 'tetapan',
        showHide: 'Tunjukkan fail tersembunyi',
        noShowHide: 'Jangan tunjukkan fail tersembunyi',
        cancelUpload: 'Batalkan Muat Naik',
        cancelUploadHelper:
            'Adakah hendak membatalkan muat naik, selepas pembatalan senarai muat naik akan dikosongkan.',
        keepOneTab: 'Pastikan sekurang-kurangnya satu tab dikekalkan',
        notCanTab: 'Tidak dapat menambah tab lagi',
        convert: 'Tukar Format',
        converting: 'Menukar Ke',
        fileCanNotConvert: 'Fail ini tidak menyokong penukaran format',
        formatType: 'Jenis Format',
        sourceFormat: 'Format Asal',
        sourceFile: 'Fail Asal',
        saveDir: 'Direktori Simpanan',
        deleteSourceFile: 'Padam Fail Asal',
        convertHelper: 'Tukar fail yang dipilih ke format lain',
        convertHelper1: 'Sila pilih fail yang hendak ditukar',
        execConvert: 'Mulakan penukaran. Anda boleh melihat log penukaran di Pusat Tugas',
        convertLogs: 'Log Penukaran',
        formatConvert: 'Penukaran Format',
    },
    ssh: {
        autoStart: 'Mula automatik',
        enable: 'Aktifkan Mula Automatik',
        disable: 'Nyahaktif Mula Automatik',
        sshAlert:
            'Data senarai disusun berdasarkan tarikh log masuk. Menukar zon waktu atau melakukan operasi lain boleh menyebabkan penyimpangan dalam tarikh log masuk.',
        sshAlert2:
            'Anda boleh menggunakan "Fail2ban" di "Kotak Alat" untuk menyekat alamat IP yang cuba menyerang secara kasar, dan ini akan meningkatkan keselamatan hos.',
        sshOperate: 'Operasi "{0}" pada perkhidmatan SSH akan dilaksanakan. Adakah anda mahu meneruskan?',
        sshChange: 'Tetapan SSH',
        sshChangeHelper: 'Tindakan ini mengubah "{0}" kepada "{1}". Adakah anda mahu meneruskan?',
        sshFileChangeHelper:
            'Mengubah fail konfigurasi boleh menyebabkan ketidaktersediaan perkhidmatan. Lakukan operasi ini dengan berhati-hati. Adakah anda mahu meneruskan?',
        port: 'Port',
        portHelper: 'Tentukan port yang didengar oleh perkhidmatan SSH.',
        listenAddress: 'Alamat dengar',
        allV4V6: '0.0.0.0:{0}(IPv4) dan :::{0}(IPv6)',
        listenHelper:
            'Membiarkan tetapan IPv4 dan IPv6 kosong akan mendengar pada "0.0.0.0:{0}(IPv4)" dan ":::{0}(IPv6)".',
        addressHelper: 'Tentukan alamat yang didengar oleh perkhidmatan SSH.',
        permitRootLogin: 'Benarkan log masuk pengguna root',
        rootSettingHelper: 'Kaedah log masuk lalai untuk pengguna root ialah "Benarkan log masuk SSH".',
        rootHelper1: 'Benarkan log masuk SSH',
        rootHelper2: 'Lumpuhkan log masuk SSH',
        rootHelper3: 'Hanya log masuk dengan kunci dibenarkan',
        rootHelper4: 'Hanya arahan yang telah ditetapkan boleh dilaksanakan. Operasi lain tidak dibenarkan.',
        passwordAuthentication: 'Pengesahan kata laluan',
        pwdAuthHelper: 'Sama ada untuk mengaktifkan pengesahan kata laluan. Parameter ini diaktifkan secara lalai.',
        pubkeyAuthentication: 'Pengesahan kunci',
        privateKey: 'Kunci Persendirian',
        publicKey: 'Kunci Awam',
        password: 'Kata Laluan',
        createMode: 'Kaedah Penciptaan',
        generate: 'Jana Automatik',
        unSyncPass: 'Kata laluan kunci tidak dapat diselaraskan',
        syncHelper:
            'Operasi segerak akan membersihkan kunci tidak sah dan menyegerakkan pasangan kunci baru yang lengkap. Teruskan?',
        input: 'Input Manual',
        import: 'Muat Naik Fail',
        authKeys: 'Kunci Pengesahan',
        authKeysHelper: 'Simpan maklumat kunci awam semasa?',
        pubkey: 'Maklumat kunci',
        pubKeyHelper: 'Maklumat kunci semasa hanya berkuat kuasa untuk pengguna {0}',
        encryptionMode: 'Mod penyulitan',
        passwordHelper: 'Boleh mengandungi 6 hingga 10 angka dan huruf dalam kedua-dua huruf besar dan kecil',
        reGenerate: 'Jana semula kunci',
        keyAuthHelper: 'Sama ada untuk mengaktifkan pengesahan kunci.',
        useDNS: 'Gunakan DNS',
        dnsHelper:
            'Kawal sama ada fungsi resolusi DNS diaktifkan pada pelayan SSH untuk mengesahkan identiti sambungan.',
        confFileOrderHelper:
            'Gunakan dropdown untuk tukar fail konfigurasi dan terus edit/simpan; tetapan berkuat kuasa mengikut turutan muat, nilai yang dimuat dahulu diutamakan.',
        confFileOrderLabel: '{0} (Turutan muat #{1})',
        analysis: 'Maklumat statistik',
        denyHelper:
            "Melaksanakan operasi 'tolak' pada alamat berikut. Selepas menetapkan, IP akan dilarang mengakses pelayan. Adakah anda mahu meneruskan?",
        acceptHelper:
            "Melaksanakan operasi 'terima' pada alamat berikut. Selepas menetapkan, IP akan mendapatkan semula akses normal. Adakah anda mahu meneruskan?",
        noAddrWarning: 'Tiada alamat [{0}] yang dipilih pada masa ini. Sila periksa dan cuba lagi!',
        loginLogs: 'Log SSH',
        loginMode: 'Mod',
        authenticating: 'Kunci',
        publickey: 'Kunci',
        belong: 'Milikan',
        local: 'Tempatan',
        session: 'Sesi | Sesi-sesi',
        loginTime: 'Waktu log masuk',
        loginIP: 'IP log masuk',
        stopSSHWarn: 'Adakah anda mahu memutuskan sambungan SSH ini',
        remote: 'SSH jauh',
    },
    setting: {
        panel: 'Panel',
        user: 'Pengguna panel',
        userChange: 'Tukar pengguna panel',
        userChangeHelper: 'Menukar pengguna panel akan menyebabkan anda log keluar. Teruskan?',
        passwd: 'Kata laluan panel',
        emailHelper: 'Untuk pemulihan kata laluan',
        watermark: 'Tetapan Tanda Air',
        watermarkContent: 'Kandungan Tanda Air',
        contentHelper:
            '{0} mewakili nama nod, {1} mewakili alamat nod. Anda boleh menggunakan pembolehubah atau mengisi nama tersuai.',
        watermarkColor: 'Warna Tanda Air',
        watermarkFont: 'Saiz Fon Tanda Air',
        watermarkHeight: 'Ketinggian Tanda Air',
        watermarkWidth: 'Lebar Tanda Air',
        watermarkRotate: 'Sudut Putaran',
        watermarkGap: 'Jarak',
        watermarkCloseHelper: 'Adakah anda pasti ingin mematikan tetapan tanda air sistem?',
        watermarkOpenHelper: 'Adakah anda pasti ingin menyimpan tetapan tanda air sistem semasa?',
        title: 'Alias panel',
        panelPort: 'Port panel',
        titleHelper:
            'Menyokong panjang 3 hingga 30 aksara dengan huruf Inggeris, huruf Cina, nombor, ruang kosong dan aksara khas yang biasa',
        portHelper:
            'Julat port yang disarankan ialah 8888 hingga 65535. Nota: Jika pelayan mempunyai kumpulan keselamatan, benarkan port baru dari kumpulan keselamatan terlebih dahulu',
        portChange: 'Tukar port',
        portChangeHelper: 'Ubah port perkhidmatan dan mulakan semula perkhidmatan. Adakah anda mahu meneruskan?',
        theme: 'Tema',
        menuTabs: 'Tab menu',
        menuAccordion: 'Pengembangan berbilang menu',
        menuAccordionHelper:
            'Selepas diaktifkan, beberapa kumpulan menu bar sisi boleh kekal dikembangkan pada masa yang sama.',
        dark: 'Gelap',
        darkGold: 'Emas Gelap',
        light: 'Terang',
        auto: 'Ikut Sistem',
        language: 'Bahasa',
        runtimeEnv: 'Persekitaran operasi',
        docSource: 'Sumber dokumentasi',
        withByRegion: 'Ikut wilayah operasi (Lalai)',
        withByLang: 'Ikut bahasa sistem',
        region: 'Wilayah operasi',
        cn: 'Tanah Besar China',
        intl: 'Global',
        regionHelper: 'Menukar wilayah akan menukar sumber berikut:',
        regionHelper1: 'Pakej pemasangan sistem',
        regionHelper2: 'Kedai aplikasi dan pustaka skrip',
        regionHelper3: 'Manual pengguna dan dokumen berkaitan',
        regionHelper4:
            'Tindakan ini mungkin menjejaskan muat turun dan akses seterusnya. Sila teruskan dengan berhati-hati.',
        regionTip: 'Wilayah operasi mempengaruhi sumber kemas kini sistem serta alamat muat turun pakej pemasangan.',
        docSourceTip: 'Sumber dokumentasi menentukan bahasa pautan untuk dokumentasi dan log kemas kini.',
        languageHelper:
            'Secara lalai, ia mengikuti bahasa penyemak imbas. Parameter ini hanya berkuat kuasa pada penyemak imbas semasa',
        sessionTimeout: 'Tempoh tamat sesi',
        sessionTimeoutError: 'Tempoh tamat sesi minimum ialah 300 saat',
        sessionTimeoutHelper: 'Panel akan log keluar secara automatik jika tiada operasi lebih daripada {0} saat.',
        systemIP: 'Alamat akses lalai',
        systemIPHelper:
            'Penghantaran semula aplikasi, akses kontena dan fungsi lain akan menggunakan alamat ini untuk penghalaan. Setiap nod boleh ditetapkan dengan alamat yang berbeza.',
        proxy: 'Proksi pelayan',
        proxyHelper: 'Ia akan berkuat kuasa dalam senario berikut selepas anda menyediakan pelayan proksi:',
        proxyHelper1: 'Muat turun pakej pemasangan dan penyelarasan daripada kedai aplikasi (Edisi Komersial sahaja)',
        proxyHelper2: 'Kemas kini sistem dan semakan maklumat kemas kini (Edisi Komersial sahaja)',
        proxyHelper4:
            'Permintaan rangkaian seperti tarikan imej Docker akan melalui pelayan proksi (Edisi Komersial sahaja)',
        proxyHelper3: 'Pengesahan dan penyelarasan lesen sistem',
        proxyHelper5: 'Muat turun dan penyegerakan bersepadu untuk pustaka skrip sistem (ciri Edisi Komersial)',
        proxyHelper6: 'Mohon sijil (Fungsi versi komersial)',
        proxyType: 'Jenis proksi',
        proxyUrl: 'Alamat proksi',
        proxyPort: 'Port proksi',
        proxyPasswdKeep: 'Ingat Kata Laluan',
        proxyDocker: 'Proksi Docker',
        proxyDockerHelper:
            'Selaraskan konfigurasi pelayan proksi ke Docker, menyokong tarikan imej pelayan luar talian dan operasi lain',
        syncToNode: 'Penyegerakan ke nod anak',
        syncToNodeHelper: 'Penyegerakan tetapan ke nod lain',
        nodes: 'Nod',
        selectNode: 'Pilih nod',
        selectNodeError: 'Sila pilih nod',
        apiInterface: 'Aktifkan API',
        apiInterfaceClose: 'Setelah ditutup, antara muka API tidak boleh diakses. Adakah anda mahu meneruskan?',
        apiInterfaceHelper: 'Benarkan aplikasi pihak ketiga mengakses API.',
        apiInterfaceAlert1:
            'Jangan aktifkan dalam persekitaran pengeluaran kerana ia mungkin meningkatkan risiko keselamatan pelayan.',
        apiInterfaceAlert2:
            'Jangan gunakan aplikasi pihak ketiga untuk memanggil API bagi mengelakkan potensi ancaman keselamatan.',
        apiInterfaceAlert3: 'Dokumentasi API',
        apiInterfaceAlert4: 'Panduan penggunaan',
        apiKey: 'Kunci API',
        apiKeyHelper: 'Kunci API digunakan untuk aplikasi pihak ketiga mengakses API.',
        ipWhiteList: 'Senarai putih IP',
        ipWhiteListEgs: 'Satu per baris. Contoh,\n172.161.10.111\n172.161.10.0/24',
        ipWhiteListHelper: 'IP dalam senarai putih boleh mengakses API, 0.0.0.0/0 (semua IPv4), ::/0 (semua IPv6)',
        apiTrustedProxies: 'Proksi dipercayai API',
        apiTrustedProxiesEgs:
            'Satu IP atau CIDR pelayan proksi bagi setiap baris. Contoh:\n172.16.10.111\n172.16.10.0/24',
        apiTrustedProxiesHelper:
            'Apabila menggunakan proksi songsang, masukkan IP atau rangkaian pelayan proksi untuk mendapatkan IP klien dengan betul. Jika tidak digunakan, biarkan kosong. 0.0.0.0/0 dan ::/0 tidak disokong.',
        apiKeyValidityTime: 'Tempoh sah kunci antara muka',
        apiKeyValidityTimeEgs: 'Tempoh sah kunci antara muka (dalam minit)',
        apiKeyValidityTimeHelper:
            'Cap waktu antara muka sah jika perbezaannya dengan cap waktu semasa (dalam minit) berada dalam julat yang dibenarkan. Nilai 0 melumpuhkan pengesahan.',
        apiKeyReset: 'Tetapkan semula kunci antara muka',
        apiKeyResetHelper:
            'Perkhidmatan kunci yang berkaitan akan menjadi tidak sah. Sila tambah kunci baru pada perkhidmatan',
        confDockerProxy: 'Konfigurasi proksi docker',
        restartNowHelper: 'Mengkonfigurasi proksi Docker memerlukan memulakan semula perkhidmatan Docker.',
        restartNow: 'Mulakan semula sekarang',
        restartLater: 'Mulakan semula secara manual nanti',
        systemIPWarning:
            'Nod semasa belum mempunyai alamat akses lalai yang dikonfigurasi. Sila pergi ke tetapan panel untuk mengkonfigurasinya!',
        systemIPWarning1: 'Alamat pelayan semasa ditetapkan kepada {0}, dan pengalihan cepat tidak mungkin!',
        syncTime: 'Waktu Pelayan',
        timeZone: 'Zon Waktu',
        timeZoneChangeHelper:
            'Menukar zon waktu memerlukan memulakan semula perkhidmatan. Adakah anda mahu meneruskan?',
        timeZoneHelper:
            'Pengubahan zon waktu bergantung pada perkhidmatan sistem timedatectl. Berkuat kuasa selepas mulakan semula perkhidmatan 1Panel.',
        timeZoneCN: 'Beijing',
        timeZoneAM: 'Los Angeles',
        timeZoneNY: 'New York',
        ntpALi: 'Alibaba',
        ntpGoogle: 'Google',
        syncSite: 'Ntp Server',
        syncSiteHelper:
            'Operasi ini akan menggunakan {0} sebagai sumber untuk penyegerakan masa sistem. Adakah anda mahu meneruskan?',
        changePassword: 'Tukar Kata Laluan',
        oldPassword: 'Kata laluan asal',
        newPassword: 'Kata laluan baru',
        retryPassword: 'Sahkan kata laluan',
        passwordEmptyTip: 'Biarkan kosong untuk tidak mengubah kata laluan semasa',
        noSpace: 'Maklumat input tidak boleh mengandungi aksara ruang',
        duplicatePassword: 'Kata laluan baru tidak boleh sama dengan kata laluan asal, sila masukkan semula!',
        diskClean: 'Pembersihan Cache',
        developerMode: 'Program Pratonton',
        developerModeHelper:
            'Anda akan dapat mengalami ciri dan pembaikan baru sebelum ia dilancarkan secara meluas dan memberikan maklum balas awal.',
        thirdParty: 'Akaun pihak ketiga',
        noTypeForCreate: 'Tiada jenis sandaran yang sedang dibuat',
        LOCAL: 'Cakera pelayan',
        OSS: 'Ali OSS',
        S3: 'Amazon S3',
        mode: 'Mode',
        MINIO: 'MinIO',
        SFTP: 'SFTP',
        WebDAV: 'WebDAV',
        WebDAVAlist: 'WebDAV sambungkan Alist boleh merujuk kepada dokumentasi rasmi',
        OneDrive: 'Microsoft OneDrive',
        isCN: 'Century Internet',
        isNotCN: 'Versi Antarabangsa',
        client_id: 'ID Klien',
        client_secret: 'Rahsia Klien',
        redirect_uri: 'URL Penghalaan Semula',
        onedrive_helper: 'Konfigurasi tersuai boleh dirujuk dalam dokumentasi rasmi',
        refreshTime: 'Waktu Penyegaran Token',
        refreshStatus: 'Status Penyegaran Token',
        backupDir: 'Direktori Sandaran',
        codeWarning: 'Format kod kebenaran semasa tidak betul, sila sahkan semula!',
        code: 'Kod Auth',
        codeHelper:
            'Klik butang "Peroleh", kemudian log masuk ke {0} dan salin kandungan selepas "code" dalam pautan ubah hala. Tampalkannya ke dalam kotak input ini. Untuk arahan khusus, rujuk dokumentasi rasmi.',
        googleHelper:
            'Sila buat aplikasi Google dan dapatkan maklumat klien terlebih dahulu, isi borang dan klik butang dapatkan. Untuk operasi khusus, sila rujuk dokumentasi rasmi.',
        loadCode: 'Peroleh',
        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: ' Jenis storan',
        typeStandard: 'Standard',
        typeStandard_IA: 'Standard_IA',
        typeArchive: 'Archive',
        typeDeep_Archive: 'Deep_Archive',
        scLighthouse: 'Lalai, Penyimpanan objek ringan hanya menyokong jenis penyimpanan ini',
        scStandard:
            'Storan Standard sesuai untuk senario perniagaan dengan sejumlah besar fail panas yang memerlukan akses masa nyata, interaksi data yang kerap, dan sebagainya.',
        scStandard_IA:
            'Storan kekerapan rendah sesuai untuk senario perniagaan dengan kekerapan akses yang agak rendah dan menyimpan data sekurang-kurangnya 30 hari.',
        scArchive: 'Storan arkib sesuai untuk senario perniagaan dengan kekerapan akses yang sangat rendah.',
        scDeep_Archive:
            'Storan sejuk tahan lama sesuai untuk senario perniagaan dengan kekerapan akses yang sangat rendah.',
        archiveHelper:
            'Fail storan arkib tidak boleh dimuat turun secara langsung dan mesti dipulihkan terlebih dahulu melalui laman web penyedia perkhidmatan awan yang berkaitan. Sila gunakan dengan berhati-hati!',
        backupAlert:
            'Jika penyedia awan serasi dengan protokol S3, anda boleh menggunakan Amazon S3 secara langsung untuk sandaran.',
        domain: 'Domain pemecutan',
        backupAccount: 'Akaun sandaran | Akaun sandaran',
        loadBucket: 'Dapatkan baldi',
        accountName: 'Nama akaun',
        accountKey: 'Kunci akaun',
        address: 'Alamat',
        path: 'Laluan',
        safe: 'Keselamatan',
        passkey: 'Passkey',
        passkeyManage: 'Urus',
        passkeyKeyManagement: 'Pengurusan kunci',
        passkeyHelper: 'Untuk log masuk pantas, maksimum 5 passkey boleh dipautkan',
        passkeyRequireSSL: 'Passkey memerlukan nama domain terikat dan akses HTTPS',
        passkeyTrustedProxies: 'Proksi dipercayai',
        passkeyTrustedProxiesHelper:
            'Hanya permintaan daripada IP/CIDR ini akan mempercayai Forwarded dan X-Forwarded-Proto untuk menentukan HTTPS',
        passkeyNotSupported: 'Pelayar atau persekitaran semasa tidak menyokong passkey',
        passkeyPrereqTitle: 'Prasyarat berikut diperlukan untuk Passkey',
        passkeyPrereqBindDomain: 'Pengikatan domain 1Panel dikonfigurasi',
        passkeyPrereqHttps: 'Akses selamat melalui HTTPS',
        passkeyPrereqBrowser: 'Persekitaran menyokong Passkey (WebAuthn + pengesah platform)',
        passkeyPrereqBrowserDetailWebAuthnUnavailable:
            'Gunakan pelayar sistem dan pastikan panel dibuka melalui HTTPS dengan domain yang telah diikat.',
        passkeyPrereqBrowserDetailPlatformCapabilityUnavailable:
            'Persekitaran ini tidak boleh menggunakan pengesahan peranti. Cuba pelayar sistem pada versi OS yang lebih baharu.',
        passkeyPrereqBrowserDetailNoPlatformAuthenticator:
            'Aktifkan kunci skrin / cap jari / pengecaman wajah / Windows Hello, kemudian cuba lagi.',
        passkeyPrereqBrowserDetailDetectFailed:
            'Pengesanan gagal. Muat semula dan cuba lagi, atau tukar ke pelayar sistem.',
        passkeyPrereqGoSetup: 'Konfigurasi',
        passkeyCount: 'Dipaut {0}/{1}',
        passkeyName: 'Nama',
        passkeyNameHelper: 'Masukkan nama untuk membezakan peranti',
        passkeyAdd: 'Tambah Passkey',
        passkeyCreatedAt: 'Dicipta',
        passkeyLastUsedAt: 'Terakhir digunakan',
        passkeyDeleteConfirm: 'Selepas dipadam, passkey ini tidak boleh digunakan untuk log masuk. Teruskan?',
        passkeyLimit: 'Maksimum 5 passkey boleh dipautkan',
        passkeyFailed:
            'Pendaftaran passkey gagal, sila pastikan sertifikat SSL panel adalah sertifikat yang dipercayai',
        bindInfo: 'Maklumat ikatan',
        bindAll: 'Dengar Semua',
        bindInfoHelper:
            'Mengubah alamat atau protokol perkhidmatan pendengaran boleh menyebabkan ketidaktersediaan perkhidmatan. Adakah anda mahu meneruskan?',
        ipv6: 'Dengar IPv6',
        bindAddress: 'Alamat pendengaran',
        entrance: 'Pintu masuk',
        showEntrance: 'Tunjukkan amaran dilumpuhkan di halaman "Tinjauan"',
        entranceHelper:
            'Mengaktifkan pintu masuk keselamatan hanya akan membolehkan log masuk ke panel melalui pintu masuk keselamatan yang ditentukan.',
        entranceError:
            'Sila masukkan titik masuk log masuk yang selamat sepanjang 5-116 aksara, hanya nombor atau huruf yang disokong.',
        entranceInputHelper: 'Biarkan kosong untuk melumpuhkan pintu masuk keselamatan.',
        randomGenerate: 'Rawak',
        expirationTime: 'Tarikh Tamat Tempoh',
        unSetting: 'Tidak ditetapkan',
        noneSetting:
            'Tetapkan masa tamat tempoh untuk kata laluan panel. Selepas tamat tempoh, anda perlu menetapkan semula kata laluan',
        expirationHelper:
            'Jika masa tamat tempoh kata laluan ialah 0 hari, fungsi tamat tempoh kata laluan dilumpuhkan',
        days: 'Hari tamat tempoh kata laluan',
        expiredHelper: 'Kata laluan semasa telah tamat tempoh. Sila tukar kata laluan lagi.',
        timeoutHelper:
            'Kata laluan panel akan tamat tempoh dalam {0} hari. Selepas tamat tempoh, anda perlu menetapkan semula kata laluan',
        complexity: 'Pengesahan kerumitan',
        complexityHelper:
            'Selepas diaktifkan, kata laluan mestilah 8-30 aksara dan mengandungi sekurang-kurangnya dua daripada huruf, nombor, dan aksara khas.',
        bindDomain: 'Ikatan domain',
        unBindDomain: 'Buka ikatan domain',
        panelSSL: 'Panel SSL',
        unBindDomainHelper:
            'Tindakan membuka ikatan nama domain boleh menyebabkan ketidakamanan sistem. Adakah anda mahu meneruskan?',
        bindDomainHelper: 'Selepas anda mengikat domain, hanya domain itu yang boleh mengakses perkhidmatan 1Panel.',
        bindDomainHelper1: 'Biarkan kosong untuk melumpuhkan ikatan nama domain.',
        bindDomainWarning:
            'Selepas ikatan domain, anda akan log keluar dan hanya boleh mengakses perkhidmatan 1Panel melalui nama domain yang ditentukan dalam tetapan. Adakah anda mahu meneruskan?',
        allowIPs: 'IP Dibenarkan',
        unAllowIPs: 'IP Tidak Dibenarkan',
        unAllowIPsWarning:
            'Membenarkan IP kosong akan membolehkan semua IP mengakses sistem, yang boleh menyebabkan ketidakamanan sistem. Adakah anda mahu meneruskan?',
        allowIPsHelper:
            'Selepas anda menetapkan senarai alamat IP yang dibenarkan, hanya alamat IP dalam senarai yang boleh mengakses perkhidmatan panel.',
        allowIPsWarning:
            'Selepas anda menetapkan senarai alamat IP yang dibenarkan, hanya alamat IP dalam senarai yang boleh mengakses perkhidmatan panel. Adakah anda mahu meneruskan?',
        allowIPsHelper1: 'Biarkan kosong untuk melumpuhkan sekatan alamat IP.',
        allowIPEgs: 'Satu per baris. Contoh,\n172.16.10.111\n172.16.10.0/24',
        mfa: 'Pengesahan Dua Faktor',
        mfaClose: 'Melumpuhkan MFA akan mengurangkan keselamatan perkhidmatan. Adakah anda mahu meneruskan?',
        secret: 'Rahsia',
        mfaInterval: 'Selang penyegaran (saat)',
        mfaTitleHelper:
            'Judul digunakan untuk membezakan hos 1Panel yang berbeza. Imbas lagi atau tambahkan kunci rahsia secara manual selepas anda mengubah judul.',
        mfaIntervalHelper:
            'Selepas mengubah selang penyegaran, imbas semula atau tambahkan kunci rahsia secara manual.\nSesetengah aplikasi pengesah hanya menyokong selang 30 saat (contohnya, Google/Microsoft Authenticator).',
        mfaAlert:
            'Token satu kali ialah nombor 6 digit yang dijana secara dinamik berdasarkan masa semasa. Pastikan masa pelayan disegerakkan.',
        mfaHelper: 'Selepas anda mengaktifkannya, token satu kali perlu disahkan.',
        mfaHelper1: 'Muat turun aplikasi pengesahan, contohnya,',
        mfaHelper2:
            'Untuk mendapatkan token satu kali, imbas kod QR berikut menggunakan aplikasi pengesahan anda atau salin kunci rahsia ke dalam aplikasi pengesahan anda.',
        mfaHelper3: 'Masukkan enam digit dari aplikasi',
        mfaCode: 'Token satu kali',
        sslChangeHelper: 'Ubah tetapan https dan mulakan semula perkhidmatan. Adakah anda mahu meneruskan?',
        sslDisable: 'Lumpuhkan',
        sslDisableHelper:
            'Jika perkhidmatan https dilumpuhkan, anda perlu memulakan semula panel untuk ia berkuat kuasa. Adakah anda mahu meneruskan?',
        noAuthSetting: 'Tetapan tidak dibenarkan',
        noAuthSettingHelper:
            'Apabila pengguna tidak log masuk dengan pintu masuk keselamatan yang ditentukan, atau tidak mengakses panel dari IP atau nama domain yang ditentukan, respons ini boleh menyembunyikan ciri panel.',
        responseSetting: 'Tetapan respons',
        help200: 'Halaman Bantuan',
        error400: 'Permintaan Buruk',
        error401: 'Tidak Dibenarkan',
        error403: 'Dilarang',
        error404: 'Tidak Dijumpai',
        error408: 'Permintaan Tamat Masa',
        error416: 'Julat Tidak Memuaskan',
        error444: 'Sambungan ditutup',
        error500: 'Ralat Pelayan',
        https: 'Mengatur HTTPS untuk panel meningkatkan keselamatan akses',
        strictHelper: 'Trafik bukan HTTPS tidak boleh menyambung ke panel',
        muxHelper:
            'Panel akan mendengar pada kedua-dua protokol HTTP dan HTTPS dan mengarahkan HTTP ke HTTPS, tetapi ini mungkin mengurangkan keselamatan panel',
        certType: 'Jenis sijil',
        selfSigned: 'Diterbitkan sendiri',
        selfSignedHelper:
            'Pelayar mungkin tidak mempercayai sijil diterbitkan sendiri dan mungkin memaparkan amaran keselamatan.',
        select: 'Pilih',
        domainOrIP: 'Domain atau IP:',
        timeOut: 'Tamat Masa',
        rootCrtDownload: 'Muat turun sijil akar',
        primaryKey: 'Kunci utama',
        certificate: 'Sijil',
        backupJump:
            'Fail sandaran tidak berada dalam senarai sandaran semasa, sila cuba muat turun dari direktori fail dan import untuk sandaran.',
        snapshot: 'Snapshot | Snapshots',
        noAppData: 'Tiada aplikasi sistem yang boleh dipilih',
        noBackupData: 'Tiada data sandaran yang boleh dipilih',
        stepBaseData: 'Data Asas',
        stepAppData: 'Aplikasi Sistem',
        stepPanelData: 'Data Sistem',
        stepBackupData: 'Data Sandaran',
        stepOtherData: 'Data Lain',
        operationLog: 'Simpan log operasi',
        loginLog: 'Simpan log akses',
        systemLog: 'Simpan log sistem',
        taskLog: 'Simpan log tugas',
        monitorData: 'Simpan data pemantauan',
        dockerConf: 'Simpan Konfigurasi Docker',
        selectAllImage: 'Simpan semua imej aplikasi',
        logLabel: 'Log',
        agentLabel: 'Konfigurasi Nod',
        appDataLabel: 'Data Aplikasi',
        appImage: 'Imej Aplikasi',
        appBackup: 'Sandaran Aplikasi',
        backupLabel: 'Direktori Sandaran',
        confLabel: 'Fail Konfigurasi',
        dockerLabel: 'Konteks',
        taskLabel: 'Tugas Berjadual',
        resourceLabel: 'Direktori Sumber Aplikasi',
        runtimeLabel: 'Persekitaran Runtime',
        appLabel: 'Aplikasi',
        databaseLabel: 'Pangkalan Data',
        snapshotLabel: 'Fail Snapshot',
        websiteLabel: 'Laman Web',
        directoryLabel: 'Direktori',
        appStoreLabel: 'Kedai Aplikasi',
        shellLabel: 'Skrip',
        tmpLabel: 'Direktori Sementara',
        sslLabel: 'Direktori Sijil',
        reCreate: 'Gagal membuat snapshot',
        reRollback: 'Gagal membalikkan snapshot',
        deleteHelper:
            'Semua fail snapshot termasuk yang ada dalam akaun sandaran pihak ketiga akan dipadamkan. Adakah anda mahu meneruskan?',
        status: 'Status snapshot',
        ignoreRule: 'Aturan abaikan',
        editIgnoreRule: 'Sunting aturan abaikan',
        ignoreHelper:
            'Aturan ini akan digunakan untuk memampatkan dan menyandarkan direktori data 1Panel semasa membuat snapshot. Secara lalai, fail soket diabaikan.',
        ignoreHelper1: 'Satu per baris. Contoh,\n*.log\n/opt/1panel/cache',
        panelInfo: 'Tulis maklumat asas 1Panel',
        panelBin: 'Sandarkan fail sistem 1Panel',
        daemonJson: 'Sandarkan fail konfigurasi Docker',
        appData: 'Sandarkan aplikasi yang dipasang dari 1Panel',
        panelData: 'Sandarkan direktori data 1Panel',
        backupData: 'Sandarkan direktori sandaran tempatan untuk 1Panel',
        compress: 'Cipta fail snapshot',
        upload: 'Muat naik fail snapshot',
        recoverDetail: 'Butiran pemulihan',
        lastRecoverAt: 'Waktu pemulihan terakhir',
        lastRollbackAt: 'Waktu pemulangan terakhir',
        reDownload: 'Muat turun semula fail sandaran',
        recoverErrArch: 'Pemulihan snapshot antara seni bina pelayan yang berbeza tidak disokong!',
        recoverErrSize: 'Kekurangan ruang cakera dikesan, sila periksa atau bersihkan dan cuba lagi!',
        recoverHelper: 'Memulakan pemulihan dari snapshot {0}, sila sahkan maklumat berikut sebelum meneruskan:',
        recoverHelper1: 'Pemulihan memerlukan mulakan semula perkhidmatan Docker dan 1Panel',
        recoverHelper2:
            'Pastikan terdapat ruang cakera yang mencukupi pada pelayan (Saiz fail snapshot: {0}, Ruang tersedia: {1})',
        recoverHelper3:
            'Pastikan seni bina pelayan sepadan dengan seni bina pelayan di mana snapshot dicipta (Seni bina pelayan semasa: {0})',
        recoverHelper4:
            'Operasi ini hanya menggulung balik nod utama. Jika terdapat nod anak yang telah dinaik taraf, sila gulungkan balik nod anak terlebih dahulu sebelum meneruskan.',
        rollback: 'Pulangkan semula',
        rollbackHelper:
            'Pulangkan semula pemulihan ini akan menggantikan semua fail dari pemulihan ini, dan mungkin memerlukan mulakan semula perkhidmatan Docker dan 1Panel. Adakah anda mahu meneruskan?',
        upgradeHelper: 'Kemas kini memerlukan mulakan semula perkhidmatan 1Panel. Adakah anda mahu meneruskan?',
        rollbackLocalHelper:
            'Nod utama tidak menyokong rollback secara langsung. Sila laksanakan arahan [1pctl restore] secara manual untuk rollback!',
        noUpgrade: 'Ia adalah versi terbaru pada masa ini',
        upgradeNotes: 'Nota pelepasan',
        upgradeNow: 'Kemas kini sekarang',
        source: 'Sumber muat turun',
        versionNotSame:
            'Versi nod tidak sepadan dengan nod utama. Sila naik taraf di Pengurusan Nod sebelum mencuba semula.',
        versionCompare:
            'Nod {0} telah berada pada versi terkini yang boleh dinaik taraf. Sila periksa versi nod utama dan cuba lagi!',
        about: 'Mengenai',
        versionItem: 'Versi Semasa',
        backupCopies: 'Salinan Sandaran',
        backupCopiesHelper:
            'Tetapkan bilangan salinan sandaran naik taraf untuk disimpan untuk pemulihan versi. 0 bermakna simpan semua.',
        backupCopiesRule: 'Sila simpan sekurang-kurangnya 3 rekod sandaran naik taraf',
        release: 'Log Kemaskini Versi',
        releaseHelper:
            'Log kemas kini untuk persekitaran semasa gagal diperoleh. Anda boleh menyemak dokumentasi rasmi secara manual.',
        project: 'GitHub',
        issue: 'Isu',
        doc: 'Dokumentasi rasmi',
        star: 'Bintang',
        description: 'Panel Pelayan Linux',
        forum: 'Perbincangan',
        doc2: 'Dokumentasi',
        currentVersion: 'Versi',
        license: 'Lesen',
        bindNode: 'Ikatan Nod',
        menuSetting: 'Tetapan Menu',
        menuHide: 'Sembunyikan menu',
        menuSettingHelper: 'Apabila hanya terdapat 1 submenu, bar menu hanya akan memaparkan submenu tersebut',
        showAll: 'Papar Semua',
        hideALL: 'Sembunyikan Semua',
        ifShow: 'Sama ada untuk Dipaparkan',
        menu: 'Menu',
        confirmMessage: 'Halaman akan disegarkan untuk mengemas kini senarai menu lanjutan. Teruskan?',
        recoverMessage: 'Halaman akan disegarkan dan senarai menu akan dipulihkan ke keadaan asal. Teruskan?',
        compressPassword: 'Kata laluan mampatan',
        backupRecoverMessage:
            'Sila masukkan kata laluan mampatan atau nyahmampatan (biarkan kosong jika tidak menetapkan)',
        componentSize: 'Saiz komponen',
        scope: 'Skop',
        public: 'Awam',
        publicHelper: 'Akaun sandaran jenis awam akan disegerakkan ke setiap subnod dan boleh digunakan bersama',
        private: 'Peribadi',
        privateHelper: 'Akaun sandaran jenis peribadi hanya dicipta pada nod semasa dan hanya untuk nod semasa',
        UPYUN: 'UPYUN',
        ALIYUN: 'Aliyun Drive',
        ALIYUNHelper: 'Had semasa muat turun tanpa klien Aliyun Drive ialah 100 MB. Melebihi had perlu guna klien.',
        ALIYUNRecover:
            'Had semasa muat turun tanpa klien Aliyun Drive ialah 100 MB. Jika melebihi, muat turun ke tempatan melalui klien dahulu, kemudian segerakkan syot kilat untuk pemulihan.',
        GoogleDrive: 'Google Drive',
        analysis: 'Analisis',
        analysisHelper:
            'Tampal keseluruhan kandungan token untuk parse automatik bahagian diperlukan. Rujuk dokumentasi rasmi untuk butiran.',
        serviceName: 'Nama servis',
        operator: 'Operator',
        clickToRefresh: 'Klik untuk segar semula',
        recoverFailed: 'Pemulihan syot kilat gagal',
        importHelper: 'Direktori syot kilat: ',
        upgradeRecord: 'Rekod naik taraf',
        upgrading: 'Sedang naik taraf, sila tunggu...',
        versionHelper: 'Peraturan nama: [versi utama].[versi fungsi].[versi pembaikan], seperti contoh berikut:',
        upgradeCheck: 'Semak kemas kini',
    },
    license: {
        offLine: 'Versi Luar Talian',
        community: 'OSS',
        oss: 'Perisian Sumber Terbuka',
        ee: 'Edisi Perusahaan',
        pro: 'Pro',
        trial: 'Percubaan',
        add: 'Tambah Edisi Komuniti',
        licenseBindHelper: 'Kuota nod percuma hanya boleh digunakan apabila lesen terikat pada nod',
        licenseAlert:
            'Nod Edisi Komuniti hanya boleh ditambah apabila lesen terikat dengan betul pada nod. Hanya nod yang terikat dengan betul pada lesen menyokong penukaran.',
        licenseUnbindHelper: 'Nod Edisi Komuniti dikesan untuk lesen ini. Sila lepaskan ikatan dan cuba lagi!',
        subscription: 'Langganan',
        perpetual: 'Lesen Perpetual',
        product: 'Produk',
        versionConstraint: '{0} Pembelian versi',
        forceUnbind: 'Paksakan Nyahikat',
        forceUnbindHelper:
            'Memaksa nyahikat akan mengabaikan sebarang ralat yang berlaku semasa proses nyahikat dan akhirnya melepaskan ikatan lesen.',
        updateForce: 'Kemas kini paksa (abaikan semua ralat semasa nyahikatan untuk memastikan operasi akhir berjaya)',
        trialInfo: 'Versi',
        authorizationId: 'ID Langganan',
        authorizedUser: 'Pengguna yang Dibenarkan',
        lostHelper:
            'Lesen telah mencapai had percubaan semula. Jalankan penyegerakan secara manual untuk memastikan ciri Edisi Komersial terus berfungsi dengan baik. butiran: ',
        quickUpdate: 'Kemas Kini Pantas',
        import: 'Import',
        power: 'Kebenaran',
        unbindHelper:
            'Semua Tetapan berkaitan Edisi Komersial akan dibersihkan selepas nyahikat. Adakah anda mahu meneruskan?',
        importLicense: 'Lesen',
        securityWarningTitle: 'Jangan gunakan lesen retak atau lesen daripada sumber yang tidak diketahui.',
        securityWarningContent:
            '1Panel perlu dijalankan oleh pengguna dengan keistimewaan pentadbiran sistem. Lesen tidak rasmi atau versi yang diubah suai boleh menyebabkan pelayan hilang kawalan, kebocoran data dan risiko keselamatan serius lain. Dapatkan lesen dan pakej pemasangan hanya melalui saluran rasmi FIT2CLOUD.',
        importHelper: 'Sila klik atau seret fail lesen ke sini',
        licenseRequiredTip:
            'Lesen belum diimport. Salin ID peranti, dapatkan lesen dan importkannya sebelum anda boleh log masuk.',
        licenseRequiredShortTip:
            'Sila salin ID peranti terlebih dahulu untuk mendapatkan lesen. Anda boleh log masuk selepas mengimport lesen.',
        licenseRequiredUserTip:
            'Lesen Enterprise Edition belum diikat. Hubungi pentadbir super untuk mengimport lesen.',
        restoreCommunity: 'Pulihkan Community Edition',
        restoreCommunityOnline: 'Pemulihan dalam talian',
        restoreCommunityOffline: 'Pemulihan luar talian',
        restoreCommunityPackageFound:
            'Pakej luar talian Community Edition yang boleh digunakan telah dikesan. Pemulihan luar talian tersedia.',
        restoreCommunityPackageMissing:
            'Tiada pakej luar talian Community Edition yang boleh digunakan dikesan. Pemulihan luar talian tidak tersedia pada masa ini.',
        restoreCommunityOnlineHelper:
            'Pakej Community Edition untuk versi semasa akan dimuat turun secara automatik dan data khusus Enterprise akan dibersihkan.',
        restoreCommunityOfflineHelper:
            'Letakkan pakej rasmi yang tidak lebih lama daripada versi Enterprise semasa dalam {path}. Pertukaran akan didayakan selepas pakej yang boleh digunakan dikesan.',
        restoreCommunityConfirm:
            'Selepas menukar versi, anda boleh log masuk ke Community Edition menggunakan akaun pentadbir super Enterprise semasa. Data khusus Enterprise akan dipadamkan semasa pertukaran. Sila teruskan dengan berhati-hati.',
        restoreCommunityStarting:
            'Community Edition sedang disediakan. Panel akan dimulakan semula secara automatik apabila selesai.',
        technicalAdvice: 'Konsultasi Teknikal',
        advice: 'Konsultasi',
        levelUpPro: 'Naik taraf ke Edisi Komersial',
        licenseSync: 'Penyegerakan Lesen',
        knowMorePro: 'Ketahui Lebih Lanjut',
        closeAlert: 'Halaman semasa boleh ditutup dalam tetapan panel',
        introduce: 'Pengenalan Ciri',
        deviceID: 'ID peranti',
        corporation: 'Syarikat lesen',
        expired: 'Masa tamat',
        edition: 'Edisi',
        standard: 'Standard',
        enterprise: 'Perusahaan',
        count: 'Kuantiti lesen',
        serialNo: 'Nombor siri',
        remark: 'Catatan',
        waf: 'Naik taraf ke Edisi Komersial untuk menggunakan peta sekatan, log, rekod sekatan, sekatan geografi, peraturan tersuai, halaman sekatan tersuai dan banyak lagi.',
        tamper: 'Naik taraf ke Edisi Komersial untuk melindungi laman web daripada perubahan atau gangguan tanpa kebenaran.',
        setting: 'Naik taraf ke Edisi Komersial untuk menyesuaikan logo panel, mesej alu-aluan dan maklumat lain.',
        monitor:
            'Naik taraf ke Edisi Komersial untuk melihat status laman web masa nyata, trend pelawat, sumber trafik, log permintaan dan lain-lain.',
        alert: 'Naik taraf ke Edisi Komersial untuk menerima amaran SMS dan melihat log amaran.',
        node: 'Naik taraf ke Edisi Komersial untuk mengurus berbilang pelayan Linux dengan 1Panel.',
        nodeApp:
            'Naik taraf ke Edisi Komersial untuk menaik taraf versi aplikasi berbilang nod tanpa menukar nod secara manual.',
        nodeDashboard:
            'Naik taraf ke Edisi Komersial untuk mengurus aplikasi, laman web, pangkalan data dan tugas berjadual berbilang nod secara berpusat.',
        fileExchange: 'Naik taraf ke Edisi Komersial untuk memindahkan fail dengan pantas antara pelayan.',
        app: 'Naik taraf ke Edisi Komersial untuk melihat maklumat perkhidmatan dan pemantauan anomali dalam aplikasi mudah alih.',
        cluster: 'Naik taraf ke Edisi Komersial untuk mengurus kelompok utama-replika MySQL/Postgres/Redis.',
        vllm: 'Naik taraf ke Edisi Komersial untuk mengurus perkhidmatan vLLM secara berpusat dalam 1Panel, termasuk penggunaan, konfigurasi, operasi kitar hayat dan penjejakan tugas.',
        'model-downloader':
            'Naik taraf kepada edisi komersial untuk mencari, memuat turun dan mengurus fail model tempatan daripada HuggingFace, ModelScope atau cermin serasi, dengan direktori model dan tugasan muat turun berpusat.',
        exceptionalHelper:
            'Pengesahan penyegerakan lesen tidak normal. Klik butang sync secara manual untuk pastikan fungsi Edisi Komersial berjalan baik. butiran: ',
        tamperHelper: 'Operasi gagal, fail atau folder mempunyai perlindungan gangguan. Sila semak dan cuba lagi!',
    },
    clean: {
        scan: 'Mulakan imbasan',
        scanHelper: 'Bersihkan fail sampah dengan mudah yang dihasilkan semasa operasi 1Panel',
        clean: 'Bersihkan sekarang',
        reScan: 'Imbas semula',
        cleanHelper: 'Fail dan direktori terpilih tidak boleh dipulihkan selepas pembersihan. Teruskan?',
        statusSuggest: '(Disyorkan untuk Pembersihan)',
        statusClean: '(Sangat bersih)',
        statusEmpty: 'Sangat bersih, tiada pembersihan diperlukan!',
        statusWarning: '(Berhati-hati)',
        lastCleanTime: 'Dibersihkan Terakhir: {0}',
        lastCleanHelper: 'Fail dan direktori yang dibersihkan: {0}, jumlah yang dibersihkan: {1}',
        cleanSuccessful: 'Berjaya dibersihkan',
        currentCleanHelper: 'Fail dan direktori dibersihkan dalam sesi ini: {0}, Jumlah yang dibersihkan: {1}',
        suggest: '(Disyorkan)',
        totalScan: 'Jumlah fail sampah untuk dibersihkan: ',
        selectScan: 'Jumlah fail sampah yang dipilih: ',
        system: 'Fail Sampah Sistem',
        systemHelper: 'Fail sementara dijana semasa snapshot, naik taraf, dan proses lain',
        panelOriginal: 'Fail sandaran sebelum pemulihan snapshot sistem',
        upgrade: 'Fail sandaran naik taraf sistem',
        agentPackages: 'Pakej naik taraf/pemasangan nod anak versi sejarah',
        upgradeHelper: '(Disarankan untuk mengekalkan sandaran peningkatan terbaru untuk pemulihan sistem)',
        rollback: 'Fail sandaran sebelum pemulihan',
        backup: 'Sandaran Sistem',
        backupHelper: 'Fail sandaran tidak dikaitkan dengan akaun sandaran tempatan',
        unknownBackup: 'Sandaran Sistem',
        tmpBackup: 'Sandaran Sementara',
        unknownApp: 'Sandaran Apl Tidak Dikaitkan',
        unknownDatabase: 'Sandaran Pangkalan Data Tidak Dikaitkan',
        unknownWebsite: 'Sandaran Laman Web Tidak Dikaitkan',
        unknownSnapshot: 'Sandaran Snapshot Tidak Dikaitkan',
        upload: 'Fail Muat Naik Sementara',
        uploadHelper: 'Fail sementara dimuat naik dari senarai sandaran sistem',
        download: 'Fail Muat Turun Sementara',
        downloadHelper: 'Fail sementara dimuat turun dari akaun sandaran pihak ketiga oleh sistem',
        directory: 'Direktori',
        systemLog: 'Fail log',
        systemLogHelper: 'Log sistem, log tugas, fail log laman web',
        dockerLog: 'Fail log operasi bekas',
        taskLog: 'Fail log pelaksanaan tugas berjadual',
        shell: 'Tugas berjadual skrip Shell',
        containerShell: 'Tugas berjadual skrip Shell dilaksanakan di dalam bekas',
        curl: 'Tugas berjadual CURL',
        docker: 'Sampah bekas',
        dockerHelper: 'Fail seperti bekas, imej, isipadu, cache binaan, dsb.',
        volumes: 'Isipadu',
        buildCache: 'Cache Pembinaan Kontena',
        appTmpDownload: 'Fail muat turun sementara aplikasi',
        unknownWebsiteLog: 'Fail sandaran log laman web tidak dikaitkan',
        snapshot: 'Fail sementara syot kilat sistem',
    },
    app: {
        app: 'Aplikasi | Aplikasi',
        installName: 'Nama',
        installed: 'Telah Dipasang',
        all: 'Semua',
        version: 'Versi',
        detail: 'Butiran',
        params: 'Edit',
        author: 'Pengarang',
        source: 'Sumber',
        appName: 'Nama Aplikasi',
        deleteWarn:
            'Operasi memadam akan memadam semua data dan sandaran bersama. Operasi ini tidak boleh dipulihkan. Adakah anda mahu meneruskan?',
        syncSuccess: 'Disegerakkan dengan berjaya',
        canUpgrade: 'Kemaskini',
        backupName: 'Nama Fail',
        backupPath: 'Laluan Fail',
        backupdate: 'Masa Sandaran',
        versionSelect: 'Sila pilih versi',
        operatorHelper: 'Operasi {0} akan dilaksanakan pada aplikasi yang dipilih. Adakah anda mahu meneruskan?',
        startOperatorHelper: 'Aplikasi akan dimulakan. Adakah anda mahu meneruskan?',
        stopOperatorHelper: 'Aplikasi akan dihentikan. Adakah anda mahu meneruskan?',
        restartOperatorHelper: 'Aplikasi akan dimulakan semula. Adakah anda mahu meneruskan?',
        reloadOperatorHelper: 'Aplikasi akan dimuat semula. Adakah anda mahu meneruskan?',
        checkInstalledWarn: '"{0}" tidak dikesan. Pergi ke "Kedai Aplikasi" untuk memasang.',
        limitHelper: 'Aplikasi ini telah dipasang.',
        deleteHelper: '"{0}" telah dikaitkan dengan sumber berikut. Sila semak dan cuba lagi!',
        checkTitle: 'Petunjuk',
        defaultConfig: 'Konfigurasi lalai',
        defaultConfigHelper: 'Telah dipulihkan ke konfigurasi lalai, akan berkuat kuasa selepas menyimpan',
        forceDelete: 'Padam Paksa',
        forceDeleteHelper: 'Padam paksa akan mengabaikan ralat semasa proses pemadaman dan akhirnya memadam metadata.',
        deleteBackup: 'Padam sandaran',
        deleteBackupHelper: 'Juga padam sandaran aplikasi',
        deleteDB: 'Padam pangkalan data',
        deleteDBHelper: 'Juga padam pangkalan data',
        noService: 'Tiada {0}',
        toInstall: 'Pergi ke pasang',
        param: 'Parameter',
        alreadyRun: 'Dipasang',
        syncAppList: 'Segerak',
        less1Minute: 'Kurang daripada 1 minit',
        appOfficeWebsite: 'Laman web rasmi',
        github: 'GitHub',
        document: 'Dokumentasi',
        updatePrompt: 'Tiada kemaskini tersedia',
        installPrompt: 'Belum ada aplikasi yang dipasang',
        updateHelper: 'Mengedit parameter boleh menyebabkan aplikasi gagal dimulakan. Sila berhati-hati.',
        updateWarn: 'Kemaskini parameter memerlukan aplikasi dibina semula. Adakah anda mahu meneruskan?',
        busPort: 'Port',
        syncStart: 'Mulakan penyegerakan! Sila segar semula kedai aplikasi kemudian',
        advanced: 'Tetapan lanjutan',
        cpuCore: 'teras',
        containerName: 'Nama kontena',
        containerNameHelper: 'Nama kontena akan dijana secara automatik jika tidak ditetapkan',
        allowPort: 'Akses luaran',
        allowPortHelper: 'Membenarkan akses port luaran akan membuka port firewall',
        appInstallWarn:
            'Aplikasi tidak membuka port akses luaran secara lalai. Klik "Tetapan lanjutan" untuk membukanya.',
        upgradeStart: 'Mulakan peningkatan! Sila segar semula halaman kemudian',
        toFolder: 'Buka direktori pemasangan',
        editCompose: 'Edit fail compose',
        editComposeHelper: 'Mengedit fail compose boleh menyebabkan pemasangan perisian gagal',
        composeNullErr: 'Compose tidak boleh kosong',
        takeDown: 'Dihentikan',
        allReadyInstalled: 'Telah Dipasang',
        installHelper: 'Jika terdapat isu tarikan imej, konfigurasikan pecutan imej.',
        sortMode: 'Susun',
        installWarn:
            'Akses luaran tidak diaktifkan, yang menghalang aplikasi daripada diakses melalui rangkaian luaran. Adakah anda mahu meneruskan?',
        showIgnore: 'Lihat aplikasi yang diabaikan',
        cancelIgnore: 'Batal abaikan',
        ignoreList: 'Aplikasi yang diabaikan',
        appHelper: 'Pergi ke halaman butiran aplikasi untuk mengetahui arahan pemasangan bagi aplikasi tertentu.',
        backupApp: 'Sandarkan aplikasi sebelum kemaskini',
        backupAppHelper: 'Jika kemaskini gagal, sandaran akan dipulihkan secara automatik.',
        openrestyDeleteHelper: 'Padam paksa OpenResty akan memadam semua laman web. Adakah anda mahu meneruskan?',
        downloadLogHelper1: 'Semua log aplikasi {0} akan dimuat turun. Adakah anda mahu meneruskan?',
        downloadLogHelper2: 'Log terkini {1} aplikasi {0} akan dimuat turun. Adakah anda mahu meneruskan?',
        syncAllAppHelper: 'Semua aplikasi akan disegerakkan. Adakah anda mahu meneruskan?',
        hostModeHelper: 'Mod rangkaian aplikasi semasa ialah mod hos.',
        showLocal: 'Papar aplikasi tempatan',
        reload: 'Muat Semula',
        upgradeWarn: 'Meningkatkan aplikasi akan menggantikan fail docker-compose.yml.',
        openclawHttpsUpgradeNoticeTitle:
            'Nota: Arahan berikut hanya terpakai kepada pengguna yang menaik taraf OpenClaw daripada versi 2026.3.13 hingga 2026.3.22 kepada versi 2026.3.23 atau lebih baharu:',
        openclawHttpsUpgradeNoticeItem1:
            'Selepas naik taraf, akses ejen akan kembali menggunakan HTTP. Pergi ke Konfigurasi -> Tetapan -> Keselamatan dan semak alamat akses.',
        openclawHttpsUpgradeNoticeItem2:
            'Jika anda sebelum ini menggunakan laman web proksi songsang, tukar sasaran proksi kepada http://IP:Port.',
        newVersion: 'Versi baru',
        oldVersion: 'Versi semasa',
        composeDiff: 'Perbandingan fail',
        showDiff: 'Lihat perbandingan',
        useNew: 'Guna versi tersuai',
        useDefault: 'Guna versi lalai',
        useCustom: 'Sesuaikan docker-compose.yml',
        useCustomHelper: 'Menggunakan fail docker-compose.yml tersuai boleh menyebabkan kemaskini gagal.',
        diffHelper: 'Bahagian kiri ialah versi lama, kanan ialah versi baru.',
        pullImage: 'Tarik Imej',
        pullImageHelper: 'Laksanakan docker pull untuk menarik imej sebelum aplikasi dimulakan.',
        deleteImage: 'Padam Imej',
        deleteImageHelper: 'Padam imej yang berkaitan dengan aplikasi. Tugas tidak akan tamat jika pemadaman gagal.',
        requireMemory: 'Keperluan Memori',
        supportedArchitectures: 'Seni Bina yang Disokong',
        link: 'Pautan',
        showCurrentArch: 'Aplikasi seni bina pelayan semasa',
        syncLocalApp: 'Segerakkan Aplikasi Tempatan',
        memoryRequiredHelper: 'Aplikasi semasa memerlukan {0} memori',
        gpuConfig: 'Aktifkan Sokongan GPU',
        gpuConfigHelper:
            'Pastikan mesin mempunyai NVIDIA GPU dan memasang pemacu NVIDIA serta NVIDIA Docker Container Toolkit',
        webUI: 'Alamat Akses Web',
        webUIPlaceholder: 'Contoh: example.com:8080/login',
        defaultWebDomain: 'Alamat Akses Lalai',
        defaultWebDomainHepler:
            'Jika port aplikasi adalah 8080, alamat loncatan akan menjadi http(s)://alamat akses lalai:8080',
        webUIConfig:
            'Nod semasa belum mempunyai alamat akses lalai yang dikonfigurasi. Sila tetapkan dalam parameter aplikasi atau pergi ke tetapan panel untuk mengkonfigurasinya!',
        toLink: 'Loncat',
        customAppHelper:
            'Sebelum memasang pakej kedai aplikasi tersuai, sila pastikan tidak ada aplikasi yang dipasang.',
        forceUninstall: 'Paksa Nyahpasang',
        syncCustomApp: 'Segerakan Aplikasi Tersuai',
        ignoreAll: 'Abaikan semua versi berikutnya',
        ignoreVersion: 'Abaikan versi yang ditentukan',
        specifyIP: 'Bind IP Hos',
        specifyIPHelper:
            'Tetapkan alamat hos/antara muka rangkaian untuk mengikat port (jika anda tidak pasti mengenai ini, jangan isi)',
        uninstallDeleteBackup: 'Cop Terhapus Semasa Nyahpasang Aplikasi',
        uninstallDeleteImage: 'Imej Terhapus Semasa Nyahpasang Aplikasi',
        upgradeBackup: 'Sandaran Aplikasi Sebelum Naik Taraf',
        upgradeDeleteImage: 'Naik Taraf Aplikasi - Padam Imej Lama',
        installAllowPort: 'Buka akses port luaran secara lalai semasa memasang aplikasi',
        noAppHelper: 'Tiada aplikasi dikesan, sila pergi ke pusat tugas untuk melihat log penyegerakan kedai aplikasi',
        isEdirWarn: 'Perubahan pada fail docker-compose.yml telah dikesan. Sila semak perbezaannya.',
    },
    website: {
        primaryDomain: 'Domain Utama',
        otherDomains: 'Domain Lain',
        static: 'Statik',
        deployment: 'Penerapan',
        supportUpType: 'Hanya format fail .tar.gz yang disokong, dan pakej termampat mesti mengandungi fail {0}.json',
        proxy: 'Proksi Terbalik',
        alias: 'Alias',
        ftpUser: 'Akaun FTP',
        ftpPassword: 'Kata Laluan FTP',
        ftpHelper:
            'Selepas membuat laman web, akaun FTP akan dibuat dan direktori FTP akan memautkan ke direktori laman web.',
        remark: 'Catatan',
        groupSetting: 'Pengurusan Kumpulan',
        createGroup: 'Cipta kumpulan',
        appNew: 'Aplikasi Baru',
        appInstalled: 'Aplikasi yang Dipasang',
        delete: 'Padam Laman Web',
        deleteApp: 'Padam Aplikasi',
        deleteBackup: 'Padam Sandaran',
        domain: 'Domain',
        domainHelper: 'Satu domain per baris.\nSokong wildcard "*" dan alamat IP.\nSokong penambahan port.',
        addDomain: 'Tambah',
        domainConfig: 'Domain',
        defaultDoc: 'Dokumen lalai',
        perserver: 'Serentak',
        perserverHelper: 'Hadkan serentak maksimum untuk laman web semasa',
        perip: 'IP Tunggal',
        peripHelper: 'Hadkan jumlah maksimum akses serentak untuk satu IP',
        rate: 'Had trafik',
        rateLimit: 'Had kadar per permintaan',
        rateHelper: 'Had aliran setiap permintaan (unit: KB)',
        rateLimitHelper: 'Hadkan kadar pemindahan bagi setiap permintaan (unit: KB/s)',
        limitHelper: 'Aktifkan kawalan aliran',
        other: 'Lain-lain',
        currentSSL: 'Sijil Semasa',
        dnsAccount: 'Akaun DNS',
        applySSL: 'Permohonan Sijil',
        SSLList: 'Senarai Sijil',
        createDnsAccount: 'Akaun DNS',
        aliyun: 'Aliyun',
        aliEsa: 'Aliyun ESA',
        awsRoute53: 'Amazon Route 53',
        manual: 'Penyelesaian Manual',
        key: 'Kunci',
        check: 'Lihat',
        acmeAccountManage: 'Pengurusan Akaun ACME',
        email: 'E-mel',
        acmeAccount: 'Akaun ACME',
        provider: 'Kaedah Pengesahan',
        dnsManual: 'Penyelesaian Manual',
        expireDate: 'Tarikh Luput',
        brand: 'Organisasi',
        deploySSL: 'Penerapan',
        deploySSLHelper: 'Adakah anda pasti mahu menerapkan sijil?',
        ssl: 'Sijil | Sijil-Sijil',
        dnsAccountManage: 'Penyedia DNS',
        renewSSL: 'Perbaharui',
        renewHelper: 'Adakah anda pasti mahu memperbaharui sijil?',
        renewSuccess: 'Sijil diperbaharui',
        enableHTTPS: 'Aktifkan',
        aliasHelper: 'Alias ialah nama direktori laman web',
        lastBackupAt: 'masa sandaran terakhir',
        null: 'tiada',
        nginxConfig: 'Konfigurasi Nginx',
        websiteConfig: 'Tetapan Laman Web',
        proxySettings: 'Tetapan Proksi',
        advancedSettings: 'Tetapan Lanjutan',
        cacheSettings: 'Tetapan Cache',
        sniSettings: 'Tetapan SNI',
        basic: 'Asas',
        source: 'Konfigurasi',
        security: 'Keselamatan',
        nginxPer: 'Penalaan Prestasi Nginx',
        neverExpire: 'Tidak Pernah Luput',
        setDefault: 'Tetapkan sebagai lalai',
        deleteHelper: 'Status aplikasi berkaitan tidak normal, sila semak',
        toApp: 'Pergi ke senarai dipasang',
        cycle: 'Kitaran',
        frequency: 'Kekerapan',
        ccHelper:
            'Permintaan akumulatif untuk URL yang sama lebih daripada {1} kali dalam {0} saat, mencetuskan pertahanan CC, menyekat IP ini',
        mustSave: 'Pengubahsuaian perlu disimpan untuk berkuat kuasa',
        fileExt: 'Sambungan fail',
        fileExtBlock: 'Senarai blok sambungan fail',
        value: 'Nilai',
        enable: 'Aktifkan',
        proxyAddress: 'Alamat Proksi',
        proxyHelper: 'Contoh: 127.0.0.1:8080',
        forceDelete: 'Padam Paksa',
        forceDeleteHelper: 'Padam paksa akan mengabaikan ralat semasa proses pemadaman dan akhirnya memadam metadata.',
        deleteAppHelper: 'Padam aplikasi yang berkaitan dan sandaran aplikasi pada masa yang sama',
        deleteBackupHelper: 'Juga padamkan sandaran laman web.',
        deleteDatabaseHelper: 'Juga hapuskan pangkalan data yang berkaitan dengan laman web',
        deleteConfirmHelper:
            'Operasi pemadaman tidak boleh dibatalkan. Masukkan <span style="color:red"> "{0}" </span> untuk mengesahkan pemadaman.',
        staticPath: 'Direktori utama yang sepadan ialah ',
        limit: 'Skim',
        blog: 'Forum/Blog',
        imageSite: 'Laman Gambar',
        downloadSite: 'Laman Muat Turun',
        shopSite: 'Pusat Membeli-belah',
        doorSite: 'Portal',
        qiteSite: 'Syarikat',
        videoSite: 'Video',
        errLog: 'Log Ralat',
        stopHelper:
            'Selepas menghentikan laman web, ia tidak akan dapat diakses dengan normal, dan pengguna akan melihat halaman berhenti laman web semasa apabila mengunjunginya. Adakah anda mahu meneruskan?',
        startHelper:
            'Selepas mengaktifkan laman web, pengguna boleh mengakses kandungan laman web seperti biasa. Adakah anda mahu meneruskan?',
        sitePath: 'Direktori',
        siteAlias: 'Alias Laman',
        primaryPath: 'Direktori utama',
        folderTitle: 'Laman web ini terutamanya mengandungi folder berikut',
        wafFolder: 'Peraturan firewall',
        indexFolder: 'Direktori akar laman web',
        sslFolder: 'Sijil laman web',
        enableOrNot: 'Aktifkan',
        oldSSL: 'Sijil sedia ada',
        manualSSL: 'Import sijil',
        select: 'Pilih',
        selectSSL: 'Pilih Sijil',
        privateKey: 'Kunci (KEY)',
        certificate: 'Sijil (format PEM)',
        HTTPConfig: 'Pilihan HTTP',
        HTTPSOnly: 'Blok permintaan HTTP',
        HTTPToHTTPS: 'Alihkan ke HTTPS',
        HTTPAlso: 'Benarkan permintaan HTTP langsung',
        sslConfig: 'Pilihan SSL',
        disableHTTPS: 'Lumpuhkan HTTPS',
        disableHTTPSHelper: 'Melumpuhkan HTTPS akan memadam konfigurasi berkaitan sijil. Adakah anda mahu meneruskan?',
        SSLHelper:
            'Nota: Jangan gunakan sijil SSL untuk laman web tidak sah.\nJika akses HTTPS tidak dapat digunakan selepas diaktifkan, semak sama ada kumpulan keselamatan telah melepaskan port 443 dengan betul.',
        SSLConfig: 'Tetapan sijil',
        SSLProConfig: 'Tetapan protokol',
        supportProtocol: 'Versi protokol',
        encryptionAlgorithm: 'Algoritma penyulitan',
        notSecurity: '(tidak selamat)',
        encryptHelper:
            "Let's Encrypt mempunyai had kekerapan untuk mengeluarkan sijil, tetapi mencukupi untuk memenuhi keperluan biasa. Operasi terlalu kerap akan menyebabkan kegagalan pengeluaran. Untuk sekatan tertentu, sila lihat <a target='_blank' href='https://letsencrypt.org/docs/rate-limits/'>dokumen rasmi</a>",
        ipValue: 'Nilai',
        ext: 'sambungan fail',
        wafInputHelper: 'Masukkan data secara berbaris, satu baris',
        data: 'data',
        ever: 'kekal',
        nextYear: 'Satu tahun kemudian',
        noLog: 'Tiada log ditemui',
        defaultServer: 'Tapak lalai',
        noDefaultServer: 'Tidak ditetapkan',
        defaultServerHelper:
            'Setelah menetapkan laman lalai, semua nama domain dan IP yang tidak terikat akan diarahkan ke laman lalai\nIni dapat mencegah penyelesaian yang jahat secara berkesan\nNamun, ini juga boleh menyebabkan kegagalan penghalang nama domain tanpa kebenaran WAF',
        restoreHelper: 'Adakah anda pasti mahu memulihkan menggunakan sandaran ini?',
        websiteDeploymentHelper: 'Gunakan aplikasi yang dipasang atau buat aplikasi baharu untuk mencipta laman web.',
        websiteStatictHelper: 'Cipta direktori laman web pada hos.',
        websiteProxyHelper:
            'Gunakan proksi terbalik untuk memproksi perkhidmatan sedia ada. Contohnya, jika perkhidmatan dipasang dan berjalan pada port 8080, alamat proksi akan menjadi "http://127.0.0.1:8080".',
        runtimeProxyHelper: 'Gunakan runtime laman web untuk mencipta laman web.',
        runtime: 'Runtime',
        deleteRuntimeHelper: 'Aplikasi Runtime perlu dipadamkan bersama laman web, sila berhati-hati',
        proxyType: 'Jenis Rangkaian',
        unix: 'Rangkaian Unix',
        tcp: 'Rangkaian TCP/IP',
        phpFPM: 'Konfigurasi FPM',
        phpConfig: 'Konfigurasi PHP',
        updateConfig: 'Kemas kini Konfigurasi',
        isOn: 'Hidup',
        isOff: 'Mati',
        rewrite: 'Pseudo-statik',
        rewriteMode: 'Skema',
        current: 'Semasa',
        rewriteHelper:
            'Jika menetapkan pseudo-statik menyebabkan laman web tidak dapat diakses, cuba kembali ke tetapan lalai.',
        runDir: 'Direktori Jalankan',
        runUserHelper:
            'Untuk laman web yang dikerahkan melalui persekitaran runtime kontena PHP, anda perlu menetapkan pemilik dan kumpulan pengguna bagi semua fail dan folder di bawah indeks dan subdirektori ke 1000. Untuk persekitaran PHP tempatan, rujuk tetapan pengguna PHP-FPM tempatan',
        userGroup: 'Pengguna/Kumpulan',
        uGroup: 'Kumpulan',
        proxyPath: 'Laluan Proksi',
        proxyPass: 'URL Sasaran',
        cache: 'Cache',
        cacheTime: 'Tempoh Cache',
        enableCache: 'Cache',
        proxyHost: 'Hos Proksi',
        disabled: 'Dihentikan',
        startProxy: 'Ini akan memulakan proksi terbalik. Adakah anda ingin meneruskan?',
        stopProxy: 'Ini akan menghentikan proksi terbalik. Adakah anda ingin meneruskan?',
        sourceFile: 'Sumber',
        proxyHelper1: 'Semasa mengakses direktori ini, kandungan URL sasaran akan dikembalikan dan dipaparkan.',
        proxyPassHelper: 'URL sasaran mesti sah dan boleh diakses.',
        proxyHostHelper: 'Hantar nama domain dalam header permintaan ke pelayan proksi.',
        modifier: 'Peraturan padanan',
        modifierHelper:
            'Contoh: "=" adalah padanan tepat, "~" adalah padanan biasa, "^~" memadankan permulaan laluan, dan sebagainya.',
        replace: 'Penggantian Teks',
        replaceHelper:
            'Ciri penggantian teks nginx membenarkan penggantian rentetan dalam kandungan respons semasa proksi terbalik. Ia biasanya digunakan untuk mengubah suai pautan, alamat API, dll., dalam HTML, CSS, JavaScript, dan fail lain yang dikembalikan oleh backend. Ia menyokong padanan ungkapan biasa untuk keperluan penggantian kandungan yang kompleks.',
        addReplace: 'Tambah',
        replaced: 'String Carian (tidak boleh kosong)',
        replaceText: 'Ganti dengan string',
        replacedErr: 'String Carian tidak boleh kosong',
        replacedErr2: 'String Carian tidak boleh berulang',
        replacedListEmpty: 'Tiada peraturan penggantian teks',
        proxySslName: 'Nama SNI Proksi',
        basicAuth: 'Pengesahan Asas',
        editBasicAuthHelper:
            'Kata laluan disulitkan secara tidak simetri dan tidak dapat dipaparkan. Penyuntingan perlu menetapkan semula kata laluan',
        antiLeech: 'Anti-leech',
        extends: 'Pelanjutan',
        browserCache: 'Cache',
        noModify: 'Tidak Ubah',
        serverCache: 'Cache Pelayan',
        leechLog: 'Rekod log anti-leech',
        accessDomain: 'Domain yang dibenarkan',
        leechReturn: 'Sumber tindak balas',
        noneRef: 'Benarkan referrer kosong',
        disable: 'tidak diaktifkan',
        disableLeechHelper: 'Adakah anda ingin mematikan anti-leech',
        disableLeech: 'Matikan anti-leech',
        ipv6: 'Dengar IPv6',
        leechReturnError: 'Sila isikan kod status HTTP',
        blockedRef: 'Benarkan referrer tidak standard',
        accessControl: 'Kawalan anti-leech',
        leechcacheControl: 'Kawalan cache',
        logEnableControl: 'Log permintaan aset statik',
        leechSpecialValidHelper:
            "Apabila 'Benarkan referrer kosong' didayakan, permintaan tanpa referrer (akses terus dan sebagainya) tidak akan disekat; mendayakan 'Benarkan referrer tidak standard' akan membenarkan mana-mana referrer yang tidak bermula dengan http/https (permintaan klien dan sebagainya).",
        leechInvalidReturnHelper: 'Kod status HTTP yang dipulangkan selepas menyekat permintaan hotlink',
        leechlogControlHelper:
            'Merekod permintaan aset statik; biasanya dimatikan dalam produksi untuk mengelakkan log berlebihan yang tidak perlu',
        selectAcme: 'Pilih akaun Acme',
        imported: 'Dibuat secara manual',
        importType: 'Jenis import',
        pasteSSL: 'Tampal kod',
        localSSL: 'Pilih fail pelayan',
        privateKeyPath: 'Fail kunci peribadi',
        certificatePath: 'Fail sijil',
        ipWhiteListHelper: 'Peranan senarai putih IP: semua peraturan tidak sah untuk senarai putih IP',
        redirect: 'Alihkan',
        sourceDomain: 'Domain sumber',
        targetURL: 'Alamat URL Sasaran',
        keepPath: 'Parameter URI',
        path: 'laluan',
        redirectType: 'Jenis pengalihan',
        redirectWay: 'Cara',
        keep: 'menyimpan',
        notKeep: 'Jangan simpan',
        redirectRoot: 'Alihkan ke halaman utama',
        redirectHelper: 'Pengalihan kekal 301, pengalihan sementara 302',
        changePHPVersionWarn:
            'Menukar versi PHP akan memadamkan kontena PHP asal (kod laman web yang telah dimuatkan tidak akan hilang), teruskan? ',
        changeVersion: 'Tukar versi',
        retainConfig: 'Adakah untuk menyimpan fail php-fpm.conf dan php.ini',
        runDirHelper2: 'Sila pastikan direktori berjalan sekunder berada di bawah direktori indeks',
        openrestyHelper:
            'Port HTTP lalai OpenResty: {0} Port HTTPS: {1}, yang mungkin mempengaruhi akses nama domain laman web dan pengalihan HTTPS paksa',
        primaryDomainHelper: 'Contoh: example.com atau example.com:8080',
        acmeAccountType: 'Jenis akaun',
        keyType: 'Algoritma Kunci',
        tencentCloud: 'Tencent Cloud',
        containWarn: 'Nama domain mengandungi domain utama, sila masukkan semula',
        rewriteHelper2:
            'Aplikasi seperti WordPress yang dipasang dari kedai aplikasi biasanya dilengkapi dengan konfigurasi pseudo-statik praset. Mengkonfigurasi semula mereka boleh menyebabkan ralat.',
        websiteBackupWarn:
            'Hanya menyokong pengimportan sandaran tempatan, pengimportan sandaran dari mesin lain boleh menyebabkan kegagalan pemulihan',
        ipWebsiteWarn:
            'Laman web dengan IP sebagai nama domain perlu disetkan sebagai laman web lalai untuk diakses secara normal.',
        hstsHelper: 'Mengaktifkan HSTS boleh meningkatkan keselamatan laman web',
        includeSubDomains: 'SubDomains',
        hstsIncludeSubDomainsHelper:
            'Apabila diaktifkan, dasar HSTS akan digunakan pada semua subdomain bagi domain semasa.',
        defaultHtml: 'Halaman lalai',
        website404: 'Halaman ralat 404 laman web',
        domain404: 'Domain laman web tidak wujud',
        indexHtml: 'Indeks untuk laman web statik',
        stopHtml: 'Laman web dihentikan',
        indexPHP: 'Indeks untuk laman web PHP',
        sslExpireDate: 'Tarikh Tamat Tempoh Sijil',
        website404Helper:
            'Halaman ralat 404 laman web hanya menyokong laman web persekitaran runtime PHP dan laman web statik',
        sni: 'Sumber SNI',
        sniHelper:
            'Apabila backend proksi terbalik adalah HTTPS, anda mungkin perlu menetapkan sumber SNI. Sila rujuk dokumentasi penyedia perkhidmatan CDN untuk butiran.',
        proxySslVerify: 'Sahkan sijil SSL pelayan belakang',
        proxySslVerifyHelper:
            'Apabila diaktifkan, proksi akan mengesahkan sijil SSL hulu dengan ketat (lalai dimatikan).',
        huaweicloud: 'Huawei Cloud',
        createDb: 'Cipta Pangkalan Data',
        enableSSLHelper: 'Kegagalan mengaktifkan SSL tidak akan menjejaskan penciptaan laman web.',
        batchAdd: 'Tambah Domain Secara Batch',
        batchInput: 'Input Kelompok',
        domainNotFQDN: 'Domain ini mungkin tidak boleh diakses di rangkaian awam',
        domainInvalid: 'Format domain tidak sah',
        domainBatchHelper:
            'Satu domain per baris, format: domain:port@ssl\nContoh: example.com:443@ssl atau example.com',
        generateDomain: 'Hasilkan',
        global: 'Global',
        subsite: 'Sublaman',
        subsiteHelper:
            'Sublaman boleh memilih direktori laman web PHP atau statik yang sedia ada sebagai direktori akar.',
        deleteSubsite: 'Untuk memadam laman web semasa, anda mesti memadam sublaman {0} terlebih dahulu.',
        loadBalance: 'Pengimbangan Beban',
        server: 'Nod',
        algorithm: 'Algoritma',
        ipHash: 'IP Hash',
        ipHashHelper:
            'Mengagihkan permintaan ke pelayan tertentu berdasarkan alamat IP klien, memastikan klien tertentu sentiasa diarahkan ke pelayan yang sama.',
        leastConn: 'Sambungan Terkecil',
        leastConnHelper: 'Menghantar permintaan ke pelayan dengan sambungan aktif paling sedikit.',
        leastTime: 'Masa Terkecil',
        leastTimeHelper: 'Menghantar permintaan ke pelayan dengan masa sambungan aktif terpendek.',
        defaultHelper:
            'Kaedah lalai, permintaan diagihkan secara merata ke setiap pelayan. Jika pelayan mempunyai konfigurasi berat, permintaan diagihkan mengikut berat yang ditentukan. Pelayan dengan berat lebih tinggi menerima lebih banyak permintaan.',
        weight: 'Berat',
        maxFails: 'Kegagalan Maksimum',
        maxConns: 'Sambungan Maksimum',
        strategy: 'Strategi',
        strategyDown: 'Lumpuh',
        strategyBackup: 'Sandaran',
        ipHashBackupErr: 'Hash IP tidak menyokong nod sandaran',
        failTimeout: 'Masa tamat kegagalan',
        failTimeoutHelper:
            'Panjang tetingkap masa untuk pemeriksaan kesihatan pelayan. Apabila bilangan kegagalan terkumpul mencapai ambang dalam tempoh ini, pelayan akan dikeluarkan buat sementara waktu dan dicuba semula selepas tempoh yang sama. Lalai 10 saat',
        staticChangePHPHelper: 'Kini laman web statik, boleh ditukar ke laman web PHP.',
        proxyCache: 'Cache Proksi Terbalik',
        cacheLimit: 'Had Ruang Cache',
        shareCache: 'Saiz Memori Kiraan Cache',
        cacheExpire: 'Masa Tamat Cache',
        shareCacheHelper: '1M memori boleh menyimpan kira-kira 8000 objek cache.',
        cacheLimitHelper: 'Melebihi had akan menghapus cache lama secara automatik.',
        realIP: 'IP Sebenar',
        ipFrom: 'Sumber IP',
        ipFromHelper:
            'Dengan mengkonfigurasi sumber IP yang dipercayai, OpenResty akan menganalisis maklumat IP dalam HTTP Header untuk mengenal pasti dan merekodkan alamat IP sebenar pelawat, termasuk dalam log akses.',
        ipFromExample1: 'Jika frontend adalah alat seperti Frp, anda boleh mengisi alamat IP Frp, seperti 127.0.0.1.',
        ipFromExample2: 'Jika frontend adalah CDN, anda boleh mengisi julat IP CDN.',
        ipFromExample3:
            'Jika tidak pasti, anda boleh mengisi 0.0.0.0/0 (IPv4) atau ::/0 (IPv6). [Nota: Membenarkan sebarang sumber IP tidak selamat.]',
        http3Helper:
            'HTTP/3 adalah versi naik taraf HTTP/2, menyediakan kelajuan sambungan yang lebih pantas dan prestasi yang lebih baik. Walau bagaimanapun, tidak semua penyemak imbas menyokong HTTP/3, dan mengaktifkannya mungkin menyebabkan beberapa penyemak imbas tidak dapat mengakses laman web.',
        cors: 'Perkongsian Sumber Asal Silang (CORS)',
        enableCors: 'Dayakan CORS',
        allowOrigins: 'Domain yang dibenarkan',
        allowMethods: 'Kaedah permintaan yang dibenarkan',
        allowHeaders: 'Pengepala permintaan yang dibenarkan',
        allowCredentials: 'Benarkan kuki dihantar',
        preflight: 'Tindak balas pantas permintaan preflight',
        preflightHleper:
            'Apabila didayakan, apabila pelayar menghantar permintaan preflight asal silang (permintaan OPTIONS), sistem akan secara automatik mengembalikan kod status 204 dan menetapkan pengepala respons asal silang yang diperlukan',
        changeDatabase: 'Tukar Pangkalan Data',
        changeDatabaseHelper1: 'Perkaitan pangkalan data digunakan untuk sandaran dan pemulihan laman web.',
        changeDatabaseHelper2:
            'Menukar ke pangkalan data lain mungkin menyebabkan sandaran sebelumnya tidak dapat dipulihkan.',
        saveCustom: 'Simpan sebagai Templat',
        rainyun: 'Rainyun',
        volcengine: 'Volcengine',
        runtimePortHelper: 'Persekitaran runtime semasa mempunyai beberapa port. Sila pilih port proksi.',
        runtimePortWarn: 'Persekitaran runtime semasa tidak mempunyai port, tidak dapat proksi',
        cacheWarn: 'Sila matikan suis cache dalam pembalikan proksi terlebih dahulu',
        loadBalanceHelper:
            'Setelah mencipta pengimbang beban, sila pergi ke "Reverse Proxy", tambahkan proksi dan tetapkan alamat backend ke: http://<nama pengimbang beban>.',
        useProxy: 'Gunakan Proksi',
        useProxyHelper: 'Gunakan alamat pelayan proksi dalam tetapan panel',
        westCN: 'West Digital',
        openBaseDir: 'Pencegahan Serangan Lintas Situs',
        openBaseDirHelper:
            'open_basedir digunakan untuk membatasi jalur akses file PHP, yang membantu mencegah akses lintas situs dan meningkatkan keamanan',
        serverCacheTime: 'Masa Cache Pelayan',
        serverCacheTimeHelper:
            'Masa permintaan di-cache di pelayan. Semasa tempoh ini, permintaan yang sama akan mengembalikan hasil cache terus tanpa meminta pelayan asal.',
        browserCacheTime: 'Masa Cache Pelayar',
        browserCacheTimeHelper:
            'Masa sumber statik di-cache secara tempatan di pelayar, mengurangkan permintaan berulang. Pengguna akan menggunakan cache tempatan secara langsung sebelum tamat tempoh semasa menyegarkan halaman.',
        donotLinkeDB: 'Jangan Sambungkan Pangkalan Data',
        toWebsiteDir: 'Masuk ke Direktori Laman Web',
        execParameters: 'Parameter Pelaksanaan',
        extCommand: 'Arahan Tambahan',
        mirror: 'Sumber Cermin',
        execUser: 'Pengguna Melaksanakan',
        execDir: 'Direktori Pelaksanaan',
        packagist: 'Cermin Penuh China',
        batchOperate: 'Operasi Pukal',
        batchOperateHelper: 'Pukal {0} laman web, teruskan operasi?',
        stream: 'Proksi TCP/UDP',
        streamPorts: 'Port Mendengar',
        streamPortsHelper:
            'Tetapkan nombor port pendengaran luaran, pelanggan akan mengakses perkhidmatan melalui port ini, dipisahkan dengan koma, cth., 5222,5223',
        streamHelper: 'Penerusan Port dan Pengimbangan Beban TCP/UDP',
        udp: 'Dayakan UDP',
        syncHtmlHelper: 'Segerakkan ke PHP dan laman web statik',
        wafValueHelper: 'Nilai',
        parentWbeiste: 'Laman induk',
        cacheExpireJHelper: 'Cache akan dipadam jika tiada hit selepas tamat tempoh',
    },
    php: {
        short_open_tag: 'Sokongan tag pendek',
        max_execution_time: 'Masa maksimum pelaksanaan skrip',
        max_input_time: 'Masa input maksimum',
        memory_limit: 'Had memori skrip',
        post_max_size: 'Saiz maksimum data POST',
        file_uploads: 'Sama ada membenarkan muat naik fail',
        upload_max_filesize: 'Saiz maksimum fail yang dibenarkan untuk dimuat naik',
        max_file_uploads: 'Bilangan maksimum fail yang dibenarkan untuk dimuat naik pada masa yang sama',
        default_socket_timeout: 'Masa tamat soket',
        error_reporting: 'Tahap kesilapan',
        display_errors: 'Sama ada untuk output maklumat ralat terperinci',
        cgi_fix_pathinfo: 'Sama ada untuk membuka pathinfo',
        date_timezone: 'Zon waktu',
        disableFunction: 'Lumpuhkan fungsi',
        disableFunctionHelper:
            'Masukkan fungsi yang ingin dilumpuhkan, seperti exec, gunakan pemisah untuk banyak fungsi',
        uploadMaxSize: 'Had muat naik',
        indexHelper:
            'Untuk memastikan operasi laman web PHP berjalan lancar, sila letakkan kod dalam direktori indeks dan elakkan menamakan semula',
        extensions: 'Templat sambungan',
        extension: 'Sambungan',
        extensionHelper: 'Gunakan pemisah untuk banyak sambungan',
        toExtensionsList: 'Lihat senarai sambungan',
        containerConfig: 'Konfigurasi Bekas',
        containerConfigHelper:
            'Pembolehubah persekitaran dan maklumat lain boleh diubah suai dalam Konfigurasi - Konfigurasi Bekas selepas penciptaan',
        dateTimezoneHelper: 'Contoh: TZ=Asia/Shanghai (Sila tambahkan jika perlu)',
        extensionsHelper: 'Untuk berbilang sambungan, asingkan dengan koma',
    },
    nginx: {
        serverNamesHashBucketSizeHelper: 'Saiz jadual hash nama pelayan',
        clientHeaderBufferSizeHelper: 'Saiz buffer header yang diminta oleh klien',
        clientMaxBodySizeHelper: 'Fail muat naik maksimum',
        keepaliveTimeoutHelper: 'Masa tamat sambungan',
        gzipMinLengthHelper: 'Saiz minimum fail untuk pemampatan',
        gzipCompLevelHelper: 'Kadar mampatan',
        gzipHelper: 'Aktifkan pemampatan untuk penghantaran',
        connections: 'Sambungan aktif',
        accepts: 'Diterima',
        handled: 'Diuruskan',
        requests: 'Permintaan',
        reading: 'Membaca',
        writing: 'Menulis',
        waiting: 'Menunggu',
        status: 'Status Semasa',
        configResource: 'Konfigurasi',
        saveAndReload: 'Simpan dan muat semula',
        clearProxyCache: 'Bersihkan cache proksi terbalik',
        clearProxyCacheWarn:
            'Semua laman web yang dikonfigurasi dengan cache akan terjejas dan "OpenResty" akan dimulakan semula. Adakah anda mahu meneruskan?',
        create: 'Tambah Modul',
        update: 'Edit Modul',
        params: 'Parameter',
        packages: 'Pakej',
        script: 'Script',
        module: 'Modul',
        build: 'Bina',
        buildWarn:
            'Binaan modul setempat menggunakan CPU dan memori. Modul statik turut membina semula dan memulakan semula OpenResty. Teruskan?',
        buildPurposeHint:
            'Modul dinamik berkuat kuasa melalui muatan semula panas selepas dibina (kontena tidak dimulakan semula); jika modul statik disertakan, imej akan dibina semula sepenuhnya dan kontena dicipta semula',
        buildMode: 'Mod binaan',
        buildModeDynamic: 'Dinamik',
        buildModeStatic: 'Statik',
        buildStatus: 'Status binaan',
        loadOrder: 'Turutan muatan',
        modulesToBuild: 'Modul dinamik (muatan semula panas selepas binaan, kontena tidak dimulakan semula)',
        staticModules: 'Modul statik',
        staticModulesHelper: 'Semasa membina, semua modul akan dibina semula dan OpenResty akan dimulakan semula',
        forceBuild: 'Bina semula tanpa cache',
        buildFailed: 'Binaan terakhir gagal',
        pending: 'Menunggu',
        ready: 'Sedia',
        failed: 'Gagal',
        dynamicUnsupported: 'Binaan dinamik tidak disokong pada versi OpenResty semasa',
        moduleDynamicUnsupported: 'Parameter modul ini tidak menyokong binaan dinamik',
        mirrorUrl: 'Sumber Perisian',
        paramsHelper: 'Contoh: --add-module=/tmp/ngx_brotli; mod dinamik menukarkannya secara automatik',
        packagesHelper: 'Contoh: git,curl dipisahkan oleh koma',
        scriptHelper:
            'Skrip yang dilaksanakan sebelum penyusunan, biasanya untuk memuat turun sumber kod modul, memasang kebergantungan, dll.',
        buildHelper:
            'Modul dinamik dimuatkan melalui konfigurasi selepas dibina; modul statik tetap membina semula OpenResty.',
        defaultHttps: 'Anti-usikan HTTPS',
        defaultHttpsHelper1: 'Mengaktifkan pilihan ini boleh menyelesaikan masalah usikan HTTPS.',
        sslRejectHandshake: 'Tolak jabat tangan SSL lalai',
        sslRejectHandshakeHelper:
            'Mengaktifkan ini boleh mengelakkan kebocoran sijil, menetapkan laman web lalai akan membatalkan tetapan ini',
    },
    ssl: {
        create: 'Permintaan',
        provider: 'Jenis',
        manualCreate: 'Dicipta secara manual',
        acmeAccount: 'Akaun ACME',
        resolveDomain: 'Selesaikan nama domain',
        err: 'Ralat',
        value: 'Nilai rekod',
        dnsResolveHelper: 'Sila pergi ke pembekal perkhidmatan resolusi DNS untuk menambah rekod resolusi berikut:',
        detail: 'Perincian',
        msg: 'Maklumat',
        ssl: 'Sijil',
        key: 'Kunci peribadi',
        startDate: 'Waktu berkuatkuasa',
        organization: 'Organisasi penerbit',
        renewConfirm: 'Ini akan memperbaharui sijil baru untuk nama domain {0}. Adakah anda mahu meneruskan?',
        autoRenew: 'Pembaharuan Automatik',
        autoRenewHelper: 'Perbaharui secara automatik 30 hari sebelum tamat tempoh',
        renewSuccess: 'Pembaharuan berjaya',
        renewWebsite:
            'Sijil ini telah dikaitkan dengan laman web berikut, dan aplikasi akan digunakan pada laman web ini secara serentak',
        createAcme: 'Buat Akaun',
        acmeHelper: 'Akaun Acme digunakan untuk memohon sijil percuma',
        upload: 'Import',
        applyType: 'Jenis',
        apply: 'Perbaharui',
        applyStart: 'Permohonan sijil bermula',
        getDnsResolve: 'Mendapatkan nilai resolusi DNS, sila tunggu...',
        selfSigned: 'CA Ditandatangani Sendiri',
        ca: 'Pihak berkuasa sijil',
        commonName: 'Nama biasa',
        caName: 'Nama pihak berkuasa sijil',
        company: 'Nama organisasi',
        department: 'Nama unit organisasi',
        city: 'Nama bandar',
        province: 'Nama negeri atau wilayah',
        country: 'Kod negara (2 huruf)',
        commonNameHelper: 'Sebagai contoh, ',
        selfSign: 'Keluarkan sijil',
        days: 'Tempoh sah',
        domainHelper: 'Satu nama domain setiap baris, menyokong * dan alamat IP',
        pushDir: 'Tolakkan sijil ke direktori tempatan',
        dir: 'Direktori',
        pushDirHelper: 'Fail sijil "fullchain.pem" dan fail kunci "privkey.pem" akan dihasilkan dalam direktori ini.',
        organizationDetail: 'Butiran organisasi',
        fromWebsite: 'Daripada laman web',
        dnsMauanlHelper:
            'Dalam mod resolusi manual, anda perlu klik butang mohon selepas penciptaan untuk mendapatkan nilai resolusi DNS',
        httpHelper:
            'Menggunakan mod HTTP memerlukan pemasangan OpenResty dan tidak menyokong permohonan sijil domain wildcard.',
        buypassHelper: 'Buypass tidak boleh diakses di tanah besar China',
        googleHelper: 'Cara mendapatkan EAB HmacKey dan EAB kid',
        googleCloudHelper: 'Google Cloud API tidak boleh diakses di kebanyakan kawasan tanah besar China',
        skipDNSCheck: 'Langkau semakan DNS',
        skipDNSCheckHelper: 'Semak di sini hanya jika anda menghadapi isu tamat masa semasa permintaan pengesahan.',
        cfHelper: 'Jangan gunakan Global API Key',
        deprecated: 'akan dihentikan',
        deprecatedHelper:
            'Penyelenggaraan telah dihentikan dan mungkin akan dibuang dalam versi masa hadapan. Sila gunakan kaedah Tencent Cloud untuk analisis',
        dnsPodRemoved: 'dialih keluar',
        dnsPodRemovedTip:
            'DnsPod telah dialih keluar dalam lego v5; akaun ini tidak boleh digunakan untuk permohonan/pembaharuan sijil. Sila tukar kepada akaun TencentCloud DNS.',
        dnsPodRemovedSSLTip:
            'Akaun DnsPod yang dikaitkan dengan sijil ini tidak lagi boleh digunakan dalam lego v5; pembaharuan automatik akan gagal. Sila tukar akaun DNS kepada TencentCloud.',
        disableCNAME: 'Lumpuhkan CNAME',
        disableCNAMEHelper: 'Semak di sini jika nama domain mempunyai rekod CNAME dan permintaan gagal.',
        nameserver: 'Pelayan DNS',
        nameserverHelper: 'Gunakan pelayan DNS tersuai untuk mengesahkan nama domain.',
        edit: 'Edit sijil',
        execShell: 'Jalankan skrip selepas permintaan pengesahan.',
        shell: 'Kandungan skrip',
        shellHelper:
            'Direktori pelaksanaan lalai skrip adalah direktori pemasangan 1Panel. Jika sijil ditolak ke direktori tempatan, direktori pelaksanaan akan menjadi direktori tolak sijil. Tamat masa pelaksanaan lalai ialah 30 minit.',
        customAcme: 'Perkhidmatan ACME Tersuai',
        customAcmeURL: 'URL Perkhidmatan ACME',
        baiduCloud: 'Baidu Cloud',
        pushNode: 'Segerakan ke Nod Lain',
        pushNodeHelper: 'Tolak ke nod terpilih selepas permohonan/pembaharuan',
        fromMaster: 'Tolak dari Nod Utama',
        hostedZoneID: 'Hosted Zone ID',
        isIP: 'Sijil IP',
        useEAB: 'Gunakan pengesahan EAB',
    },
    firewall: {
        create: 'Buat peraturan',
        edit: 'Edit peraturan',
        ccDeny: 'Perlindungan CC',
        ipWhiteList: 'Senarai putih IP',
        ipBlockList: 'Senarai blok IP',
        fileExtBlockList: 'Senarai blok sambungan fail',
        urlWhiteList: 'Senarai putih URL',
        urlBlockList: 'Senarai blok URL',
        argsCheck: 'Pengesahan parameter GET',
        postCheck: 'Pengesahan parameter POST',
        cookieBlockList: 'Senarai blok Cookie',
        dockerHelper:
            'Firewall semasa tidak boleh melumpuhkan pemetaan port bekas. Aplikasi yang dipasang boleh pergi ke halaman [Dipasang] untuk mengedit parameter aplikasi dan mengkonfigurasi peraturan pelepasan port.',
        iptablesHelper:
            'Dikesan sistem menggunakan firewall {0}. Untuk beralih ke iptables, sila nyahpasang secara manual dahulu!',
        quickJump: 'Akses pantas',
        used: 'Digunakan',
        unUsed: 'Tidak Digunakan',
        dockerRestart: 'Operasi firewall memerlukan memulakan semula perkhidmatan Docker',
        firewallHelper: '{0} firewall sistem',
        firewallNotStart: 'Firewall sistem belum diaktifkan. Aktifkannya dahulu.',
        restartFirewallHelper: 'Operasi ini akan memulakan semula firewall semasa. Adakah anda mahu meneruskan?',
        stopFirewallHelper:
            'Ini akan menyebabkan pelayan kehilangan perlindungan keselamatan. Adakah anda mahu meneruskan?',
        startFirewallHelper:
            'Selepas firewall diaktifkan, keselamatan pelayan boleh dilindungi dengan lebih baik. Adakah anda mahu meneruskan?',
        noPing: 'Lumpuhkan ping',
        enableBanPing: 'Sekat Ping',
        disableBanPing: 'Nyahsekat Ping',
        noPingTitle: 'Lumpuhkan ping',
        noPingHelper:
            'Ini akan melumpuhkan ping, dan pelayan tidak akan memberikan tindak balas ICMP. Adakah anda mahu meneruskan?',
        onPingHelper:
            'Ini akan mengaktifkan ping, dan penggodam mungkin menemui pelayan anda. Adakah anda mahu meneruskan?',
        changeStrategy: 'Tukar strategi {0}',
        changeStrategyIPHelper1:
            'Tukar strategi alamat IP kepada [deny]. Selepas alamat IP ditetapkan, akses kepada pelayan dilarang. Adakah anda mahu meneruskan?',
        changeStrategyIPHelper2:
            'Tukar strategi alamat IP kepada [allow]. Selepas alamat IP ditetapkan, akses normal dipulihkan. Adakah anda mahu meneruskan?',
        changeStrategyPortHelper1:
            'Tukar dasar port kepada [drop]. Selepas dasar port ditetapkan, akses luaran ditolak. Adakah anda mahu meneruskan?',
        changeStrategyPortHelper2:
            'Tukar dasar port kepada [accept]. Selepas dasar port ditetapkan, akses port biasa akan dipulihkan. Adakah anda mahu meneruskan?',
        stop: 'Hentikan',
        portFormatError: 'Medan ini mesti port yang sah.',
        portHelper1: 'Pelbagai port, contohnya 8080 dan 8081',
        portHelper2: 'Port rentang, contohnya 8080-8089',
        changeStrategyHelper:
            'Tukar strategi {0} [{1}] kepada [{2}]. Selepas tetapan, {0} akan mengakses {2} secara luaran. Adakah anda mahu meneruskan?',
        strategy: 'Strategi',
        accept: 'Terima',
        drop: 'Lumpuhkan',
        anyWhere: 'Mana-mana',
        address: 'Alamat IP tertentu',
        addressHelper: 'Sokong alamat IP atau segmen IP',
        allow: 'Benarkan',
        deny: 'Tolak',
        addressFormatError: 'Medan ini mesti alamat IP yang sah.',
        addressHelper1: 'Sokong alamat IP atau julat IP. Sebagai contoh, "172.16.10.11" atau "172.16.10.0/24".',
        addressHelper2: 'Untuk pelbagai alamat IP, pisahkan dengan koma. Contohnya, "172.16.10.11, 172.16.0.0/24".',
        allIP: 'Semua IP',
        portRule: 'Peraturan | Peraturan',
        forwardRule: 'Peraturan Pemajuan Port | Peraturan Pemajuan Port',
        ipRule: 'Peraturan IP | Peraturan IP',
        userAgent: 'Penapis User-Agent',
        sourcePort: 'Port sumber',
        targetIP: 'IP sasaran',
        targetPort: 'Port sasaran',
        forwardHelper1: 'Jika anda ingin memajukan ke port tempatan, IP sasaran harus ditetapkan kepada "127.0.0.1".',
        forwardHelper2: 'Biarkan IP sasaran kosong untuk memajukan ke port tempatan.',
        forwardPortHelper: 'Menyokong julat port, cth: 8080-8089',
        forwardInboundInterface: 'Antara Muka Rangkaian Masukan Penerusan',
        exportHelper: 'Akan mengeksport {0} peraturan firewall. Teruskan?',
        importSuccess: '{0} peraturan berjaya diimport',
        importPartialSuccess: 'Import selesai: {0} berjaya, {1} gagal',
        ipv4Limit: 'Operasi semasa hanya menyokong alamat IPv4',
        basicStatus: 'Rantaian semasa {0} tidak terikat, sila ikat dahulu!',
        baseIptables: 'Perkhidmatan iptables',
        forwardIptables: 'Perkhidmatan Penerusan Port iptables',
        advanceIptables: 'Perkhidmatan Konfigurasi Lanjutan iptables',
        initMsg: 'Akan memulakan {0}, teruskan?',
        initHelper: 'Mengesan {0} tidak dimulakan. Sila klik butang pemulaan di bar status atas untuk mengkonfigurasi!',
        bindHelper: 'Ikat - Peraturan firewall hanya akan berkuat kuasa apabila status terikat. Sahkan?',
        unbindHelper:
            'Nyahikat - Apabila tidak terikat, semua peraturan firewall yang ditambah akan menjadi tidak sah. Teruskan dengan berhati-hati. Sahkan?',
        whiteList: 'Senarai putih',
        portWhiteList: 'Senarai putih port',
        portWhiteListAlter:
            'Port dalam senarai putih akan dibuka secara automatik apabila firewall dimulakan atau dihidupkan.',
        portWhiteListHelper:
            'Protokol boleh ditentukan, contohnya 80/tcp atau 443/udp. Jika diabaikan, tcp digunakan secara lalai.',
        defaultStrategy: 'Dasar lalai untuk rantaian semasa {0} adalah {1}',
        defaultStrategy2:
            'Dasar lalai untuk rantaian semasa {0} adalah {1}, status semasa adalah tidak terikat. Peraturan firewall yang ditambah akan berkuat kuasa selepas pengikatan!',
        filterRule: 'Peraturan Penapis',
        filterHelper:
            'Peraturan penapis membolehkan anda mengawal trafik rangkaian pada tahap INPUT/OUTPUT. Konfigurasikan dengan berhati-hati untuk mengelakkan mengunci sistem.',
        chain: 'Rantai',
        targetChain: 'Rantai Sasaran',
        sourceIP: 'IP Sumber',
        destIP: 'IP Destinasi',
        inboundDirection: 'Arah Masuk',
        outboundDirection: 'Arah Keluar',
        destPort: 'Port Destinasi',
        action: 'Tindakan',
        reject: 'Tolak',
        sourceIPHelper: 'Format CIDR, cth. 192.168.1.0/24. Biarkan kosong untuk semua alamat',
        destIPHelper: 'Format CIDR, cth. 10.0.0.0/8. Biarkan kosong untuk semua alamat',
        portHelper: '0 bermaksud mana-mana port',
        allPorts: 'Semua Port',
        deleteRuleConfirm: 'Akan memadam {0} peraturan. Teruskan?',
        advancedControl: 'Kawalan lanjutan',
        advancedControlNotAvailable: 'Kini menggunakan firewall {0}, peraturan lanjutan hanya menyokong iptables',
        destination: 'Destinasi',
    },
    runtime: {
        runtime: 'Runtime',
        workDir: 'Direktori kerja',
        localHelper:
            'Untuk masalah pemasangan persekitaran tempatan dan penggunaan persekitaran luar talian, sila rujuk ',
        versionHelper: 'Versi PHP, contohnya v8.0',
        buildHelper:
            'Semakin banyak sambungan, semakin tinggi penggunaan CPU semasa membuat imej. Sambungan boleh dipasang selepas persekitaran dibuat.',
        openrestyWarn: 'PHP perlu dinaik taraf kepada OpenResty versi 1.21.4.1 atau lebih tinggi untuk digunakan',
        toupgrade: 'Naik Taraf',
        edit: 'Sunting persekitaran masa jalan',
        extendHelper:
            'Sambungan yang tidak disenaraikan boleh dimasukkan dan dipilih secara manual. Sebagai contoh, masukkan "sockets" dan pilih pilihan pertama dari senarai juntai bawah untuk melihat senarai sambungan.',
        rebuildHelper: 'Selepas mengedit sambungan, anda perlu membina semula aplikasi PHP untuk ia berkesan',
        rebuild: 'Bina Semula Aplikasi PHP',
        source: 'Sumber sambungan PHP',
        ustc: 'Universiti Sains dan Teknologi China',
        netease: 'Netease',
        aliyun: 'Alibaba Cloud',
        default: 'Default',
        tsinghua: 'Universiti Tsinghua',
        xtomhk: 'Stesen Cermin XTOM (Hong Kong)',
        xtom: 'Stesen Cermin XTOM (Global)',
        phpsourceHelper: 'Pilih sumber yang sesuai mengikut persekitaran rangkaian anda.',
        appPort: 'Port aplikasi',
        externalPort: 'Port luaran',
        packageManager: 'Pengurus pakej',
        codeDir: 'Direktori kod',
        appPortHelper: 'Port yang digunakan oleh aplikasi.',
        externalPortHelper: 'Port yang terdedah kepada dunia luar.',
        runScript: 'Skrip run',
        runScriptHelper: 'Senarai arahan permulaan diuraikan dari fail package.json dalam direktori sumber.',
        open: 'Buka',
        operatorHelper:
            'Operasi {0} akan dilakukan pada persekitaran operasi yang dipilih. Adakah anda mahu meneruskan?',
        taobao: 'Taobao',
        tencent: 'Tencent',
        imageSource: 'Sumber imej',
        moduleManager: 'Pengurusan Modul',
        module: 'Modul',
        nodeOperatorHelper:
            'Adakah {0} {1} modul? Operasi ini mungkin menyebabkan ketidaknormalan dalam persekitaran operasi. Sila pastikan sebelum meneruskan',
        customScript: 'Arahan permulaan tersuai',
        customScriptHelper:
            'Sila masukkan arahan permulaan penuh, contoh: npm run start. Untuk arahan permulaan PM2, sila gantikan dengan pm2-runtime, jika tidak ia akan gagal bermula.',
        portError: 'Jangan ulangi port yang sama.',
        systemRestartHelper: 'Huraian status: Gangguan - status gagal diperoleh kerana sistem dimulakan semula',
        javaScriptHelper: 'Sediakan arahan permulaan penuh. Contohnya, "java -jar halo.jar -Xmx1024M -Xms256M".',
        javaDirHelper: 'Direktori mesti mengandungi fail jar, subdirektori juga diterima',
        goHelper: 'Sediakan arahan permulaan penuh. Contohnya, "go run main.go" atau "./main".',
        goDirHelper: 'Direktori atau subdirektori mesti mengandungi fail Go atau binari.',
        pythonHelper:
            'Sediakan arahan permulaan penuh. Contohnya, "pip install -r requirements.txt && python manage.py runserver 0.0.0.0:5000".',
        dotnetHelper: 'Sila isi arahan pelancaran lengkap, contohnya dotnet MyWebApp.dll',
        dirHelper: 'Nota: Sila isi laluan direktori di dalam bekas',
        concurrency: 'Skim Serentak',
        loadStatus: 'Status Beban',
        extraHosts: 'Pemetaan hos',
        extension: 'Sambungan',
        installExtension: 'Adakah anda pasti untuk memasang sambungan {0}',
        loadedExtension: 'Sambungan dimuatkan',
        popularExtension: 'Sambungan popular',
        uninstallExtension: 'Adakah anda pasti untuk nyahpasang sambungan {0}',
        phpConfigHelper: 'Perubahan konfigurasi memerlukan persekitaran operasi dimulakan semula, teruskan',
        operateMode: 'mod operasi',
        dynamic: 'dinamik',
        static: 'statik',
        ondemand: 'atas permintaan',
        dynamicHelper: 'Laraskan bilangan proses secara dinamik, sesuai untuk trafik berubah atau memori rendah',
        staticHelper: 'Bilangan proses tetap, sesuai untuk trafik stabil dan serentak tinggi, penggunaan sumber tinggi',
        ondemandHelper:
            'Proses dimulakan dan ditutup mengikut permintaan, penggunaan sumber optimum tetapi respons awal mungkin perlahan',
        max_children: 'bilangan maksimum proses yang dibenarkan',
        start_servers: 'bilangan proses semasa permulaan',
        min_spare_servers: 'bilangan minimum proses melahu',
        max_spare_servers: 'bilangan maksimum proses melahu',
        envKey: 'Nama',
        envValue: 'Nilai',
        environment: 'Pembolehubah persekitaran',
    },
    process: {
        pid: 'ID Proses',
        ppid: 'PID Induk',
        numThreads: 'Thread',
        memory: 'Memori',
        diskRead: 'Bacaan cakera',
        diskWrite: 'Tulisan cakera',
        netSent: 'Muat naik',
        netRecv: 'Muat turun',
        numConnections: 'Sambungan',
        startTime: 'Masa mula',
        running: 'Berjalan',
        sleep: 'Tidur',
        stop: 'Berhenti',
        idle: 'Melahu',
        zombie: 'Proses zombi',
        wait: 'Menunggu',
        lock: 'Dikunci',
        blocked: 'Disekat',
        cmdLine: 'Perintah mula',
        basic: 'Asas',
        mem: 'Memori',
        openFiles: 'Fail terbuka',
        env: 'Pemboleh ubah persekitaran',
        noenv: 'Tiada',
        net: 'Sambungan rangkaian',
        laddr: 'Alamat/port sumber',
        raddr: 'Alamat/port destinasi',
        stopProcess: 'Tamatkan',
        viewDetails: 'Butiran',
        stopProcessWarn: 'Adakah anda pasti mahu menamatkan proses ini (PID:{0})?',
        kill: 'Hentikan Proses',
        killNow: 'Hentikan Sekarang',
        killHelper:
            'Menghentikan proses {0} mungkin menyebabkan beberapa program tidak berfungsi dengan normal. Teruskan?',
        processName: 'Nama proses',
    },
    tool: {
        supervisor: {
            loadStatusErr: 'Gagal mendapatkan status proses, sila semak status perkhidmatan supervisor.',
            notSupport:
                'Perkhidmatan Supervisor tidak dikesan. Sila pergi ke halaman pustaka skrip untuk pemasangan manual',
            list: 'Proses Daemon | Proses Daemon',
            config: 'Konfigurasi Supervisor',
            primaryConfig: 'Lokasi fail konfigurasi utama',
            notSupportCtl: 'supervisorctl tidak dikesan. Sila pergi ke halaman pustaka skrip untuk pemasangan manual.',
            user: 'Pengguna',
            command: 'Perintah',
            dir: 'Direktori',
            numprocs: 'Bil. proses',
            initWarn:
                'Ini akan mengubah nilai "files" dalam bahagian "[include]" dalam fail konfigurasi utama. Direktori fail konfigurasi lain akan menjadi: "{direktori pemasangan 1Panel}/1panel/tools/supervisord/supervisor.d/".',
            operatorHelper: 'Operasi {1} akan dilakukan pada {0}, teruskan?',
            uptime: 'Masa berjalan',
            notStartWarn: 'Supervisor belum dimulakan. Mulakan dahulu.',
            serviceName: 'Nama perkhidmatan',
            initHelper:
                'Perkhidmatan Supervisor dikesan tetapi belum dimulakan. Sila klik butang permulaan di bar status atas untuk konfigurasi.',
            serviceNameHelper:
                'Nama perkhidmatan Supervisor yang diuruskan oleh systemctl, biasanya supervisor atau supervisord',
            restartHelper:
                'Ini akan memulakan semula perkhidmatan selepas inisialisasi, menyebabkan semua proses daemon sedia ada berhenti.',
            RUNNING: 'Berjalan',
            STOPPED: 'Berhenti',
            STOPPING: 'Sedang Berhenti',
            STARTING: 'Sedang Bermula',
            FATAL: 'Gagal bermula',
            BACKOFF: 'Pengecualian permulaan',
            ERROR: 'Ralat',
            statusCode: 'Kod status',
            manage: 'Pengurusan',
            autoRestart: 'Mulakan Semula Automatik',
            EXITED: 'Telah keluar',
            autoRestartHelper:
                'Sama ada untuk memulakan semula program secara automatik selepas ia tamat secara luar jangka',
            autoStart: 'Mula Automatik',
            autoStartHelper: 'Sama ada untuk memulakan perkhidmatan secara automatik selepas Supervisor mula',
        },
    },
    disk: {
        systemDisk: 'Cakera Sistem',
        unpartitionedDisk: 'Cakera Tidak Dibahagikan',
        handlePartition: 'Bahagikan Sekarang',
        filesystem: 'Sistem Fail',
        unmounted: 'Tidak Dikaitkan',
        cannotOperate: 'Tidak Boleh Beroperasi',
        systemDiskHelper: 'Petunjuk: Cakera semasa adalah cakera sistem, tidak boleh dioperasikan.',
        autoMount: 'Pemasangan Automatik',
        model: 'Model Peranti',
        diskType: 'Jenis Cakera',
        serial: 'Nombor Siri',
        noFail: 'Kegagalan pemasangan tidak menjejaskan permulaan sistem',
        management: 'Pengurusan cakera',
        partition: 'Sekatan',
        unmount: 'Nyahlekap',
        unmountHelper: 'Nyahlekap partition {0}?',
        mount: 'Lekap',
        partitionAlert: 'Operasi ini memformat seluruh cakera. Pastikan data telah dibackup!',
        mountPoint: 'Titik lekap',
    },
    xpack: {
        ldap: {
            source: 'Sumber',
            directoryMissing: 'Tiada dalam LDAP',
            localCredentialsManaged:
                'Nama pengguna dan kata laluan diurus oleh LDAP dan tidak boleh diubah secara setempat.',
            sources: {
                local: 'Setempat',
                ldap: 'LDAP',
            },
            importUsers: 'Import pengguna AD/LDAP',
            searchUsersPlaceholder: 'Cari nama pengguna',
            readFromLDAP: 'Baca daripada LDAP',
            selectedUsers: '{0} dipilih',
            queriedAt: 'Masa dibaca',
            cachedResult: 'Hasil cache',
            roleForNewUsers: 'Peranan untuk pengguna baharu',
            selectRole: 'Pilih peranan',
            roleOnlyForNewUsers: 'Peranan diperlukan hanya apabila import mencipta pengguna.',
            roleRequiredForNewUsers: 'Pilih peranan untuk pengguna LDAP baharu.',
            changedFields: 'Medan ditukar',
            importSelected: 'Import dipilih',
            importAll: 'Import semua',
            importPreview: 'Pratonton import AD/LDAP',
            importCompleted: 'Import AD/LDAP selesai',
            incompletePreview: 'Direktori LDAP dibaca tidak lengkap. Baca dari LDAP sekali lagi.',
            missingUsersWarning: 'Pengguna yang hilang dari LDAP akan dilumpuhkan oleh penyegerakan yang ketat.',
            missingUsersWarningDetail: '{0} pengguna LDAP tempatan tidak akan dapat log masuk lagi.',
            action: 'Tindakan',
            reason: 'Sebab',
            noImportChanges: 'Tiada perubahan import',
            confirmImport: 'Sahkan import',
            created: 'Buat',
            updated: 'Kemas kini',
            reactivated: 'Aktifkan semula',
            unchanged: 'Tidak berubah',
            conflicts: 'Konflik',
            missing: 'hilang',
            missingUsersConfirm: '{0} pengguna yang tiada dalam LDAP akan dinyahdayakan dan dilog keluar. Teruskan?',
            strictSyncConfirm: 'Sahkan penyegerakan yang ketat',
            status: {
                importable: 'Pengguna baharu',
                update_available: 'Kemas kini tersedia',
                up_to_date: 'Terkini',
                conflict: 'Konflik',
            },
            fields: {
                name: 'Nama pengguna',
                externalDN: 'Direktori DN',
                externalID: 'ID Luaran',
                authSourceStatus: 'Status pengesahan',
            },
            actions: {
                created: 'Buat',
                updated: 'Kemas kini',
                reactivated: 'Aktifkan semula',
                unchanged: 'Tidak berubah',
                skipped: 'Dilangkau',
                conflicts: 'Konflik',
                conflict: 'Konflik',
                missing: 'Lumpuhkan',
                errors: 'ralat',
                error: 'ralat',
            },
        },
        expiresEnterpriseAlert:
            'Peringatan mesra: Lesen Enterprise Edition anda akan tamat dalam {0} hari, dan semua ciri Enterprise Edition tidak lagi dapat diakses. Sila perbaharui segera untuk memastikan penggunaan berterusan.',
        expiresProAlert:
            'Peringatan mesra: Lesen Pro Edition anda akan tamat dalam {0} hari, dan semua ciri Pro Edition tidak lagi dapat diakses. Sila perbaharui segera untuk memastikan penggunaan berterusan.',
        menu: 'Pro',
        upage: 'Pembina Laman Web AI',
        proAlert: 'Tingkatkan ke Edisi Komersial untuk menggunakan ciri ini',
        opsReport: {
            name: 'Laporan Operasi',
            overview: 'Gambaran Keseluruhan',
            system: 'Operasi Hos',
            login: 'Log Masuk & Keselamatan',
            website: 'Perlindungan Laman Web',
            resource: 'Sumber Operasi',
            cronjob: 'Tugas Berjadual',
            alert: 'Pemberitahuan Amaran',
            history: 'Sejarah Eksport',
            setting: 'Tetapan',
            page: {
                enterprise: 'Edisi Perusahaan',
                reportNode: 'Nod Laporan',
                selectReportNode: 'Pilih nod laporan',
                currentNode: 'Semasa',
                scoreMeta: 'Potongan {0} mata · {1} risiko',
                hostAddress: 'Alamat Hos',
                panelVersion: 'Versi Panel',
                cpuCores: 'Teras Fizikal',
                coreUnit: '{0} teras',
                memoryTotal: 'Jumlah Memori',
                reportDate: 'Tarikh Laporan',
                serverSecurityOverview: 'Gambaran Keseluruhan Keselamatan Pelayan',
                securityScore: 'Skor Keselamatan',
                overviewSummary:
                    'Tahap keselamatan semasa: {0}. {1} mata dipotong, {2} item risiko dikenal pasti, {3} objek diperiksa.',
                riskDistribution: 'Taburan Risiko',
                totalDeducted: 'Jumlah potongan',
                noRiskDeducted: 'Tiada potongan',
                scoreTrend: 'Trend Skor',
                scoreLevelSafe: 'Selamat',
                scoreLevelAttention: 'Perlu Perhatian',
                scoreLevelMediumRisk: 'Risiko Sederhana',
                scoreLevelHighRisk: 'Risiko Tinggi',
                scoreCategoryHost: 'Sumber Hos',
                scoreCategoryLogin: 'Keselamatan Log Masuk',
                scoreCategoryWebsite: 'Laman Web & Sijil',
                scoreCategoryCronjob: 'Tugas Berjadual',
                scoreCategoryResource: 'Sumber Masa Jalan',
                scoreDiskHigh: 'Penggunaan cakera {0} adalah {1}%',
                scoreDiskMedium: 'Penggunaan cakera {0} adalah {1}%',
                scoreResourceHigh: 'Penggunaan semasa {0} adalah {1}%',
                scoreResourceMedium: 'Penggunaan semasa {0} adalah {1}%',
                scoreLoadMedium: 'Beban semasa ialah {0}',
                scoreMonitorDisabled: 'Pemantauan hos dilumpuhkan',
                scorePanelLoginFailedHigh: 'Log masuk panel gagal {0} kali',
                scorePanelLoginFailedMedium: 'Log masuk panel gagal {0} kali',
                scoreSSHLoginFailedHigh: 'Log masuk SSH gagal {0} kali',
                scoreSSHLoginFailedMedium: 'Log masuk SSH gagal {0} kali',
                scoreMFADisabled: 'MFA dilumpuhkan',
                scoreAllowIPsOpen: 'IP dibenarkan dan domain terikat tidak dikonfigurasi atau akses tidak terhad',
                scorePanelHTTPSDisabled: 'Panel HTTPS dilumpuhkan',
                scoreSSHRootLogin: 'Log masuk root SSH dibenarkan',
                scoreSSHPasswordAuth: 'Kata laluan SSH didayakan tanpa pengesahan kunci',
                scoreSSLExpired: 'Sijil {0} telah tamat tempoh',
                scoreSSLHigh: 'Sijil {0} tamat tempoh dalam {1} hari',
                scoreSSLMedium: 'Sijil {0} tamat tempoh dalam {1} hari',
                scoreWebsiteExpired: 'Laman web {0} telah tamat tempoh',
                scoreWebsiteExpire: 'Laman web {0} tamat tempoh dalam {1} hari',
                scoreWebsiteHTTP: '{0} tidak menggunakan HTTPS',
                scoreWebsiteStopped: 'Status {0} tidak normal',
                scoreWebsiteMonitorUnavailable: 'Pemantauan laman web mengesan tapak tidak tersedia',
                scoreWebsiteMonitorAvailability: 'Ketersediaan permintaan pemantauan laman web {0}% di bawah ambang',
                scoreWebsiteMonitorStatusAbnormal:
                    'Pemantauan laman web didayakan tetapi belum dimulakan atau dalam keadaan tidak normal',
                scoreWafDisabled: 'WAF dilumpuhkan dan laman web tidak dilindungi',
                scoreWafHighRiskHit: 'WAF sepadan dengan {0} peraturan risiko dalam tempoh laporan',
                scoreCronjobFailed: '{0} rekod kegagalan tugas berjadual dalam 7 hari terakhir',
                scoreAppFailed: 'Aplikasi {0} tidak normal',
                scoreAppStopped: 'Aplikasi {0} telah berhenti',
                scoreContainerHigh: 'Status bekas {0} tidak normal',
                scoreContainerExited: 'Bekas {0} telah berhenti',
                scoreContainerResource: 'Penggunaan sumber bekas {0} terlalu tinggi',
                scoreContainerPublicPort: 'Bekas {0} mempunyai port awam terdedah',
                attentionItems: 'Item Perhatian',
                attentionAssets: 'Aset Perhatian',
                riskItems: 'Item Risiko',
                object: 'Objek',
                description: 'Penerangan',
                itemUnit: 'item',
                recordUnit: 'rekod',
                certUnit: 'sijil',
                containerUnit: 'bekas',
                loginFailed: 'Log Masuk Gagal',
                sslExpire: 'Tamat Tempoh Sijil',
                abnormalContainer: 'Bekas Tidak Normal',
                statAttentionDesc: '{0} mata dipotong',
                statLoginDesc: 'Panel {0} · SSH {1}',
                statSslDesc: '{0} sijil diperiksa',
                statContainerDesc: '{0} bekas diperiksa',
                assetHostDesc: 'Penggunaan cakera maksimum {0}%',
                assetWebsiteDesc: '{0} sijil hampir tamat tempoh, {1} laman web tidak normal',
                assetResourceDesc: '{0} aplikasi tidak normal, {1} bekas tidak normal',
                assetCronjobDesc: '{0} rekod kegagalan dalam 7 hari terakhir, {1} tugas dilumpuhkan',
                app: 'Aplikasi',
                website: 'Laman Web',
                websiteSsl: 'Laman Web / Sijil',
                cronjob: 'Tugas Berjadual',
                container: 'Bekas',
                sslCertificate: 'Sijil SSL',
                loginSecurity: 'Keselamatan Log Masuk',
                panelLogin: 'Log Masuk Panel',
                sshLogin: 'Log Masuk SSH',
                failedRecord: 'Rekod Gagal',
                expired: 'Tamat tempoh',
                expiredDays: 'Tamat tempoh {0} hari lalu',
                remainingDays: '{0} · Baki {1} hari',
                enabled: 'Didayakan',
                disabled: 'Dilumpuhkan',
                exportRecordFailed: 'Gagal menyimpan rekod eksport',
                hostInfo: 'Maklumat Hos',
                hostname: 'Nama Hos',
                osVersion: 'Versi OS',
                kernelVersion: 'Versi Kernel',
                arch: 'Seni Bina',
                uptime: 'Masa Operasi',
                diskUsage: 'Penggunaan Cakera',
                mountPoint: 'Titik Pemasangan',
                device: 'Peranti',
                capacity: 'Kapasiti',
                used: 'Digunakan',
                usageRate: 'Kadar Penggunaan',
                memory: 'Memori',
                load: 'Beban',
                maxDiskUsage: 'Penggunaan Cakera Maksimum',
                panelLoginSecurity: 'Keselamatan Log Masuk Panel',
                sshSecurity: 'Keselamatan SSH Pelayan Linux',
                panelFailedRecords: 'Rekod Log Masuk Panel Gagal',
                sshFailedRecords: 'Rekod Log Masuk SSH Gagal',
                location: 'Lokasi',
                configItem: 'Item Konfigurasi',
                currentValue: 'Nilai Semasa',
                securityEntrance: 'Pintu Masuk Keselamatan',
                configured: 'Dikonfigurasi',
                notConfigured: 'Belum Dikonfigurasi',
                normal: 'Normal',
                needAttention: 'Perlu Perhatian',
                allowIPs: 'IP Dibenarkan',
                restricted: 'Dihadkan',
                unrestricted: 'Tidak Dihadkan',
                bindDomain: 'Domain Terikat',
                accessRestriction: 'Sekatan Akses',
                panelHTTPS: 'Panel HTTPS',
                passwordComplexity: 'Kerumitan Kata Laluan',
                sshService: 'Perkhidmatan SSH',
                running: 'Berjalan',
                notRunning: 'Tidak Berjalan',
                listenPort: 'Port Mendengar',
                read: 'Dibaca',
                rootLogin: 'Log Masuk Root',
                passwordAuth: 'Pengesahan Kata Laluan',
                keyAuth: 'Pengesahan Kunci',
                panelLoginFailed: 'Log Masuk Panel Gagal',
                sshLoginFailed: 'Log Masuk SSH Gagal',
                panelSecurityItems: 'Item Keselamatan Panel',
                sshSecurityItems: 'Item Keselamatan SSH',
                loginSecurityHealthStatus: 'Status Kesihatan Keselamatan Log Masuk',
                adjustSSHSecurity: 'Laraskan Keselamatan SSH',
                viewLoginLogs: 'Lihat Log Masuk',
                riskLevel: 'Tahap Risiko',
                goConfig: 'Konfigurasi',
                viewMore: 'Lihat Lagi',
                involvedIPs: '{0} IP terlibat',
                sessionTimeout: 'Masa Tamat Sesi',
                countUnit: 'kali',
                recent24Hours: '24 jam terakhir',
                currentService: 'Perkhidmatan semasa',
                riskItemsExist: '{0} item risiko',
                loginHealthRiskDesc:
                    '{0} konfigurasi berisiko dikesan. Kukuhkan keselamatan log masuk untuk mengurangkan risiko pencerobohan.',
                loginHealthNormalDesc: 'Konfigurasi keselamatan log masuk dan SSH semasa adalah normal',
                loginHealthNormalReason: 'Keselamatan log masuk adalah normal',
                securityEntranceConfiguredDesc:
                    'Pintu masuk keselamatan dikonfigurasi untuk mengurangkan pendedahan laluan lalai',
                securityEntranceRiskDesc:
                    'Pintu masuk keselamatan tidak didayakan. Sembunyikan pintu masuk log masuk lalai',
                allowIPsRestrictedDesc: 'IP dibenarkan dihadkan untuk akses panel',
                allowIPsRiskDesc: 'IP akses tidak dihadkan. Konfigurasikan IP dibenarkan untuk persekitaran awam',
                bindDomainRestrictedDesc: 'Domain akses telah diikat',
                bindDomainRiskDesc: 'Domain akses belum diikat. Hadkan akses kepada domain tetap',
                accessRestrictionValue: 'IP Dibenarkan: {0} / Domain Terikat: {1}',
                accessRestrictionNormalDesc:
                    'IP dibenarkan atau domain terikat dikonfigurasi untuk mengehadkan sumber akses panel',
                accessRestrictionRiskDesc:
                    'IP dibenarkan dan domain terikat tidak dikonfigurasi atau akses tidak terhad. Konfigurasikan sekurang-kurangnya satu',
                mfa: 'MFA',
                mfaNormalDesc: 'MFA telah diaktifkan',
                mfaRiskDesc:
                    'MFA belum diaktifkan. Disyorkan untuk mengaktifkannya bagi meningkatkan keselamatan akaun',
                panelHTTPSNormalDesc: 'Panel HTTPS didayakan',
                panelHTTPSRiskDesc: 'Panel HTTPS dilumpuhkan. Laluan log masuk mungkin terdedah',
                passwordComplexityNormalDesc: 'Pengesahan kerumitan kata laluan didayakan',
                passwordComplexityRiskDesc:
                    'Pengesahan kerumitan kata laluan dilumpuhkan, meningkatkan risiko kata laluan lemah',
                sessionTimeoutNormalDesc: 'Masa tamat sesi berada dalam julat yang lebih selamat',
                sessionTimeoutRiskDesc: 'Masa tamat sesi terlalu lama. Hadkan tempoh sesi terbiar',
                sshServiceNormalDesc: 'Perkhidmatan SSH berjalan normal',
                sshServiceRiskDesc: 'Perkhidmatan SSH tidak berjalan atau tidak normal',
                sshPortNormalDesc: 'Port SSH telah ditukar daripada port lalai',
                sshPortRiskDesc: 'Masih menggunakan port lalai 22. Tukar jika perlu',
                rootLoginNormalDesc: 'Pengguna root tidak dapat log masuk terus',
                rootLoginRiskDesc: 'Pengguna root boleh log masuk terus. Lumpuhkannya',
                passwordAuthNormalDesc: 'Log masuk kata laluan SSH dilumpuhkan',
                passwordAuthRiskDesc: 'Log masuk kata laluan dibenarkan, meningkatkan risiko serangan ganas',
                keyAuthNormalDesc: 'Pengesahan kunci SSH didayakan',
                keyAuthRiskDesc: 'Pengesahan kunci tidak didayakan. Gunakan log masuk berasaskan kunci',
                websiteOverview: 'Gambaran Laman Web',
                primaryDomain: 'Domain Utama',
                expireTime: 'Masa Tamat Tempoh',
                domain: 'Domain',
                issuer: 'Penerbit',
                autoRenew: 'Perbaharui Automatik',
                websiteCount: 'Laman Web',
                httpsWebsite: 'Laman Web HTTPS',
                certCount: 'Sijil',
                websiteExpire: 'Tamat Tempoh Laman Web',
                database: 'Pangkalan Data',
                remoteDatabase: 'Pangkalan Data Jauh',
                address: 'Alamat',
                containerResourceUsage: 'Penggunaan Sumber Bekas',
                spaceUsage: 'Penggunaan Ruang',
                reclaimable: 'Boleh Dituntut Semula',
                containerReclaimable: 'Bekas Boleh Dituntut Semula',
                image: 'Imej',
                volume: 'Volum',
                buildCache: 'Cache Binaan',
                alert: 'Amaran',
                alertConfigured: 'Amaran Dikonfigurasi',
                alertOperations: 'Pemberitahuan Amaran',
                alertTaskCount: 'Tugas Amaran',
                enabledAlertTask: 'Tugas Didayakan',
                disabledAlertTask: 'Tugas Dilumpuhkan',
                alertChannels: 'Saluran Pemberitahuan',
                alertLogCount: 'Log Amaran',
                alertSuccessRate: 'Kadar Kejayaan Amaran',
                alertFailedLogs: 'Log Amaran Gagal',
                alertPendingLogs: 'Log Menunggu Sync',
                alertPending: 'Menunggu Sync',
                alertTaskStats: 'Statistik Tugas Amaran',
                alertTaskType: 'Jenis Amaran',
                alertLogStatusStats: 'Status Pelaksanaan Amaran',
                alertHealthNormal: 'Normal',
                alertHealthAttention: 'Perlu Perhatian',
                alertHealthRisk: 'Risiko Tinggi',
                alertHealthSummary: 'Status Kesihatan Amaran',
                alertHealthNormalReason: 'Tugas amaran, saluran pemberitahuan dan log pelaksanaan adalah sihat',
                alertNoChannelReason: 'Tiada saluran pemberitahuan didayakan',
                alertFailedLogReason: '{0} log amaran gagal ditemui',
                alertPendingReason: '{0} log amaran menunggu sync',
                alertDisabledTaskReason: '{0} tugas amaran dilumpuhkan',
                alertNoTaskReason: 'Tiada tugas amaran dikonfigurasi',
                goAlertConfig: 'Konfigurasi Amaran',
                goAlertLogs: 'Log Amaran',
                configureAlertChannel: 'Konfigurasi Saluran',
                createAlertTask: 'Cipta Tugas Amaran',
                viewAlertTasks: 'Lihat Tugas Amaran',
                viewFailedAlertLogs: 'Lihat Log Gagal',
                viewAlertLogs: 'Lihat Log Amaran',
                alertChannelSummary: '{0} / {1} saluran didayakan',
                alertTaskEnabledDesc: '{0} tugas didayakan',
                alertTaskSummary: '{0} didayakan, {1} dilumpuhkan',
                alertLogSummary: '{0} berjaya, {1} gagal',
                alertPendingDesc: '{0} log menunggu sync',
                alertLogSuccessDesc: 'Pemberitahuan selesai',
                alertLogFailedDesc: 'Semak konfigurasi saluran atau laluan penghantaran',
                alertLogPendingDesc: 'Luar talian atau laluan sync belum selesai',
                failedAlertLogs: 'Log Amaran Gagal',
                disabledAlertTasks: 'Tugas Amaran Dilumpuhkan',
                alertTableDisplayDesc: 'Memaparkan {0} daripada {1}',
                alertMsg: 'Mesej Amaran',
                alertMethod: 'Kaedah Amaran',
                alertRule: 'Peraturan Amaran',
                noAlertTask: 'Tiada tugas amaran',
                noFailedAlertLog: 'Tiada log amaran gagal',
                noDisabledAlertTask: 'Tiada tugas amaran dilumpuhkan',
                alertCronjobType: 'Tugas Berjadual: {0}',
                alertAllTargets: 'Semua Sasaran',
                alertAllDisks: 'Semua Cakera',
                alertAllCertificates: 'Semua Sijil',
                alertAllWebsites: 'Semua Laman Web',
                alertDiskRuleShort: '{0} melebihi {1}{2}, {3} kali sehari',
                alertAverageRuleShort: 'Purata {0} minit melebihi {1}%, {2} kali sehari',
                alertTimeRuleShort: 'Dicetuskan dalam {0} hari, dihantar {1} kali',
                alertSendCountRuleShort: 'Dihantar {0} kali sehari',
                alertConfigInvalid: 'Konfigurasi Tidak Sah',
                scoreCategoryAlert: 'Pemberitahuan Amaran',
                scoreAlertNoTask: 'Tiada tugas amaran dikonfigurasi',
                scoreAlertNoEnabledTask: 'Semua tugas amaran dilumpuhkan',
                scoreAlertDisabledTask: '{0} tugas amaran dilumpuhkan',
                scoreAlertNoChannel: 'Tiada saluran pemberitahuan amaran didayakan',
                scoreAlertFailedHigh: '{0} log kegagalan amaran ditemui',
                scoreAlertFailedMedium: '{0} log kegagalan amaran ditemui',
                scoreAlertPending: '{0} log amaran menunggu sync',
                statAlertDesc: '{0} tugas didayakan · {1} saluran',
                assetAlertDesc: '{0} log gagal, {1} log menunggu sync',
                failedExecutionRecords: 'Rekod Pelaksanaan Gagal',
                taskID: 'ID Tugas',
                executeTime: 'Masa Pelaksanaan',
                backupTasks: 'Tugas Sandaran',
                systemMetrics: 'Metrik Masa Jalan',
                cpu: 'CPU',
                thresholdPercent: 'Ambang {0}%',
                recent24HourPeakPercent: 'Puncak 24 jam terakhir {0}',
                loadAverage: 'Beban 1 / 5 / 15 minit: {0} / {1} / {2}',
                sourceMount: 'Titik pemasangan {0}',
                storageUsage: 'Penggunaan Storan',
                localDisk: 'Cakera Tempatan',
                highUsagePeriods: 'Tempoh Penggunaan Tinggi',
                timeRange: 'Julat Masa',
                threshold: 'Ambang',
                duration: 'Tempoh',
                peak: 'Puncak',
                scoring: 'Pemarkahan',
                counted: 'Dikira',
                notCounted: 'Tidak Dikira',
                dataSource: 'Sumber Data',
                noHighUsagePeriod: 'Tiada tempoh penggunaan tinggi',
                monitorDisabledOrNoData: 'Pemantauan hos dilumpuhkan atau tiada data pemantauan',
                systemHealthStatus: 'Status Risiko Operasi Hos 24 Jam Terakhir',
                mainReasons: 'Sebab Utama',
                viewHostMonitor: 'Lihat Pemantauan Hos',
                systemHealthAttentionDesc:
                    '{0} item risiko dikesan dalam 24 jam terakhir. Utamakan puncak sumber dan penggunaan cakera.',
                systemHealthNormalDesc: 'Metrik operasi hos adalah normal dalam 24 jam terakhir',
                monitorEnabled: 'Pemantauan Didayakan',
                cpuCoreUsage: '{0} / {1} teras',
                load1Minute: 'Beban 1 minit',
                diskSpaceUsage: 'Penggunaan Ruang Cakera',
                usedCapacity: 'Digunakan / Jumlah',
                fileSystem: 'Sistem Fail',
                resourceTrendSummary: 'Ringkasan Trend Sumber',
                last24Hours: '24 Jam Terakhir',
                granularityHour: 'Ketelitian: 1 jam',
                current: 'Semasa',
                average: 'Purata',
                totalItems: '{0} item',
                to: 'hingga',
                hoursShort: '{0} jam',
                minutesShort: '{0} minit',
                websiteStatus: 'Status Laman Web',
                websiteHealthStatus: 'Status Kesihatan Perlindungan Laman Web',
                websiteHealthNormalReason: 'Laman web, sijil, WAF dan pemantauan laman web adalah sihat',
                websiteHealthAttentionDesc:
                    '{0} item risiko dikesan. Selesaikan segera untuk melindungi keselamatan dan ketersediaan laman web.',
                websiteHealthNormalDesc: 'Metrik perlindungan laman web semasa adalah normal',
                handleSslRisk: 'Urusi Risiko Sijil',
                viewWaf: 'Lihat WAF',
                priority: 'Keutamaan',
                riskDescription: 'Penerangan Risiko',
                deductScore: 'Skor Dipotong',
                remaining: 'Baki',
                wafSourceIpTop: 'IP Sumber WAF TOP5',
                wafAffectedSiteTop: 'Tapak Terjejas TOP5',
                sslRisk: 'Risiko Sijil',
                sslExpiring: 'Sijil Hampir Tamat',
                includedInReport: 'Dimasukkan dalam laporan',
                needRenewal: 'Disarankan perbaharui',
                fromExpireInfo: 'Daripada maklumat tamat tempoh',
                runningWebsite: 'Laman Web Berjalan',
                fromWebsiteStatus: 'Daripada status senarai laman web',
                stoppedWebsite: 'Laman Web Berhenti',
                confirmStoppedWebsite: 'Sahkan sama ada seperti yang dijangka',
                expiringWebsite: 'Laman Web Hampir Tamat',
                expiringSoon: 'Akan Tamat Tempoh',
                none: 'Tiada',
                noSslRisk: 'Tiada sijil yang perlu diurus',
                websiteProtection: 'WAF dan Pemantauan Laman Web',
                websiteMonitor: 'Pemantauan Laman Web',
                waf: 'WAF',
                siteAvailability: 'Ketersediaan Permintaan',
                monitoredSites: 'Tapak Dipantau',
                requestCount: 'Jumlah Permintaan',
                abnormalSites: 'Tapak Tidak Normal',
                count5xxSource: 'Bilangan berdasarkan permintaan 5xx',
                wafIntercept: 'Sekatan WAF',
                websiteMonitorDisabledOrNoData: 'Pemantauan laman web dilumpuhkan atau tiada data pemantauan',
                wafDisabledOrNoData: 'WAF dilumpuhkan atau tiada data sekatan',
                serviceEnabledButAbnormal: 'Didayakan tetapi berada dalam keadaan tidak normal',
                noWafData: 'Tiada data sekatan WAF',
                sourceIP: 'IP Sumber',
                hitCount: 'Jumlah Hit',
                level: 'Tahap',
                attackType: 'Jenis Serangan',
                requestRatio: 'Nisbah Permintaan',
                installed: 'Dipasang',
                normalRunning: 'Berjalan Normal',
                failedStart: 'Gagal Mula',
                manualStopped: 'Dihentikan Secara Manual',
                failed: 'Gagal',
                success: 'Berjaya',
                canUpdate: 'Boleh Dinaik Taraf',
                listSeparator: ', ',
                containerCount: 'Bekas',
                stopped: 'Berhenti',
                abnormal: 'Tidak Normal',
                abnormalContainers: 'Bekas Tidak Normal',
                resourceUsage: 'Penggunaan Sumber',
                exposedContainerPorts: 'Port Terdedah',
                portMapping: 'Pemetaan Port',
                risk: 'Risiko',
                noAbnormalContainer: 'Tiada bekas tidak normal',
                noExposedContainer: 'Tiada port terdedah dikesan',
                publicExpose: 'Pendedahan Awam',
                privateExpose: 'Pemetaan Persendirian',
                resourceHealth: 'Kesihatan Sumber Runtime',
                checkTime: 'Masa Semakan',
                resourceHealthNormalDesc: 'Aplikasi, pangkalan data dan bekas berada dalam keadaan sihat',
                resourceHealthAttentionDesc: '{0} item perhatian dikesan. Utamakan sumber terhenti dan port awam.',
                resourceHealthRiskDesc:
                    '{0} item berisiko tinggi dikesan. Utamakan bekas tidak normal atau aplikasi gagal mula.',
                resourceThresholdContainers: 'Bekas melebihi ambang CPU / memori',
                noThresholdExceededContainer: 'Tiada bekas melebihi ambang',
                triggerMetric: 'Metrik dicetuskan',
                resourceReasonAppFailed: '{0} aplikasi gagal dimulakan',
                resourceReasonAppStopped: '{0} aplikasi terhenti',
                resourceReasonContainerAbnormal: '{0} bekas tidak normal',
                resourceReasonContainerStopped: '{0} bekas terhenti',
                resourceReasonPublicPorts: '{0} port terdedah awam',
                resourceReasonNormal: 'Aplikasi, pangkalan data dan bekas sihat',
                viewAbnormalContainers: 'Lihat Bekas Tidak Normal',
                viewExposedPorts: 'Lihat Port Terdedah',
                viewAppResources: 'Lihat Sumber Aplikasi',
                viewRuntimeResources: 'Lihat Sumber Runtime',
                viewContainerResources: 'Lihat Sumber Bekas',
                configuredServices: 'Perkhidmatan Dikonfigurasi',
                publicPrivatePorts: '{0} awam / {1} pemetaan dalaman',
                currentDisplayTotal: 'Memaparkan {0} daripada {1}',
                reclaimableSpace: 'Ruang Boleh Dituntut Semula',
                estimatedReclaimable: 'Anggaran Boleh Dituntut',
                unusedImageSpace: 'Ruang imej tidak digunakan',
                stoppedContainerSpace: 'Ruang bekas terhenti',
                unusedVolumeSpace: 'Ruang volume tidak digunakan',
                buildCacheSpace: 'Ruang cache binaan Docker',
                executionRecords: 'Rekod Pelaksanaan',
                successRate: 'Kadar Kejayaan',
                failedJobs: 'Tugas Gagal',
                recentRecoveryPoint: 'Titik Pemulihan Terkini',
                disabledCronjobTasks: 'Tugas berjadual yang dilumpuhkan',
                remoteCoverage: 'Liputan Jauh',
                recent7Days: '7 Hari Terakhir',
                taskTypeStats: 'Statistik Jenis Tugas',
                total: 'Jumlah',
                taskTypeDesc: '{0} didayakan, {1} dilumpuhkan',
                failedOrAttentionTasks: 'Tugas Gagal atau Perlu Perhatian',
                execution: 'Pelaksanaan',
                latestExecution: 'Pelaksanaan Terkini',
                remoteBackup: 'Sandaran Jauh',
                localOnly: 'Tempatan Sahaja',
                covered: 'Diliputi',
                noAttentionCronjob: 'Tiada tugas berjadual gagal atau perlu perhatian',
                cronjobHealth: 'Kesihatan Tugas Berjadual',
                cronjobHealthNormalDesc: 'Pelaksanaan tugas dan liputan sandaran berada dalam keadaan sihat',
                cronjobHealthAttentionDesc: '{0} item risiko dikesan. Utamakan tugas dilumpuhkan dan liputan sandaran.',
                cronjobHealthRiskDesc: '{0} item risiko dikesan. Utamakan tugas gagal dan dilumpuhkan.',
                cronjobReasonFailed: '{0} rekod gagal',
                cronjobReasonDisabled: '{0} tugas dilumpuhkan',
                cronjobReasonLocalOnlyBackup: '{0} tugas sandaran setempat sahaja',
                cronjobReasonNormal: 'Pelaksanaan tugas dan liputan sandaran normal',
                riskLow: 'Risiko Rendah',
                viewFailedRecords: 'Lihat Tugas Gagal',
                viewCronjobTasks: 'Lihat Tugas Berjadual',
                checkBackupTasks: 'Semak Tugas Sandaran',
                generationRule: 'Peraturan Penjanaan',
                scheduleDaily: 'Harian',
                scheduleDailyDesc: 'Jana laporan 24 jam terakhir pada 09:00 setiap hari',
                scheduleWeekly: 'Mingguan',
                scheduleWeeklyDesc: 'Jana laporan 7 hari terakhir pada 09:00 setiap Isnin',
                scheduleMonthly: 'Bulanan',
                scheduleMonthlyDesc: 'Jana laporan bulan sebelumnya pada 09:00 setiap 1hb',
                scheduleCurrentDaily: 'Setiap hari pada 09:00, jana laporan 24 jam terakhir · Seterusnya {0}',
                scheduleCurrentWeekly: 'Setiap Isnin pada 09:00, jana laporan 7 hari terakhir · Seterusnya {0}',
                scheduleCurrentMonthly: 'Pada 1hb pada 09:00, jana laporan bulan sebelumnya · Seterusnya {0}',
                notificationMethod: 'Kaedah Pemberitahuan',
                channel: 'Saluran',
                receiver: 'Penerima',
                systemThreshold: 'Ambang Sistem',
                metric: 'Metrik',
                currentRule: 'Peraturan Semasa',
                hostMonitor: 'Pemantauan Hos',
                monitorInterval: 'Selang Pemantauan',
                exportSettings: 'Tetapan Eksport',
                lastExportReport: 'Hasil Janaan Terkini',
                noLastExportReport: 'Tiada rekod laporan eksport',
                lastExportStatus: 'Status Eksport Terakhir',
                exportFile: 'Fail Eksport',
                generateTime: 'Masa Penjanaan',
                fileSize: 'Saiz Fail',
                viewExportHistory: 'Lihat Sejarah Eksport',
                defaultFormat: 'Format Lalai',
                savePath: 'Direktori Simpan',
                savePathRequired: 'Tetapkan direktori simpan laporan',
                autoExport: 'Dayakan Eksport Automatik',
                autoExportDesc: 'Jana Laporan Operasi secara automatik setiap hari pada 09:00 apabila didayakan',
                autoExportEnabled: 'Eksport automatik didayakan',
                autoExportDisabled: 'Eksport automatik dilumpuhkan',
                readOnlyPermissionTip:
                    'Akaun semasa hanya boleh melihat tetapan Laporan Operasi. Hubungi pentadbir untuk membuat perubahan.',
                refreshing: 'Menyegarkan',
                exporting: 'Mengeksport',
                exportFailed: 'Gagal mengeksport laporan',
                generating: 'Menjana',
                saved: 'Disimpan',
                saveFailed: 'Gagal menyimpan tetapan',
                generateNow: 'Jana Sekarang',
                generateSuccess: 'Fail laporan dijana: {0}',
                generateFailed: 'Gagal menjana laporan',
                enabledStatus: 'Didayakan',
                disabledStatus: 'Dilumpuhkan',
                thresholdRule: 'Ambang {0}, dicetuskan selepas {1} kali berturut-turut',
                hours: '{0} jam',
                minutes: '{0} minit',
                seconds: '{0} saat',
                totalExports: 'Jumlah Eksport',
                successExports: 'Eksport Berjaya',
                failedExports: 'Eksport Gagal',
                reportName: 'Nama Laporan',
                exportFormat: 'Format Eksport',
                operator: 'Pengendali',
                triggerType: 'Pencetus',
                filePath: 'Laluan Fail',
                manualExport: 'Manual',
                scheduledExport: 'Berjadual',
                exportResult: 'Hasil Eksport',
                exportDetail: 'Butiran Eksport',
            },
        },
        user: {
            user: 'Pengguna',
            userInfo: 'Maklumat Pengguna',
            userManage: 'Pengurusan Pengguna',
            superAdmin: 'Pentadbir Super',
            superAdminDesc:
                'Mempunyai kebenaran pengurusan sistem penuh dan boleh mengurus semua sumber serta konfigurasi.',
            nodeAdmin: 'Pentadbir Nod',
            nodeAdminDesc:
                'Mempunyai kebenaran pengurusan untuk nod yang ditentukan dan boleh mengurus sumber serta konfigurasi dalam nod tersebut.',
            readOnly: 'Baca Sahaja',
            readOnlyDesc:
                'Mempunyai semua keizinan baca sahaja sistem dan boleh melihat semua sumber serta konfigurasi.',
            bindNode: 'Ikat Nod',
            boundUsers: 'Pengguna Terikat',
            role: 'Peranan',
            roleName: 'Nama',
            permission: 'Kebenaran',
            permissionDuplicate: 'Setiap nod hanya boleh diberikan satu peranan',
            nodeAdminMasterConfirm:
                'Kebenaran Pentadbir Nod pada nod utama adalah tinggi. Tetapkannya dengan berhati-hati mengikut keperluan pengurusan sebenar.',
            permissionLinkageTip:
                'Kebenaran berkaitan akan dipilih automatik jika ada kebergantungan; selepas dialih keluar manual, sesetengah ciri mungkin memaparkan "Pengguna semasa tiada kebenaran".',
            allViewPermissionHelper: 'Memberikan semua kebenaran paparan untuk AI Gateway.',
            apiKeyViewPermissionHelper: 'Hanya membenarkan paparan API Key AI Gateway.',
            masterOnlyPermission: 'Kebenaran nod utama',
            masterOnlyPermissionHelper: 'Kebenaran ini hanya berkuat kuasa pada nod utama.',
            view: 'Lihat',
            manage: 'Urus',
            authManage: 'Pengurusan pengesahan',
            auth: {
                providerNavigation: 'Pembekal pengesahan',
                defaultNode: 'Nod lalai',
                defaultNodePlaceholder: 'Pilih nod',
                defaultNodeHelper: 'Untuk pengguna baharu sahaja.',
                defaultNodeRequired: 'Pilih nod lalai yang sah.',
                nodesLoadFailed: 'Gagal memuatkan nod. Cuba lagi sebelum memilih nod lalai.',
                nodeHandling: 'Pengendalian nod',
                assignDefaultNode: 'Tetapkan nod lalai: {node}',
                keepExistingNode: 'Kekalkan kebenaran nod sedia ada',
                providers: {
                    ldap: 'AD/LDAP',
                    passkey: 'Passkey',
                    radius: 'Radius',
                    oidc: 'OIDC',
                    saml2: 'SAML2',
                    cas: 'CAS',
                    oauth2: 'OAuth2',
                    dingtalk: 'DingTalk',
                    feishu: 'Feishu',
                    wecom: 'WeCom',
                },
                providerDescriptions: {
                    ldap: 'Serasi dengan Active Directory, OpenLDAP dan perkhidmatan LDAP yang lain',
                    passkey: 'Gunakan bukti kelayakan peranti untuk log masuk tanpa kata laluan',
                    radius: 'Sahkan akses rangkaian melalui perkhidmatan Radius',
                    oidc: 'Sambungkan log masuk tunggal perusahaan dengan OpenID Connect',
                    saml2: 'Gunakan SAML2 untuk persekutuan identiti perusahaan',
                    cas: 'Sambungkan perkhidmatan pengesahan berpusat untuk log masuk tunggal',
                    oauth2: 'Sambungkan perkhidmatan identiti OAuth2 yang serasi',
                    dingtalk: 'Gunakan identiti organisasi DingTalk dan log masuk QR',
                    feishu: 'Gunakan identiti organisasi Feishu dan penyegerakan akaun',
                    wecom: 'Sahkan dengan identiti ahli WeCom',
                },
                planned: 'Terancang',
                plannedTitle: 'Tetapan pengesahan {0}',
                plannedDesc: 'Pembekal pengesahan ini telah dirancang dan belum tersedia lagi.',
                oidc: {
                    accessMode: 'Mod sambungan',
                    accessModeDesc: 'Gunakan Discovery standard setiap kali pembekal identiti menyokongnya.',
                    actionCreate: 'Buat pengguna',
                    actionKeepName: 'Kekalkan nama pengguna semasa',
                    actionPending: 'Menunggu keputusan',
                    actionReject: 'Tolak log masuk',
                    actionUpdate: 'Kemas kini maklumat identiti',
                    advanced: 'Tetapan lanjutan',
                    advancedDesc: 'Kekalkan lalai selamat melainkan pembekal memerlukan pilihan keserasian.',
                    assignDefaultRole: 'Berikan peranan lalai: {role}',
                    authorizationEndpoint: 'Authorization Endpoint',
                    authorizationEndpointInvalid: 'Masukkan Authorization Endpoint yang sah.',
                    authorizationFlow: 'Aliran kebenaran',
                    automatic: 'Automatik',
                    automaticPolicy: 'Dasar pengendalian automatik',
                    automaticPolicyDesc: 'Peraturan ini dikuatkuasakan oleh backend, bukan melalui suis pentadbir.',
                    basic: 'Tetapan asas',
                    basicDesc: 'Pilih mod pembekal, kemudian konfigurasikan klien dan panggil balik.',
                    browserTest: 'Ujian log masuk pelayar',
                    browserTestConflict: 'Identiti disahkan, tetapi nama pengguna bercanggah',
                    browserTestConflictHelper:
                        'Nama pengguna yang dipetakan adalah milik identiti lain dan tidak akan dituntut.',
                    browserTestExpired: 'Ujian penyemak imbas tamat tempoh',
                    browserTestExpiredHelper:
                        'Mulakan ujian penyemak imbas baharu dan lengkapkan kebenaran sebelum tamat tempoh.',
                    browserTestFailed: 'Ujian penyemak imbas gagal',
                    browserTestFailedHelper:
                        'Pratonton identiti tidak dapat diselesaikan. Semak ralat backend yang telah diterjemahkan.',
                    browserTestIsolation:
                        'Ini melakukan perjalanan pergi balik kebenaran sebenar tetapi tidak mencipta atau mengemas kini pengguna, menetapkan peranan atau mencipta sesi panel yang telah disahkan.',
                    browserTestPopupBlocked:
                        'Benarkan pop timbul untuk tapak ini, kemudian mulakan ujian penyemak imbas semula.',
                    browserTestPopupClosed: 'Tetingkap kebenaran ditutup sebelum ujian selesai.',
                    browserTestSuccess: 'Pengesahan Provider berjaya',
                    browserTestSuccessHelper: 'Pemetaan identiti telah dipratonton tanpa menukar pengguna atau sesi.',
                    browserTestTitle: 'Log masuk ujian pelayar OIDC',
                    browserTestWaiting: 'Menunggu kebenaran Provider',
                    browserTestWaitingHelper:
                        'Lengkapkan log masuk dalam tetingkap penyemak imbas baharu. Halaman ini akan dikemas kini secara automatik.',
                    callbackCopied: 'OIDC panggil balik URL disalin.',
                    callbackURL: 'Panggil balik URL',
                    callbackURLHelper:
                        'Tambahkan URL ini pada senarai URL panggil balik yang dibenarkan untuk klien dalam penyedia identiti.',
                    cancelClearSecret: 'Batalkan pembersihan',
                    clearSecret: 'Kosongkan Client Secret',
                    clearSecretConfirm: 'Client Secret akan dialih keluar hanya selepas anda menyimpan. teruskan?',
                    clientAuthMethod: 'Kaedah pengesahan pelanggan',
                    clientAuthMethodHelper:
                        'Pilih kaedah pengesahan yang dikonfigurasi untuk klien ini dalam penyedia identiti.',
                    clientAuthMethodRequired: 'Pilih kaedah pengesahan pelanggan.',
                    clientID: 'Client ID',
                    clientIDRequired: 'Masukkan Client ID.',
                    clientSecret: 'Client Secret',
                    clockSkew: 'Toleransi masa token',
                    clockSkewHelper:
                        'Membenarkan sedikit perbezaan masa antara penyedia identiti dan 1Panel. Kekalkan nilai lalai 60 saat.',
                    clockSkewRequired: 'Masukkan toleransi masa token.',
                    compatibilityMode: 'Mod keserasian',
                    compatibilityModeHelper:
                        'Gunakan hanya untuk Discovery yang tidak lengkap atau titik akhir yang ditulis semula. Pengesahan teras OIDC kekal didayakan.',
                    configurationFailedHelper:
                        'Ujian itu gagal. Halaman hanya memaparkan ralat backend yang telah diterjemahkan.',
                    configurationFailedTag: 'Ujian gagal',
                    configurationHighRiskPassed:
                        'Konfigurasi diluluskan, tetapi mengandungi pilihan keserasian berisiko tinggi.',
                    configurationHighRiskTag: 'Konfigurasi berisiko tinggi diluluskan',
                    configurationNotTested: 'Konfigurasi semasa belum diuji.',
                    configurationNotTestedTag: 'Tidak diuji',
                    configurationPassed: 'Konfigurasi semasa melepasi semakan keselamatan dan keupayaan.',
                    configurationPassedTag: 'Ujian lulus',
                    configurationStaleHelper: 'Konfigurasi telah diubah. Uji semula sebelum menyimpan.',
                    configurationStaleTag: 'Keputusan tamat tempoh',
                    configurationTestMeta:
                        'Diuji pada {time}; selesai dalam {duration} ms. Respons mentah Provider tidak disimpan.',
                    configurationTestResult: 'Keputusan ujian konfigurasi',
                    configurationTestResultDesc:
                        'Ini menyemak Discovery dan keupayaan sahaja; ia tidak menukar kod kebenaran atau membuktikan Client Secret. Gunakan log masuk ujian penyemak imbas untuk pengesahan hujung ke hujung.',
                    configurationTestSuccess: 'Ujian konfigurasi OIDC berjaya.',
                    configurationTesting: 'Menguji konfigurasi OIDC semasa…',
                    configurationTestingTag: 'Menguji',
                    configureSecret: 'Konfigurasikan rahsia',
                    conflictExistingRename: 'subject terikat mengembalikan name baharu yang telah diduduki',
                    conflictExistingRenameResult:
                        'Simpan User.Name sedia ada dan benarkan pengguna terikat untuk log masuk',
                    conflictLDAP: 'Pengguna LDAP',
                    conflictLocal: 'Pengguna tempatan',
                    conflictNewAvailable: 'subject baharu dan name yang dipetakan tersedia',
                    conflictNewAvailableResult: 'Buat pengguna perusahaan dan tetapkan peranan lalai',
                    conflictNone: 'Tiada konflik',
                    conflictOIDC: 'Satu lagi identiti OIDC',
                    conflictOccupied: 'name yang dipetakan adalah milik tempatan, LDAP atau identiti OIDC yang lain',
                    conflictOccupiedResult:
                        'Tolak identiti baharu; jangan sekali-kali mengikat atau bergabung secara automatik',
                    conflictType: 'Jenis konflik',
                    connectionSecurity: 'Keselamatan sambungan',
                    connectionSecurityDesc: 'Dasar TLS digunakan untuk permintaan Discovery, Token, JWKS dan UserInfo.',
                    connectionTest: 'Ujian sambungan dan konfigurasi',
                    connectionTestCompatibilityDesc: 'Sahkan titik akhir tersuai dan dasar keselamatan protokol.',
                    connectionTestStandardDesc: 'Titik akhir dan keupayaan ditemui secara automatik daripada Issuer.',
                    connectionTestTab: 'Ujian sambungan',
                    customCA: 'CA tersuai',
                    customCAHelper: 'Terpakai hanya pada sumber pengesahan ini dan tidak pernah ditulis pada log.',
                    customCARequired: 'Sediakan sijil tersuai CA.',
                    defaultRole: 'Peranan lalai',
                    defaultRoleHelper:
                        'Ditugaskan hanya apabila pengguna pertama kali dicipta; log masuk seterusnya tidak mengubah peranan.',
                    defaultRolePlaceholder: 'Pilih peranan',
                    defaultRoleRequired: 'Pilih peranan lalai yang sah.',
                    disableAfterSave: 'OIDC akan dilumpuhkan selepas disimpan.',
                    disableConfirm:
                        'Melumpuhkan OIDC serta-merta membatalkan akses untuk pengguna sumber ini. teruskan?',
                    disableDiscardConfirm:
                        'Melumpuhkan OIDC ialah tindakan kecemasan: ia hanya menutup entri log masuk dan serta-merta membatalkan akses untuk pengguna sumber ini. Perubahan lain yang belum disimpan pada halaman ini, termasuk perubahan Client Secret, akan dibuang. teruskan?',
                    disableTitle: 'Lumpuhkan OIDC',
                    disabled: 'Dilumpuhkan',
                    discoveryAllowlist: 'Discovery ∩ senarai kebenaran keselamatan',
                    enable: 'Dayakan',
                    enableAfterSave: 'OIDC akan didayakan selepas simpanan berjaya.',
                    enabled: 'Didayakan',
                    endSessionEndpoint: 'End Session Endpoint',
                    endSessionEndpointHelper:
                        'Disimpan untuk kegunaan masa hadapan; Log keluar yang dimulakan Provider tidak disertakan dalam keluaran ini.',
                    endSessionEndpointInvalid: 'Masukkan End Session Endpoint yang sah.',
                    endpointDiscoveryPlaceholder: 'Dipaparkan selepas ujian sambungan',
                    firstLogin: 'Log masuk pertama',
                    firstLoginPolicy:
                        'Buat pengguna perusahaan tempatan dan tetapkan peranan lalai yang dikonfigurasikan.',
                    fixedAuthorizationCode: 'Authorization Code Flow',
                    fixedNoTokenPersistence: 'Tokens, Claims dan verifier tidak pernah berterusan',
                    fixedSecurityPolicy: 'Sentiasa dikuatkuasakan; tiada konfigurasi diperlukan',
                    fixedStateNonce: 'state dan nonce sekali',
                    fixedTokenValidation: 'Tandatangan ID Token dan pengesahan Claims',
                    highRiskSaveConfirm:
                        'Konfigurasi yang didayakan ini mengandungi pilihan keserasian berisiko tinggi. Sahkan bahawa persekitaran terpencil memerlukannya.',
                    highRiskTitle: 'Konfigurasi OIDC berisiko tinggi',
                    hs256Compatibility: 'HS256 (keserasian)',
                    hs256KeyHelper:
                        'HS256 sentiasa menggunakan Client Secret sumber ini dan tidak menerima kunci tandatangan yang berasingan.',
                    hs256Warning:
                        'HS256 menggunakan rahsia simetri yang dikongsi untuk tandatangan ID Token. Gunakannya hanya apabila Provider tidak boleh menggunakan algoritma asimetri.',
                    identityBindingPolicy:
                        'Identiti ditetapkan kepada AuthSourceID + issuer + subject. Nama pengguna yang sepadan tidak pernah menuntut akaun lain.',
                    identityMissing: 'Identiti tidak aktif',
                    issuer: 'Issuer URL',
                    issuerHelper:
                        'Nilai iss ID Token dan Discovery issuer mesti sepadan dengan nilai ini dengan tepat.',
                    issuerInvalid: 'Masukkan HTTP atau HTTPS Issuer URL yang sah tanpa pertanyaan atau serpihan.',
                    issuerRequired: 'Masukkan Issuer URL.',
                    jwksRotation: 'Putaran JWKS automatik',
                    jwksURI: 'JWKS URI',
                    jwksURIHelper: 'Diperlukan untuk tandatangan asimetri apabila sumber utama ialah JWKS.',
                    jwksURIInvalid: 'Masukkan JWKS URI yang sah untuk sumber kunci tandatangan yang dipilih.',
                    keepExistingRole: 'Kekalkan peranan sedia ada dan kebenaran setempat',
                    localSecurityData: 'Data keselamatan tempatan',
                    localSecurityDataPolicy:
                        'Jangan sekali-kali menulis ganti peranan, MFA, API Keys, Passkeys atau kebenaran setempat.',
                    localCredentialsManaged:
                        'Nama pengguna dan kata laluan tempatan diuruskan oleh OIDC dan tidak boleh diedit di sini. Peranan, kebenaran, MFA, API Keys dan Passkeys kekal setempat.',
                    localUserFields: 'Medan pengguna tempatan',
                    localUserFieldsDesc:
                        'Keluaran pertama hanya memetakan User.Name dan tidak menggunakan ungkapan pemetaan JSON.',
                    loginWith: 'Log masuk dengan {provider}',
                    manualEndpoints: 'Titik akhir tersuai',
                    manualEndpointsDesc:
                        'Gunakan hanya apabila Discovery tidak lengkap atau get laluan huluan menulis semula titik akhir.',
                    mappingResult: 'Hasil pemetaan',
                    mode: 'Mod sambungan',
                    modeRequired: 'Pilih mod sambungan.',
                    nameClaim: 'Claim nama pengguna',
                    nameClaimHelper: 'Masukkan medan yang mengandungi nama pengguna, seperti preferred_username.',
                    nameClaimRequired: 'Masukkan Claim nama pengguna.',
                    nameConflict: 'Nama dasar konflik',
                    panelURL: '1Panel awam URL',
                    panelURLHTTPWarning:
                        'HTTP tidak melindungi respons kebenaran. Gunakannya hanya dalam persekitaran peribadi terpencil yang diterima oleh Provider.',
                    panelURLHelper:
                        'Masukkan alamat yang digunakan untuk mengakses 1Panel. Alamat ini digunakan untuk menjana URL panggil balik.',
                    panelURLInvalid: 'Masukkan asal yang mengandungi hanya skema, hos dan port pilihan.',
                    panelURLRequired: 'Masukkan 1Panel awam URL.',
                    pkceDisabled: 'Dilumpuhkan (keserasian sahaja)',
                    pkceDisabledWarning:
                        'Melumpuhkan PKCE mengurangkan perlindungan terhadap pemintasan kod kebenaran.',
                    pkceHelper: 'Lebih suka S256. Kaedah cabaran plain tidak pernah ditawarkan.',
                    pkceS256: 'S256 (disyorkan)',
                    plannedHandling: 'Pengendalian terancang',
                    privateNetworkIdP: 'IdP rangkaian persendirian',
                    privateNetworkIdPHelper:
                        'Membenarkan alamat peribadi secara eksplisit; metadata, gelung balik, pautan setempat, ubah hala dan penjilidan semula DNS kekal disekat.',
                    privateNetworkWarning: 'Akses rangkaian peribadi didayakan untuk sumber pengesahan ini.',
                    protocolCompatibility: 'Keserasian protokol',
                    protocolCompatibilityDesc: 'Pengesahan tandatangan ID Token tidak boleh dilumpuhkan.',
                    providerAndClient: 'Provider dan pelanggan',
                    providerAndClientDesc:
                        'Client Secret hanya boleh diganti atau dibersihkan dan tidak pernah dikembalikan oleh halaman.',
                    providerCapabilities: 'Keupayaan Provider',
                    recentTestSuccess: 'Ujian terakhir berjaya: {0}',
                    recommended: 'Disyorkan',
                    rejectPlain: 'plain ditolak',
                    replaceSecret: 'Gantikan rahsia',
                    requestAndClaims: 'Permintaan dan sifat',
                    requestAndClaimsDesc:
                        'Konfigurasikan skop kebenaran, pelengkap maklumat pengguna dan parameter permintaan.',
                    requestTimeout: 'Tamat masa permintaan',
                    requestTimeoutRequired: 'Masukkan tamat masa permintaan.',
                    restore: 'Pulihkan',
                    restored: 'Tetapan OIDC yang terakhir disimpan telah dipulihkan.',
                    result: 'Hasilnya',
                    rolesLoadFailed: 'Peranan tidak dapat dimuatkan. Cuba semula sebelum memilih peranan lalai.',
                    roleHandling: 'Pengendalian peranan',
                    scenario: 'Senario',
                    scopes: 'Skop kebenaran',
                    scopesHelper: 'Mesti mengandungi openid. Pisahkan berbilang skop dengan ruang.',
                    scopesRequired: 'Scopes mesti termasuk openid.',
                    seconds: 'detik',
                    secretClearHelper:
                        'Selepas mengosongkan, Client Secret baharu diperlukan sebelum OIDC boleh didayakan semula.',
                    secretConfigured: 'Dikonfigurasikan',
                    secretNotConfigured: 'Tidak dikonfigurasikan',
                    secretPlaceholder: 'Masukkan Client Secret baharu',
                    secretReplaceHelper:
                        'Rahsia baharu akan menggantikan nilai yang disimpan apabila anda menyimpan. Kemas kini juga Client Secret pada Provider OIDC.',
                    secretRequiredHelper: 'Konfigurasikan Client Secret sebelum mendayakan OIDC.',
                    secretRequiredToEnable: 'Konfigurasikan Client Secret sebelum mendayakan OIDC.',
                    secretSavedHelper:
                        'Disimpan dalam bentuk disulitkan. Biarkan kosong untuk mengekalkan rahsia klien semasa.',
                    secretWaiting: 'Menunggu input',
                    secretWillClear: 'Akan dibersihkan',
                    secretWillReplace: 'Akan diganti',
                    signingAlgorithm: 'Algoritma tandatangan ID Token',
                    signingAlgorithmHelper: 'Hanya algoritma dalam senarai dibenarkan keselamatan backend tersedia.',
                    signingKey: 'Kunci tandatangan',
                    signingKeyClientSecret: 'Client Secret (HS256 sahaja)',
                    signingKeyJWKS: 'JWKS URI dengan putaran automatik',
                    signingKeySource: 'Sumber kunci tandatangan',
                    signingKeySourceHelper: 'Lebih suka JWKS. Kunci awam statik tidak boleh berputar secara automatik.',
                    signingKeyStatic: 'Kunci awam JWK atau PEM statik',
                    standardDiscovery: 'Discovery OIDC standard',
                    standardDiscoveryDesc:
                        '1Panel menemui titik akhir dan keupayaan dan tidak menyimpan dokumen mentah.',
                    standardMode: 'Mod standard',
                    standardModeHelper:
                        'Temui titik akhir, keupayaan menandatangani dan sokongan PKCE daripada Issuer.',
                    standardProtocolPolicy: 'Dasar protokol standard',
                    standardProtocolPolicyDesc:
                        'Keupayaan menandatangani dirundingkan secara automatik; tiada kunci tandatangan dimasukkan di sini.',
                    staticSigningKey: 'Kunci awam tandatangan statik',
                    staticSigningKeyHelper:
                        'Hanya bahan kunci awam diterima. Putar secara manual apabila kunci Provider berubah.',
                    staticSigningKeyPlaceholder: 'Tampal kunci awam JWK, JWKS JSON atau PEM',
                    staticSigningKeyRequired: 'Sediakan kunci awam tandatangan statik.',
                    staticSigningKeyWarning:
                        'Kunci tandatangan statik tidak boleh berputar secara automatik; kemas kini sebelum Provider memutar kunci.',
                    settingLoadFailed: 'Tetapan OIDC tidak dapat dimuatkan',
                    settingLoadFailedHelper:
                        'Borang dikunci untuk mengelakkan menyimpan konfigurasi lalai kosong pada tetapan semasa. Cuba semula selepas sambungan pulih.',
                    subsequentLogin: 'Log masuk seterusnya',
                    subsequentLoginPolicy:
                        'Cari pengikatan dengan subject dan kemas kini hanya User.Name apabila nama baharu tersedia.',
                    testBeforeBrowserTest: 'Uji konfigurasi semasa sebelum memulakan ujian log masuk penyemak imbas.',
                    testBeforeEnable: 'Uji konfigurasi semasa sebelum menyimpan perubahan konfigurasi.',
                    testConfiguration: 'Uji konfigurasi',
                    testDiscovery: 'Uji Discovery',
                    tlsCustomCA: 'HTTPS · Sijil CA tersuai',
                    tlsPrivateHTTP: 'HTTP · Rangkaian peribadi sahaja (berbahaya)',
                    tlsPrivateHTTPWarning:
                        'HTTP tidak menyediakan penyulitan pengangkutan dan terhad kepada sasaran peribadi yang dibenarkan secara eksplisit.',
                    tlsSkipVerify: 'HTTPS · Langkau pengesahan sijil (berbahaya)',
                    tlsSystem: 'HTTPS · Pengesahan sijil sistem (disyorkan)',
                    tokenEndpoint: 'Token Endpoint',
                    tokenEndpointInvalid: 'Masukkan Token Endpoint yang sah.',
                    transportSecurity: 'Keselamatan pengangkutan',
                    transportSecurityHelper:
                        'Lebih suka HTTPS. HTTP persendirian juga memerlukan akses private-network yang jelas.',
                    unsavedChanges: 'Terdapat perubahan OIDC yang belum disimpan.',
                    usedClaim: 'Claim digunakan',
                    userInfoEndpoint: 'UserInfo Endpoint',
                    userInfoEndpointHelper:
                        'Apabila medan nama pengguna tiada, sistem melengkapkannya daripada endpoint ini. Biarkan kosong untuk tidak melengkapkannya.',
                    userInfoEndpointInvalid: 'Masukkan UserInfo Endpoint yang sah.',
                    userMapping: 'Tetapan pengguna',
                    userMappingDesc:
                        'Konfigurasikan pemetaan nama pengguna OIDC serta nod dan peranan lalai untuk mencipta pengguna pada log masuk pertama.',
                },
                saml2: {
                    actionCreate: 'Buat pengguna',
                    actionPending: 'Menunggu keputusan',
                    actionReject: 'Tolak log masuk',
                    actionReuse: 'Gunakan pengguna terikat',
                    assignDefaultRole: 'Berikan peranan lalai: {role}',
                    basic: 'Tetapan asas',
                    basicDesc: 'Konfigurasikan pilihan umum yang diperlukan oleh kebanyakan penyedia SAML2 standard.',
                    browserTest: 'Uji log masuk',
                    browserTestConflict: 'Identiti disahkan, tetapi nama pengguna bercanggah',
                    browserTestConflictHelper:
                        'Nama pengguna yang dipetakan adalah milik identiti lain dan tidak akan dituntut.',
                    browserTestExpired: 'Ujian penyemak imbas tamat tempoh',
                    browserTestExpiredHelper:
                        'Mulakan ujian penyemak imbas baharu dan lengkapkan kebenaran sebelum tamat tempoh.',
                    browserTestFailed: 'Ujian penyemak imbas gagal',
                    browserTestFailedHelper:
                        'Pratonton identiti tidak dapat diselesaikan. Semak ralat backend yang telah diterjemahkan.',
                    browserTestIsolation:
                        'Ini melakukan perjalanan pergi balik kebenaran sebenar tetapi tidak mencipta atau mengemas kini pengguna, menetapkan peranan atau mencipta sesi panel yang telah disahkan.',
                    browserTestPopupBlocked:
                        'Benarkan pop timbul untuk tapak ini, kemudian mulakan ujian penyemak imbas semula.',
                    browserTestPopupClosed: 'Tetingkap kebenaran ditutup sebelum ujian selesai.',
                    browserTestSuccess: 'Pengesahan Provider berjaya',
                    browserTestSuccessHelper: 'Pemetaan identiti telah dipratonton tanpa menukar pengguna atau sesi.',
                    browserTestTitle: 'Log masuk ujian pelayar SAML2',
                    browserTestWaiting: 'Menunggu kebenaran Provider',
                    browserTestWaitingHelper:
                        'Lengkapkan log masuk dalam tetingkap penyemak imbas baharu. Halaman ini akan dikemas kini secara automatik.',
                    certificateFileInvalid: 'Pilih fail sijil PEM, CRT atau CER yang sah.',
                    configured: 'Dikonfigurasi',
                    configurationFailedHelper:
                        'Ujian itu gagal. Halaman hanya memaparkan ralat backend yang telah diterjemahkan.',
                    configurationNotTested: 'Konfigurasi semasa belum diuji.',
                    configurationPassed: 'Konfigurasi semasa melepasi semakan keselamatan dan keupayaan.',
                    configurationStaleHelper: 'Tetapan sensitif pengesahan ditukar. Uji draf semasa sekali lagi.',
                    configurationTestSuccess: 'Ujian konfigurasi SAML2 berjaya.',
                    configurationTesting: 'Menguji konfigurasi SAML2 semasa…',
                    conflictLDAP: 'Pengguna LDAP',
                    conflictLocal: 'Pengguna tempatan',
                    conflictNone: 'Tiada konflik',
                    conflictOIDC: 'Satu lagi identiti OIDC',
                    conflictSAML2: 'Identiti SAML2 lain',
                    conflictType: 'Jenis konflik',
                    credentialFileReadFailed: 'Fail kelayakan tidak dapat dibaca.',
                    credentialFileTooLarge: 'Fail kelayakan tidak boleh melebihi 256 KiB.',
                    credentialsRequired: 'Konfigurasikan kunci peribadi dan sijil SP.',
                    defaultRole: 'Peranan pengguna baharu',
                    defaultRoleHelper:
                        'Ditetapkan pada penciptaan pertama sahaja; log masuk seterusnya mengekalkan peranan, MFA dan kebenaran setempat.',
                    defaultRolePlaceholder: 'Pilih peranan',
                    defaultRoleRequired: 'Pilih peranan lalai yang sah.',
                    disableConfirm:
                        'Melumpuhkan SAML2 serta-merta menolak log masuk baharu dan membatalkan sesi penggunanya. Teruskan?',
                    disableDiscardConfirm:
                        'Melumpuhkan SAML2 membuang perubahan lain yang belum disimpan pada halaman ini dan serta-merta membatalkan sesi penggunanya. Teruskan?',
                    disableTitle: 'Lumpuhkan SAML2',
                    disabled: 'Dilumpuhkan',
                    enable: 'Dayakan',
                    enabled: 'Didayakan',
                    idpMetadata: 'Metadata IdP',
                    idpMetadataDesc: 'Masukkan URL atau tampal XML. Jika kedua-duanya ada, URL diutamakan.',
                    keepExistingRole: 'Kekalkan peranan sedia ada dan kebenaran setempat',
                    loginWith: 'Log masuk dengan {provider}',
                    mappingResult: 'Hasil pemetaan',
                    metadataRequired: 'Masukkan URL atau XML Metadata IdP.',
                    metadataURLHelper:
                        'Bahagian belakang memuat turun dan mengesahkan metadata semasa ujian dan simpanan.',
                    metadataURLInvalid: 'Masukkan URL metadata HTTPS yang sah tanpa kelayakan atau fragmen.',
                    metadataURLRecommended: 'URL metadata (disyorkan)',
                    metadataXML: 'XML metadata',
                    metadataXMLHelper: 'Gunakan apabila IdP tidak menyediakan URL metadata yang boleh dicapai.',
                    metadataXMLInvalid: 'Masukkan XML metadata EntityDescriptor yang sah.',
                    metadataXMLPlaceholder: 'Tampal <EntityDescriptor>...</EntityDescriptor>',
                    nameAttribute: 'Atribut nama pengguna',
                    nameAttributeHelper:
                        'Membaca atribut ini daripada SAML Assertion yang disahkan dan memetakannya kepada nama pengguna 1Panel.',
                    nameAttributePlaceholder: 'Contohnya: uid, username atau account',
                    nameAttributeRequired: 'Masukkan atribut nama pengguna.',
                    notConfigured: 'Belum dikonfigurasi',
                    or: 'atau',
                    pageDesc: 'Sambungkan SSO perusahaan melalui Metadata IdP dengan tetapan umum pada satu halaman.',
                    plannedHandling: 'Pengendalian terancang',
                    privateKeyFileInvalid: 'Pilih fail kunci peribadi PEM yang sah.',
                    recentTestSuccess: 'Ujian terakhir berjaya: {0}',
                    restore: 'Pulihkan',
                    restored: 'Tetapan SAML2 yang terakhir disimpan telah dipulihkan.',
                    roleHandling: 'Pengendalian peranan',
                    rolesLoadFailed: 'Peranan tidak dapat dimuatkan. Cuba semula sebelum memilih peranan lalai.',
                    selectFile: 'Pilih fail',
                    serviceStatus: 'Status perkhidmatan',
                    serviceStatusDesc: 'Konfigurasi semasa mesti lulus ujian sebelum SAML2 boleh didayakan.',
                    settingLoadFailed: 'Tetapan SAML2 tidak dapat dimuatkan',
                    settingLoadFailedHelper:
                        'Borang dikunci untuk mengelakkan menyimpan konfigurasi lalai kosong pada tetapan semasa. Cuba semula selepas sambungan pulih.',
                    spCertificate: 'Sijil SP',
                    spCertificateHelper:
                        'Diterbitkan dalam metadata SP supaya IdP boleh mengesahkan permintaan log masuk dan log keluar.',
                    spCredentials: 'Kunci peribadi dan sijil SP',
                    spCredentialsDesc:
                        'Digunakan untuk menandatangani mesej log masuk dan log keluar. Dasar tandatangan dan pengesahan ditetapkan oleh bahagian belakang.',
                    spEntityID: 'SP Entity ID',
                    spEntityIDHelper:
                        'Pengecam unik SP. Ia mesti sepadan dengan ID Entiti atau audiens yang dikonfigurasikan dalam IdP dan juga merupakan URL Metadata SP.',
                    acsURL: 'ACS URL',
                    sloURL: 'SLO URL',
                    spPrivateKey: 'Kunci peribadi SP',
                    spPrivateKeyHelper:
                        'Digunakan untuk menandatangani AuthnRequest dan mesej log keluar. Ia disulitkan semasa disimpan dan tidak pernah dipaparkan.',
                    syncLogout: 'Log keluar segerak',
                    syncLogoutHelper:
                        'Log keluar daripada 1Panel atau penyedia identiti turut melog keluar bahagian yang lain.',
                    testBeforeBrowserTest: 'Uji konfigurasi semasa sebelum memulakan ujian log masuk penyemak imbas.',
                    testBeforeEnable: 'Uji konfigurasi semasa sebelum mendayakan atau menyimpan perubahan sensitif.',
                    testConfiguration: 'Uji konfigurasi',
                    unsavedChanges: 'Terdapat perubahan SAML2 yang belum disimpan.',
                    usedAttribute: 'Pemetaan nama pengguna',
                    usersAndRoles: 'Pengguna dan peranan',
                    usersAndRolesDesc:
                        'Konfigurasikan pemetaan nama pengguna panel serta nod dan peranan lalai untuk mencipta pengguna pada log masuk pertama.',
                },
                ldap: {
                    basic: 'Tetapan asas',
                    loginTitle: 'Log masuk LDAP',
                    loginWith: 'Log masuk dengan LDAP',
                    backToLocalLogin: 'Kembali ke log masuk panel',
                    enable: 'Dayakan',
                    enabled: 'Didayakan',
                    disabled: 'Dilumpuhkan',
                    connection: 'Sambungan asas',
                    connectionDesc:
                        'Konfigurasikan perkhidmatan direktori dan akaun bind yang digunakan untuk mencari pengguna.',
                    serverURL: 'URL pelayan',
                    serverURLHelper: 'Menyokong URL ldap:// dan ldaps://.',
                    userBaseDN: 'Pengguna Base DN',
                    userBaseDNHelper:
                        'Memulakan DN untuk carian pengguna LDAP; ia boleh menjadi OU, CN atau akar domain DN.',
                    bindDN: 'Ikat DN',
                    bindPassword: 'Kata laluan',
                    passwordSaved: 'Biarkan kosong untuk menyimpan kata laluan yang disimpan',
                    userSearch: 'Carian pengguna',
                    userSearchDesc:
                        'Tetapkan pangkalan carian dan penapis pengguna, kemudian petakan atribut LDAP yang digunakan sebagai 1Panel name.',
                    userFilter: 'Penapis pengguna',
                    userFilterTooltip:
                        'Gantikan %(user)s dengan nama pengguna yang dilepaskan, atau dengan * untuk membaca direktori penuh.',
                    userFilterHelper: 'Nama pengguna dikeluarkan sebelum ia dimasukkan ke dalam penapis LDAP.',
                    attributeMap: 'Pemetaan atribut',
                    attributeMapTooltip: 'Pemetaan JSON daripada medan 1Panel name kepada atribut LDAP.',
                    attributeMapHelper: 'Tetapkan atribut LDAP yang dipetakan ke medan 1Panel name.',
                    advanced: 'Tetapan lanjutan',
                    advancedDesc: 'Konfigurasikan halaman pertanyaan TLS dan LDAP.',
                    strictSync: 'Penyegerakan yang ketat',
                    strictSyncTooltip:
                        'Selepas pemprosesan penuh selesai, status pengesahan pengguna yang tiada dalam sumber LDAP ini ditandakan sebagai Tidak ditemui dalam LDAP, tetapi pengguna tidak dipadamkan.',
                    strictSyncHelper:
                        'Hanya digunakan untuk pemprosesan penuh yang berjaya. Mengimport pengguna terpilih tidak mengubah status pengesahan pengguna lain.',
                    skipTLSVerify: 'Langkau pengesahan TLS',
                    skipTLSVerifyTooltip: 'Lumpuhkan pengesahan sijil untuk sambungan LDAPS.',
                    connectTimeout: 'Tamat masa sambungan (saat)',
                    searchPageSize: 'LDAP saiz halaman pertanyaan',
                    restore: 'Pulihkan',
                    testConnection: 'Uji sambungan',
                    testLogin: 'Uji log masuk',
                    userImport: 'Import pengguna',
                    saveBeforeImport: 'Simpan tetapan AD/LDAP semasa sebelum mengimport pengguna.',
                    format: 'Format',
                    restoreExample: 'Pulihkan contoh',
                    mappingValid: 'JSON sah; name dikonfigurasikan.',
                    mappingInvalid: 'Masukkan JSON yang sah.',
                    mappingObject: 'Pemetaan atribut mestilah objek JSON.',
                    mappingOnlyName: 'Hanya pemetaan name disokong.',
                    mappingStringValues: 'Setiap atribut yang dipetakan mestilah rentetan.',
                    mappingNameRequired: 'name mestilah rentetan bukan kosong.',
                    restored: 'Tetapan terakhir yang disimpan telah dipulihkan.',
                    connectionTestSuccess: 'Ujian sambungan LDAP berjaya.',
                    recentTestSuccess: 'Ujian terakhir berjaya: {0}',
                    recentTestFailed: 'Ujian terakhir gagal: {0}',
                    serverURLRequired: 'Masukkan URL pelayan LDAP.',
                    serverURLInvalid: 'Gunakan URL ldap:// atau ldaps:// yang sah.',
                    userBaseDNRequired: 'Masukkan Pengguna Base DN.',
                    bindDNRequired: 'Masukkan Bind DN.',
                    passwordRequired: 'Masukkan kata laluan.',
                    userFilterRequired: 'Masukkan penapis pengguna.',
                    connectTimeoutRequired: 'Masukkan tamat masa sambungan.',
                    searchPageSizeRequired: 'Masukkan saiz halaman pertanyaan LDAP.',
                    sync: {
                        title: 'Penyegerakan berjadual',
                        description:
                            'Baca direktori LDAP penuh mengikut jadual dan kekalkan pengguna LDAP yang diimport dalam 1Panel.',
                        enable: 'Dayakan jadual',
                        enableHelper:
                            'Apabila dilumpuhkan, pelaksanaan automatik berhenti; penyegerakan manual masih tersedia.',
                        schedule: 'Jadual',
                        daily: 'Setiap hari',
                        weekly: 'Mingguan',
                        customCron: 'Cron tersuai',
                        preview: 'Pratonton',
                        previewTitle: '5 pelaksanaan seterusnya',
                        previewEmpty: 'Tiada masa pelaksanaan tersedia',
                        cronHelper: 'Gunakan ungkapan Cron lima medan standard: minit, jam, hari, bulan, hari bekerja.',
                        autoImport: 'Import pengguna baharu',
                        autoImportHelper:
                            'Apabila dilumpuhkan, hanya pengecam dan status direktori dikekalkan untuk pengguna LDAP yang diimport; tiada pengguna baharu dibuat.',
                        defaultRole: 'Peranan pengguna baharu',
                        defaultRolePlaceholder: 'Pilih peranan',
                        defaultRoleHelper: 'Hanya terpakai kepada pengguna yang dibuat melalui penyegerakan berjadual.',
                        defaultRoleRequired: 'Pilih peranan untuk pengguna LDAP baharu.',
                        strictSyncHelper:
                            'Selepas penyegerakan lengkap, pengguna yang tiada dalam LDAP ditandai sebagai Tidak ditemui dalam LDAP dan sesinya dikosongkan tanpa memadam pengguna, peranan atau kebenaran.',
                        runNow: 'Segerakkan sekarang',
                        lastRunSuccess: 'Penyegerakan terakhir berjaya: {0}',
                        lastRunFailed: 'Penyegerakan terakhir gagal: {0}',
                        lastRunRunning: 'Penyegerakan dimulakan: {0}',
                        sourceDisabled: 'Dayakan dan simpan AD/LDAP sebelum menjalankan penyegerakan.',
                        cronRequired: 'Masukkan ungkapan Cron.',
                        saveBeforeRun: 'Simpan tetapan penyegerakan sebelum menjalankan tugas.',
                        runConfirmTitle: 'Jalankan penyegerakan yang ketat',
                        runConfirmDescription:
                            'Status pengesahan pengguna yang tiada daripada pertanyaan LDAP penuh akan ditandakan sebagai Tidak ditemui dalam LDAP dan sesi aktif mereka dikosongkan. Teruskan?',
                        runSuccess: 'Penyegerakan LDAP selesai.',
                        weekdays: {
                            0: 'Ahad',
                            1: 'Isnin',
                            2: 'Selasa',
                            3: 'Rabu',
                            4: 'Khamis',
                            5: 'Jumaat',
                            6: 'Sabtu',
                        },
                    },
                    syncLogs: {
                        title: 'Segerakkan log',
                        description: 'Semak keputusan penyegerakan LDAP yang dijadualkan dan manual.',
                        startedAt: 'Masa mula',
                        trigger: 'Cara pelaksanaan',
                        manual: 'Manual',
                        scheduled: 'Dijadualkan',
                        success: 'Kejayaan',
                        failed: 'gagal',
                        running: 'Sedang berjalan',
                        result: 'Hasilnya',
                        resultSummary: 'Dicipta {0}, dikemas kini {1}, tiada {2}',
                        duration: 'Tempoh',
                        action: 'Tindakan',
                    },
                    testLoginTitle: 'Uji log masuk AD/LDAP',
                    testLoginDesc:
                        'Ikat dengan bukti kelayakan pengguna AD/LDAP untuk menguji pengesahan sahaja. Tiada sesi 1Panel dibuat.',
                    ldapUsername: 'Nama pengguna LDAP',
                    usernameRequired: 'Masukkan nama pengguna LDAP.',
                    startTest: 'Mulakan ujian',
                    testLoginSuccess: 'Pengesahan berjaya.',
                    testLoginSuccessWithDN: 'Pengesahan berjaya. Pengguna DN: {0}',
                    import: {
                        title: 'Import pengguna AD/LDAP',
                        source: 'Sumber data: direktori AD/LDAP',
                        lastRead: 'Bacaan terakhir: {0}',
                        cacheHit: 'Hasil cache',
                        keywordPlaceholder: 'Cari nama pengguna',
                        search: 'Cari',
                        refresh: 'Baca daripada LDAP',
                        refreshTip: 'Abaikan cache jangka pendek dan baca direktori LDAP sekali lagi.',
                        loadFailed: 'Gagal membaca direktori LDAP.',
                        retry: 'Cuba semula',
                        noData: 'Tiada pengguna direktori ditemui.',
                        username: 'Nama pengguna',
                        status: 'Status',
                        changes: 'Perubahan',
                        noChanges: 'Tiada perubahan',
                        importable: 'Sedia untuk diimport',
                        updateAvailable: 'Kemas kini tersedia',
                        upToDate: 'Terkini',
                        conflict: 'Konflik nama',
                        selectedCount: '{0} dipilih',
                        totalCount: '{0} pengguna',
                        newUserRole: 'Peranan pengguna baharu',
                        newUserRoleRequired: 'Pilih peranan untuk pengguna baharu.',
                        noNewUsers: 'Tiada pengguna baharu dalam operasi ini.',
                        roleOnlyForNewUsers: 'Peranan yang dipilih hanya digunakan kepada pengguna yang baru dibuat.',
                        strictOff: 'Penyegerakan yang ketat dilumpuhkan. Import penuh tidak akan melumpuhkan pengguna.',
                        importSelected: 'Import/kemas kini dipilih ({0})',
                        importAll: 'Import/kemas kini semua ({0})',
                        previewTitle: 'Sahkan import penuh',
                        previewDesc:
                            'Direktori LDAP lengkap telah dibaca. Kata kunci carian tidak mengehadkan operasi ini.',
                        created: 'Buat',
                        updated: 'Kemas kini',
                        unchanged: 'Tidak berubah',
                        conflicts: 'Konflik',
                        missing: 'Lumpuhkan',
                        reactivated: 'Aktifkan semula',
                        strictWarning:
                            'Penyegerakan yang ketat didayakan. Pengguna yang tiada dari LDAP tidak boleh log masuk, tetapi rekod, peranan dan kebenaran mereka dikekalkan.',
                        missingUsers: 'Pengguna hilang dari LDAP',
                        missingScope: 'Hanya sumber LDAP ini terjejas.',
                        willDisable: 'Akan dilumpuhkan',
                        confirmAll: 'Sahkan import',
                        confirmAllWithMissing: 'Sahkan import dan nyahdayakan {0} pengguna',
                        executeSuccess: 'Pengguna LDAP telah berjaya diproses.',
                        queryExpired: 'Keputusan direktori telah tamat tempoh. Baca dari LDAP sekali lagi.',
                        planIncomplete: 'Direktori penuh dibaca tidak lengkap dan tidak boleh dilaksanakan.',
                    },
                },
            },
        },
        app: {
            app: 'APP',
            title: 'Nama Panel',
            titleHelper: 'Alias panel digunakan untuk paparan di APP (alias panel lalai)',
            qrCode: 'Kod QR',
            apiStatusHelper: 'APP Panel perlu mengaktifkan fungsi API',
            apiInterfaceHelper:
                'Menyokong akses antara muka API panel (fungsi ini perlu diaktifkan untuk aplikasi panel)',
            apiInterfaceHelper1:
                'Akses aplikasi panel memerlukan penambahan pelawat ke dalam senarai putih, untuk IP yang tidak tetap, disyorkan untuk menambah 0.0.0.0/0(semua IPv4), ::/0 (semua IPv6)',
            qrCodeExpired: 'Masa penyegaran',
            apiLeakageHelper: 'Jangan dedahkan kod QR. Pastikan ia hanya digunakan di persekitaran yang dipercayai.',
        },
        logExport: {
            title: 'Eksport Log',
            records: 'Rekod Eksport',
            retentionDays: 'Tempoh Simpanan Rekod Eksport',
            timeRange: 'Julat Masa',
            timeRequired: 'Pilih julat masa eksport',
            websiteRequired: 'Pilih laman web',
            blackStatus: 'Status Senarai Hitam',
            black: 'Disenarai hitam',
            notBlack: 'Tidak disenarai hitam',
            fuzzy: 'Padanan Kabur',
            regex: 'Ungkapan Biasa',
            invalidRegex: 'Masukkan ungkapan RE2 yang sah, maksimum 256 aksara',
            created: 'Tugas eksport telah dibuat',
            fileName: 'Nama Fail',
            fileSize: 'Saiz Fail',
            expiresAt: 'Tamat Tempoh',
            cancelConfirm: 'Batalkan tugas eksport ini?',
            deleteConfirm: 'Padam rekod eksport dan fail ini?',
        },
        waf: {
            WAF: 'WAF',
            name: 'WAF',
            blackWhite: 'Senarai Hitam dan Putih',
            globalSetting: 'Tetapan Global',
            websiteSetting: 'Tetapan Laman Web',
            blockRecords: 'Rekod Diblok',
            world: 'Dunia',
            china: 'China',
            intercept: 'Sekatan',
            request: 'Permintaan',
            count4xx: 'Kuantiti 4xx',
            count5xx: 'Kuantiti 5xx',
            todayStatus: 'Status Hari Ini',
            reqMap: 'Peta Serangan (30 Hari Lepas)',
            resource: 'Sumber',
            count: 'Kuantiti',
            hight: 'Tinggi',
            low: 'Rendah',
            reqCount: 'Permintaan',
            interceptCount: 'Jumlah Sekatan',
            requestTrends: 'Tren Permintaan (7 Hari Lepas)',
            interceptTrends: 'Tren Sekatan (7 Hari Lepas)',
            whiteList: 'Senarai Putih',
            blackList: 'Senarai Hitam',
            ipBlackListHelper: 'Alamat IP dalam senarai hitam disekat daripada mengakses laman web',
            ipWhiteListHelper: 'Alamat IP dalam senarai putih akan melepasi semua sekatan',
            uaBlackListHelper: 'Permintaan dengan nilai User-Agent dalam senarai hitam akan disekat',
            uaWhiteListHelper: 'Permintaan dengan nilai User-Agent dalam senarai putih akan melepasi semua sekatan',
            urlBlackListHelper: 'Permintaan ke URL dalam senarai hitam akan disekat',
            urlWhiteListHelper: 'Permintaan ke URL dalam senarai putih akan melepasi semua sekatan',
            ccHelper:
                'Jika laman web menerima lebih daripada {1} permintaan daripada IP yang sama dalam {0} saat, IP akan disekat selama {2}',
            blockTime: 'Tempoh Sekatan',
            attackHelper: 'Jika sekatan terkumpul melebihi {1} dalam {0} saat, IP akan disekat selama {2}',
            notFoundHelper:
                'Jika permintaan yang mengembalikan ralat 404 lebih daripada {1} kali dalam {0} saat, IP akan disekat selama {2}',
            frequencyLimit: 'Had Kekerapan',
            regionLimit: 'Had Wilayah',
            defaultRule: 'Peraturan Lalai',
            accessFrequencyLimit: 'Had Kekerapan Akses',
            attackLimit: 'Had Kekerapan Serangan',
            notFoundLimit: 'Had Kekerapan 404',
            urlLimit: 'Had Kekerapan URL',
            urlLimitHelper: 'Tetapkan kekerapan akses untuk URL tunggal',
            sqliDefense: 'Perlindungan Suntikan SQL',
            sqliHelper: 'Mengesan suntikan SQL dalam permintaan dan menyekatnya',
            xssHelper: 'Mengesan XSS dalam permintaan dan menyekatnya',
            xssDefense: 'Perlindungan XSS',
            uaDefense: 'Peraturan User-Agent Berbahaya',
            uaHelper: 'Termasuk peraturan untuk mengenal pasti bot berbahaya biasa',
            argsDefense: 'Peraturan Parameter Berbahaya',
            argsHelper: 'Menyekat permintaan yang mengandungi parameter berbahaya',
            cookieDefense: 'Peraturan Cookie Berbahaya',
            cookieHelper: 'Melarang cookie berbahaya daripada dibawa dalam permintaan',
            headerDefense: 'Peraturan Header Berbahaya',
            headerHelper: 'Melarang permintaan daripada mengandungi header berbahaya',
            httpRule: 'Peraturan Kaedah Permintaan HTTP',
            httpHelper:
                'Tetapkan jenis kaedah yang dibenarkan untuk diakses. Jika anda ingin mengehadkan jenis akses tertentu, sila matikan jenis butang ini. Contoh: hanya akses jenis GET dibenarkan, maka anda perlu matikan butang lain selain GET',
            geoRule: 'Sekatan Akses Wilayah',
            geoHelper:
                'Gabungkan dasar wilayah dan wilayah pentadbiran dalam satu suis. Peraturan wilayah dinilai sebelum peraturan wilayah pentadbiran',
            regionPolicy: 'Dasar wilayah',
            provincePolicy: 'Dasar wilayah pentadbiran',
            provinceRuleLabel: 'Wilayah pentadbiran',
            openRestyFeatureVersionAlert: 'OpenResty mesti lebih baharu daripada 1.31.1.1-0 agar {0} berfungsi.',
            ipLocation: 'Lokasi IP',
            ipLocationSearchHelper: 'Masukkan lokasi IP; carian kabur disokong',
            action: 'Tindakan',
            ruleType: 'Jenis Serangan',
            ipHelper: 'Masukkan alamat IP',
            attackLog: 'Log Serangan',
            rule: 'Peraturan',
            ipArr: 'Julat IPV4',
            ipStart: 'IP Mula',
            ipEnd: 'IP Akhir',
            ipv4: 'IPv4',
            ipv6: 'IPv6',
            urlDefense: 'Peraturan URL',
            urlHelper: 'URL Dilarang',
            dirFilter: 'Penapis Direktori',
            sqlInject: 'Suntikan SQL',
            xss: 'XSS',
            webshell: 'WebShell',
            phpExec: 'Pelaksanaan Skrip PHP',
            oneWordTrojan: 'Trojan Satu Perkataan',
            appFilter: 'Penapisan Direktori Berbahaya',
            webShell: 'Webshell',
            args: 'Parameter Berbahaya',
            protocolFilter: 'Penapis Protokol',
            javaFilter: 'Penapisan Fail Berbahaya Java',
            scannerFilter: 'Penapis Pencari',
            escapeFilter: 'Penapis Pengekalan',
            customRule: 'Peraturan Kustom',
            httpMethod: 'Penapis Kaedah HTTP',
            fileExt: 'Had Muat Naik Fail',
            fileExtHelper: 'Lanjaran fail yang dilarang untuk dimuat naik',
            deny: 'Dilarang',
            allow: 'Benarkan',
            allowOnly: 'Benarkan yang dipilih sahaja',
            field: 'Objek',
            pattern: 'Keadaan',
            ruleContent: 'Kandungan',
            contain: 'termasuk',
            equal: 'sama dengan',
            regex: 'peraturan biasa',
            notEqual: 'Tidak sama dengan',
            customRuleHelper: 'Ambil tindakan berdasarkan keadaan yang ditetapkan',
            actionAllow: 'Benarkan',
            blockIP: 'Sekat IP',
            code: 'Kod Status Kembali',
            noRes: 'Putuskan sambungan (444)',
            badReq: 'Parameter Tidak Sah (400)',
            forbidden: 'Akses Dilarang (403)',
            serverErr: 'Ralat Server (500)',
            resHtml: 'Halaman Respons',
            allowHelper: 'Membenarkan akses akan melangkau peraturan WAF seterusnya, sila gunakan dengan berhati-hati',
            captcha: 'verifikasi manusia-mesin',
            fiveSeconds: 'Verifikasi 5-Saat',
            location: 'Wilayah',
            redisConfig: 'Konfigurasi Redis',
            redisHelper: 'Aktifkan Redis untuk menyimpan IP yang disekat sementara',
            wafHelper: 'Semua laman web akan kehilangan perlindungan selepas menutup',
            websiteWafHelper: 'Laman web ini akan kehilangan perlindungan selepas menutup',
            attackIP: 'IP Serangan',
            attackParam: 'Butiran Serangan',
            execRule: 'Peraturan Dilanggar',
            acl: 'ACL',
            sql: 'Suntikan SQL',
            cc: 'Had Kekerapan Akses',
            isBlocking: 'Disekat',
            isFree: 'Tidak Disekat',
            unLock: 'Buka Kunci',
            unLockHelper: 'Adakah anda mahu membuka kunci IP: {0}?',
            saveDefault: 'Simpan Lalai',
            saveToWebsite: 'Terapkan ke Laman Web',
            saveToWebsiteHelper: 'Terapkan tetapan semasa ke semua laman web?',
            websiteHelper:
                'Ini adalah tetapan lalai untuk mencipta laman web. Pengubahsuaian perlu diterapkan ke laman web untuk berkuat kuasa',
            websiteHelper2:
                'Ini adalah tetapan lalai untuk mencipta laman web. Sila ubah suai konfigurasi tertentu di laman web',
            ipGroup: 'Kumpulan IP',
            ipGroupHelper:
                'Satu IP atau segmen IP setiap baris, menyokong IPv4 dan IPv6, sebagai contoh: 192.168.1.1 atau 192.168.1.0/24',
            ipBlack: 'Senarai Hitam IP',
            openRestyAlert: 'Versi OpenResty perlu lebih tinggi daripada {0}',
            initAlert:
                'Penyediaan diperlukan untuk penggunaan kali pertama, fail konfigurasi laman web akan diubah, dan konfigurasi WAF asal akan hilang. Sila buat sandaran OpenResty terlebih dahulu',
            initHelper:
                'Operasi penyediaan akan membersihkan konfigurasi WAF yang sedia ada. Adakah anda pasti mahu menyediakan semula?',
            mainSwitch: 'Suis Utama',
            websiteSwitch: 'Suis',
            websiteAlert: 'Sila cipta laman web terlebih dahulu',
            defaultUrlBlack: 'Peraturan URL',
            htmlRes: 'Halaman Sekat',
            urlSearchHelper: 'Sila masukkan URL untuk sokongan carian samar',
            hostSearchHelper: 'Masukkan Host untuk carian kabur',
            toCreate: 'Cipta',
            closeWaf: 'Tutup WAF',
            closeWafHelper: 'Menutup WAF akan menyebabkan laman web kehilangan perlindungan, adakah anda mahu teruskan',
            addblack: 'Hitam',
            addwhite: 'Tambah putih',
            addblackHelper: 'Tambah IP:{0} ke senarai hitam lalai?',
            addwhiteHelper: 'Tambah IP:{0} ke senarai putih lalai?',
            defaultUaBlack: 'Peraturan User-Agent',
            defaultIpBlack: 'Kumpulan IP Berbahaya',
            cookie: 'Peraturan Cookie',
            urlBlack: 'Senarai Hitam URL',
            uaBlack: 'Senarai Hitam User-Agent',
            attackCount: 'Had Kekerapan Serangan',
            fileExtCheck: 'Had Muat Naik Fail',
            geoRestrict: 'Sekatan Akses Wilayah',
            originProtect: 'Perlindungan origin CDN',
            attacklog: 'Rekod Sekat',
            unknownWebsite: 'Akses domain yang tidak sah',
            geoRuleEmpty: 'Pilih sekurang-kurangnya satu wilayah atau wilayah pentadbiran',
            unknown: 'Laman Web Tidak Wujud',
            geo: 'Sekatan Wilayah',
            revertHtml: 'Adakah anda mahu memulihkan {0} sebagai halaman lalai?',
            five_seconds: 'Verifikasi 5-Saat',
            header: 'Peraturan Header',
            methodWhite: 'Peraturan HTTP',
            expiryDate: 'Tarikh Tamat',
            expiryDateHelper: 'Selepas lulus verifikasi, ia tidak akan disahkan lagi dalam tempoh sah',
            defaultIpBlackHelper: 'Beberapa IP berbahaya yang dikumpul dari Internet untuk mencegah akses',
            notFoundCount: 'Had Kekerapan 404',
            matchValue: 'Nilai Padanan',
            headerName: 'Menyokong Bahasa Inggeris, nombor, -, panjang 3-30',
            cdnHelper: 'Laman web yang menggunakan CDN boleh dibuka di sini untuk mendapatkan IP sumber yang betul',
            clearLogWarn: 'Pembersihan log tidak akan mungkin, adakah anda mahu meneruskan?',
            commonRuleHelper: 'Peraturan adalah padanan samar',
            blockIPHelper:
                'IP yang disekat disimpan sementara dalam OpenResty dan akan dibuka kunci apabila anda memulakan semula OpenResty. Mereka boleh disekat secara kekal melalui fungsi sekatan',
            addWhiteUrlHelper: 'Tambah URL {0} ke senarai putih?',
            dashHelper: 'Versi komuniti juga boleh menggunakan fungsi dalam tetapan global dan tetapan laman web',
            wafStatusHelper:
                'Firewall belum diaktifkan. Perlindungan keselamatan laman web dijeda. Sila aktifkan segera.',
            enableProtection: 'Aktifkan Perlindungan',
            ccMode: 'Mod',
            global: 'Mod Global',
            uriMode: 'Mod URL',
            globalHelper:
                'Mod Global: Digerakkan apabila jumlah permintaan ke mana-mana URL dalam unit masa melebihi had',
            uriModeHelper: 'Mod URL: Digerakkan apabila jumlah permintaan ke satu URL dalam unit masa melebihi had',
            ip: 'Senarai Hitam IP',
            globalSettingHelper:
                'Tetapan dengan tag [Laman Web] perlu diaktifkan dalam [Tetapan Laman Web], dan tetapan global hanya tetapan lalai untuk laman web yang baru dicipta',
            globalSettingHelper2:
                'Tetapan perlu diaktifkan dalam kedua-dua [Tetapan Global] dan [Tetapan Laman Web] pada masa yang sama',
            urlCCHelper: '{1} kepingatan permintaan URL ini dalam {0} saat, menyekat IP ini {2}',
            urlCCHelper2: 'URL tidak boleh mengandung parameter',
            notContain: 'Tidak mengandung',
            urlcc: 'Had frekuensi URL',
            method: 'Jenis permintaan',
            addIpsToBlock: 'Sekat IP secara pukal',
            addIpSegmentToBlock: 'Sekat segmen IP',
            addIpSegmentsToBlock: 'Sekat segmen IP secara pukal',
            addUrlsToWhite: 'Tambah URL ke senarai putih secara pukal',
            noBlackIp: 'IP telah disekat, tidak perlu disekat semula',
            noWhiteUrl: 'URL telah dimasukkan ke senarai putih, tidak perlu ditambah semula',
            spiderIpHelper:
                'Apabila didayakan, hanya perangkak yang dipilih dibenarkan; apabila dilumpuhkan, semua akses perangkak disekat.',
            spiderIp: 'Kolam IP labah-labah',
            spider: 'Spider',
            spiderAllowlist: 'Perangkak dibenarkan',
            spiderAllowlistEmpty: 'Tiada perangkak dipilih. Menyimpan akan menyekat semua akses perangkak.',
            geoIp: 'Pustaka Alamat IP',
            geoIpHelper: 'Digunakan untuk mengesahkan lokasi geografi IP',
            stat: 'Laporan Serangan',
            statTitle: 'Laporan',
            attackIp: 'IP Serangan',
            attackCountNum: 'Bilangan Serangan',
            percent: 'Peratusan',
            addblackUrlHelper: 'Adakah anda mahu menambah URL: {0} ke senarai hitam lalai?',
            rce: 'Pelaksanaan Kod Jarak Jauh',
            software: 'Perisian',
            cveHelper: 'Mengandungi kelemahan biasa perisian dan rangka kerja',
            vulnCheck: 'Peraturan Tambahan',
            ssrf: 'Kelemahan SSRF',
            afr: 'Pembacaan Fail Arbitrari',
            ua: 'Akses Tanpa Kebenaran',
            id: 'Pendedahan Maklumat',
            aa: 'Mengelakkan Pengesahan',
            dr: 'Penembusan Direktori',
            xxe: 'Kelemahan XXE',
            suid: 'Kelemahan Serialisasi',
            dos: 'Kelemahan Penafian Perkhidmatan',
            afd: 'Muat Turun Fail Arbitrari',
            sqlInjection: 'Tambahan SQL',
            afw: 'Penulisan Fail Arbitrari',
            il: 'Pendedahan Maklumat',
            clearAllLog: 'Kosongkan Semua Log',
            exportLog: 'Eksport Log',
            appRule: 'Peraturan Aplikasi',
            appRuleHelper:
                'Peraturan aplikasi biasa, membolehkan boleh mengurangkan positif palsu, satu laman web hanya boleh menggunakan satu peraturan',
            logExternal: 'Kecualikan Jenis Rekod',
            ipWhite: 'Senarai Putih IP',
            urlWhite: 'Senarai Putih URL',
            uaWhite: 'Senarai Putih User-Agent',
            logExternalHelper:
                'Jenis rekod yang dikecualikan tidak akan direkodkan dalam log, senarai hitam/putih, sekatan akses wilayah, dan peraturan tersuai akan menghasilkan banyak log, disarankan untuk mengeluarkan',
            ssti: 'Serangan SSTI',
            crlf: 'Penyuntikan CRLF',
            strict: 'Mod Strict',
            strictHelper: 'Gunakan peraturan yang lebih ketat untuk mengesahkan permintaan',
            executionStrategy: 'Strategi pelaksanaan',
            detectionStrength: 'Kekuatan pengesanan',
            protectionMode: 'Mod perlindungan',
            observationMode: 'Mod pemerhatian',
            standardMode: 'Mod standard',
            observationModeHelper: 'Mengesan dan merekod permintaan tanpa menyekatnya',
            observationModeConfirm:
                'Dalam mod pemerhatian, semua padanan WAF direkod tanpa menyekat permintaan. Teruskan?',
            globalStrictRequired: 'Dayakan mod strict dalam tetapan global terlebih dahulu',
            websiteSearchHelper: 'Masukkan domain, alias atau catatan laman web',
            configReadFailed: 'Gagal memuatkan konfigurasi',
            detailSetting: 'Tetapan terperinci',
            observe: 'Perhati',
            saveLog: 'Simpan Log',
            remoteURLHelper: 'URL jauh perlu memastikan satu IP setiap baris dan tiada aksara lain',
            notFound: 'Not Found (404)',
            serviceUnavailable: 'Perkhidmatan Tidak Tersedia (503)',
            gatewayTimeout: 'Timeout Gateway (504)',
            belongToIpGroup: 'Tergolong dalam Kumpulan IP',
            notBelongToIpGroup: 'Tidak tergolong dalam Kumpulan IP',
            unknownWebsiteKey: 'Domain Tidak Diketahui',
            special: 'Peraturan Khas',
            fileToLarge: 'Fail melebihi 1MB dan tidak dapat dimuat naik',
            uploadOverLimit: 'Fail yang dimuat naik melebihi had kuantiti, maksimum 1 fail',
            importRuleHelper: 'Satu peraturan per baris',
        },
        monitor: {
            '360': 'Pencarian 360',
            name: 'Pemantauan Laman Web',
            pv: 'Paparan Halaman',
            uv: 'Pelawat Unik',
            flow: 'Aliran Trafik',
            ip: 'IP',
            spider: 'Spider',
            visitors: 'Tren Pelawat',
            today: 'Hari Ini',
            last7days: '7 Hari Terakhir',
            last30days: '30 Hari Terakhir',
            uvMap: 'Peta Pelawat (30th)',
            qps: 'Permintaan Masa Sebenar (setiap minit)',
            flowSec: 'Trafik Masa Sebenar (setiap minit)',
            excludeCode: 'Kecualikan Kod Status',
            excludeUrl: 'Kecualikan URL',
            excludeExt: 'Kecualikan Sambungan',
            cdnHelper: 'Dapatkan IP sebenar dari Header yang disediakan oleh CDN',
            reqRank: 'Peringkat Lawatan',
            refererDomain: 'Domain Rujukan',
            os: 'Sistem',
            browser: 'Pelayar/Klien',
            device: 'Peranti',
            showMore: 'Lebih',
            unknown: 'Lain-lain',
            pc: 'Komputer',
            mobile: 'Peranti Mudah Alih',
            wechat: 'WeChat',
            machine: 'Mesin',
            tencent: 'Pelayar Tencent',
            ucweb: 'Pelayar UC',
            '2345explorer': 'Pelayar 2345',
            huaweibrowser: 'Pelayar Huawei',
            log: 'Log Permintaan',
            statusCode: 'Kod Status',
            requestTime: 'Masa Respons',
            flowRes: 'Trafik Respons',
            method: 'Kaedah Permintaan',
            statusCodeHelper: 'Masukkan kod status di atas',
            statusCodeError: 'Jenis kod status tidak sah',
            methodHelper: 'Masukkan kaedah permintaan di atas',
            all: 'Semua',
            baidu: 'Baidu',
            google: 'Google',
            bing: 'Bing',
            bytes: 'Tajuk Hari Ini',
            sogou: 'Sogou',
            failed: 'Ralat',
            ipCount: 'Kiraan IP',
            spiderCount: 'Permintaan Spider',
            averageReqTime: 'Masa Respons Purata',
            totalFlow: 'Jumlah Trafik',
            logSize: 'Saiz Fail Log',
            realIPType: 'Kaedah pemerolehan IP sebenar',
            realIPRecognition: 'Pengenalpastian IP sebenar',
            fromHeader: 'Dapatkan dari Header HTTP',
            fromHeaders: 'Dapatkan dari senarai Header',
            header: 'Header HTTP',
            cdnConfig: 'Konfigurasi CDN',
            xff1: 'Proksi Tahap Pertama dari X-Forwarded-For',
            xff2: 'Proksi Tahap Kedua dari X-Forwarded-For',
            xff3: 'Proksi Tahap Ketiga dari X-Forwarded-For',
            xffHelper:
                'Contoh: X-Forwarded-For: <client>,<proxy1>,<proxy2>,<proxy3> Proksi tahap atas akan mengambil IP terakhir <proxy3>',
            headersHelper:
                'Dapatkan IP sebenar dari header CDN HTTP yang biasa digunakan, memilih nilai pertama yang tersedia',
            monitorCDNHelper:
                'Mengubah konfigurasi CDN untuk pemantauan laman web juga akan mengemas kini tetapan WAF CDN',
            wafCDNHelper: 'Mengubah konfigurasi WAF CDN juga akan mengemas kini tetapan CDN pemantauan laman web',
            originProtection: 'Perlindungan pelayan origin',
            originProtectionHelper:
                'Hanya nod CDN dalam kumpulan IP terpilih boleh menyambung ke origin. Pengesanan IP sebenar pelawat menggunakan suis berasingan.',
            originProtectionIPGroups: 'Kumpulan IP origin CDN',
            originProtectionIPGroupsPlaceholder: 'Pilih kumpulan IP origin CDN yang dipercayai',
            originProtectionWarning:
                'Konfigurasi yang salah boleh menyebabkan laman web tidak dapat dicapai. Pastikan semua alamat origin CDN disertakan.',
            originProtectionEnableConfirm:
                'Sambungan di luar kumpulan IP terpilih akan dianggap sebagai akses terus ke origin dan disekat. Teruskan?',
            statusErr: 'Format kod status tidak sah',
            shenma: 'Shenma Search',
            duckduckgo: 'DuckDuckGo',
            yandex: 'Yandex',
            gptbot: 'GPTBot',
            excludeUri: 'Kecualikan URI',
            top100Helper: 'Tunjukkan data 100 teratas',
            logSaveDay: 'Tempoh Penahanan Log (hari)',
            cros: 'Chrome OS',
            theworld: 'Pelayar TheWorld',
            edge: 'Microsoft Edge',
            maxthon: 'Pelayar Maxthon',
            monitorStatusHelper: 'Pemantauan laman web belum diaktifkan. Aktifkan sekarang',
            excludeIp: 'Kecualikan Alamat IP',
            excludeUa: 'Kecualikan User-Agent',
            remotePort: 'Port Jauh',
            unknown_browser: 'Tidak Diketahui',
            unknown_os: 'Tidak Diketahui',
            unknown_device: 'Tidak Diketahui',
            logSaveSize: 'Saiz Simpanan Log Maksimum',
            logSaveSizeHelper: 'Ini adalah saiz simpanan log untuk satu laman web',
            '360se': '360 Pelayar Keselamatan',
            websites: 'Senarai Laman Web',
            trend: 'Statistik Trend',
            reqCount: 'Jumlah Permintaan',
            uriHelper: 'Anda boleh menggunakan /test/* atau /*/index.php untuk mengecualikan Uri',
        },
        tamper: {
            tamper: 'Perlindungan laman web',
            tamperCreateHint:
                'Direktori semasa mungkin dipengaruhi oleh perlindungan gangguan atau atribut fail, menyebabkan penciptaan gagal.',
            ignoreTemplate: 'Templat Pengecualian',
            protectTemplate: 'Templat Perlindungan',
            ignoreTemplateHelper:
                'Sila masukkan kandungan pengecualian, dipisahkan oleh Enter atau ruang. (Direktori khusus ./log atau nama direktori tmp, untuk mengecualikan fail perlu memasukkan fail khusus ./data/test.html)',
            protectTemplateHelper:
                'Sila masukkan kandungan perlindungan, dipisahkan oleh Enter atau ruang. (Fail khusus ./index.html, sambungan fail .html, jenis fail js, untuk melindungi direktori perlu memasukkan direktori khusus ./log)',
            templateContent: 'Kandungan Templat',
            template: 'Templat',
            saveTemplate: 'Simpan sebagai Templat',
            tamperHelper1:
                'Untuk laman web jenis penyebaran satu klik, disyorkan untuk mengaktifkan fungsi anti-pengubahsuaian direktori aplikasi; jika laman web tidak dapat digunakan secara normal atau sandaran/pemulihan gagal, sila lumpuhkan fungsi anti-pengubahsuaian terlebih dahulu;',
            tamperHelper2:
                'Akan menyekat operasi baca/tulis, padam, keizinan, dan pengubahsuaian pemilik untuk fail dilindungi dalam direktori tidak dikecualikan',
            tamperPath: 'Direktori Perlindungan',
            tamperPathEdit: 'Ubah Laluan',
            log: 'Log Sekatan',
            totalProtect: 'Perlindungan Total',
            todayProtect: 'Perlindungan Hari Ini',
            templateRule: 'Panjang 1-512, nama tidak boleh mengandungi {0} dan simbol lain',
            ignore: 'Kecualikan',
            ignoreHelper:
                'Sila pilih atau masukkan kandungan pengecualian, dipisahkan oleh Enter atau ruang. (Direktori khusus ./log atau nama direktori tmp, untuk mengecualikan fail perlu memasukkan atau memilih fail khusus ./data/test.html)',
            protect: 'Lindungi',
            protectHelper:
                'Sila pilih atau masukkan kandungan perlindungan, dipisahkan oleh Enter atau ruang. (Fail khusus ./index.html, sambungan fail .html, jenis fail js, untuk melindungi direktori perlu memasukkan atau memilih direktori khusus ./log)',
            tamperHelper00: 'Pengecualian dan perlindungan hanya menyokong laluan relatif;',
            tamperHelper01:
                'Selepas mengaktifkan perlindungan anti-pengubahsuaian, sistem akan menyekat operasi penciptaan, penyuntingan, dan pemadaman fail dilindungi dalam direktori tidak dikecualikan;',
            tamperHelper02:
                'Keutamaan: Perlindungan laluan khusus > Pengecualian laluan khusus > Perlindungan > Pengecualian',
            tamperHelper03:
                'Operasi pemantauan hanya mensasarkan direktori tidak dikecualikan, memantau penciptaan fail tidak dilindungi dalam direktori ini.',
            disableHelper: 'Akan melumpuhkan fungsi anti-pengubahsuaian untuk laman web berikut, teruskan?',
            appendOnly: 'Hanya Tambahan',
            appendOnlyHelper:
                'Menyekat operasi pemadaman fail dalam direktori ini, hanya membenarkan penambahan direktori yang dikecualikan atau fail tidak dilindungi',
            immutable: 'Tidak Berubah',
            immutableHelper:
                'Menyekat operasi suntingan, pemadaman, keizinan, dan pengubahsuaian pemilik untuk fail ini',
            onWatch: 'Pantau',
            onWatchHelper:
                'Memantau dan mencegat penciptaan fail dilindungi atau direktori tidak dikecualikan dalam direktori ini',
            forceStop: 'Tutup Paksa',
            forceStopHelper:
                'Akan melumpuhkan fungsi anti-pengubahsuaian untuk direktori laman web ini secara paksa. Teruskan?',
        },
        setting: {
            setting: 'Tetapan Panel',
            title: 'Deskripsi Panel',
            titleHelper:
                'Akan dipaparkan pada halaman log masuk pengguna (contoh: Panel pengurusan operasi dan penyelenggaraan pelayan Linux, disarankan 8-15 aksara)',
            logo: 'Logo (Tanpa Teks)',
            logoHelper:
                'Akan dipaparkan di sudut kiri atas halaman pengurusan apabila menu dikurangkan (saiz imej yang disarankan: 82px*82px)',
            logoWithText: 'Logo (Dengan Teks)',
            logoWithTextHelper:
                'Akan dipaparkan di sudut kiri atas halaman pengurusan apabila menu diperluaskan (saiz imej yang disarankan: 185px*55px)',
            favicon: 'Ikon Laman Web',
            faviconHelper: 'Ikon laman web (saiz imej yang disarankan: 16px*16px)',
            setDefault: 'Pulihkan Tetapan Asal',
            setHelper: 'Tetapan semasa akan disimpan. Adakah anda ingin meneruskan?',
            setDefaultHelper: 'Semua tetapan panel akan dikembalikan ke asal. Adakah anda ingin meneruskan?',
            logoGroup: 'Logo',
            imageGroup: 'Imej',
            loginImage: 'Imej',
            loginImageHelper: 'Akan dipaparkan di halaman log masuk (Saiz disyorkan: 500*416px)',
            loginBgType: 'Jenis Latar',
            loginBgImage: 'Imej Latar',
            loginBgImageHelper:
                'Akan dipaparkan sebagai latar belakang halaman log masuk (Saiz disyorkan: 1920*1080px)',
            loginBgColor: 'Warna Latar',
            loginBgColorHelper: 'Akan dipaparkan sebagai warna latar belakang halaman log masuk',
            image: 'Imej',
            bgColor: 'Warna Latar',
            loginGroup: 'Halaman Log Masuk',
            loginBtnLinkColor: 'Warna Butang/Pautan',
            loginBtnLinkColorHelper: 'Akan dipaparkan sebagai warna butang/pautan di halaman log masuk',
        },
        helper: {
            wafTitle1: 'Peta Pencegahan',
            wafContent1: 'Memaparkan taburan geografi pencegahan dalam tempoh 30 hari yang lalu',
            wafTitle2: 'Sekatan Akses Wilayah',
            wafContent2: 'Menyekat sumber akses laman web mengikut lokasi geografi',
            wafTitle3: 'Halaman Pencegahan Tersuai',
            wafContent3: 'Cipta halaman tersuai untuk dipaparkan selepas permintaan disekat',
            wafTitle4: 'Peraturan Tersuai (ACL)',
            wafContent4: 'Sekat permintaan mengikut peraturan tersuai',
            tamperTitle1: 'Pemantauan Integriti Fail',
            tamperContent1: 'Pantau integriti fail laman web, termasuk fail teras, skrip, dan fail konfigurasi.',
            tamperTitle2: 'Pengimbasan dan Pengesanan Masa Nyata',
            tamperContent2:
                'Kesan fail yang tidak normal atau diubah suai dengan mengimbas sistem fail laman web secara masa nyata.',
            tamperTitle3: 'Tetapan Kebenaran Keselamatan',
            tamperContent3:
                'Hadkan akses ke fail laman web melalui tetapan kebenaran yang sesuai dan dasar kawalan akses, mengurangkan permukaan serangan yang berpotensi.',
            tamperTitle4: 'Log dan Analisis',
            tamperContent4:
                'Rekod log akses dan operasi fail untuk audit dan analisis selanjutnya oleh pentadbir serta mengenal pasti potensi ancaman keselamatan.',
            settingTitle1: 'Mesej Selamat Datang Tersuai',
            settingContent1: 'Tetapkan mesej selamat datang tersuai pada halaman log masuk 1Panel.',
            settingTitle2: 'Logo Tersuai',
            settingContent2: 'Benarkan memuat naik gambar logo yang mengandungi nama jenama atau teks lain.',
            settingTitle3: 'Ikon Laman Web Tersuai',
            settingContent3:
                'Benarkan memuat naik ikon tersuai untuk menggantikan ikon pelayar lalai, meningkatkan pengalaman pengguna.',
            monitorTitle1: 'Trend Pelawat',
            monitorContent1: 'Statistik dan memaparkan trend pelawat laman web',
            monitorTitle2: 'Peta Pelawat',
            monitorContent2: 'Statistik dan memaparkan taburan geografi pelawat laman web',
            monitorTitle3: 'Statistik Akses',
            monitorContent3:
                'Statistik maklumat permintaan laman web, termasuk labah-labah, peranti akses, status permintaan, dan sebagainya.',
            monitorTitle4: 'Pemantauan Masa Nyata',
            monitorContent4:
                'Pemantauan masa nyata maklumat permintaan laman web, termasuk bilangan permintaan, trafik, dan sebagainya.',
            alertTitle1: 'Amaran SMS',
            alertContent1:
                'Apabila berlaku penggunaan sumber pelayan yang tidak normal, tamat tempoh laman web dan sijil, kemas kini versi baru, tamat tempoh kata laluan, dan sebagainya, pengguna akan diberitahu melalui amaran SMS untuk memastikan pemprosesan tepat pada masanya.',
            alertTitle2: 'Log Amaran',
            alertContent2:
                'Memberikan fungsi kepada pengguna untuk melihat log amaran bagi memudahkan penjejakan dan analisis peristiwa amaran sejarah.',
            alertTitle3: 'Tetapan Amaran',
            alertContent3:
                'Memberikan pengguna konfigurasi nombor telefon tersuai, kekerapan push harian, dan masa push harian, memudahkan pengguna untuk menetapkan amaran push yang lebih munasabah.',
            nodeDashTitle1: 'Pengurusan Aplikasi',
            nodeDashContent1:
                'Pengurusan bersatu aplikasi berbilang nod, menyokong pemantauan status, mula/henti pantas, sambungan terminal dan sandaran',
            nodeDashTitle2: 'Pengurusan Laman Web',
            nodeDashContent2:
                'Pengurusan bersatu laman web berbilang nod, pemantauan status masa nyata, menyokong mula/henti kelompok dan sandaran pantas',
            nodeDashTitle3: 'Pengurusan Pangkalan Data',
            nodeDashContent3:
                'Pengurusan bersatu pangkalan data berbilang nod, status utama sekilas, menyokong sandaran satu klik',
            nodeDashTitle4: 'Pengurusan Tugas Berjadual',
            nodeDashContent4:
                'Pengurusan bersatu tugas berjadual berbilang nod, menyokong pemantauan status, mula/henti pantas dan pelaksanaan pencetus manual',
            nodeTitle1: 'Satu Klik Tambah Node',
            nodeContent1: 'Mengintegrasikan pelbagai nod pelayan dengan cepat',
            nodeTitle2: 'Kelompok Naik Taraf',
            nodeContent2: 'Segerakan dan naik taraf semua nod dengan satu operasi',
            nodeTitle3: 'Pemantauan Status Node',
            nodeContent3: 'Memantau status operasi setiap nod secara real-time',
            nodeTitle4: 'Sambungan Jauh Pantas',
            nodeContent4: 'Sambung terus ke terminal jauh nod dengan satu klik',
            fileExchangeTitle1: 'Pengangkutan Pengesahan Kunci',
            fileExchangeContent1: 'Mengesahkan melalui kunci SSH untuk memastikan keselamatan pengangkutan.',
            fileExchangeTitle2: 'Segerakan Fail Cekap',
            fileExchangeContent2:
                'Hanya menyegerakkan kandungan yang berubah untuk meningkatkan kelajuan dan kestabilan pengangkutan secara signifikan.',
            fileExchangeTitle3: 'Sokongan Pertukaran Inter-Node',
            fileExchangeContent3:
                'Mudah memindahkan fail projek antara nod yang berbeza, mengurus pelbagai pelayan dengan fleksibiliti.',
            nodeAppTitle1: 'Pengurusan Naik Taraf Aplikasi',
            nodeAppContent1: 'Pemantauan bersatu kemas kini aplikasi berbilang nod, menyokong naik taraf satu klik',
            appTitle1: 'Pengurusan Panel yang Fleksibel',
            appContent1: 'Uruskan pelayan 1Panel anda dengan mudah pada bila-bila masa dan di mana sahaja.',
            appTitle2: 'Maklumat Perkhidmatan Komprehensif',
            appContent2:
                'Uruskan aplikasi, laman web, Docker, pangkalan data, dll melalui aplikasi mudah alih dan sokong pembinaan pantas aplikasi dan laman web.',
            appTitle3: 'Pemantauan Anomali Masa Nyata',
            appContent3:
                'Lihat status pelayan, pemantauan keselamatan WAF, statistik pelawat laman web dan status kesihatan proses di aplikasi mudah alih secara masa nyata.',
            clusterTitle1: 'Penyebaran Utama-Hamba',
            clusterContent1:
                'Menyokong penciptaan contoh utama-hamba MySQL/Postgres/Redis pada nod yang berbeza, secara automatik melengkapkan perhubungan utama-hamba dan permulaan',
            clusterTitle2: 'Pengurusan Utama-Hamba',
            clusterContent2:
                'Halaman terpadu untuk menguruskan pelbagai nod utama-hamba, lihat peranan, status berjalan, dsb.',
            clusterTitle3: 'Status Replikasi',
            clusterContent3:
                'Memaparkan status replikasi utama-hamba dan maklumat kelewatan, membantu menyelesaikan masalah sinkronisasi',
            modelDownloaderTitle1: 'Penemuan Model',
            modelDownloaderContent1:
                'Cari repositori model HuggingFace secara langsung dan lihat muat turun, suka, butiran model dan senarai fail.',
            modelDownloaderTitle2: 'Muat Turun Dipercepat',
            modelDownloaderContent2:
                'Konfigurasikan titik akhir pecutan HuggingFace dan HF Token untuk laman rasmi, cermin dan model persendirian.',
            modelDownloaderTitle3: 'Penjejakan Tugas',
            modelDownloaderContent3:
                'Semak baris gilir muat turun, status tugas, kemajuan dan ralat, dengan sokongan batal, cuba semula dan bersihkan rekod.',
            modelDownloaderTitle4: 'Pengurusan Tempatan',
            modelDownloaderContent4:
                'Urus direktori model tempatan di satu tempat, termasuk laluan, saiz, masa dan pemadaman fail model yang tidak digunakan.',
            vllmTitle1: 'Pengurusan Berpusat',
            vllmContent1:
                'Integrasikan instans vLLM yang diedarkan ke dalam 1Panel dan pantau versi, status operasi serta direktori kerja secara berpusat.',
            vllmTitle2: 'Penerapan Pantas',
            vllmContent2:
                'Gunakan borang visual untuk memilih versi, memasang direktori model dan mengkonfigurasi parameter permulaan, sekali gus mengurangkan kerumitan konfigurasi manual.',
            vllmTitle3: 'Operasi yang Cekap',
            vllmContent3:
                'Urus penciptaan, penyuntingan, permulaan, pemberhentian, mulakan semula, penghapusan instans serta pemantauan tugas dalam satu antara muka bagi meningkatkan kecekapan operasi perkhidmatan model tempatan.',
            vllmTitle4: 'Konfigurasi Fleksibel',
            vllmContent4:
                'Urus port, kontena, arahan permulaan dan konfigurasi Compose secara berpusat melalui tetapan lanjutan untuk memudahkan penerapan piawai serta pelarasan selepas pelaksanaan.',
        },
        node: {
            master: 'Nod Utama',
            masterBackup: 'Sandaran Nod Master',
            backupNode: 'Nod Sandaran',
            backupFrequency: 'Kekerapan Sandaran (jam)',
            backupCopies: 'Salinan Sandaran',
            noBackupNode: 'Nod sandaran kosong. Sila pilih nod sandaran untuk disimpan dan cuba lagi!',
            masterBackupAlert:
                'Sandaran nod master belum dikonfigurasikan. Untuk memastikan keselamatan data, sila sediakan nod sandaran secepat mungkin untuk memudahkan pertukaran manual ke nod master baru sekiranya berlaku kegagalan.',
            node: 'Nod',
            addr: 'Alamat',
            nodeUpgrade: 'Tetapan Kemas Kini',
            nodeUpgradeHelper:
                'Nod terpilih akan mula dinaik taraf secara automatik selepas naik taraf nod induk selesai, tiada operasi manual diperlukan.',
            nodeUpgradePackageManage: 'Pengurusan Pakej Pemasangan',
            nodeUpgradePackageClean: 'Bersihkan',
            nodeUpgradePackageFormatHelper:
                'Hanya pakej pemasangan `1panel-agent_v*_*` atau `1panel-v*-linux-*` disokong',
            nodeUpgradePackageHostConfirm: 'Fail pelayan {0} akan dipilih. Teruskan?',
            nodeUpgradePackageCleanHelper: 'Semua pakej kemas kini versi lebih rendah akan dibersihkan. Teruskan?',
            nodeUpgradeOfflinePackageHelper:
                'Dalam persekitaran luar talian, nod berbeza seni bina perlu memuat naik pakej kemas kini yang sepadan sebelum dikemas kini.',
            healthCheck: 'Pemeriksaan Kesihatan',
            healthCheckFrequency: 'Kekerapan Pemeriksaan Automatik',
            healthCheckFrequencyHelper:
                'Periksa kesihatan nod secara automatik mengikut kekerapan yang ditetapkan. Masukkan 0 untuk melumpuhkan pemeriksaan automatik.',
            healthCheckFrequencyLimit:
                'Kekerapan pemeriksaan tidak boleh melebihi satu hari dan mesti berupa integer bukan negatif.',
            autoCheckFailedNodes: 'Periksa nod gagal secara automatik',
            autoCheckFailedNodesHelper:
                'Semasa pemeriksaan automatik, periksa juga nod yang berstatus gagal atau tidak sihat. Hanya terpakai apabila kekerapan pemeriksaan bukan 0.',
            loadFailedNodeResources: 'Segar semula sumber nod gagal',
            loadFailedNodeResourcesHelper:
                'Apabila menyegar semula senarai nod, turut dapatkan maklumat sumber untuk nod berstatus gagal atau tidak sihat.',
            nodeUnhealthy: 'Status nod tidak normal',
            deletedNode: 'Nod {0} yang telah dipadam tidak menyokong operasi naik taraf buat masa ini!',
            nodeUnhealthyHelper: 'Status nod tidak normal dikesan. Sila semak dalam [Pengurusan Nod] dan cuba lagi!',
            nodeUnbind: 'Nod tidak terikat pada lesen',
            nodeUnbindHelper:
                'Terdeteksi nod ini tidak terikat pada lesen. Sila ikat dalam menu [Tetapan Panel - Lesen] dan cuba lagi!',
            memTotal: 'Jumlah Memori',
            nodeManagement: 'Pengurusan Multi-Mesin',
            multiOverview: 'Multi-Mesin',
            commonNodes: 'Nod Kerap Digunakan',
            searchNodePlaceholder: 'Cari nama nod, kumpulan atau alamat',
            nodeItem: 'Pengurusan Nod',
            panelItem: 'Pengurusan Panel',
            addPanel: 'Tambah Panel',
            addPanelHelper:
                'Selepas berjaya menambah panel, anda boleh mengakses panel sasaran dengan pantas di [Gambaran Keseluruhan - Panel].',
            panel: 'Panel 1Panel',
            others: 'Panel Lain',
            addNode: 'Tambah Nod',
            connInfo: 'Maklumat Sambungan',
            nodeInfo: 'Maklumat Nod',
            withProxy: 'Dayakan Akses Proksi',
            withoutProxy: 'Lumpuhkan Akses Proksi',
            withProxyHelper:
                'Akan menggunakan proksi sistem {0} yang dikekalkan dalam tetapan panel untuk mengakses nod anak. Teruskan?',
            withoutProxyHelper:
                'Akan berhenti menggunakan proksi sistem yang dikekalkan dalam tetapan panel untuk mengakses nod anak. Teruskan?',
            syncInfo: 'Penyegerakan data,',
            syncHelper: 'Apabila data nod induk berubah, ia akan disegerakkan ke nod anak ini secara masa nyata,',
            syncBackupAccount: 'Tetapan akaun sandaran',
            syncWithMaster:
                'Selepas menaik taraf ke Edisi Komersial, semua data akan diselaraskan secara lalai. Dasar penyelarasan boleh disesuaikan secara manual dalam pengurusan nod.',
            syncProxy: 'Tetapan proksi sistem',
            syncProxyHelper: 'Penyelarasan tetapan proksi sistem memerlukan mulakan semula Docker',
            syncProxyHelper1: 'Memulakan semula Docker mungkin menjejaskan perkhidmatan kontena yang sedang berjalan.',
            syncProxyHelper2: 'Anda boleh mulakan semula secara manual di halaman Kontena - Konfigurasi.',
            syncProxyHelper3:
                'Penyelarasan tetapan proksi sistem memerlukan mulakan semula Docker, yang mungkin menjejaskan perkhidmatan kontena yang sedang berjalan',
            syncProxyHelper4:
                'Penyelarasan tetapan proksi sistem memerlukan mulakan semula Docker. Anda boleh mulakan semula secara manual di halaman Kontena - Konfigurasi nanti.',
            syncCustomApp: 'Segerakan Repositori Aplikasi Tersuai',
            syncAlertSetting: 'Tetapan amaran sistem',
            syncNodeInfo: 'Data asas nod,',
            nodeSyncHelper: 'Penyelarasan maklumat nod akan menyelaraskan maklumat berikut:',
            nodeSyncHelper1: '1. Maklumat akaun sandaran awam',
            nodeSyncHelper2: '2. Maklumat sambungan antara nod utama dan nod sub',
            nodeCheck: 'Semakan ketersediaan',
            checkSSH: 'Periksa sambungan SSH nod',
            checkUserPermission: 'Semak kebenaran pengguna nod',
            isNotRoot: 'Dikesan sudo tanpa kata laluan tidak disokong pada nod ini dan pengguna semasa bukan root',
            checkLicense: 'Periksa status lesen nod',
            checkService: 'Periksa maklumat perkhidmatan sedia ada pada nod',
            checkPort: 'Periksa kebolehcapaian port nod',
            panelExist:
                'Mengesan nod ini sedang menjalankan perkhidmatan 1Panel V1. Sila naik taraf ke V2 menggunakan skrip migrasi sebelum menambah.',
            coreExist:
                'Nod semasa telah didayakan sebagai nod induk dan tidak boleh ditambah terus sebagai nod hamba. Sila turun taraf kepada nod hamba terlebih dahulu sebelum menambah, rujuk dokumentasi untuk butiran.',
            agentExist:
                'Mengesan 1panel-agent telah dipasang pada nod ini. Penerusan akan mengekalkan data sedia ada dan hanya menggantikan perkhidmatan 1panel-agent.',
            agentNotExist:
                'Terdapat pengesahan bahawa 1panel-agent tidak dipasang pada nod ini, maklumat nod tidak boleh disunting secara langsung. Sila padam dan tambah semula.',
            oldDataExist:
                'Mengesan data sejarah 1Panel V2 pada nod ini. Maklumat berikut akan digunakan untuk menimpa tetapan semasa:',
            errLicense: 'Lesen yang terikat pada nod ini tidak tersedia. Sila semak dan cuba lagi!',
            errNodePort:
                'Port nod [ {0} ] dikesan tidak boleh diakses. Sila semak sama ada firewall atau kumpulan keselamatan telah membenarkan port ini.',
            reinstallHelper: 'Pasang semula nod {0}, adakah anda ingin meneruskan?',
            unhealthyCheck: 'Pemeriksaan Tidak Normal',
            fixOperation: 'Operasi Pembetulan',
            checkName: 'Item Pemeriksaan',
            checkSSHConn: 'Periksa Ketersediaan Sambungan SSH',
            fixSSHConn: 'Edit nod secara manual untuk mengesahkan maklumat sambungan',
            checkConnInfo: 'Periksa Maklumat Sambungan Ejen',
            checkStatus: 'Periksa Ketersediaan Perkhidmatan Nod',
            fixStatus:
                'Jalankan "systemctl status 1panel-agent.service" untuk memeriksa sama ada perkhidmatan sedang berjalan.',
            checkAPI: 'Periksa Ketersediaan API Nod',
            fixAPI: 'Semak log nod dan periksa sama ada port firewall dibuka dengan betul.',
            forceDelete: 'Hapus Secara Paksa',
            operateHelper: 'Operasi {0} akan dilakukan pada nod berikut, adakah anda ingin meneruskan?',
            operatePanelHelper: 'Operasi {0} akan dilakukan pada panel berikut. Teruskan?',
            forceDeleteHelper:
                'Hapus secara paksa akan mengabaikan ralat penghapusan nod dan menghapus metadata pangkalan data',
            uninstall: 'Padam data nod',
            uninstallHelper: 'Ini akan memadamkan semua data berkaitan 1Panel bagi nod. Pilih dengan berhati-hati!',
            baseDir: 'Direktori Pemasangan',
            baseDirHelper: 'Apabila direktori pemasangan kosong, secara lalai akan dipasang di direktori /opt',
            nodePort: 'Port Nod',
            offline: 'Mod luar talian',
            freeCount: 'Had percuma [{0}]',
            offlineHelper: 'Digunakan apabila nod berada dalam persekitaran luar talian',
            appUpgrade: 'Naik Taraf Apl',
            appUpgradeHelper: 'Terdapat {0} apl yang perlu dinaik taraf',
            dashboardSetting: 'Tetapan Gambaran Keseluruhan',
            keepOneDashboardComponent: 'Kekalkan sekurang-kurangnya satu bahagian gambaran keseluruhan',
        },
        customApp: {
            name: 'Repositori Aplikasi Khusus',
            appStoreType: 'Sumber Pakej App Store',
            appStoreUrl: 'URL Repositori',
            local: 'Laluan Tempatan',
            remote: 'Pautan Jauh',
            imagePrefix: 'Awalan Imej',
            imagePrefixHelper:
                'Fungsi: Sesuaikan awalan imej dan ubah medan imej dalam fail compose. Contohnya, apabila awalan imej ditetapkan kepada 1panel/custom, medan imej untuk MaxKB akan bertukar kepada 1panel/custom/maxkb:v1.10.0',
            closeHelper: 'Batalkan penggunaan repositori aplikasi khusus',
            appStoreUrlHelper: 'Hanya format .tar.gz disokong',
            postNode: 'Segerakkan ke sub-node',
            postNodeHelper:
                'Segerakan pakej kedai tersuai ke tmp/customApp/apps.tar.gz dalam direktori pemasangan nod anak',
            nodes: 'Pilih Node',
            selectNode: 'Pilih Node',
            selectNodeError: 'Sila pilih node',
            licenseHelper: 'Versi Komersial menyokong fungsi gudang aplikasi tersuai',
            databaseHelper: 'Pangkalan data berkaitan aplikasi, sila pilih pangkalan data nod sasaran',
            nodeHelper: 'Tidak boleh memilih nod semasa',
            migrateHelper:
                'Kini hanya menyokong penghijrahan aplikasi monolitik dan aplikasi yang hanya dikaitkan dengan pangkalan data MySQL, MariaDB, PostgreSQL',
            opensslHelper:
                'Jika menggunakan sandaran terenkripsi, versi OpenSSL antara dua nod mesti konsisten, jika tidak penghijrahan mungkin gagal.',
            installApp: 'Pemasangan kelompok',
            installAppHelper: 'Pasang aplikasi secara kelompok ke nod yang dipilih',
        },
        alert: {
            isAlert: 'Amaran',
            alertCount: 'Bilangan Amaran',
            clamHelper: 'Hantar amaran apabila terdapat fail yang dijangkiti semasa imbasan',
            cronJobHelper: 'Hantar amaran apabila pelaksanaan tugas gagal',
            licenseHelper: 'Edisi Komersial menyokong lebih banyak saluran amaran',
            alertCountHelper: 'Kekerapan maksimum amaran harian',
            alert: 'Amaran SMS',
            logs: 'Log Amaran',
            list: 'Senarai Amaran',
            addTask: 'Cipta Amaran',
            editTask: 'Edit Amaran',
            alertMethod: 'Kaedah',
            alertMsg: 'Mesej Amaran',
            alertRule: 'Peraturan Amaran',
            titleSearchHelper: 'Masukkan tajuk amaran untuk pencarian kabur',
            taskType: 'Jenis',
            ssl: 'Sijil Tamat Tempoh',
            siteEndTime: 'Tamat Tempoh Laman Web',
            panelPwdEndTime: 'Kata Laluan Panel Tamat Tempoh',
            panelUpdate: 'Versi Panel Baharu Tersedia',
            cpu: 'Amaran CPU Pelayan',
            memory: 'Amaran Memori Pelayan',
            load: 'Amaran Beban Pelayan',
            disk: 'Amaran Cakera Pelayan',
            website: 'Laman Web',
            certificate: 'Sijil SSL',
            remainingDays: 'Hari yang Tinggal',
            sendCount: 'Bilangan Hantar',
            recipientPlaceholder: 'Masukkan alamat e-mel',
            addRecipient: 'Tambah penerima',
            webhookItem: 'Pautan Webhook',
            addWebhook: 'Tambah Webhook',
            selectAlertType: 'Pilih jenis amaran',
            configDetail: 'Konfigurasi butiran',
            webhookCount: 'Bilangan Webhook',
            sms: 'SMS',
            wechat: 'WeChat',
            dingTalk: 'DingTalk',
            feiShu: 'FeiShu',
            mail: 'E-mel',
            email: 'E-mel',
            weCom: 'WeCom',
            bark: 'Bark',
            sendCountRulesHelper: 'Jumlah amaran dihantar sebelum tamat tempoh (sekali sehari)',
            panelUpdateRulesHelper: 'Jumlah amaran dihantar untuk versi panel baharu (sekali sehari)',
            oneDaySendCountRulesHelper: 'Maksimum amaran dihantar setiap hari',
            siteEndTimeRulesHelper: 'Laman web yang tidak pernah tamat tempoh tidak akan mencetuskan amaran',
            autoRenewRulesHelper:
                'Sijil dengan pembaharuan automatik diaktifkan dan baki hari kurang daripada 31 tidak akan mencetuskan amaran',
            panelPwdEndTimeRulesHelper:
                'Amaran tamat tempoh kata laluan panel tidak tersedia jika tiada tempoh tamat ditetapkan',
            sslRulesHelper: 'Semua Sijil SSL',
            diskInfo: 'Cakera',
            monitoringType: 'Jenis Pemantauan',
            autoRenew: 'Pembaharuan Automatik',
            useDisk: 'Penggunaan Cakera',
            usePercentage: 'Peratusan Penggunaan',
            changeStatus: 'Tukar Status',
            disableMsg:
                'Menghentikan tugas amaran akan menghalang tugas ini daripada menghantar mesej amaran. Adakah anda ingin meneruskan?',
            enableMsg:
                'Mengaktifkan tugas amaran akan membolehkan tugas ini menghantar mesej amaran. Adakah anda ingin meneruskan?',
            useExceed: 'Penggunaan Melebihi',
            useExceedRulesHelper: 'Cetuskan amaran apabila penggunaan melebihi nilai yang ditetapkan',
            cpuUseExceedAvg: 'Penggunaan CPU purata melebihi nilai yang ditetapkan',
            memoryUseExceedAvg: 'Penggunaan memori purata melebihi nilai yang ditetapkan',
            loadUseExceedAvg: 'Penggunaan beban purata melebihi nilai yang ditetapkan',
            cpuUseExceedAvgHelper: 'Penggunaan CPU purata dalam masa tertentu melebihi nilai yang ditetapkan',
            memoryUseExceedAvgHelper: 'Penggunaan memori purata dalam masa tertentu melebihi nilai yang ditetapkan',
            loadUseExceedAvgHelper: 'Penggunaan beban purata dalam masa tertentu melebihi nilai yang ditetapkan',
            resourceAlertRulesHelper: 'Nota: Amaran berterusan dalam masa 30 minit hanya akan menghantar satu',
            specifiedTime: 'Masa Tertentu',
            deleteTitle: 'Padam Amaran',
            deleteMsg: 'Adakah anda pasti ingin memadam tugas amaran?',
            allSslTitle: 'Semua Amaran Tamat Tempoh Sijil SSL Laman Web',
            sslTitle: 'Amaran Tamat Tempoh Sijil SSL untuk Laman Web {0}',
            allSiteEndTimeTitle: 'Semua Amaran Tamat Tempoh Laman Web',
            siteEndTimeTitle: 'Amaran Tamat Tempoh Laman Web {0}',
            panelPwdEndTimeTitle: 'Amaran Tamat Tempoh Kata Laluan Panel',
            panelUpdateTitle: 'Pemberitahuan Versi Panel Baharu',
            cpuTitle: 'Amaran Penggunaan CPU Tinggi',
            memoryTitle: 'Amaran Penggunaan Memori Tinggi',
            loadTitle: 'Amaran Beban Tinggi',
            diskTitle: 'Amaran Penggunaan Cakera Tinggi untuk Direktori {0}',
            allDiskTitle: 'Amaran Penggunaan Cakera Tinggi',
            timeRule: 'Masa baki kurang daripada {0} hari (jika tidak diurus, akan dihantar semula keesokan hari)',
            panelUpdateRule:
                'Hantar satu amaran apabila versi panel baharu dikesan (jika tidak diurus, akan dihantar semula keesokan hari)',
            avgRule:
                'Purata penggunaan {1} melebihi {2}% dalam {0} minit, mencetuskan amaran, dihantar {3} kali sehari',
            diskRule:
                'Penggunaan cakera untuk direktori {0} melebihi {1}{2}, mencetuskan amaran, dihantar {3} kali sehari',
            allDiskRule: 'Penggunaan cakera melebihi {0}{1}, mencetuskan amaran, dihantar {2} kali sehari',
            cpuName: ' CPU ',
            memoryName: 'Memori',
            loadName: 'Beban',
            diskName: 'Cakera',
            syncAlertInfo: 'Tekan Manual',
            syncAlertInfoMsg: 'Adakah anda ingin menekan tugas amaran secara manual?',
            pushError: 'Tekanan Gagal',
            pushSuccess: 'Tekanan Berjaya',
            syncError: 'Penyelarasan Gagal',
            success: 'Amaran Berjaya',
            pushing: 'Sedang menghantar...',
            error: 'Amaran gagal',
            cleanLog: 'Bersihkan Log',
            cleanAlertLogs: 'Bersihkan Log Amaran',
            daily: 'Bilangan Amaran Harian: {0}',
            cumulative: 'Bilangan Amaran Kumulatif: {0}',
            clams: 'Imbasan Virus',
            taskName: 'Nama Tugas',
            cronJobType: 'Jenis Tugas',
            clamPath: 'Direktori Imbasan',
            cronjob: 'Pelaksanaan tugas berjadual {0} gagal',
            app: 'Sandaran Aplikasi',
            web: 'Sandaran Laman Web',
            database: 'Sandaran Pangkalan Data',
            directory: 'Sandaran Direktori',
            log: 'Log Sandaran',
            snapshot: 'Snapshot Sistem',
            clamsRulesHelper: 'Tugas imbasan virus yang memerlukan amaran',
            cronJobRulesHelper: 'Jenis tugas berjadual ini perlu dikonfigurasikan',
            clamsTitle: 'Tugas imbasan virus 「 {0} 」 mengesan amaran fail dijangkiti',
            cronJobAppTitle: 'Cronjob - Sandaran Aplikasi 「 {0} 」 Amaran Kegagalan Tugas',
            cronJobWebsiteTitle: 'Cronjob - Sandaran Laman Web 「 {0} 」 Amaran Kegagalan Tugas',
            cronJobDatabaseTitle: 'Cronjob - Sandaran Pangkalan Data 「 {0} 」 Amaran Kegagalan Tugas',
            cronJobDirectoryTitle: 'Cronjob - Sandaran Direktori 「 {0} 」 Amaran Kegagalan Tugas',
            cronJobLogTitle: 'Cronjob - Sandaran Log 「 {0} 」 Amaran Kegagalan Tugas',
            cronJobSnapshotTitle: 'Cronjob - Sandaran Snapshot 「 {0} 」 Amaran Kegagalan Tugas',
            cronJobShellTitle: 'Cronjob - Skrip Shell 「 {0} 」 Amaran Kegagalan Tugas',
            cronJobCurlTitle: 'Cronjob - Akses URL 「 {0} 」 Amaran Kegagalan Tugas',
            cronJobCutWebsiteLogTitle: 'Cronjob - Potong log laman web 「 {0} 」 Amaran Kegagalan Tugas',
            cronJobCleanTitle: 'Cronjob - Pembersihan Cache 「 {0} 」 Amaran Kegagalan Tugas',
            cronJobNtpTitle: 'Cronjob - Penyelarasan masa pelayan 「 {0} 」 Amaran Kegagalan Tugas',
            clamsRule: 'Imbasan virus mengesan fail dijangkiti, dihantar {0} kali sehari',
            cronJobAppRule: 'Amaran kegagalan tugas sandaran aplikasi, dihantar {0} kali sehari',
            cronJobWebsiteRule: 'Amaran kegagalan tugas sandaran laman web, dihantar {0} kali sehari',
            cronJobDatabaseRule: 'Amaran kegagalan tugas sandaran pangkalan data, dihantar {0} kali sehari',
            cronJobDirectoryRule: 'Amaran kegagalan tugas sandaran direktori, dihantar {0} kali sehari',
            cronJobLogRule: 'Amaran kegagalan tugas sandaran log, dihantar {0} kali sehari',
            cronJobSnapshotRule: 'Amaran kegagalan tugas sandaran snapshot, dihantar {0} kali sehari',
            cronJobShellRule: 'Amaran kegagalan tugas skrip shell, dihantar {0} kali sehari',
            cronJobCurlRule: 'Amaran kegagalan tugas akses URL, dihantar {0} kali sehari',
            cronJobCutWebsiteLogRule: 'Amaran kegagalan tugas potong log laman web, dihantar {0} kali sehari',
            cronJobCleanRule: 'Amaran kegagalan tugas pembersihan cache, dihantar {0} kali sehari',
            cronJobNtpRule: 'Amaran kegagalan tugas penyelarasan masa pelayan, dihantar {0} kali sehari',
            alertSmsHelper: 'Had SMS: jumlah {0} mesej, {1} telah digunakan',
            goBuy: 'Beli Lebih Banyak',
            phone: 'Telefon',
            phoneHelper: 'Berikan nombor telefon sebenar untuk mesej amaran',
            dailyAlertNum: 'Had Amaran Harian',
            dailyAlertNumHelper: 'Bilangan maksimum amaran sehari (sehingga 100)',
            timeRange: 'Julat Masa',
            sendTimeRange: 'Hantar julat masa',
            sendTimeRangeHelper: 'Boleh tekan julat masa {0}',
            to: '-',
            startTime: 'Masa Mula',
            endTime: 'Masa Tamat',
            defaultPhone: 'Secara lalai ke nombor telefon akaun terikat lesen',
            noticeAlert: 'Amaran Pemberitahuan',
            resourceAlert: 'Amaran Sumber',
            agentOfflineAlertHelper:
                'Apabila amaran luar talian diaktifkan untuk nod, nod utama akan mengimbas setiap 30 minit untuk melaksanakan tugas amaran.',
            offline: 'Amaran Luar Talian',
            offlineHelper:
                'Apabila ditetapkan kepada amaran luar talian, nod utama akan mengimbas setiap 30 minit untuk melaksanakan tugas amaran.',
            offlineOff: 'Aktifkan Amaran Luar Talian',
            offlineOffHelper:
                'Mengaktifkan amaran luar talian akan menyebabkan nod utama mengimbas setiap 30 minit untuk melaksanakan tugas amaran.',
            offlineClose: 'Lumpuhkan Amaran Luar Talian',
            offlineCloseHelper:
                'Melumpuhkan amaran luar talian memerlukan subnod untuk mengendalikan amaran secara kendiri. Sila pastikan sambungan rangkaian adalah baik untuk mengelakkan kegagalan amaran.',
            alertNotice: 'Pemberitahuan Amaran',
            methodConfig: 'Konfigurasi Kaedah Pemberitahuan',
            createMethod: 'Cipta Kaedah Pemberitahuan',
            methodInvalid: 'Konfigurasi tidak sah {0}',
            commonConfig: 'Konfigurasi Global',
            smsConfig: 'SMS',
            smsConfigHelper: 'Konfigurasi nombor untuk pemberitahuan SMS',
            emailConfig: 'E-mel',
            emailConfigHelper: 'Konfigurasi perkhidmatan penghantaran e-mel SMTP',
            deleteConfigTitle: 'Padam Konfigurasi Amaran',
            deleteConfigMsg: 'Adakah anda pasti mahu memadam konfigurasi amaran?',
            test: 'Ujian',
            alertTestOk: 'Pemberitahuan ujian berjaya',
            alertTestFailed: 'Pemberitahuan ujian gagal',
            displayName: 'Nama',
            sender: 'Pengirim',
            password: 'Kata Laluan',
            host: 'Pelayan SMTP',
            port: 'Nombor Port',
            encryption: 'Penyulitan',
            recipient: 'Penerima',
            licenseTime: 'Peringatan Tamat Tempoh Lesen',
            licenseTimeTitle: 'Peringatan Tamat Tempoh Lesen',
            displayNameHelper: 'Nama paparan pengirim e-mel',
            senderHelper: 'Alamat e-mel yang digunakan untuk menghantar e-mel',
            passwordHelper: 'Kod kebenaran untuk perkhidmatan e-mel',
            hostHelper: 'Alamat pelayan SMTP, contoh: smtp.qq.com',
            portHelper: 'SSL biasanya 465, TLS biasanya 587',
            sslHelper: 'Jika port SMTP ialah 465, SSL biasanya diperlukan',
            tlsHelper: 'Jika port SMTP ialah 587, TLS biasanya diperlukan',
            triggerCondition: 'Syarat Pencetus',
            loginFail: ' kegagalan log masuk dalam',
            nodeException: 'Amaran Kerosakan Nod',
            licenseException: 'Amaran Kerosakan Lesen',
            panelLogin: 'Amaran Log Masuk Panel Tidak Normal',
            sshLogin: 'Amaran Log Masuk SSH Tidak Normal',
            panelIpLogin: 'Amaran IP Log Masuk Panel Tidak Normal',
            sshIpLogin: 'Amaran IP Log Masuk SSH Tidak Normal',
            ipWhiteListHelper:
                'IP dalam senarai putih tidak tertakluk kepada peraturan, dan tiada amaran akan dikeluarkan apabila log masuk berjaya',
            nodeExceptionRule: 'Amaran kerosakan nod, dihantar {0} kali sehari',
            licenseExceptionRule: 'Amaran kerosakan lesen, dihantar {0} kali sehari',
            panelLoginRule: 'Amaran log masuk panel, dihantar {0} kali sehari',
            sshLoginRule: 'Amaran log masuk SSH, dihantar {0} kali sehari',
            userNameHelper: 'Nama pengguna kosong, alamat penghantar akan digunakan secara lalai',
            alertConfigHelper: 'Konfigurasikan saluran pemberitahuan amaran untuk menerima tolakan mesej panel',
            weComConfigHelper: 'Konfigurasi pemberitahuan amaran WeCom',
            wechatConfigHelper: 'Konfigurasi pemberitahuan amaran Akaun Rasmi WeChat',
            dingTalkConfigHelper: 'Konfigurasi pemberitahuan amaran DingTalk',
            feiShuConfigHelper: 'Konfigurasi pemberitahuan amaran Feishu',
            barkConfigHelper: 'Konfigurasi pemberitahuan amaran Bark',
            webhookName: 'Nama bot',
            webhookUrl: 'URL Webhook',
            alertConfigProHelper: 'Edisi Komersial turut menyokong amaran WeCom, DingTalk, Feishu dan SMS.',
        },
        theme: {
            lingXiaGold: 'LXware Gold',
            classicBlue: 'Biru Klasik',
            freshGreen: 'Hijau Segar',
            customColor: 'Warna Tersuai',
            setDefault: 'Lalai',
            setDefaultHelper: 'Skema warna tema akan dipulihkan ke keadaan asalnya. Adakah anda ingin meneruskan?',
            setHelper: 'Skema warna tema yang dipilih sekarang akan disimpan. Adakah anda ingin meneruskan?',
        },
        sync: {
            menu: 'Penyegerakan Sumber',
            file: 'Pemindahan Fail',
            fileSyncConfirm: 'Pindahkan fail/folder {1} dari nod {0} ke direktori {3} pada nod {2}?',

            image: 'Pemindahan Imej',
            imageBatchDesc:
                'Pilih nod sumber dan imej sumber terlebih dahulu, kemudian pilih nod sasaran untuk pemindahan.',
            imageBatchConfirmPrefix: 'Akan memindahkan {0} imej ke {1} nod, dengan jumlah {2} tugasan.',

            ssl: 'Penyegerakan Sijil',
            sslBatchDesc:
                'Selepas memilih nod sumber, sijil yang ditentukan boleh disegerakkan ke persekitaran panel semasa.',
            sslBatchConfirmPrefix: 'Akan menyegerakkan {0} sijil ke {1} nod, dengan jumlah {2} tugasan.',

            app: 'Pemindahan Aplikasi',
            appBatchDesc:
                'Pilih nod sumber, aplikasi dan nod sasaran, kemudian sahkan kebergantungan sumber dan jalankan tugas pemindahan aplikasi.',
            appSelectedApp: 'Aplikasi Dipilih:',
            appPreviewTitle: 'Pratonton Pemindahan',
            appPreviewDesc: 'Sahkan nod sasaran dan sumber bergantung sebelum memulakan pemindahan aplikasi.',
            appDatabaseDependency: 'Kebergantungan Pangkalan Data',
            appResourceRequired: 'Sila pilih semua sumber berkaitan yang diperlukan terlebih dahulu.',
            appUnsupportedMultipleResources:
                'Pada masa ini, hanya aplikasi yang dikaitkan dengan maksimum satu sumber boleh dipindahkan.',
            appUnsupportedResourceType:
                'Pada masa ini, hanya aplikasi tanpa kebergantungan sumber atau yang bergantung pada MySQL, MariaDB atau PostgreSQL sahaja boleh dipindahkan.',

            targetTitle: 'Nod Sasaran',
            targetDesc:
                'Nod sumber akan dikecualikan secara automatik. Anda boleh memilih satu atau lebih nod sasaran.',
            targetSearchPlaceholder: 'Cari nama atau alamat nod',
            noTargetNodes: 'Tiada nod sasaran tersedia',
            noSourceNode: 'Sila pilih nod sumber terlebih dahulu',
            reviewTargets: 'Nod Sasaran',
            reviewEmpty: 'Sila pilih sumber dan nod sasaran terlebih dahulu',
            selectSourceFirst: 'Sila pilih nod sumber terlebih dahulu.',
            selectResourceFirst: 'Sila pilih sumber untuk disegerakkan terlebih dahulu.',
            selectTargetFirst: 'Sila pilih sekurang-kurangnya satu nod sasaran.',
            submitSuccess: 'Tugas penyegerakan berjaya dihantar.',
        },
        vm: {
            vm: 'Mesin Maya',
            title: 'Pengurusan Mesin Maya',
            healthCheck: 'Pemeriksaan kesihatan',
            healthCheckResult: {
                pass: 'Lulus',
                info: 'Maklumat',
                warn: 'Amaran',
                fail: 'Gagal',
                normal: 'Normal',
                fixCommand: 'Perintah pembaikan',
                technicalDetail: 'Butiran teknikal',
                check: {
                    vmName: 'Nama mesin maya',
                    libvirtConnection: 'Sambungan Libvirt',
                    vmDefinition: 'Takrif mesin maya',
                    domainXML: 'XML mesin maya',
                    architecture: 'Seni bina',
                    virtualizationType: 'Jenis pemayaan',
                    machineType: 'Jenis mesin',
                    efiCapability: 'Keupayaan EFI',
                    qemuEmulator: 'Emulator QEMU',
                    bootOrder: 'Turutan but',
                    arm64Firmware: 'Perisian tegar ARM64',
                    arm64Features: 'Ciri ARM64',
                    arm64Video: 'Paparan ARM64',
                    arm64FirmwareFile: 'Fail perisian tegar ARM64',
                    arm64CDROM: 'CD-ROM ARM64',
                    blockDevice: 'Peranti blok',
                    isoArchitecture: 'Seni bina ISO',
                    network: 'Rangkaian',
                    qemuLog: 'Log QEMU',
                    arm64RuntimeFirmware: 'Perisian tegar masa jalan ARM64',
                },
                reason: {
                    invalidName: 'Nama mesin maya tidak sah.',
                    connectionFailed: 'Tidak dapat menyambung ke {uri}.',
                    vmNotFound: 'Mesin maya {name} tidak ditemui.',
                    xmlReadFailed: 'Gagal membaca XML mesin maya.',
                    liveXMLFallback:
                        'Konfigurasi kekal tidak dapat dibaca; konfigurasi yang sedang berjalan digunakan.',
                    xmlParseFailed: 'Gagal menghuraikan XML mesin maya.',
                    stateReadFailed:
                        'Keadaan mesin maya tidak dapat ditentukan. Pemeriksaan perisian tegar masa jalan dilangkau.',
                    guestArchMissing: 'Seni bina tetamu tiada dalam XML.',
                    archMismatch:
                        'Seni bina hos ialah {hostArch}, manakala seni bina tetamu ialah {guestArch}. Pelaksanaan merentas seni bina tidak disokong.',
                    nonKVMType: 'Jenis pemayaan ialah {type}, bukan jenis KVM lalai.',
                    archOrMachineMissing: 'Seni bina atau jenis mesin tiada dalam XML.',
                    machineUnsupported: 'Hos tidak menyokong {arch}/{machine}.',
                    emulatorNotSpecified: 'Tiada emulator dinyatakan dalam XML; Libvirt akan memilihnya.',
                    fileNotFound: 'Fail tidak ditemui: {path}',
                    fileNotExecutable: 'Fail tidak boleh dilaksanakan: {path}',
                    bootDeviceMissing: 'Tiada peranti but ditakrifkan dalam XML.',
                    diskNotFirst: 'Cakera bukan peranti but pertama. Turutan semasa: {order}',
                    cdromNotInBootOrder: 'CD-ROM disambungkan tetapi tidak disertakan dalam turutan but.',
                    firmwareNotConfigured:
                        'EFI atau Loader tidak dikonfigurasi, jadi tetamu mungkin gagal memulakan paparan atau but.',
                    acpiCustom: 'ACPI dikonfigurasi. Sahkan bahawa tetamu memerlukan penyesuaian ini.',
                    acpiRequiresUEFI: 'ACPI dikonfigurasi tanpa UEFI, menyebabkan ralat ACPI requires UEFI.',
                    apicUnsupported: 'x86 APIC dikonfigurasi tetapi tidak sah untuk ARM64.',
                    gicNotDeclared: 'GIC tiada dalam XML kekal; Libvirt mungkin menambahnya semasa berjalan.',
                    videoNotConfigured: 'Tiada peranti paparan dikonfigurasi dalam XML.',
                    videoNotVirtio: 'Jenis peranti paparan ialah {type}; Virtio disyorkan.',
                    firmwareFileMissing: 'Fail perisian tegar tidak wujud atau bukan fail biasa: {path}',
                    firmwareNotAvailable:
                        'Libvirt tidak melaporkan keupayaan EFI dan perisian tegar UEFI ARM64 tidak ditemui.',
                    cdromBusNotSCSI: 'CD-ROM menggunakan bas {bus}; ARM64 memerlukan SCSI.',
                    cdromNotOnVirtioSCSI: 'CD-ROM tidak disambungkan kepada pengawal Virtio SCSI.',
                    diskSourceMissing: 'Tiada fail sumber dikonfigurasi untuk {device} {target}.',
                    sourceNotFound: 'Fail sumber untuk {device} {target} tidak wujud: {path}',
                    sourceIsDirectory: 'Laluan sumber untuk {device} {target} ialah direktori: {path}',
                    systemDiskNotFound: 'Tiada cakera sistem dikesan.',
                    isoArchMismatch:
                        'Tetamu {guestArch} mempunyai imej yang kelihatan untuk {imageArch} disambungkan: {path}',
                    networkReadFailed: 'Tidak dapat membaca rangkaian {name}.',
                    networkStateReadFailed: 'Tidak dapat membaca keadaan rangkaian {name}.',
                    networkInactive: 'Rangkaian {name} wujud tetapi tidak aktif.',
                    logUnavailable: 'Tiada log permulaan tersedia untuk dianalisis.',
                    logErrorsFound: 'Ralat lazim ditemui dalam rekod permulaan terkini.',
                    vmNotRunning: 'Mesin maya tidak berjalan, jadi pemeriksaan argumen masa jalan QEMU dilangkau.',
                    runtimeFirmwareMissing: 'Tiada entri pflash, AAVMF atau QEMU_EFI ditemui dalam log QEMU.',
                },
            },
            dependencies: 'Kebergantungan',
            dependencyPurpose: 'Tujuan',
            dependencyPurposeMap: {
                libvirt: 'Menyediakan perkhidmatan pengurusan VM untuk kitar hayat dan penjadualan sumber.',
                storage: 'Menyediakan direktori storan lalai atau kolam storan untuk fail cakera VM.',
            },
            dependencyNotReady:
                'Semakan kebergantungan VM gagal. Selesaikan kebergantungan sebelum menggunakan mesin maya.',
            helperUnavailable:
                'Permulaan keupayaan VM gagal. Semak log Core atau naik taraf semula sebelum menggunakan mesin maya.',
            cpu: 'CPU',
            memory: 'Memori',
            disk: 'Cakera',
            overview: 'Gambaran keseluruhan',
            kvmUnavailable: 'Tiada keupayaan virtualisasi perkakasan KVM tersedia dikesan.',
            kvmCheckCpu: 'Pastikan CPU hos menyokong virtualisasi Intel VT-x atau AMD-V.',
            kvmCheckBios: 'Dayakan pilihan virtualisasi dalam BIOS/UEFI.',
            kvmCheckModule: 'Pastikan modul kernel kvm, kvm_intel atau kvm_amd dimuatkan dengan betul.',
            kvmCheckDevice:
                'Pastikan /dev/kvm wujud dan persekitaran semasa bukan kontena atau hos awan tanpa sokongan KVM.',
            abnormal: 'Tidak normal',
            resourceOverview: 'Gambaran keseluruhan sumber',
            cpuAllocated: 'CPU diperuntukkan',
            memoryAllocated: 'Memori diperuntukkan',
            storageUsed: 'Storan digunakan',
            riskReminder: 'Peringatan risiko',
            noRisk: 'Tiada risiko',
            runtimeHealth: 'Kesihatan masa jalan',
            runtimeAbnormal: 'Masa jalan VM tidak normal',
            noDependency: 'Tiada data semakan kebergantungan',
            storageOverview: 'Gambaran keseluruhan storan',
            totalAllocated: 'Dikira daripada jumlah konfigurasi VM',
            runningAllocated: 'Peruntukan sedang berjalan: {0}',
            storageAvailable: 'Tersedia: {0}',
            inProgress: 'Sedang berjalan',
            needAttention: 'Perlu perhatian',
            normal: 'Normal',
            environmentRisk: 'Masa jalan VM belum tersedia. Betulkan kebergantungan atau perkhidmatan virtualisasi.',
            storageRisk: 'Penggunaan kolam storan {0} telah mencapai {1}%.',
            abnormalRisk: '{0} VM berada dalam keadaan tidak normal.',
            pausedRisk: '{0} VM dijeda.',
            memoryRisk: 'Peruntukan memori VM telah mencapai {0}%.',
            cpuLimitHelper: 'CPU tersedia semasa: {0} teras',
            cpuLimitExceeded: 'CPU melebihi had. Maksimum tersedia semasa: {0} teras.',
            memoryLimitHelper: 'Memori yang boleh diperuntukkan semasa: {0} (hos mesti merizab {1} memori)',
            memoryLimitExceeded: 'Memori melebihi had. Maksimum semasa yang boleh diperuntukkan: {0}.',
            storageLimitHelper: 'Ruang kosong semasa dalam kolam storan sasaran: {0}',
            storageLimitExceeded: 'Kapasiti cakera melebihi had. Maksimum tersedia semasa: {0}.',
            iso: 'ISO',
            createFromTemplate: 'Cipta daripada templat',
            template: 'Templat',
            templateName: 'Nama templat',
            convertToTemplate: 'Tukar kepada templat',
            sourceVM: 'VM sumber',
            templateSize: 'Saiz templat',
            deleteTemplateConfirm: 'Padam templat {0}. Operasi ini tidak boleh dibuat asal. Teruskan?',
            orphanClean: 'Pembersihan data yatim',
            orphanScan: 'Imbas semula',
            orphanCleanHelper:
                'Hanya fail calon yang tidak dirujuk oleh mesin maya, syot kilat atau templat berdaftar dipaparkan. Sahkan fail tidak lagi digunakan sebelum membersihkannya; operasi ini tidak boleh dibuat asal.',
            orphanSelected: '{0} fail dipilih, jumlah {1}',
            orphanSize: 'Saiz',
            orphanCleanConfirm: 'Bersihkan {0} fail terpilih ({1})? Operasi ini tidak boleh dibuat asal.',
            orphanCleanSuccess: '{0} fail telah dibersihkan dan {1} dibebaskan.',
            orphanType: {
                orphan_domain_disk: 'Cakera yatim',
                orphan_snapshot: 'Syot kilat yatim',
                partial_file: 'Fail tidak lengkap',
            },
            diskSize: 'Saiz Cakera',
            diskPath: 'Laluan Cakera',
            isoPath: 'Laluan ISO',
            storagePool: 'Kolam Storan',
            network: 'Rangkaian',
            bridgeName: 'Nama Bridge',
            natNetworkHelper:
                'VM boleh mengakses rangkaian melalui hos, tetapi peranti luar biasanya tidak boleh mengaksesnya secara langsung.',
            bridgeNetworkHelper:
                'Sambungkan VM ke bridge hos sedia ada (seperti br0). Jika hos mempunyai kad rangkaian tambahan yang tidak digunakan, anda boleh mencipta bridge untuknya dan menggunakannya.',
            bridgeNameHelper:
                'Pilih Linux bridge sedia ada pada hos, seperti br0. NIC fizikal bukan bridge, dan bridge yang diurus docker/libvirt tidak boleh dipilih di sini.',
            natCIDRHelper: 'CIDR, get laluan dan julat DHCP digunakan oleh rangkaian maya NAT baharu.',
            networkCIDR: 'CIDR Rangkaian',
            gateway: 'Get Laluan',
            dhcpStart: 'Mula DHCP',
            dhcpEnd: 'Tamat DHCP',
            bootOrder: 'Susunan But',
            bootDiskFirst: 'Cakera dahulu (HD → CD-ROM)',
            bootIsoFirst: 'ISO dahulu (CD-ROM → HD)',
            bootOrderConfirm:
                'Tukar susunan but kepada {0}? Pada permulaan seterusnya, VM akan mencuba peranti boleh but yang sedang dipasang mengikut susunan ini.',
            startAfterCreate: 'Mula selepas dicipta',
            autoStart: 'Mula automatik',
            resourceAutoStart: 'Mula automatik',
            capacity: 'Kapasiti',
            available: 'Tersedia',
            vmCount: 'VM Terpaut',
            usedIPs: 'IP Digunakan',
            monitor: 'Pemantauan',
            monitorNotReady: 'Mesin maya tidak berjalan. Data pemantauan tidak tersedia.',
            monitorLoadFailed: 'Gagal mendapatkan data pemantauan VM.',
            monitorLoadFailedWithReason: 'Gagal mendapatkan data pemantauan VM: {0}',
            rename: 'Namakan semula',
            newName: 'Nama baru',
            renameHelper: 'Masukkan nama VM baharu. VM mesti dimatikan sebelum dinamakan semula.',
            renameConfirm: 'Namakan semula mesin maya [{0}] kepada [{1}]?',
            renameRunningHelper: 'Matikan mesin maya sebelum menamakannya semula.',
            cpuUsage: 'Penggunaan CPU',
            memoryUsage: 'Penggunaan memori',
            diskIO: 'I/O cakera',
            networkIO: 'I/O rangkaian',
            diskReadWrite: 'Baca / Tulis cakera',
            networkRxTx: 'RX / TX rangkaian',
            rx: 'RX',
            tx: 'TX',
            console: 'Konsol',
            consoleNotReady: 'Konsol VNC tidak tersedia. Mulakan VM dan semak konfigurasi grafik VNC.',
            consoleDisconnected: 'Konsol VNC telah terputus.',
            consoleConnectFailed: 'Gagal menyambung ke konsol VNC. Semak perkhidmatan proksi konsol.',
            consoleCredentialsRequired: 'Konsol VNC memerlukan kelayakan. Semak konfigurasi proksi backend.',
            snapshot: 'Syot kilat',
            createSnapshot: 'Cipta syot kilat',
            recoverSnapshot: 'Pulihkan syot kilat',
            snapshotSize: 'Penggunaan',
            currentSnapshot: 'Semasa',
            snapshotEmpty: 'Tiada syot kilat',
            snapshotHelper:
                'Syot kilat menyimpan keadaan semasa VM sebagai titik pemulihan. Perubahan data seterusnya direkodkan dalam fail delta tanpa mengubah cakera asal. Memulihkan syot kilat mengembalikan VM ke keadaan tersebut.',
            snapshotOperationHelper:
                'Syot kilat semasa tidak boleh dipadam. Syot kilat hanya boleh dipulihkan apabila mesin maya dimatikan.',
            snapshotRecoverConfirm:
                'Pulihkan mesin maya [{1}] kepada syot kilat [{0}]? Cakera VM akan dipulihkan kepada keadaan syot kilat.',
            interface: 'Antara Muka Rangkaian',
            device: 'Peranti',
            path: 'Laluan',
            start: 'Mula',
            shutdown: 'Matikan',
            reboot: 'But Semula',
            destroy: 'Henti Paksa',
            suspend: 'Gantung',
            resume: 'Sambung',
            operateConfirm: 'Sahkan {0} mesin maya [{1}]?',
            forceDelete: 'Padam paksa',
            forceDeleteHelper:
                'Padam paksa akan mengabaikan ralat pemadaman VM, memadam metadata panel dan melepaskan penggunaan sumber.',
            deleteNameHelper: '" untuk memadam mesin maya ini',
            isoSource: 'Sumber ISO',
            downloadFromServer: 'Muat Turun Jauh',
            isoTargetDir: 'Laluan Sasaran ISO',
            isoTargetDirHelper:
                'ISO yang dimuat naik secara tempatan atau dimuat turun daripada pelayan akan disimpan ke direktori ini.',
            addingIsoRecord: 'Menambah rekod ISO',
            transferInProgress: 'Pemindahan ISO sedang berlangsung. Jangan tutup panel atau halaman ini.',
            isoSize: 'Saiz ISO',
            deleteIsoConfirm: 'Operasi pemadaman ini tidak boleh dibuat asal. Teruskan?',
            deleteSourceFile: 'Padam fail sumber',
            deleteSourceFileHelper:
                'Jika ditanda, fail sumber yang dirujuk oleh rekod ISO ini juga akan dipadam dan tidak boleh dipulihkan.',
            dir: 'Direktori Setempat',
        },
        cluster: {
            cluster: 'Aplikasi Tinggi Ketersediaan',
            name: 'Nama Kluster',
            addCluster: 'Tambah Kluster',
            installNode: 'Pasang Node',
            master: 'Node Utama',
            slave: 'Node Hamba',
            replicaStatus: 'Utama-Hamba Status',
            unhealthyDeleteError: 'Status nod pemasangan tidak normal, sila periksa senarai nod dan cuba lagi!',
            replicaStatusError: 'Pengambilan status tidak normal, sila periksa nod utama.',
            masterHostError: 'IP nod utama tidak boleh 127.0.0.1',
        },
    },
    template: {
        create: 'Cipta Templat',
        edit: 'Sunting Templat',
        name: 'Nama Templat',
        type: 'Jenis Templat',
        single: 'Fail Tunggal',
        multi: 'Berbilang Fail (zip)',
        content: 'Kandungan Templat',
        variables: 'Definisi Pemboleh Ubah',
        remark: 'Catatan',
        filePath: 'Laluan Fail',
        upload: 'Muat Naik Zip',
        preview: 'Pratonton',
        previewEmpty: 'Pilih templat untuk pratonton masa nyata',
        generate: 'Jana Output',
        outputName: 'Nama Output',
        outputList: 'Senarai Output',
        outputCreate: 'Jana Output',
        confirmDelete: 'Adakah anda pasti mahu memadam templat ini? Output yang berkaitan juga akan dipadam',
        confirmDeleteOutput: 'Adakah anda pasti mahu memadam output ini?',
        variableKey: 'Nama Pemboleh Ubah',
        variableLabel: 'Label',
        variableType: 'Jenis',
        variableDefault: 'Nilai Lalai',
        variableOptions: 'Pilihan (dipisahkan koma)',
        variableRequired: 'Wajib',
        varTypeText: 'Teks Satu Baris',
        varTypeTextHelper: 'Medan input teks biasa',
        varTypeTextarea: 'Teks Berbilang Baris',
        varTypeTextareaHelper: 'Sesuai untuk perenggan dan teks panjang',
        varTypeNumber: 'Nombor',
        varTypeNumberHelper: 'Input nombor sahaja',
        varTypeSelect: 'Pilihan Juntai Bawah',
        varTypeSelectHelper: 'Pilih daripada pilihan pratetap, pilihan perlu diisi',
        varTypeColor: 'Warna',
        varTypeColorHelper: 'Pemilih warna',
        autoDetectHelper:
            'Pemboleh ubah dalam kurungan kerinting berganda dikesan secara automatik dan ditambah ke jadual',
        selectTemplate: 'Pilih Templat',
        fillVariables: 'Isi Pemboleh Ubah',
        noVariables: 'Tiada pemboleh ubah ditakrifkan dalam templat ini',
        outputSuccess: 'Output berjaya dijana',
        importButton: 'Import daripada Templat',
    },
};

export default {
    ...getFuLocaleMessage('ms'),
    ...message,
};
