1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 11:16:47 +00:00

fix(instances): an empty panel says what to do next

- The VM list with no VMs no longer also says that no VM matches the
  search and the state.
- The New VM dialog with no compute yet says to add the first host, with a
  link to the Computes page (and links there when none is reachable).
- The new VM page on a host without a running storage pool or a network
  says what to add or start and where, instead of "You haven't defined any
  storage pools" (also when pools exist but are stopped) and "network
  pools".
This commit is contained in:
catborise 2026-11-07 16:46:03 +03:00
parent 0b4a601ecb
commit 129327358d
10 changed files with 278 additions and 225 deletions

View file

@ -63,11 +63,13 @@
{% else %}
{% include 'allinstances_index_nongrouped.html' %}
{% endif %}
{% if instances %}
{# table_filter.js shows it while no row matches #}
<div id="no-match" class="text-center text-body-secondary py-4" hidden>
{% trans "No VM matches the search and the state." %}
<button type="button" class="btn btn-link" id="clear-filters">{% trans "Clear the filters" %}</button>
</div>
{% endif %}
</div>
<div class="modal fade" id="find-address" tabindex="-1" aria-labelledby="find-address-title" aria-hidden="true"
data-url="{% url 'instances:find_address' %}" data-failed="{% trans "The search did not go through. Try again." %}"

View file

@ -44,7 +44,12 @@
</div>
</a>
{% empty %}
<p>{% trans "No compute is reachable." %}</p>
{% url 'computes' as computes_url %}
{% if computes %}
<p>{% blocktrans %}No compute is reachable: see the <a href="{{ computes_url }}">Computes</a> page.{% endblocktrans %}</p>
{% else %}
<p>{% blocktrans %}There is no compute yet: add the first host on the <a href="{{ computes_url }}">Computes</a> page.{% endblocktrans %}</p>
{% endif %}
{% endfor %}
</div>
</div>

View file

@ -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")

View file

@ -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

View file

@ -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&#x27;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):

View file

@ -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

Binary file not shown.

View file

@ -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 <muhammetalisag@gmail.com>, 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 <a href=\"%(computes_url)s\">Computes</a> "
"page."
msgstr ""
"Erişilebilir sunucu yok: <a href=\"%(computes_url)s\">Sunucular</a> 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 <a "
"href=\"%(computes_url)s\">Computes</a> page."
msgstr ""
"Henüz sunucu yok: ilk sunucuyu <a href=\"%(computes_url)s\">Sunucular</a> "
"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"

Binary file not shown.

View file

@ -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 <a href=\"%(computes_url)s\">Computes</a> "
"page."
msgstr "没有可访问的计算节点:请查看<a href=\"%(computes_url)s\">计算节点</a>页面。"
#: instances/templates/create_inst_block.html:51
#, python-format
msgid ""
"There is no compute yet: add the first host on the <a "
"href=\"%(computes_url)s\">Computes</a> page."
msgstr "还没有计算节点:请在<a href=\"%(computes_url)s\">计算节点</a>页面添加第一台主机。"
#: 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"