feat: update vm and file resources (#13210)

This commit is contained in:
ssongliu
2026-07-07 14:33:34 +08:00
committed by GitHub
parent b8a4e8e9e0
commit 582cf1f533
24 changed files with 259 additions and 41 deletions

View File

@@ -209,7 +209,7 @@ var WebUrlMap = map[string]struct{}{
"/enterprise/ops-report/history": {},
"/enterprise/ops-report/settings": {},
"/enterprise/vm/list": {},
"/enterprise/vm/iso": {},
"/enterprise/vm/isos": {},
"/enterprise/vm/templates": {},
"/enterprise/vm/networks": {},
"/enterprise/vm/storage-pools": {},

View File

@@ -112,6 +112,7 @@ ClusterMasterNotExist: "Cluster master node is disconnected. Delete child nodes.
# virtual machine
ErrVMNotFound: "Virtual machine does not exist"
ErrVMAlreadyExists: "Virtual machine already exists"
ErrVMStoragePathInUse: "Storage pool path is already used by [{{ .name }}]"
ErrVMRunning: "Virtual machine is running"
ErrVMLibvirtConnect: "Failed to connect to libvirt"
ErrVMPermission: "No permission to operate virtual machine: {{ .detail }}"

View File

@@ -112,6 +112,7 @@ ClusterMasterNotExist: "El nodo principal del clúster está desconectado, elimi
# máquina virtual
ErrVMNotFound: "La máquina virtual no existe"
ErrVMAlreadyExists: "La máquina virtual ya existe"
ErrVMStoragePathInUse: "La ruta del pool de almacenamiento ya está usada por [{{ .name }}]"
ErrVMRunning: "La máquina virtual está en ejecución"
ErrVMLibvirtConnect: "Error al conectar con libvirt: {{ .detail }}"
ErrVMPermission: "Sin permiso para operar la máquina virtual: {{ .detail }}"

View File

@@ -112,6 +112,7 @@ ClusterMasterNotExist: "گره اصلی خوشه قطع شده است. گره‌
# ماشین مجازی
ErrVMNotFound: "ماشین مجازی وجود ندارد"
ErrVMAlreadyExists: "ماشین مجازی از قبل وجود دارد"
ErrVMStoragePathInUse: "مسیر استخر ذخیره‌سازی قبلاً توسط [{{ .name }}] استفاده شده است"
ErrVMRunning: "ماشین مجازی در حال اجرا است"
ErrVMLibvirtConnect: "اتصال به libvirt ناموفق بود: {{ .detail }}"
ErrVMPermission: "مجوز عملیات ماشین مجازی وجود ندارد: {{ .detail }}"

View File

@@ -112,6 +112,7 @@ ClusterMasterNotExist: "クラスタのマスターノードが切断されて
# 仮想マシン
ErrVMNotFound: "仮想マシンが存在しません"
ErrVMAlreadyExists: "仮想マシンは既に存在します"
ErrVMStoragePathInUse: "ストレージプールのパスは既に [{{ .name }}] で使用されています"
ErrVMRunning: "仮想マシンは実行中です"
ErrVMLibvirtConnect: "libvirt への接続に失敗しました: {{ .detail }}"
ErrVMPermission: "仮想マシンを操作する権限がありません: {{ .detail }}"

View File

@@ -112,6 +112,7 @@ ClusterMasterNotExist: "클러스터의 마스터 노드가 연결이 끊어졌
# 가상 머신
ErrVMNotFound: "가상 머신이 존재하지 않습니다"
ErrVMAlreadyExists: "가상 머신이 이미 존재합니다"
ErrVMStoragePathInUse: "스토리지 풀 경로가 이미 [{{ .name }}]에서 사용 중입니다"
ErrVMRunning: "가상 머신이 실행 중입니다"
ErrVMLibvirtConnect: "libvirt 연결 실패: {{ .detail }}"
ErrVMPermission: "가상 머신 작업 권한이 없습니다: {{ .detail }}"

View File

@@ -112,6 +112,7 @@ ClusterMasterNotExist: "Node utama kluster terputus, sila padamkan nod anak."
# mesin maya
ErrVMNotFound: "Mesin maya tidak wujud"
ErrVMAlreadyExists: "Mesin maya sudah wujud"
ErrVMStoragePathInUse: "Laluan kolam storan sudah digunakan oleh [{{ .name }}]"
ErrVMRunning: "Mesin maya sedang berjalan"
ErrVMLibvirtConnect: "Gagal menyambung ke libvirt: {{ .detail }}"
ErrVMPermission: "Tiada kebenaran untuk mengendalikan mesin maya: {{ .detail }}"

View File

@@ -112,6 +112,7 @@ ClusterMasterNotExist: "O nó mestre do cluster está desconectado, por favor, e
# máquina virtual
ErrVMNotFound: "Máquina virtual não existe"
ErrVMAlreadyExists: "Máquina virtual já existe"
ErrVMStoragePathInUse: "O caminho do pool de armazenamento já é usado por [{{ .name }}]"
ErrVMRunning: "Máquina virtual está em execução"
ErrVMLibvirtConnect: "Falha ao conectar ao libvirt: {{ .detail }}"
ErrVMPermission: "Sem permissão para operar a máquina virtual: {{ .detail }}"

View File

@@ -112,6 +112,7 @@ ClusterMasterNotExist: "Основной узел кластера отключ
# виртуальная машина
ErrVMNotFound: "Виртуальная машина не существует"
ErrVMAlreadyExists: "Виртуальная машина уже существует"
ErrVMStoragePathInUse: "Путь пула хранения уже используется [{{ .name }}]"
ErrVMRunning: "Виртуальная машина запущена"
ErrVMLibvirtConnect: "Не удалось подключиться к libvirt: {{ .detail }}"
ErrVMPermission: "Нет разрешения на операцию с виртуальной машиной: {{ .detail }}"

View File

@@ -112,6 +112,7 @@ ClusterMasterNotExist: "Küme ana düğümü bağlantısı kesildi, lütfen alt
# sanal makine
ErrVMNotFound: "Sanal makine mevcut değil"
ErrVMAlreadyExists: "Sanal makine zaten mevcut"
ErrVMStoragePathInUse: "Depolama havuzu yolu zaten [{{ .name }}] tarafından kullanılıyor"
ErrVMRunning: "Sanal makine çalışıyor"
ErrVMLibvirtConnect: "libvirt bağlantısı başarısız: {{ .detail }}"
ErrVMPermission: "Sanal makine işlemi için izin yok: {{ .detail }}"

View File

@@ -112,6 +112,7 @@ ClusterMasterNotExist: "叢集主節點失聯,請刪除子節點"
# 虛擬機
ErrVMNotFound: "虛擬機不存在"
ErrVMAlreadyExists: "虛擬機已存在"
ErrVMStoragePathInUse: "儲存池路徑已被 [{{ .name }}] 使用"
ErrVMRunning: "虛擬機正在執行"
ErrVMLibvirtConnect: "連接 libvirt 失敗: {{ .detail }}"
ErrVMPermission: "沒有虛擬機操作權限: {{ .detail }}"

View File

@@ -112,6 +112,7 @@ ClusterMasterNotExist: "集群主节点失联,请删除子节点"
# 虚拟机
ErrVMNotFound: "虚拟机不存在"
ErrVMAlreadyExists: "虚拟机已存在"
ErrVMStoragePathInUse: "存储池路径已被 [{{ .name }}] 使用"
ErrVMRunning: "虚拟机正在运行"
ErrVMLibvirtConnect: "连接 libvirt 失败: {{ .detail }}"
ErrVMPermission: "没有虚拟机操作权限: {{ .detail }}"

View File

@@ -227,6 +227,9 @@ export namespace File {
oldPaths: string[];
newPath: string;
type: string;
name?: string;
cover?: boolean;
coverPaths?: string[];
}
export interface FileDownload {

View File

@@ -5675,7 +5675,6 @@ const message = {
createSnapshot: 'Create Snapshot',
recoverSnapshot: 'Recover Snapshot',
snapshotName: 'Snapshot Name',
snapshotPath: 'Snapshot File',
snapshotSize: 'Snapshot Size',
currentSnapshot: 'Current',
snapshotEmpty: 'No snapshots',
@@ -5691,10 +5690,18 @@ const message = {
suspend: 'Suspend',
resume: 'Resume',
operateConfirm: 'Confirm {0} virtual machine [{1}]?',
forceDeleteConfirm: 'The virtual machine is running. It will be force stopped before deletion. Continue?',
createResource: 'Create {0}',
forceDelete: 'Force delete',
forceDeleteHelper:
'Force delete will ignore VM deletion errors, delete panel metadata, and release resource usage.',
forceDeleteConfirm:
'Force deletion may hide a VM that still exists or is still running on the host if libvirt cleanup fails. Continue?',
deleteNameHelper: '" to delete this virtual machine',
isoSource: 'ISO Source',
isoUploadDirHelper: 'The file will be uploaded to: {0}',
isoTargetDir: 'ISO Save Path',
isoTargetDirHelper: 'Server-selected and locally uploaded ISO files are saved to this directory.',
isoTargetDirAvailable: 'The ISO save path is available.',
isoTargetDirUnavailable: 'The ISO save path must be inside an available VM storage pool.',
checkPath: 'Check',
isoSize: 'ISO Size',
dir: 'Local Directory',
},

View File

@@ -5727,7 +5727,6 @@ const message = {
createSnapshot: 'Create Snapshot',
recoverSnapshot: 'Recover Snapshot',
snapshotName: 'Snapshot Name',
snapshotPath: 'Snapshot File',
snapshotSize: 'Snapshot Size',
currentSnapshot: 'Current',
snapshotEmpty: 'No snapshots',
@@ -5743,11 +5742,20 @@ const message = {
suspend: 'Suspender',
resume: 'Reanudar',
operateConfirm: '¿Confirmar {0} máquina virtual [{1}]?',
forceDelete: 'Forzar eliminación',
forceDeleteHelper:
'La eliminación forzada ignorará los errores al eliminar la VM, borrará los metadatos del panel y liberará el uso de recursos.',
forceDeleteConfirm:
'La máquina virtual está en ejecución. Se detendrá forzosamente antes de eliminarla. ¿Continuar?',
createResource: 'Crear {0}',
'Si falla la limpieza de libvirt, la eliminación forzada puede ocultar una VM que aún existe o sigue ejecutándose en el host. ¿Continuar?',
deleteNameHelper: '" para eliminar esta máquina virtual',
isoSource: 'Origen ISO',
isoUploadDirHelper: 'El archivo se subirá a: {0}',
isoTargetDir: 'Ruta de guardado ISO',
isoTargetDirHelper:
'Los ISO seleccionados desde el servidor y subidos localmente se guardarán en este directorio.',
isoTargetDirAvailable: 'La ruta de guardado ISO está disponible.',
isoTargetDirUnavailable:
'La ruta de guardado ISO debe estar dentro de un pool de almacenamiento de VM disponible.',
checkPath: 'Comprobar',
isoSize: 'Tamaño ISO',
dir: 'Directorio local',
},

View File

@@ -5536,6 +5536,143 @@ const message = {
selectTargetFirst: 'لطفاً حداقل یک گره هدف انتخاب کنید.',
submitSuccess: 'وظیفه همگام‌سازی ارسال شد.',
},
vm: {
vm: 'ماشین مجازی',
title: 'مدیریت ماشین مجازی',
dependencies: 'وابستگی‌ها',
dependencyPurpose: 'کاربرد',
dependencyPurposeMap: {
kvm: 'قابلیت مجازی‌سازی سخت‌افزاری را فراهم می‌کند و پایه اجرای سریع ماشین مجازی است.',
libvirt: 'سرویس مدیریت ماشین مجازی را برای چرخه حیات و زمان‌بندی منابع فراهم می‌کند.',
storage: 'دایرکتوری یا استخر ذخیره‌سازی پیش‌فرض را برای فایل‌های دیسک ماشین مجازی فراهم می‌کند.',
},
dependencyNotReady:
'بررسی وابستگی‌های ماشین مجازی موفق نبود. قبل از استفاده از ماشین مجازی، وابستگی‌ها را برطرف کنید.',
helperUnavailable:
'راه‌اندازی قابلیت ماشین مجازی ناموفق بود. لاگ Core را بررسی کنید یا دوباره ارتقاء دهید.',
helperNotStart: 'محیط اجرای ماشین مجازی آماده نیست. ابتدا سرویس مجازی‌سازی میزبان را برطرف کنید.',
cpu: 'CPU',
memory: 'حافظه',
disk: 'دیسک',
memoryLimitHelper: 'حداکثر حافظه قابل تخصیص: {0}',
memoryLimitExceeded:
'حافظه تخصیص‌یافته به VM از حافظه قابل تخصیص میزبان بیشتر می‌شود. حافظه را کاهش دهید و دوباره تلاش کنید.',
storageLimitHelper: 'فضای آزاد فعلی در استخر ذخیره‌سازی مقصد: {0}',
iso: 'ISO',
createSource: 'منبع ایجاد',
blankDisk: 'دیسک خالی',
template: 'قالب',
templateName: 'نام قالب',
templateHelper: 'دیسک قالب انتخاب‌شده را به طور کامل به عنوان دیسک ماشین مجازی جدید کلون می‌کند.',
convertToTemplate: 'تبدیل به قالب',
sourceVM: 'ماشین مجازی منبع',
templateSize: 'اندازه قالب',
deleteTemplate: 'حذف قالب',
deleteTemplateFile: 'حذف فایل دیسک قالب',
diskSize: 'ظرفیت دیسک',
diskPath: 'مسیر دیسک',
diskPathHelper:
'اختیاری است. اگر خالی باشد، سیستم فایل نام-ماشین-مجازی.qcow2 را در مسیر استخر ذخیره‌سازی انتخاب‌شده ایجاد می‌کند. در صورت وارد کردن، باید مسیر مطلق باشد.',
imagePath: 'مسیر ایمیج',
imagePathHelper: 'اختیاری است. در صورت وارد کردن، باید مسیر مطلق یک ایمیج qcow2 موجود باشد.',
isoPath: 'مسیر ISO',
isoPathHelper: 'اختیاری است. در صورت وارد کردن، باید مسیر مطلق یک ISO موجود باشد.',
storagePool: 'استخر ذخیره‌سازی',
storagePoolHelper:
'به طور پیش‌فرض از استخر ذخیره‌سازی default برای ایجاد و مدیریت حجم‌های دیسک ماشین مجازی استفاده می‌شود.',
network: 'شبکه',
networkHelper:
'به طور پیش‌فرض از شبکه NAT با نام default استفاده می‌شود. همچنین می‌توانید نام یک شبکه libvirt موجود را انتخاب یا وارد کنید.',
bridgeName: 'نام Bridge',
natNetworkHelper:
'NAT یک شبکه مجازی libvirt برای دسترسی خروجی VM ایجاد می‌کند. نام Bridge داخلی خودکار ساخته می‌شود و نیازی به انتخاب کارت شبکه Bridge میزبان نیست.',
bridgeNetworkHelper:
'Bridge ماشین مجازی را به Linux bridge موجود روی میزبان متصل می‌کند تا وارد شبکه لایه ۲ میزبان شود.',
bridgeNameHelper:
'یک Linux bridge موجود روی میزبان، مانند br0، انتخاب کنید. کارت شبکه فیزیکی Bridge نیست و Bridgeهای مدیریت‌شده توسط docker/libvirt را نمی‌توان اینجا انتخاب کرد.',
natCIDRHelper: 'CIDR، دروازه و بازه DHCP برای ایجاد شبکه مجازی NAT استفاده می‌شوند.',
networkCIDR: 'CIDR شبکه',
gateway: 'دروازه',
dhcpStart: 'شروع DHCP',
dhcpEnd: 'پایان DHCP',
bootOrder: 'ترتیب بوت',
bootOrderHelper:
'HD یعنی ابتدا از دیسک بوت شود و اگر دیسک قابل بوت نبود ISO امتحان شود. CD-ROM یعنی ابتدا از ISO بوت شود.',
startAfterCreate: 'شروع پس از ایجاد',
autoStart: 'شروع خودکار',
resourceAutoStart: 'شروع خودکار',
capacity: 'ظرفیت',
available: 'در دسترس',
vmCount: 'ماشین‌های مجازی مرتبط',
usedIPs: 'IPهای استفاده‌شده',
syncFromServer: 'همگام‌سازی از سرور',
notFound: 'وجود ندارد',
resourceStatus: {
running: 'در حال اجرا',
inactive: 'شروع نشده',
building: 'در حال ساخت',
degraded: 'تنزل‌یافته',
inaccessible: 'غیرقابل دسترس',
unknown: 'نامشخص',
},
monitor: 'مانیتورینگ',
monitorNotReady: 'ماشین مجازی در حال اجرا نیست و داده‌های مانیتورینگ در دسترس نیست.',
monitorLoadFailed: 'دریافت داده‌های مانیتورینگ ماشین مجازی ناموفق بود.',
monitorLoadFailedWithReason: 'دریافت داده‌های مانیتورینگ ماشین مجازی ناموفق بود: {0}',
rename: 'تغییر نام',
newName: 'نام جدید',
renameHelper: 'نام جدید ماشین مجازی را وارد کنید. برای تغییر نام، ماشین مجازی باید خاموش باشد.',
renameConfirm: 'ماشین مجازی [{0}] به [{1}] تغییر نام داده شود؟',
renameRunningHelper: 'ابتدا ماشین مجازی را خاموش کنید، سپس نام آن را تغییر دهید.',
cpuUsage: 'مصرف CPU',
memoryUsage: 'مصرف حافظه',
diskIO: 'IO دیسک',
networkIO: 'IO شبکه',
diskReadWrite: 'خواندن / نوشتن دیسک',
networkRxTx: 'دریافت / ارسال شبکه',
rx: 'دریافت',
tx: 'ارسال',
console: 'کنسول',
consoleNotReady: 'کنسول VNC در دسترس نیست. ماشین مجازی را شروع کنید و پیکربندی گرافیکی VNC را بررسی کنید.',
consoleConnecting: 'در حال اتصال به کنسول VNC...',
consoleDisconnected: 'اتصال کنسول VNC قطع شد.',
consoleConnectFailed: 'اتصال به کنسول VNC ناموفق بود. سرویس پراکسی کنسول را بررسی کنید.',
consoleCredentialsRequired:
'کنسول VNC به اطلاعات احراز هویت نیاز دارد. پیکربندی پراکسی بک‌اند را بررسی کنید.',
snapshot: 'اسنپ‌شات',
createSnapshot: 'ایجاد اسنپ‌شات',
recoverSnapshot: 'بازیابی اسنپ‌شات',
snapshotName: 'نام اسنپ‌شات',
snapshotSize: 'اندازه اسنپ‌شات',
currentSnapshot: 'فعلی',
snapshotEmpty: 'اسنپ‌شاتی وجود ندارد',
snapshotRecoverConfirm:
'ماشین مجازی [{1}] به اسنپ‌شات [{0}] بازیابی شود؟ پس از بازیابی، دیسک ماشین مجازی به وضعیت آن اسنپ‌شات برمی‌گردد.',
interface: 'رابط شبکه',
device: 'دستگاه',
path: 'مسیر',
start: 'شروع',
shutdown: 'خاموش کردن',
reboot: 'راه‌اندازی مجدد',
destroy: 'توقف اجباری',
suspend: 'تعلیق',
resume: 'ادامه',
operateConfirm: 'عملیات {0} روی ماشین مجازی [{1}] انجام شود؟',
forceDelete: 'حذف اجباری',
forceDeleteHelper:
'حذف اجباری خطاهای حذف ماشین مجازی را نادیده می‌گیرد، فراداده پنل را حذف می‌کند و منابع را آزاد می‌کند.',
forceDeleteConfirm:
'اگر پاک‌سازی libvirt ناموفق باشد، حذف اجباری ممکن است ماشین مجازی‌ای را که هنوز روی میزبان وجود دارد یا در حال اجرا است پنهان کند. ادامه می‌دهید؟',
deleteNameHelper: '" را برای حذف این ماشین مجازی وارد کنید',
isoSource: 'منبع ISO',
isoTargetDir: 'مسیر ذخیره ISO',
isoTargetDirHelper: 'فایل‌های ISO انتخاب‌شده از سرور و آپلودشده محلی در این دایرکتوری ذخیره می‌شوند.',
isoTargetDirAvailable: 'مسیر ذخیره ISO قابل استفاده است.',
isoTargetDirUnavailable: 'مسیر ذخیره ISO باید داخل یک استخر ذخیره‌سازی ماشین مجازی قابل استفاده باشد.',
checkPath: 'بررسی',
isoSize: 'اندازه ISO',
dir: 'دایرکتوری محلی',
},
cluster: {
cluster: 'کارایی بالا برنامه',
name: 'نام خوشه',

View File

@@ -5692,7 +5692,6 @@ const message = {
createSnapshot: 'Create Snapshot',
recoverSnapshot: 'Recover Snapshot',
snapshotName: 'Snapshot Name',
snapshotPath: 'Snapshot File',
snapshotSize: 'Snapshot Size',
currentSnapshot: 'Current',
snapshotEmpty: 'No snapshots',
@@ -5708,10 +5707,19 @@ const message = {
suspend: '一時停止',
resume: '再開',
operateConfirm: '{0} 仮想マシン [{1}] を実行しますか',
forceDeleteConfirm: '仮想マシンは実行中です削除前に強制停止します続行しますか',
createResource: '{0} を作成',
forceDelete: '強制削除',
forceDeleteHelper:
'強制削除は仮想マシン削除エラーを無視しパネルのメタデータを削除してリソース使用を解放します',
forceDeleteConfirm:
'libvirt のクリーンアップに失敗した場合強制削除によりホスト上にまだ存在または実行中の仮想マシンが隠れる可能性があります続行しますか',
deleteNameHelper: '" と入力してこの仮想マシンを削除',
isoSource: 'ISO ソース',
isoUploadDirHelper: 'ファイルのアップロード先{0}',
isoTargetDir: 'ISO 保存パス',
isoTargetDirHelper:
'サーバーで選択した ISO とローカルアップロードした ISO はこのディレクトリに保存されます',
isoTargetDirAvailable: 'ISO 保存パスは利用可能です',
isoTargetDirUnavailable: 'ISO 保存パスは利用可能な仮想マシンストレージプール内である必要があります',
checkPath: '確認',
isoSize: 'ISO サイズ',
dir: 'ローカルディレクトリ',
},

View File

@@ -5574,7 +5574,6 @@ const message = {
createSnapshot: 'Create Snapshot',
recoverSnapshot: 'Recover Snapshot',
snapshotName: 'Snapshot Name',
snapshotPath: 'Snapshot File',
snapshotSize: 'Snapshot Size',
currentSnapshot: 'Current',
snapshotEmpty: 'No snapshots',
@@ -5590,10 +5589,18 @@ const message = {
suspend: '일시 중지',
resume: '재개',
operateConfirm: '{0} 가상 머신 [{1}]() 실행하시겠습니까?',
forceDeleteConfirm: '가상 머신이 실행 중입니다. 삭제 전에 강제 중지됩니다. 계속하시겠습니까?',
createResource: '{0} 생성',
forceDelete: '강제 삭제',
forceDeleteHelper:
'강제 삭제는 VM 삭제 오류를 무시하고 패널 메타데이터를 삭제하며 리소스 사용을 해제합니다.',
forceDeleteConfirm:
'libvirt 정리에 실패하면 강제 삭제로 인해 호스트에 아직 존재하거나 실행 중인 VM이 숨겨질 있습니다. 계속하시겠습니까?',
deleteNameHelper: '" 입력 가상 머신 삭제',
isoSource: 'ISO 출처',
isoUploadDirHelper: '파일 업로드 위치: {0}',
isoTargetDir: 'ISO 저장 경로',
isoTargetDirHelper: '서버에서 선택한 ISO와 로컬로 업로드한 ISO 파일은 디렉터리에 저장됩니다.',
isoTargetDirAvailable: 'ISO 저장 경로를 사용할 있습니다.',
isoTargetDirUnavailable: 'ISO 저장 경로는 사용 가능한 VM 스토리지 내에 있어야 합니다.',
checkPath: '확인',
isoSize: 'ISO 크기',
dir: '로컬 디렉터리',
},

View File

@@ -5766,7 +5766,6 @@ const message = {
createSnapshot: 'Create Snapshot',
recoverSnapshot: 'Recover Snapshot',
snapshotName: 'Snapshot Name',
snapshotPath: 'Snapshot File',
snapshotSize: 'Snapshot Size',
currentSnapshot: 'Current',
snapshotEmpty: 'No snapshots',
@@ -5782,11 +5781,19 @@ const message = {
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.',
forceDeleteConfirm:
'Mesin maya sedang berjalan. Ia akan dihentikan secara paksa sebelum dipadam. Teruskan?',
createResource: 'Cipta {0}',
'Pemadaman paksa mungkin menyembunyikan VM yang masih wujud atau masih berjalan pada hos jika pembersihan libvirt gagal. Teruskan?',
deleteNameHelper: '" untuk memadam mesin maya ini',
isoSource: 'Sumber ISO',
isoUploadDirHelper: 'Fail akan dimuat naik ke: {0}',
isoTargetDir: 'Laluan Simpan ISO',
isoTargetDirHelper:
'ISO yang dipilih daripada pelayan dan dimuat naik secara setempat akan disimpan dalam direktori ini.',
isoTargetDirAvailable: 'Laluan simpan ISO tersedia.',
isoTargetDirUnavailable: 'Laluan simpan ISO mesti berada dalam storan pool VM yang tersedia.',
checkPath: 'Semak',
isoSize: 'Saiz ISO',
dir: 'Direktori Setempat',
},

View File

@@ -5917,7 +5917,6 @@ const message = {
createSnapshot: 'Create Snapshot',
recoverSnapshot: 'Recover Snapshot',
snapshotName: 'Snapshot Name',
snapshotPath: 'Snapshot File',
snapshotSize: 'Snapshot Size',
currentSnapshot: 'Current',
snapshotEmpty: 'No snapshots',
@@ -5933,11 +5932,19 @@ const message = {
suspend: 'Suspender',
resume: 'Retomar',
operateConfirm: 'Confirmar {0} máquina virtual [{1}]?',
forceDelete: 'Forçar exclusão',
forceDeleteHelper:
'A exclusão forçada ignorará erros de exclusão da VM, removerá os metadados do painel e liberará o uso de recursos.',
forceDeleteConfirm:
'A máquina virtual está em execução. Ela será forçada a parar antes da exclusão. Continuar?',
createResource: 'Criar {0}',
'A exclusão forçada pode ocultar uma VM que ainda existe ou ainda está em execução no host se a limpeza do libvirt falhar. Continuar?',
deleteNameHelper: '" para excluir esta máquina virtual',
isoSource: 'Origem do ISO',
isoUploadDirHelper: 'O arquivo será enviado para: {0}',
isoTargetDir: 'Caminho de salvamento ISO',
isoTargetDirHelper: 'ISOs selecionados no servidor e enviados localmente serão salvos neste diretório.',
isoTargetDirAvailable: 'O caminho de salvamento ISO está disponível.',
isoTargetDirUnavailable:
'O caminho de salvamento ISO deve estar em um pool de armazenamento de VM disponível.',
checkPath: 'Verificar',
isoSize: 'Tamanho do ISO',
dir: 'Diretório Local',
},

View File

@@ -5769,7 +5769,6 @@ const message = {
createSnapshot: 'Create Snapshot',
recoverSnapshot: 'Recover Snapshot',
snapshotName: 'Snapshot Name',
snapshotPath: 'Snapshot File',
snapshotSize: 'Snapshot Size',
currentSnapshot: 'Current',
snapshotEmpty: 'No snapshots',
@@ -5785,11 +5784,18 @@ const message = {
suspend: 'Приостановить',
resume: 'Возобновить',
operateConfirm: 'Подтвердить {0} виртуальной машины [{1}]?',
forceDelete: 'Принудительно удалить',
forceDeleteHelper:
'Принудительное удаление проигнорирует ошибки удаления ВМ, удалит метаданные панели и освободит ресурсы.',
forceDeleteConfirm:
'Виртуальная машина работает. Перед удалением она будет принудительно остановлена. Продолжить?',
createResource: 'Создать {0}',
'Если очистка libvirt завершится неудачно, принудительное удаление может скрыть ВМ, которая всё ещё существует или работает на хосте. Продолжить?',
deleteNameHelper: '" для удаления этой виртуальной машины',
isoSource: 'Источник ISO',
isoUploadDirHelper: 'Файл будет загружен в: {0}',
isoTargetDir: 'Путь сохранения ISO',
isoTargetDirHelper: 'ISO, выбранные на сервере и загруженные локально, будут сохранены в этом каталоге.',
isoTargetDirAvailable: 'Путь сохранения ISO доступен.',
isoTargetDirUnavailable: 'Путь сохранения ISO должен находиться в доступном пуле хранения ВМ.',
checkPath: 'Проверить',
isoSize: 'Размер ISO',
dir: 'Локальный каталог',
},

View File

@@ -5755,7 +5755,6 @@ const message = {
createSnapshot: 'Create Snapshot',
recoverSnapshot: 'Recover Snapshot',
snapshotName: 'Snapshot Name',
snapshotPath: 'Snapshot File',
snapshotSize: 'Snapshot Size',
currentSnapshot: 'Current',
snapshotEmpty: 'No snapshots',
@@ -5771,10 +5770,18 @@ const message = {
suspend: 'Askıya Al',
resume: 'Sürdür',
operateConfirm: '[{1}] sanal makinesi için {0} işlemini onaylıyor musunuz?',
forceDeleteConfirm: 'Sanal makine çalışıyor. Silmeden önce zorla durdurulacak. Devam edilsin mi?',
createResource: '{0} oluştur',
forceDelete: 'Zorla sil',
forceDeleteHelper:
'Zorla silme VM silme hatalarını yok sayar, panel meta verilerini siler ve kaynak kullanımını serbest bırakır.',
forceDeleteConfirm:
'libvirt temizliği başarısız olursa zorla silme, ana makinede hâlâ var olan veya çalışan bir VMi gizleyebilir. Devam edilsin mi?',
deleteNameHelper: '" yazarak bu sanal makineyi sil',
isoSource: 'ISO Kaynağı',
isoUploadDirHelper: 'Dosya şuraya yüklenecek: {0}',
isoTargetDir: 'ISO Kaydetme Yolu',
isoTargetDirHelper: 'Sunucudan seçilen ve yerel olarak yüklenen ISO dosyaları bu dizine kaydedilir.',
isoTargetDirAvailable: 'ISO kaydetme yolu kullanılabilir.',
isoTargetDirUnavailable: 'ISO kaydetme yolu kullanılabilir bir VM depolama havuzunun içinde olmalıdır.',
checkPath: 'Kontrol Et',
isoSize: 'ISO Boyutu',
dir: 'Yerel Dizin',
},

View File

@@ -5285,7 +5285,6 @@ const message = {
createSnapshot: '建立快照',
recoverSnapshot: '恢復快照',
snapshotName: '快照名稱',
snapshotPath: '快照檔案',
snapshotSize: '快照大小',
currentSnapshot: '目前',
snapshotEmpty: '暫無快照',
@@ -5300,10 +5299,16 @@ const message = {
suspend: '暫停',
resume: '恢復',
operateConfirm: '確認 {0} 虛擬機 [{1}]',
forceDeleteConfirm: '虛擬機正在執行刪除前將強制停止是否繼續',
createResource: '建立 {0}',
forceDelete: '強制刪除',
forceDeleteHelper: '強制刪除將會忽略虛擬機刪除錯誤刪除面板中繼資料並釋放資源佔用',
forceDeleteConfirm: '如果 libvirt 清理失敗強制刪除可能隱藏宿主機上仍存在或仍在執行的虛擬機是否繼續',
deleteNameHelper: '" 刪除此虛擬機',
isoSource: 'ISO 來源',
isoUploadDirHelper: '檔案將上傳到{0}',
isoTargetDir: 'ISO 儲存路徑',
isoTargetDirHelper: '伺服器選擇和本機上傳的 ISO 檔案都會儲存到該目錄',
isoTargetDirAvailable: 'ISO 儲存路徑可用',
isoTargetDirUnavailable: 'ISO 儲存路徑必須位於可用的虛擬機儲存池內',
checkPath: '檢查',
isoSize: 'ISO 大小',
dir: '本機目錄',
},

View File

@@ -5277,7 +5277,6 @@ const message = {
createSnapshot: '创建快照',
recoverSnapshot: '恢复快照',
snapshotName: '快照名称',
snapshotPath: '快照文件',
snapshotSize: '快照大小',
currentSnapshot: '当前',
snapshotEmpty: '暂无快照',
@@ -5292,10 +5291,16 @@ const message = {
suspend: '暂停',
resume: '恢复',
operateConfirm: '确认 {0} 虚拟机 [{1}]',
forceDeleteConfirm: '虚拟机正在运行删除前将强制停止是否继续',
createResource: '创建 {0}',
forceDelete: '强制删除',
forceDeleteHelper: '强制删除将会忽略虚拟机删除错误删除面板元数据并释放资源占用',
forceDeleteConfirm: '如果 libvirt 清理失败强制删除可能隐藏宿主机上仍存在或仍在运行的虚拟机是否继续',
deleteNameHelper: '" 删除此虚拟机',
isoSource: 'ISO 来源',
isoUploadDirHelper: '文件将上传到{0}',
isoTargetDir: 'ISO 保存路径',
isoTargetDirHelper: '服务器选择和本地上传的 ISO 文件都会保存到该目录',
isoTargetDirAvailable: 'ISO 保存路径可用',
isoTargetDirUnavailable: 'ISO 保存路径必须位于可用的虚拟机存储池内',
checkPath: '检查',
isoSize: 'ISO 大小',
dir: '本地目录',
},