diff --git a/instances/templates/allinstances.html b/instances/templates/allinstances.html index 2e83df3d..9d227c65 100644 --- a/instances/templates/allinstances.html +++ b/instances/templates/allinstances.html @@ -63,11 +63,13 @@ {% else %} {% include 'allinstances_index_nongrouped.html' %} {% endif %} + {% if instances %} {# table_filter.js shows it while no row matches #} + {% endif %} diff --git a/instances/tests/test_create_dialog_cpu.py b/instances/tests/test_create_dialog_cpu.py index 4884e7f5..2c21fe37 100644 --- a/instances/tests/test_create_dialog_cpu.py +++ b/instances/tests/test_create_dialog_cpu.py @@ -142,9 +142,19 @@ class CreateDialogHostsTestCase(TestCase): def test_only_reachable_computes_are_listed(self): dialog = self.dialog({"cd2"}) self.assertEqual([e.text for e in dialog.xpath(".//a/div/div[1]")], ["cd2"]) - self.assertNotIn("No compute is reachable.", dialog.text_content()) + self.assertNotIn("No compute is reachable", dialog.text_content()) def test_no_reachable_compute_is_said(self): dialog = self.dialog(set()) - self.assertEqual(dialog.xpath(".//a"), []) - self.assertIn("No compute is reachable.", dialog.text_content()) + self.assertEqual(dialog.xpath(".//a[contains(@class, 'list-group-item')]"), []) + self.assertIn("No compute is reachable: see the Computes page.", dialog.text_content()) + + def test_a_panel_without_computes_says_to_add_one(self): + # the first visit: the dialog and the list lead to the Computes page, and no filter is said to hide VMs + Compute.objects.all().delete() + response = self.client.get(reverse("instances:index")) + dialog = html.fromstring(response.content).get_element_by_id("AddInstance") + self.assertIn("There is no compute yet: add the first host on the Computes page.", dialog.text_content()) + self.assertEqual(dialog.xpath(".//p/a/@href"), [reverse("computes")]) + self.assertContains(response, "There are no VMs here yet.") + self.assertNotContains(response, "No VM matches the search") diff --git a/instances/tests/test_create_form_input.py b/instances/tests/test_create_form_input.py index 3ad699b9..a5b80120 100644 --- a/instances/tests/test_create_form_input.py +++ b/instances/tests/test_create_form_input.py @@ -61,7 +61,7 @@ class CreateFormInputTests(TestCase): _, response = render_create_page(self) self.assertIsNone(response.context["vm_form"]) self.assertEqual(html.fromstring(response.content).xpath("//button[@name='create']"), []) - self.assertTrue(any("storage pools" in str(m) for m in response.context["messages"])) + self.assertTrue(any("no running storage pool" in str(m) for m in response.context["messages"])) def test_a_host_that_cannot_be_read_is_a_message(self): import libvirt diff --git a/instances/tests/test_create_instance.py b/instances/tests/test_create_instance.py index 658bd54e..55228fbe 100644 --- a/instances/tests/test_create_instance.py +++ b/instances/tests/test_create_instance.py @@ -162,6 +162,11 @@ class CreateInstanceViewTests(TestCase): self.assertEqual(response.status_code, 200) conn.get_firmwares.assert_called_once_with("x86_64", "q35") + # a fresh host: what to do, not that the user defined nothing + self.assertContains(response, "This host has no running storage pool for the VM's disks: add or start one on its Storage page.") + conn.get_storages.return_value = ["default"] + response = self.client.get(reverse("instances:create_instance", args=[compute.id, "x86_64", "q35"])) + self.assertContains(response, "This host has no network for the VM: add one on its Networks page.") class NicMacsTestCase(SimpleTestCase): diff --git a/instances/views.py b/instances/views.py index 59b076a2..d905aafe 100755 --- a/instances/views.py +++ b/instances/views.py @@ -2581,9 +2581,9 @@ def create_instance(request, compute_id, arch, machine): tpm_support = bool(conn.get_tpm_model(arch, machine)) if not storages: - raise util.OperationError(_("You haven't defined any storage pools")) + raise util.OperationError(_("This host has no running storage pool for the VM's disks: add or start one on its Storage page.")) if not networks: - raise util.OperationError(_("You haven't defined any network pools")) + raise util.OperationError(_("This host has no network for the VM: add one on its Networks page.")) vm_form = NewVMForm(initial={ # a default this host does not offer is no choice: the select asks for one diff --git a/locale/tr/LC_MESSAGES/django.mo b/locale/tr/LC_MESSAGES/django.mo index fc0f227b..ac412e30 100644 Binary files a/locale/tr/LC_MESSAGES/django.mo and b/locale/tr/LC_MESSAGES/django.mo differ diff --git a/locale/tr/LC_MESSAGES/django.po b/locale/tr/LC_MESSAGES/django.po index af3ced5d..645dcc6d 100644 --- a/locale/tr/LC_MESSAGES/django.po +++ b/locale/tr/LC_MESSAGES/django.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-11-07 13:19+0000\n" +"POT-Creation-Date: 2026-11-07 13:45+0000\n" "PO-Revision-Date: 2020-11-04 12:00+0000\n" "Last-Translator: catborise , 2020\n" "Language-Team: Turkish (https://www.transifex.com/catborise/teams/110663/tr/)\n" @@ -222,7 +222,7 @@ msgstr "Sanal makine ekle" #: accounts/templates/account.html:62 admin/templates/admin/logs.html:40 #: computes/templates/computes/list.html:56 -#: instances/templates/allinstances.html:106 +#: instances/templates/allinstances.html:108 #: instances/templates/allinstances_index_nongrouped.html:8 #: instances/templates/create_steps.html:6 #: instances/templates/create_steps.html:8 @@ -2548,7 +2548,7 @@ msgstr "Bağlan" #: instances/templates/add_instance_owner_block.html:11 #: instances/templates/add_instance_volume.html:15 #: instances/templates/allinstances.html:32 -#: instances/templates/allinstances.html:88 +#: instances/templates/allinstances.html:90 #: instances/templates/create_inst_block.html:12 #: instances/templates/create_instance_w2.html:367 #: instances/templates/instances/edit_instance_volume.html:13 @@ -2792,7 +2792,7 @@ msgstr "" msgid "Delete snapshot" msgstr "Anlık görüntüyü sil" -#: instances/jobs.py:318 vrtManager/instance.py:2281 +#: instances/jobs.py:318 vrtManager/instance.py:2283 #, python-format msgid "The VM has no external snapshot named %(name)s" msgstr "Sanal makinede %(name)s adında harici anlık görüntü yok" @@ -2827,7 +2827,7 @@ msgstr "Sanal makine artık işin çalıştığı sunucuda değil" msgid "Take snapshot" msgstr "Anlık görüntü al" -#: instances/jobs.py:386 instances/jobs.py:395 vrtManager/instance.py:1877 +#: instances/jobs.py:386 instances/jobs.py:395 vrtManager/instance.py:1879 #, python-format msgid "A snapshot named %(name)s already exists" msgstr "%(name)s adında bir anlık görüntü zaten var" @@ -3025,7 +3025,7 @@ msgstr "cloud-init tohumu, disk için bir dizin depolama havuzu gerektirir" msgid "This host offers no firmware %(firmware)s" msgstr "Bu sunucu %(firmware)s firmware'ini sunmuyor" -#: instances/jobs.py:839 vrtManager/instance.py:3013 +#: instances/jobs.py:839 vrtManager/instance.py:3015 msgid "This host offers no TPM 2.0: install swtpm on it" msgstr "Bu sunucu TPM 2.0 sunmuyor: üzerine swtpm kurun" @@ -3284,7 +3284,7 @@ msgid "Add instance network form" msgstr "Sanal makine ağı ekleme formu" #: instances/templates/add_instance_network_block.html:16 -#: instances/templates/allinstances.html:105 +#: instances/templates/allinstances.html:107 #: instances/templates/instances/edit_instance_volume.html:21 #: instances/templates/instances/settings_tab.html:224 #: instances/templates/instances/settings_tab.html:371 @@ -3302,7 +3302,7 @@ msgid "NWFilter" msgstr "AğFiltresi" #: instances/templates/add_instance_network_block.html:48 -#: instances/templates/allinstances.html:104 +#: instances/templates/allinstances.html:106 #: instances/templates/instances/settings_tab.html:405 #: interfaces/templates/interface.html:60 #: interfaces/templates/interface.html:121 @@ -3438,40 +3438,40 @@ msgstr "%%(all)s sanal makineden %%(shown)s eşleşiyor" msgid "There are no VMs here yet." msgstr "Burada henüz sanal makine yok." -#: instances/templates/allinstances.html:68 +#: instances/templates/allinstances.html:69 msgid "No VM matches the search and the state." msgstr "Aramayla ve durumla eşleşen sanal makine yok." -#: instances/templates/allinstances.html:69 +#: instances/templates/allinstances.html:70 msgid "Clear the filters" msgstr "Filtreleri temizle" -#: instances/templates/allinstances.html:73 +#: instances/templates/allinstances.html:75 msgid "The search did not go through. Try again." msgstr "Arama tamamlanamadı. Yeniden deneyin." -#: instances/templates/allinstances.html:74 +#: instances/templates/allinstances.html:76 msgid "No running VM reports this address." msgstr "Bu adresi bildiren çalışan sanal makine yok." -#: instances/templates/allinstances.html:75 +#: instances/templates/allinstances.html:77 msgid "No VM has a network card with this MAC address." msgstr "Bu MAC adresine sahip ağ kartı olan sanal makine yok." -#: instances/templates/allinstances.html:76 +#: instances/templates/allinstances.html:78 msgid "(not registered in the panel)" msgstr "(panelde kayıtlı değil)" -#: instances/templates/allinstances.html:76 +#: instances/templates/allinstances.html:78 msgid "possible conflict" msgstr "olası çakışma" -#: instances/templates/allinstances.html:77 +#: instances/templates/allinstances.html:79 #, python-format msgid "Running VMs checked: %%(n)s." msgstr "Denetlenen çalışan sanal makine: %%(n)s." -#: instances/templates/allinstances.html:78 +#: instances/templates/allinstances.html:80 #, python-format msgid "" "%%(n)s had no connected guest agent; a static address on them cannot be seen." @@ -3479,7 +3479,7 @@ msgstr "" "%%(n)s sanal makinede bağlı konuk ajanı yoktu; bunlardaki statik adresler " "görülemez." -#: instances/templates/allinstances.html:79 +#: instances/templates/allinstances.html:81 #, python-format msgid "" "Guest agents not read (a paused VM, no answer in time, or an error): %%(n)s." @@ -3487,49 +3487,49 @@ msgstr "" "Okunamayan konuk ajanları (duraklatılmış sanal makine, zamanında yanıt yok ya" " da hata): %%(n)s." -#: instances/templates/allinstances.html:80 +#: instances/templates/allinstances.html:82 #, python-format msgid "Not reached: %%(hosts)s." msgstr "Ulaşılamadı: %%(hosts)s." -#: instances/templates/allinstances.html:81 +#: instances/templates/allinstances.html:83 #, python-format msgid "Not finished in time: %%(hosts)s." msgstr "Zamanında bitmedi: %%(hosts)s." -#: instances/templates/allinstances.html:82 +#: instances/templates/allinstances.html:84 #, python-format msgid "Read at %%(time)s." msgstr "Okunma zamanı: %%(time)s." -#: instances/templates/allinstances.html:83 +#: instances/templates/allinstances.html:85 msgid "Some of your VMs could not be checked." msgstr "Sanal makinelerinizin bazıları denetlenemedi." -#: instances/templates/allinstances.html:87 +#: instances/templates/allinstances.html:89 msgid "Find the VMs using an IP or MAC address" msgstr "Bir IP veya MAC adresini kullanan sanal makineleri bul" -#: instances/templates/allinstances.html:92 +#: instances/templates/allinstances.html:94 msgid "IP address, network or MAC address" msgstr "IP adresi, ağ veya MAC adresi" -#: instances/templates/allinstances.html:94 +#: instances/templates/allinstances.html:96 msgid "or" msgstr "veya" -#: instances/templates/allinstances.html:95 +#: instances/templates/allinstances.html:97 msgid "Find" msgstr "Bul" -#: instances/templates/allinstances.html:102 +#: instances/templates/allinstances.html:104 #: interfaces/templates/interface.html:101 networks/templates/network.html:143 #: networks/templates/network.html:199 networks/templates/network.html:361 #: nodedevs/templates/nodedevs.html:32 msgid "Address" msgstr "Adres" -#: instances/templates/allinstances.html:103 +#: instances/templates/allinstances.html:105 #: interfaces/templates/interface.html:153 networks/templates/network.html:202 msgid "VM" msgstr "VM" @@ -3611,9 +3611,23 @@ msgstr "%(name)s CPU kullanımı" msgid "Memory usage of %(name)s" msgstr "%(name)s bellek kullanımı" -#: instances/templates/create_inst_block.html:47 -msgid "No compute is reachable." -msgstr "Ulaşılabilir sunucu yok." +#: instances/templates/create_inst_block.html:49 +#, python-format +msgid "" +"No compute is reachable: see the Computes " +"page." +msgstr "" +"Erişilebilir sunucu yok: Sunucular sayfasına" +" bakın." + +#: instances/templates/create_inst_block.html:51 +#, python-format +msgid "" +"There is no compute yet: add the first host on the Computes page." +msgstr "" +"Henüz sunucu yok: ilk sunucuyu Sunucular " +"sayfasından ekleyin." #: instances/templates/create_instance_w1.html:6 #: instances/templates/create_instance_w2.html:9 @@ -6390,12 +6404,17 @@ msgid "A copy of a template volume" msgstr "Bir şablon biriminin kopyası" #: instances/views.py:2584 -msgid "You haven't defined any storage pools" -msgstr "Hiç bir depolama havuzu tanımlamadınız" +msgid "" +"This host has no running storage pool for the VM's disks: add or start one on" +" its Storage page." +msgstr "" +"Bu sunucuda sanal makinenin diskleri için çalışan bir depolama havuzu yok: " +"Depolama sayfasından bir tane ekleyin ya da başlatın." #: instances/views.py:2586 -msgid "You haven't defined any network pools" -msgstr "Hiç bir ağ havuzu tanımlamadınız" +msgid "This host has no network for the VM: add one on its Networks page." +msgstr "" +"Bu sunucuda sanal makine için ağ yok: Ağlar sayfasından bir tane ekleyin." #: instances/views.py:2649 msgid "Flavor Created" @@ -9077,7 +9096,7 @@ msgstr "" "Anlık görüntü adları 1-64 harf, rakam, '.', '_' veya '-' karakterinden oluşur" " ve '.' ile başlamaz" -#: vrtManager/instance.py:1079 +#: vrtManager/instance.py:1081 msgid "" "A device other than a disk or NIC is in the boot order: change it in the XML " "editor" @@ -9085,104 +9104,104 @@ msgstr "" "Önyükleme sırasında disk veya NIC dışında bir aygıt var: bunu XML " "düzenleyicide değiştirin" -#: vrtManager/instance.py:1091 +#: vrtManager/instance.py:1093 msgid "Invalid Device Type for boot order" msgstr "Ön yükleme sırası için geçersiz aygıt türü" -#: vrtManager/instance.py:1094 +#: vrtManager/instance.py:1096 #, python-format msgid "Boot device %(dev)s is not in the definition" msgstr "Ön yükleme aygıtı %(dev)s tanımda yok" -#: vrtManager/instance.py:1114 +#: vrtManager/instance.py:1116 #, python-format msgid "CD-ROM %(dev)s is not in the running definition" msgstr "CD-ROM %(dev)s çalışan tanımda yok" -#: vrtManager/instance.py:1115 +#: vrtManager/instance.py:1117 #, python-format msgid "CD-ROM %(dev)s is not in the persistent definition" msgstr "CD-ROM %(dev)s kalıcı tanımda yok" -#: vrtManager/instance.py:1127 +#: vrtManager/instance.py:1129 #, python-format msgid "Media of %(dev)s changed in the running VM only: %(err)s" msgstr "%(dev)s ortamı yalnızca çalışan sanal makinede değişti: %(err)s" -#: vrtManager/instance.py:1138 +#: vrtManager/instance.py:1140 #, python-format msgid "ISO image %(image)s was not found" msgstr "ISO imajı %(image)s bulunamadı" -#: vrtManager/instance.py:1140 +#: vrtManager/instance.py:1142 #, python-format msgid "ISO image %(image)s is in more than one storage pool" msgstr "ISO imajı %(image)s birden fazla depolama havuzunda var" -#: vrtManager/instance.py:1247 +#: vrtManager/instance.py:1249 #, python-format msgid "Disk %(target_dev)s is not in the VM's definition" msgstr "Disk %(target_dev)s sanal makinenin tanımında yok" -#: vrtManager/instance.py:1375 +#: vrtManager/instance.py:1377 msgid "Please shutdown the instance then try to enable vCPU hotplug" msgstr "" "vCPU hotplug özelliğini etkinleştirmek için önce sanal makineyi kapatın" -#: vrtManager/instance.py:1662 +#: vrtManager/instance.py:1664 msgid "The VM has no video card" msgstr "Sanal makinede ekran kartı yok" -#: vrtManager/instance.py:1836 +#: vrtManager/instance.py:1838 msgid "" "The VM has external snapshots; internal snapshots cannot be mixed with them" msgstr "" "Sanal makinenin harici anlık görüntüleri var; dahili anlık görüntüler " "bunlarla karıştırılamaz" -#: vrtManager/instance.py:1868 +#: vrtManager/instance.py:1870 msgid "A snapshot with memory is not quiesced; it keeps the whole guest state" msgstr "" "Bellekli bir anlık görüntüde dosya sistemleri dondurulmaz; tüm konuk durumunu" " saklar" -#: vrtManager/instance.py:1870 +#: vrtManager/instance.py:1872 msgid "Only a running VM's file systems can be frozen" msgstr "Yalnızca çalışan bir sanal makinenin dosya sistemleri dondurulabilir" -#: vrtManager/instance.py:1872 +#: vrtManager/instance.py:1874 msgid "The QEMU guest agent is not connected; it freezes the file systems" msgstr "QEMU konuk aracısı bağlı değil; dosya sistemlerini o dondurur" -#: vrtManager/instance.py:1875 +#: vrtManager/instance.py:1877 msgid "" "The VM has internal snapshots; external snapshots cannot be mixed with them" msgstr "" "Sanal makinenin dahili anlık görüntüleri var; harici anlık görüntüler " "bunlarla karıştırılamaz" -#: vrtManager/instance.py:1880 +#: vrtManager/instance.py:1882 msgid "Newer snapshots exist after the last revert; delete them first" msgstr "" "Son geri dönüşten sonra daha yeni anlık görüntüler var; önce onları silin" -#: vrtManager/instance.py:1883 +#: vrtManager/instance.py:1885 msgid "No snapshot is current; revert to a snapshot first" msgstr "Geçerli anlık görüntü yok; önce bir anlık görüntüye geri dönün" -#: vrtManager/instance.py:1889 +#: vrtManager/instance.py:1891 #, python-format msgid "Eject the media from %(dev)s first" msgstr "Önce %(dev)s içindeki ortamı çıkarın" -#: vrtManager/instance.py:1891 +#: vrtManager/instance.py:1893 #, python-format msgid "Disk %(dev)s is not a file; external snapshots need file disks" msgstr "" "Disk %(dev)s bir dosya değil; harici anlık görüntüler dosya diskleri " "gerektirir" -#: vrtManager/instance.py:1899 +#: vrtManager/instance.py:1901 #, python-format msgid "" "The storage pools could not be refreshed, so their free space is unknown: " @@ -9190,21 +9209,21 @@ msgid "" msgstr "" "Depolama havuzları yenilenemedi, bu yüzden boş alanları bilinmiyor: %(err)s" -#: vrtManager/instance.py:1920 +#: vrtManager/instance.py:1922 msgid "Memory is saved only from a running VM" msgstr "Bellek yalnızca çalışan bir sanal makineden kaydedilir" -#: vrtManager/instance.py:1922 +#: vrtManager/instance.py:1924 msgid "The VM has no disk to keep its memory next to" msgstr "Sanal makinenin, belleğinin yanına kaydedileceği bir diski yok" -#: vrtManager/instance.py:1926 +#: vrtManager/instance.py:1928 #, python-format msgid "%(disk)s is not in a storage pool; memory is saved only into one" msgstr "" "%(disk)s bir depolama havuzunda değil; bellek yalnızca bir havuza kaydedilir" -#: vrtManager/instance.py:1957 +#: vrtManager/instance.py:1959 #, python-format msgid "" "Storage pool %(pool)s has %(free).1f GiB free; the snapshot needs %(size).1f " @@ -9215,7 +9234,7 @@ msgstr "" "%(size).1f GiB gerektiriyor (sanal makinenin oradaki disklerinin " "%%%(percent)g kadarı, en az %(minimum)g GiB, ve kaydediliyorsa bellek)" -#: vrtManager/instance.py:1975 +#: vrtManager/instance.py:1977 msgid "" "This snapshot was taken by an older version on a UEFI VM and cannot be " "reverted; delete it instead" @@ -9223,7 +9242,7 @@ msgstr "" "Bu anlık görüntü UEFI bir sanal makinede eski bir sürümle alındı ve geri " "dönülemez; bunun yerine silin" -#: vrtManager/instance.py:2005 +#: vrtManager/instance.py:2007 #, python-format msgid "" "The revert failed twice; try again in a moment (%(error)s). The VM is " @@ -9232,7 +9251,7 @@ msgstr "" "Geri dönüş iki kez başarısız oldu; biraz sonra tekrar deneyin (%(error)s). " "Sanal makine çalışıyor." -#: vrtManager/instance.py:2007 +#: vrtManager/instance.py:2009 #, python-format msgid "" "The revert failed twice; try again in a moment (%(error)s). The VM is shut " @@ -9241,13 +9260,13 @@ msgstr "" "Geri dönüş iki kez başarısız oldu; biraz sonra tekrar deneyin (%(error)s). " "Sanal makine kapalı." -#: vrtManager/instance.py:2170 +#: vrtManager/instance.py:2172 msgid "A disk moves when its VM is defined and running, paused or shut off" msgstr "" "Bir disk, sanal makinesi tanımlıyken ve çalışırken, duraklatılmışken veya " "kapalıyken taşınır" -#: vrtManager/instance.py:2172 +#: vrtManager/instance.py:2174 msgid "" "A disk of a VM with snapshots, a saved state or a running block job does not " "move" @@ -9255,7 +9274,7 @@ msgstr "" "Anlık görüntüleri, kaydedilmiş durumu veya çalışan bir blok işi olan sanal " "makinenin diski taşınmaz" -#: vrtManager/instance.py:2180 +#: vrtManager/instance.py:2182 #, python-format msgid "" "%(dev)s is not a disk file of the VM, the same in its running and next " @@ -9264,132 +9283,132 @@ msgstr "" "%(dev)s, sanal makinenin çalışan ve sonraki başlatma tanımlarında aynı olan " "bir disk dosyası değil" -#: vrtManager/instance.py:2185 +#: vrtManager/instance.py:2187 #, python-format msgid "%(dev)s does not move: only writable raw and qcow2 disks do" msgstr "%(dev)s taşınmaz: yalnızca yazılabilir raw ve qcow2 diskler taşınır" -#: vrtManager/instance.py:2192 +#: vrtManager/instance.py:2194 #, python-format msgid "%(dev)s does not move: no storage pool has %(path)s" msgstr "%(dev)s taşınmaz: hiçbir depolama havuzunda %(path)s yok" -#: vrtManager/instance.py:2194 +#: vrtManager/instance.py:2196 #, python-format msgid "%(dev)s does not move: it has a backing file" msgstr "%(dev)s taşınmaz: temel (backing) dosyası var" -#: vrtManager/instance.py:2197 +#: vrtManager/instance.py:2199 #, python-format msgid "%(pool_name)s is not an active pool of disk files of this host" msgstr "%(pool_name)s bu sunucunun etkin bir disk dosyası havuzu değil" -#: vrtManager/instance.py:2200 +#: vrtManager/instance.py:2202 #, python-format msgid "%(dev)s is in pool %(pool_name)s already" msgstr "%(dev)s zaten %(pool_name)s havuzunda" -#: vrtManager/instance.py:2204 +#: vrtManager/instance.py:2206 #, python-format msgid "Pool %(pool_name)s already has a file %(name)s" msgstr "%(pool_name)s havuzunda zaten %(name)s dosyası var" -#: vrtManager/instance.py:2228 +#: vrtManager/instance.py:2230 #, python-format msgid "The copy of %(dev)s ended before it was complete" msgstr "%(dev)s kopyası tamamlanmadan sona erdi" -#: vrtManager/instance.py:2273 +#: vrtManager/instance.py:2275 #, python-format msgid "%(error)s; remove %(dest)s if it is there: %(cleanup_error)s" msgstr "%(error)s; varsa %(dest)s dosyasını kaldırın: %(cleanup_error)s" -#: vrtManager/instance.py:2275 +#: vrtManager/instance.py:2277 #, python-format msgid "%(error)s; the VM may use %(dest)s now: check its disk %(dev)s" msgstr "" "%(error)s; sanal makine şu anda %(dest)s dosyasını kullanıyor olabilir: " "%(dev)s diskini kontrol edin" -#: vrtManager/instance.py:2282 +#: vrtManager/instance.py:2284 #, python-format msgid "The VM has no internal snapshot named %(name)s" msgstr "Sanal makinenin %(name)s adlı dahili anlık görüntüsü yok" -#: vrtManager/instance.py:2291 +#: vrtManager/instance.py:2293 msgid "The VM has a saved state; start it or remove the saved state first" msgstr "" "Sanal makinenin kaydedilmiş durumu var; önce başlatın veya kaydedilmiş durumu" " kaldırın" -#: vrtManager/instance.py:2293 +#: vrtManager/instance.py:2295 msgid "A snapshot job is still running on this VM; try again when it ends" msgstr "" "Bu sanal makinede hâlâ bir anlık görüntü işi çalışıyor; bittiğinde tekrar " "deneyin" -#: vrtManager/instance.py:2303 +#: vrtManager/instance.py:2305 msgid "Shut the VM down to revert to an internal snapshot" msgstr "Dahili bir anlık görüntüye geri dönmek için sanal makineyi kapatın" -#: vrtManager/instance.py:2401 +#: vrtManager/instance.py:2403 msgid "Cannot clone a VM whose NVRAM is not a file" msgstr "NVRAM'i dosya olmayan bir sanal makine klonlanamaz" -#: vrtManager/instance.py:2469 +#: vrtManager/instance.py:2471 #, python-format msgid "Clone failed (%(err)s); remove these copies by hand: %(path)s" msgstr "" "Klonlama başarısız oldu (%(err)s); bu kopyaları elle kaldırın: %(path)s" -#: vrtManager/instance.py:2479 +#: vrtManager/instance.py:2481 msgid "Shut the VM down before cloning it" msgstr "Klonlamadan önce sanal makineyi kapatın" -#: vrtManager/instance.py:2533 +#: vrtManager/instance.py:2535 #, python-format msgid "Clone failed (%(err)s); remove these copies by hand: %(leftovers)s" msgstr "" "Klonlama başarısız oldu (%(err)s); bu kopyaları elle kaldırın: %(leftovers)s" -#: vrtManager/instance.py:2544 +#: vrtManager/instance.py:2546 msgid "Live clone needs libvirt 11.10 or later; shut the VM down to clone it" msgstr "" "Canlı klonlama libvirt 11.10 veya sonrasını gerektirir; klonlamak için sanal " "makineyi kapatın" -#: vrtManager/instance.py:2547 +#: vrtManager/instance.py:2549 msgid "A VM with a TPM is cloned only shut down" msgstr "TPM'i olan bir sanal makine yalnızca kapalıyken klonlanır" -#: vrtManager/instance.py:2550 +#: vrtManager/instance.py:2552 #, python-format msgid "Disk %(dev)s is not a local file; shut the VM down to clone it" msgstr "" "Disk %(dev)s yerel bir dosya değil; klonlamak için sanal makineyi kapatın" -#: vrtManager/instance.py:2552 +#: vrtManager/instance.py:2554 #, python-format msgid "Disk %(dev)s is shareable; shut the VM down to clone it" msgstr "Disk %(dev)s paylaşılabilir; klonlamak için sanal makineyi kapatın" -#: vrtManager/instance.py:2557 +#: vrtManager/instance.py:2559 #, python-format msgid "Disk %(dev)s changes at the next start; shut the VM down to clone it" msgstr "" "Disk %(dev)s sonraki başlatmada değişiyor; klonlamak için sanal makineyi " "kapatın" -#: vrtManager/instance.py:2559 +#: vrtManager/instance.py:2561 msgid "Another job is running on the VM; clone it when that ends" msgstr "Sanal makinede başka bir iş çalışıyor; o bittiğinde klonlayın" -#: vrtManager/instance.py:2572 +#: vrtManager/instance.py:2574 #, python-format msgid "Volume %(name)s already exists in storage pool %(pool)s" msgstr "%(name)s birimi %(pool)s depolama havuzunda zaten var" -#: vrtManager/instance.py:2591 +#: vrtManager/instance.py:2593 #, python-format msgid "" "Storage pool %(pool)s has %(free).1f GiB free; the clone needs %(size).1f GiB" @@ -9399,20 +9418,20 @@ msgstr "" "gerektiriyor (kopyalanan diskler, artı bunların %%%(percent)g kadarı, en az " "%(minimum)g GiB)" -#: vrtManager/instance.py:2730 +#: vrtManager/instance.py:2732 msgid "A network interface that is a host device is removed in the XML editor" msgstr "Sunucu aygıtı olan bir ağ arabirimi XML düzenleyicide kaldırılır" -#: vrtManager/instance.py:2746 +#: vrtManager/instance.py:2748 #, python-format msgid "No network interface with MAC %(old_mac)s" msgstr "MAC adresi %(old_mac)s olan ağ arabirimi yok" -#: vrtManager/instance.py:2749 +#: vrtManager/instance.py:2751 msgid "A network interface that is a host device is changed in the XML editor" msgstr "Sunucu aygıtı olan bir ağ arabirimi XML düzenleyicide değiştirilir" -#: vrtManager/instance.py:2840 +#: vrtManager/instance.py:2842 msgid "" "A VM changes its PCI devices while it runs, or is shut off without a saved " "state" @@ -9420,14 +9439,14 @@ msgstr "" "Sanal makine PCI aygıtlarını çalışırken veya kaydedilmiş durumu olmadan " "kapalıyken değiştirir" -#: vrtManager/instance.py:2852 +#: vrtManager/instance.py:2854 #, python-format msgid "%(err)s; whether the VM has PCI device %(address)s now is not known" msgstr "" "%(err)s; sanal makinede şu anda %(address)s PCI aygıtının olup olmadığı " "bilinmiyor" -#: vrtManager/instance.py:2854 +#: vrtManager/instance.py:2856 #, python-format msgid "" "%(err)s; PCI device %(address)s: the VM is not running, its next start has it" @@ -9435,7 +9454,7 @@ msgstr "" "%(err)s; PCI aygıtı %(address)s: sanal makine çalışmıyor, sonraki başlatmada " "var" -#: vrtManager/instance.py:2856 +#: vrtManager/instance.py:2858 #, python-format msgid "" "%(err)s; PCI device %(address)s: the VM is not running, its next start does " @@ -9444,7 +9463,7 @@ msgstr "" "%(err)s; PCI aygıtı %(address)s: sanal makine çalışmıyor, sonraki başlatmada " "yok" -#: vrtManager/instance.py:2857 +#: vrtManager/instance.py:2859 #, python-format msgid "" "%(err)s; PCI device %(address)s: the running VM has it, its next start has it" @@ -9452,7 +9471,7 @@ msgstr "" "%(err)s; PCI aygıtı %(address)s: çalışan sanal makinede var, sonraki " "başlatmada var" -#: vrtManager/instance.py:2859 +#: vrtManager/instance.py:2861 #, python-format msgid "" "%(err)s; PCI device %(address)s: the running VM has it, its next start does " @@ -9461,7 +9480,7 @@ msgstr "" "%(err)s; PCI aygıtı %(address)s: çalışan sanal makinede var, sonraki " "başlatmada yok" -#: vrtManager/instance.py:2861 +#: vrtManager/instance.py:2863 #, python-format msgid "" "%(err)s; PCI device %(address)s: the running VM does not have it, its next " @@ -9470,7 +9489,7 @@ msgstr "" "%(err)s; PCI aygıtı %(address)s: çalışan sanal makinede yok, sonraki " "başlatmada var" -#: vrtManager/instance.py:2863 +#: vrtManager/instance.py:2865 #, python-format msgid "" "%(err)s; PCI device %(address)s: the running VM does not have it, its next " @@ -9479,34 +9498,34 @@ msgstr "" "%(err)s; PCI aygıtı %(address)s: çalışan sanal makinede yok, sonraki " "başlatmada yok" -#: vrtManager/instance.py:2897 +#: vrtManager/instance.py:2899 #, python-format msgid "The VM has no PCI device %(address)s" msgstr "Sanal makinede %(address)s PCI aygıtı yok" -#: vrtManager/instance.py:2915 +#: vrtManager/instance.py:2917 msgid "The VM has no USB controller" msgstr "Sanal makinede USB denetleyicisi yok" -#: vrtManager/instance.py:2934 +#: vrtManager/instance.py:2936 msgid "The VM has no such USB device" msgstr "Sanal makinede böyle bir USB aygıtı yok" -#: vrtManager/instance.py:2948 +#: vrtManager/instance.py:2950 #, python-format msgid "The VM has no network interface %(mac)s" msgstr "Sanal makinede %(mac)s ağ arabirimi yok" -#: vrtManager/instance.py:2979 +#: vrtManager/instance.py:2981 msgid "The VM has its own RNG device: change it in the XML editor" msgstr "" "Sanal makinenin kendi RNG aygıtı var: bunu XML düzenleyicide değiştirin" -#: vrtManager/instance.py:3006 +#: vrtManager/instance.py:3008 msgid "The VM has its own TPM: change it in the XML editor" msgstr "Sanal makinenin kendi TPM'i var: bunu XML düzenleyicide değiştirin" -#: vrtManager/instance.py:3025 +#: vrtManager/instance.py:3027 #, python-format msgid "Unknown crash action %(action)s" msgstr "Bilinmeyen çökme eylemi %(action)s" diff --git a/locale/zh/LC_MESSAGES/django.mo b/locale/zh/LC_MESSAGES/django.mo index 069b3b1d..f976d9ab 100644 Binary files a/locale/zh/LC_MESSAGES/django.mo and b/locale/zh/LC_MESSAGES/django.mo differ diff --git a/locale/zh/LC_MESSAGES/django.po b/locale/zh/LC_MESSAGES/django.po index 8e76b4ed..c0c16828 100644 --- a/locale/zh/LC_MESSAGES/django.po +++ b/locale/zh/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-11-07 13:19+0000\n" +"POT-Creation-Date: 2026-11-07 13:45+0000\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -219,7 +219,7 @@ msgstr "添加虚拟机" #: accounts/templates/account.html:62 admin/templates/admin/logs.html:40 #: computes/templates/computes/list.html:56 -#: instances/templates/allinstances.html:106 +#: instances/templates/allinstances.html:108 #: instances/templates/allinstances_index_nongrouped.html:8 #: instances/templates/create_steps.html:6 #: instances/templates/create_steps.html:8 @@ -2466,7 +2466,7 @@ msgstr "连接" #: instances/templates/add_instance_owner_block.html:11 #: instances/templates/add_instance_volume.html:15 #: instances/templates/allinstances.html:32 -#: instances/templates/allinstances.html:88 +#: instances/templates/allinstances.html:90 #: instances/templates/create_inst_block.html:12 #: instances/templates/create_instance_w2.html:367 #: instances/templates/instances/edit_instance_volume.html:13 @@ -2693,7 +2693,7 @@ msgstr "虚拟机未定义;请检查这些卷,然后处理此任务:%(volu msgid "Delete snapshot" msgstr "删除快照" -#: instances/jobs.py:318 vrtManager/instance.py:2281 +#: instances/jobs.py:318 vrtManager/instance.py:2283 #, python-format msgid "The VM has no external snapshot named %(name)s" msgstr "虚拟机没有名为 %(name)s 的外部快照" @@ -2725,7 +2725,7 @@ msgstr "虚拟机已不在运行该任务的计算节点上" msgid "Take snapshot" msgstr "创建快照" -#: instances/jobs.py:386 instances/jobs.py:395 vrtManager/instance.py:1877 +#: instances/jobs.py:386 instances/jobs.py:395 vrtManager/instance.py:1879 #, python-format msgid "A snapshot named %(name)s already exists" msgstr "名为 %(name)s 的快照已存在" @@ -2901,7 +2901,7 @@ msgstr "cloud-init 种子需要为磁盘使用目录类型的存储池" msgid "This host offers no firmware %(firmware)s" msgstr "此主机不提供固件 %(firmware)s" -#: instances/jobs.py:839 vrtManager/instance.py:3013 +#: instances/jobs.py:839 vrtManager/instance.py:3015 msgid "This host offers no TPM 2.0: install swtpm on it" msgstr "此主机不提供 TPM 2.0:请在主机上安装 swtpm" @@ -3150,7 +3150,7 @@ msgid "Add instance network form" msgstr "添加虚拟机网络表单" #: instances/templates/add_instance_network_block.html:16 -#: instances/templates/allinstances.html:105 +#: instances/templates/allinstances.html:107 #: instances/templates/instances/edit_instance_volume.html:21 #: instances/templates/instances/settings_tab.html:224 #: instances/templates/instances/settings_tab.html:371 @@ -3168,7 +3168,7 @@ msgid "NWFilter" msgstr "网络过滤器" #: instances/templates/add_instance_network_block.html:48 -#: instances/templates/allinstances.html:104 +#: instances/templates/allinstances.html:106 #: instances/templates/instances/settings_tab.html:405 #: interfaces/templates/interface.html:60 #: interfaces/templates/interface.html:121 @@ -3302,94 +3302,94 @@ msgstr "%%(shown)s / %%(all)s 台虚拟机匹配" msgid "There are no VMs here yet." msgstr "这里还没有虚拟机。" -#: instances/templates/allinstances.html:68 +#: instances/templates/allinstances.html:69 msgid "No VM matches the search and the state." msgstr "没有虚拟机匹配该搜索和状态。" -#: instances/templates/allinstances.html:69 +#: instances/templates/allinstances.html:70 msgid "Clear the filters" msgstr "清除筛选" -#: instances/templates/allinstances.html:73 +#: instances/templates/allinstances.html:75 msgid "The search did not go through. Try again." msgstr "搜索未完成。请重试。" -#: instances/templates/allinstances.html:74 +#: instances/templates/allinstances.html:76 msgid "No running VM reports this address." msgstr "没有运行中的虚拟机报告此地址。" -#: instances/templates/allinstances.html:75 +#: instances/templates/allinstances.html:77 msgid "No VM has a network card with this MAC address." msgstr "没有虚拟机的网卡使用此 MAC 地址。" -#: instances/templates/allinstances.html:76 +#: instances/templates/allinstances.html:78 msgid "(not registered in the panel)" msgstr "(未在面板中注册)" -#: instances/templates/allinstances.html:76 +#: instances/templates/allinstances.html:78 msgid "possible conflict" msgstr "可能冲突" -#: instances/templates/allinstances.html:77 +#: instances/templates/allinstances.html:79 #, python-format msgid "Running VMs checked: %%(n)s." msgstr "已检查的运行中虚拟机:%%(n)s。" -#: instances/templates/allinstances.html:78 +#: instances/templates/allinstances.html:80 #, python-format msgid "" "%%(n)s had no connected guest agent; a static address on them cannot be seen." msgstr "%%(n)s 台没有已连接的客户机代理;无法看到其上的静态地址。" -#: instances/templates/allinstances.html:79 +#: instances/templates/allinstances.html:81 #, python-format msgid "" "Guest agents not read (a paused VM, no answer in time, or an error): %%(n)s." msgstr "未读取的客户机代理(虚拟机已暂停、未及时响应或出错):%%(n)s。" -#: instances/templates/allinstances.html:80 +#: instances/templates/allinstances.html:82 #, python-format msgid "Not reached: %%(hosts)s." msgstr "未连接:%%(hosts)s。" -#: instances/templates/allinstances.html:81 +#: instances/templates/allinstances.html:83 #, python-format msgid "Not finished in time: %%(hosts)s." msgstr "未及时完成:%%(hosts)s。" -#: instances/templates/allinstances.html:82 +#: instances/templates/allinstances.html:84 #, python-format msgid "Read at %%(time)s." msgstr "读取于 %%(time)s。" -#: instances/templates/allinstances.html:83 +#: instances/templates/allinstances.html:85 msgid "Some of your VMs could not be checked." msgstr "您的部分虚拟机无法检查。" -#: instances/templates/allinstances.html:87 +#: instances/templates/allinstances.html:89 msgid "Find the VMs using an IP or MAC address" msgstr "通过 IP 或 MAC 地址查找虚拟机" -#: instances/templates/allinstances.html:92 +#: instances/templates/allinstances.html:94 msgid "IP address, network or MAC address" msgstr "IP 地址、网络或 MAC 地址" -#: instances/templates/allinstances.html:94 +#: instances/templates/allinstances.html:96 msgid "or" msgstr "或" -#: instances/templates/allinstances.html:95 +#: instances/templates/allinstances.html:97 msgid "Find" msgstr "查找" -#: instances/templates/allinstances.html:102 +#: instances/templates/allinstances.html:104 #: interfaces/templates/interface.html:101 networks/templates/network.html:143 #: networks/templates/network.html:199 networks/templates/network.html:361 #: nodedevs/templates/nodedevs.html:32 msgid "Address" msgstr "地址" -#: instances/templates/allinstances.html:103 +#: instances/templates/allinstances.html:105 #: interfaces/templates/interface.html:153 networks/templates/network.html:202 msgid "VM" msgstr "虚拟机" @@ -3468,9 +3468,19 @@ msgstr "%(name)s 的 CPU 使用率" msgid "Memory usage of %(name)s" msgstr "%(name)s 的内存使用率" -#: instances/templates/create_inst_block.html:47 -msgid "No compute is reachable." -msgstr "没有可连接的计算节点。" +#: instances/templates/create_inst_block.html:49 +#, python-format +msgid "" +"No compute is reachable: see the Computes " +"page." +msgstr "没有可访问的计算节点:请查看计算节点页面。" + +#: instances/templates/create_inst_block.html:51 +#, python-format +msgid "" +"There is no compute yet: add the first host on the Computes page." +msgstr "还没有计算节点:请在计算节点页面添加第一台主机。" #: instances/templates/create_instance_w1.html:6 #: instances/templates/create_instance_w2.html:9 @@ -6051,12 +6061,14 @@ msgid "A copy of a template volume" msgstr "模板卷的副本" #: instances/views.py:2584 -msgid "You haven't defined any storage pools" -msgstr "您尚未定义任何存储池" +msgid "" +"This host has no running storage pool for the VM's disks: add or start one on" +" its Storage page." +msgstr "此主机没有可用于虚拟机磁盘的运行中存储池:请在其“存储”页面添加或启动一个。" #: instances/views.py:2586 -msgid "You haven't defined any network pools" -msgstr "您尚未定义任何网络池" +msgid "This host has no network for the VM: add one on its Networks page." +msgstr "此主机没有可供虚拟机使用的网络:请在其“网络”页面添加一个。" #: instances/views.py:2649 msgid "Flavor Created" @@ -8598,120 +8610,120 @@ msgid "" "with '.'" msgstr "快照名称为 1-64 个字母、数字、'.'、'_' 或 '-',且不能以 '.' 开头" -#: vrtManager/instance.py:1079 +#: vrtManager/instance.py:1081 msgid "" "A device other than a disk or NIC is in the boot order: change it in the XML " "editor" msgstr "启动顺序中有磁盘或网卡以外的设备:请在 XML 编辑器中修改" -#: vrtManager/instance.py:1091 +#: vrtManager/instance.py:1093 msgid "Invalid Device Type for boot order" msgstr "启动顺序的设备类型无效" -#: vrtManager/instance.py:1094 +#: vrtManager/instance.py:1096 #, python-format msgid "Boot device %(dev)s is not in the definition" msgstr "启动设备 %(dev)s 不在定义中" -#: vrtManager/instance.py:1114 +#: vrtManager/instance.py:1116 #, python-format msgid "CD-ROM %(dev)s is not in the running definition" msgstr "CD-ROM %(dev)s 不在运行中的定义中" -#: vrtManager/instance.py:1115 +#: vrtManager/instance.py:1117 #, python-format msgid "CD-ROM %(dev)s is not in the persistent definition" msgstr "CD-ROM %(dev)s 不在持久定义中" -#: vrtManager/instance.py:1127 +#: vrtManager/instance.py:1129 #, python-format msgid "Media of %(dev)s changed in the running VM only: %(err)s" msgstr "%(dev)s 的介质仅在运行中的虚拟机中更改:%(err)s" -#: vrtManager/instance.py:1138 +#: vrtManager/instance.py:1140 #, python-format msgid "ISO image %(image)s was not found" msgstr "未找到 ISO 镜像 %(image)s" -#: vrtManager/instance.py:1140 +#: vrtManager/instance.py:1142 #, python-format msgid "ISO image %(image)s is in more than one storage pool" msgstr "ISO 镜像 %(image)s 位于多个存储池中" -#: vrtManager/instance.py:1247 +#: vrtManager/instance.py:1249 #, python-format msgid "Disk %(target_dev)s is not in the VM's definition" msgstr "磁盘 %(target_dev)s 不在虚拟机的定义中" -#: vrtManager/instance.py:1375 +#: vrtManager/instance.py:1377 msgid "Please shutdown the instance then try to enable vCPU hotplug" msgstr "请先关闭虚拟机,再启用 vCPU 热插拔" -#: vrtManager/instance.py:1662 +#: vrtManager/instance.py:1664 msgid "The VM has no video card" msgstr "虚拟机没有显卡" -#: vrtManager/instance.py:1836 +#: vrtManager/instance.py:1838 msgid "" "The VM has external snapshots; internal snapshots cannot be mixed with them" msgstr "虚拟机有外部快照;内部快照不能与其混用" -#: vrtManager/instance.py:1868 +#: vrtManager/instance.py:1870 msgid "A snapshot with memory is not quiesced; it keeps the whole guest state" msgstr "含内存的快照不会静默文件系统;它保存整个客户机状态" -#: vrtManager/instance.py:1870 +#: vrtManager/instance.py:1872 msgid "Only a running VM's file systems can be frozen" msgstr "只有运行中的虚拟机的文件系统可以冻结" -#: vrtManager/instance.py:1872 +#: vrtManager/instance.py:1874 msgid "The QEMU guest agent is not connected; it freezes the file systems" msgstr "QEMU 客户机代理未连接;文件系统由它冻结" -#: vrtManager/instance.py:1875 +#: vrtManager/instance.py:1877 msgid "" "The VM has internal snapshots; external snapshots cannot be mixed with them" msgstr "虚拟机有内部快照;外部快照不能与其混用" -#: vrtManager/instance.py:1880 +#: vrtManager/instance.py:1882 msgid "Newer snapshots exist after the last revert; delete them first" msgstr "上次还原后存在更新的快照;请先删除它们" -#: vrtManager/instance.py:1883 +#: vrtManager/instance.py:1885 msgid "No snapshot is current; revert to a snapshot first" msgstr "没有当前快照;请先还原到某个快照" -#: vrtManager/instance.py:1889 +#: vrtManager/instance.py:1891 #, python-format msgid "Eject the media from %(dev)s first" msgstr "请先弹出 %(dev)s 中的介质" -#: vrtManager/instance.py:1891 +#: vrtManager/instance.py:1893 #, python-format msgid "Disk %(dev)s is not a file; external snapshots need file disks" msgstr "磁盘 %(dev)s 不是文件;外部快照需要文件磁盘" -#: vrtManager/instance.py:1899 +#: vrtManager/instance.py:1901 #, python-format msgid "" "The storage pools could not be refreshed, so their free space is unknown: " "%(err)s" msgstr "无法刷新存储池,其可用空间未知:%(err)s" -#: vrtManager/instance.py:1920 +#: vrtManager/instance.py:1922 msgid "Memory is saved only from a running VM" msgstr "只能保存运行中的虚拟机的内存" -#: vrtManager/instance.py:1922 +#: vrtManager/instance.py:1924 msgid "The VM has no disk to keep its memory next to" msgstr "虚拟机没有可存放其内存的磁盘" -#: vrtManager/instance.py:1926 +#: vrtManager/instance.py:1928 #, python-format msgid "%(disk)s is not in a storage pool; memory is saved only into one" msgstr "%(disk)s 不在存储池中;内存只能保存到存储池中" -#: vrtManager/instance.py:1957 +#: vrtManager/instance.py:1959 #, python-format msgid "" "Storage pool %(pool)s has %(free).1f GiB free; the snapshot needs %(size).1f " @@ -8721,156 +8733,156 @@ msgstr "" "存储池 %(pool)s 可用 %(free).1f GiB;快照需要 %(size).1f GiB(其中虚拟机磁盘的 %(percent)g%%,至少 " "%(minimum)g GiB,若保存内存则另加内存)" -#: vrtManager/instance.py:1975 +#: vrtManager/instance.py:1977 msgid "" "This snapshot was taken by an older version on a UEFI VM and cannot be " "reverted; delete it instead" msgstr "此快照由旧版本在 UEFI 虚拟机上创建,无法还原;请将其删除" -#: vrtManager/instance.py:2005 +#: vrtManager/instance.py:2007 #, python-format msgid "" "The revert failed twice; try again in a moment (%(error)s). The VM is " "running." msgstr "还原两次失败;请稍后重试(%(error)s)。虚拟机正在运行。" -#: vrtManager/instance.py:2007 +#: vrtManager/instance.py:2009 #, python-format msgid "" "The revert failed twice; try again in a moment (%(error)s). The VM is shut " "off." msgstr "还原两次失败;请稍后重试(%(error)s)。虚拟机已关机。" -#: vrtManager/instance.py:2170 +#: vrtManager/instance.py:2172 msgid "A disk moves when its VM is defined and running, paused or shut off" msgstr "仅当虚拟机已定义且处于运行、暂停或关机状态时才能移动磁盘" -#: vrtManager/instance.py:2172 +#: vrtManager/instance.py:2174 msgid "" "A disk of a VM with snapshots, a saved state or a running block job does not " "move" msgstr "有快照、保存的状态或正在运行块任务的虚拟机的磁盘不能移动" -#: vrtManager/instance.py:2180 +#: vrtManager/instance.py:2182 #, python-format msgid "" "%(dev)s is not a disk file of the VM, the same in its running and next " "start's definition" msgstr "%(dev)s 不是该虚拟机在运行中的定义和下次启动定义中相同的磁盘文件" -#: vrtManager/instance.py:2185 +#: vrtManager/instance.py:2187 #, python-format msgid "%(dev)s does not move: only writable raw and qcow2 disks do" msgstr "%(dev)s 不能移动:只能移动可写的 raw 和 qcow2 磁盘" -#: vrtManager/instance.py:2192 +#: vrtManager/instance.py:2194 #, python-format msgid "%(dev)s does not move: no storage pool has %(path)s" msgstr "%(dev)s 不能移动:没有存储池包含 %(path)s" -#: vrtManager/instance.py:2194 +#: vrtManager/instance.py:2196 #, python-format msgid "%(dev)s does not move: it has a backing file" msgstr "%(dev)s 不能移动:它有后备文件" -#: vrtManager/instance.py:2197 +#: vrtManager/instance.py:2199 #, python-format msgid "%(pool_name)s is not an active pool of disk files of this host" msgstr "%(pool_name)s 不是此主机上活动的磁盘文件存储池" -#: vrtManager/instance.py:2200 +#: vrtManager/instance.py:2202 #, python-format msgid "%(dev)s is in pool %(pool_name)s already" msgstr "%(dev)s 已在存储池 %(pool_name)s 中" -#: vrtManager/instance.py:2204 +#: vrtManager/instance.py:2206 #, python-format msgid "Pool %(pool_name)s already has a file %(name)s" msgstr "存储池 %(pool_name)s 中已有文件 %(name)s" -#: vrtManager/instance.py:2228 +#: vrtManager/instance.py:2230 #, python-format msgid "The copy of %(dev)s ended before it was complete" msgstr "%(dev)s 的复制在完成前结束" -#: vrtManager/instance.py:2273 +#: vrtManager/instance.py:2275 #, python-format msgid "%(error)s; remove %(dest)s if it is there: %(cleanup_error)s" msgstr "%(error)s;如果 %(dest)s 存在请将其删除:%(cleanup_error)s" -#: vrtManager/instance.py:2275 +#: vrtManager/instance.py:2277 #, python-format msgid "%(error)s; the VM may use %(dest)s now: check its disk %(dev)s" msgstr "%(error)s;虚拟机现在可能在使用 %(dest)s:请检查其磁盘 %(dev)s" -#: vrtManager/instance.py:2282 +#: vrtManager/instance.py:2284 #, python-format msgid "The VM has no internal snapshot named %(name)s" msgstr "虚拟机没有名为 %(name)s 的内部快照" -#: vrtManager/instance.py:2291 +#: vrtManager/instance.py:2293 msgid "The VM has a saved state; start it or remove the saved state first" msgstr "虚拟机有保存的状态;请先启动它或删除保存的状态" -#: vrtManager/instance.py:2293 +#: vrtManager/instance.py:2295 msgid "A snapshot job is still running on this VM; try again when it ends" msgstr "此虚拟机上仍有快照任务在运行;请在其结束后重试" -#: vrtManager/instance.py:2303 +#: vrtManager/instance.py:2305 msgid "Shut the VM down to revert to an internal snapshot" msgstr "请关闭虚拟机后再还原到内部快照" -#: vrtManager/instance.py:2401 +#: vrtManager/instance.py:2403 msgid "Cannot clone a VM whose NVRAM is not a file" msgstr "NVRAM 不是文件的虚拟机无法克隆" -#: vrtManager/instance.py:2469 +#: vrtManager/instance.py:2471 #, python-format msgid "Clone failed (%(err)s); remove these copies by hand: %(path)s" msgstr "克隆失败(%(err)s);请手动删除这些副本:%(path)s" -#: vrtManager/instance.py:2479 +#: vrtManager/instance.py:2481 msgid "Shut the VM down before cloning it" msgstr "请先关闭虚拟机再克隆" -#: vrtManager/instance.py:2533 +#: vrtManager/instance.py:2535 #, python-format msgid "Clone failed (%(err)s); remove these copies by hand: %(leftovers)s" msgstr "克隆失败(%(err)s);请手动删除这些副本:%(leftovers)s" -#: vrtManager/instance.py:2544 +#: vrtManager/instance.py:2546 msgid "Live clone needs libvirt 11.10 or later; shut the VM down to clone it" msgstr "在线克隆需要 libvirt 11.10 或更高版本;请关闭虚拟机后再克隆" -#: vrtManager/instance.py:2547 +#: vrtManager/instance.py:2549 msgid "A VM with a TPM is cloned only shut down" msgstr "带 TPM 的虚拟机只能在关机时克隆" -#: vrtManager/instance.py:2550 +#: vrtManager/instance.py:2552 #, python-format msgid "Disk %(dev)s is not a local file; shut the VM down to clone it" msgstr "磁盘 %(dev)s 不是本地文件;请关闭虚拟机后再克隆" -#: vrtManager/instance.py:2552 +#: vrtManager/instance.py:2554 #, python-format msgid "Disk %(dev)s is shareable; shut the VM down to clone it" msgstr "磁盘 %(dev)s 是可共享的;请关闭虚拟机后再克隆" -#: vrtManager/instance.py:2557 +#: vrtManager/instance.py:2559 #, python-format msgid "Disk %(dev)s changes at the next start; shut the VM down to clone it" msgstr "磁盘 %(dev)s 在下次启动时会改变;请关闭虚拟机后再克隆" -#: vrtManager/instance.py:2559 +#: vrtManager/instance.py:2561 msgid "Another job is running on the VM; clone it when that ends" msgstr "虚拟机上有另一个任务正在运行;请在其结束后再克隆" -#: vrtManager/instance.py:2572 +#: vrtManager/instance.py:2574 #, python-format msgid "Volume %(name)s already exists in storage pool %(pool)s" msgstr "卷 %(name)s 已存在于存储池 %(pool)s 中" -#: vrtManager/instance.py:2591 +#: vrtManager/instance.py:2593 #, python-format msgid "" "Storage pool %(pool)s has %(free).1f GiB free; the clone needs %(size).1f GiB" @@ -8879,97 +8891,97 @@ msgstr "" "存储池 %(pool)s 可用 %(free).1f GiB;克隆需要 %(size).1f GiB(复制的磁盘,再加其 %(percent)g%%,至少" " %(minimum)g GiB)" -#: vrtManager/instance.py:2730 +#: vrtManager/instance.py:2732 msgid "A network interface that is a host device is removed in the XML editor" msgstr "作为主机设备的网络接口需在 XML 编辑器中删除" -#: vrtManager/instance.py:2746 +#: vrtManager/instance.py:2748 #, python-format msgid "No network interface with MAC %(old_mac)s" msgstr "没有 MAC 为 %(old_mac)s 的网络接口" -#: vrtManager/instance.py:2749 +#: vrtManager/instance.py:2751 msgid "A network interface that is a host device is changed in the XML editor" msgstr "作为主机设备的网络接口需在 XML 编辑器中修改" -#: vrtManager/instance.py:2840 +#: vrtManager/instance.py:2842 msgid "" "A VM changes its PCI devices while it runs, or is shut off without a saved " "state" msgstr "虚拟机只能在运行时或无保存的状态的关机时更改其 PCI 设备" -#: vrtManager/instance.py:2852 +#: vrtManager/instance.py:2854 #, python-format msgid "%(err)s; whether the VM has PCI device %(address)s now is not known" msgstr "%(err)s;虚拟机现在是否有 PCI 设备 %(address)s 未知" -#: vrtManager/instance.py:2854 +#: vrtManager/instance.py:2856 #, python-format msgid "" "%(err)s; PCI device %(address)s: the VM is not running, its next start has it" msgstr "%(err)s;PCI 设备 %(address)s:虚拟机未运行,下次启动时有它" -#: vrtManager/instance.py:2856 +#: vrtManager/instance.py:2858 #, python-format msgid "" "%(err)s; PCI device %(address)s: the VM is not running, its next start does " "not have it" msgstr "%(err)s;PCI 设备 %(address)s:虚拟机未运行,下次启动时没有它" -#: vrtManager/instance.py:2857 +#: vrtManager/instance.py:2859 #, python-format msgid "" "%(err)s; PCI device %(address)s: the running VM has it, its next start has it" msgstr "%(err)s;PCI 设备 %(address)s:运行中的虚拟机有它,下次启动时有它" -#: vrtManager/instance.py:2859 +#: vrtManager/instance.py:2861 #, python-format msgid "" "%(err)s; PCI device %(address)s: the running VM has it, its next start does " "not have it" msgstr "%(err)s;PCI 设备 %(address)s:运行中的虚拟机有它,下次启动时没有它" -#: vrtManager/instance.py:2861 +#: vrtManager/instance.py:2863 #, python-format msgid "" "%(err)s; PCI device %(address)s: the running VM does not have it, its next " "start has it" msgstr "%(err)s;PCI 设备 %(address)s:运行中的虚拟机没有它,下次启动时有它" -#: vrtManager/instance.py:2863 +#: vrtManager/instance.py:2865 #, python-format msgid "" "%(err)s; PCI device %(address)s: the running VM does not have it, its next " "start does not have it" msgstr "%(err)s;PCI 设备 %(address)s:运行中的虚拟机没有它,下次启动时没有它" -#: vrtManager/instance.py:2897 +#: vrtManager/instance.py:2899 #, python-format msgid "The VM has no PCI device %(address)s" msgstr "虚拟机没有 PCI 设备 %(address)s" -#: vrtManager/instance.py:2915 +#: vrtManager/instance.py:2917 msgid "The VM has no USB controller" msgstr "虚拟机没有 USB 控制器" -#: vrtManager/instance.py:2934 +#: vrtManager/instance.py:2936 msgid "The VM has no such USB device" msgstr "虚拟机没有此 USB 设备" -#: vrtManager/instance.py:2948 +#: vrtManager/instance.py:2950 #, python-format msgid "The VM has no network interface %(mac)s" msgstr "虚拟机没有网络接口 %(mac)s" -#: vrtManager/instance.py:2979 +#: vrtManager/instance.py:2981 msgid "The VM has its own RNG device: change it in the XML editor" msgstr "虚拟机有自己的 RNG 设备:请在 XML 编辑器中修改" -#: vrtManager/instance.py:3006 +#: vrtManager/instance.py:3008 msgid "The VM has its own TPM: change it in the XML editor" msgstr "虚拟机有自己的 TPM:请在 XML 编辑器中修改" -#: vrtManager/instance.py:3025 +#: vrtManager/instance.py:3027 #, python-format msgid "Unknown crash action %(action)s" msgstr "未知的崩溃操作 %(action)s"