From 31e1e140e358ef006ecfcbabcbd1463810608180 Mon Sep 17 00:00:00 2001 From: ssongliu Date: Wed, 30 Sep 2026 10:47:27 +0800 Subject: [PATCH 1/3] feat(vm): add VNC keyboard control translations --- frontend/src/lang/modules/en.ts | 4 ++++ frontend/src/lang/modules/es-es.ts | 4 ++++ frontend/src/lang/modules/fa.ts | 4 ++++ frontend/src/lang/modules/ja.ts | 4 ++++ frontend/src/lang/modules/ko.ts | 4 ++++ frontend/src/lang/modules/lo.ts | 4 ++++ frontend/src/lang/modules/ms.ts | 4 ++++ frontend/src/lang/modules/pt-br.ts | 4 ++++ frontend/src/lang/modules/ru.ts | 4 ++++ frontend/src/lang/modules/tr.ts | 4 ++++ frontend/src/lang/modules/zh-Hant.ts | 4 ++++ frontend/src/lang/modules/zh.ts | 4 ++++ 12 files changed, 48 insertions(+) diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 4eda2b27c294..d779888e50eb 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -7247,6 +7247,10 @@ const message = { rx: 'RX', tx: 'TX', console: 'Console', + consoleShortcutKeys: 'Shortcut keys', + consoleCustomKeys: 'Custom key combination', + consoleMainKey: 'Select main key', + consoleSendKeys: 'Send', consoleNotReady: 'The VNC console is unavailable. Start the VM and check its VNC graphics configuration.', consoleDisconnected: 'The VNC console has been disconnected.', consoleConnectFailed: 'Failed to connect to the VNC console. Check the console proxy service.', diff --git a/frontend/src/lang/modules/es-es.ts b/frontend/src/lang/modules/es-es.ts index 52731a014ee6..db3698957a21 100644 --- a/frontend/src/lang/modules/es-es.ts +++ b/frontend/src/lang/modules/es-es.ts @@ -7362,6 +7362,10 @@ const message = { rx: 'RX', tx: 'TX', console: 'Consola', + consoleShortcutKeys: 'Atajos de teclado', + consoleCustomKeys: 'Combinación personalizada', + consoleMainKey: 'Seleccionar tecla', + consoleSendKeys: 'Enviar', consoleNotReady: 'La consola VNC no está disponible. Inicie la VM y compruebe su configuración gráfica VNC.', consoleDisconnected: 'La consola VNC se ha desconectado.', diff --git a/frontend/src/lang/modules/fa.ts b/frontend/src/lang/modules/fa.ts index cd2a454f9422..3b258076663b 100644 --- a/frontend/src/lang/modules/fa.ts +++ b/frontend/src/lang/modules/fa.ts @@ -7201,6 +7201,10 @@ const message = { rx: 'دریافت', tx: 'ارسال', console: 'کنسول', + consoleShortcutKeys: 'کلیدهای میانبر', + consoleCustomKeys: 'ترکیب کلید سفارشی', + consoleMainKey: 'انتخاب کلید اصلی', + consoleSendKeys: 'ارسال', consoleNotReady: 'کنسول VNC در دسترس نیست. ماشین مجازی را شروع کنید و پیکربندی گرافیکی VNC را بررسی کنید.', consoleDisconnected: 'اتصال کنسول VNC قطع شد.', consoleConnectFailed: 'اتصال به کنسول VNC ناموفق بود. سرویس پراکسی کنسول را بررسی کنید.', diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index 2df0379dc38a..b0a6253b93e2 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -7233,6 +7233,10 @@ const message = { rx: 'RX', tx: 'TX', console: 'コンソール', + consoleShortcutKeys: 'ショートカットキー', + consoleCustomKeys: 'カスタムキーの組み合わせ', + consoleMainKey: 'メインキーを選択', + consoleSendKeys: '送信', consoleNotReady: 'VNC コンソールを使用できません。VM を起動し、VNC グラフィック設定を確認してください。', consoleDisconnected: 'VNC コンソールの接続が切断されました。', consoleConnectFailed: diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index f4ad18a577f2..24b7e296ee7a 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -7095,6 +7095,10 @@ const message = { rx: 'RX', tx: 'TX', console: '콘솔', + consoleShortcutKeys: '단축키', + consoleCustomKeys: '사용자 지정 키 조합', + consoleMainKey: '기본 키 선택', + consoleSendKeys: '전송', consoleNotReady: 'VNC 콘솔을 사용할 수 없습니다. VM을 시작하고 VNC 그래픽 구성을 확인하세요.', consoleDisconnected: 'VNC 콘솔 연결이 끊어졌습니다.', consoleConnectFailed: 'VNC 콘솔 연결에 실패했습니다. 콘솔 프록시 서비스를 확인하세요.', diff --git a/frontend/src/lang/modules/lo.ts b/frontend/src/lang/modules/lo.ts index e8189584b5f4..43020400aa99 100644 --- a/frontend/src/lang/modules/lo.ts +++ b/frontend/src/lang/modules/lo.ts @@ -7003,6 +7003,10 @@ const message = { rx: 'RX', tx: 'TX', console: 'ຄອນໂຊນ', + consoleShortcutKeys: 'ປຸ່ມລັດ', + consoleCustomKeys: 'ປຸ່ມປະສົມແບບກຳນົດເອງ', + consoleMainKey: 'ເລືອກປຸ່ມຫຼັກ', + consoleSendKeys: 'ສົ່ງ', consoleNotReady: 'ຄອນໂຊນ VNC ໃຊ້ງານບໍ່ໄດ້. ກະລຸນາເລີ່ມ VM ແລະ ກວດສອບການຕັ້ງຄ່າກຣາຟິກ VNC.', consoleDisconnected: 'ຄອນໂຊນ VNC ຖືກຕັດການເຊື່ອມຕໍ່ແລ້ວ.', consoleConnectFailed: 'ເຊື່ອມຕໍ່ຄອນໂຊນ VNC ລົ້ມເຫຼວ. ກວດສອບບໍລິການພຣັອກຊີຄອນໂຊນ.', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index a46dc8517606..1551c0336401 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -7358,6 +7358,10 @@ const message = { rx: 'RX', tx: 'TX', console: 'Konsol', + consoleShortcutKeys: 'Kekunci pintasan', + consoleCustomKeys: 'Gabungan kekunci tersuai', + consoleMainKey: 'Pilih kekunci utama', + consoleSendKeys: 'Hantar', 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.', diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index 19cff7c5fdec..ce5bf6bff0fa 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -7399,6 +7399,10 @@ const message = { rx: 'RX', tx: 'TX', console: 'Console', + consoleShortcutKeys: 'Atalhos de teclado', + consoleCustomKeys: 'Combinação personalizada', + consoleMainKey: 'Selecionar tecla', + consoleSendKeys: 'Enviar', consoleNotReady: 'O console VNC está indisponível. Inicie a VM e verifique sua configuração gráfica VNC.', consoleDisconnected: 'O console VNC foi desconectado.', consoleConnectFailed: 'Falha ao conectar ao console VNC. Verifique o serviço de proxy do console.', diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index 2359b53323c3..95f905d8139d 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -7365,6 +7365,10 @@ const message = { rx: 'RX', tx: 'TX', console: 'Консоль', + consoleShortcutKeys: 'Сочетания клавиш', + consoleCustomKeys: 'Своя комбинация клавиш', + consoleMainKey: 'Выберите клавишу', + consoleSendKeys: 'Отправить', consoleNotReady: 'Консоль VNC недоступна. Запустите ВМ и проверьте конфигурацию графики VNC.', consoleDisconnected: 'Консоль VNC отключена.', consoleConnectFailed: 'Не удалось подключиться к консоли VNC. Проверьте службу прокси консоли.', diff --git a/frontend/src/lang/modules/tr.ts b/frontend/src/lang/modules/tr.ts index 3537c01fe796..1131c5ae49ae 100644 --- a/frontend/src/lang/modules/tr.ts +++ b/frontend/src/lang/modules/tr.ts @@ -7362,6 +7362,10 @@ const message = { rx: 'RX', tx: 'TX', console: 'Konsol', + consoleShortcutKeys: 'Kısayol tuşları', + consoleCustomKeys: 'Özel tuş kombinasyonu', + consoleMainKey: 'Ana tuşu seçin', + consoleSendKeys: 'Gönder', consoleNotReady: 'VNC konsolu kullanılamıyor. VMyi başlatın ve VNC grafik yapılandırmasını kontrol edin.', consoleDisconnected: 'VNC konsolu bağlantısı kesildi.', consoleConnectFailed: 'VNC konsoluna bağlanılamadı. Konsol proxy hizmetini kontrol edin.', diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index b02309872b4a..d24740d1f577 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -6746,6 +6746,10 @@ const message = { rx: '接收', tx: '傳送', console: '控制台', + consoleShortcutKeys: '快捷按鍵', + consoleCustomKeys: '自訂組合鍵', + consoleMainKey: '選擇主鍵', + consoleSendKeys: '傳送', consoleNotReady: 'VNC 控制台不可用,請啟動虛擬機並檢查 VNC 圖形設定。', consoleDisconnected: 'VNC 控制台已中斷連線。', consoleConnectFailed: 'VNC 控制台連線失敗,請檢查控制台代理服務。', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 2046708a42a2..bce2be876a84 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -6809,6 +6809,10 @@ const message = { rx: '接收', tx: '发送', console: '控制台', + consoleShortcutKeys: '快捷按键', + consoleCustomKeys: '自定义组合键', + consoleMainKey: '选择主键', + consoleSendKeys: '发送', consoleNotReady: 'VNC 控制台不可用,请启动虚拟机并检查 VNC 图形配置。', consoleDisconnected: 'VNC 控制台已断开连接。', consoleConnectFailed: 'VNC 控制台连接失败,请检查控制台代理服务。', From 21737cec21d7918e11b16472e21a767530fa815c Mon Sep 17 00:00:00 2001 From: ssongliu Date: Wed, 30 Sep 2026 11:15:51 +0800 Subject: [PATCH 2/3] feat(vm): add Windows VirtIO driver guidance translations --- frontend/src/lang/modules/en.ts | 4 ++++ frontend/src/lang/modules/es-es.ts | 4 ++++ frontend/src/lang/modules/fa.ts | 4 ++++ frontend/src/lang/modules/ja.ts | 4 ++++ frontend/src/lang/modules/ko.ts | 4 ++++ frontend/src/lang/modules/lo.ts | 4 ++++ frontend/src/lang/modules/ms.ts | 4 ++++ frontend/src/lang/modules/pt-br.ts | 4 ++++ frontend/src/lang/modules/ru.ts | 4 ++++ frontend/src/lang/modules/tr.ts | 4 ++++ frontend/src/lang/modules/zh-Hant.ts | 4 ++++ frontend/src/lang/modules/zh.ts | 4 ++++ 12 files changed, 48 insertions(+) diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index d779888e50eb..a01855e36294 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -7196,6 +7196,10 @@ const message = { diskSize: 'Disk Size', isoHelper: 'Mount multiple ISOs. Select the operating system installer first, then driver images such as VirtIO. Each image uses a separate CD-ROM drive.', + windowsDriverHelper: + 'The Windows image may not include the VirtIO network driver (NetKVM). Mount a VirtIO driver ISO and install the driver in Windows. Ignore this if the image already includes the driver.', + windowsDiskDriverHelper: + 'VirtIO disks may also require loading the disk driver (viostor); otherwise, Windows Setup may not detect the disk.', osType: 'Operating System Type', osOther: 'Other', diskBus: 'Disk Bus', diff --git a/frontend/src/lang/modules/es-es.ts b/frontend/src/lang/modules/es-es.ts index db3698957a21..315a1981fea8 100644 --- a/frontend/src/lang/modules/es-es.ts +++ b/frontend/src/lang/modules/es-es.ts @@ -7310,6 +7310,10 @@ const message = { diskSize: 'Tamaño del disco', isoHelper: 'Puede montar varios ISO. Seleccione primero el instalador del sistema operativo y después las imágenes de controladores, como VirtIO. Cada imagen usa una unidad de CD-ROM independiente.', + windowsDriverHelper: + 'Es posible que la imagen de Windows no incluya el controlador de red VirtIO (NetKVM). Monte una ISO de controladores VirtIO e instale el controlador en Windows. Omita este aviso si la imagen ya incluye el controlador.', + windowsDiskDriverHelper: + 'Los discos VirtIO también pueden requerir que se cargue el controlador de disco (viostor); de lo contrario, el instalador de Windows podría no detectar el disco.', osType: 'Tipo de sistema operativo', osOther: 'Otro', diskBus: 'Bus de disco', diff --git a/frontend/src/lang/modules/fa.ts b/frontend/src/lang/modules/fa.ts index 3b258076663b..b0721fbdb27c 100644 --- a/frontend/src/lang/modules/fa.ts +++ b/frontend/src/lang/modules/fa.ts @@ -7150,6 +7150,10 @@ const message = { diskSize: 'ظرفیت دیسک', isoHelper: 'می‌توانید چند ISO متصل کنید. ابتدا تصویر نصب سیستم‌عامل و سپس تصاویر درایور مانند VirtIO را انتخاب کنید. هر تصویر از یک درایو CD-ROM جداگانه استفاده می‌کند.', + windowsDriverHelper: + 'ممکن است تصویر Windows شامل درایور شبکه VirtIO (NetKVM) نباشد. یک ISO درایور VirtIO را نیز متصل کرده و درایور را در Windows نصب کنید. اگر تصویر از قبل شامل درایور است، این پیام را نادیده بگیرید.', + windowsDiskDriverHelper: + 'دیسک‌های VirtIO ممکن است به بارگذاری درایور دیسک (viostor) نیز نیاز داشته باشند؛ در غیر این صورت، برنامه نصب Windows ممکن است دیسک را شناسایی نکند.', osType: 'نوع سیستم‌عامل', osOther: 'سایر', diskBus: 'گذرگاه دیسک', diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index b0a6253b93e2..047d11113b4c 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -7182,6 +7182,10 @@ const message = { diskSize: 'ディスク容量', isoHelper: '複数の ISO をマウントできます。OS のインストールイメージを先に選択し、次に VirtIO などのドライバーイメージを選択してください。各イメージは個別の CD-ROM ドライブを使用します。', + windowsDriverHelper: + 'Windows イメージに VirtIO ネットワークドライバー(NetKVM)が含まれていない場合があります。VirtIO ドライバー ISO もマウントし、Windows 内でドライバーをインストールしてください。すでに含まれている場合は不要です。', + windowsDiskDriverHelper: + 'VirtIO ディスクを使用する場合、ディスクドライバー(viostor)の読み込みも必要になることがあります。読み込まないと、Windows セットアップでディスクが認識されない場合があります。', osType: 'OS タイプ', osOther: 'その他', diskBus: 'ディスクバス', diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index 24b7e296ee7a..013caedc252d 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -7044,6 +7044,10 @@ const message = { diskSize: '디스크 용량', isoHelper: '여러 ISO를 연결할 수 있습니다. 운영 체제 설치 이미지를 먼저 선택한 다음 VirtIO 등의 드라이버 이미지를 선택하세요. 각 이미지는 별도의 CD-ROM 드라이브를 사용합니다.', + windowsDriverHelper: + 'Windows 이미지에 VirtIO 네트워크 드라이버(NetKVM)가 포함되어 있지 않을 수 있습니다. VirtIO 드라이버 ISO도 마운트하고 Windows에서 드라이버를 설치하세요. 이미 포함된 경우에는 무시해도 됩니다.', + windowsDiskDriverHelper: + 'VirtIO 디스크를 사용하면 디스크 드라이버(viostor)도 로드해야 할 수 있습니다. 그렇지 않으면 Windows 설치 프로그램이 디스크를 인식하지 못할 수 있습니다.', osType: '운영 체제 유형', osOther: '기타', diskBus: '디스크 버스', diff --git a/frontend/src/lang/modules/lo.ts b/frontend/src/lang/modules/lo.ts index 43020400aa99..c3bf552bfe14 100644 --- a/frontend/src/lang/modules/lo.ts +++ b/frontend/src/lang/modules/lo.ts @@ -6953,6 +6953,10 @@ const message = { diskSize: 'ຂະໜາດດິສກ໌', isoHelper: 'ສາມາດເຊື່ອມຕໍ່ ISO ຫຼາຍໄຟລ໌ໄດ້. ເລືອກໄຟລ໌ຕິດຕັ້ງລະບົບປະຕິບັດການກ່ອນ ແລ້ວຈຶ່ງເລືອກໄຟລ໌ໄດຣເວີ ເຊັ່ນ VirtIO. ແຕ່ລະໄຟລ໌ໃຊ້ໄດຣ CD-ROM ແຍກຕ່າງຫາກ.', + windowsDriverHelper: + 'ອິມເມຈ Windows ອາດບໍ່ມີໄດຣເວີເຄືອຂ່າຍ VirtIO (NetKVM). ແນະນຳໃຫ້ແນບ ISO ໄດຣເວີ VirtIO ແລະ ຕິດຕັ້ງໄດຣເວີໃນ Windows. ຖ້າອິມເມຈມີໄດຣເວີແລ້ວ ສາມາດຂ້າມໄດ້.', + windowsDiskDriverHelper: + 'ເມື່ອໃຊ້ດິສ VirtIO ອາດຕ້ອງໂຫຼດໄດຣເວີດິສ (viostor) ເພີ່ມເຕີມ; ຖ້າບໍ່ໂຫຼດ ຕົວຕິດຕັ້ງ Windows ອາດບໍ່ພົບດິສ.', osType: 'ປະເພດລະບົບປະຕິບັດການ', osOther: 'ອື່ນໆ', diskBus: 'ບັສດິສກ໌', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index 1551c0336401..843dd92ae829 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -7307,6 +7307,10 @@ const message = { diskSize: 'Saiz Cakera', isoHelper: 'Pasang berbilang ISO. Pilih pemasang sistem pengendalian dahulu, kemudian imej pemacu seperti VirtIO. Setiap imej menggunakan pemacu CD-ROM yang berasingan.', + windowsDriverHelper: + 'Imej Windows mungkin tidak menyertakan pemacu rangkaian VirtIO (NetKVM). Lekapkan ISO pemacu VirtIO dan pasang pemacu dalam Windows. Abaikan jika imej sudah menyertakan pemacu tersebut.', + windowsDiskDriverHelper: + 'Cakera VirtIO juga mungkin memerlukan pemacu cakera (viostor) dimuatkan; jika tidak, pemasang Windows mungkin tidak dapat mengesan cakera.', osType: 'Jenis sistem pengendalian', osOther: 'Lain-lain', diskBus: 'Bas cakera', diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index ce5bf6bff0fa..ae5c238bb0fe 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -7348,6 +7348,10 @@ const message = { diskSize: 'Tamanho do Disco', isoHelper: 'Monte vários ISOs. Selecione primeiro o instalador do sistema operacional e depois as imagens de drivers, como VirtIO. Cada imagem usa uma unidade de CD-ROM separada.', + windowsDriverHelper: + 'A imagem do Windows pode não incluir o driver de rede VirtIO (NetKVM). Monte uma ISO de drivers VirtIO e instale o driver no Windows. Ignore este aviso se a imagem já incluir o driver.', + windowsDiskDriverHelper: + 'Os discos VirtIO também podem exigir o carregamento do driver de disco (viostor); caso contrário, o instalador do Windows pode não detectar o disco.', osType: 'Tipo de sistema operacional', osOther: 'Outro', diskBus: 'Barramento de disco', diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index 95f905d8139d..702d4dded6af 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -7314,6 +7314,10 @@ const message = { diskSize: 'Размер диска', isoHelper: 'Можно подключить несколько ISO. Сначала выберите установочный образ ОС, затем образы драйверов, например VirtIO. Каждый образ подключается к отдельному приводу CD-ROM.', + windowsDriverHelper: + 'Образ Windows может не содержать сетевой драйвер VirtIO (NetKVM). Подключите ISO с драйверами VirtIO и установите драйвер в Windows. Если драйвер уже включён в образ, пропустите этот шаг.', + windowsDiskDriverHelper: + 'Для дисков VirtIO также может потребоваться загрузить драйвер диска (viostor), иначе установщик Windows может не обнаружить диск.', osType: 'Тип операционной системы', osOther: 'Другая', diskBus: 'Шина диска', diff --git a/frontend/src/lang/modules/tr.ts b/frontend/src/lang/modules/tr.ts index 1131c5ae49ae..11ec606f3203 100644 --- a/frontend/src/lang/modules/tr.ts +++ b/frontend/src/lang/modules/tr.ts @@ -7311,6 +7311,10 @@ const message = { diskSize: 'Disk Boyutu', isoHelper: 'Birden fazla ISO bağlayabilirsiniz. Önce işletim sistemi kurulum imajını, ardından VirtIO gibi sürücü imajlarını seçin. Her imaj ayrı bir CD-ROM sürücüsü kullanır.', + windowsDriverHelper: + 'Windows kalıbı VirtIO ağ sürücüsünü (NetKVM) içermeyebilir. Bir VirtIO sürücü ISO dosyası da bağlayın ve sürücüyü Windows içinde yükleyin. Kalıp sürücüyü zaten içeriyorsa bu bildirimi yok sayın.', + windowsDiskDriverHelper: + 'VirtIO diskleri için disk sürücüsünün (viostor) yüklenmesi de gerekebilir; aksi takdirde Windows Kurulumu diski algılamayabilir.', osType: 'İşletim sistemi türü', osOther: 'Diğer', diskBus: 'Disk veri yolu', diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index d24740d1f577..fe3e78bb5463 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -6697,6 +6697,10 @@ const message = { }, diskSize: '磁碟容量', isoHelper: '支援掛載多個 ISO。請先選擇系統安裝映像,再選擇 VirtIO 等驅動程式映像;每個映像使用獨立光碟機。', + windowsDriverHelper: + 'Windows 映像可能未整合 VirtIO 網路卡驅動程式(NetKVM),建議同時掛載 VirtIO 驅動程式 ISO 並在系統中安裝;已整合驅動程式的映像可忽略。', + windowsDiskDriverHelper: + '使用 VirtIO 磁碟時,還可能需要載入磁碟驅動程式(viostor),否則安裝程式可能無法辨識磁碟。', osType: '作業系統類型', osOther: '其他', diskBus: '磁碟匯流排', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index bce2be876a84..82e09bb8241a 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -6760,6 +6760,10 @@ const message = { }, diskSize: '磁盘容量', isoHelper: '支持挂载多个 ISO。请先选择系统安装镜像,再选择 VirtIO 等驱动镜像;每个镜像使用独立光驱。', + windowsDriverHelper: + 'Windows 镜像可能未集成 VirtIO 网卡驱动(NetKVM),建议同时挂载 VirtIO 驱动 ISO 并在系统中安装;已集成驱动的镜像可忽略。', + windowsDiskDriverHelper: + '使用 VirtIO 磁盘时,还可能需要加载磁盘驱动(viostor),否则安装程序可能无法识别磁盘。', osType: '操作系统类型', osOther: '其他', diskBus: '磁盘总线', From 7c4ff2d75ca010d4cc527d5b7cd9eea72e4232ce Mon Sep 17 00:00:00 2001 From: ssongliu Date: Wed, 30 Sep 2026 15:09:15 +0800 Subject: [PATCH 3/3] feat(vm): add disk expansion translations and operation logs --- agent/cmd/server/docs/x-log.json | 11 +++++++++++ core/cmd/server/docs/x-log.json | 11 +++++++++++ core/i18n/lang/en.yaml | 5 +++++ core/i18n/lang/es-ES.yaml | 5 +++++ core/i18n/lang/fa.yaml | 5 +++++ core/i18n/lang/ja.yaml | 5 +++++ core/i18n/lang/ko.yaml | 5 +++++ core/i18n/lang/lo.yaml | 5 +++++ core/i18n/lang/ms.yaml | 5 +++++ core/i18n/lang/pt-BR.yaml | 5 +++++ core/i18n/lang/ru.yaml | 5 +++++ core/i18n/lang/tr.yaml | 5 +++++ core/i18n/lang/zh-Hant.yaml | 5 +++++ core/i18n/lang/zh.yaml | 5 +++++ frontend/src/lang/modules/en.ts | 21 +++++++++++++++++++++ frontend/src/lang/modules/es-es.ts | 21 +++++++++++++++++++++ frontend/src/lang/modules/fa.ts | 21 +++++++++++++++++++++ frontend/src/lang/modules/ja.ts | 21 +++++++++++++++++++++ frontend/src/lang/modules/ko.ts | 20 ++++++++++++++++++++ frontend/src/lang/modules/lo.ts | 20 ++++++++++++++++++++ frontend/src/lang/modules/ms.ts | 20 ++++++++++++++++++++ frontend/src/lang/modules/pt-br.ts | 21 +++++++++++++++++++++ frontend/src/lang/modules/ru.ts | 21 +++++++++++++++++++++ frontend/src/lang/modules/tr.ts | 21 +++++++++++++++++++++ frontend/src/lang/modules/zh-Hant.ts | 17 +++++++++++++++++ frontend/src/lang/modules/zh.ts | 17 +++++++++++++++++ 26 files changed, 323 insertions(+) diff --git a/agent/cmd/server/docs/x-log.json b/agent/cmd/server/docs/x-log.json index 74d8f7072669..5b1d13eb02d1 100644 --- a/agent/cmd/server/docs/x-log.json +++ b/agent/cmd/server/docs/x-log.json @@ -2486,6 +2486,17 @@ "formatZH": "删除虚拟机 [name]", "formatEN": "delete VM [name]" }, + "/core/xpack/vms/disks/resize": { + "bodyKeys": [ + "name", + "target", + "sizeGiB" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "扩容虚拟机 [name] 磁盘 [target] 至 [sizeGiB] GiB", + "formatEN": "expand VM [name] disk [target] to [sizeGiB] GiB" + }, "/core/xpack/vms/environment/enable": { "bodyKeys": [], "paramKeys": [], diff --git a/core/cmd/server/docs/x-log.json b/core/cmd/server/docs/x-log.json index 74d8f7072669..5b1d13eb02d1 100644 --- a/core/cmd/server/docs/x-log.json +++ b/core/cmd/server/docs/x-log.json @@ -2486,6 +2486,17 @@ "formatZH": "删除虚拟机 [name]", "formatEN": "delete VM [name]" }, + "/core/xpack/vms/disks/resize": { + "bodyKeys": [ + "name", + "target", + "sizeGiB" + ], + "paramKeys": [], + "beforeFunctions": [], + "formatZH": "扩容虚拟机 [name] 磁盘 [target] 至 [sizeGiB] GiB", + "formatEN": "expand VM [name] disk [target] to [sizeGiB] GiB" + }, "/core/xpack/vms/environment/enable": { "bodyKeys": [], "paramKeys": [], diff --git a/core/i18n/lang/en.yaml b/core/i18n/lang/en.yaml index b7a3cdeeb44e..98a30dde94f9 100644 --- a/core/i18n/lang/en.yaml +++ b/core/i18n/lang/en.yaml @@ -152,9 +152,14 @@ ErrVMNetworkNotFound: "Virtual machine network does not exist: {{ .detail }}" ErrVMInvalidPath: "Invalid virtual machine path: {{ .detail }}" ErrVMInvalidInput: "Invalid virtual machine parameter: {{ .detail }}" ErrVMCommandFailed: "Virtual machine command failed: {{ .err }}" +ErrVMDiskResizeBlocked: "The disk does not meet expansion requirements or is referenced by another device. Check the disk status." +ErrVMDiskReferenced: "This virtual disk is used by another virtual machine or device and cannot be expanded yet." +ErrVMDiskReferenceCheck: "Cannot complete virtual disk reference checks. Expansion is unavailable; check the disks of other virtual machines." +ErrVMSnapshotMetadataSync: "The snapshot was restored, but disk information could not be synced. Refresh and check; do not restore the snapshot again." VMCreateTask: "Create virtual machine [{{ .name }}]" VMCreateFromTemplateTask: "Create virtual machine [{{ .name }}] from template" VMUpdateTask: "Update virtual machine [{{ .name }}]" +VMDiskResizeTask: "Expand disk [{{ .disk }}] of virtual machine [{{ .name }}]" VMRenameTask: "Rename virtual machine [{{ .name }}] to [{{ .newName }}]" VMDeleteTask: "Delete virtual machine [{{ .name }}]" VMTemplateCreateTask: "Save virtual machine [{{ .name }}] as template [{{ .template }}]" diff --git a/core/i18n/lang/es-ES.yaml b/core/i18n/lang/es-ES.yaml index a1dbc69a9907..f1b402c008d9 100644 --- a/core/i18n/lang/es-ES.yaml +++ b/core/i18n/lang/es-ES.yaml @@ -152,9 +152,14 @@ ErrVMNetworkNotFound: "La red de la máquina virtual no existe: {{ .detail }}" ErrVMInvalidPath: "Ruta de máquina virtual no válida: {{ .detail }}" ErrVMInvalidInput: "Parámetro de máquina virtual no válido: {{ .detail }}" ErrVMCommandFailed: "Error al ejecutar el comando de la máquina virtual: {{ .err }}" +ErrVMDiskResizeBlocked: "El disco no cumple los requisitos de ampliación o está referenciado por otro dispositivo. Compruebe su estado." +ErrVMDiskReferenced: "Otro equipo virtual o dispositivo utiliza este disco virtual; la ampliación aún no se admite." +ErrVMDiskReferenceCheck: "No se pueden comprobar las referencias al disco virtual. La ampliación no está disponible; revise los discos de otras máquinas virtuales." +ErrVMSnapshotMetadataSync: "La instantánea se restauró, pero falló la sincronización de los datos del disco. Actualice y compruebe; no restaure de nuevo la instantánea." VMCreateTask: "Crear máquina virtual [{{ .name }}]" VMCreateFromTemplateTask: "Crear máquina virtual [{{ .name }}] desde plantilla" VMUpdateTask: "Actualizar máquina virtual [{{ .name }}]" +VMDiskResizeTask: "Ampliar disco [{{ .disk }}] de la máquina virtual [{{ .name }}]" VMRenameTask: "Renombrar máquina virtual [{{ .name }}] a [{{ .newName }}]" VMDeleteTask: "Eliminar máquina virtual [{{ .name }}]" VMTemplateCreateTask: "Guardar máquina virtual [{{ .name }}] como plantilla [{{ .template }}]" diff --git a/core/i18n/lang/fa.yaml b/core/i18n/lang/fa.yaml index fad01e5bdfce..32e5a006aff9 100644 --- a/core/i18n/lang/fa.yaml +++ b/core/i18n/lang/fa.yaml @@ -152,9 +152,14 @@ ErrVMNetworkNotFound: "شبکه ماشین مجازی وجود ندارد: {{ .d ErrVMInvalidPath: "مسیر ماشین مجازی نامعتبر است: {{ .detail }}" ErrVMInvalidInput: "پارامتر ماشین مجازی نامعتبر است: {{ .detail }}" ErrVMCommandFailed: "اجرای دستور ماشین مجازی ناموفق بود: {{ .err }}" +ErrVMDiskResizeBlocked: "دیسک شرایط افزایش ظرفیت را ندارد یا دستگاه دیگری به آن ارجاع می‌دهد. وضعیت دیسک را بررسی کنید." +ErrVMDiskReferenced: "این دیسک مجازی توسط ماشین مجازی یا دستگاه دیگری استفاده می‌شود؛ افزایش ظرفیت فعلاً پشتیبانی نمی‌شود." +ErrVMDiskReferenceCheck: "بررسی ارجاع‌های دیسک مجازی کامل نشد. افزایش ظرفیت ممکن نیست؛ دیسک‌های سایر ماشین‌های مجازی را بررسی کنید." +ErrVMSnapshotMetadataSync: "اسنپ‌شات بازیابی شد، اما همگام‌سازی اطلاعات دیسک ناموفق بود. تازه‌سازی و بررسی کنید؛ نیازی به بازیابی دوباره اسنپ‌شات نیست." VMCreateTask: "ایجاد ماشین مجازی [{{ .name }}]" VMCreateFromTemplateTask: "ایجاد ماشین مجازی [{{ .name }}] از قالب" VMUpdateTask: "به‌روزرسانی ماشین مجازی [{{ .name }}]" +VMDiskResizeTask: "افزایش ظرفیت دیسک [{{ .disk }}] ماشین مجازی [{{ .name }}]" VMRenameTask: "تغییر نام ماشین مجازی [{{ .name }}] به [{{ .newName }}]" VMDeleteTask: "حذف ماشین مجازی [{{ .name }}]" VMTemplateCreateTask: "ذخیره ماشین مجازی [{{ .name }}] به عنوان قالب [{{ .template }}]" diff --git a/core/i18n/lang/ja.yaml b/core/i18n/lang/ja.yaml index c2618a0addd4..b6946d811db7 100644 --- a/core/i18n/lang/ja.yaml +++ b/core/i18n/lang/ja.yaml @@ -152,9 +152,14 @@ ErrVMNetworkNotFound: "仮想マシンネットワークが存在しません: { ErrVMInvalidPath: "仮想マシンのパスが無効です: {{ .detail }}" ErrVMInvalidInput: "仮想マシンのパラメータが無効です: {{ .detail }}" ErrVMCommandFailed: "仮想マシンコマンドの実行に失敗しました: {{ .err }}" +ErrVMDiskResizeBlocked: "ディスクが拡張条件を満たしていないか、他のデバイスから参照されています。ディスクの状態を確認してください。" +ErrVMDiskReferenced: "この仮想ディスクは他の仮想マシンまたはデバイスで使用されているため、現在は拡張できません。" +ErrVMDiskReferenceCheck: "仮想ディスクの参照を確認できないため拡張できません。他の仮想マシンのディスク状態を確認してください。" +ErrVMSnapshotMetadataSync: "スナップショットは復元されましたが、ディスク情報の同期に失敗しました。更新して確認してください。再度復元する必要はありません。" VMCreateTask: "仮想マシン [{{ .name }}] を作成" VMCreateFromTemplateTask: "テンプレートから仮想マシン [{{ .name }}] を作成" VMUpdateTask: "仮想マシン [{{ .name }}] を更新" +VMDiskResizeTask: "仮想マシン [{{ .name }}] のディスク [{{ .disk }}] を拡張" VMRenameTask: "仮想マシン [{{ .name }}] を [{{ .newName }}] にリネーム" VMDeleteTask: "仮想マシン [{{ .name }}] を削除" VMTemplateCreateTask: "仮想マシン [{{ .name }}] をテンプレート [{{ .template }}] として保存" diff --git a/core/i18n/lang/ko.yaml b/core/i18n/lang/ko.yaml index c8d0c52d5358..66221ecbde00 100644 --- a/core/i18n/lang/ko.yaml +++ b/core/i18n/lang/ko.yaml @@ -152,9 +152,14 @@ ErrVMNetworkNotFound: "가상 머신 네트워크가 존재하지 않습니다: ErrVMInvalidPath: "가상 머신 경로가 유효하지 않습니다: {{ .detail }}" ErrVMInvalidInput: "가상 머신 매개변수가 유효하지 않습니다: {{ .detail }}" ErrVMCommandFailed: "가상 머신 명령 실행 실패: {{ .err }}" +ErrVMDiskResizeBlocked: "디스크가 확장 조건을 충족하지 않거나 다른 장치에서 참조하고 있습니다. 디스크 상태를 확인하세요." +ErrVMDiskReferenced: "다른 가상 머신 또는 장치가 이 가상 디스크를 사용 중이므로 현재 확장할 수 없습니다." +ErrVMDiskReferenceCheck: "가상 디스크 참조를 확인할 수 없어 확장할 수 없습니다. 다른 가상 머신의 디스크 상태를 확인하세요." +ErrVMSnapshotMetadataSync: "스냅샷은 복원되었지만 디스크 정보 동기화에 실패했습니다. 새로 고쳐 확인하세요. 스냅샷을 다시 복원할 필요는 없습니다." VMCreateTask: "가상 머신 [{{ .name }}] 생성" VMCreateFromTemplateTask: "템플릿에서 가상 머신 [{{ .name }}] 생성" VMUpdateTask: "가상 머신 [{{ .name }}] 업데이트" +VMDiskResizeTask: "가상 머신 [{{ .name }}]의 디스크 [{{ .disk }}] 확장" VMRenameTask: "가상 머신 [{{ .name }}]을(를) [{{ .newName }}](으)로 이름 변경" VMDeleteTask: "가상 머신 [{{ .name }}] 삭제" VMTemplateCreateTask: "가상 머신 [{{ .name }}]을(를) 템플릿 [{{ .template }}](으)로 저장" diff --git a/core/i18n/lang/lo.yaml b/core/i18n/lang/lo.yaml index 552604fe0248..2b6a842f50aa 100644 --- a/core/i18n/lang/lo.yaml +++ b/core/i18n/lang/lo.yaml @@ -152,9 +152,14 @@ ErrVMNetworkNotFound: "ບໍ່ມີເຄືອຂ່າຍເຄື່ອງ ErrVMInvalidPath: "ເສັ້ນທາງເຄື່ອງສະເໝືອນບໍ່ຖືກຕ້ອງ: {{ .detail }}" ErrVMInvalidInput: "ພາລາມິເຕີເຄື່ອງສະເໝືອນບໍ່ຖືກຕ້ອງ: {{ .detail }}" ErrVMCommandFailed: "ຄຳສັ່ງເຄື່ອງສະເໝືອນລົ້ມເຫຼວ: {{ .err }}" +ErrVMDiskResizeBlocked: "ດິສກ໌ບໍ່ຕອບສະໜອງເງື່ອນໄຂການຂະຫຍາຍ ຫຼື ຖືກອ້າງອີງໂດຍອຸປະກອນອື່ນ. ກະລຸນາກວດສອບສະຖານະດິສກ໌." +ErrVMDiskReferenced: "ດິສກ໌ເສມືອນນີ້ຖືກໃຊ້ໂດຍເຄື່ອງເສມືອນ ຫຼື ອຸປະກອນອື່ນ; ຍັງບໍ່ຮອງຮັບການຂະຫຍາຍ." +ErrVMDiskReferenceCheck: "ບໍ່ສາມາດກວດສອບການອ້າງອີງດິສກ໌ເສມືອນໄດ້. ຍັງຂະຫຍາຍບໍ່ໄດ້; ກະລຸນາກວດສອບດິສກ໌ຂອງເຄື່ອງເສມືອນອື່ນ." +ErrVMSnapshotMetadataSync: "ກູ້ຄືນສະແນັບຊັອດແລ້ວ ແຕ່ຊິງຂໍ້ມູນດິສກ໌ບໍ່ສຳເລັດ. ກະລຸນາໂຫຼດໃໝ່ ແລະ ກວດສອບ; ບໍ່ຈຳເປັນຕ້ອງກູ້ຄືນສະແນັບຊັອດອີກ." VMCreateTask: "ສ້າງເຄື່ອງສະເໝືອນ [{{ .name }}]" VMCreateFromTemplateTask: "ສ້າງເຄື່ອງສະເໝືອນ [{{ .name }}] ຈາກແມ່ແບບ" VMUpdateTask: "ອັບເດດເຄື່ອງສະເໝືອນ [{{ .name }}]" +VMDiskResizeTask: "ຂະຫຍາຍດິສກ໌ [{{ .disk }}] ຂອງເຄື່ອງເສມືອນ [{{ .name }}]" VMRenameTask: "ປ່ຽນຊື່ເຄື່ອງສະເໝືອນ [{{ .name }}] ເປັນ [{{ .newName }}]" VMDeleteTask: "ລຶບເຄື່ອງສະເໝືອນ [{{ .name }}]" VMTemplateCreateTask: "ບັນທຶກເຄື່ອງສະເໝືອນ [{{ .name }}] ເປັນແມ່ແບບ [{{ .template }}]" diff --git a/core/i18n/lang/ms.yaml b/core/i18n/lang/ms.yaml index f4ff5403d2a8..5556171713cd 100644 --- a/core/i18n/lang/ms.yaml +++ b/core/i18n/lang/ms.yaml @@ -152,9 +152,14 @@ ErrVMNetworkNotFound: "Rangkaian mesin maya tidak wujud: {{ .detail }}" ErrVMInvalidPath: "Laluan mesin maya tidak sah: {{ .detail }}" ErrVMInvalidInput: "Parameter mesin maya tidak sah: {{ .detail }}" ErrVMCommandFailed: "Arahan mesin maya gagal: {{ .err }}" +ErrVMDiskResizeBlocked: "Cakera tidak memenuhi syarat pembesaran atau dirujuk oleh peranti lain. Semak status cakera." +ErrVMDiskReferenced: "Cakera maya ini digunakan oleh mesin maya atau peranti lain; pembesaran belum disokong." +ErrVMDiskReferenceCheck: "Rujukan cakera maya tidak dapat disahkan. Pembesaran tidak tersedia; semak cakera mesin maya lain." +ErrVMSnapshotMetadataSync: "Syot kilat telah dipulihkan, tetapi maklumat cakera gagal disegerakkan. Muat semula dan semak; tidak perlu memulihkan syot kilat sekali lagi." VMCreateTask: "Cipta mesin maya [{{ .name }}]" VMCreateFromTemplateTask: "Cipta mesin maya [{{ .name }}] daripada templat" VMUpdateTask: "Kemas kini mesin maya [{{ .name }}]" +VMDiskResizeTask: "Besarkan cakera [{{ .disk }}] mesin maya [{{ .name }}]" VMRenameTask: "Namakan semula mesin maya [{{ .name }}] kepada [{{ .newName }}]" VMDeleteTask: "Padam mesin maya [{{ .name }}]" VMTemplateCreateTask: "Simpan mesin maya [{{ .name }}] sebagai templat [{{ .template }}]" diff --git a/core/i18n/lang/pt-BR.yaml b/core/i18n/lang/pt-BR.yaml index eb50aac5d7fa..8b1bb05d7ecf 100644 --- a/core/i18n/lang/pt-BR.yaml +++ b/core/i18n/lang/pt-BR.yaml @@ -152,9 +152,14 @@ ErrVMNetworkNotFound: "Rede da máquina virtual não existe: {{ .detail }}" ErrVMInvalidPath: "Caminho da máquina virtual inválido: {{ .detail }}" ErrVMInvalidInput: "Parâmetro da máquina virtual inválido: {{ .detail }}" ErrVMCommandFailed: "Falha no comando da máquina virtual: {{ .err }}" +ErrVMDiskResizeBlocked: "O disco não atende aos requisitos de expansão ou é referenciado por outro dispositivo. Verifique seu estado." +ErrVMDiskReferenced: "Este disco virtual é usado por outra máquina virtual ou dispositivo e ainda não pode ser expandido." +ErrVMDiskReferenceCheck: "Não foi possível verificar as referências ao disco virtual. A expansão está indisponível; verifique os discos das outras máquinas virtuais." +ErrVMSnapshotMetadataSync: "O snapshot foi restaurado, mas a sincronização dos dados do disco falhou. Atualize e verifique; não restaure o snapshot novamente." VMCreateTask: "Criar máquina virtual [{{ .name }}]" VMCreateFromTemplateTask: "Criar máquina virtual [{{ .name }}] a partir do modelo" VMUpdateTask: "Atualizar máquina virtual [{{ .name }}]" +VMDiskResizeTask: "Expandir disco [{{ .disk }}] da máquina virtual [{{ .name }}]" VMRenameTask: "Renomear máquina virtual [{{ .name }}] para [{{ .newName }}]" VMDeleteTask: "Excluir máquina virtual [{{ .name }}]" VMTemplateCreateTask: "Salvar máquina virtual [{{ .name }}] como modelo [{{ .template }}]" diff --git a/core/i18n/lang/ru.yaml b/core/i18n/lang/ru.yaml index 8b5098e21e0f..fdb131a82096 100644 --- a/core/i18n/lang/ru.yaml +++ b/core/i18n/lang/ru.yaml @@ -152,9 +152,14 @@ ErrVMNetworkNotFound: "Сеть виртуальной машины не сущ ErrVMInvalidPath: "Недопустимый путь виртуальной машины: {{ .detail }}" ErrVMInvalidInput: "Недопустимые параметры виртуальной машины: {{ .detail }}" ErrVMCommandFailed: "Ошибка выполнения команды виртуальной машины: {{ .err }}" +ErrVMDiskResizeBlocked: "Диск не соответствует условиям расширения или используется другим устройством. Проверьте состояние диска." +ErrVMDiskReferenced: "Этот виртуальный диск используется другой виртуальной машиной или устройством; расширение пока недоступно." +ErrVMDiskReferenceCheck: "Не удалось проверить ссылки на виртуальный диск. Расширение недоступно; проверьте диски других виртуальных машин." +ErrVMSnapshotMetadataSync: "Снимок восстановлен, но синхронизация данных диска не удалась. Обновите данные и проверьте их; повторно восстанавливать снимок не нужно." VMCreateTask: "Создать виртуальную машину [{{ .name }}]" VMCreateFromTemplateTask: "Создать виртуальную машину [{{ .name }}] из шаблона" VMUpdateTask: "Обновить виртуальную машину [{{ .name }}]" +VMDiskResizeTask: "Расширить диск [{{ .disk }}] виртуальной машины [{{ .name }}]" VMRenameTask: "Переименовать виртуальную машину [{{ .name }}] в [{{ .newName }}]" VMDeleteTask: "Удалить виртуальную машину [{{ .name }}]" VMTemplateCreateTask: "Сохранить виртуальную машину [{{ .name }}] как шаблон [{{ .template }}]" diff --git a/core/i18n/lang/tr.yaml b/core/i18n/lang/tr.yaml index 64a0711f8a93..5ccf163de00b 100644 --- a/core/i18n/lang/tr.yaml +++ b/core/i18n/lang/tr.yaml @@ -152,9 +152,14 @@ ErrVMNetworkNotFound: "Sanal makine ağı mevcut değil: {{ .detail }}" ErrVMInvalidPath: "Geçersiz sanal makine yolu: {{ .detail }}" ErrVMInvalidInput: "Geçersiz sanal makine parametresi: {{ .detail }}" ErrVMCommandFailed: "Sanal makine komutu başarısız: {{ .err }}" +ErrVMDiskResizeBlocked: "Disk genişletme koşullarını karşılamıyor veya başka bir aygıt tarafından kullanılıyor. Disk durumunu kontrol edin." +ErrVMDiskReferenced: "Bu sanal disk başka bir sanal makine veya aygıt tarafından kullanılıyor; genişletme henüz desteklenmiyor." +ErrVMDiskReferenceCheck: "Sanal disk başvuruları doğrulanamadı. Genişletme kullanılamıyor; diğer sanal makinelerin disklerini kontrol edin." +ErrVMSnapshotMetadataSync: "Anlık görüntü geri yüklendi ancak disk bilgileri eşitlenemedi. Yenileyip kontrol edin; anlık görüntüyü tekrar geri yüklemeyin." VMCreateTask: "Sanal makine [{{ .name }}] oluştur" VMCreateFromTemplateTask: "Şablondan sanal makine [{{ .name }}] oluştur" VMUpdateTask: "Sanal makine [{{ .name }}] güncelle" +VMDiskResizeTask: "[{{ .name }}] sanal makinesinin [{{ .disk }}] diskini genişlet" VMRenameTask: "Sanal makine [{{ .name }}] adını [{{ .newName }}] olarak değiştir" VMDeleteTask: "Sanal makine [{{ .name }}] sil" VMTemplateCreateTask: "Sanal makine [{{ .name }}] öğesini şablon [{{ .template }}] olarak kaydet" diff --git a/core/i18n/lang/zh-Hant.yaml b/core/i18n/lang/zh-Hant.yaml index 4e961409bef1..af800e9a2cca 100644 --- a/core/i18n/lang/zh-Hant.yaml +++ b/core/i18n/lang/zh-Hant.yaml @@ -152,9 +152,14 @@ ErrVMNetworkNotFound: "虛擬機網路不存在: {{ .detail }}" ErrVMInvalidPath: "虛擬機路徑非法: {{ .detail }}" ErrVMInvalidInput: "虛擬機參數非法: {{ .detail }}" ErrVMCommandFailed: "虛擬機指令執行失敗: {{ .err }}" +ErrVMDiskResizeBlocked: "磁碟不符合擴容條件,或被其他裝置引用,請檢查磁碟狀態" +ErrVMDiskReferenced: "此虛擬硬碟被其他虛擬機或裝置使用,暫不支援擴容" +ErrVMDiskReferenceCheck: "無法完成虛擬硬碟引用檢查,暫不支援擴容,請檢查其他虛擬機的磁碟狀態" +ErrVMSnapshotMetadataSync: "快照已還原,但磁碟資訊同步失敗,請重新整理檢查,無需重複還原快照" VMCreateTask: "建立虛擬機 [{{ .name }}]" VMCreateFromTemplateTask: "從範本建立虛擬機 [{{ .name }}]" VMUpdateTask: "更新虛擬機 [{{ .name }}]" +VMDiskResizeTask: "擴容虛擬機 [{{ .name }}] 磁碟 [{{ .disk }}]" VMRenameTask: "重新命名虛擬機 [{{ .name }}] 為 [{{ .newName }}]" VMDeleteTask: "刪除虛擬機 [{{ .name }}]" VMTemplateCreateTask: "轉存虛擬機 [{{ .name }}] 為範本 [{{ .template }}]" diff --git a/core/i18n/lang/zh.yaml b/core/i18n/lang/zh.yaml index 4e3ac448e9db..00d62a395a04 100644 --- a/core/i18n/lang/zh.yaml +++ b/core/i18n/lang/zh.yaml @@ -152,9 +152,14 @@ ErrVMNetworkNotFound: "虚拟机网络不存在: {{ .detail }}" ErrVMInvalidPath: "虚拟机路径非法: {{ .detail }}" ErrVMInvalidInput: "虚拟机参数非法: {{ .detail }}" ErrVMCommandFailed: "虚拟机命令执行失败: {{ .err }}" +ErrVMDiskResizeBlocked: "磁盘不符合扩容条件,或被其他设备引用,请检查磁盘状态" +ErrVMDiskReferenced: "该虚拟硬盘被其他虚拟机或设备使用,暂不支持扩容" +ErrVMDiskReferenceCheck: "无法完成虚拟硬盘引用检查,暂不支持扩容,请检查其他虚拟机的磁盘状态" +ErrVMSnapshotMetadataSync: "快照已恢复,但磁盘信息同步失败,请刷新检查,无需重复恢复快照" VMCreateTask: "创建虚拟机 [{{ .name }}]" VMCreateFromTemplateTask: "从模板创建虚拟机 [{{ .name }}]" VMUpdateTask: "更新虚拟机 [{{ .name }}]" +VMDiskResizeTask: "扩容虚拟机 [{{ .name }}] 磁盘 [{{ .disk }}]" VMRenameTask: "重命名虚拟机 [{{ .name }}] 为 [{{ .newName }}]" VMDeleteTask: "删除虚拟机 [{{ .name }}]" VMTemplateCreateTask: "转存虚拟机 [{{ .name }}] 为模板 [{{ .template }}]" diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index a01855e36294..f2a43c34a983 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -7193,6 +7193,27 @@ const message = { orphan_snapshot: 'Orphaned Snapshot', partial_file: 'Incomplete File', }, + disks: 'Disks', + resizeDisk: 'Expand', + diskTarget: 'Device', + diskCapacityAfterResize: 'Total capacity after expansion', + diskResizeHelper: + 'Expansion only increases the virtual disk capacity. Afterwards, extend the partitions and filesystems inside the virtual machine.', + diskResizeLimit: + 'Expansion requires a shut-off VM and an independent, writable qcow2 disk without snapshots or a backing chain. Shrinking is not supported.', + diskResizeReason: { + referenceCheck: + 'Cannot complete virtual disk reference checks. Expansion is unavailable; check the disks of other virtual machines.', + referenced: + 'This virtual disk is used by another virtual machine or device and cannot be expanded yet.', + running: 'Shut down the virtual machine before expanding the disk.', + saved: 'Resume the virtual machine, then shut it down normally before expanding.', + snapshots: 'Expansion is unavailable while snapshots exist to avoid affecting snapshot recovery.', + backing: 'The disk depends on another image; expansion is not supported yet.', + shared: 'The disk is marked as shared; expansion is unavailable to avoid affecting other users.', + unsupported: 'The disk format, location or access permissions do not support expansion.', + unavailable: 'Cannot verify disk status. Check it and refresh.', + }, diskSize: 'Disk Size', isoHelper: 'Mount multiple ISOs. Select the operating system installer first, then driver images such as VirtIO. Each image uses a separate CD-ROM drive.', diff --git a/frontend/src/lang/modules/es-es.ts b/frontend/src/lang/modules/es-es.ts index 315a1981fea8..cdabe72a42e1 100644 --- a/frontend/src/lang/modules/es-es.ts +++ b/frontend/src/lang/modules/es-es.ts @@ -7307,6 +7307,27 @@ const message = { orphan_snapshot: 'Instantánea huérfana', partial_file: 'Archivo incompleto', }, + disks: 'Discos', + resizeDisk: 'Ampliar', + diskTarget: 'Dispositivo', + diskCapacityAfterResize: 'Capacidad total tras la ampliación', + diskResizeHelper: + 'La ampliación solo aumenta la capacidad del disco virtual. Después, amplíe las particiones y los sistemas de archivos dentro de la máquina virtual.', + diskResizeLimit: + 'La máquina virtual debe estar apagada y el disco qcow2 debe ser independiente y escribible, sin instantáneas ni cadena de imágenes de respaldo. No se admite reducir el tamaño.', + diskResizeReason: { + referenceCheck: + 'No se pueden comprobar las referencias al disco virtual. La ampliación no está disponible; revise los discos de otras máquinas virtuales.', + referenced: + 'Otro equipo virtual o dispositivo utiliza este disco virtual; la ampliación aún no se admite.', + running: 'Apague la máquina virtual antes de ampliar el disco.', + saved: 'Reanude la máquina virtual y apáguela normalmente antes de ampliar.', + snapshots: 'No se admite la ampliación con instantáneas para no afectar a su restauración.', + backing: 'El disco depende de otra imagen; la ampliación aún no se admite.', + shared: 'El disco está marcado como compartido; no se permite ampliarlo para no afectar a otros usuarios.', + unsupported: 'El formato, la ubicación o los permisos del disco no permiten ampliarlo.', + unavailable: 'No se puede verificar el estado del disco. Revise y actualice.', + }, diskSize: 'Tamaño del disco', isoHelper: 'Puede montar varios ISO. Seleccione primero el instalador del sistema operativo y después las imágenes de controladores, como VirtIO. Cada imagen usa una unidad de CD-ROM independiente.', diff --git a/frontend/src/lang/modules/fa.ts b/frontend/src/lang/modules/fa.ts index b0721fbdb27c..d47aecd2ac99 100644 --- a/frontend/src/lang/modules/fa.ts +++ b/frontend/src/lang/modules/fa.ts @@ -7147,6 +7147,27 @@ const message = { orphan_snapshot: 'اسنپ‌شات بدون مرجع', partial_file: 'فایل ناتمام', }, + disks: 'مدیریت دیسک‌ها', + resizeDisk: 'افزایش ظرفیت', + diskTarget: 'دستگاه', + diskCapacityAfterResize: 'ظرفیت کل پس از افزایش', + diskResizeHelper: + 'این عملیات فقط ظرفیت دیسک مجازی را افزایش می‌دهد. سپس باید پارتیشن‌ها و سیستم‌های فایل را درون ماشین مجازی گسترش دهید.', + diskResizeLimit: + 'ماشین مجازی باید خاموش باشد و دیسک qcow2 مستقل و قابل‌نوشتن، بدون اسنپ‌شات یا زنجیره تصاویر پایه باشد. کاهش ظرفیت پشتیبانی نمی‌شود.', + diskResizeReason: { + referenceCheck: + 'بررسی ارجاع‌های دیسک مجازی کامل نشد. افزایش ظرفیت ممکن نیست؛ دیسک‌های سایر ماشین‌های مجازی را بررسی کنید.', + referenced: + 'این دیسک مجازی توسط ماشین مجازی یا دستگاه دیگری استفاده می‌شود؛ افزایش ظرفیت فعلاً پشتیبانی نمی‌شود.', + running: 'پیش از افزایش ظرفیت دیسک، ماشین مجازی را خاموش کنید.', + saved: 'ماشین مجازی را از سر بگیرید، سپس پیش از افزایش ظرفیت به‌طور عادی خاموش کنید.', + snapshots: 'برای جلوگیری از اختلال در بازیابی، افزایش ظرفیت با وجود اسنپ‌شات پشتیبانی نمی‌شود.', + backing: 'دیسک به تصویر دیگری وابسته است؛ افزایش ظرفیت فعلاً پشتیبانی نمی‌شود.', + shared: 'دیسک اشتراکی است؛ برای جلوگیری از تأثیر بر دیگر کاربران، افزایش ظرفیت پشتیبانی نمی‌شود.', + unsupported: 'قالب، محل یا مجوزهای دسترسی دیسک از افزایش ظرفیت پشتیبانی نمی‌کنند.', + unavailable: 'وضعیت دیسک قابل تأیید نیست. بررسی و تازه‌سازی کنید.', + }, diskSize: 'ظرفیت دیسک', isoHelper: 'می‌توانید چند ISO متصل کنید. ابتدا تصویر نصب سیستم‌عامل و سپس تصاویر درایور مانند VirtIO را انتخاب کنید. هر تصویر از یک درایو CD-ROM جداگانه استفاده می‌کند.', diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index 047d11113b4c..819866e7a430 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -7179,6 +7179,27 @@ const message = { orphan_snapshot: '孤立スナップショット', partial_file: '未完了ファイル', }, + disks: 'ディスク管理', + resizeDisk: '拡張', + diskTarget: 'デバイス', + diskCapacityAfterResize: '拡張後の合計容量', + diskResizeHelper: + '拡張されるのは仮想ディスクの容量のみです。その後、仮想マシン内でパーティションとファイルシステムを拡張してください。', + diskResizeLimit: + '停止中の仮想マシンに接続された、スナップショットやバッキングチェーンのない独立した書き込み可能な qcow2 ディスクのみ拡張できます。縮小はできません。', + diskResizeReason: { + referenceCheck: + '仮想ディスクの参照を確認できないため拡張できません。他の仮想マシンのディスク状態を確認してください。', + referenced: + 'この仮想ディスクは他の仮想マシンまたはデバイスで使用されているため、現在は拡張できません。', + running: '仮想マシンを停止してからディスクを拡張してください。', + saved: '仮想マシンを再開し、正常にシャットダウンしてから拡張してください。', + snapshots: 'スナップショットの復元に影響するため、スナップショットがある場合は拡張できません。', + backing: '他のイメージに依存するディスクの拡張には未対応です。', + shared: '共有設定のディスクは他の利用者に影響するため拡張できません。', + unsupported: 'ディスクの形式、保存場所、またはアクセス権限が拡張に対応していません。', + unavailable: 'ディスクの状態を確認できません。確認後に更新してください。', + }, diskSize: 'ディスク容量', isoHelper: '複数の ISO をマウントできます。OS のインストールイメージを先に選択し、次に VirtIO などのドライバーイメージを選択してください。各イメージは個別の CD-ROM ドライブを使用します。', diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index 013caedc252d..22cf61f590c8 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -7041,6 +7041,26 @@ const message = { orphan_snapshot: '고아 스냅샷', partial_file: '미완료 파일', }, + disks: '디스크 관리', + resizeDisk: '확장', + diskTarget: '장치', + diskCapacityAfterResize: '확장 후 전체 용량', + diskResizeHelper: + '확장은 가상 디스크 용량만 늘립니다. 완료 후 가상 머신 내에서 파티션과 파일 시스템을 확장해야 합니다.', + diskResizeLimit: + '가상 머신이 종료된 상태에서 스냅샷이나 백킹 체인이 없는 독립적인 쓰기 가능한 qcow2 디스크만 확장할 수 있습니다. 축소는 지원하지 않습니다.', + diskResizeReason: { + referenceCheck: + '가상 디스크 참조를 확인할 수 없어 확장할 수 없습니다. 다른 가상 머신의 디스크 상태를 확인하세요.', + referenced: '다른 가상 머신 또는 장치가 이 가상 디스크를 사용 중이므로 현재 확장할 수 없습니다.', + running: '가상 머신을 종료한 후 디스크를 확장하세요.', + saved: '가상 머신을 재개하고 정상 종료한 후 확장하세요.', + snapshots: '스냅샷 복원에 영향을 줄 수 있어 스냅샷이 있으면 확장할 수 없습니다.', + backing: '다른 이미지에 의존하는 디스크는 아직 확장을 지원하지 않습니다.', + shared: '공유로 설정된 디스크는 다른 사용자에게 영향을 줄 수 있어 확장할 수 없습니다.', + unsupported: '디스크 형식, 위치 또는 접근 권한이 확장을 지원하지 않습니다.', + unavailable: '디스크 상태를 확인할 수 없습니다. 확인 후 새로 고치세요.', + }, diskSize: '디스크 용량', isoHelper: '여러 ISO를 연결할 수 있습니다. 운영 체제 설치 이미지를 먼저 선택한 다음 VirtIO 등의 드라이버 이미지를 선택하세요. 각 이미지는 별도의 CD-ROM 드라이브를 사용합니다.', diff --git a/frontend/src/lang/modules/lo.ts b/frontend/src/lang/modules/lo.ts index c3bf552bfe14..12e16868aefb 100644 --- a/frontend/src/lang/modules/lo.ts +++ b/frontend/src/lang/modules/lo.ts @@ -6950,6 +6950,26 @@ const message = { orphan_snapshot: 'ສະແນັບຊັອດທີ່ບໍ່ຖືກອ້າງອີງ', partial_file: 'ໄຟລ໌ບໍ່ສົມບູນ', }, + disks: 'ຈັດການດິສກ໌', + resizeDisk: 'ຂະຫຍາຍ', + diskTarget: 'ອຸປະກອນ', + diskCapacityAfterResize: 'ຄວາມຈຸລວມຫຼັງຂະຫຍາຍ', + diskResizeHelper: + 'ການຂະຫຍາຍເພີ່ມພຽງຄວາມຈຸດິສກ໌ເສມືອນ. ຫຼັງຈາກນັ້ນ ຕ້ອງຂະຫຍາຍພາທິຊັນ ແລະ ລະບົບໄຟລ໌ພາຍໃນເຄື່ອງເສມືອນ.', + diskResizeLimit: + 'ຕ້ອງປິດເຄື່ອງເສມືອນ ແລະ ໃຊ້ດິສກ໌ qcow2 ອິດສະຫຼະທີ່ຂຽນໄດ້ ໂດຍບໍ່ມີສະແນັບຊັອດ ຫຼື ຕ່ອງໂສ້ອິມເມຈພື້ນຖານ. ບໍ່ຮອງຮັບການຫຼຸດຂະໜາດ.', + diskResizeReason: { + referenceCheck: + 'ບໍ່ສາມາດກວດສອບການອ້າງອີງດິສກ໌ເສມືອນໄດ້. ຍັງຂະຫຍາຍບໍ່ໄດ້; ກະລຸນາກວດສອບດິສກ໌ຂອງເຄື່ອງເສມືອນອື່ນ.', + referenced: 'ດິສກ໌ເສມືອນນີ້ຖືກໃຊ້ໂດຍເຄື່ອງເສມືອນ ຫຼື ອຸປະກອນອື່ນ; ຍັງບໍ່ຮອງຮັບການຂະຫຍາຍ.', + running: 'ກະລຸນາປິດເຄື່ອງເສມືອນກ່ອນຂະຫຍາຍດິສກ໌.', + saved: 'ກະລຸນາເຮັດວຽກເຄື່ອງເສມືອນຕໍ່ ແລ້ວປິດຕາມປົກກະຕິກ່ອນຂະຫຍາຍ.', + snapshots: 'ມີສະແນັບຊັອດ; ຍັງບໍ່ຮອງຮັບການຂະຫຍາຍ ເພື່ອບໍ່ໃຫ້ກະທົບການກູ້ຄືນ.', + backing: 'ດິສກ໌ຂຶ້ນກັບອິມເມຈອື່ນ; ຍັງບໍ່ຮອງຮັບການຂະຫຍາຍ.', + shared: 'ດິສກ໌ຖືກຕັ້ງໃຫ້ໃຊ້ຮ່ວມກັນ; ບໍ່ຮອງຮັບການຂະຫຍາຍ ເພື່ອບໍ່ໃຫ້ກະທົບຜູ້ໃຊ້ອື່ນ.', + unsupported: 'ຮູບແບບ, ຕຳແໜ່ງ ຫຼື ສິດເຂົ້າເຖິງດິສກ໌ບໍ່ຮອງຮັບການຂະຫຍາຍ.', + unavailable: 'ບໍ່ສາມາດຢືນຢັນສະຖານະດິສກ໌ໄດ້. ກະລຸນາກວດສອບ ແລະ ໂຫຼດໃໝ່.', + }, diskSize: 'ຂະໜາດດິສກ໌', isoHelper: 'ສາມາດເຊື່ອມຕໍ່ ISO ຫຼາຍໄຟລ໌ໄດ້. ເລືອກໄຟລ໌ຕິດຕັ້ງລະບົບປະຕິບັດການກ່ອນ ແລ້ວຈຶ່ງເລືອກໄຟລ໌ໄດຣເວີ ເຊັ່ນ VirtIO. ແຕ່ລະໄຟລ໌ໃຊ້ໄດຣ CD-ROM ແຍກຕ່າງຫາກ.', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index 843dd92ae829..2a6054108834 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -7304,6 +7304,26 @@ const message = { orphan_snapshot: 'Syot kilat yatim', partial_file: 'Fail tidak lengkap', }, + disks: 'Cakera', + resizeDisk: 'Besarkan', + diskTarget: 'Peranti', + diskCapacityAfterResize: 'Jumlah kapasiti selepas pembesaran', + diskResizeHelper: + 'Pembesaran hanya menambah kapasiti cakera maya. Selepas itu, besarkan partition dan sistem fail dalam mesin maya.', + diskResizeLimit: + 'Mesin maya mesti dimatikan dan cakera qcow2 mestilah bebas serta boleh ditulis, tanpa syot kilat atau rantaian imej asas. Pengecilan tidak disokong.', + diskResizeReason: { + referenceCheck: + 'Rujukan cakera maya tidak dapat disahkan. Pembesaran tidak tersedia; semak cakera mesin maya lain.', + referenced: 'Cakera maya ini digunakan oleh mesin maya atau peranti lain; pembesaran belum disokong.', + running: 'Matikan mesin maya sebelum membesarkan cakera.', + saved: 'Sambung semula mesin maya, kemudian matikannya secara biasa sebelum pembesaran.', + snapshots: 'Pembesaran tidak disokong jika terdapat syot kilat supaya pemulihan tidak terjejas.', + backing: 'Cakera bergantung pada imej lain; pembesaran belum disokong.', + shared: 'Cakera ditandakan sebagai dikongsi; pembesaran tidak disokong supaya pengguna lain tidak terjejas.', + unsupported: 'Format, lokasi atau kebenaran akses cakera tidak menyokong pembesaran.', + unavailable: 'Status cakera tidak dapat disahkan. Semak dan muat semula.', + }, diskSize: 'Saiz Cakera', isoHelper: 'Pasang berbilang ISO. Pilih pemasang sistem pengendalian dahulu, kemudian imej pemacu seperti VirtIO. Setiap imej menggunakan pemacu CD-ROM yang berasingan.', diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index ae5c238bb0fe..fd5a60def20e 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -7345,6 +7345,27 @@ const message = { orphan_snapshot: 'Snapshot órfão', partial_file: 'Arquivo incompleto', }, + disks: 'Discos', + resizeDisk: 'Expandir', + diskTarget: 'Dispositivo', + diskCapacityAfterResize: 'Capacidade total após a expansão', + diskResizeHelper: + 'A expansão aumenta apenas a capacidade do disco virtual. Depois, expanda as partições e os sistemas de arquivos dentro da máquina virtual.', + diskResizeLimit: + 'A máquina virtual deve estar desligada e o disco qcow2 deve ser independente e gravável, sem snapshots ou cadeia de imagens base. A redução não é suportada.', + diskResizeReason: { + referenceCheck: + 'Não foi possível verificar as referências ao disco virtual. A expansão está indisponível; verifique os discos das outras máquinas virtuais.', + referenced: + 'Este disco virtual é usado por outra máquina virtual ou dispositivo e ainda não pode ser expandido.', + running: 'Desligue a máquina virtual antes de expandir o disco.', + saved: 'Retome a máquina virtual e desligue-a normalmente antes de expandir.', + snapshots: 'A expansão não está disponível com snapshots para não afetar a restauração.', + backing: 'O disco depende de outra imagem; a expansão ainda não é suportada.', + shared: 'O disco está marcado como compartilhado; a expansão não está disponível para não afetar outros usuários.', + unsupported: 'O formato, local ou as permissões do disco não permitem expansão.', + unavailable: 'Não foi possível verificar o estado do disco. Verifique e atualize.', + }, diskSize: 'Tamanho do Disco', isoHelper: 'Monte vários ISOs. Selecione primeiro o instalador do sistema operacional e depois as imagens de drivers, como VirtIO. Cada imagem usa uma unidade de CD-ROM separada.', diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index 702d4dded6af..f7b45cba4cf2 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -7311,6 +7311,27 @@ const message = { orphan_snapshot: 'Неиспользуемый снимок', partial_file: 'Незавершенный файл', }, + disks: 'Диски', + resizeDisk: 'Расширить', + diskTarget: 'Устройство', + diskCapacityAfterResize: 'Общая ёмкость после расширения', + diskResizeHelper: + 'Расширение увеличивает только ёмкость виртуального диска. После этого расширьте разделы и файловые системы внутри виртуальной машины.', + diskResizeLimit: + 'Виртуальная машина должна быть выключена, а диск qcow2 — независимым и доступным для записи, без снимков и цепочки базовых образов. Уменьшение не поддерживается.', + diskResizeReason: { + referenceCheck: + 'Не удалось проверить ссылки на виртуальный диск. Расширение недоступно; проверьте диски других виртуальных машин.', + referenced: + 'Этот виртуальный диск используется другой виртуальной машиной или устройством; расширение пока недоступно.', + running: 'Выключите виртуальную машину перед расширением диска.', + saved: 'Возобновите работу виртуальной машины и штатно выключите её перед расширением.', + snapshots: 'Расширение недоступно при наличии снимков, чтобы не нарушить их восстановление.', + backing: 'Диск зависит от другого образа; расширение пока не поддерживается.', + shared: 'Диск помечен как общий; расширение недоступно, чтобы не затронуть других пользователей.', + unsupported: 'Формат, расположение или права доступа к диску не позволяют расширить его.', + unavailable: 'Не удалось проверить состояние диска. Проверьте его и обновите данные.', + }, diskSize: 'Размер диска', isoHelper: 'Можно подключить несколько ISO. Сначала выберите установочный образ ОС, затем образы драйверов, например VirtIO. Каждый образ подключается к отдельному приводу CD-ROM.', diff --git a/frontend/src/lang/modules/tr.ts b/frontend/src/lang/modules/tr.ts index 11ec606f3203..965ebd93704e 100644 --- a/frontend/src/lang/modules/tr.ts +++ b/frontend/src/lang/modules/tr.ts @@ -7308,6 +7308,27 @@ const message = { orphan_snapshot: 'Sahipsiz anlık görüntü', partial_file: 'Tamamlanmamış dosya', }, + disks: 'Diskler', + resizeDisk: 'Genişlet', + diskTarget: 'Aygıt', + diskCapacityAfterResize: 'Genişletme sonrası toplam kapasite', + diskResizeHelper: + 'Bu işlem yalnızca sanal disk kapasitesini artırır. Ardından sanal makine içindeki bölümleri ve dosya sistemlerini genişletin.', + diskResizeLimit: + 'Sanal makine kapalı olmalı ve qcow2 diski bağımsız, yazılabilir, anlık görüntüsüz ve temel imaj zinciri olmadan kullanılmalıdır. Küçültme desteklenmez.', + diskResizeReason: { + referenceCheck: + 'Sanal disk başvuruları doğrulanamadı. Genişletme kullanılamıyor; diğer sanal makinelerin disklerini kontrol edin.', + referenced: + 'Bu sanal disk başka bir sanal makine veya aygıt tarafından kullanılıyor; genişletme henüz desteklenmiyor.', + running: 'Diski genişletmeden önce sanal makineyi kapatın.', + saved: 'Genişletmeden önce sanal makineyi sürdürün ve normal şekilde kapatın.', + snapshots: 'Geri yüklemeyi etkilememek için anlık görüntüler varken genişletme desteklenmiyor.', + backing: 'Disk başka bir imaja bağlı; genişletme henüz desteklenmiyor.', + shared: 'Disk paylaşımlı olarak işaretlenmiş; diğer kullanıcıları etkilememek için genişletme desteklenmiyor.', + unsupported: 'Disk biçimi, konumu veya erişim izinleri genişletmeyi desteklemiyor.', + unavailable: 'Disk durumu doğrulanamıyor. Kontrol edip yenileyin.', + }, diskSize: 'Disk Boyutu', isoHelper: 'Birden fazla ISO bağlayabilirsiniz. Önce işletim sistemi kurulum imajını, ardından VirtIO gibi sürücü imajlarını seçin. Her imaj ayrı bir CD-ROM sürücüsü kullanır.', diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index fe3e78bb5463..537457e7fc2f 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -6695,6 +6695,23 @@ const message = { orphan_snapshot: '孤立快照', partial_file: '未完成檔案', }, + disks: '磁碟管理', + resizeDisk: '擴容', + diskTarget: '裝置', + diskCapacityAfterResize: '擴容後總容量', + diskResizeHelper: '擴容只增加虛擬磁碟容量,完成後還需在虛擬機內擴充分割區和檔案系統。', + diskResizeLimit: '僅支援關機狀態下、無快照和映像相依鏈的獨立可寫入 qcow2 磁碟擴容,不支援縮容。', + diskResizeReason: { + referenceCheck: '無法完成虛擬硬碟引用檢查,暫不支援擴容,請檢查其他虛擬機的磁碟狀態', + referenced: '此虛擬硬碟被其他虛擬機或裝置使用,暫不支援擴容', + running: '請先關閉虛擬機,再擴容磁碟', + saved: '請先恢復虛擬機執行,再正常關機後擴容', + snapshots: '存在快照,暫不支援擴容,以免影響快照還原', + backing: '磁碟相依於其他映像,暫不支援擴容', + shared: '磁碟已設為共用,暫不支援擴容,以免影響其他使用者', + unsupported: '磁碟格式、位置或讀寫權限不支援擴容', + unavailable: '無法確認磁碟狀態,請檢查後重新整理', + }, diskSize: '磁碟容量', isoHelper: '支援掛載多個 ISO。請先選擇系統安裝映像,再選擇 VirtIO 等驅動程式映像;每個映像使用獨立光碟機。', windowsDriverHelper: diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 82e09bb8241a..8fc0dafc6d10 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -6758,6 +6758,23 @@ const message = { orphan_snapshot: '孤立快照', partial_file: '未完成文件', }, + disks: '磁盘管理', + resizeDisk: '扩容', + diskTarget: '设备', + diskCapacityAfterResize: '扩容后总容量', + diskResizeHelper: '扩容只增加虚拟磁盘容量,完成后还需在虚拟机内扩展分区和文件系统。', + diskResizeLimit: '仅支持关机状态下、无快照和镜像链的独立可写 qcow2 磁盘扩容,不支持缩容。', + diskResizeReason: { + referenceCheck: '无法完成虚拟硬盘引用检查,暂不支持扩容,请检查其他虚拟机的磁盘状态', + referenced: '该虚拟硬盘被其他虚拟机或设备使用,暂不支持扩容', + running: '请先关闭虚拟机,再扩容磁盘', + saved: '请先恢复虚拟机运行,再正常关机后扩容', + snapshots: '存在快照,暂不支持扩容,以免影响快照恢复', + backing: '磁盘依赖其他镜像,暂不支持扩容', + shared: '磁盘已设为共享,暂不支持扩容,以免影响其他使用方', + unsupported: '磁盘格式、位置或读写权限不支持扩容', + unavailable: '无法确认磁盘状态,请检查后刷新', + }, diskSize: '磁盘容量', isoHelper: '支持挂载多个 ISO。请先选择系统安装镜像,再选择 VirtIO 等驱动镜像;每个镜像使用独立光驱。', windowsDriverHelper: