[PATCH 1/1] Moving host tab functionality to gingerbase.
by chandra@linux.vnet.ibm.com
From: Chandra Shekhar Reddy Potula <chandra(a)linux.vnet.ibm.com>
Signed-off-by: Chandra Shekhar Reddy Potula <chandra(a)linux.vnet.ibm.com>
---
plugins/gingerbase/control/debugreports.py | 61 ++
plugins/gingerbase/disks.py | 196 +++++
plugins/gingerbase/model/debugreports.py | 213 +++++
plugins/gingerbase/repositories.py | 529 +++++++++++++
plugins/gingerbase/swupdate.py | 263 +++++++
plugins/gingerbase/tests/test_host.py | 200 +++++
plugins/gingerbase/ui/css/theme-default/host.css | 287 +++++++
.../gingerbase/ui/css/theme-default/report-add.css | 37 +
.../ui/css/theme-default/report-rename.css | 39 +
.../ui/css/theme-default/repository-add.css | 42 +
.../ui/css/theme-default/repository-edit.css | 88 +++
plugins/gingerbase/ui/js/src/gingerbase.host.js | 858 +++++++++++++++++++++
.../ui/js/src/gingerbase.report_add_main.js | 72 ++
.../ui/js/src/gingerbase.report_rename_main.js | 66 ++
.../ui/js/src/gingerbase.repository_add_main.js | 96 +++
.../ui/js/src/gingerbase.repository_edit_main.js | 74 ++
plugins/gingerbase/ui/pages/help/de_DE/host.dita | 49 ++
plugins/gingerbase/ui/pages/help/en_US/host.dita | 70 ++
plugins/gingerbase/ui/pages/help/es_ES/host.dita | 49 ++
plugins/gingerbase/ui/pages/help/fr_FR/host.dita | 68 ++
plugins/gingerbase/ui/pages/help/it_IT/host.dita | 51 ++
plugins/gingerbase/ui/pages/help/ja_JP/host.dita | 70 ++
plugins/gingerbase/ui/pages/help/ko_KR/host.dita | 47 ++
plugins/gingerbase/ui/pages/help/pt_BR/host.dita | 74 ++
plugins/gingerbase/ui/pages/help/ru_RU/host.dita | 48 ++
plugins/gingerbase/ui/pages/help/zh_CN/host.dita | 45 ++
plugins/gingerbase/ui/pages/help/zh_TW/host.dita | 50 ++
plugins/gingerbase/ui/pages/host.html.tmpl | 177 +++++
plugins/gingerbase/ui/pages/report-add.html.tmpl | 56 ++
.../gingerbase/ui/pages/report-rename.html.tmpl | 56 ++
.../gingerbase/ui/pages/repository-add.html.tmpl | 113 +++
.../gingerbase/ui/pages/repository-edit.html.tmpl | 117 +++
plugins/gingerbase/yumparser.py | 283 +++++++
plugins/kimchi/API.json | 134 ----
plugins/kimchi/Makefile.am | 3 +-
plugins/kimchi/config.py.in | 4 -
plugins/kimchi/control/debugreports.py | 61 --
plugins/kimchi/control/host.py | 96 ---
plugins/kimchi/disks.py | 196 -----
plugins/kimchi/docs/README.md | 6 +-
plugins/kimchi/i18n.py | 50 --
plugins/kimchi/kimchi.conf | 7 -
plugins/kimchi/mockmodel.py | 21 -
plugins/kimchi/model/config.py | 21 -
plugins/kimchi/model/debugreports.py | 213 -----
plugins/kimchi/model/host.py | 320 --------
plugins/kimchi/repositories.py | 529 -------------
plugins/kimchi/root.py | 1 -
plugins/kimchi/swupdate.py | 263 -------
plugins/kimchi/tests/test_authorization.py | 6 -
plugins/kimchi/tests/test_config.py.in | 8 -
plugins/kimchi/tests/test_host.py | 200 -----
plugins/kimchi/tests/test_model.py | 237 ------
plugins/kimchi/tests/test_rest.py | 47 --
plugins/kimchi/ui/config/tab-ext.xml | 7 -
plugins/kimchi/ui/css/theme-default/host.css | 287 -------
plugins/kimchi/ui/css/theme-default/report-add.css | 37 -
.../kimchi/ui/css/theme-default/report-rename.css | 39 -
.../kimchi/ui/css/theme-default/repository-add.css | 42 -
.../ui/css/theme-default/repository-edit.css | 88 ---
plugins/kimchi/ui/js/src/kimchi.api.js | 250 ------
plugins/kimchi/ui/js/src/kimchi.host.js | 858 ---------------------
plugins/kimchi/ui/js/src/kimchi.report_add_main.js | 72 --
.../kimchi/ui/js/src/kimchi.report_rename_main.js | 66 --
.../kimchi/ui/js/src/kimchi.repository_add_main.js | 96 ---
.../ui/js/src/kimchi.repository_edit_main.js | 74 --
plugins/kimchi/ui/pages/help/de_DE/host.dita | 49 --
plugins/kimchi/ui/pages/help/en_US/host.dita | 70 --
plugins/kimchi/ui/pages/help/es_ES/host.dita | 49 --
plugins/kimchi/ui/pages/help/fr_FR/host.dita | 68 --
plugins/kimchi/ui/pages/help/it_IT/host.dita | 51 --
plugins/kimchi/ui/pages/help/ja_JP/host.dita | 70 --
plugins/kimchi/ui/pages/help/ko_KR/host.dita | 47 --
plugins/kimchi/ui/pages/help/pt_BR/host.dita | 74 --
plugins/kimchi/ui/pages/help/ru_RU/host.dita | 48 --
plugins/kimchi/ui/pages/help/zh_CN/host.dita | 45 --
plugins/kimchi/ui/pages/help/zh_TW/host.dita | 50 --
plugins/kimchi/ui/pages/host.html.tmpl | 177 -----
plugins/kimchi/ui/pages/i18n.json.tmpl | 43 --
plugins/kimchi/ui/pages/report-add.html.tmpl | 56 --
plugins/kimchi/ui/pages/report-rename.html.tmpl | 56 --
plugins/kimchi/ui/pages/repository-add.html.tmpl | 113 ---
plugins/kimchi/ui/pages/repository-edit.html.tmpl | 117 ---
plugins/kimchi/yumparser.py | 283 -------
84 files changed, 4548 insertions(+), 5801 deletions(-)
create mode 100644 plugins/gingerbase/control/debugreports.py
create mode 100644 plugins/gingerbase/disks.py
create mode 100644 plugins/gingerbase/model/debugreports.py
create mode 100644 plugins/gingerbase/repositories.py
create mode 100644 plugins/gingerbase/swupdate.py
create mode 100644 plugins/gingerbase/tests/test_host.py
create mode 100644 plugins/gingerbase/ui/css/theme-default/host.css
create mode 100644 plugins/gingerbase/ui/css/theme-default/report-add.css
create mode 100644 plugins/gingerbase/ui/css/theme-default/report-rename.css
create mode 100644 plugins/gingerbase/ui/css/theme-default/repository-add.css
create mode 100644 plugins/gingerbase/ui/css/theme-default/repository-edit.css
create mode 100644 plugins/gingerbase/ui/js/src/gingerbase.host.js
create mode 100644 plugins/gingerbase/ui/js/src/gingerbase.report_add_main.js
create mode 100644 plugins/gingerbase/ui/js/src/gingerbase.report_rename_main.js
create mode 100644 plugins/gingerbase/ui/js/src/gingerbase.repository_add_main.js
create mode 100644 plugins/gingerbase/ui/js/src/gingerbase.repository_edit_main.js
create mode 100644 plugins/gingerbase/ui/pages/help/de_DE/host.dita
create mode 100644 plugins/gingerbase/ui/pages/help/en_US/host.dita
create mode 100644 plugins/gingerbase/ui/pages/help/es_ES/host.dita
create mode 100644 plugins/gingerbase/ui/pages/help/fr_FR/host.dita
create mode 100644 plugins/gingerbase/ui/pages/help/it_IT/host.dita
create mode 100644 plugins/gingerbase/ui/pages/help/ja_JP/host.dita
create mode 100644 plugins/gingerbase/ui/pages/help/ko_KR/host.dita
create mode 100644 plugins/gingerbase/ui/pages/help/pt_BR/host.dita
create mode 100644 plugins/gingerbase/ui/pages/help/ru_RU/host.dita
create mode 100644 plugins/gingerbase/ui/pages/help/zh_CN/host.dita
create mode 100644 plugins/gingerbase/ui/pages/help/zh_TW/host.dita
create mode 100644 plugins/gingerbase/ui/pages/host.html.tmpl
create mode 100644 plugins/gingerbase/ui/pages/report-add.html.tmpl
create mode 100644 plugins/gingerbase/ui/pages/report-rename.html.tmpl
create mode 100644 plugins/gingerbase/ui/pages/repository-add.html.tmpl
create mode 100644 plugins/gingerbase/ui/pages/repository-edit.html.tmpl
create mode 100644 plugins/gingerbase/yumparser.py
delete mode 100644 plugins/kimchi/control/debugreports.py
delete mode 100644 plugins/kimchi/disks.py
delete mode 100644 plugins/kimchi/model/debugreports.py
delete mode 100644 plugins/kimchi/repositories.py
delete mode 100644 plugins/kimchi/swupdate.py
delete mode 100644 plugins/kimchi/tests/test_host.py
delete mode 100644 plugins/kimchi/ui/css/theme-default/host.css
delete mode 100644 plugins/kimchi/ui/css/theme-default/report-add.css
delete mode 100644 plugins/kimchi/ui/css/theme-default/report-rename.css
delete mode 100644 plugins/kimchi/ui/css/theme-default/repository-add.css
delete mode 100644 plugins/kimchi/ui/css/theme-default/repository-edit.css
delete mode 100644 plugins/kimchi/ui/js/src/kimchi.host.js
delete mode 100644 plugins/kimchi/ui/js/src/kimchi.report_add_main.js
delete mode 100644 plugins/kimchi/ui/js/src/kimchi.report_rename_main.js
delete mode 100644 plugins/kimchi/ui/js/src/kimchi.repository_add_main.js
delete mode 100644 plugins/kimchi/ui/js/src/kimchi.repository_edit_main.js
delete mode 100644 plugins/kimchi/ui/pages/help/de_DE/host.dita
delete mode 100644 plugins/kimchi/ui/pages/help/en_US/host.dita
delete mode 100644 plugins/kimchi/ui/pages/help/es_ES/host.dita
delete mode 100644 plugins/kimchi/ui/pages/help/fr_FR/host.dita
delete mode 100644 plugins/kimchi/ui/pages/help/it_IT/host.dita
delete mode 100644 plugins/kimchi/ui/pages/help/ja_JP/host.dita
delete mode 100644 plugins/kimchi/ui/pages/help/ko_KR/host.dita
delete mode 100644 plugins/kimchi/ui/pages/help/pt_BR/host.dita
delete mode 100644 plugins/kimchi/ui/pages/help/ru_RU/host.dita
delete mode 100644 plugins/kimchi/ui/pages/help/zh_CN/host.dita
delete mode 100644 plugins/kimchi/ui/pages/help/zh_TW/host.dita
delete mode 100644 plugins/kimchi/ui/pages/host.html.tmpl
delete mode 100644 plugins/kimchi/ui/pages/report-add.html.tmpl
delete mode 100644 plugins/kimchi/ui/pages/report-rename.html.tmpl
delete mode 100644 plugins/kimchi/ui/pages/repository-add.html.tmpl
delete mode 100644 plugins/kimchi/ui/pages/repository-edit.html.tmpl
delete mode 100644 plugins/kimchi/yumparser.py
diff --git a/plugins/gingerbase/control/debugreports.py b/plugins/gingerbase/control/debugreports.py
new file mode 100644
index 0000000..b5a3072
--- /dev/null
+++ b/plugins/gingerbase/control/debugreports.py
@@ -0,0 +1,61 @@
+#
+# Project Kimchi
+#
+# Copyright IBM, Corp. 2013-2015
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+from wok.control.base import AsyncCollection, Resource
+from wok.control.utils import internal_redirect
+from wok.control.utils import UrlSubNode
+
+
+@UrlSubNode('debugreports', True)
+class DebugReports(AsyncCollection):
+ def __init__(self, model):
+ super(DebugReports, self).__init__(model)
+ self.resource = DebugReport
+ self.role_key = 'host'
+ self.admin_methods = ['GET', 'POST']
+
+ def _get_resources(self, filter_params):
+ res_list = super(DebugReports, self)._get_resources(filter_params)
+ return sorted(res_list, key=lambda x: x.data['time'], reverse=True)
+
+
+class DebugReport(Resource):
+ def __init__(self, model, ident):
+ super(DebugReport, self).__init__(model, ident)
+ self.role_key = 'host'
+ self.admin_methods = ['GET', 'PUT', 'POST']
+ self.uri_fmt = '/debugreports/%s'
+ self.content = DebugReportContent(model, ident)
+
+ @property
+ def data(self):
+ return {'name': self.ident,
+ 'uri': self.info['uri'],
+ 'time': self.info['ctime']}
+
+
+class DebugReportContent(Resource):
+ def __init__(self, model, ident):
+ super(DebugReportContent, self).__init__(model, ident)
+ self.role_key = 'host'
+ self.admin_methods = ['GET']
+
+ def get(self):
+ self.lookup()
+ raise internal_redirect(self.info['uri'])
diff --git a/plugins/gingerbase/disks.py b/plugins/gingerbase/disks.py
new file mode 100644
index 0000000..eb40e3a
--- /dev/null
+++ b/plugins/gingerbase/disks.py
@@ -0,0 +1,196 @@
+#
+# Project Kimchi
+#
+# Copyright IBM, Corp. 2013-2015
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+import os.path
+import re
+import subprocess
+from parted import Device as PDevice
+from parted import Disk as PDisk
+
+from wok.exception import OperationFailed
+from wok.utils import wok_log
+
+
+def _get_dev_node_path(maj_min):
+ """ Returns device node path given the device number 'major:min' """
+
+ dm_name = "/sys/dev/block/%s/dm/name" % maj_min
+ if os.path.exists(dm_name):
+ with open(dm_name) as dm_f:
+ content = dm_f.read().rstrip('\n')
+ return "/dev/mapper/" + content
+
+ uevent = "/sys/dev/block/%s/uevent" % maj_min
+ with open(uevent) as ueventf:
+ content = ueventf.read()
+
+ data = dict(re.findall(r'(\S+)=(".*?"|\S+)', content.replace("\n", " ")))
+
+ return "/dev/%s" % data["DEVNAME"]
+
+
+def _get_lsblk_devs(keys, devs=[]):
+ lsblk = subprocess.Popen(
+ ["lsblk", "-Pbo"] + [','.join(keys)] + devs,
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ out, err = lsblk.communicate()
+ if lsblk.returncode != 0:
+ raise OperationFailed("KCHDISKS0001E", {'err': err})
+
+ return _parse_lsblk_output(out, keys)
+
+
+def _get_dev_major_min(name):
+ maj_min = None
+
+ keys = ["NAME", "MAJ:MIN"]
+ dev_list = _get_lsblk_devs(keys)
+
+ for dev in dev_list:
+ if dev['name'].split()[0] == name:
+ maj_min = dev['maj:min']
+ break
+ else:
+ raise OperationFailed("KCHDISKS0002E", {'device': name})
+
+ return maj_min
+
+
+def _is_dev_leaf(devNodePath):
+ try:
+ # By default, lsblk prints a device information followed by children
+ # device information
+ childrenCount = len(
+ _get_lsblk_devs(["NAME"], [devNodePath])) - 1
+ except OperationFailed as e:
+ # lsblk is known to fail on multipath devices
+ # Assume these devices contain children
+ wok_log.error(
+ "Error getting device info for %s: %s", devNodePath, e)
+ return False
+
+ return childrenCount == 0
+
+
+def _is_dev_extended_partition(devType, devNodePath):
+ if devType != 'part':
+ return False
+ diskPath = devNodePath.rstrip('0123456789')
+ device = PDevice(diskPath)
+ try:
+ extended_part = PDisk(device).getExtendedPartition()
+ except NotImplementedError as e:
+ wok_log.warning(
+ "Error getting extended partition info for dev %s type %s: %s",
+ devNodePath, devType, e.message)
+ # Treate disk with unsupported partiton table as if it does not
+ # contain extended partitions.
+ return False
+ if extended_part and extended_part.path == devNodePath:
+ return True
+ return False
+
+
+def _parse_lsblk_output(output, keys):
+ # output is on format key="value",
+ # where key can be NAME, TYPE, FSTYPE, SIZE, MOUNTPOINT, etc
+ lines = output.rstrip("\n").split("\n")
+ r = []
+ for line in lines:
+ d = {}
+ for key in keys:
+ expression = r"%s=\".*?\"" % key
+ match = re.search(expression, line)
+ field = match.group()
+ k, v = field.split('=', 1)
+ d[k.lower()] = v[1:-1]
+ r.append(d)
+ return r
+
+
+def _get_vgname(devNodePath):
+ """ Return volume group name of a physical volume. If the device node path
+ is not a physical volume, return empty string. """
+ pvs = subprocess.Popen(
+ ["pvs", "--unbuffered", "--nameprefixes", "--noheadings",
+ "-o", "vg_name", devNodePath],
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ out, err = pvs.communicate()
+ if pvs.returncode != 0:
+ return ""
+
+ return re.findall(r"LVM2_VG_NAME='([^\']*)'", out)[0]
+
+
+def _is_available(name, devtype, fstype, mountpoint, majmin):
+ devNodePath = _get_dev_node_path(majmin)
+ # Only list unmounted and unformated and leaf and (partition or disk)
+ # leaf means a partition, a disk has no partition, or a disk not held
+ # by any multipath device. Physical volume belongs to no volume group
+ # is also listed. Extended partitions should not be listed.
+ if (devtype in ['part', 'disk', 'mpath'] and
+ fstype in ['', 'LVM2_member'] and
+ mountpoint == "" and
+ _get_vgname(devNodePath) == "" and
+ _is_dev_leaf(devNodePath) and
+ not _is_dev_extended_partition(devtype, devNodePath)):
+ return True
+ return False
+
+
+def get_partitions_names(check=False):
+ names = set()
+ keys = ["NAME", "TYPE", "FSTYPE", "MOUNTPOINT", "MAJ:MIN"]
+ # output is on format key="value",
+ # where key can be NAME, TYPE, FSTYPE, MOUNTPOINT
+ for dev in _get_lsblk_devs(keys):
+ # split()[0] to avoid the second part of the name, after the
+ # whiteline
+ name = dev['name'].split()[0]
+ if check and not _is_available(name, dev['type'], dev['fstype'],
+ dev['mountpoint'], dev['maj:min']):
+ continue
+ names.add(name)
+
+ return list(names)
+
+
+def get_partition_details(name):
+ majmin = _get_dev_major_min(name)
+ dev_path = _get_dev_node_path(majmin)
+
+ keys = ["TYPE", "FSTYPE", "SIZE", "MOUNTPOINT"]
+ try:
+ dev = _get_lsblk_devs(keys, [dev_path])[0]
+ except OperationFailed as e:
+ wok_log.error(
+ "Error getting partition info for %s: %s", name, e)
+ return {}
+
+ dev['available'] = _is_available(name, dev['type'], dev['fstype'],
+ dev['mountpoint'], majmin)
+ if dev['mountpoint']:
+ # Sometimes the mountpoint comes with [SWAP] or other
+ # info which is not an actual mount point. Filtering it
+ regexp = re.compile(r"\[.*\]")
+ if regexp.search(dev['mountpoint']) is not None:
+ dev['mountpoint'] = ''
+ dev['path'] = dev_path
+ dev['name'] = name
+ return dev
diff --git a/plugins/gingerbase/model/debugreports.py b/plugins/gingerbase/model/debugreports.py
new file mode 100644
index 0000000..d20eb12
--- /dev/null
+++ b/plugins/gingerbase/model/debugreports.py
@@ -0,0 +1,213 @@
+#
+# Project Kimchi
+#
+# Copyright IBM, Corp. 2014-2015
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+import fnmatch
+import glob
+import logging
+import os
+import shutil
+import subprocess
+import time
+
+from wok.exception import InvalidParameter, NotFoundError, OperationFailed
+from wok.exception import WokException
+from wok.utils import add_task, wok_log
+from wok.utils import run_command
+
+from .. import config
+from tasks import TaskModel
+
+
+class DebugReportsModel(object):
+ def __init__(self, **kargs):
+ self.objstore = kargs['objstore']
+ self.task = TaskModel(**kargs)
+
+ def create(self, params):
+ ident = params.get('name').strip()
+ # Generate a name with time and millisec precision, if necessary
+ if ident is None or ident == "":
+ ident = 'report-' + str(int(time.time() * 1000))
+ else:
+ if ident in self.get_list():
+ raise InvalidParameter("KCHDR0008E", {"name": ident})
+ taskid = self._gen_debugreport_file(ident)
+ return self.task.lookup(taskid)
+
+ def get_list(self):
+ path = config.get_debugreports_path()
+ file_pattern = os.path.join(path, '*.*')
+ file_lists = glob.glob(file_pattern)
+ file_lists = [os.path.split(file)[1] for file in file_lists]
+ name_lists = [file.split('.', 1)[0] for file in file_lists]
+
+ return name_lists
+
+ def _gen_debugreport_file(self, name):
+ gen_cmd = self.get_system_report_tool()
+
+ if gen_cmd is not None:
+ return add_task('/plugins/kimchi/debugreports/%s' % name, gen_cmd,
+ self.objstore, name)
+
+ raise OperationFailed("KCHDR0002E")
+
+ @staticmethod
+ def sosreport_generate(cb, name):
+ def log_error(e):
+ log = logging.getLogger('Model')
+ log.warning('Exception in generating debug file: %s', e)
+
+ try:
+ command = ['sosreport', '--batch', '--name=%s' % name]
+ output, error, retcode = run_command(command)
+
+ if retcode != 0:
+ raise OperationFailed("KCHDR0003E", {'name': name,
+ 'err': retcode})
+
+ # SOSREPORT might create file in /tmp or /var/tmp
+ # FIXME: The right way should be passing the tar.xz file directory
+ # though the parameter '--tmp-dir', but it is failing in Fedora 20
+ patterns = ['/tmp/sosreport-%s-*', '/var/tmp/sosreport-%s-*']
+ reports = []
+ reportFile = None
+ for p in patterns:
+ reports = reports + [f for f in glob.glob(p % name)]
+ for f in reports:
+ if not fnmatch.fnmatch(f, '*.md5'):
+ reportFile = f
+ break
+ # Some error in sosreport happened
+ if reportFile is None:
+ wok_log.error('Debug report file not found. See sosreport '
+ 'output for detail:\n%s', output)
+ fname = (patterns[0] % name).split('/')[-1]
+ raise OperationFailed('KCHDR0004E', {'name': fname})
+
+ md5_report_file = reportFile + '.md5'
+ report_file_extension = '.' + reportFile.split('.', 1)[1]
+ path = config.get_debugreports_path()
+ target = os.path.join(path, name + report_file_extension)
+ # Moving report
+ msg = 'Moving debug report file "%s" to "%s"' % (reportFile,
+ target)
+ wok_log.info(msg)
+ shutil.move(reportFile, target)
+ # Deleting md5
+ msg = 'Deleting report md5 file: "%s"' % (md5_report_file)
+ wok_log.info(msg)
+ with open(md5_report_file) as f:
+ md5 = f.read().strip()
+ wok_log.info('Md5 file content: "%s"', md5)
+ os.remove(md5_report_file)
+ cb('OK', True)
+ return
+
+ except WokException as e:
+ log_error(e)
+ raise
+
+ except OSError as e:
+ log_error(e)
+ raise
+
+ except Exception, e:
+ # No need to call cb to update the task status here.
+ # The task object will catch the exception raised here
+ # and update the task status there
+ log_error(e)
+ raise OperationFailed("KCHDR0005E", {'name': name, 'err': e})
+
+ @staticmethod
+ def get_system_report_tool():
+ # Please add new possible debug report command here
+ # and implement the report generating function
+ # based on the new report command
+ report_tools = ({'cmd': 'sosreport --help',
+ 'fn': DebugReportsModel.sosreport_generate},)
+
+ # check if the command can be found by shell one by one
+ for helper_tool in report_tools:
+ try:
+ retcode = subprocess.call(helper_tool['cmd'], shell=True,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+ if retcode == 0:
+ return helper_tool['fn']
+ except Exception, e:
+ wok_log.info('Exception running command: %s', e)
+
+ return None
+
+
+class DebugReportModel(object):
+ def __init__(self, **kargs):
+ pass
+
+ def lookup(self, name):
+ path = config.get_debugreports_path()
+ file_pattern = os.path.join(path, name)
+ file_pattern = file_pattern + '.*'
+ try:
+ file_target = glob.glob(file_pattern)[0]
+ except IndexError:
+ raise NotFoundError("KCHDR0001E", {'name': name})
+
+ ctime = os.stat(file_target).st_mtime
+ ctime = time.strftime("%Y-%m-%d-%H:%M:%S", time.localtime(ctime))
+ file_target = os.path.split(file_target)[-1]
+ file_target = os.path.join("plugins/kimchi/data/debugreports",
+ file_target)
+ return {'uri': file_target,
+ 'ctime': ctime}
+
+ def update(self, name, params):
+ path = config.get_debugreports_path()
+ file_pattern = os.path.join(path, name + '.*')
+ try:
+ file_source = glob.glob(file_pattern)[0]
+ except IndexError:
+ raise NotFoundError("KCHDR0001E", {'name': name})
+
+ file_target = file_source.replace(name, params['name'])
+ if os.path.isfile(file_target):
+ raise InvalidParameter('KCHDR0008E', {'name': params['name']})
+
+ shutil.move(file_source, file_target)
+ wok_log.info('%s renamed to %s' % (file_source, file_target))
+ return params['name']
+
+ def delete(self, name):
+ path = config.get_debugreports_path()
+ file_pattern = os.path.join(path, name + '.*')
+ try:
+ file_target = glob.glob(file_pattern)[0]
+ except IndexError:
+ raise NotFoundError("KCHDR0001E", {'name': name})
+
+ os.remove(file_target)
+
+
+class DebugReportContentModel(object):
+ def __init__(self, **kargs):
+ self._debugreport = DebugReportModel()
+
+ def lookup(self, name):
+ return self._debugreport.lookup(name)
diff --git a/plugins/gingerbase/repositories.py b/plugins/gingerbase/repositories.py
new file mode 100644
index 0000000..9caabc4
--- /dev/null
+++ b/plugins/gingerbase/repositories.py
@@ -0,0 +1,529 @@
+#
+# Project Kimchi
+#
+# Copyright IBM, Corp. 2014-2015
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+import copy
+import os
+import time
+import urlparse
+from ConfigParser import ConfigParser
+
+from wok.basemodel import Singleton
+from wok.exception import InvalidOperation, InvalidParameter
+from wok.exception import OperationFailed, NotFoundError, MissingParameter
+from wok.utils import validate_repo_url
+
+from config import kimchiLock
+from yumparser import get_yum_repositories, write_repo_to_file
+
+
+class Repositories(object):
+ __metaclass__ = Singleton
+
+ """
+ Class to represent and operate with repositories information.
+ """
+ def __init__(self):
+ try:
+ __import__('yum')
+ self._pkg_mnger = YumRepo()
+ except ImportError:
+ try:
+ __import__('apt_pkg')
+ self._pkg_mnger = AptRepo()
+ except ImportError:
+ raise InvalidOperation('KCHREPOS0014E')
+
+ def addRepository(self, params):
+ """
+ Add and enable a new repository
+ """
+ config = params.get('config', {})
+ extra_keys = list(
+ set(config.keys()).difference(set(self._pkg_mnger.CONFIG_ENTRY)))
+ if len(extra_keys) > 0:
+ raise InvalidParameter("KCHREPOS0028E",
+ {'items': ",".join(extra_keys)})
+
+ return self._pkg_mnger.addRepo(params)
+
+ def getRepositories(self):
+ """
+ Return a dictionary with all Kimchi's repositories. Each element uses
+ the format {<repo_id>: {repo}}, where repo is a dictionary in the
+ repositories.Repositories() format.
+ """
+ return self._pkg_mnger.getRepositoriesList()
+
+ def getRepository(self, repo_id):
+ """
+ Return a dictionary with all info from a given repository ID.
+ """
+ info = self._pkg_mnger.getRepo(repo_id)
+ info['repo_id'] = repo_id
+ return info
+
+ def enableRepository(self, repo_id):
+ """
+ Enable a repository.
+ """
+ return self._pkg_mnger.toggleRepo(repo_id, True)
+
+ def disableRepository(self, repo_id):
+ """
+ Disable a given repository.
+ """
+ return self._pkg_mnger.toggleRepo(repo_id, False)
+
+ def updateRepository(self, repo_id, params):
+ """
+ Update the information of a given repository.
+ The input is the repo_id of the repository to be updated and a dict
+ with the information to be updated.
+ """
+ return self._pkg_mnger.updateRepo(repo_id, params)
+
+ def removeRepository(self, repo_id):
+ """
+ Remove a given repository
+ """
+ return self._pkg_mnger.removeRepo(repo_id)
+
+
+class YumRepo(object):
+ """
+ Class to represent and operate with YUM repositories.
+ It's loaded only on those systems listed at YUM_DISTROS and loads necessary
+ modules in runtime.
+ """
+ TYPE = 'yum'
+ DEFAULT_CONF_DIR = "/etc/yum.repos.d"
+ CONFIG_ENTRY = ('repo_name', 'mirrorlist', 'metalink')
+
+ def __init__(self):
+ self._confdir = self.DEFAULT_CONF_DIR
+
+ def _get_repos(self, errcode):
+ try:
+ kimchiLock.acquire()
+ repos = get_yum_repositories()
+ except Exception, e:
+ kimchiLock.release()
+ raise OperationFailed(errcode, {'err': str(e)})
+ finally:
+ kimchiLock.release()
+
+ return repos
+
+ def getRepositoriesList(self):
+ """
+ Return a list of repositories IDs
+ """
+ repos = self._get_repos('KCHREPOS0024E')
+ return repos.keys()
+
+ def getRepo(self, repo_id):
+ """
+ Return a dictionary in the repositories.Repositories() of the given
+ repository ID format with the information of a YumRepository object.
+ """
+ repos = self._get_repos('KCHREPOS0025E')
+
+ if repo_id not in repos.keys():
+ raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id})
+
+ entry = repos.get(repo_id)
+
+ info = {}
+ info['enabled'] = entry.enabled
+ info['baseurl'] = entry.baseurl or ''
+ info['config'] = {}
+ info['config']['repo_name'] = entry.name or ''
+ info['config']['gpgcheck'] = entry.gpgcheck
+ info['config']['gpgkey'] = entry.gpgkey or ''
+ info['config']['mirrorlist'] = entry.mirrorlist or ''
+ info['config']['metalink'] = entry.metalink or ''
+ return info
+
+ def addRepo(self, params):
+ """
+ Add a given repository to YumBase
+ """
+ # At least one base url, or one mirror, must be given.
+ baseurl = params.get('baseurl', '')
+
+ config = params.get('config', {})
+ mirrorlist = config.get('mirrorlist', '')
+ metalink = config.get('metalink', '')
+ if not baseurl and not mirrorlist and not metalink:
+ raise MissingParameter("KCHREPOS0013E")
+
+ if baseurl:
+ validate_repo_url(baseurl)
+
+ if mirrorlist:
+ validate_repo_url(mirrorlist)
+
+ if metalink:
+ validate_repo_url(metalink)
+
+ if mirrorlist and metalink:
+ raise InvalidOperation('KCHREPOS0030E')
+
+ repo_id = params.get('repo_id', None)
+ if repo_id is None:
+ repo_id = "kimchi_repo_%s" % str(int(time.time() * 1000))
+
+ repos = self._get_repos('KCHREPOS0026E')
+ if repo_id in repos.keys():
+ raise InvalidOperation("KCHREPOS0022E", {'repo_id': repo_id})
+
+ repo_name = config.get('repo_name', repo_id)
+ repo = {'baseurl': baseurl, 'mirrorlist': mirrorlist,
+ 'name': repo_name, 'gpgcheck': 1,
+ 'gpgkey': [], 'enabled': 1, 'metalink': metalink}
+
+ # write a repo file in the system with repo{} information.
+ parser = ConfigParser()
+ parser.add_section(repo_id)
+
+ for key, value in repo.iteritems():
+ if value:
+ parser.set(repo_id, key, value)
+
+ repofile = os.path.join(self._confdir, repo_id + '.repo')
+ try:
+ with open(repofile, 'w') as fd:
+ parser.write(fd)
+ except:
+ raise OperationFailed("KCHREPOS0018E",
+ {'repo_file': repofile})
+
+ return repo_id
+
+ def toggleRepo(self, repo_id, enable):
+ repos = self._get_repos('KCHREPOS0011E')
+ if repo_id not in repos.keys():
+ raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id})
+
+ entry = repos.get(repo_id)
+ if enable and entry.enabled:
+ raise InvalidOperation("KCHREPOS0015E", {'repo_id': repo_id})
+
+ if not enable and not entry.enabled:
+ raise InvalidOperation("KCHREPOS0016E", {'repo_id': repo_id})
+
+ kimchiLock.acquire()
+ try:
+ if enable:
+ entry.enable()
+ else:
+ entry.disable()
+
+ write_repo_to_file(entry)
+ except:
+ if enable:
+ raise OperationFailed("KCHREPOS0020E", {'repo_id': repo_id})
+
+ raise OperationFailed("KCHREPOS0021E", {'repo_id': repo_id})
+ finally:
+ kimchiLock.release()
+
+ return repo_id
+
+ def updateRepo(self, repo_id, params):
+ """
+ Update a given repository in repositories.Repositories() format
+ """
+ repos = self._get_repos('KCHREPOS0011E')
+ if repo_id not in repos.keys():
+ raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id})
+
+ entry = repos.get(repo_id)
+
+ baseurl = params.get('baseurl', None)
+ config = params.get('config', {})
+ mirrorlist = config.get('mirrorlist', None)
+ metalink = config.get('metalink', None)
+
+ if baseurl is not None and len(baseurl.strip()) == 0:
+ baseurl = None
+
+ if mirrorlist is not None and len(mirrorlist.strip()) == 0:
+ mirrorlist = None
+
+ if metalink is not None and len(metalink.strip()) == 0:
+ metalink = None
+
+ if baseurl is None and mirrorlist is None and metalink is None:
+ raise MissingParameter("KCHREPOS0013E")
+
+ if baseurl is not None:
+ validate_repo_url(baseurl)
+ entry.baseurl = baseurl
+
+ if mirrorlist is not None:
+ validate_repo_url(mirrorlist)
+ entry.mirrorlist = mirrorlist
+
+ if metalink is not None:
+ validate_repo_url(metalink)
+ entry.metalink = metalink
+
+ if mirrorlist and metalink:
+ raise InvalidOperation('KCHREPOS0030E')
+
+ entry.id = params.get('repo_id', repo_id)
+ entry.name = config.get('repo_name', entry.name)
+ entry.gpgcheck = config.get('gpgcheck', entry.gpgcheck)
+ entry.gpgkey = config.get('gpgkey', entry.gpgkey)
+ kimchiLock.acquire()
+ write_repo_to_file(entry)
+ kimchiLock.release()
+ return repo_id
+
+ def removeRepo(self, repo_id):
+ """
+ Remove a given repository
+ """
+ repos = self._get_repos('KCHREPOS0027E')
+ if repo_id not in repos.keys():
+ raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id})
+
+ entry = repos.get(repo_id)
+ parser = ConfigParser()
+ with open(entry.repofile) as fd:
+ parser.readfp(fd)
+
+ if len(parser.sections()) == 1:
+ os.remove(entry.repofile)
+ return
+
+ parser.remove_section(repo_id)
+ with open(entry.repofile, "w") as fd:
+ parser.write(fd)
+
+
+class AptRepo(object):
+ """
+ Class to represent and operate with YUM repositories.
+ It's loaded only on those systems listed at YUM_DISTROS and loads necessary
+ modules in runtime.
+ """
+ TYPE = 'deb'
+ KIMCHI_LIST = "kimchi-source.list"
+ CONFIG_ENTRY = ('dist', 'comps')
+
+ def __init__(self):
+ getattr(__import__('apt_pkg'), 'init_config')()
+ getattr(__import__('apt_pkg'), 'init_system')()
+ config = getattr(__import__('apt_pkg'), 'config')
+ self.pkg_lock = getattr(__import__('apt_pkg'), 'SystemLock')
+ module = __import__('aptsources.sourceslist', globals(), locals(),
+ ['SourcesList'], -1)
+
+ self._sourceparts_path = '/%s%s' % (
+ config.get('Dir::Etc'), config.get('Dir::Etc::sourceparts'))
+ self._sourceslist = getattr(module, 'SourcesList')
+ self.filename = os.path.join(self._sourceparts_path, self.KIMCHI_LIST)
+ if not os.path.exists(self.filename):
+ with open(self.filename, 'w') as fd:
+ fd.write("# This file is managed by Kimchi and it must not "
+ "be modified manually\n")
+
+ def _get_repos(self):
+ try:
+ with self.pkg_lock():
+ repos = self._sourceslist()
+ repos.refresh()
+ except Exception, e:
+ kimchiLock.release()
+ raise OperationFailed('KCHREPOS0025E', {'err': e.message})
+
+ return repos
+
+ def _get_repo_id(self, repo):
+ data = urlparse.urlparse(repo.uri)
+ name = data.hostname or data.path
+ return '%s-%s-%s' % (name, repo.dist, "-".join(repo.comps))
+
+ def _get_source_entry(self, repo_id):
+ kimchiLock.acquire()
+ repos = self._get_repos()
+ kimchiLock.release()
+
+ for r in repos:
+ # Ignore deb-src repositories
+ if r.type != 'deb':
+ continue
+
+ if self._get_repo_id(r) != repo_id:
+ continue
+
+ return r
+
+ return None
+
+ def getRepositoriesList(self):
+ """
+ Return a list of repositories IDs
+
+ APT repositories there aren't the concept about repository ID, so for
+ internal control, the repository ID will be built as described in
+ _get_repo_id()
+ """
+ kimchiLock.acquire()
+ repos = self._get_repos()
+ kimchiLock.release()
+
+ res = []
+ for r in repos:
+ # Ignore deb-src repositories
+ if r.type != 'deb':
+ continue
+
+ res.append(self._get_repo_id(r))
+
+ return res
+
+ def getRepo(self, repo_id):
+ """
+ Return a dictionary in the repositories.Repositories() format of the
+ given repository ID with the information of a SourceEntry object.
+ """
+ r = self._get_source_entry(repo_id)
+ if r is None:
+ raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id})
+
+ info = {'enabled': not r.disabled,
+ 'baseurl': r.uri,
+ 'config': {'dist': r.dist,
+ 'comps': r.comps}}
+ return info
+
+ def addRepo(self, params):
+ """
+ Add a new APT repository based on <params>
+ """
+ # To create a APT repository the dist is a required parameter
+ # (in addition to baseurl, verified on controller through API.json)
+ config = params.get('config', None)
+ if config is None:
+ raise MissingParameter("KCHREPOS0019E")
+
+ if 'dist' not in config.keys():
+ raise MissingParameter("KCHREPOS0019E")
+
+ uri = params['baseurl']
+ dist = config['dist']
+ comps = config.get('comps', [])
+
+ validate_repo_url(uri)
+
+ kimchiLock.acquire()
+ try:
+ repos = self._get_repos()
+ source_entry = repos.add('deb', uri, dist, comps,
+ file=self.filename)
+ with self.pkg_lock():
+ repos.save()
+ except Exception as e:
+ kimchiLock.release()
+ raise OperationFailed("KCHREPOS0026E", {'err': e.message})
+ kimchiLock.release()
+ return self._get_repo_id(source_entry)
+
+ def toggleRepo(self, repo_id, enable):
+ """
+ Enable a given repository
+ """
+ r = self._get_source_entry(repo_id)
+ if r is None:
+ raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id})
+
+ if enable and not r.disabled:
+ raise InvalidOperation("KCHREPOS0015E", {'repo_id': repo_id})
+
+ if not enable and r.disabled:
+ raise InvalidOperation("KCHREPOS0016E", {'repo_id': repo_id})
+
+ if enable:
+ line = 'deb'
+ else:
+ line = '#deb'
+
+ kimchiLock.acquire()
+ try:
+ repos = self._get_repos()
+ with self.pkg_lock():
+ repos.remove(r)
+ repos.add(line, r.uri, r.dist, r.comps, file=self.filename)
+ repos.save()
+ except:
+ kimchiLock.release()
+ if enable:
+ raise OperationFailed("KCHREPOS0020E", {'repo_id': repo_id})
+
+ raise OperationFailed("KCHREPOS0021E", {'repo_id': repo_id})
+ finally:
+ kimchiLock.release()
+
+ return repo_id
+
+ def updateRepo(self, repo_id, params):
+ """
+ Update a given repository in repositories.Repositories() format
+ """
+ old_info = self.getRepo(repo_id)
+ updated_info = copy.deepcopy(old_info)
+ updated_info['baseurl'] = params.get(
+ 'baseurl', updated_info['baseurl'])
+
+ if 'config' in params.keys():
+ config = params['config']
+ updated_info['config']['dist'] = config.get(
+ 'dist', old_info['config']['dist'])
+ updated_info['config']['comps'] = config.get(
+ 'comps', old_info['config']['comps'])
+
+ self.removeRepo(repo_id)
+ try:
+ return self.addRepo(updated_info)
+ except:
+ self.addRepo(old_info)
+ raise
+
+ def removeRepo(self, repo_id):
+ """
+ Remove a given repository
+ """
+ r = self._get_source_entry(repo_id)
+ if r is None:
+ raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id})
+
+ kimchiLock.acquire()
+ try:
+ repos = self._get_repos()
+ with self.pkg_lock():
+ repos.remove(r)
+ repos.save()
+ except:
+ kimchiLock.release()
+ raise OperationFailed("KCHREPOS0017E", {'repo_id': repo_id})
+ finally:
+ kimchiLock.release()
diff --git a/plugins/gingerbase/swupdate.py b/plugins/gingerbase/swupdate.py
new file mode 100644
index 0000000..84b927f
--- /dev/null
+++ b/plugins/gingerbase/swupdate.py
@@ -0,0 +1,263 @@
+#
+# Project Kimchi
+#
+# Copyright IBM, Corp. 2014-2015
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+import subprocess
+import time
+
+from wok.basemodel import Singleton
+from wok.exception import NotFoundError, OperationFailed
+from wok.utils import run_command, wok_log
+
+from config import kimchiLock
+from yumparser import get_yum_packages_list_update
+
+
+class SoftwareUpdate(object):
+ __metaclass__ = Singleton
+
+ """
+ Class to represent and operate with OS software update.
+ """
+ def __init__(self):
+ # This stores all packages to be updated for Kimchi perspective. It's a
+ # dictionary of dictionaries, in the format {'package_name': package},
+ # where:
+ # package = {'package_name': <string>, 'version': <string>,
+ # 'arch': <string>, 'repository': <string>
+ # }
+ self._packages = {}
+
+ # This stores the number of packages to update
+ self._num2update = 0
+
+ # Get the distro of host machine and creates an object related to
+ # correct package management system
+ try:
+ __import__('yum')
+ wok_log.info("Loading YumUpdate features.")
+ self._pkg_mnger = YumUpdate()
+ except ImportError:
+ try:
+ __import__('apt')
+ wok_log.info("Loading AptUpdate features.")
+ self._pkg_mnger = AptUpdate()
+ except ImportError:
+ zypper_help = ["zypper", "--help"]
+ (stdout, stderr, returncode) = run_command(zypper_help)
+ if returncode == 0:
+ wok_log.info("Loading ZypperUpdate features.")
+ self._pkg_mnger = ZypperUpdate()
+ else:
+ raise Exception("There is no compatible package manager "
+ "for this system.")
+
+ def _scanUpdates(self):
+ """
+ Update self._packages with packages to be updated.
+ """
+ self._packages = {}
+ self._num2update = 0
+
+ # Call system pkg_mnger to get the packages as list of dictionaries.
+ for pkg in self._pkg_mnger.getPackagesList():
+
+ # Check if already exist a package in self._packages
+ pkg_id = pkg.get('package_name')
+ if pkg_id in self._packages.keys():
+ # package already listed to update. do nothing
+ continue
+
+ # Update the self._packages and self._num2update
+ self._packages[pkg_id] = pkg
+ self._num2update = self._num2update + 1
+
+ def getUpdates(self):
+ """
+ Return the self._packages.
+ """
+ self._scanUpdates()
+ return self._packages
+
+ def getUpdate(self, name):
+ """
+ Return a dictionary with all info from a given package name.
+ """
+ if name not in self._packages.keys():
+ raise NotFoundError('KCHPKGUPD0002E', {'name': name})
+
+ return self._packages[name]
+
+ def getNumOfUpdates(self):
+ """
+ Return the number of packages to be updated.
+ """
+ self._scanUpdates()
+ return self._num2update
+
+ def doUpdate(self, cb, params):
+ """
+ Execute the update
+ """
+ # reset messages
+ cb('')
+
+ cmd = self._pkg_mnger.update_cmd
+ proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+ msgs = []
+ while proc.poll() is None:
+ msgs.append(proc.stdout.readline())
+ cb(''.join(msgs))
+ time.sleep(0.5)
+
+ # read the final output lines
+ msgs.extend(proc.stdout.readlines())
+
+ retcode = proc.poll()
+ if retcode == 0:
+ return cb(''.join(msgs), True)
+
+ msgs.extend(proc.stderr.readlines())
+ return cb(''.join(msgs), False)
+
+
+class YumUpdate(object):
+ """
+ Class to represent and operate with YUM software update system.
+ It's loaded only on those systems listed at YUM_DISTROS and loads necessary
+ modules in runtime.
+ """
+ def __init__(self):
+ self._pkgs = {}
+ self.update_cmd = ["yum", "-y", "update"]
+
+ def _refreshUpdateList(self):
+ """
+ Update the list of packages to be updated in the system.
+ """
+ try:
+ kimchiLock.acquire()
+ self._pkgs = get_yum_packages_list_update()
+ except Exception, e:
+ raise OperationFailed('KCHPKGUPD0003E', {'err': str(e)})
+ finally:
+ kimchiLock.release()
+
+ def getPackagesList(self):
+ """
+ Return a list of package's dictionaries. Each dictionary contains the
+ information about a package, in the format:
+ package = {'package_name': <string>, 'version': <string>,
+ 'arch': <string>, 'repository': <string>}
+ """
+ self._refreshUpdateList()
+ pkg_list = []
+ for pkg in self._pkgs:
+ package = {'package_name': pkg.name, 'version': pkg.version,
+ 'arch': pkg.arch, 'repository': pkg.ui_from_repo}
+ pkg_list.append(package)
+ return pkg_list
+
+
+class AptUpdate(object):
+ """
+ Class to represent and operate with APT software update system.
+ It's loaded only on those systems listed at APT_DISTROS and loads necessary
+ modules in runtime.
+ """
+ def __init__(self):
+ self._pkgs = {}
+ self.pkg_lock = getattr(__import__('apt_pkg'), 'SystemLock')
+ self.update_cmd = ['apt-get', 'upgrade', '-y']
+
+ def _refreshUpdateList(self):
+ """
+ Update the list of packages to be updated in the system.
+ """
+ apt_cache = getattr(__import__('apt'), 'Cache')()
+ try:
+ with self.pkg_lock():
+ apt_cache.update()
+ apt_cache.upgrade()
+ self._pkgs = apt_cache.get_changes()
+ except Exception, e:
+ kimchiLock.release()
+ raise OperationFailed('KCHPKGUPD0003E', {'err': e.message})
+
+ def getPackagesList(self):
+ """
+ Return a list of package's dictionaries. Each dictionary contains the
+ information about a package, in the format
+ package = {'package_name': <string>, 'version': <string>,
+ 'arch': <string>, 'repository': <string>}
+ """
+ kimchiLock.acquire()
+ self._refreshUpdateList()
+ kimchiLock.release()
+ pkg_list = []
+ for pkg in self._pkgs:
+ package = {'package_name': pkg.shortname,
+ 'version': pkg.candidate.version,
+ 'arch': pkg._pkg.architecture,
+ 'repository': pkg.candidate.origins[0].label}
+ pkg_list.append(package)
+
+ return pkg_list
+
+
+class ZypperUpdate(object):
+ """
+ Class to represent and operate with Zypper software update system.
+ It's loaded only on those systems listed at ZYPPER_DISTROS and loads
+ necessary modules in runtime.
+ """
+ def __init__(self):
+ self._pkgs = {}
+ self.update_cmd = ["zypper", "--non-interactive", "update",
+ "--auto-agree-with-licenses"]
+
+ def _refreshUpdateList(self):
+ """
+ Update the list of packages to be updated in the system.
+ """
+ self._pkgs = []
+ cmd = ["zypper", "list-updates"]
+ (stdout, stderr, returncode) = run_command(cmd)
+
+ if len(stderr) > 0:
+ raise OperationFailed('KCHPKGUPD0003E', {'err': stderr})
+
+ for line in stdout.split('\n'):
+ if line.find('v |') >= 0:
+ info = line.split(' | ')
+ package = {'package_name': info[2], 'version': info[4],
+ 'arch': info[5], 'repository': info[1]}
+ self._pkgs.append(package)
+
+ def getPackagesList(self):
+ """
+ Return a list of package's dictionaries. Each dictionary contains the
+ information about a package, in the format
+ package = {'package_name': <string>, 'version': <string>,
+ 'arch': <string>, 'repository': <string>}
+ """
+ kimchiLock.acquire()
+ self._refreshUpdateList()
+ kimchiLock.release()
+ return self._pkgs
diff --git a/plugins/gingerbase/tests/test_host.py b/plugins/gingerbase/tests/test_host.py
new file mode 100644
index 0000000..e2aa196
--- /dev/null
+++ b/plugins/gingerbase/tests/test_host.py
@@ -0,0 +1,200 @@
+# -*- coding: utf-8 -*-
+#
+# Project Kimchi
+#
+# Copyright IBM, Corp. 2015
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+import json
+import os
+import platform
+import psutil
+import tempfile
+import time
+import unittest
+from functools import partial
+
+from wok.plugins.kimchi.mockmodel import MockModel
+
+from utils import get_free_port, patch_auth, request, run_server, wait_task
+
+
+test_server = None
+model = None
+host = None
+ssl_port = None
+tmpfile = None
+
+
+def setUpModule():
+ global test_server, model, host, ssl_port, tmpfile
+
+ patch_auth()
+ tmpfile = tempfile.mktemp()
+ model = MockModel(tmpfile)
+ host = '127.0.0.1'
+ port = get_free_port('http')
+ ssl_port = get_free_port('https')
+ cherrypy_port = get_free_port('cherrypy_port')
+ test_server = run_server(host, port, ssl_port, test_mode=True,
+ cherrypy_port=cherrypy_port, model=model)
+
+
+def tearDownModule():
+ test_server.stop()
+ os.unlink(tmpfile)
+
+
+class HostTests(unittest.TestCase):
+ def setUp(self):
+ self.request = partial(request, host, ssl_port)
+
+ def test_hostinfo(self):
+ resp = self.request('/plugins/kimchi/host').read()
+ info = json.loads(resp)
+ keys = ['os_distro', 'os_version', 'os_codename', 'cpu_model',
+ 'memory', 'cpus']
+ self.assertEquals(sorted(keys), sorted(info.keys()))
+
+ distro, version, codename = platform.linux_distribution()
+ self.assertEquals(distro, info['os_distro'])
+ self.assertEquals(version, info['os_version'])
+ self.assertEquals(unicode(codename, "utf-8"), info['os_codename'])
+ self.assertEquals(psutil.TOTAL_PHYMEM, info['memory'])
+
+ def test_hoststats(self):
+ time.sleep(1)
+ stats_keys = ['cpu_utilization', 'memory', 'disk_read_rate',
+ 'disk_write_rate', 'net_recv_rate', 'net_sent_rate']
+ resp = self.request('/plugins/kimchi/host/stats').read()
+ stats = json.loads(resp)
+ self.assertEquals(sorted(stats_keys), sorted(stats.keys()))
+
+ cpu_utilization = stats['cpu_utilization']
+ self.assertIsInstance(cpu_utilization, float)
+ self.assertGreaterEqual(cpu_utilization, 0.0)
+ self.assertTrue(cpu_utilization <= 100.0)
+
+ memory_stats = stats['memory']
+ self.assertIn('total', memory_stats)
+ self.assertIn('free', memory_stats)
+ self.assertIn('cached', memory_stats)
+ self.assertIn('buffers', memory_stats)
+ self.assertIn('avail', memory_stats)
+
+ resp = self.request('/plugins/kimchi/host/stats/history').read()
+ history = json.loads(resp)
+ self.assertEquals(sorted(stats_keys), sorted(history.keys()))
+
+ def test_host_actions(self):
+ def _task_lookup(taskid):
+ return json.loads(self.request('/plugins/kimchi/tasks/%s' %
+ taskid).read())
+
+ resp = self.request('/plugins/kimchi/host/shutdown', '{}', 'POST')
+ self.assertEquals(200, resp.status)
+ resp = self.request('/plugins/kimchi/host/reboot', '{}', 'POST')
+ self.assertEquals(200, resp.status)
+
+ # Test system update
+ resp = self.request('/plugins/kimchi/host/packagesupdate', None, 'GET')
+ pkgs = json.loads(resp.read())
+ self.assertEquals(3, len(pkgs))
+
+ pkg_keys = ['package_name', 'repository', 'arch', 'version']
+ for p in pkgs:
+ name = p['package_name']
+ resp = self.request('/plugins/kimchi/host/packagesupdate/' + name,
+ None, 'GET')
+ info = json.loads(resp.read())
+ self.assertEquals(sorted(pkg_keys), sorted(info.keys()))
+
+ resp = self.request('/plugins/kimchi/host/swupdate', '{}', 'POST')
+ task = json.loads(resp.read())
+ task_params = [u'id', u'message', u'status', u'target_uri']
+ self.assertEquals(sorted(task_params), sorted(task.keys()))
+
+ resp = self.request('/plugins/kimchi/tasks/' + task[u'id'], None, 'GET')
+ task_info = json.loads(resp.read())
+ self.assertEquals(task_info['status'], 'running')
+ wait_task(_task_lookup, task_info['id'])
+ resp = self.request('/plugins/kimchi/tasks/' + task[u'id'], None, 'GET')
+ task_info = json.loads(resp.read())
+ self.assertEquals(task_info['status'], 'finished')
+ self.assertIn(u'All packages updated', task_info['message'])
+ pkgs = model.packagesupdate_get_list()
+ self.assertEquals(0, len(pkgs))
+
+ def test_host_partitions(self):
+ resp = self.request('/plugins/kimchi/host/partitions')
+ self.assertEquals(200, resp.status)
+ partitions = json.loads(resp.read())
+
+ keys = ['name', 'path', 'type', 'fstype', 'size', 'mountpoint',
+ 'available']
+ for item in partitions:
+ resp = self.request('/plugins/kimchi/host/partitions/%s' %
+ item['name'])
+ info = json.loads(resp.read())
+ self.assertEquals(sorted(info.keys()), sorted(keys))
+
+ def test_host_devices(self):
+ def asset_devices_type(devices, dev_type):
+ for dev in devices:
+ self.assertEquals(dev['device_type'], dev_type)
+
+ resp = self.request('/plugins/kimchi/host/devices?_cap=scsi_host')
+ nodedevs = json.loads(resp.read())
+ # Mockmodel brings 3 preconfigured scsi fc_host
+ self.assertEquals(3, len(nodedevs))
+
+ nodedev = json.loads(self.request(
+ '/plugins/kimchi/host/devices/scsi_host2').read())
+ # Mockmodel generates random wwpn and wwnn
+ self.assertEquals('scsi_host2', nodedev['name'])
+ self.assertEquals('fc_host', nodedev['adapter']['type'])
+ self.assertEquals(16, len(nodedev['adapter']['wwpn']))
+ self.assertEquals(16, len(nodedev['adapter']['wwnn']))
+
+ devs = json.loads(self.request('/plugins/kimchi/host/devices').read())
+ dev_names = [dev['name'] for dev in devs]
+ for dev_type in ('pci', 'usb_device', 'scsi'):
+ resp = self.request('/plugins/kimchi/host/devices?_cap=%s' %
+ dev_type)
+ devsByType = json.loads(resp.read())
+ names = [dev['name'] for dev in devsByType]
+ self.assertTrue(set(names) <= set(dev_names))
+ asset_devices_type(devsByType, dev_type)
+
+ resp = self.request('/plugins/kimchi/host/devices?_passthrough=true')
+ passthru_devs = [dev['name'] for dev in json.loads(resp.read())]
+ self.assertTrue(set(passthru_devs) <= set(dev_names))
+
+ for dev_type in ('pci', 'usb_device', 'scsi'):
+ resp = self.request(
+ '/plugins/kimchi/host/devices?_cap=%s&_passthrough=true' %
+ dev_type)
+ filteredDevs = json.loads(resp.read())
+ filteredNames = [dev['name'] for dev in filteredDevs]
+ self.assertTrue(set(filteredNames) <= set(dev_names))
+ asset_devices_type(filteredDevs, dev_type)
+
+ for dev in passthru_devs:
+ resp = self.request(
+ '/plugins/kimchi/host/devices?_passthrough_affected_by=%s' %
+ dev)
+ affected_devs = [dev['name'] for dev in json.loads(resp.read())]
+ self.assertTrue(set(affected_devs) <= set(dev_names))
diff --git a/plugins/gingerbase/ui/css/theme-default/host.css b/plugins/gingerbase/ui/css/theme-default/host.css
new file mode 100644
index 0000000..a0cccb1
--- /dev/null
+++ b/plugins/gingerbase/ui/css/theme-default/host.css
@@ -0,0 +1,287 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2013-2014
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+.host-panel {
+ font-size: 12px;
+ margin-bottom: 100px;
+}
+
+.host-panel .logo-container, .host-panel .info-container,
+.host-panel .section-label, .host-panel .section-value {
+ display: inline-block;
+ vertical-align: top;
+}
+
+.host-panel .section-label {
+ display: inline-block;
+ margin-right: 1em;
+ vertical-align: top;
+}
+
+.host-panel .logo {
+ background: url("plugins/kimchi/images/icon-vm.png") no-repeat left top;
+ height: 128px;
+ width: 128px;
+}
+
+.host-panel .hostname {
+ text-decoration: underline;
+}
+
+.host-panel .action-panel {
+ margin-top: 2em;
+ padding-left: 10px;
+}
+
+.host-panel .button-icon {
+ background: url("../images/theme-default/host-icon-sprite.png") no-repeat
+ left top;
+ display: inline-block;
+ height: 12px;
+ width: 12px;
+}
+
+.host-panel .action-icon-stop {
+ background-position: -14px 0;
+}
+
+.host-panel .action-icon-restart {
+ background-position: -28px 0;
+}
+
+.host-panel .action-icon-download {
+ background-position: -42px 0;
+}
+
+.host-panel .action-icon-connect {
+ background-position: -56px 0;
+}
+
+.host-panel .action-icon-add {
+ background-position: -70px 0;
+}
+
+.host-panel .action-icon-edit {
+ background-position: -84px 0;
+}
+
+.host-panel .action-icon-remove {
+ background-position: -98px 0;
+}
+
+.host-panel button:disabled .action-icon-start {
+ background-position: 0 -14px;
+}
+
+.host-panel button:disabled .action-icon-stop {
+ background-position: -14px -14px;
+}
+
+.host-panel button:disabled .action-icon-restart {
+ background-position: -28px -14px;
+}
+
+.host-panel button:disabled .action-icon-download {
+ background-position: -42px -14px;
+}
+
+.host-panel button:disabled .action-icon-connect {
+ background-position: -56px -14px;
+}
+
+.host-panel button:disabled .action-icon-add {
+ background-position: -70px -14px;
+}
+
+.host-panel button:disabled .action-icon-edit {
+ background-position: -84px -14px;
+}
+
+.host-panel button:disabled .action-icon-remove {
+ background-position: -98px -14px;
+}
+
+.host-panel .info-container {
+ padding-top: 16px;
+ width: 890px;
+}
+
+.host-panel .section-header {
+ background: #EEE;
+ border-radius: 5px;
+ cursor: pointer;
+ line-height: 2em;
+ margin: 1em 0 1em;
+ padding-left: 6px;
+}
+
+.host-panel .section-header:hover {
+ background: #06f;
+ color: white;
+}
+
+.host-panel .section-content {
+ padding-left: 1em;
+}
+
+.host-panel .section-header .arrow {
+ border-color: transparent;
+ border-style: solid;
+ display: inline-block;
+ margin-right: 6px;
+ width: 0;
+}
+
+.host-panel .section-header[aria-expanded="true"] .arrow {
+ border-top-color: black;
+ border-width: 8px 4px 0;
+ border-bottom: none;
+}
+
+.host-panel .section-header[aria-expanded="true"]:hover .arrow {
+ border-top-color: white;
+}
+
+.host-panel .section-header[aria-expanded="false"] .arrow {
+ border-left-color: black;
+ border-right: none;
+ border-width: 4px 0 4px 8px;
+}
+
+.host-panel .section-header[aria-expanded="false"]:hover .arrow {
+ border-left-color: white;
+}
+
+.host-panel .section-row {
+ line-height: 1.6em;
+ margin-bottom: 1em;
+}
+
+.host-panel .section-label {
+ width: 100px;
+}
+
+#frequency-textbox {
+ width: 20px;
+}
+
+#container-chart-cpu,
+#container-chart-memory,
+#container-chart-disk-io,
+#container-chart-network-io {
+ border: 1px solid white;
+ box-shadow: 2px 2px 2px gray, 2px -2px 2px gray, -2px -2px 2px gray, -2px
+ 2px 2px gray;
+ height: 100px;
+ width: 500px;
+}
+
+#container-chart-disk-io .disk-write,
+#container-chart-network-io .network-sent {
+ stroke: #f80;
+}
+
+/* Debug Report */
+.cell-text-wrapper {
+ margin-left: 10px;
+}
+
+.host-panel #available-reports-grid {
+ border-color: #ddd;
+ height: 400px;
+ width: 850px;
+}
+
+.host-panel select#available-reports-list {
+ width: 300px;
+}
+
+.host-panel select#available-reports-list option {
+ margin: .2em 1em;
+}
+
+.debug-report-name,
+.debug-report-time {
+ width: 424px;
+}
+
+#id-debug-img {
+ background: url(../images/theme-default/kimchi-loading15x15.gif) 12px
+ center no-repeat;
+ padding-left: 23px;
+}
+
+/* End of Debug Report */
+
+/* Software Updates */
+.host-panel #software-updates-grid {
+ border-color: #ddd;
+ height: 300px;
+ width: 850px;
+}
+
+.software-update-name,
+.software-update-repos {
+ width: 224px;
+}
+
+.software-update-version,
+.software-update-arch {
+ width: 200px;
+}
+
+.host-panel #software-updates-progress-textarea {
+ border: 1px solid #ddd;
+ box-sizing: border-box;
+ height: 100px;
+ padding: .2em .5em;
+ resize: vertical;
+ width: 852px;
+}
+/* End of Software Updates */
+
+/* Repository */
+.host-panel #repositories-grid {
+ border-color: #ddd;
+ height: 200px;
+ width: 850px;
+}
+
+.host-panel #repositories-grid .repository-id {
+ width: 120px;
+}
+
+.host-panel #repositories-grid .repository-name {
+ width: 640px;
+}
+
+.host-panel #repositories-grid .repository-enabled {
+ width: 88px;
+}
+
+.host-panel #repositories-grid .repository-baseurl.deb {
+ width: 400px;
+}
+
+.host-panel #repositories-grid .repository-enabled.deb {
+ width: 100px;
+}
+
+.host-panel #repositories-grid .repository-gpgcheck.deb {
+ width: 150px;
+}
+/* End of Repository */
diff --git a/plugins/gingerbase/ui/css/theme-default/report-add.css b/plugins/gingerbase/ui/css/theme-default/report-add.css
new file mode 100644
index 0000000..8020182
--- /dev/null
+++ b/plugins/gingerbase/ui/css/theme-default/report-add.css
@@ -0,0 +1,37 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2013-2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#report-add-window {
+ height: 300px;
+ width: 400px;
+}
+
+#report-add-window .field {
+ font-size: 12px;
+}
+
+#report-name-textbox {
+ margin: 0;
+ width: 100%;
+}
+
+.info-add-debug-report {
+ font-size: 12px;
+ color: #999999;
+ font-weight: lighter;
+ font-family: 'Helvetica Neue', Helvetica, Arial;
+}
\ No newline at end of file
diff --git a/plugins/gingerbase/ui/css/theme-default/report-rename.css b/plugins/gingerbase/ui/css/theme-default/report-rename.css
new file mode 100644
index 0000000..2fb2698
--- /dev/null
+++ b/plugins/gingerbase/ui/css/theme-default/report-rename.css
@@ -0,0 +1,39 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2014-2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#report-rename-window {
+ height: 300px;
+ width: 400px;
+}
+
+#report-rename-window .field {
+ font-size: 12px;
+}
+
+#report-name-textbox {
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0;
+ width: 100%;
+}
+
+.info-debug-report-rename {
+ font-size: 12px;
+ color: #999999;
+ font-weight: lighter;
+ font-family: 'Helvetica Neue', Helvetica, Arial;
+}
diff --git a/plugins/gingerbase/ui/css/theme-default/repository-add.css b/plugins/gingerbase/ui/css/theme-default/repository-add.css
new file mode 100644
index 0000000..4344569
--- /dev/null
+++ b/plugins/gingerbase/ui/css/theme-default/repository-add.css
@@ -0,0 +1,42 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2014-2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#repository-add-window {
+ height: 500px;
+ width: 1000px;
+}
+
+#repository-add-window span.required {
+ color: red;
+ padding-left: 5px;
+ vertical-align: top;
+}
+
+#repository-add-window .textbox-wrapper input[type="text"] {
+ box-sizing: border-box;
+ width: 100%;
+}
+
+#repository-add-window .textbox-wrapper label {
+ vertical-align: middle;
+}
+
+#isMirrorLabel {
+ font-size: 14px;
+ font-weight: lighter;
+ font-family: 'Helvetica Neue', Helvetica, Arial;
+}
\ No newline at end of file
diff --git a/plugins/gingerbase/ui/css/theme-default/repository-edit.css b/plugins/gingerbase/ui/css/theme-default/repository-edit.css
new file mode 100644
index 0000000..383a7fe
--- /dev/null
+++ b/plugins/gingerbase/ui/css/theme-default/repository-edit.css
@@ -0,0 +1,88 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2014-2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+.yum div#repository-edit-window {
+ height: 680px;
+ width: 1000px;
+}
+
+.deb div#repository-edit-window {
+ height: 480px;
+ width: 1000px;
+}
+
+
+.repository-edit-fieldset {
+ float: left;
+ padding: 0 30px;
+ width: 95%;
+}
+
+.repository-edit-wrapper-label, .repository-edit-wrapper-controls {
+ display: inline-block;
+ height: 30px;
+ line-height: 30px;
+ font-size: 14px;
+ vertical-align: top;
+}
+
+.repository-edit-wrapper-label {
+ margin-top: 10px;
+ width: 150px;
+}
+
+.repository-edit-wrapper-controls label {
+ vertical-align: middle;
+}
+
+.repository-edit-wrapper-controls {
+ width: 100%;
+}
+
+.repository-edit-wrapper-controls input[type="text"] {
+ font-size: 16px;
+ height: 30px;
+ line-height: 30px;
+ padding: 0 10px;
+ width: 100%;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ border: 1px solid #CCCCCC;
+}
+
+
+.repository-edit-wrapper-controls input[type="text"][readonly] {
+ color: #bbb;
+ background-color: #fafafa;
+}
+
+
+.repository-edit-wrapper-controls input[type="text"][disabled] {
+ color: #bbb;
+ background-color: #fafafa;
+ cursor: not-allowed;
+}
+
+
+.deb .yum{
+ display: none;
+}
+
+
+.yum .deb{
+ display: none;
+}
diff --git a/plugins/gingerbase/ui/js/src/gingerbase.host.js b/plugins/gingerbase/ui/js/src/gingerbase.host.js
new file mode 100644
index 0000000..ab02333
--- /dev/null
+++ b/plugins/gingerbase/ui/js/src/gingerbase.host.js
@@ -0,0 +1,858 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2013-2014
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+kimchi.host={};
+
+kimchi.host_main = function() {
+ var expand = function(header, toExpand) {
+ var controlledNode = $(header).attr('aria-controls');
+ $('#' + controlledNode)[toExpand ? 'removeClass' : 'addClass']('hidden');
+ $(header).attr('aria-expanded', toExpand ? 'true' : 'false');
+ };
+
+ var repositoriesGrid = null;
+ var initRepositoriesGrid = function(repo_type) {
+ var gridFields=[];
+ if (repo_type == "yum") {
+ gridFields=[{
+ name: 'repo_id',
+ label: i18n['KCHREPO6004M'],
+ 'class': 'repository-id'
+ }, {
+ name: 'config[repo_name]',
+ label: i18n['KCHREPO6005M'],
+ 'class': 'repository-name'
+ }, {
+ name: 'enabled',
+ label: i18n['KCHREPO6009M'],
+ 'class': 'repository-enabled'
+ }];
+ }
+ else if (repo_type == "deb") {
+ gridFields=[{
+ name: 'baseurl',
+ label: i18n['KCHREPO6006M'],
+ makeTitle: true,
+ 'class': 'repository-baseurl deb'
+ }, {
+ name: 'enabled',
+ label: i18n['KCHREPO6009M'],
+ 'class': 'repository-enabled deb'
+ }, {
+ name: 'config[dist]',
+ label: "dist",
+ 'class': 'repository-gpgcheck deb'
+ }, {
+ name: 'config[comps]',
+ label: "comps",
+ 'class': 'repository-gpgcheck deb'
+ }];
+ }
+ else {
+ gridFields=[{
+ name: 'repo_id',
+ label: i18n['KCHREPO6004M'],
+ 'class': 'repository-id'
+ }, {
+ name: 'enabled',
+ label: i18n['KCHREPO6009M'],
+ 'class': 'repository-enabled'
+ }, {
+ name: 'baseurl',
+ label: i18n['KCHREPO6006M'],
+ makeTitle: true,
+ 'class': 'repository-baseurl'
+ }];
+ }
+ repositoriesGrid = new kimchi.widget.Grid({
+ container: 'repositories-grid-container',
+ id: 'repositories-grid',
+ title: i18n['KCHREPO6003M'],
+ toolbarButtons: [{
+ id: 'repositories-grid-add-button',
+ label: i18n['KCHREPO6012M'],
+ onClick: function(event) {
+ wok.window.open({url:'plugins/kimchi/repository-add.html',
+ class: repo_type});
+ }
+ }, {
+ id: 'repositories-grid-enable-button',
+ label: i18n['KCHREPO6016M'],
+ disabled: true,
+ onClick: function(event) {
+ var repository = repositoriesGrid.getSelected();
+ if(!repository) {
+ return;
+ }
+ var name = repository['repo_id'];
+ var enable = !repository['enabled'];
+ $(this).prop('disabled', true);
+ kimchi.enableRepository(name, enable, function() {
+ wok.topic('kimchi/repositoryUpdated').publish();
+ });
+ }
+ }, {
+ id: 'repositories-grid-edit-button',
+ label: i18n['KCHREPO6013M'],
+ disabled: true,
+ onClick: function(event) {
+ var repository = repositoriesGrid.getSelected();
+ if(!repository) {
+ return;
+ }
+ kimchi.selectedRepository = repository['repo_id'];
+ wok.window.open({url:'plugins/kimchi/repository-edit.html',
+ class: repo_type});
+ }
+ }, {
+ id: 'repositories-grid-remove-button',
+ label: i18n['KCHREPO6014M'],
+ disabled: true,
+ onClick: function(event) {
+ var repository = repositoriesGrid.getSelected();
+ if(!repository) {
+ return;
+ }
+
+ var settings = {
+ title : i18n['KCHREPO6001M'],
+ content : i18n['KCHREPO6002M'],
+ confirm : i18n['KCHAPI6004M'],
+ cancel : i18n['KCHAPI6003M']
+ };
+
+ wok.confirm(settings, function() {
+ kimchi.deleteRepository(
+ repository['repo_id'],
+ function(result) {
+ wok.topic('kimchi/repositoryDeleted').publish(result);
+ }, function(error) {
+ }
+ );
+ });
+ }
+ }],
+ onRowSelected: function(row) {
+ var repository = repositoriesGrid.getSelected();
+ if(!repository) {
+ return;
+ }
+ $('#repositories-grid-remove-button').prop('disabled', false);
+ $('#repositories-grid-edit-button').prop('disabled', false);
+ var enabled = repository['enabled'];
+ $('#repositories-grid-enable-button')
+ .text(i18n[enabled ? 'KCHREPO6017M' : 'KCHREPO6016M'])
+ .prop('disabled', false);
+ },
+ frozenFields: [],
+ fields: gridFields,
+ data: listRepositories
+ });
+ };
+
+ var listRepositories = function(gridCallback) {
+ kimchi.listRepositories(function(repositories) {
+ if($.isFunction(gridCallback)) {
+ gridCallback(repositories);
+ }
+ else {
+ if(repositoriesGrid) {
+ repositoriesGrid.setData(repositories);
+ }
+ else {
+ initRepositoriesGrid();
+ repositoriesGrid.setData(repositories);
+ }
+ }
+ },
+ function(error) {
+ var message = error && error['responseJSON'] && error['responseJSON']['reason'];
+
+ if($.isFunction(gridCallback)) {
+ gridCallback([]);
+ }
+ repositoriesGrid &&
+ repositoriesGrid.showMessage(message || i18n['KCHUPD6008M']);
+ });
+
+ $('#repositories-grid-remove-button').prop('disabled', true);
+ $('#repositories-grid-edit-button').prop('disabled', true);
+ $('#repositories-grid-enable-button').prop('disabled', true);
+ };
+
+ var softwareUpdatesGridID = 'software-updates-grid';
+ var softwareUpdatesGrid = null;
+ var progressAreaID = 'software-updates-progress-textarea';
+ var reloadProgressArea = function(result) {
+ var progressArea = $('#' + progressAreaID)[0];
+ $(progressArea).text(result['message']);
+ var scrollTop = $(progressArea).prop('scrollHeight');
+ $(progressArea).prop('scrollTop', scrollTop);
+ };
+
+ var initSoftwareUpdatesGrid = function(softwareUpdates) {
+ softwareUpdatesGrid = new kimchi.widget.Grid({
+ container: 'software-updates-grid-container',
+ id: softwareUpdatesGridID,
+ title: i18n['KCHUPD6001M'],
+ rowSelection: 'disabled',
+ toolbarButtons: [{
+ id: softwareUpdatesGridID + '-update-button',
+ label: i18n['KCHUPD6006M'],
+ disabled: true,
+ onClick: function(event) {
+ var updateButton = $(this);
+ var progressArea = $('#' + progressAreaID)[0];
+ $('#software-updates-progress-container').removeClass('hidden');
+ $(progressArea).text('');
+ !wok.isElementInViewport(progressArea) &&
+ progressArea.scrollIntoView();
+ $(updateButton).text(i18n['KCHUPD6007M']).prop('disabled', true);
+
+ kimchi.updateSoftware(function(result) {
+ reloadProgressArea(result);
+ $(updateButton).text(i18n['KCHUPD6006M']).prop('disabled', false);
+ wok.topic('kimchi/softwareUpdated').publish({
+ result: result
+ });
+ }, function(error) {
+ var message = error && error['responseJSON'] && error['responseJSON']['reason'];
+ wok.message.error(message || i18n['KCHUPD6009M']);
+ $(updateButton).text(i18n['KCHUPD6006M']).prop('disabled', false);
+ }, reloadProgressArea);
+ }
+ }],
+ frozenFields: [],
+ fields: [{
+ name: 'package_name',
+ label: i18n['KCHUPD6002M'],
+ 'class': 'software-update-name'
+ }, {
+ name: 'version',
+ label: i18n['KCHUPD6003M'],
+ 'class': 'software-update-version'
+ }, {
+ name: 'arch',
+ label: i18n['KCHUPD6004M'],
+ 'class': 'software-update-arch'
+ }, {
+ name: 'repository',
+ label: i18n['KCHUPD6005M'],
+ 'class': 'software-update-repos'
+ }],
+ data: listSoftwareUpdates
+ });
+ };
+
+ var listSoftwareUpdates = function(gridCallback) {
+ kimchi.listSoftwareUpdates(function(softwareUpdates) {
+ if($.isFunction(gridCallback)) {
+ gridCallback(softwareUpdates);
+ }
+ else {
+ if(softwareUpdatesGrid) {
+ softwareUpdatesGrid.setData(softwareUpdates);
+ }
+ else {
+ initSoftwareUpdatesGrid(softwareUpdates);
+ }
+ }
+
+ var updateButton = $('#' + softwareUpdatesGridID + '-update-button');
+ $(updateButton).prop('disabled', softwareUpdates.length === 0);
+ }, function(error) {
+ var message = error && error['responseJSON'] && error['responseJSON']['reason'];
+ if($.isFunction(gridCallback)) {
+ gridCallback([]);
+ }
+ softwareUpdatesGrid &&
+ softwareUpdatesGrid.showMessage(message || i18n['KCHUPD6008M']);
+ });
+ };
+
+ var reportGridID = 'available-reports-grid';
+ var reportGrid = null;
+ var enableReportButtons = function(toEnable) {
+ var buttonID = '#{grid}-{btn}-button';
+ $.each(['rename', 'remove', 'download'], function(i, n) {
+ $(wok.substitute(buttonID, {
+ grid: reportGridID,
+ btn: n
+ })).prop('disabled', !toEnable);
+ });
+ };
+ var initReportGrid = function(reports) {
+ reportGrid = new kimchi.widget.Grid({
+ container: 'available-reports-grid-container',
+ id: reportGridID,
+ title: i18n['KCHDR6002M'],
+ toolbarButtons: [{
+ id: reportGridID + '-generate-button',
+ label: i18n['KCHDR6006M'],
+ onClick: function(event) {
+ wok.window.open('plugins/kimchi/report-add.html');
+ }
+ }, {
+ id: reportGridID + '-rename-button',
+ label: i18n['KCHDR6008M'],
+ disabled: true,
+ onClick: function(event) {
+ var report = reportGrid.getSelected();
+ if(!report) {
+ return;
+ }
+
+ kimchi.selectedReport = report['name'];
+ wok.window.open('plugins/kimchi/report-rename.html');
+ }
+ }, {
+ id: reportGridID + '-remove-button',
+ label: i18n['KCHDR6009M'],
+ disabled: true,
+ onClick: function(event) {
+ var report = reportGrid.getSelected();
+ if(!report) {
+ return;
+ }
+
+ var settings = {
+ title : i18n['KCHAPI6004M'],
+ content : i18n['KCHDR6001M'],
+ confirm : i18n['KCHAPI6002M'],
+ cancel : i18n['KCHAPI6003M']
+ };
+
+ wok.confirm(settings, function() {
+ kimchi.deleteReport({
+ name: report['name']
+ }, function(result) {
+ listDebugReports();
+ }, function(error) {
+ wok.message.error(error.responseJSON.reason);
+ });
+ });
+ }
+ }, {
+ id: reportGridID + '-download-button',
+ label: i18n['KCHDR6010M'],
+ disabled: true,
+ onClick: function(event) {
+ var report = reportGrid.getSelected();
+ if(!report) {
+ return;
+ }
+
+ kimchi.downloadReport({
+ file: report['uri']
+ });
+ }
+ }],
+ onRowSelected: function(row) {
+ var report = reportGrid.getSelected();
+ // Only enable report buttons if the selected line is not a
+ // pending report
+ if (report['time'] == i18n['KCHDR6007M']) {
+ var gridElement = $('#'+ reportGridID);
+ var row = $('tr:contains(' + report['name'] + ')', gridElement);
+ enableReportButtons(false);
+ row.attr('class', '');
+ }
+ else {
+ enableReportButtons(true);
+ }
+ },
+ frozenFields: [],
+ fields: [{
+ name: 'name',
+ label: i18n['KCHDR6003M'],
+ 'class': 'debug-report-name'
+ }, {
+ name: 'time',
+ label: i18n['KCHDR6005M'],
+ 'class': 'debug-report-time'
+ }],
+ data: reports
+ });
+ };
+
+ var getPendingReports = function() {
+ var reports = []
+ var filter = 'status=running&target_uri=' + encodeURIComponent('^/plugins/kimchi/debugreports/*')
+
+ kimchi.getTasksByFilter(filter, function(tasks) {
+ for(var i = 0; i < tasks.length; i++) {
+ reportName = tasks[i].target_uri.replace(/^\/plugins\/kimchi\/debugreports\//, '') || i18n['KCHDR6012M'];
+ reports.push({'name': reportName, 'time': i18n['KCHDR6007M']})
+
+ if(kimchi.trackingTasks.indexOf(tasks[i].id) >= 0) {
+ continue;
+ }
+
+ kimchi.trackTask(tasks[i].id, function(result) {
+ wok.topic('kimchi/debugReportAdded').publish();
+ }, function(result) {
+ // Error message from Async Task status
+ if (result['message']) {
+ var errText = result['message'];
+ }
+ // Error message from standard kimchi exception
+ else {
+ var errText = result['responseJSON']['reason'];
+ }
+ result && wok.message.error(errText);
+ wok.topic('kimchi/debugReportAdded').publish();
+ }, null);
+ }
+ }, null, true);
+
+ return reports;
+ };
+
+ var listDebugReports = function() {
+ kimchi.listReports(function(reports) {
+ pendingReports = getPendingReports();
+ allReports = pendingReports.concat(reports);
+ $('#debug-report-section').removeClass('hidden');
+
+ // Row selection will be cleared so disable buttons here
+ enableReportButtons(false);
+
+ if(reportGrid) {
+ reportGrid.setData(allReports);
+ }
+ else {
+ initReportGrid(allReports);
+ }
+
+ // Set id-debug-img to pending reports
+ // It will display a loading icon
+ var gridElement = $('#' + reportGridID);
+ $.each($('td:contains(' + i18n['KCHDR6007M'] + ')', gridElement), function(index, row) {
+ $(row).parent().addClass('no-hover');
+ $(row).attr('id', 'id-debug-img');
+ });
+ }, function(error) {
+ if(error['status'] == 403) {
+ $('#debug-report-section').addClass('hidden');
+ return;
+ }
+ $('#debug-report-section').removeClass('hidden');
+ });
+ };
+
+ var shutdownButtonID = '#host-button-shutdown';
+ var restartButtonID = '#host-button-restart';
+ var shutdownHost = function(params) {
+ var settings = {
+ title : i18n['KCHAPI6004M'],
+ content : i18n['KCHHOST6008M'],
+ confirm : i18n['KCHAPI6002M'],
+ cancel : i18n['KCHAPI6003M']
+ };
+
+ wok.confirm(settings, function() {
+ kimchi.shutdown(params);
+ $(shutdownButtonID).prop('disabled', true);
+ $(restartButtonID).prop('disabled', true);
+ // Check if there is any VM is running.
+ kimchi.listVMs(function(vms) {
+ for(var i = 0; i < vms.length; i++) {
+ if(vms[i]['state'] === 'running') {
+ wok.message.error.code('KCHHOST6001E');
+ $(shutdownButtonID).prop('disabled', false);
+ $(restartButtonID).prop('disabled', false);
+ return;
+ }
+ }
+
+ });
+ }, function() {
+ });
+ };
+
+ var initPage = function() {
+ $('#host-info-container .section-header').each(function(i, header) {
+ $('<span class="arrow"></span>').prependTo(header);
+ var toExpand = $(header).attr('aria-expanded') !== 'false';
+ expand(header, toExpand);
+ });
+
+ $('#host-info-container').on('click', '.section-header', function(event) {
+ var toExpand = $(this).attr('aria-expanded') === 'false';
+ expand(this, toExpand);
+ });
+
+ $('#host-button-shutdown').on('click', function(event) {
+ shutdownHost(null);
+ });
+
+ $('#host-button-restart').on('click', function(event) {
+ shutdownHost({
+ reboot: true
+ });
+ });
+
+ var setupUI = function() {
+ if (kimchi.capabilities == undefined) {
+ setTimeout(setupUI, 2000);
+ return;
+ }
+
+ if((kimchi.capabilities['repo_mngt_tool']) && (kimchi.capabilities['repo_mngt_tool']!="None")) {
+ initRepositoriesGrid(kimchi.capabilities['repo_mngt_tool']);
+ $('#repositories-section').switchClass('hidden', kimchi.capabilities['repo_mngt_tool']);
+ wok.topic('kimchi/repositoryAdded')
+ .subscribe(listRepositories);
+ wok.topic('kimchi/repositoryUpdated')
+ .subscribe(listRepositories);
+ wok.topic('kimchi/repositoryDeleted')
+ .subscribe(listRepositories);
+ }
+
+ if(kimchi.capabilities['update_tool']) {
+ $('#software-update-section').removeClass('hidden');
+ initSoftwareUpdatesGrid();
+ wok.topic('kimchi/softwareUpdated')
+ .subscribe(listSoftwareUpdates);
+ $('#software-updates-progress-container').accordion({
+ collapsible: true
+ });
+ }
+
+ if(kimchi.capabilities['system_report_tool']) {
+ listDebugReports();
+ wok.topic('kimchi/debugReportAdded')
+ .subscribe(listDebugReports);
+ wok.topic('kimchi/debugReportRenamed')
+ .subscribe(listDebugReports);
+ }
+ };
+ setupUI();
+ };
+
+ kimchi.getHost(function(data) {
+ var htmlTmpl = $('#host-tmpl').html();
+ data['logo'] = data['logo'] || '';
+ data['memory'] = wok.formatMeasurement(data['memory'], {
+ fixed: 2
+ });
+ var templated = wok.substitute(htmlTmpl, data);
+ $('#host-content-container').html(templated);
+
+ initPage();
+ initTracker();
+ });
+
+ var StatsMgr = function() {
+ var statsArray = {
+ cpu: {
+ u: {
+ type: 'percent',
+ legend: i18n['KCHHOST6002M'],
+ points: []
+ }
+ },
+ memory: {
+ u: {
+ type: 'value',
+ base: 2,
+ fixed: 2,
+ legend: i18n['KCHHOST6003M'],
+ points: []
+ }
+ },
+ diskIO: {
+ r: {
+ type: 'value',
+ base: 2,
+ fixed: 2,
+ unit: 'B/s',
+ legend: i18n['KCHHOST6004M'],
+ points: []
+ },
+ w: {
+ type: 'value',
+ base: 2,
+ fixed: 2,
+ unit: 'B/s',
+ legend: i18n['KCHHOST6005M'],
+ 'class': 'disk-write',
+ points: []
+ }
+ },
+ networkIO: {
+ r: {
+ type: 'value',
+ base: 2,
+ fixed: 2,
+ unit: 'B/s',
+ legend: i18n['KCHHOST6006M'],
+ points: []
+ },
+ s: {
+ type: 'value',
+ base: 2,
+ fixed: 2,
+ unit: 'B/s',
+ legend: i18n['KCHHOST6007M'],
+ 'class': 'network-sent',
+ points: []
+ }
+ }
+ };
+ var SIZE = 20;
+ var cursor = SIZE;
+
+ var add = function(stats) {
+ for(var key in stats) {
+ var item = stats[key];
+ for(var metrics in item) {
+ var value = item[metrics]['v'];
+ var max = item[metrics]['max'];
+ var unifiedMetrics = statsArray[key][metrics];
+ var ps = unifiedMetrics['points'];
+ if(!Array.isArray(value)){
+ ps.push(value);
+ if(ps.length > SIZE + 1) {
+ ps.shift();
+ }
+ }
+ else{
+ ps=ps.concat(value);
+ ps.splice(0, ps.length-SIZE-1);
+ unifiedMetrics['points']=ps;
+ }
+ if(max !== undefined) {
+ unifiedMetrics['max'] = max;
+ }
+ else {
+ if(unifiedMetrics['type'] !== 'value') {
+ continue;
+ }
+ max = -Infinity;
+ $.each(ps, function(i, value) {
+ if(value > max) {
+ max = value;
+ }
+ });
+ if(max === 0) {
+ ++max;
+ }
+ max *= 1.1;
+ unifiedMetrics['max'] = max;
+ }
+ }
+ }
+ cursor++;
+ };
+
+ var get = function(which) {
+ var stats = statsArray[which];
+ var lines = [];
+ for(var k in stats) {
+ var obj = stats[k];
+ var line = {
+ type: obj['type'],
+ base: obj['base'],
+ unit: obj['unit'],
+ fixed: obj['fixed'],
+ legend: obj['legend']
+ };
+ if(obj['max']) {
+ line['max'] = obj['max'];
+ }
+ if(obj['class']) {
+ line['class'] = obj['class'];
+ }
+ var ps = obj['points'];
+ var numStats = ps.length;
+ var unifiedPoints = [];
+ $.each(ps, function(i, value) {
+ unifiedPoints.push({
+ x: cursor - numStats + i,
+ y: value
+ });
+ });
+ line['points'] = unifiedPoints;
+ lines.push(line);
+ }
+ return lines;
+ };
+
+ return {
+ add: add,
+ get: get
+ };
+ };
+
+ var Tracker = function(charts) {
+ var charts = charts;
+ var timer = null;
+ var statsPool = new StatsMgr();
+ var setCharts = function(newCharts) {
+ charts = newCharts;
+ for(var key in charts) {
+ var chart = charts[key];
+ chart.updateUI(statsPool.get(key));
+ }
+ };
+
+ var self = this;
+
+ var UnifyStats = function(stats) {
+ var result= {
+ cpu: {
+ u: {
+ v: stats['cpu_utilization']
+ }
+ },
+ memory: {
+ u: {
+ }
+ },
+ diskIO: {
+ r: {
+ v: stats['disk_read_rate']
+ },
+ w: {
+ v: stats['disk_write_rate']
+ }
+ },
+ networkIO: {
+ r: {
+ v: stats['net_recv_rate']
+ },
+ s: {
+ v: stats['net_sent_rate']
+ }
+ }
+ };
+ if(Array.isArray(stats['memory'])){
+ result.memory.u['v']=[];
+ result.memory.u['max']=-Infinity;
+ for(var i=0;i<stats['memory'].length;i++){
+ result.memory.u['v'].push(stats['memory'][i]['avail']);
+ result.memory.u['max']=Math.max(result.memory.u['max'],stats['memory'][i]['total']);
+ }
+ }
+ else {
+ result.memory.u['v']=stats['memory']['avail'],
+ result.memory.u['max']=stats['memory']['total']
+ }
+ return(result);
+ };
+
+
+ var statsCallback = function(stats) {
+ var unifiedStats = UnifyStats(stats);
+ statsPool.add(unifiedStats);
+ for(var key in charts) {
+ var chart = charts[key];
+ chart.updateUI(statsPool.get(key));
+ }
+ timer = setTimeout(function() {
+ continueTrack();
+ }, 1000);
+ };
+
+ var track = function() {
+ kimchi.getHostStatsHistory(statsCallback,
+ function() {
+ continueTrack();
+ });
+ };
+
+ var continueTrack = function() {
+ kimchi.getHostStats(statsCallback,
+ function() {
+ continueTrack();
+ });
+ };
+
+ var destroy = function() {
+ timer && clearTimeout(timer);
+ timer = null;
+ };
+
+ return {
+ setCharts: setCharts,
+ start: track,
+ stop: destroy
+ };
+ };
+
+ var initTracker = function() {
+ // TODO: Extend tabs with onUnload event to unregister timers.
+ if(kimchi.hostTimer) {
+ kimchi.hostTimer.stop();
+ delete kimchi.hostTimer;
+ }
+
+ var trackedCharts = {
+ cpu: new kimchi.widget.LineChart({
+ id: 'chart-cpu',
+ node: 'container-chart-cpu',
+ type: 'percent'
+ }),
+ memory: new kimchi.widget.LineChart({
+ id: 'chart-memory',
+ node: 'container-chart-memory',
+ type: 'value'
+ }),
+ diskIO: new kimchi.widget.LineChart({
+ id: 'chart-disk-io',
+ node: 'container-chart-disk-io',
+ type: 'value'
+ }),
+ networkIO: new kimchi.widget.LineChart({
+ id: 'chart-network-io',
+ node: 'container-chart-network-io',
+ type: 'value'
+ })
+ };
+
+ if(kimchi.hostTimer) {
+ kimchi.hostTimer.setCharts(trackedCharts);
+ }
+ else {
+ kimchi.hostTimer = new Tracker(trackedCharts);
+ kimchi.hostTimer.start();
+ }
+ };
+
+ $('#host-root-container').on('remove', function() {
+ if(kimchi.hostTimer) {
+ kimchi.hostTimer.stop();
+ delete kimchi.hostTimer;
+ }
+
+ repositoriesGrid && repositoriesGrid.destroy();
+ wok.topic('kimchi/repositoryAdded')
+ .unsubscribe(listRepositories);
+ wok.topic('kimchi/repositoryUpdated')
+ .unsubscribe(listRepositories);
+ wok.topic('kimchi/repositoryDeleted')
+ .unsubscribe(listRepositories);
+
+ softwareUpdatesGrid && softwareUpdatesGrid.destroy();
+ wok.topic('kimchi/softwareUpdated').unsubscribe(listSoftwareUpdates);
+
+ reportGrid && reportGrid.destroy();
+ wok.topic('kimchi/debugReportAdded').unsubscribe(listDebugReports);
+ wok.topic('kimchi/debugReportRenamed').unsubscribe(listDebugReports);
+ });
+};
diff --git a/plugins/gingerbase/ui/js/src/gingerbase.report_add_main.js b/plugins/gingerbase/ui/js/src/gingerbase.report_add_main.js
new file mode 100644
index 0000000..5f098d3
--- /dev/null
+++ b/plugins/gingerbase/ui/js/src/gingerbase.report_add_main.js
@@ -0,0 +1,72 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2013-2014
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+kimchi.report_add_main = function() {
+ var reportGridID = 'available-reports-grid';
+ var addReportForm = $('#form-report-add');
+ var submitButton = $('#button-report-add');
+ var nameTextbox = $('input[name="name"]', addReportForm);
+ nameTextbox.select();
+
+ var submitForm = function(event) {
+ if(submitButton.prop('disabled')) {
+ return false;
+ }
+ var reportName = nameTextbox.val();
+ var validator = RegExp("^[_A-Za-z0-9-]*$");
+ if (!validator.test(reportName)) {
+ wok.message.error.code('KCHDR6011M');
+ return false;
+ }
+ var formData = addReportForm.serializeObject();
+ var taskAccepted = false;
+ var onTaskAccepted = function() {
+ if(taskAccepted) {
+ return;
+ }
+ taskAccepted = true;
+ wok.window.close();
+ wok.topic('kimchi/debugReportAdded').publish();
+ };
+
+ kimchi.createReport(formData, function(result) {
+ onTaskAccepted();
+ wok.topic('kimchi/debugReportAdded').publish();
+ }, function(result) {
+ // Error message from Async Task status
+ if (result['message']) {
+ var errText = result['message'];
+ }
+ // Error message from standard kimchi exception
+ else {
+ var errText = result['responseJSON']['reason'];
+ }
+ result && wok.message.error(errText);
+
+ taskAccepted &&
+ $('.grid-body-view table tr:first-child',
+ '#' + reportGridID).remove();
+ submitButton.prop('disabled', false);
+ nameTextbox.select();
+ }, onTaskAccepted);
+
+ event.preventDefault();
+ };
+
+ addReportForm.on('submit', submitForm);
+ submitButton.on('click', submitForm);
+};
diff --git a/plugins/gingerbase/ui/js/src/gingerbase.report_rename_main.js b/plugins/gingerbase/ui/js/src/gingerbase.report_rename_main.js
new file mode 100644
index 0000000..1bdb8d9
--- /dev/null
+++ b/plugins/gingerbase/ui/js/src/gingerbase.report_rename_main.js
@@ -0,0 +1,66 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2014
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+kimchi.report_rename_main = function() {
+ var renameReportForm = $('#form-report-rename');
+ var submitButton = $('#button-report-rename');
+ var nameTextbox = $('input[name="name"]', renameReportForm);
+ var submitForm = function(event) {
+ if(submitButton.prop('disabled')) {
+ return false;
+ }
+ var reportName = nameTextbox.val();
+
+ // if the user hasn't changed the report's name,
+ // nothing should be done.
+ if (reportName == kimchi.selectedReport) {
+ wok.message.error.code('KCHDR6013M');
+ return false;
+ }
+
+ var validator = RegExp("^[A-Za-z0-9-]*$");
+ if (!validator.test(reportName)) {
+ wok.message.error.code('KCHDR6011M');
+ return false;
+ }
+ var formData = renameReportForm.serializeObject();
+ submitButton.prop('disabled', true);
+ nameTextbox.prop('disabled', true);
+ kimchi.renameReport(kimchi.selectedReport, formData, function(result) {
+ submitButton.prop('disabled', false);
+ nameTextbox.prop('disabled', false);
+ wok.window.close();
+ wok.topic('kimchi/debugReportRenamed').publish({
+ result: result
+ });
+ }, function(result) {
+ var errText = result &&
+ result['responseJSON'] &&
+ result['responseJSON']['reason'];
+ wok.message.error(errText);
+ submitButton.prop('disabled', false);
+ nameTextbox.prop('disabled', false).focus();
+ });
+
+ event.preventDefault();
+ };
+
+ renameReportForm.on('submit', submitForm);
+ submitButton.on('click', submitForm);
+
+ nameTextbox.val(kimchi.selectedReport).select();
+};
diff --git a/plugins/gingerbase/ui/js/src/gingerbase.repository_add_main.js b/plugins/gingerbase/ui/js/src/gingerbase.repository_add_main.js
new file mode 100644
index 0000000..656306b
--- /dev/null
+++ b/plugins/gingerbase/ui/js/src/gingerbase.repository_add_main.js
@@ -0,0 +1,96 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2014
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+kimchi.repository_add_main = function() {
+
+ var addForm = $('#form-repository-add');
+ var addButton = $('#button-repository-add');
+
+ var validateField = function(event) {
+ var valid=($(this).val()!=='');
+ $(addButton).prop('disabled', !valid);
+ return(valid);
+ };
+
+ var validateForm = function(event) {
+ var valid=false;
+ addForm.find('input.required').each( function() {
+ valid=($(this).val()!=='');
+ return(!valid);
+ });
+ return(valid);
+ }
+
+ addForm.find('input.required').on('input propertychange', validateField);
+
+ var weedObject = function(obj) {
+ for (var key in obj) {
+ if (obj.hasOwnProperty(key)) {
+ if((typeof(obj[key])==="object") && !Array.isArray(obj[key])) {
+ weedObject(obj[key]);
+ }
+ else if(obj[key] == '') {
+ delete obj[key];
+ }
+ }
+ }
+ }
+
+ var addRepository = function(event) {
+ var valid = validateForm();
+ if(!valid) {
+ return false;
+ }
+
+ var formData = $(addForm).serializeObject();
+
+ if (formData && formData.isMirror!=undefined) {
+ formData.isMirror=(String(formData.isMirror).toLowerCase() === 'true');
+ }
+ if(formData.isMirror) {
+ if(formData.config==undefined) {
+ formData.config=new Object();
+ }
+ formData.config.mirrorlist=formData.baseurl;
+ delete formData.baseurl;
+ delete formData.isMirror;
+ }
+ weedObject(formData);
+ if(formData.config && formData.config.comps) {
+ formData.config.comps=formData.config.comps.split(/[,\s]/);
+ for(var i=0; i>formData.config.comps.length; i++) {
+ formData.config.comps[i]=formData.config.comps[i].trim();
+ }
+ for (var j=formData.config.comps.indexOf(""); j!=-1; j=formData.config.comps.indexOf("")) {
+ formData.config.comps.splice(j, 1);
+ }
+ }
+
+ kimchi.createRepository(formData, function() {
+ wok.topic('kimchi/repositoryAdded').publish();
+ wok.window.close();
+ }, function(jqXHR, textStatus, errorThrown) {
+ var reason = jqXHR &&
+ jqXHR['responseJSON'] &&
+ jqXHR['responseJSON']['reason'];
+ wok.message.error(reason);
+ });
+ return false;
+ };
+
+ $(addForm).on('submit', addRepository);
+};
diff --git a/plugins/gingerbase/ui/js/src/gingerbase.repository_edit_main.js b/plugins/gingerbase/ui/js/src/gingerbase.repository_edit_main.js
new file mode 100644
index 0000000..5bfc51e
--- /dev/null
+++ b/plugins/gingerbase/ui/js/src/gingerbase.repository_edit_main.js
@@ -0,0 +1,74 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2014
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+kimchi.repository_edit_main = function() {
+
+ var editForm = $('#form-repository-edit');
+
+ var saveButton = $('#repository-edit-button-save');
+
+ if(kimchi.capabilities['repo_mngt_tool']=="yum") {
+ editForm.find('input.deb').prop('disabled', true);
+ }
+ else if(kimchi.capabilities['repo_mngt_tool']=="deb") {
+ editForm.find('input.yum').prop('disabled', true);
+ }
+
+ kimchi.retrieveRepository(kimchi.selectedRepository, function(repository) {
+ editForm.fillWithObject(repository);
+
+ $('input', editForm).on('input propertychange', function(event) {
+ if($(this).val() !== '') {
+ $(saveButton).prop('disabled', false);
+ }
+ });
+ });
+
+
+ var editRepository = function(event) {
+ var formData = $(editForm).serializeObject();
+
+ if (formData && formData.config) {
+ formData.config.gpgcheck=(String(formData.config.gpgcheck).toLowerCase() === 'true');
+ }
+
+ if(formData.config && formData.config.comps) {
+ formData.config.comps=formData.config.comps.split(/[,\s]/);
+ for(var i=0; i>formData.config.comps.length; i++) {
+ formData.config.comps[i]=formData.config.comps[i].trim();
+ }
+ for (var j=formData.config.comps.indexOf(""); j!=-1; j=formData.config.comps.indexOf("")) {
+ formData.config.comps.splice(j, 1);
+ }
+ }
+
+ kimchi.updateRepository(kimchi.selectedRepository, formData, function() {
+ wok.topic('kimchi/repositoryUpdated').publish();
+ wok.window.close();
+ }, function(jqXHR, textStatus, errorThrown) {
+ var reason = jqXHR &&
+ jqXHR['responseJSON'] &&
+ jqXHR['responseJSON']['reason'];
+ wok.message.error(reason);
+ });
+
+ return false;
+ };
+
+ $(editForm).on('submit', editRepository);
+ $(saveButton).on('click', editRepository);
+};
diff --git a/plugins/gingerbase/ui/pages/help/de_DE/host.dita b/plugins/gingerbase/ui/pages/help/de_DE/host.dita
new file mode 100644
index 0000000..33a40e3
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/help/de_DE/host.dita
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Arbortext, Inc., 1988-2011, v.4002-->
+<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
+ "..\dtd\cshelp.dtd">
+
+
+<!--This DITA specialized document type is not supported by the Authoring Tools development team.
+For support please see:
+https://w3.opensource.ibm.com/projects/dita-cshelp/-->
+<cshelp id="kimhhost" xml:lang="de-de">
+<title>Host</title>
+<shortdesc>Die Seite <wintitle>Host</wintitle> zeigt Informationen zum Hostsystem an und ermöglicht Ihnen, den Host herunterzufahren, erneut zu starten und eine Verbindung zu ihm herzustellen.</shortdesc>
+<csbody>
+<p>Sie können die folgenden Aktionen am Host durchführen:<ul>
+<li>Wählen Sie <uicontrol>Herunterfahren</uicontrol> aus, um das Hostsystem herunterzufahren.</li>
+<li>Wählen Sie <uicontrol>Erneut starten</uicontrol> aus, um das Hostsystem erneut zu starten.</li>
+<li>Wählen Sie <uicontrol>Verbinden</uicontrol> aus, um eine VNC-Verbindung zum Hostsystem herzustellen, wenn noch keine Verbindung besteht.</li>
+</ul></p>
+<p>Klicken Sie auf die folgenden Abschnitte, um Informationen zum Host anzuzeigen:<dl>
+<dlentry>
+<dt>Basisinformationen</dt>
+<dd>Dieser Abschnitt zeigt die Verteilung, die Version und den Codenamen des Hostbetriebssystems sowie den Prozessortyp und die Speicherkapazität in GB an.</dd>
+</dlentry><dlentry>
+<dt>Systemstatistik</dt>
+<dd>Dieser Abschnitt zeigt mithilfe von Grafiken Statistiken für CPU, Speicher, Platten-E/A und Netz-E/A für den Host an. Wählen Sie <uicontrol>Daten werden nach dem Verlassen dieser Seite gesammelt</uicontrol> aus, um mit der Sammlung von Daten fortzufahren, wenn die Host-Registerkarte nicht angezeigt wird.</dd>
+</dlentry><dlentry>
+<dt>Software-Updates</dt>
+<dd>Dieser Abschnitt zeigt Informationen für alle Pakete an, bei denen Aktualisierungen verfügbar sind, einschließlich Paketname, Version, Architektur und Repository. Sie können alle aufgelisteten Pakete aktualisieren, indem Sie <uicontrol>Alle aktualisieren</uicontrol> auswählen. Sie können nicht einzelne Pakete zur Aktualisierung auswählen.</dd>
+</dlentry><dlentry>
+<dt>Repositorys</dt>
+<dd>Dieser Abschnitt zeigt Repositorys an, die dem Hostsystem zugeordnet sind. Sie können Repositorys hinzufügen, aktivieren, bearbeiten oder entfernen. Beim Hinzufügen wird ein Repository dem Hostsystem zugeordnet. Das Aktivieren eines Repositorys dagegen ermöglicht dem Host den Zugriff auf das Repository. Wenn Ihr System Red Hat Enterprise
+Linux oder Fedora ist, können Sie <filepath>yum</filepath>-Repositorys hinzufügen.
+Wenn Ihr System Ubuntu oder Debian ist, fügen Sie <filepath>deb</filepath>-Repositorys hinzu.<p>Wenn Sie mit yum-Repositorys arbeiten, können Sie eine GPG-Prüfung hinzufügen, um sicherzustellen, dass ein Paket aus diesem Repository nicht beschädigt wurde.
+Wählen Sie ein Repository und dann <uicontrol>Bearbeiten</uicontrol> aus. Wählen Sie <uicontrol>Ja</uicontrol> aus, um die GPG-Prüfung zu aktivieren, und geben Sie dann ein URL zur GPG-Schlüsseldatei für das Repository ein.</p></dd>
+</dlentry><dlentry>
+<dt>Debugberichte</dt>
+<dd>Dieser Abschnitt zeigt Debugberichte, einschließlich Name und Dateipfad, an.
+Sie haben die Möglichkeit, einen neuen Bericht zu erstellen oder einen bestehenden Bericht umzubenennen, zu entfernen oder herunterzuladen.<p>Der Debugbericht wird während des Befehls <cmdname>sosreport</cmdname> generiert. Er ist verfügbar für Red Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>-, Fedora-
+und Ubuntu-Verteilungen. Der Befehl generiert eine .tar-Datei, die Konfigurations- und Diagnoseinformationen enthält, wie zum Beispiel Kernelversion, geladene Module sowie System- und Servicekonfigurationdateien.
+Der Befehl führt zudem externe Programme aus, um weitere Informationen zu sammeln, und speichert diese Ausgabe im resultierenden Archiv.</p> </dd>
+</dlentry></dl></p>
+</csbody>
+<?tm 1392659967 1?>
+</cshelp>
+
+
+<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
+<!-- T9N_SRC_ID 232 -->
+<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/gingerbase/ui/pages/help/en_US/host.dita b/plugins/gingerbase/ui/pages/help/en_US/host.dita
new file mode 100644
index 0000000..0dcb670
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/help/en_US/host.dita
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Arbortext, Inc., 1988-2011, v.4002-->
+<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
+ "..\dtd\cshelp.dtd">
+<?Pub Sty _display FontColor="red"?>
+<?Pub Inc?>
+<!--This DITA specialized document type is not supported by the Authoring Tools development team.
+For support please see:
+https://w3.opensource.ibm.com/projects/dita-cshelp/-->
+<cshelp id="kimhhost" xml:lang="en-us">
+<title>Host</title>
+<shortdesc>The <wintitle>Host</wintitle> page shows information about
+the host system, and allows you to shut down, restart, and connect
+to the host.</shortdesc>
+<csbody>
+<p>You can perform the following actions on the host:<ul>
+<li>Select <uicontrol>Shut down</uicontrol> to shut down the host
+system.</li>
+<li>Select <uicontrol>Restart</uicontrol> to restart the host system.</li>
+<li>Select <uicontrol>Connect</uicontrol> to open a VNC connection
+to the host system, if it is not already connected.</li>
+</ul></p>
+<p>Click the following sections to display information about the host:<dl>
+<dlentry>
+<dt>Basic information</dt>
+<dd>This section displays the host operating system distribution,
+version, and code name, as well as the processor type, the number of
+online CPUs and amount of memory in GB.</dd>
+</dlentry><dlentry>
+<dt>System statistics</dt>
+<dd>This section displays graphs to show statistics for CPU, memory,
+disk I/O, and network I/O for the host. Select <uicontrol>Collecting
+data after leaving this page</uicontrol> to continue collecting data
+when the host tab is out of view.</dd>
+</dlentry><dlentry>
+<dt>Software Updates</dt>
+<dd>This section displays information for all of the packages that
+have updates available, including package name, version, architecture,
+and repository. You can update all of the packages listed by selecting <uicontrol>Update
+All</uicontrol>. You cannot select individual packages for updates.</dd>
+</dlentry><dlentry>
+<dt>Repositories</dt>
+<dd>This section displays repositories that are associated with the
+host system. You can add, enable, edit, or remove repositories. Adding
+a repository associates it with the host system while enabling a repository
+allows the host to access it. If your system is Red Hat Enterprise
+Linux or Fedora, you can add <filepath>yum</filepath> repositories.
+If your system is Ubuntu or Debian, then add <filepath>deb</filepath> repositories.<p>If
+you are working with yum repositories, you can add a GPG check to
+verify that a package from this repository have not been corrupted.
+Select a repository and then <uicontrol>Edit</uicontrol>. Select <uicontrol>Yes</uicontrol> to
+enable GPG Check and then enter a URL to the GPG key file for the
+repository.</p><?Pub Caret 156?></dd>
+</dlentry><dlentry>
+<dt>Debug reports</dt>
+<dd>This section displays debug reports, including name and file path.
+You can select from options to generate a new report, or rename, remove,
+or download an existing report.<p>The debug report is generated using
+the <cmdname>sosreport</cmdname> command. It is available for Red
+Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>, Fedora,
+and Ubuntu distributions. The command generates a .tar file that contains
+configuration and diagnostic information, such as the running kernel
+version, loaded modules, and system and service configuration files.
+The command also runs external programs to collect further information
+and stores this output in the resulting archive.</p> </dd>
+</dlentry></dl></p>
+</csbody>
+<?tm 1392659967 1?>
+</cshelp>
+<?Pub *0000003492?>
diff --git a/plugins/gingerbase/ui/pages/help/es_ES/host.dita b/plugins/gingerbase/ui/pages/help/es_ES/host.dita
new file mode 100644
index 0000000..7734244
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/help/es_ES/host.dita
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Arbortext, Inc., 1988-2011, v.4002-->
+<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
+ "..\dtd\cshelp.dtd">
+
+
+<!--This DITA specialized document type is not supported by the Authoring Tools development team.
+For support please see:
+https://w3.opensource.ibm.com/projects/dita-cshelp/-->
+<cshelp id="kimhhost" xml:lang="es-es">
+<title>Host</title>
+<shortdesc>La página <wintitle>Host</wintitle> muestra información sobre el sistema host y le permite concluir, reiniciar y conectar con el sistema principal.</shortdesc>
+<csbody>
+<p>Puede realizar las acciones siguientes en el host:<ul>
+<li>Seleccione <uicontrol>Concluir</uicontrol> para concluir el sistema host.</li>
+<li>Seleccione <uicontrol>Reiniciar</uicontrol> para reiniciar el sistema host.</li>
+<li>Seleccione <uicontrol>Conectar</uicontrol> para abrir una conexión VNC al sistema host, si no está conectado aún.</li>
+</ul></p>
+<p>Pulse en las secciones siguientes para visualizar información acerca del host:<dl>
+<dlentry>
+<dt>Información básica</dt>
+<dd>Esta sección muestra la distribución del sistema operativo de host, la versión y el nombre de código, así como el tipo de procesador y la cantidad de memoria en GB.</dd>
+</dlentry><dlentry>
+<dt>Estadísticas del sistema</dt>
+<dd>Esta sección muestra gráficos para mostrar estadísticas para CPU, memoria, E/S de disco y E/S de red para el host. Seleccione <uicontrol>Recoger datos después de salir de esta página</uicontrol> para continuar la recogida de datos cuando la pestaña principal ya no está a la vista.</dd>
+</dlentry><dlentry>
+<dt>Actualizaciones de software</dt>
+<dd>En esta sección se muestra información para todos los paquetes que tienen actualizaciones disponibles, incluido el nombre de paquete, versión, arquitectura y repositorio. Puede actualizar todos los paquetes listados seleccionando <uicontrol>Actualizar todo</uicontrol>. No puede seleccionar paquetes individuales para las actualizaciones.</dd>
+</dlentry><dlentry>
+<dt>Repositorios</dt>
+<dd>En esta sección se muestran los repositorios que están asociados con el sistema host. Puede añadir, habilitar, editar o eliminar repositorios. Añadir un repositorio lo asocia con el sistema host mientras que habilitar un repositorio permite que el host acceda a él. Si el sistema es Red Hat Enterprise
+Linux o Fedora, puede añadir repositorios <filepath>yum</filepath>.
+Si el sistema es Ubuntu o Debian, añada repositorios <filepath>deb</filepath>.<p>Si está trabajando con repositorios yum, puede añadir una comprobación GPG para verificar que un paquete de este repositorio no ha resultado dañado.
+Seleccione un repositorio y, a continuación, <uicontrol>Editar</uicontrol>. Seleccione <uicontrol>Sí</uicontrol> para habilitar la comprobación GPG y, a continuación, especifique un URL al archivo de claves GPG para el repositorio.</p></dd>
+</dlentry><dlentry>
+<dt>Informes de depuración</dt>
+<dd>En esta sección se muestran informes de depuración, incluido el nombre y la ruta de archivo.
+Puede seleccionar entre opciones para generar un informe nuevo, o bien redenominar, eliminar o descargar un informe existente.<p>El informe de depuración se genera utilizando el mandato <cmdname>sosreport</cmdname>. Está disponible para distribuciones de Red
+Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>, Fedora y Ubuntu. El mandato genera un archivo .tar que contiene la información de configuración y de diagnóstico, como la versión de kernel en ejecución, los módulos de carga y los archivos de configuración del sistema y servicio.
+El mandato también ejecuta programas externos para recopilar información adicional y almacena esta salida en el archivo resultante.</p> </dd>
+</dlentry></dl></p>
+</csbody>
+<?tm 1392659967 1?>
+</cshelp>
+
+
+<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
+<!-- T9N_SRC_ID 232 -->
+<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/gingerbase/ui/pages/help/fr_FR/host.dita b/plugins/gingerbase/ui/pages/help/fr_FR/host.dita
new file mode 100644
index 0000000..f4c330b
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/help/fr_FR/host.dita
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Arbortext, Inc., 1988-2011, v.4002-->
+<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
+ "..\dtd\cshelp.dtd">
+
+
+<!--This DITA specialized document type is not supported by the Authoring Tools development team.
+For support please see:
+https://w3.opensource.ibm.com/projects/dita-cshelp/-->
+<cshelp id="kimhhost" xml:lang="fr-fr">
+<title>Hôte</title>
+<shortdesc>La page <wintitle>Hôte</wintitle> affiche des informations
+sur le système hôte et vous permet d'arrêter, de redémarrer et de vous
+connecter à l'hôte.</shortdesc>
+<csbody>
+<p>Vous pouvez effectuer les actions suivantes sur l'hôte :<ul>
+<li>Sélectionnez <uicontrol>Arrêter</uicontrol> pour arrêter le système hôte.</li>
+<li>Sélectionnez <uicontrol>Redémarrer</uicontrol> pour redémarrer le système hôte.</li>
+<li>Sélectionnez <uicontrol>Connexion</uicontrol> pour ouvrir une connexion VNC
+au système hôte, si celui-ci n'est pas déjà connecté.</li>
+</ul></p>
+<p>Cliquez sur les sections suivantes pour afficher des informations sur l'hôte :<dl>
+<dlentry>
+<dt>Informations de base</dt>
+<dd>Cette section affiche la distribution, la version et le nom de code
+du système d'exploitation hôte, ainsi que le type de processeur et la quantité
+de mémoire en Go.</dd>
+</dlentry><dlentry>
+<dt>Statistiques système</dt>
+<dd>Cette section affiche les graphiques des statistiques pour l'UC, mémoire, ainsi que
+les E-S disque et E-S réseau pour l'hôte. Sélectionnez <uicontrol>Collecte des données une fois la page quittée</uicontrol>
+pour continuer la collecte de données lorsque l'onglet hôte n'est plus visible.</dd>
+</dlentry><dlentry>
+<dt>Mises à jour logicielles</dt>
+<dd>Cette section affiche des informations pour tous les modules qui
+disposent de mises à jour disponibles, y compris le nom de module, la version, l'architecture
+et le référentiel. Vous pouvez mettre à jour toutes les modules répertoriés en sélectionnant <uicontrol>Tout
+mettre à jour</uicontrol>. Vous ne pouvez pas sélectionner des modules individuels pour les mises à jour.</dd>
+</dlentry><dlentry>
+<dt>Référentiels</dt>
+<dd>Cette section affiche les référentiels associés au système hôte. Vous pouvez ajouter, activer, éditer ou retirer des référentiels. L'ajout d'un référentiel associe celui-ci au système hôte,
+tandis que l'activation d'un référentiel permet à l'hôte d'y accéder. Si votre système est Red Hat Enterprise Linux ou Fedora,
+vous pouvez ajouter des référentiels <filepath>yum</filepath>.
+Si votre système est de type Ubuntu ou Debian, ajoutez des référentiels
+<filepath>deb</filepath>.<p>Si vous travaillez avec des référentiels yum, vous pouvez ajouter un contrôle GPG
+afin de vérifier qu'un module provenant de ce référentiel n'a pas été endommagé.
+Sélectionnez un référentiel puis cliquez sur <uicontrol>Editer</uicontrol>. Sélectionnez <uicontrol>Oui</uicontrol> pour activer le contrôle GPG,
+puis entrez une URL pour le fichier de clés GPG du référentiel.</p></dd>
+</dlentry><dlentry>
+<dt>Rapports de débogage</dt>
+<dd>Cette section affiche les rapports de débogage, y compris le nom et le chemin du fichier.
+Vous pouvez faire un choix parmi les options afin de générer un nouveau rapport, ou renommer, supprimer,
+ou télécharger un rapport existant.<p>Le rapport de débogage est généré à
+l'aide de la commande <cmdname>sosreport</cmdname>. Cette option est disponible pour les distributions
+Red Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>, Fedora et Ubuntu. La commande génère un fichier .tar contenant la configuration et des informations de diagnostic,
+telles que la version du noyau d'exécution, les modules chargés, ainsi que les fichiers de configuration
+du système et de la maintenance.
+La commande exécute également des programmes externes pour collecter des informations
+supplémentaires et stocke cette sortie dans l'archive résultante.</p> </dd>
+</dlentry></dl></p>
+</csbody>
+<?tm 1392659967 1?>
+</cshelp>
+
+
+<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
+<!-- T9N_SRC_ID 232 -->
+<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/gingerbase/ui/pages/help/it_IT/host.dita b/plugins/gingerbase/ui/pages/help/it_IT/host.dita
new file mode 100644
index 0000000..63d3367
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/help/it_IT/host.dita
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Arbortext, Inc., 1988-2011, v.4002-->
+<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
+ "..\dtd\cshelp.dtd">
+
+
+<!--This DITA specialized document type is not supported by the Authoring Tools development team.
+For support please see:
+https://w3.opensource.ibm.com/projects/dita-cshelp/-->
+<cshelp id="kimhhost" xml:lang="it-it">
+<title>Host</title>
+<shortdesc>La pagina <wintitle>Host</wintitle> visualizza le informazioni sul sistema host e consente di arrestarlo, riavviarlo e connettersi ad esso.</shortdesc>
+<csbody>
+<p>È possibile effettuare le seguenti operazioni sull'host:<ul>
+<li>Selezionare <uicontrol>Arresta</uicontrol> per arrestare il sistema host.</li>
+<li>Selezionare <uicontrol>Riavvia</uicontrol> per riavviare il sistema host.</li>
+<li>Selezionare <uicontrol>Connetti</uicontrol> per aprire una connessione VNC al sistema host, se non è già connesso.</li>
+</ul></p>
+<p>Fare clic sulle seguenti sezioni per visualizzare le informazioni sull'host:<dl>
+<dlentry>
+<dt>Informazioni di base</dt>
+<dd>Questa sezione visualizza il nome codice, la versione e la distribuzione del sistema operativo, come pure il tipo di processore e la quantità di memoria in GB.</dd>
+</dlentry><dlentry>
+<dt>Statistiche di sistema</dt>
+<dd>Questa sezione visualizza i grafici che mostrano le statistiche per la CPU, la memoria, l'I/O disco e di rete per l'host. Selezionare <uicontrol>Raccolta dati all'uscita dalla pagina</uicontrol> per continuare la raccolta dei dati quando la scheda host non è più visibile.</dd>
+</dlentry><dlentry>
+<dt>Aggiornamenti del software</dt>
+<dd>Questa sezione visualizza le informazioni per tutti i pacchetti per cui sono disponibili gli aggiornamenti, incluso il nome, la versione, l'architettura e il repository del pacchetto. È possibile aggiornare tutti i pacchetti elencati, selezionando <uicontrol>Aggiorna tutto</uicontrol>. Non è possibile selezionare singoli pacchetti per gli aggiornamenti.</dd>
+</dlentry><dlentry>
+<dt>Repository</dt>
+<dd>Questa sezione visualizza i repository associati al sistema host. È possibile aggiungere, abilitare, modificare o rimuovere i repository. L'aggiunta di un repository lo associa al sistema host, mentre l'abilitazione di un repository
+consente all'host di accedervi. Se il sistema è Red Hat Enterprise
+Linux o Fedora, è possibile aggiungere i repository <filepath>yum</filepath>.
+Se il sistema è Ubuntu o Debian, aggiungere i repository <filepath>deb</filepath>.<p>Se si stanno utilizzando i repository yum, è possibile aggiungere un controllo GPG per verificare che un pacchetto da questo repository non sia stato corrotto.
+Selezionare un repository, quindi <uicontrol>Modifica</uicontrol>. Selezionare <uicontrol>Sì</uicontrol> per abilitare il controllo GPG, quindi immettere un URL al file di chiavi GPG per il
+repository.</p></dd>
+</dlentry><dlentry>
+<dt>Report di debug</dt>
+<dd>Questa sezione visualizza i report di debug, incluso il nome e il percorso file.
+Le opzioni disponibili consentono di generare un nuovo report oppure ridenominare, rimuovere o scaricare un report esistente.<p>Il report di debug viene generato utilizzando il comando <cmdname>sosreport</cmdname>. È disponibile per le distribuzioni Red
+Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>, Fedora e Ubuntu. Il comando genera un file .tar che contiene informazioni di diagnostica e configurazione, come la versione del kernel in esecuzione, i moduli caricati e i file di configurazione del servizio e del sistema.
+Il comando esegue anche programmi esterni per raccogliere ulteriori informazioni e memorizza l'output nell'archivio risultante.</p> </dd>
+</dlentry></dl></p>
+</csbody>
+<?tm 1392659967 1?>
+</cshelp>
+
+
+<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
+<!-- T9N_SRC_ID 232 -->
+<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/gingerbase/ui/pages/help/ja_JP/host.dita b/plugins/gingerbase/ui/pages/help/ja_JP/host.dita
new file mode 100644
index 0000000..3a0141c
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/help/ja_JP/host.dita
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Arbortext, Inc., 1988-2011, v.4002-->
+<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
+ "..\dtd\cshelp.dtd">
+
+
+<!--This DITA specialized document type is not supported by the Authoring Tools development team.
+For support please see:
+https://w3.opensource.ibm.com/projects/dita-cshelp/-->
+<cshelp id="kimhhost" xml:lang="ja-jp">
+<title>ホスト</title>
+<shortdesc><wintitle>「ホスト」</wintitle>ページには、ホスト・システムに関する情報が表示されます。ここで、ホストをシャットダウン、再始動、またホストに接続することができます。
+</shortdesc>
+<csbody>
+<p>以下のアクションをホストに対して実行できます。
+<ul>
+<li>ホスト・システムをシャットダウンするには<uicontrol>「シャットダウン」</uicontrol>を選択します。
+</li>
+<li>ホスト・システムを再始動するには<uicontrol>「再始動」</uicontrol>を選択します。
+</li>
+<li>ホスト・システムへの VNC 接続を (まだ接続されていない場合に) オープンするには、<uicontrol>「接続」</uicontrol>を選択します。
+</li>
+</ul></p>
+<p>ホストに関する情報を表示するには、以下の選択項目をクリックしてください。
+<dl>
+<dlentry>
+<dt>基本情報</dt>
+<dd>このセクションには、ホスト・オペレーティング・システムのディストリビューション、バージョン、およびコード名、さらにプロセッサー・タイプとメモリーの量 (GB 単位) が表示されます。
+</dd>
+</dlentry><dlentry>
+<dt>システム統計情報</dt>
+<dd>このセクションには、ホストの CPU、メモリー、ディスク入出力、およびネットワーク入出力の統計情報を表すグラフが表示されます。
+ホスト・タブを閉じたときにデータの収集を続行するには、<uicontrol>「このページを閉じた後、データを収集する」</uicontrol>を選択してください。
+</dd>
+</dlentry><dlentry>
+<dt>ソフトウェア更新</dt>
+<dd>このセクションには、更新が用意されているパッケージすべての情報
+(パッケージ名、バージョン、アーキテクチャー、リポジトリーなど) が表示されます。
+<uicontrol>「すべて更新」</uicontrol>を選択すると、リストされているパッケージすべてを更新できます。
+更新する対象として個別のパッケージを選択することはできません。
+</dd>
+</dlentry><dlentry>
+<dt>リポジトリー</dt>
+<dd>このセクションには、ホスト・システムに関連付けられているリポジトリーが表示されます。
+リポジトリーを追加する、有効にする、編集する、または削除することができます。
+リポジトリーを追加すると、そのリポジトリーがホスト・システムに関連付けられ、リポジトリーを有効にすると、そのリポジトリーにホストがアクセスできるようになります。
+システムが Red Hat Enterprise Linux または Fedora であれば、<filepath>yum</filepath> リポジトリーを追加できます。
+システムが Ubuntu または Debian であれば、<filepath>deb</filepath> リポジトリーを追加してください。
+<p>yum リポジトリーを操作している場合、そのリポジトリーに入っているパッケージが壊れていないことを確認するため、GPG チェックを追加できます。
+リポジトリーを選択し、<uicontrol>「編集」</uicontrol>をクリックしてください。
+<uicontrol>「はい」</uicontrol>を選択して GPG チェックを有効にしてから、そのリポジトリーの GPG 鍵ファイルの URL を入力してください。
+</p></dd>
+</dlentry><dlentry>
+<dt>デバッグ・レポート</dt>
+<dd>このセクションには、デバッグ・レポート (名前やファイル・パスなど) が表示されます。
+新しいレポートを生成、既存のレポートを名前変更、削除、またはダウンロードするためのオプションを選択できます。
+<p>デバッグ・レポートは、<cmdname>sosreport</cmdname> コマンドで生成されます。
+これは、Red Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>、Fedora、および Ubuntu ディストリビューションに用意されています。
+このコマンドは、構成および診断情報 (稼働中のカーネルのバージョン、ロードされているモジュール、システムおよびサービス構成ファイルなど) が入った .tar ファイルを生成します。
+このコマンドはまた、外部プログラムを実行して情報をさらに収集し、その出力を結果のアーカイブに保管します。
+</p> </dd>
+</dlentry></dl></p>
+</csbody>
+<?tm 1392659967 1?>
+</cshelp>
+
+
+<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
+<!-- T9N_SRC_ID 227 -->
+<!-- T9N_SH1P_STR1NG KVM21AAP001 1 -->
diff --git a/plugins/gingerbase/ui/pages/help/ko_KR/host.dita b/plugins/gingerbase/ui/pages/help/ko_KR/host.dita
new file mode 100644
index 0000000..ee4a9c3
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/help/ko_KR/host.dita
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Arbortext, Inc., 1988-2011, v.4002-->
+<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
+ "..\dtd\cshelp.dtd">
+
+
+<!--This DITA specialized document type is not supported by the Authoring Tools development team.
+For support please see:
+https://w3.opensource.ibm.com/projects/dita-cshelp/-->
+<cshelp id="kimhhost" xml:lang="ko-kr">
+<title>호스트</title>
+<shortdesc><wintitle>호스트</wintitle> 페이지에는 호스트 시스템에 대한 정보가 표시되며 이 페이지를 사용하여 호스트를 종료 및 다시 시작하거나 호스트에 연결할 수 있습니다.</shortdesc>
+<csbody>
+<p>호스트에 대해 다음 조치를 수행할 수 있습니다.<ul>
+<li>호스트 시스템을 종료하려면 <uicontrol>시스템 종료</uicontrol>를 선택합니다.</li>
+<li>호스트 시스템을 다시 시작하려면 <uicontrol>다시 시작</uicontrol>을 선택합니다.</li>
+<li>이미 연결되어 있지 않은 경우, 호스트 시스템에 대한 VNC 연결을 시작하려면 <uicontrol>연결</uicontrol>을 선택합니다.</li>
+</ul></p>
+<p>호스트에 대한 정보를 표시하려면 다음 섹션을 클릭하십시오.<dl>
+<dlentry>
+<dt>기본 정보</dt>
+<dd>이 섹션에는 호스트 운영 체제 배포, 버전, 코드 이름, 프로세서 유형, 메모리 용량(GB) 등이 표시됩니다.</dd>
+</dlentry><dlentry>
+<dt>시스템 통계</dt>
+<dd>이 섹션에는 호스트의 CPU, 메모리, 디스크 I/O, 네트워크 I/O에 대한 통계를 표시하는 그래프가 표시됩니다. 호스트 탭을 떠났을 때 데이터 수집을 계속하려면 <uicontrol>이 페이지를 떠난 후에 데이터 수집</uicontrol>을 선택합니다.</dd>
+</dlentry><dlentry>
+<dt>소프트웨어 업데이트</dt>
+<dd>이 섹션에는 패키지 이름, 버전, 아키텍처, 저장소를 비롯하여 사용 가능한 업데이트가 있는 모든 패키지에 대한 정보가 표시됩니다. <uicontrol>모두 업데이트</uicontrol>를 선택하여 나열된 모든 패키지를 업데이트할 수 있습니다. 업데이트에 대해 개별 패키지를 선택할 수는 없습니다.</dd>
+</dlentry><dlentry>
+<dt>저장소</dt>
+<dd>이 섹션에는 호스트 시스템과 연관된 저장소가 표시됩니다. 저장소를 추가하거나, 사용으로 설정하거나, 편집하거나, 제거할 수 있습니다. 저장소를 추가하면 저장소가 호스트 시스템과 연관되며, 저장소를 사용으로 설정하면 호스트가 저장소에 액세스할 수 있습니다. 해당 시스템이 Red Hat Enterprise Linux 또는 Fedora인 경우, <filepath>yum</filepath> 저장소를 추가할 수 있습니다.
+해당 시스템이 Ubuntu 또는 Debian인 경우, <filepath>deb</filepath> 저장소를 추가하십시오.<p>yum 저장소로 작업하는 경우, GPG 검사를 추가하여 이 저장소의 패키지가 손상되지 않았는지 확인할 수 있습니다.
+저장소를 선택한 후 <uicontrol>편집</uicontrol>을 선택하십시오. <uicontrol>예</uicontrol>를 선택하여 GPG 검사를 사용으로 설정한 후 저장소에 대한 GPG 키 파일의 URL을 입력하십시오.</p></dd>
+</dlentry><dlentry>
+<dt>디버그 보고서</dt>
+<dd>이 섹션에는 이름 및 파일 경로를 포함한 디버그 보고서가 표시됩니다.
+새 보고서 생성, 기존 보고서 이름 바꾸기, 제거, 다운로드 등의 옵션 중에서 선택할 수 있습니다.<p>디버그 보고서는 <cmdname>sosreport</cmdname> 명령을 사용하여 생성됩니다. 이는 Red Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>, Fedora 및 Ubuntu 배포에서 사용 가능합니다. 이 명령은 구성 및 진단 정보(예: 실행 중인 커널 버전, 로드된 모듈, 시스템 및 서비스 구성 파일)를 포함하는 .tar 파일을 생성합니다.
+또한 이 명령은 외부 프로그램을 실행하여 추가 정보를 수집하고 결과 아카이브에 이 출력을 저장합니다.</p> </dd>
+</dlentry></dl></p>
+</csbody>
+<?tm 1392659967 1?>
+</cshelp>
+
+
+<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
+<!-- T9N_SRC_ID 232 -->
+<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/gingerbase/ui/pages/help/pt_BR/host.dita b/plugins/gingerbase/ui/pages/help/pt_BR/host.dita
new file mode 100644
index 0000000..88f7eb2
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/help/pt_BR/host.dita
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Arbortext, Inc., 1988-2011, v.4002-->
+<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
+ "..\dtd\cshelp.dtd">
+
+
+<!--This DITA specialized document type is not supported by the Authoring Tools development team.
+For support please see:
+https://w3.opensource.ibm.com/projects/dita-cshelp/-->
+<cshelp id="kimhhost" xml:lang="pt-br">
+<title>Host</title>
+<shortdesc>A página <wintitle>Host</wintitle> mostra informações sobre
+o sistema host e permite encerrar, reiniciar e conectar
+ao host.</shortdesc>
+<csbody>
+<p>É possível executar as ações a segur no host:<ul>
+<li>Selecione <uicontrol>Encerrar</uicontrol> para encerrar o sistema
+host.</li>
+<li>Selecione <uicontrol>Reiniciar</uicontrol> para reiniciar o sistema host.</li>
+<li>Selecione <uicontrol>Conectar</uicontrol> para abrir uma conexão VNC
+para o sistema host, se ele já não estiver conectado.</li>
+</ul></p>
+<p>Clique nas seções a seguir para exibir informações sobre o host:<dl>
+<dlentry>
+<dt>Informações básicas</dt>
+<dd>Esta seção exibe a distribuição do sistema operacional do host,
+a versão e o nome do código, bem como o tipo de processador e quantia de
+memória em GB.</dd>
+</dlentry><dlentry>
+<dt>Estatísticas do sistema</dt>
+<dd>Esta seção exibe gráficos para mostrar estatísticas para CPU, memória,
+E/S de disco e E/S de rede para o host. Selecione <uicontrol>Coletando
+dados depois de sair desta página</uicontrol> para continuar a coletar dados
+quando a guia do host estiver fora de visualização.</dd>
+</dlentry><dlentry>
+<dt>Atualizações de software</dt>
+<dd>Esta seção exibe informações de todos os pacotes que
+possuem atualizações disponíveis, incluindo nome do pacote, versão, arquitetura
+e repositório. É possível atualizar todos os pacotes listados selecionando <uicontrol>Atualizar
+todos</uicontrol>. Não é possível selecionar pacotes individuais para atualizações.</dd>
+</dlentry><dlentry>
+<dt>Repositórios</dt>
+<dd>Esta seção exibe repositórios que estão associados ao
+sistema host. É possível incluir, ativar, editar ou remover repositórios. Incluir
+um repositório o associa com o sistema host enquanto ativar um repositório
+permite que o host o acesse. Se o seu sistema for Red Hat Enterprise
+Linux ou Fedora, será possível incluir repositórios <filepath>yum</filepath>.
+Se o seu sistema for Ubuntu ou Debian, inclua repositórios <filepath>deb</filepath>.<p>Se
+você estiver trabalhando com repositórios yum, será possível incluir uma verificação de GPG para
+verificar se um pacote desse repositório não foi corrompido.
+Selecione um repositório e, em seguida, <uicontrol>Editar</uicontrol>. Selecione <uicontrol>Sim</uicontrol> para
+ativar a Verificação de GPG e, em seguida, insira uma URL no arquivo-chave de GPG para o
+repositório.</p></dd>
+</dlentry><dlentry>
+<dt>Relatórios de depuração</dt>
+<dd>Esta seção exibe relatórios de depuração, incluindo nome e caminho do arquivo.
+É possível selecionar a partir das opções para gerar um novo relatório ou renomear, remover
+ou fazer o download de um relatório existente.<p>O relatório de depuração é gerado usando
+o comando <cmdname>sosreport</cmdname>. Ele está disponível para distribuições
+Red Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>, Fedora
+e Ubuntu. O comando gera um arquivo .tar que contém
+informações de configuração e de diagnóstico, como versão do kernel
+em execução, módulos carregados e arquivos de configuração de sistema e de serviço.
+O comando também executa programas externos para coletar informações adicionais
+e armazena essa saída no archive resultante.</p> </dd>
+</dlentry></dl></p>
+</csbody>
+<?tm 1392659967 1?>
+</cshelp>
+
+
+<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
+<!-- T9N_SRC_ID 232 -->
+<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/gingerbase/ui/pages/help/ru_RU/host.dita b/plugins/gingerbase/ui/pages/help/ru_RU/host.dita
new file mode 100644
index 0000000..fb72c21
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/help/ru_RU/host.dita
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Arbortext, Inc., 1988-2011, v.4002-->
+<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
+ "..\dtd\cshelp.dtd">
+
+
+<!--This DITA specialized document type is not supported by the Authoring Tools development team.
+For support please see:
+https://w3.opensource.ibm.com/projects/dita-cshelp/-->
+<cshelp id="kimhhost" xml:lang="ru-ru">
+<title>Хост</title>
+<shortdesc>Страница <wintitle>Хост</wintitle> показывает информацию о системе хоста и позволяет останавливать хост, перезапускать хост и подключаться к нему.</shortdesc>
+<csbody>
+<p>На хосте можно выполнять следующие действия:<ul>
+<li><uicontrol>Завершить работу</uicontrol> - остановить систему хоста.</li>
+<li><uicontrol>Перезапустить</uicontrol> - перезапустить систему хоста.</li>
+<li><uicontrol>Подключиться</uicontrol> - открыть соединение VNC с системой хоста, если оно еще не установлено.</li>
+</ul></p>
+<p>Щелкните на следующих разделах для просмотра информации о хосте:<dl>
+<dlentry>
+<dt>Базовая информация</dt>
+<dd>В этом разделе показывается вариант операционной системы, его версия и кодовое имя, а также тип процессора и объем памяти в ГБ.</dd>
+</dlentry><dlentry>
+<dt>Системная статистика</dt>
+<dd>В этом разделе показываются графики, отражающие статистическую информацию о процессоре, памяти, дисковом вводе-выводе и сетевом вводе-выводе для хоста. Выберите <uicontrol>Сбор данных после закрытия этой страницы</uicontrol>, чтобы сбор данных продолжался после закрытия вкладки Хост.</dd>
+</dlentry><dlentry>
+<dt>Обновления программного обеспечения</dt>
+<dd>В этом разделе показывается информация обо всех пакетах, для которых доступны обновления, включая имя пакета, версию, архитектуру и хранилище. Можно обновить все пакеты в списке щелчком на <uicontrol>Обновить все</uicontrol>. Отдельные пакеты для обновления выбрать нельзя.</dd>
+</dlentry><dlentry>
+<dt>Хранилища</dt>
+<dd>В этом разделе показываются хранилища, связанные с системой хоста. Хранилища можно добавлять, активировать, изменять и удалять. При добавлении хранилище связывается с системой хоста, при активации хранилище становится доступным для хоста. Если система - Red Hat Enterprise Linux или Fedora, можно добавить хранилища <filepath>yum</filepath>.
+Если система - Ubuntu или Debian, добавьте хранилища <filepath>deb</filepath>.<p>При работе с хранилищами yum можно добавить проверку GPG для проверки целостности пакетов из данного хранилища.
+Выберите хранилище и щелкните на <uicontrol>Изменить</uicontrol>. Выберите <uicontrol>Да</uicontrol>, чтобы включить проверку GPG, и введите URL файла ключей GPG для хранилища.</p></dd>
+</dlentry><dlentry>
+<dt>Отладочные отчеты</dt>
+<dd>В этом разделе показываются отладочные отчеты, включая имя и путь.
+Доступны команды для создания, переименования, удаления и загрузки отчетов.<p>Отладочный отчет создается командой <cmdname>sosreport</cmdname>. Он доступен для Red
+Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>, Fedora и Ubuntu. Команда создает файл .tar с конфигурационной и диагностической информацией, такой как версия ядра, загруженные модули и файлы конфигурации системы и служб.
+Команда также выполняет внешние программы для сбора дополнительной информации и сохраняет их вывод в результирующем архиве.</p> </dd>
+</dlentry></dl></p>
+</csbody>
+<?tm 1392659967 1?>
+</cshelp>
+
+
+<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
+<!-- T9N_SRC_ID 232 -->
+<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/gingerbase/ui/pages/help/zh_CN/host.dita b/plugins/gingerbase/ui/pages/help/zh_CN/host.dita
new file mode 100644
index 0000000..78a89c3
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/help/zh_CN/host.dita
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Arbortext, Inc., 1988-2011, v.4002-->
+<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
+ "..\dtd\cshelp.dtd">
+
+
+<!--This DITA specialized document type is not supported by the Authoring Tools development team.
+For support please see:
+https://w3.opensource.ibm.com/projects/dita-cshelp/-->
+<cshelp id="kimhhost" xml:lang="zh-cn">
+<title>主机</title>
+<shortdesc>“<wintitle>主机</wintitle>”页面显示有关主机系统的信息,并且允许您对主机进行关闭、启动和连接。</shortdesc>
+<csbody>
+<p>可对主机执行以下操作:<ul>
+<li>选择<uicontrol>关闭</uicontrol>以关闭主机系统。</li>
+<li>选择<uicontrol>重新启动</uicontrol>以重新启动主机系统。</li>
+<li>选择<uicontrol>连接</uicontrol>以打开与主机系统的 VNC 连接(如果尚未连接)。</li>
+</ul></p>
+<p>单击以下部分以显示有关主机的信息:<dl>
+<dlentry>
+<dt>基本信息</dt>
+<dd>本部分显示主机操作系统分发版、版本和代码名称以及处理器类型和内存量(以 GB 计)。</dd>
+</dlentry><dlentry>
+<dt>系统统计信息</dt>
+<dd>本部分显示图形,以显示主机有关 CPU、内存、磁盘 I/O 和网络 I/O 的统计信息。选择<uicontrol>离开此页面之后收集数据</uicontrol>以继续在主机选项卡不在视图中时收集数据。</dd>
+</dlentry><dlentry>
+<dt>软件更新</dt>
+<dd>本部分显示有更新可用的所有软件包的信息,其中包括软件包名称、版本、体系结构和存储库。可通过选择<uicontrol>全部更新</uicontrol>来更新所列示的所有软件包。不能针对更新选择各个软件包。</dd>
+</dlentry><dlentry>
+<dt>存储库</dt>
+<dd>本部分显示与主机系统关联的存储库。您可以添加、启用、编辑或除去存储库。当启用存储库会允许主机对其进行访问时,添加存储库会将其与主机系统关联。如果您的系统为 Red Hat Enterprise Linux 或 Fedora,那么可添加 <filepath>yum</filepath> 存储库。如果您的系统为 Ubuntu 或 Debian,那么请添加 <filepath>deb</filepath> 存储库。<p>如果要处理 Yum 存储库,您可以添加 GPG 检查以验证此存储库中的软件包是否已损坏。选择一个存储库,然后选择<uicontrol>编辑</uicontrol>。选择<uicontrol>是</uicontrol>以启用 GPG 检查,然后输入存储库中 GPG 密钥文件的 URL。</p></dd>
+</dlentry><dlentry>
+<dt>调试报告</dt>
+<dd>本部分显示调试报告,其中包括名称和文件路径。您可以从选项中进行选择以生成新报告,或者对现有报告进行重命名、除去或下载。<p>调试报告将使用
+<cmdname>sosreport</cmdname> 命令生成。该报告可用于 Red
+Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>、Fedora 和 Ubuntu 分发版。该命令将生成包含配置和诊断信息的 .tar 文件,例如,正在运行的内核版本、已装入的模块以及系统和服务配置文件。该命令还会运行外部程序以收集更多信息并将此输出存储在生成的归档中。</p> </dd>
+</dlentry></dl></p>
+</csbody>
+<?tm 1392659967 1?>
+</cshelp>
+
+
+<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
+<!-- T9N_SRC_ID 232 -->
+<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/gingerbase/ui/pages/help/zh_TW/host.dita b/plugins/gingerbase/ui/pages/help/zh_TW/host.dita
new file mode 100644
index 0000000..a55aae4
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/help/zh_TW/host.dita
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Arbortext, Inc., 1988-2011, v.4002-->
+<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
+ "..\dtd\cshelp.dtd">
+
+
+<!--This DITA specialized document type is not supported by the Authoring Tools development team.
+For support please see:
+https://w3.opensource.ibm.com/projects/dita-cshelp/-->
+<cshelp id="kimhhost" xml:lang="zh-tw">
+<title>主機</title>
+<shortdesc>「<wintitle>主機</wintitle>」頁面會顯示主機系統的相關資訊,並容許您關閉、重新啟動以及連接到主機。</shortdesc>
+<csbody>
+<p>您可以針對主機執行下列動作:<ul>
+<li>選取<uicontrol>關閉</uicontrol>以關閉主機系統。</li>
+<li>選取<uicontrol>重新啟動</uicontrol>以重新啟動主機系統。</li>
+<li>選取<uicontrol>連接</uicontrol>以開啟與主機系統的 VNC 連線(如果尚未連線到主機系統)。</li>
+</ul></p>
+<p>按一下下列區段以顯示主機的相關資訊:<dl>
+<dlentry>
+<dt>基本資訊</dt>
+<dd>此區段會顯示主機作業系統發行套件、版本、程式碼名稱、處理器類型以及記憶體數量 (GB)。</dd>
+</dlentry><dlentry>
+<dt>系統統計資料</dt>
+<dd>此區段會顯示一些圖形,以顯示主機的 CPU、記憶體、磁碟 I/O 和網路 I/O 的統計資料。選取<uicontrol>離開此頁面之後收集資料</uicontrol>以在主機標籤從視線中消失之後繼續收集資料。</dd>
+</dlentry><dlentry>
+<dt>軟體更新</dt>
+<dd>此區段會顯示具有可用更新的所有套件的相關資訊,包括套件名稱、版本、架構和儲存庫。您可以透過選取<uicontrol>全部更新</uicontrol>來更新所有列出的套件。不能選取個別套件以進行更新。</dd>
+</dlentry><dlentry>
+<dt>儲存庫</dt>
+<dd>此區段會顯示與主機系統相關聯的儲存庫。您可以新增、啟用、編輯或移除儲存庫。新增儲存庫可使它與主機系統相關聯,而啟用儲存庫則容許主機存取儲存庫。如果您的系統是
+Red Hat Enterprise Linux 或 Fedora,則可以新增 <filepath>yum</filepath> 儲存庫。如果您的系統是
+Ubuntu 或 Debian,則可以新增 <filepath>deb</filepath> 儲存庫。<p>如果您正在使用
+yum 儲存庫,則可以新增 GPG 檢查以驗證此儲存庫中的某個套件是否未毀損。選取儲存庫,然後選取<uicontrol>編輯</uicontrol>。選取<uicontrol>是</uicontrol>以啟用
+GPG 檢查,然後輸入儲存庫的 GPG 金鑰檔的 URL。</p></dd>
+</dlentry><dlentry>
+<dt>除錯報告</dt>
+<dd>此區段顯示除錯報告,包括名稱和檔案路徑。您可以選取選項以產生新報告、或是重新命名、移除或下載現有報告。<p>除錯報告是使用
+<cmdname>sosreport</cmdname> 指令產生的。該指令可用於 Red
+Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>、Fedora
+及 Ubuntu 發行套件。該指令會產生 .tar 檔案,其包含配置與診斷資訊,例如執行中的核心版本、已載入模組以及系統和服務配置檔案。該指令還會執行外部程式來收集更多資訊並將此輸出儲存在產生的保存檔中。</p> </dd>
+</dlentry></dl></p>
+</csbody>
+<?tm 1392659967 1?>
+</cshelp>
+
+
+<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
+<!-- T9N_SRC_ID 232 -->
+<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/gingerbase/ui/pages/host.html.tmpl b/plugins/gingerbase/ui/pages/host.html.tmpl
new file mode 100644
index 0000000..d87debc
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/host.html.tmpl
@@ -0,0 +1,177 @@
+#*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2013-2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *#
+
+#unicode UTF-8
+#import gettext
+#from wok.cachebust import href
+#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
+#silent _ = t.gettext
+#silent _t = t.gettext
+<!DOCTYPE html>
+<html>
+<head>
+<link rel="stylesheet" href="plugins/kimchi/css/theme-default.min.css">
+<script src="plugins/kimchi/js/kimchi.min.js"></script>
+</head>
+<body>
+<div id="host-root-container">
+ <div class="toolbar">
+ <div class="tools">
+ </div>
+ </div>
+ <div id="host-content-container" class="empty-when-logged-off"></div>
+</div>
+
+<script id="host-tmpl" type="kimchi/template">
+ <div class="host-panel">
+ <div class="logo-container">
+ <div class="logo" style="background-image: url({logo});"></div>
+ </div>
+ <div id="host-info-container" class="info-container">
+ <h2 class="hostname">{hostname}</h2>
+ <div class="action-panel">
+ <button id="host-button-shutdown" class="btn-normal-1 stop">
+ <div class="button-icon action-icon-stop"></div>
+ $_("Shut down")
+ </button>
+ <button id="host-button-restart" class="btn-normal-1 restart">
+ <div class="button-icon action-icon-restart"></div>
+ $_("Restart")
+ </button>
+ <button class="btn-normal-1 connect" disabled="disabled">
+ <div class="button-icon action-icon-connect"></div>
+ $_("Connect")
+ </button>
+ </div>
+ <div class="host-section">
+ <h3 class="section-header"
+ aria-expanded="false"
+ aria-controls="content-sys-info">
+ $_("Basic Information")
+ </h3>
+ <div id="content-sys-info" class="section-content">
+ <div class="section-row">
+ <div class="section-label">$_("OS Distro")</div>
+ <div class="section-value">{os_distro}</div>
+ </div>
+ <div class="section-row">
+ <div class="section-label">$_("OS Version")</div>
+ <div class="section-value">{os_version}</div>
+ </div>
+ <div class="section-row">
+ <div class="section-label">$_("OS Code Name")</div>
+ <div class="section-value">{os_codename}</div>
+ </div>
+ <div class="section-row">
+ <div class="section-label">$_("Processor")</div>
+ <div class="section-value">{cpu_model}</div>
+ </div>
+ <div class="section-row">
+ <div class="section-label">$_("CPU(s)")</div>
+ <div class="section-value">{cpus}</div>
+ </div>
+ <div class="section-row">
+ <div class="section-label">$_("Memory")</div>
+ <div class="section-value">{memory}</div>
+ </div>
+ </div>
+ </div>
+ <div class="host-section">
+ <h3 class="section-header"
+ aria-controls="content-sys-statistics">
+ $_("System Statistics")
+ </h3>
+ <div id="content-sys-statistics" class="section-content">
+ <div class="section-row">
+ <div class="section-label">$_("CPU")</div>
+ <div class="section-value">
+ <div id="container-chart-cpu" class="inline-block"></div>
+ </div>
+ </div>
+ <div class="section-row">
+ <div class="section-label">$_("Memory")</div>
+ <div class="section-value">
+ <div id="container-chart-memory" class="inline-block"></div>
+ </div>
+ </div>
+ <div class="section-row">
+ <div class="section-label">$_("Disk I/O")</div>
+ <div class="section-value">
+ <div id="container-chart-disk-io" class="inline-block"></div>
+ </div>
+ </div>
+ <div class="section-row">
+ <div class="section-label">$_("Network I/O")</div>
+ <div class="section-value">
+ <div id="container-chart-network-io" class="inline-block"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="software-update-section" class="host-section hidden">
+ <h3 class="section-header"
+ aria-controls="content-software-update">
+ $_("Software Updates")
+ </h3>
+ <div id="content-software-update" class="section-content">
+ <div class="section-row">
+ <div class="section-value">
+ <div id="software-updates-grid-container"></div>
+ <div id="software-updates-progress-container" class="hidden">
+ <label for="software-updates-progress-textarea">$_("Update Progress")</label>
+ <textarea id="software-updates-progress-textarea" readonly></textarea>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="repositories-section" class="host-section hidden">
+ <h3 class="section-header"
+ aria-controls="content-repositories">
+ $_("Repositories")
+ </h3>
+ <div id="content-repositories" class="section-content">
+ <div class="section-row">
+ <div class="section-value">
+ <div id="repositories-grid-container"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="debug-report-section" class="host-section hidden">
+ <h3 class="section-header"
+ aria-controls="content-sys-reports">
+ $_("Debug Reports")
+ </h3>
+ <div id="content-sys-reports" class="section-content">
+ <div class="section-row">
+ <div class="section-value">
+ <div id="available-reports-grid-container"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</script>
+
+<script type="text/javascript">
+ kimchi.host_main();
+</script>
+</body>
+</html>
diff --git a/plugins/gingerbase/ui/pages/report-add.html.tmpl b/plugins/gingerbase/ui/pages/report-add.html.tmpl
new file mode 100644
index 0000000..25bf0a9
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/report-add.html.tmpl
@@ -0,0 +1,56 @@
+#*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2013-2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *#
+#unicode UTF-8
+#import gettext
+#from wok.cachebust import href
+#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
+#silent _ = t.gettext
+#silent _t = t.gettext
+<!DOCTYPE html>
+<div id="report-add-window" class="window">
+ <header>
+ <h1 class="title h1 grey">$_("Generate a New Debug Report")</h1>
+ </header>
+ <div class="content">
+ <form id="form-report-add">
+ <section class="form-section">
+ <h2>
+ <label for="report-name-textbox">$_("Report Name")</label>
+ </h2>
+ <div class="field">
+ <input type="text" class="text" id="report-name-textbox" name="name" />
+ <span class="icon-info-circled light-grey c1"></span>
+ <span class="info-add-debug-report">
+ $_("The name used to identify the report. If omitted, a name will be chosen based on current time. Name can contain: letters, digits, underscore (\"_\") and hyphen (\"-\").")
+ </span>
+ </div>
+ </section>
+ </form>
+ </div>
+ <footer>
+ <div class="btn-group">
+ <button id="button-report-add" class="btn-normal"><span class="text">$_("Generate")</span></button>
+ <button id="button-report-cancel" class="btn-normal close" type="button">
+ <span calss="text">$_("Cancel")</span>
+ </button>
+ </div>
+ </footer>
+</div>
+<script>
+ kimchi.report_add_main();
+</script>
diff --git a/plugins/gingerbase/ui/pages/report-rename.html.tmpl b/plugins/gingerbase/ui/pages/report-rename.html.tmpl
new file mode 100644
index 0000000..90a0a80
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/report-rename.html.tmpl
@@ -0,0 +1,56 @@
+#*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2014-2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *#
+#unicode UTF-8
+#import gettext
+#from wok.cachebust import href
+#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
+#silent _ = t.gettext
+#silent _t = t.gettext
+<!DOCTYPE html>
+<div id="report-rename-window" class="window">
+ <header>
+ <h1 class="title h1 grey">$_("Rename a Debug Report")</h1>
+ </header>
+ <div class="content">
+ <form id="form-report-rename">
+ <section class="form-section">
+ <h2>
+ <label for="report-name-textbox">$_("Report Name")</label>
+ </h2>
+ <div class="field">
+ <input type="text" class="text" id="report-name-textbox" name="name" />
+ <span class="icon-info-circled light-grey c1"></span>
+ <span class="info-debug-report-rename">
+ $_("The name used to identify the report. Name can contain: letters, digits and hyphen (\"-\").")
+ </span>
+ </div>
+ </section>
+ </form>
+ </div>
+ <footer>
+ <div class="btn-group">
+ <button id="button-report-rename" class="btn-normal"><span class="text">$_("Submit")</span></button>
+ <button id-"button-report-rename-cancel" class="btn-normal close" type="button">
+ <span class="text">$_("Cancel")</span>
+ </button>
+ </div>
+ </footer>
+</div>
+<script>
+ kimchi.report_rename_main();
+</script>
diff --git a/plugins/gingerbase/ui/pages/repository-add.html.tmpl b/plugins/gingerbase/ui/pages/repository-add.html.tmpl
new file mode 100644
index 0000000..950252a
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/repository-add.html.tmpl
@@ -0,0 +1,113 @@
+#*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2014-2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *#
+#unicode UTF-8
+#import gettext
+#from wok.cachebust import href
+#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
+#silent _ = t.gettext
+#silent _t = t.gettext
+<div id="repository-add-window" class="window">
+ <form id="form-repository-add">
+ <header class="window-header">
+ <h1 class="title h1 grey">$_("Add a Repository")</h1>
+ </header>
+ <section>
+ <div class="content">
+ <div class="form-section yum">
+ <h2>$_("Identifier")</h2>
+ <div class="field">
+ <div class="textbox-wrapper">
+ <input type="text" class="text" name="repo_id" />
+ </div>
+ <div class="icon-info-circled light-grey c1 help-inline"></div>
+ <p class="text-help help-inline">
+ $_("Single word, unique identifier for the repository.")
+ </p>
+ </div>
+ </div>
+ <section class="form-section yum">
+ <h2>$_("Name")</h2>
+ <div class="field">
+ <div class="textbox-wrapper">
+ <input type="text" class="text" name="config[repo_name]" />
+ </div>
+ <div class="icon-info-circled light-grey c1 help-inline"></div>
+ <p class="text-help help-inline">
+ $_("Textual name for the repository.")
+ </p>
+ </div>
+ </section>
+ <section class="form-section">
+ <h2>$_("URL")<span class="required" role="presentation" title='$_("Required Field")'>*</span></h2>
+ <div class="field">
+ <div class="textbox-wrapper">
+ <input type="text" class="text required" name="baseurl" />
+ </div>
+ <div class="icon-info-circled light-grey c1 help-inline"></div>
+ <p class="text-help help-inline">
+ $_("URL to the repository. Supported protocols are http, ftp, and file.")
+ </p>
+ </div>
+ <div class="field yum">
+ <p class="yum">
+ <input type="checkbox" name="isMirror" value="true" id="isMirror" />
+ <label id="isMirrorLabel" for="isMirror">$_("Repository is a mirror")</label>
+ </p>
+ </div>
+ </section>
+ <section class="form-section repository-dist deb">
+ <h2>$_("Distribution")</h2>
+ <div class="field">
+ <div class="textbox-wrapper">
+ <input type="text" class="text" name="config[dist]" />
+ </div>
+ <div class="icon-info-circled light-grey c1 help-inline"></div>
+ <p class="text-help help-inline">
+ $_("Distribution of the DEB repository.")
+ </p>
+ </div>
+ </section>
+ <section class="form-section repository-comps deb">
+ <h2>$_("Components")</h2>
+ <div class="field">
+ <div class="textbox-wrapper">
+ <input type="text" class="text" name="config[comps]" />
+ </div>
+ <div class="icon-info-circled light-grey c1 help-inline"></div>
+ <p class="text-help help-inline">
+ $_("List of components in DEB repository.")
+ </p>
+ </div>
+ </section>
+ </div>
+ </section>
+ <footer>
+ <div class="btn-group">
+ <button type="submit" id="button-repository-add" class="btn-normal" disabled="disabled">
+ <span class="text">$_("Add")</span>
+ </button>
+ <button type="button" id="button-repository-close" class="btn-normal close">
+ <span class="text">$("Cancel")</span>
+ </button>
+ </div>
+ </footer>
+ </form>
+</div>
+<script>
+ kimchi.repository_add_main();
+</script>
diff --git a/plugins/gingerbase/ui/pages/repository-edit.html.tmpl b/plugins/gingerbase/ui/pages/repository-edit.html.tmpl
new file mode 100644
index 0000000..e5a3cfb
--- /dev/null
+++ b/plugins/gingerbase/ui/pages/repository-edit.html.tmpl
@@ -0,0 +1,117 @@
+#*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2014-2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *#
+#unicode UTF-8
+#import gettext
+#from wok.cachebust import href
+#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
+#silent _ = t.gettext
+#silent _t = t.gettext
+
+<div id="repository-edit-window" class="window">
+ <form id="form-repository-edit">
+ <header>
+ <h1 class="title h1 grey">$_("Edit Repository")</h1>
+ </header>
+ <div class="content">
+ <section id="form-repository-edit">
+ <fieldset class="repository-edit-fieldset">
+ <div class="repository-id yum">
+ <div class="repository-edit-wrapper-label">
+ <label for="repository-edit-id-textbox">$_("ID")</label>
+ </div>
+ <div class="repository-edit-wrapper-controls">
+ <input id="repository-edit-id-textbox" name="repo_id" type="text" disabled="disabled" readonly="readonly"/>
+ </div>
+ </div>
+ <div class="repository-name yum">
+ <div class="repository-edit-wrapper-label">
+ <label for="repository-edit-name-textbox">$_("Name")</label>
+ </div>
+ <div class="repository-edit-wrapper-controls">
+ <input id="repository-edit-name-textbox" class="yum" name="config[repo_name]" type="text" />
+ </div>
+ </div>
+ <div class="repository-url">
+ <div class="repository-edit-wrapper-label">
+ <label for="repository-edit-baseurl-textbox">$_("URL")</label>
+ </div>
+ <div class="repository-edit-wrapper-controls">
+ <input id="repository-edit-baseurl-textbox" name="baseurl" type="text" />
+ </div>
+ </div>
+ <div class="repository-dist deb">
+ <div class="repository-edit-wrapper-label">
+ <label for="repository-edit-urlargs-textbox">$_("Distribution")</label>
+ </div>
+ <div class="repository-edit-wrapper-controls">
+ <input id="repository-edit-urlargs-textbox" class="deb" name="config[dist]" type="text" />
+ </div>
+ </div>
+ <div class="repository-mirrorlist yum">
+ <div class="repository-edit-wrapper-label">
+ <label for="repository-edit-urlargs-textbox">$_("Mirror List URL")</label>
+ </div>
+ <div class="repository-edit-wrapper-controls">
+ <input id="repository-edit-urlargs-textbox" class="yum" name="config[mirrorlist]" type="text" />
+ </div>
+ </div>
+ <div class="repository-comps deb">
+ <div class="repository-edit-wrapper-label">
+ <label for="repository-edit-urlargs-textbox">$_("Components")</label>
+ </div>
+ <div class="repository-edit-wrapper-controls">
+ <input id="repository-edit-urlargs-textbox" class="deb" name="config[comps]" type="text" />
+ </div>
+ </div>
+ <div class="repository-gpgkey yum">
+ <div class="repository-edit-wrapper-label">
+ <label for="repository-edit-gpgkey-textbox">$_("GPG Key")</label>
+ </div>
+ <div class="repository-edit-wrapper-controls">
+ <input id="repository-edit-gpgkey-textbox" class="yum" name="config[gpgkey]" type="text" />
+ </div>
+ </div>
+ <div class="repository-gpgcheck yum">
+ <div class="repository-edit-wrapper-label">
+ <label>$_("GPG Check")</label>
+ </div>
+ <div class="repository-edit-wrapper-controls">
+ <input id="repository-edit-gpgcheck-radio-true" class="yum" name="config[gpgcheck]" type="radio" value="true" />
+ <label for="repository-edit-gpgcheck-radio-true">$_("Yes")</label>
+ <input id="repository-edit-gpgcheck-radio-false" class="yum" name="config[gpgcheck]" type="radio" value="false" />
+ <label for="repository-edit-gpgcheck-radio-false">$_("No")</label>
+ </div>
+ </div>
+ </fieldset>
+ </section>
+ </div>
+ <footer>
+ <div class="btn-group">
+ <button type="submit" id="repository-edit-button-save" class="btn-normal">
+ <span class="text">$_("Save")</span>
+ </button>
+ <button type="button" id="repository-edit-button-cancel" class="close btn-normal">
+ <span class="text">$_("Cancel")</span>
+ </button>
+ </div>
+ </footer>
+ </form>
+</div>
+<script type="text/javascript">
+ kimchi.repository_edit_main();
+</script>
diff --git a/plugins/gingerbase/yumparser.py b/plugins/gingerbase/yumparser.py
new file mode 100644
index 0000000..74f9fa0
--- /dev/null
+++ b/plugins/gingerbase/yumparser.py
@@ -0,0 +1,283 @@
+#
+# Project Kimchi
+#
+# Copyright IBM, Corp. 2015
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+import subprocess
+from os import listdir
+from os.path import isfile, splitext
+
+
+class YumRepoObject(object):
+
+ def __init__(self, repo_id, repofile):
+ self.repo_id = repo_id
+ self.name = None
+ self.baseurl = None
+ self.enabled = True
+ self.gpgcheck = True
+ self.gpgkey = None
+ self.metalink = None
+ self.mirrorlist = None
+ self.repofile = repofile
+ self.string_attrs = ['baseurl', 'gpgkey', 'name',
+ 'metalink', 'mirrorlist']
+ self.boolean_attrs = ['enabled', 'gpgcheck']
+
+ def set_attribute(self, key, strvalue):
+ if key in self.string_attrs:
+ setattr(self, key, strvalue)
+ elif key in self.boolean_attrs:
+ setattr(self, key, (strvalue == '1'))
+
+ def get_attribute_str(self, key):
+ if key not in self.get_attributes():
+ return None
+
+ if key in self.boolean_attrs:
+ str_value = '1' if getattr(self, key) is True else '0'
+ else:
+ str_value = getattr(self, key)
+
+ if str_value is None:
+ return None
+
+ return key + '=' + str_value
+
+ def get_attributes(self):
+ return self.string_attrs + self.boolean_attrs
+
+ def enable(self):
+ self.enabled = True
+
+ def disable(self):
+ self.enabled = False
+
+ def __str__(self):
+ str_obj = '[' + self.repo_id + ']' + '\n'
+ for key in self.get_attributes():
+ if self.get_attribute_str(key) is not None:
+ str_obj += self.get_attribute_str(key) + '\n'
+ return str_obj
+
+
+def get_repo_files():
+ def _is_repository_file(f):
+ _, f_extension = splitext(f)
+ return isfile(f) and (f_extension == '.repo')
+
+ YUM_REPO_DIR = '/etc/yum.repos.d'
+ return [YUM_REPO_DIR+'/'+f for f in listdir(YUM_REPO_DIR)
+ if _is_repository_file(YUM_REPO_DIR+'/'+f)]
+
+
+def _ignore_line_repo_file(line):
+ return line.startswith("#") or '=' not in line
+
+
+def _get_repos_from_file(repo_file):
+ repos_from_file = {}
+ current_repo = None
+ current_repo_id = None
+ with open(repo_file) as f:
+ for line in f.readlines():
+ line = line.strip()
+ if line.startswith("["):
+ if current_repo is not None:
+ repos_from_file[current_repo_id] = current_repo
+ current_repo_id = line.strip('[]')
+ current_repo = YumRepoObject(current_repo_id, repo_file)
+ continue
+ if _ignore_line_repo_file(line):
+ continue
+ key, value = line.split('=', 1)
+ key = key.strip()
+ value = value.strip()
+ current_repo.set_attribute(key, value)
+
+ # add the last repo from file.
+ if current_repo is not None:
+ repos_from_file[current_repo_id] = current_repo
+
+ return repos_from_file
+
+
+def get_yum_repositories():
+ repo_files = get_repo_files()
+ repos = {}
+ for yum_repo in repo_files:
+ repos.update(_get_repos_from_file(yum_repo))
+
+ return repos
+
+
+def _retrieve_repo_line_index(data, repo):
+ repo_entry = '[' + repo.repo_id + ']\n'
+ try:
+ repo_index = data.index(repo_entry)
+ except:
+ return None
+ return repo_index
+
+
+def _update_repo_file_data(data, repo, repo_index):
+ remaining_repo_attrs = repo.get_attributes()
+
+ for i in range(repo_index + 1, len(data)):
+ line = data[i].strip()
+ if line.startswith('['):
+ break
+ if _ignore_line_repo_file(line):
+ continue
+ key, _ = line.split('=', 1)
+ key = key.strip()
+ attr_str = repo.get_attribute_str(key)
+ if attr_str is None:
+ continue
+ remaining_repo_attrs.remove(key)
+ data[i] = attr_str + '\n'
+
+ for attr in remaining_repo_attrs:
+ attr_str = repo.get_attribute_str(attr)
+ if attr_str is None:
+ continue
+ data.insert(repo_index+1, attr_str + '\n')
+
+ return data
+
+
+def write_repo_to_file(repo):
+ with open(repo.repofile) as f:
+ data = f.readlines()
+
+ repo_index = _retrieve_repo_line_index(data, repo)
+ if repo_index is None:
+ return
+
+ data = _update_repo_file_data(data, repo, repo_index)
+
+ with open(repo.repofile, 'w') as f:
+ f.writelines(data)
+
+
+def _get_last_line_repo(data, repo_index):
+ stop_delete_index = None
+ for i in range(repo_index+1, len(data)):
+ line = data[i].strip()
+ if line.startswith('['):
+ stop_delete_index = i - 1
+ break
+ if stop_delete_index is None:
+ stop_delete_index = len(data) - 1
+
+ return stop_delete_index
+
+
+def _remove_repo_file_data(data, repo_index):
+ last_line_repo = _get_last_line_repo(data, repo_index)
+ for i in range(last_line_repo, repo_index - 1, -1):
+ data.pop(i)
+ return data
+
+
+def delete_repo_from_file(repo):
+ with open(repo.repofile) as f:
+ data = f.readlines()
+
+ repo_index = _retrieve_repo_line_index(data, repo)
+ if repo_index is None:
+ return
+
+ data = _remove_repo_file_data(data, repo_index)
+
+ with open(repo.repofile, 'w') as f:
+ f.writelines(data)
+
+
+class YumUpdatePackageObject(object):
+
+ def __init__(self, name, arch, version, repo):
+ self.name = name
+ self.arch = arch
+ self.version = version
+ self.ui_from_repo = repo
+
+
+def _include_line_checkupdate_output(line):
+ tokens = line.split()
+
+ if len(tokens) != 3:
+ return False
+
+ if '.' not in tokens[0]:
+ return False
+
+ return True
+
+
+def _ignore_obsoleting_packages_in(output):
+ out = ''
+ for l in output.split('\n'):
+ if 'Obsoleting ' in l:
+ break
+ out += l + '\n'
+ return out
+
+
+def _filter_lines_checkupdate_output(output):
+ if output is None:
+ return []
+
+ output = _ignore_obsoleting_packages_in(output)
+
+ out = [l for l in output.split('\n')
+ if _include_line_checkupdate_output(l)]
+ return out
+
+
+def _get_yum_checkupdate_output():
+ cmd = ['yum', 'check-update', '-d0']
+ yum_update_cmd = subprocess.Popen(cmd,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+ out, error = yum_update_cmd.communicate()
+ return_code = yum_update_cmd.returncode
+ if return_code == 1:
+ return None
+
+ return out
+
+
+def get_yum_packages_list_update(checkupdate_output=None):
+ if checkupdate_output is None:
+ checkupdate_output = _get_yum_checkupdate_output()
+
+ filtered_output = _filter_lines_checkupdate_output(checkupdate_output)
+
+ packages = []
+ for line in filtered_output:
+ line = line.split()
+ index = 0
+ name_arch = line[index]
+ index += 1
+ version = line[index]
+ index += 1
+ repo = line[index]
+ name, arch = name_arch.rsplit('.', 1)
+ packages.append(YumUpdatePackageObject(name, arch, version, repo))
+
+ return packages
diff --git a/plugins/kimchi/API.json b/plugins/kimchi/API.json
index f1f58ff..e75b35f 100644
--- a/plugins/kimchi/API.json
+++ b/plugins/kimchi/API.json
@@ -59,30 +59,6 @@
}
},
"properties": {
- "debugreports_create": {
- "type": "object",
- "error": "KCHDR0006E",
- "properties": {
- "name": {
- "description": "The name for the debug report file.",
- "type": "string",
- "pattern": "^[_A-Za-z0-9-]*$",
- "error": "KCHDR0007E"
- }
- }
- },
- "debugreport_update": {
- "type": "object",
- "properties": {
- "name": {
- "description": "New name of debug report",
- "type": "string",
- "pattern": "^[_A-Za-z0-9-]*$",
- "error": "KCHDR0007E"
- }
- },
- "additionalProperties": false
- },
"storagepools_create": {
"type": "object",
"error": "KCHPOOL0026E",
@@ -684,116 +660,6 @@
"additionalProperties": false,
"error": "KCHAPI0001E"
},
- "repositories_create": {
- "type": "object",
- "properties": {
- "repo_id": {
- "description": "Repository ID used for YUM repository.",
- "type": "string",
- "error": "KCHREPOS0001E"
- },
- "baseurl": {
- "description": "URL to the directory where the repodata directory of a repository is located. Can be an http://, ftp:// or file:// URL.",
- "type": "string",
- "error": "KCHREPOS0002E"
- },
- "config": {
- "description": "Dictionary containing repository configuration",
- "type": "object",
- "error": "KCHREPOS0003E",
- "properties": {
- "dist": {
- "description": "Distribution to DEB repository",
- "type": "string",
- "error": "KCHREPOS0004E"
- },
- "comps": {
- "description": "List of components to DEB repository",
- "type": "array",
- "error": "KCHREPOS0005E",
- "uniqueItems": true,
- "items": {
- "description": "Component name",
- "type": "string",
- "error": "KCHREPOS0006E"
- }
- },
- "repo_name": {
- "description": "YUM repository name",
- "type": "string",
- "error": "KCHREPOS0023E"
- },
- "mirrorlist": {
- "description": "URL to a file containing a list of baseurls",
- "type": "string",
- "error": "KCHREPOS0007E"
- },
- "metalink": {
- "description": "URL to a metalink file for the repomd.xml",
- "type": "string",
- "error": "KCHREPOS0029E"
- }
- }
- }
- },
- "additionalProperties": false,
- "error": "KCHAPI0001E"
- },
- "repository_update": {
- "type": "object",
- "properties": {
- "baseurl": {
- "description": "URL to the directory where the repodata directory of a repository is located. Can be an http://, ftp:// or file:// URL.",
- "type": "string",
- "error": "KCHREPOS0002E"
- },
- "config": {
- "description": "Dictionary containing repository configuration",
- "type": "object",
- "error": "KCHREPOS0003E",
- "properties": {
- "dist": {
- "description": "Distribution to DEB repository",
- "type": "string",
- "error": "KCHREPOS0004E"
- },
- "comps": {
- "description": "List of components to DEB repository",
- "type": "array",
- "error": "KCHREPOS0005E",
- "uniqueItems": true,
- "items": {
- "description": "Component name",
- "type": "string",
- "error": "KCHREPOS0006E"
- }
- },
- "repo_name": {
- "description": "Human-readable string describing the YUM repository.",
- "type": "string",
- "error": "KCHREPOS0008E"
- },
- "mirrorlist": {
- "description": "URL to a file containing a list of baseurls for YUM repository",
- "type": "string",
- "error": "KCHREPOS0007E"
- },
- "gpgcheck": {
- "description": "Indicates if a GPG signature check on the packages gotten from repository should be performed.",
- "type": "boolean",
- "error": "KCHREPOS0009E"
- },
- "gpgkey": {
- "description": "URL pointing to the ASCII-armored GPG key file for the repository.",
- "type": "string",
- "error": "KCHREPOS0010E"
- }
- }
- }
- },
- "additionalProperties": false,
- "error": "KCHAPI0001E"
- },
"devices_get_list": {
"type": "object",
"properties": {
diff --git a/plugins/kimchi/Makefile.am b/plugins/kimchi/Makefile.am
index faef341..e4a44f7 100644
--- a/plugins/kimchi/Makefile.am
+++ b/plugins/kimchi/Makefile.am
@@ -98,7 +98,6 @@ config.py: config.py.in Makefile
install-deb: install
cp -R $(top_srcdir)/contrib/DEBIAN $(DESTDIR)/
- mkdir -p $(DESTDIR)/var/lib/kimchi/debugreports
mkdir -p $(DESTDIR)/var/lib/kimchi/screenshots
mkdir -p $(DESTDIR)/var/lib/kimchi/isos
@@ -138,7 +137,7 @@ ChangeLog:
install-data-local:
$(MKDIR_P) $(DESTDIR)$(kimchidir)
$(INSTALL_DATA) API.json $(DESTDIR)$(kimchidir)/API.json
- mkdir -p $(DESTDIR)/var/lib/kimchi/{debugreports,screenshots,isos}
+ mkdir -p $(DESTDIR)/var/lib/kimchi/{screenshots,isos}
uninstall-local:
$(RM) $(DESTDIR)$(kimchidir)/API.json
diff --git a/plugins/kimchi/config.py.in b/plugins/kimchi/config.py.in
index 80b72bd..5738c4d 100644
--- a/plugins/kimchi/config.py.in
+++ b/plugins/kimchi/config.py.in
@@ -38,10 +38,6 @@ def get_distros_store():
return os.path.join(PluginPaths('kimchi').conf_dir, 'distros.d')
-def get_debugreports_path():
- return os.path.join(PluginPaths('kimchi').state_dir, 'debugreports')
-
-
def get_screenshot_path():
return os.path.join(PluginPaths('kimchi').state_dir, 'screenshots')
diff --git a/plugins/kimchi/control/debugreports.py b/plugins/kimchi/control/debugreports.py
deleted file mode 100644
index b5a3072..0000000
--- a/plugins/kimchi/control/debugreports.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#
-# Project Kimchi
-#
-# Copyright IBM, Corp. 2013-2015
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-from wok.control.base import AsyncCollection, Resource
-from wok.control.utils import internal_redirect
-from wok.control.utils import UrlSubNode
-
-
-@UrlSubNode('debugreports', True)
-class DebugReports(AsyncCollection):
- def __init__(self, model):
- super(DebugReports, self).__init__(model)
- self.resource = DebugReport
- self.role_key = 'host'
- self.admin_methods = ['GET', 'POST']
-
- def _get_resources(self, filter_params):
- res_list = super(DebugReports, self)._get_resources(filter_params)
- return sorted(res_list, key=lambda x: x.data['time'], reverse=True)
-
-
-class DebugReport(Resource):
- def __init__(self, model, ident):
- super(DebugReport, self).__init__(model, ident)
- self.role_key = 'host'
- self.admin_methods = ['GET', 'PUT', 'POST']
- self.uri_fmt = '/debugreports/%s'
- self.content = DebugReportContent(model, ident)
-
- @property
- def data(self):
- return {'name': self.ident,
- 'uri': self.info['uri'],
- 'time': self.info['ctime']}
-
-
-class DebugReportContent(Resource):
- def __init__(self, model, ident):
- super(DebugReportContent, self).__init__(model, ident)
- self.role_key = 'host'
- self.admin_methods = ['GET']
-
- def get(self):
- self.lookup()
- raise internal_redirect(self.info['uri'])
diff --git a/plugins/kimchi/control/host.py b/plugins/kimchi/control/host.py
index 0a40f1b..c71c47b 100644
--- a/plugins/kimchi/control/host.py
+++ b/plugins/kimchi/control/host.py
@@ -19,7 +19,6 @@
from wok.control.base import Collection, Resource, SimpleCollection
from wok.control.utils import UrlSubNode
-from wok.exception import NotFoundError
from cpuinfo import CPUInfo
@@ -31,14 +30,7 @@ class Host(Resource):
self.role_key = 'host'
self.admin_methods = ['GET', 'POST']
self.uri_fmt = '/host/%s'
- self.reboot = self.generate_action_handler('reboot')
- self.shutdown = self.generate_action_handler('shutdown')
- self.stats = HostStats(self.model)
- self.partitions = Partitions(self.model)
self.devices = Devices(self.model)
- self.packagesupdate = PackagesUpdate(self.model)
- self.repositories = Repositories(self.model)
- self.swupdate = self.generate_action_handler_task('swupdate')
self.cpuinfo = CPUInfo(self.model)
@property
@@ -46,54 +38,6 @@ class Host(Resource):
return self.info
-class HostStats(Resource):
- def __init__(self, model, id=None):
- super(HostStats, self).__init__(model, id)
- self.role_key = 'host'
- self.admin_methods = ['GET']
- self.history = HostStatsHistory(self.model)
-
- @property
- def data(self):
- return self.info
-
-
-class HostStatsHistory(Resource):
- @property
- def data(self):
- return self.info
-
-
-class Partitions(Collection):
- def __init__(self, model):
- super(Partitions, self).__init__(model)
- self.role_key = 'storage'
- self.admin_methods = ['GET']
- self.resource = Partition
-
- # Defining get_resources in order to return list of partitions in UI
- # sorted by their path
- def _get_resources(self, flag_filter):
- res_list = super(Partitions, self)._get_resources(flag_filter)
- res_list = filter(lambda x: x.info['available'], res_list)
- res_list.sort(key=lambda x: x.info['path'])
- return res_list
-
-
-class Partition(Resource):
- def __init__(self, model, id):
- self.role_key = 'storage'
- self.admin_methods = ['GET']
- super(Partition, self).__init__(model, id)
-
- @property
- def data(self):
- if not self.info['available']:
- raise NotFoundError("KCHPART0001E", {'name': self.info['name']})
-
- return self.info
-
-
class Devices(Collection):
def __init__(self, model):
super(Devices, self).__init__(model)
@@ -115,43 +59,3 @@ class Device(Resource):
def data(self):
return self.info
-
-class PackagesUpdate(Collection):
- def __init__(self, model):
- super(PackagesUpdate, self).__init__(model)
- self.role_key = 'host'
- self.admin_methods = ['GET']
- self.resource = PackageUpdate
-
-
-class PackageUpdate(Resource):
- def __init__(self, model, id=None):
- super(PackageUpdate, self).__init__(model, id)
- self.role_key = 'host'
- self.admin_methods = ['GET']
-
- @property
- def data(self):
- return self.info
-
-
-class Repositories(Collection):
- def __init__(self, model):
- super(Repositories, self).__init__(model)
- self.role_key = 'host'
- self.admin_methods = ['GET', 'POST']
- self.resource = Repository
-
-
-class Repository(Resource):
- def __init__(self, model, id):
- super(Repository, self).__init__(model, id)
- self.role_key = 'host'
- self.admin_methods = ['GET', 'PUT', 'POST', 'DELETE']
- self.uri_fmt = "/host/repositories/%s"
- self.enable = self.generate_action_handler('enable')
- self.disable = self.generate_action_handler('disable')
-
- @property
- def data(self):
- return self.info
diff --git a/plugins/kimchi/disks.py b/plugins/kimchi/disks.py
deleted file mode 100644
index eb40e3a..0000000
--- a/plugins/kimchi/disks.py
+++ /dev/null
@@ -1,196 +0,0 @@
-#
-# Project Kimchi
-#
-# Copyright IBM, Corp. 2013-2015
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-import os.path
-import re
-import subprocess
-from parted import Device as PDevice
-from parted import Disk as PDisk
-
-from wok.exception import OperationFailed
-from wok.utils import wok_log
-
-
-def _get_dev_node_path(maj_min):
- """ Returns device node path given the device number 'major:min' """
-
- dm_name = "/sys/dev/block/%s/dm/name" % maj_min
- if os.path.exists(dm_name):
- with open(dm_name) as dm_f:
- content = dm_f.read().rstrip('\n')
- return "/dev/mapper/" + content
-
- uevent = "/sys/dev/block/%s/uevent" % maj_min
- with open(uevent) as ueventf:
- content = ueventf.read()
-
- data = dict(re.findall(r'(\S+)=(".*?"|\S+)', content.replace("\n", " ")))
-
- return "/dev/%s" % data["DEVNAME"]
-
-
-def _get_lsblk_devs(keys, devs=[]):
- lsblk = subprocess.Popen(
- ["lsblk", "-Pbo"] + [','.join(keys)] + devs,
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- out, err = lsblk.communicate()
- if lsblk.returncode != 0:
- raise OperationFailed("KCHDISKS0001E", {'err': err})
-
- return _parse_lsblk_output(out, keys)
-
-
-def _get_dev_major_min(name):
- maj_min = None
-
- keys = ["NAME", "MAJ:MIN"]
- dev_list = _get_lsblk_devs(keys)
-
- for dev in dev_list:
- if dev['name'].split()[0] == name:
- maj_min = dev['maj:min']
- break
- else:
- raise OperationFailed("KCHDISKS0002E", {'device': name})
-
- return maj_min
-
-
-def _is_dev_leaf(devNodePath):
- try:
- # By default, lsblk prints a device information followed by children
- # device information
- childrenCount = len(
- _get_lsblk_devs(["NAME"], [devNodePath])) - 1
- except OperationFailed as e:
- # lsblk is known to fail on multipath devices
- # Assume these devices contain children
- wok_log.error(
- "Error getting device info for %s: %s", devNodePath, e)
- return False
-
- return childrenCount == 0
-
-
-def _is_dev_extended_partition(devType, devNodePath):
- if devType != 'part':
- return False
- diskPath = devNodePath.rstrip('0123456789')
- device = PDevice(diskPath)
- try:
- extended_part = PDisk(device).getExtendedPartition()
- except NotImplementedError as e:
- wok_log.warning(
- "Error getting extended partition info for dev %s type %s: %s",
- devNodePath, devType, e.message)
- # Treate disk with unsupported partiton table as if it does not
- # contain extended partitions.
- return False
- if extended_part and extended_part.path == devNodePath:
- return True
- return False
-
-
-def _parse_lsblk_output(output, keys):
- # output is on format key="value",
- # where key can be NAME, TYPE, FSTYPE, SIZE, MOUNTPOINT, etc
- lines = output.rstrip("\n").split("\n")
- r = []
- for line in lines:
- d = {}
- for key in keys:
- expression = r"%s=\".*?\"" % key
- match = re.search(expression, line)
- field = match.group()
- k, v = field.split('=', 1)
- d[k.lower()] = v[1:-1]
- r.append(d)
- return r
-
-
-def _get_vgname(devNodePath):
- """ Return volume group name of a physical volume. If the device node path
- is not a physical volume, return empty string. """
- pvs = subprocess.Popen(
- ["pvs", "--unbuffered", "--nameprefixes", "--noheadings",
- "-o", "vg_name", devNodePath],
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- out, err = pvs.communicate()
- if pvs.returncode != 0:
- return ""
-
- return re.findall(r"LVM2_VG_NAME='([^\']*)'", out)[0]
-
-
-def _is_available(name, devtype, fstype, mountpoint, majmin):
- devNodePath = _get_dev_node_path(majmin)
- # Only list unmounted and unformated and leaf and (partition or disk)
- # leaf means a partition, a disk has no partition, or a disk not held
- # by any multipath device. Physical volume belongs to no volume group
- # is also listed. Extended partitions should not be listed.
- if (devtype in ['part', 'disk', 'mpath'] and
- fstype in ['', 'LVM2_member'] and
- mountpoint == "" and
- _get_vgname(devNodePath) == "" and
- _is_dev_leaf(devNodePath) and
- not _is_dev_extended_partition(devtype, devNodePath)):
- return True
- return False
-
-
-def get_partitions_names(check=False):
- names = set()
- keys = ["NAME", "TYPE", "FSTYPE", "MOUNTPOINT", "MAJ:MIN"]
- # output is on format key="value",
- # where key can be NAME, TYPE, FSTYPE, MOUNTPOINT
- for dev in _get_lsblk_devs(keys):
- # split()[0] to avoid the second part of the name, after the
- # whiteline
- name = dev['name'].split()[0]
- if check and not _is_available(name, dev['type'], dev['fstype'],
- dev['mountpoint'], dev['maj:min']):
- continue
- names.add(name)
-
- return list(names)
-
-
-def get_partition_details(name):
- majmin = _get_dev_major_min(name)
- dev_path = _get_dev_node_path(majmin)
-
- keys = ["TYPE", "FSTYPE", "SIZE", "MOUNTPOINT"]
- try:
- dev = _get_lsblk_devs(keys, [dev_path])[0]
- except OperationFailed as e:
- wok_log.error(
- "Error getting partition info for %s: %s", name, e)
- return {}
-
- dev['available'] = _is_available(name, dev['type'], dev['fstype'],
- dev['mountpoint'], majmin)
- if dev['mountpoint']:
- # Sometimes the mountpoint comes with [SWAP] or other
- # info which is not an actual mount point. Filtering it
- regexp = re.compile(r"\[.*\]")
- if regexp.search(dev['mountpoint']) is not None:
- dev['mountpoint'] = ''
- dev['path'] = dev_path
- dev['name'] = name
- return dev
diff --git a/plugins/kimchi/docs/README.md b/plugins/kimchi/docs/README.md
index f400333..ee6bfed 100644
--- a/plugins/kimchi/docs/README.md
+++ b/plugins/kimchi/docs/README.md
@@ -196,13 +196,13 @@ Usage
Connect your browser to https://localhost:8001. You should see a screen like:
-![Wok Login Screen](/docs/kimchi-login.png)
+![Wok Login Screen](docs/kimchi-login.png)
Wok uses PAM to authenticate users so you can log in with the same username
and password that you would use to log in to the machine itself. Once logged in
you will see a screen like:
-![Kimchi Guest View](/docs/kimchi-guest.png)
+![Kimchi Guest View](docs/kimchi-guest.png)
This shows you the list of running guests including a live screenshot of
the guest session. You can use the action buttons to shutdown the guests
@@ -216,7 +216,7 @@ top navigation bar.
The template screen looks like:
-![Kimchi Template View](/docs/kimchi-templates.png)
+![Kimchi Template View](docs/kimchi-templates.png)
From this view, you can change the parameters of a template or create a
new template using the "+" button in the upper right corner.
diff --git a/plugins/kimchi/i18n.py b/plugins/kimchi/i18n.py
index 220bd24..e9699b9 100644
--- a/plugins/kimchi/i18n.py
+++ b/plugins/kimchi/i18n.py
@@ -244,31 +244,12 @@ messages = {
"KCHNET0021E": _("Failed to activate interface %(iface)s. Please check the physical link status."),
"KCHNET0022E": _("Failed to start network %(name)s. Details: %(err)s"),
- "KCHDR0001E": _("Debug report %(name)s does not exist"),
- "KCHDR0002E": _("Debug report tool not found in system"),
- "KCHDR0003E": _("Unable to create debug report %(name)s. Details: %(err)s."),
- "KCHDR0004E": _("Can not find any debug report with the given name %(name)s"),
- "KCHDR0005E": _("Unable to generate debug report %(name)s. Details: %(err)s"),
- "KCHDR0006E": _("You should give a name for the debug report file."),
- "KCHDR0007E": _("Debug report name must be a string. Only letters, digits, underscore ('_') and hyphen ('-') are allowed."),
- "KCHDR0008E": _("The debug report with specified name \"%(name)s\" already exists. Please use another one."),
-
"KCHSR0001E": _("Storage server %(server)s was not used by Kimchi"),
"KCHDISTRO0001E": _("Distro '%(name)s' does not exist"),
"KCHPART0001E": _("Partition %(name)s does not exist in the host"),
- "KCHHOST0001E": _("Unable to shutdown host machine as there are running virtual machines"),
- "KCHHOST0002E": _("Unable to reboot host machine as there are running virtual machines"),
- "KCHHOST0003E": _("Node device '%(name)s' not found"),
- "KCHHOST0004E": _("Conflicting flag filters specified."),
-
- "KCHPKGUPD0001E": _("No packages marked for update"),
- "KCHPKGUPD0002E": _("Package %(name)s is not marked to be updated."),
- "KCHPKGUPD0003E": _("Error while getting packages marked to be updated. Details: %(err)s"),
- "KCHPKGUPD0004E": _("There is no compatible package manager for this system."),
-
"KCHUTILS0001E": _("Invalid URI %(uri)s"),
"KCHUTILS0003E": _("Unable to choose a virtual machine name"),
@@ -288,37 +269,6 @@ messages = {
"KCHVMSTOR0017E": _("Only one of path or pool/volume can be specified to add a new virtual machine disk"),
"KCHVMSTOR0018E": _("Volume chosen with format %(format)s does not fit in the storage type %(type)s"),
- "KCHREPOS0001E": _("YUM Repository ID must be one word only string."),
- "KCHREPOS0002E": _("Repository URL must be an http://, ftp:// or file:// URL."),
- "KCHREPOS0003E": _("Repository configuration is a dictionary with specific values according to repository type."),
- "KCHREPOS0004E": _("Distribution to DEB repository must be a string"),
- "KCHREPOS0005E": _("Components to DEB repository must be listed in a array"),
- "KCHREPOS0006E": _("Components to DEB repository must be a string"),
- "KCHREPOS0007E": _("Mirror list to repository must be a string"),
- "KCHREPOS0008E": _("YUM Repository name must be string."),
- "KCHREPOS0009E": _("GPG check must be a boolean value."),
- "KCHREPOS0010E": _("GPG key must be a URL pointing to the ASCII-armored file."),
- "KCHREPOS0011E": _("Could not update repository %(repo_id)s."),
- "KCHREPOS0012E": _("Repository %(repo_id)s does not exist."),
- "KCHREPOS0013E": _("Specify repository base URL, mirror list or metalink in order to create or update a YUM repository."),
- "KCHREPOS0014E": _("Repository management tool was not recognized for your system."),
- "KCHREPOS0015E": _("Repository %(repo_id)s is already enabled."),
- "KCHREPOS0016E": _("Repository %(repo_id)s is already disabled."),
- "KCHREPOS0017E": _("Could not remove repository %(repo_id)s."),
- "KCHREPOS0018E": _("Could not write repository configuration file %(repo_file)s"),
- "KCHREPOS0019E": _("Specify repository distribution in order to create a DEB repository."),
- "KCHREPOS0020E": _("Could not enable repository %(repo_id)s."),
- "KCHREPOS0021E": _("Could not disable repository %(repo_id)s."),
- "KCHREPOS0022E": _("YUM Repository ID already exists"),
- "KCHREPOS0023E": _("YUM Repository name must be a string"),
- "KCHREPOS0024E": _("Unable to list repositories. Details: '%(err)s'"),
- "KCHREPOS0025E": _("Unable to retrieve repository information. Details: '%(err)s'"),
- "KCHREPOS0026E": _("Unable to add repository. Details: '%(err)s'"),
- "KCHREPOS0027E": _("Unable to remove repository. Details: '%(err)s'"),
- "KCHREPOS0028E": _("Configuration items: '%(items)s' are not supported by repository manager"),
- "KCHREPOS0029E": _("Repository metalink must be an http://, ftp:// or file:// URL."),
- "KCHREPOS0030E": _("Cannot specify mirrorlist and metalink at the same time."),
-
"KCHSNAP0001E": _("Virtual machine '%(vm)s' must be stopped before creating a snapshot of it."),
"KCHSNAP0002E": _("Unable to create snapshot '%(name)s' on virtual machine '%(vm)s'. Details: %(err)s"),
"KCHSNAP0003E": _("Snapshot '%(name)s' does not exist on virtual machine '%(vm)s'."),
diff --git a/plugins/kimchi/kimchi.conf b/plugins/kimchi/kimchi.conf
index 78f4f3f..98a6c57 100644
--- a/plugins/kimchi/kimchi.conf
+++ b/plugins/kimchi/kimchi.conf
@@ -23,13 +23,6 @@ tools.staticdir.on = True
tools.staticdir.dir = wok.config.PluginPaths('kimchi').state_dir + '/screenshots'
tools.nocache.on = False
-[/data/debugreports]
-tools.staticdir.on = True
-tools.staticdir.dir = wok.config.PluginPaths('kimchi').state_dir + '/debugreports'
-tools.nocache.on = False
-tools.wokauth.on = True
-tools.staticdir.content_types = {'xz': 'application/x-xz'}
-
[/favicon.ico]
tools.staticfile.on = True
tools.staticfile.filename = wok.config.PluginPaths('kimchi').ui_dir + '/images/logo.ico'
diff --git a/plugins/kimchi/mockmodel.py b/plugins/kimchi/mockmodel.py
index e316c21..68acf6f 100644
--- a/plugins/kimchi/mockmodel.py
+++ b/plugins/kimchi/mockmodel.py
@@ -33,8 +33,6 @@ from wok.xmlutils.utils import xml_item_update
import config
import imageinfo
import osinfo
-from model import cpuinfo
-from model.debugreports import DebugReportsModel
from model.host import DeviceModel
from model.libvirtstoragepool import IscsiPoolDef, NetfsPoolDef
from model.libvirtstoragepool import StoragePoolDef
@@ -73,8 +71,6 @@ class MockModel(Model):
self._mock_swupdate = MockSoftwareUpdate()
self._mock_repositories = MockRepositories()
- cpuinfo.get_topo_capabilities = \
- MockModel.get_topo_capabilities
libvirt.virConnect.defineXML = MockModel.domainDefineXML
libvirt.virDomain.XMLDesc = MockModel.domainXMLDesc
libvirt.virDomain.undefine = MockModel.undefineDomain
@@ -112,7 +108,6 @@ class MockModel(Model):
StoragePoolModel._update_lvm_disks = self._update_lvm_disks
StorageVolumesModel.get_list = self._mock_storagevolumes_get_list
StorageVolumeModel.doUpload = self._mock_storagevolume_doUpload
- DebugReportsModel._gen_debugreport_file = self._gen_debugreport_file
LibvirtVMTemplate._get_volume_path = self._get_volume_path
VMTemplate.get_iso_info = self._probe_image
imageinfo.probe_image = self._probe_image
@@ -244,22 +239,6 @@ class MockModel(Model):
return MockModel._libvirt_get_vol_path(pool, vol)
- def _gen_debugreport_file(self, name):
- return add_task('/plugins/kimchi/debugreports/%s' % name, self._create_log,
- self.objstore, name)
-
- def _create_log(self, cb, name):
- path = config.get_debugreports_path()
- tmpf = os.path.join(path, name + '.tmp')
- realf = os.path.join(path, name + '.txt')
- length = random.randint(1000, 10000)
- with open(tmpf, 'w') as fd:
- while length:
- fd.write('I am logged')
- length = length - 1
- os.rename(tmpf, realf)
- cb("OK", True)
-
def _update_lvm_disks(self, pool_name, disks):
conn = self.conn.get()
pool = conn.storagePoolLookupByName(pool_name.encode('utf-8'))
diff --git a/plugins/kimchi/model/config.py b/plugins/kimchi/model/config.py
index 371e382..5c984ee 100644
--- a/plugins/kimchi/model/config.py
+++ b/plugins/kimchi/model/config.py
@@ -28,10 +28,7 @@ from wok.utils import check_url_path, run_command, wok_log
from ..config import find_qemu_binary
from ..distroloader import DistroLoader
-from ..repositories import Repositories
from ..screenshot import VMScreenshot
-from ..swupdate import SoftwareUpdate
-from debugreports import DebugReportsModel
from featuretests import FeatureTests, FEATURETEST_POOL_NAME
from featuretests import FEATURETEST_VM_NAME
@@ -116,28 +113,10 @@ class CapabilitiesModel(object):
return False
def lookup(self, *ident):
- report_tool = DebugReportsModel.get_system_report_tool()
- try:
- SoftwareUpdate()
- except Exception:
- update_tool = False
- else:
- update_tool = True
-
- try:
- repo = Repositories()
- except Exception:
- repo_mngt_tool = None
- else:
- repo_mngt_tool = repo._pkg_mnger.TYPE
-
return {'libvirt_stream_protocols': self.libvirt_stream_protocols,
'qemu_spice': self._qemu_support_spice(),
'qemu_stream': self.qemu_stream,
'screenshot': VMScreenshot.get_stream_test_result(),
- 'system_report_tool': bool(report_tool),
- 'update_tool': update_tool,
- 'repo_mngt_tool': repo_mngt_tool,
'federation': kconfig.get("server", "federation"),
'auth': kconfig.get("authentication", "method"),
'kernel_vfio': self.kernel_vfio,
diff --git a/plugins/kimchi/model/debugreports.py b/plugins/kimchi/model/debugreports.py
deleted file mode 100644
index d20eb12..0000000
--- a/plugins/kimchi/model/debugreports.py
+++ /dev/null
@@ -1,213 +0,0 @@
-#
-# Project Kimchi
-#
-# Copyright IBM, Corp. 2014-2015
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-import fnmatch
-import glob
-import logging
-import os
-import shutil
-import subprocess
-import time
-
-from wok.exception import InvalidParameter, NotFoundError, OperationFailed
-from wok.exception import WokException
-from wok.utils import add_task, wok_log
-from wok.utils import run_command
-
-from .. import config
-from tasks import TaskModel
-
-
-class DebugReportsModel(object):
- def __init__(self, **kargs):
- self.objstore = kargs['objstore']
- self.task = TaskModel(**kargs)
-
- def create(self, params):
- ident = params.get('name').strip()
- # Generate a name with time and millisec precision, if necessary
- if ident is None or ident == "":
- ident = 'report-' + str(int(time.time() * 1000))
- else:
- if ident in self.get_list():
- raise InvalidParameter("KCHDR0008E", {"name": ident})
- taskid = self._gen_debugreport_file(ident)
- return self.task.lookup(taskid)
-
- def get_list(self):
- path = config.get_debugreports_path()
- file_pattern = os.path.join(path, '*.*')
- file_lists = glob.glob(file_pattern)
- file_lists = [os.path.split(file)[1] for file in file_lists]
- name_lists = [file.split('.', 1)[0] for file in file_lists]
-
- return name_lists
-
- def _gen_debugreport_file(self, name):
- gen_cmd = self.get_system_report_tool()
-
- if gen_cmd is not None:
- return add_task('/plugins/kimchi/debugreports/%s' % name, gen_cmd,
- self.objstore, name)
-
- raise OperationFailed("KCHDR0002E")
-
- @staticmethod
- def sosreport_generate(cb, name):
- def log_error(e):
- log = logging.getLogger('Model')
- log.warning('Exception in generating debug file: %s', e)
-
- try:
- command = ['sosreport', '--batch', '--name=%s' % name]
- output, error, retcode = run_command(command)
-
- if retcode != 0:
- raise OperationFailed("KCHDR0003E", {'name': name,
- 'err': retcode})
-
- # SOSREPORT might create file in /tmp or /var/tmp
- # FIXME: The right way should be passing the tar.xz file directory
- # though the parameter '--tmp-dir', but it is failing in Fedora 20
- patterns = ['/tmp/sosreport-%s-*', '/var/tmp/sosreport-%s-*']
- reports = []
- reportFile = None
- for p in patterns:
- reports = reports + [f for f in glob.glob(p % name)]
- for f in reports:
- if not fnmatch.fnmatch(f, '*.md5'):
- reportFile = f
- break
- # Some error in sosreport happened
- if reportFile is None:
- wok_log.error('Debug report file not found. See sosreport '
- 'output for detail:\n%s', output)
- fname = (patterns[0] % name).split('/')[-1]
- raise OperationFailed('KCHDR0004E', {'name': fname})
-
- md5_report_file = reportFile + '.md5'
- report_file_extension = '.' + reportFile.split('.', 1)[1]
- path = config.get_debugreports_path()
- target = os.path.join(path, name + report_file_extension)
- # Moving report
- msg = 'Moving debug report file "%s" to "%s"' % (reportFile,
- target)
- wok_log.info(msg)
- shutil.move(reportFile, target)
- # Deleting md5
- msg = 'Deleting report md5 file: "%s"' % (md5_report_file)
- wok_log.info(msg)
- with open(md5_report_file) as f:
- md5 = f.read().strip()
- wok_log.info('Md5 file content: "%s"', md5)
- os.remove(md5_report_file)
- cb('OK', True)
- return
-
- except WokException as e:
- log_error(e)
- raise
-
- except OSError as e:
- log_error(e)
- raise
-
- except Exception, e:
- # No need to call cb to update the task status here.
- # The task object will catch the exception raised here
- # and update the task status there
- log_error(e)
- raise OperationFailed("KCHDR0005E", {'name': name, 'err': e})
-
- @staticmethod
- def get_system_report_tool():
- # Please add new possible debug report command here
- # and implement the report generating function
- # based on the new report command
- report_tools = ({'cmd': 'sosreport --help',
- 'fn': DebugReportsModel.sosreport_generate},)
-
- # check if the command can be found by shell one by one
- for helper_tool in report_tools:
- try:
- retcode = subprocess.call(helper_tool['cmd'], shell=True,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- if retcode == 0:
- return helper_tool['fn']
- except Exception, e:
- wok_log.info('Exception running command: %s', e)
-
- return None
-
-
-class DebugReportModel(object):
- def __init__(self, **kargs):
- pass
-
- def lookup(self, name):
- path = config.get_debugreports_path()
- file_pattern = os.path.join(path, name)
- file_pattern = file_pattern + '.*'
- try:
- file_target = glob.glob(file_pattern)[0]
- except IndexError:
- raise NotFoundError("KCHDR0001E", {'name': name})
-
- ctime = os.stat(file_target).st_mtime
- ctime = time.strftime("%Y-%m-%d-%H:%M:%S", time.localtime(ctime))
- file_target = os.path.split(file_target)[-1]
- file_target = os.path.join("plugins/kimchi/data/debugreports",
- file_target)
- return {'uri': file_target,
- 'ctime': ctime}
-
- def update(self, name, params):
- path = config.get_debugreports_path()
- file_pattern = os.path.join(path, name + '.*')
- try:
- file_source = glob.glob(file_pattern)[0]
- except IndexError:
- raise NotFoundError("KCHDR0001E", {'name': name})
-
- file_target = file_source.replace(name, params['name'])
- if os.path.isfile(file_target):
- raise InvalidParameter('KCHDR0008E', {'name': params['name']})
-
- shutil.move(file_source, file_target)
- wok_log.info('%s renamed to %s' % (file_source, file_target))
- return params['name']
-
- def delete(self, name):
- path = config.get_debugreports_path()
- file_pattern = os.path.join(path, name + '.*')
- try:
- file_target = glob.glob(file_pattern)[0]
- except IndexError:
- raise NotFoundError("KCHDR0001E", {'name': name})
-
- os.remove(file_target)
-
-
-class DebugReportContentModel(object):
- def __init__(self, **kargs):
- self._debugreport = DebugReportModel()
-
- def lookup(self, name):
- return self._debugreport.lookup(name)
diff --git a/plugins/kimchi/model/host.py b/plugins/kimchi/model/host.py
index 3ff034c..e24c686 100644
--- a/plugins/kimchi/model/host.py
+++ b/plugins/kimchi/model/host.py
@@ -18,27 +18,15 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
import libvirt
-import os
-import platform
import psutil
-import time
-from cherrypy.process.plugins import BackgroundTask
-from collections import defaultdict
-from wok import netinfo
-from wok.basemodel import Singleton
from wok.exception import InvalidOperation, InvalidParameter
from wok.exception import NotFoundError, OperationFailed
-from wok.utils import add_task, wok_log
from wok.xmlutils.utils import xpath_get_text
import hostdev
-from .. import disks
-from ..repositories import Repositories
-from ..swupdate import SoftwareUpdate
from config import CapabilitiesModel
from tasks import TaskModel
-from vms import DOM_STATE_MAP
HOST_STATS_INTERVAL = 1
@@ -49,57 +37,6 @@ class HostModel(object):
self.conn = kargs['conn']
self.objstore = kargs['objstore']
self.task = TaskModel(**kargs)
- self.host_info = self._get_host_info()
-
- def _get_ppc_cpu_info(self):
- res = {}
- with open('/proc/cpuinfo') as f:
- for line in f.xreadlines():
- # Parse CPU, CPU's revision and CPU's clock information
- for key in ['cpu', 'revision', 'clock']:
- if key in line:
- info = line.split(':')[1].strip()
- if key == 'clock':
- value = float(info.split('MHz')[0].strip()) / 1000
- else:
- value = info.split('(')[0].strip()
- res[key] = value
-
- # Power machines show, for each cpu/core, a block with
- # all cpu information. Here we control the scan of the
- # necessary information (1st block provides
- # everything), skipping the function when find all
- # information.
- if len(res.keys()) == 3:
- return "%(cpu)s (%(revision)s) @ %(clock)s GHz\
- " % res
-
- return ""
-
- def _get_host_info(self):
- res = {}
- if platform.machine().startswith('ppc'):
- res['cpu_model'] = self._get_ppc_cpu_info()
- else:
- with open('/proc/cpuinfo') as f:
- for line in f.xreadlines():
- if "model name" in line:
- res['cpu_model'] = line.split(':')[1].strip()
- break
-
- res['cpus'] = 0
- res['memory'] = 0L
-
- # Include IBM PowerKVM name to supported distro names
- _sup_distros = platform._supported_dists + ('ibm_powerkvm',)
- # 'fedora' '17' 'Beefy Miracle'
- distro, version, codename = platform.linux_distribution(
- supported_dists=_sup_distros)
- res['os_distro'] = distro
- res['os_version'] = version
- res['os_codename'] = unicode(codename, "utf-8")
-
- return res
def lookup(self, *name):
cpus = psutil.NUM_CPUS
@@ -121,179 +58,6 @@ class HostModel(object):
self.host_info['memory'] = psutil.phymem_usage().total
return self.host_info
- def swupdate(self, *name):
- try:
- swupdate = SoftwareUpdate()
- except:
- raise OperationFailed('KCHPKGUPD0004E')
-
- pkgs = swupdate.getNumOfUpdates()
- if pkgs == 0:
- raise OperationFailed('KCHPKGUPD0001E')
-
- wok_log.debug('Host is going to be updated.')
- taskid = add_task('/plugins/kimchi/host/swupdate', swupdate.doUpdate,
- self.objstore, None)
- return self.task.lookup(taskid)
-
- def shutdown(self, args=None):
- # Check for running vms before shutdown
- running_vms = self._get_vms_list_by_state('running')
- if len(running_vms) > 0:
- raise OperationFailed("KCHHOST0001E")
-
- wok_log.info('Host is going to shutdown.')
- os.system('shutdown -h now')
-
- def reboot(self, args=None):
- # Find running VMs
- running_vms = self._get_vms_list_by_state('running')
- if len(running_vms) > 0:
- raise OperationFailed("KCHHOST0002E")
-
- wok_log.info('Host is going to reboot.')
- os.system('reboot')
-
- def _get_vms_list_by_state(self, state):
- conn = self.conn.get()
- return [dom.name().decode('utf-8')
- for dom in conn.listAllDomains(0)
- if (DOM_STATE_MAP[dom.info()[0]]) == state]
-
-
-class HostStatsModel(object):
- __metaclass__ = Singleton
-
- def __init__(self, **kargs):
- self.host_stats = defaultdict(list)
- self.host_stats_thread = BackgroundTask(HOST_STATS_INTERVAL,
- self._update_host_stats)
- self.host_stats_thread.start()
-
- def lookup(self, *name):
- return {'cpu_utilization': self.host_stats['cpu_utilization'][-1],
- 'memory': self.host_stats['memory'][-1],
- 'disk_read_rate': self.host_stats['disk_read_rate'][-1],
- 'disk_write_rate': self.host_stats['disk_write_rate'][-1],
- 'net_recv_rate': self.host_stats['net_recv_rate'][-1],
- 'net_sent_rate': self.host_stats['net_sent_rate'][-1]}
-
- def _update_host_stats(self):
- preTimeStamp = self.host_stats['timestamp']
- timestamp = time.time()
- # FIXME when we upgrade psutil, we can get uptime by psutil.uptime
- # we get uptime by float(open("/proc/uptime").readline().split()[0])
- # and calculate the first io_rate after the OS started.
- with open("/proc/uptime") as time_f:
- seconds = (timestamp - preTimeStamp if preTimeStamp else
- float(time_f.readline().split()[0]))
-
- self.host_stats['timestamp'] = timestamp
- self._get_host_disk_io_rate(seconds)
- self._get_host_network_io_rate(seconds)
-
- self._get_percentage_host_cpu_usage()
- self._get_host_memory_stats()
-
- # store only 60 stats (1 min)
- for key, value in self.host_stats.iteritems():
- if isinstance(value, list):
- if len(value) == 60:
- self.host_stats[key] = value[10:]
-
- def _get_percentage_host_cpu_usage(self):
- # This is cpu usage producer. This producer will calculate the usage
- # at an interval of HOST_STATS_INTERVAL.
- # The psutil.cpu_percent works as non blocking.
- # psutil.cpu_percent maintains a cpu time sample.
- # It will update the cpu time sample when it is called.
- # So only this producer can call psutil.cpu_percent in kimchi.
- self.host_stats['cpu_utilization'].append(psutil.cpu_percent(None))
-
- def _get_host_memory_stats(self):
- virt_mem = psutil.virtual_memory()
- # available:
- # the actual amount of available memory that can be given
- # instantly to processes that request more memory in bytes; this
- # is calculated by summing different memory values depending on
- # the platform (e.g. free + buffers + cached on Linux)
- memory_stats = {'total': virt_mem.total,
- 'free': virt_mem.free,
- 'cached': virt_mem.cached,
- 'buffers': virt_mem.buffers,
- 'avail': virt_mem.available}
- self.host_stats['memory'].append(memory_stats)
-
- def _get_host_disk_io_rate(self, seconds):
- disk_read_bytes = self.host_stats['disk_read_bytes']
- disk_write_bytes = self.host_stats['disk_write_bytes']
- prev_read_bytes = disk_read_bytes[-1] if disk_read_bytes else 0
- prev_write_bytes = disk_write_bytes[-1] if disk_write_bytes else 0
-
- disk_io = psutil.disk_io_counters(False)
- read_bytes = disk_io.read_bytes
- write_bytes = disk_io.write_bytes
-
- rd_rate = int(float(read_bytes - prev_read_bytes) / seconds + 0.5)
- wr_rate = int(float(write_bytes - prev_write_bytes) / seconds + 0.5)
-
- self.host_stats['disk_read_rate'].append(rd_rate)
- self.host_stats['disk_write_rate'].append(wr_rate)
- self.host_stats['disk_read_bytes'].append(read_bytes)
- self.host_stats['disk_write_bytes'].append(write_bytes)
-
- def _get_host_network_io_rate(self, seconds):
- net_recv_bytes = self.host_stats['net_recv_bytes']
- net_sent_bytes = self.host_stats['net_sent_bytes']
- prev_recv_bytes = net_recv_bytes[-1] if net_recv_bytes else 0
- prev_sent_bytes = net_sent_bytes[-1] if net_sent_bytes else 0
-
- net_ios = psutil.network_io_counters(True)
- recv_bytes = 0
- sent_bytes = 0
- for key in set(netinfo.nics() +
- netinfo.wlans()) & set(net_ios.iterkeys()):
- recv_bytes = recv_bytes + net_ios[key].bytes_recv
- sent_bytes = sent_bytes + net_ios[key].bytes_sent
-
- rx_rate = int(float(recv_bytes - prev_recv_bytes) / seconds + 0.5)
- tx_rate = int(float(sent_bytes - prev_sent_bytes) / seconds + 0.5)
-
- self.host_stats['net_recv_rate'].append(rx_rate)
- self.host_stats['net_sent_rate'].append(tx_rate)
- self.host_stats['net_recv_bytes'].append(recv_bytes)
- self.host_stats['net_sent_bytes'].append(sent_bytes)
-
-
-class HostStatsHistoryModel(object):
- def __init__(self, **kargs):
- self.history = HostStatsModel(**kargs)
-
- def lookup(self, *name):
- return {'cpu_utilization': self.history.host_stats['cpu_utilization'],
- 'memory': self.history.host_stats['memory'],
- 'disk_read_rate': self.history.host_stats['disk_read_rate'],
- 'disk_write_rate': self.history.host_stats['disk_write_rate'],
- 'net_recv_rate': self.history.host_stats['net_recv_rate'],
- 'net_sent_rate': self.history.host_stats['net_sent_rate']}
-
-
-class PartitionsModel(object):
- def __init__(self, **kargs):
- pass
-
- def get_list(self):
- result = disks.get_partitions_names()
- return result
-
-
-class PartitionModel(object):
- def __init__(self, **kargs):
- pass
-
- def lookup(self, name):
- return disks.get_partition_details(name)
-
class DevicesModel(object):
def __init__(self, **kargs):
@@ -390,87 +154,3 @@ class DeviceModel(object):
raise NotFoundError('KCHHOST0003E', {'name': nodedev_name})
return hostdev.get_dev_info(dev)
-
-class PackagesUpdateModel(object):
- def __init__(self, **kargs):
- try:
- self.host_swupdate = SoftwareUpdate()
- except:
- self.host_swupdate = None
-
- def get_list(self):
- if self.host_swupdate is None:
- raise OperationFailed('KCHPKGUPD0004E')
-
- return self.host_swupdate.getUpdates()
-
-
-class PackageUpdateModel(object):
- def __init__(self, **kargs):
- pass
-
- def lookup(self, name):
- try:
- swupdate = SoftwareUpdate()
- except Exception:
- raise OperationFailed('KCHPKGUPD0004E')
-
- return swupdate.getUpdate(name)
-
-
-class RepositoriesModel(object):
- def __init__(self, **kargs):
- try:
- self.host_repositories = Repositories()
- except:
- self.host_repositories = None
-
- def get_list(self):
- if self.host_repositories is None:
- raise InvalidOperation('KCHREPOS0014E')
-
- return sorted(self.host_repositories.getRepositories())
-
- def create(self, params):
- if self.host_repositories is None:
- raise InvalidOperation('KCHREPOS0014E')
-
- return self.host_repositories.addRepository(params)
-
-
-class RepositoryModel(object):
- def __init__(self, **kargs):
- try:
- self._repositories = Repositories()
- except:
- self._repositories = None
-
- def lookup(self, repo_id):
- if self._repositories is None:
- raise InvalidOperation('KCHREPOS0014E')
-
- return self._repositories.getRepository(repo_id)
-
- def enable(self, repo_id):
- if self._repositories is None:
- raise InvalidOperation('KCHREPOS0014E')
-
- return self._repositories.enableRepository(repo_id)
-
- def disable(self, repo_id):
- if self._repositories is None:
- raise InvalidOperation('KCHREPOS0014E')
-
- return self._repositories.disableRepository(repo_id)
-
- def update(self, repo_id, params):
- if self._repositories is None:
- raise InvalidOperation('KCHREPOS0014E')
-
- return self._repositories.updateRepository(repo_id, params)
-
- def delete(self, repo_id):
- if self._repositories is None:
- raise InvalidOperation('KCHREPOS0014E')
-
- return self._repositories.removeRepository(repo_id)
diff --git a/plugins/kimchi/repositories.py b/plugins/kimchi/repositories.py
deleted file mode 100644
index 9caabc4..0000000
--- a/plugins/kimchi/repositories.py
+++ /dev/null
@@ -1,529 +0,0 @@
-#
-# Project Kimchi
-#
-# Copyright IBM, Corp. 2014-2015
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-import copy
-import os
-import time
-import urlparse
-from ConfigParser import ConfigParser
-
-from wok.basemodel import Singleton
-from wok.exception import InvalidOperation, InvalidParameter
-from wok.exception import OperationFailed, NotFoundError, MissingParameter
-from wok.utils import validate_repo_url
-
-from config import kimchiLock
-from yumparser import get_yum_repositories, write_repo_to_file
-
-
-class Repositories(object):
- __metaclass__ = Singleton
-
- """
- Class to represent and operate with repositories information.
- """
- def __init__(self):
- try:
- __import__('yum')
- self._pkg_mnger = YumRepo()
- except ImportError:
- try:
- __import__('apt_pkg')
- self._pkg_mnger = AptRepo()
- except ImportError:
- raise InvalidOperation('KCHREPOS0014E')
-
- def addRepository(self, params):
- """
- Add and enable a new repository
- """
- config = params.get('config', {})
- extra_keys = list(
- set(config.keys()).difference(set(self._pkg_mnger.CONFIG_ENTRY)))
- if len(extra_keys) > 0:
- raise InvalidParameter("KCHREPOS0028E",
- {'items': ",".join(extra_keys)})
-
- return self._pkg_mnger.addRepo(params)
-
- def getRepositories(self):
- """
- Return a dictionary with all Kimchi's repositories. Each element uses
- the format {<repo_id>: {repo}}, where repo is a dictionary in the
- repositories.Repositories() format.
- """
- return self._pkg_mnger.getRepositoriesList()
-
- def getRepository(self, repo_id):
- """
- Return a dictionary with all info from a given repository ID.
- """
- info = self._pkg_mnger.getRepo(repo_id)
- info['repo_id'] = repo_id
- return info
-
- def enableRepository(self, repo_id):
- """
- Enable a repository.
- """
- return self._pkg_mnger.toggleRepo(repo_id, True)
-
- def disableRepository(self, repo_id):
- """
- Disable a given repository.
- """
- return self._pkg_mnger.toggleRepo(repo_id, False)
-
- def updateRepository(self, repo_id, params):
- """
- Update the information of a given repository.
- The input is the repo_id of the repository to be updated and a dict
- with the information to be updated.
- """
- return self._pkg_mnger.updateRepo(repo_id, params)
-
- def removeRepository(self, repo_id):
- """
- Remove a given repository
- """
- return self._pkg_mnger.removeRepo(repo_id)
-
-
-class YumRepo(object):
- """
- Class to represent and operate with YUM repositories.
- It's loaded only on those systems listed at YUM_DISTROS and loads necessary
- modules in runtime.
- """
- TYPE = 'yum'
- DEFAULT_CONF_DIR = "/etc/yum.repos.d"
- CONFIG_ENTRY = ('repo_name', 'mirrorlist', 'metalink')
-
- def __init__(self):
- self._confdir = self.DEFAULT_CONF_DIR
-
- def _get_repos(self, errcode):
- try:
- kimchiLock.acquire()
- repos = get_yum_repositories()
- except Exception, e:
- kimchiLock.release()
- raise OperationFailed(errcode, {'err': str(e)})
- finally:
- kimchiLock.release()
-
- return repos
-
- def getRepositoriesList(self):
- """
- Return a list of repositories IDs
- """
- repos = self._get_repos('KCHREPOS0024E')
- return repos.keys()
-
- def getRepo(self, repo_id):
- """
- Return a dictionary in the repositories.Repositories() of the given
- repository ID format with the information of a YumRepository object.
- """
- repos = self._get_repos('KCHREPOS0025E')
-
- if repo_id not in repos.keys():
- raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id})
-
- entry = repos.get(repo_id)
-
- info = {}
- info['enabled'] = entry.enabled
- info['baseurl'] = entry.baseurl or ''
- info['config'] = {}
- info['config']['repo_name'] = entry.name or ''
- info['config']['gpgcheck'] = entry.gpgcheck
- info['config']['gpgkey'] = entry.gpgkey or ''
- info['config']['mirrorlist'] = entry.mirrorlist or ''
- info['config']['metalink'] = entry.metalink or ''
- return info
-
- def addRepo(self, params):
- """
- Add a given repository to YumBase
- """
- # At least one base url, or one mirror, must be given.
- baseurl = params.get('baseurl', '')
-
- config = params.get('config', {})
- mirrorlist = config.get('mirrorlist', '')
- metalink = config.get('metalink', '')
- if not baseurl and not mirrorlist and not metalink:
- raise MissingParameter("KCHREPOS0013E")
-
- if baseurl:
- validate_repo_url(baseurl)
-
- if mirrorlist:
- validate_repo_url(mirrorlist)
-
- if metalink:
- validate_repo_url(metalink)
-
- if mirrorlist and metalink:
- raise InvalidOperation('KCHREPOS0030E')
-
- repo_id = params.get('repo_id', None)
- if repo_id is None:
- repo_id = "kimchi_repo_%s" % str(int(time.time() * 1000))
-
- repos = self._get_repos('KCHREPOS0026E')
- if repo_id in repos.keys():
- raise InvalidOperation("KCHREPOS0022E", {'repo_id': repo_id})
-
- repo_name = config.get('repo_name', repo_id)
- repo = {'baseurl': baseurl, 'mirrorlist': mirrorlist,
- 'name': repo_name, 'gpgcheck': 1,
- 'gpgkey': [], 'enabled': 1, 'metalink': metalink}
-
- # write a repo file in the system with repo{} information.
- parser = ConfigParser()
- parser.add_section(repo_id)
-
- for key, value in repo.iteritems():
- if value:
- parser.set(repo_id, key, value)
-
- repofile = os.path.join(self._confdir, repo_id + '.repo')
- try:
- with open(repofile, 'w') as fd:
- parser.write(fd)
- except:
- raise OperationFailed("KCHREPOS0018E",
- {'repo_file': repofile})
-
- return repo_id
-
- def toggleRepo(self, repo_id, enable):
- repos = self._get_repos('KCHREPOS0011E')
- if repo_id not in repos.keys():
- raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id})
-
- entry = repos.get(repo_id)
- if enable and entry.enabled:
- raise InvalidOperation("KCHREPOS0015E", {'repo_id': repo_id})
-
- if not enable and not entry.enabled:
- raise InvalidOperation("KCHREPOS0016E", {'repo_id': repo_id})
-
- kimchiLock.acquire()
- try:
- if enable:
- entry.enable()
- else:
- entry.disable()
-
- write_repo_to_file(entry)
- except:
- if enable:
- raise OperationFailed("KCHREPOS0020E", {'repo_id': repo_id})
-
- raise OperationFailed("KCHREPOS0021E", {'repo_id': repo_id})
- finally:
- kimchiLock.release()
-
- return repo_id
-
- def updateRepo(self, repo_id, params):
- """
- Update a given repository in repositories.Repositories() format
- """
- repos = self._get_repos('KCHREPOS0011E')
- if repo_id not in repos.keys():
- raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id})
-
- entry = repos.get(repo_id)
-
- baseurl = params.get('baseurl', None)
- config = params.get('config', {})
- mirrorlist = config.get('mirrorlist', None)
- metalink = config.get('metalink', None)
-
- if baseurl is not None and len(baseurl.strip()) == 0:
- baseurl = None
-
- if mirrorlist is not None and len(mirrorlist.strip()) == 0:
- mirrorlist = None
-
- if metalink is not None and len(metalink.strip()) == 0:
- metalink = None
-
- if baseurl is None and mirrorlist is None and metalink is None:
- raise MissingParameter("KCHREPOS0013E")
-
- if baseurl is not None:
- validate_repo_url(baseurl)
- entry.baseurl = baseurl
-
- if mirrorlist is not None:
- validate_repo_url(mirrorlist)
- entry.mirrorlist = mirrorlist
-
- if metalink is not None:
- validate_repo_url(metalink)
- entry.metalink = metalink
-
- if mirrorlist and metalink:
- raise InvalidOperation('KCHREPOS0030E')
-
- entry.id = params.get('repo_id', repo_id)
- entry.name = config.get('repo_name', entry.name)
- entry.gpgcheck = config.get('gpgcheck', entry.gpgcheck)
- entry.gpgkey = config.get('gpgkey', entry.gpgkey)
- kimchiLock.acquire()
- write_repo_to_file(entry)
- kimchiLock.release()
- return repo_id
-
- def removeRepo(self, repo_id):
- """
- Remove a given repository
- """
- repos = self._get_repos('KCHREPOS0027E')
- if repo_id not in repos.keys():
- raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id})
-
- entry = repos.get(repo_id)
- parser = ConfigParser()
- with open(entry.repofile) as fd:
- parser.readfp(fd)
-
- if len(parser.sections()) == 1:
- os.remove(entry.repofile)
- return
-
- parser.remove_section(repo_id)
- with open(entry.repofile, "w") as fd:
- parser.write(fd)
-
-
-class AptRepo(object):
- """
- Class to represent and operate with YUM repositories.
- It's loaded only on those systems listed at YUM_DISTROS and loads necessary
- modules in runtime.
- """
- TYPE = 'deb'
- KIMCHI_LIST = "kimchi-source.list"
- CONFIG_ENTRY = ('dist', 'comps')
-
- def __init__(self):
- getattr(__import__('apt_pkg'), 'init_config')()
- getattr(__import__('apt_pkg'), 'init_system')()
- config = getattr(__import__('apt_pkg'), 'config')
- self.pkg_lock = getattr(__import__('apt_pkg'), 'SystemLock')
- module = __import__('aptsources.sourceslist', globals(), locals(),
- ['SourcesList'], -1)
-
- self._sourceparts_path = '/%s%s' % (
- config.get('Dir::Etc'), config.get('Dir::Etc::sourceparts'))
- self._sourceslist = getattr(module, 'SourcesList')
- self.filename = os.path.join(self._sourceparts_path, self.KIMCHI_LIST)
- if not os.path.exists(self.filename):
- with open(self.filename, 'w') as fd:
- fd.write("# This file is managed by Kimchi and it must not "
- "be modified manually\n")
-
- def _get_repos(self):
- try:
- with self.pkg_lock():
- repos = self._sourceslist()
- repos.refresh()
- except Exception, e:
- kimchiLock.release()
- raise OperationFailed('KCHREPOS0025E', {'err': e.message})
-
- return repos
-
- def _get_repo_id(self, repo):
- data = urlparse.urlparse(repo.uri)
- name = data.hostname or data.path
- return '%s-%s-%s' % (name, repo.dist, "-".join(repo.comps))
-
- def _get_source_entry(self, repo_id):
- kimchiLock.acquire()
- repos = self._get_repos()
- kimchiLock.release()
-
- for r in repos:
- # Ignore deb-src repositories
- if r.type != 'deb':
- continue
-
- if self._get_repo_id(r) != repo_id:
- continue
-
- return r
-
- return None
-
- def getRepositoriesList(self):
- """
- Return a list of repositories IDs
-
- APT repositories there aren't the concept about repository ID, so for
- internal control, the repository ID will be built as described in
- _get_repo_id()
- """
- kimchiLock.acquire()
- repos = self._get_repos()
- kimchiLock.release()
-
- res = []
- for r in repos:
- # Ignore deb-src repositories
- if r.type != 'deb':
- continue
-
- res.append(self._get_repo_id(r))
-
- return res
-
- def getRepo(self, repo_id):
- """
- Return a dictionary in the repositories.Repositories() format of the
- given repository ID with the information of a SourceEntry object.
- """
- r = self._get_source_entry(repo_id)
- if r is None:
- raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id})
-
- info = {'enabled': not r.disabled,
- 'baseurl': r.uri,
- 'config': {'dist': r.dist,
- 'comps': r.comps}}
- return info
-
- def addRepo(self, params):
- """
- Add a new APT repository based on <params>
- """
- # To create a APT repository the dist is a required parameter
- # (in addition to baseurl, verified on controller through API.json)
- config = params.get('config', None)
- if config is None:
- raise MissingParameter("KCHREPOS0019E")
-
- if 'dist' not in config.keys():
- raise MissingParameter("KCHREPOS0019E")
-
- uri = params['baseurl']
- dist = config['dist']
- comps = config.get('comps', [])
-
- validate_repo_url(uri)
-
- kimchiLock.acquire()
- try:
- repos = self._get_repos()
- source_entry = repos.add('deb', uri, dist, comps,
- file=self.filename)
- with self.pkg_lock():
- repos.save()
- except Exception as e:
- kimchiLock.release()
- raise OperationFailed("KCHREPOS0026E", {'err': e.message})
- kimchiLock.release()
- return self._get_repo_id(source_entry)
-
- def toggleRepo(self, repo_id, enable):
- """
- Enable a given repository
- """
- r = self._get_source_entry(repo_id)
- if r is None:
- raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id})
-
- if enable and not r.disabled:
- raise InvalidOperation("KCHREPOS0015E", {'repo_id': repo_id})
-
- if not enable and r.disabled:
- raise InvalidOperation("KCHREPOS0016E", {'repo_id': repo_id})
-
- if enable:
- line = 'deb'
- else:
- line = '#deb'
-
- kimchiLock.acquire()
- try:
- repos = self._get_repos()
- with self.pkg_lock():
- repos.remove(r)
- repos.add(line, r.uri, r.dist, r.comps, file=self.filename)
- repos.save()
- except:
- kimchiLock.release()
- if enable:
- raise OperationFailed("KCHREPOS0020E", {'repo_id': repo_id})
-
- raise OperationFailed("KCHREPOS0021E", {'repo_id': repo_id})
- finally:
- kimchiLock.release()
-
- return repo_id
-
- def updateRepo(self, repo_id, params):
- """
- Update a given repository in repositories.Repositories() format
- """
- old_info = self.getRepo(repo_id)
- updated_info = copy.deepcopy(old_info)
- updated_info['baseurl'] = params.get(
- 'baseurl', updated_info['baseurl'])
-
- if 'config' in params.keys():
- config = params['config']
- updated_info['config']['dist'] = config.get(
- 'dist', old_info['config']['dist'])
- updated_info['config']['comps'] = config.get(
- 'comps', old_info['config']['comps'])
-
- self.removeRepo(repo_id)
- try:
- return self.addRepo(updated_info)
- except:
- self.addRepo(old_info)
- raise
-
- def removeRepo(self, repo_id):
- """
- Remove a given repository
- """
- r = self._get_source_entry(repo_id)
- if r is None:
- raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id})
-
- kimchiLock.acquire()
- try:
- repos = self._get_repos()
- with self.pkg_lock():
- repos.remove(r)
- repos.save()
- except:
- kimchiLock.release()
- raise OperationFailed("KCHREPOS0017E", {'repo_id': repo_id})
- finally:
- kimchiLock.release()
diff --git a/plugins/kimchi/root.py b/plugins/kimchi/root.py
index 20c41ca..1e4cab7 100644
--- a/plugins/kimchi/root.py
+++ b/plugins/kimchi/root.py
@@ -58,7 +58,6 @@ class KimchiRoot(WokRoot):
make_dirs = [
os.path.abspath(config.get_distros_store()),
- os.path.abspath(config.get_debugreports_path()),
os.path.abspath(config.get_screenshot_path())
]
for directory in make_dirs:
diff --git a/plugins/kimchi/swupdate.py b/plugins/kimchi/swupdate.py
deleted file mode 100644
index 84b927f..0000000
--- a/plugins/kimchi/swupdate.py
+++ /dev/null
@@ -1,263 +0,0 @@
-#
-# Project Kimchi
-#
-# Copyright IBM, Corp. 2014-2015
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-import subprocess
-import time
-
-from wok.basemodel import Singleton
-from wok.exception import NotFoundError, OperationFailed
-from wok.utils import run_command, wok_log
-
-from config import kimchiLock
-from yumparser import get_yum_packages_list_update
-
-
-class SoftwareUpdate(object):
- __metaclass__ = Singleton
-
- """
- Class to represent and operate with OS software update.
- """
- def __init__(self):
- # This stores all packages to be updated for Kimchi perspective. It's a
- # dictionary of dictionaries, in the format {'package_name': package},
- # where:
- # package = {'package_name': <string>, 'version': <string>,
- # 'arch': <string>, 'repository': <string>
- # }
- self._packages = {}
-
- # This stores the number of packages to update
- self._num2update = 0
-
- # Get the distro of host machine and creates an object related to
- # correct package management system
- try:
- __import__('yum')
- wok_log.info("Loading YumUpdate features.")
- self._pkg_mnger = YumUpdate()
- except ImportError:
- try:
- __import__('apt')
- wok_log.info("Loading AptUpdate features.")
- self._pkg_mnger = AptUpdate()
- except ImportError:
- zypper_help = ["zypper", "--help"]
- (stdout, stderr, returncode) = run_command(zypper_help)
- if returncode == 0:
- wok_log.info("Loading ZypperUpdate features.")
- self._pkg_mnger = ZypperUpdate()
- else:
- raise Exception("There is no compatible package manager "
- "for this system.")
-
- def _scanUpdates(self):
- """
- Update self._packages with packages to be updated.
- """
- self._packages = {}
- self._num2update = 0
-
- # Call system pkg_mnger to get the packages as list of dictionaries.
- for pkg in self._pkg_mnger.getPackagesList():
-
- # Check if already exist a package in self._packages
- pkg_id = pkg.get('package_name')
- if pkg_id in self._packages.keys():
- # package already listed to update. do nothing
- continue
-
- # Update the self._packages and self._num2update
- self._packages[pkg_id] = pkg
- self._num2update = self._num2update + 1
-
- def getUpdates(self):
- """
- Return the self._packages.
- """
- self._scanUpdates()
- return self._packages
-
- def getUpdate(self, name):
- """
- Return a dictionary with all info from a given package name.
- """
- if name not in self._packages.keys():
- raise NotFoundError('KCHPKGUPD0002E', {'name': name})
-
- return self._packages[name]
-
- def getNumOfUpdates(self):
- """
- Return the number of packages to be updated.
- """
- self._scanUpdates()
- return self._num2update
-
- def doUpdate(self, cb, params):
- """
- Execute the update
- """
- # reset messages
- cb('')
-
- cmd = self._pkg_mnger.update_cmd
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- msgs = []
- while proc.poll() is None:
- msgs.append(proc.stdout.readline())
- cb(''.join(msgs))
- time.sleep(0.5)
-
- # read the final output lines
- msgs.extend(proc.stdout.readlines())
-
- retcode = proc.poll()
- if retcode == 0:
- return cb(''.join(msgs), True)
-
- msgs.extend(proc.stderr.readlines())
- return cb(''.join(msgs), False)
-
-
-class YumUpdate(object):
- """
- Class to represent and operate with YUM software update system.
- It's loaded only on those systems listed at YUM_DISTROS and loads necessary
- modules in runtime.
- """
- def __init__(self):
- self._pkgs = {}
- self.update_cmd = ["yum", "-y", "update"]
-
- def _refreshUpdateList(self):
- """
- Update the list of packages to be updated in the system.
- """
- try:
- kimchiLock.acquire()
- self._pkgs = get_yum_packages_list_update()
- except Exception, e:
- raise OperationFailed('KCHPKGUPD0003E', {'err': str(e)})
- finally:
- kimchiLock.release()
-
- def getPackagesList(self):
- """
- Return a list of package's dictionaries. Each dictionary contains the
- information about a package, in the format:
- package = {'package_name': <string>, 'version': <string>,
- 'arch': <string>, 'repository': <string>}
- """
- self._refreshUpdateList()
- pkg_list = []
- for pkg in self._pkgs:
- package = {'package_name': pkg.name, 'version': pkg.version,
- 'arch': pkg.arch, 'repository': pkg.ui_from_repo}
- pkg_list.append(package)
- return pkg_list
-
-
-class AptUpdate(object):
- """
- Class to represent and operate with APT software update system.
- It's loaded only on those systems listed at APT_DISTROS and loads necessary
- modules in runtime.
- """
- def __init__(self):
- self._pkgs = {}
- self.pkg_lock = getattr(__import__('apt_pkg'), 'SystemLock')
- self.update_cmd = ['apt-get', 'upgrade', '-y']
-
- def _refreshUpdateList(self):
- """
- Update the list of packages to be updated in the system.
- """
- apt_cache = getattr(__import__('apt'), 'Cache')()
- try:
- with self.pkg_lock():
- apt_cache.update()
- apt_cache.upgrade()
- self._pkgs = apt_cache.get_changes()
- except Exception, e:
- kimchiLock.release()
- raise OperationFailed('KCHPKGUPD0003E', {'err': e.message})
-
- def getPackagesList(self):
- """
- Return a list of package's dictionaries. Each dictionary contains the
- information about a package, in the format
- package = {'package_name': <string>, 'version': <string>,
- 'arch': <string>, 'repository': <string>}
- """
- kimchiLock.acquire()
- self._refreshUpdateList()
- kimchiLock.release()
- pkg_list = []
- for pkg in self._pkgs:
- package = {'package_name': pkg.shortname,
- 'version': pkg.candidate.version,
- 'arch': pkg._pkg.architecture,
- 'repository': pkg.candidate.origins[0].label}
- pkg_list.append(package)
-
- return pkg_list
-
-
-class ZypperUpdate(object):
- """
- Class to represent and operate with Zypper software update system.
- It's loaded only on those systems listed at ZYPPER_DISTROS and loads
- necessary modules in runtime.
- """
- def __init__(self):
- self._pkgs = {}
- self.update_cmd = ["zypper", "--non-interactive", "update",
- "--auto-agree-with-licenses"]
-
- def _refreshUpdateList(self):
- """
- Update the list of packages to be updated in the system.
- """
- self._pkgs = []
- cmd = ["zypper", "list-updates"]
- (stdout, stderr, returncode) = run_command(cmd)
-
- if len(stderr) > 0:
- raise OperationFailed('KCHPKGUPD0003E', {'err': stderr})
-
- for line in stdout.split('\n'):
- if line.find('v |') >= 0:
- info = line.split(' | ')
- package = {'package_name': info[2], 'version': info[4],
- 'arch': info[5], 'repository': info[1]}
- self._pkgs.append(package)
-
- def getPackagesList(self):
- """
- Return a list of package's dictionaries. Each dictionary contains the
- information about a package, in the format
- package = {'package_name': <string>, 'version': <string>,
- 'arch': <string>, 'repository': <string>}
- """
- kimchiLock.acquire()
- self._refreshUpdateList()
- kimchiLock.release()
- return self._pkgs
diff --git a/plugins/kimchi/tests/test_authorization.py b/plugins/kimchi/tests/test_authorization.py
index 53aa847..0976622 100644
--- a/plugins/kimchi/tests/test_authorization.py
+++ b/plugins/kimchi/tests/test_authorization.py
@@ -77,12 +77,6 @@ class AuthorizationTests(unittest.TestCase):
resp = self.request('/plugins/kimchi/host/shutdown', '{}', 'POST')
self.assertEquals(403, resp.status)
- # Non-root users can not get or debug reports
- resp = self.request('/plugins/kimchi/debugreports', '{}', 'GET')
- self.assertEquals(403, resp.status)
- resp = self.request('/plugins/kimchi/debugreports', '{}', 'POST')
- self.assertEquals(403, resp.status)
-
# Non-root users can not create or delete network (only get)
resp = self.request('/plugins/kimchi/networks', '{}', 'GET')
self.assertEquals(200, resp.status)
diff --git a/plugins/kimchi/tests/test_config.py.in b/plugins/kimchi/tests/test_config.py.in
index 6bca3df..c37069f 100644
--- a/plugins/kimchi/tests/test_config.py.in
+++ b/plugins/kimchi/tests/test_config.py.in
@@ -22,7 +22,6 @@ from cherrypy.lib.reprconf import Parser
from wok.config import Paths
-from wok.plugins.kimchi.config import get_debugreports_path
from wok.plugins.kimchi.config import get_screenshot_path
from wok.plugins.kimchi.config import KimchiPaths
@@ -167,13 +166,6 @@ class ConfigTests(unittest.TestCase):
'tools.staticdir.dir': get_screenshot_path(),
'tools.nocache.on': False
},
- '/data/debugreports': {
- 'tools.staticdir.on': True,
- 'tools.staticdir.dir': get_debugreports_path(),
- 'tools.nocache.on': False,
- 'tools.wokauth.on': True,
- 'tools.staticdir.content_types': {'xz': 'application/x-xz'}
- },
'/favicon.ico': {
'tools.staticfile.on': True,
'tools.staticfile.filename':
diff --git a/plugins/kimchi/tests/test_host.py b/plugins/kimchi/tests/test_host.py
deleted file mode 100644
index e2aa196..0000000
--- a/plugins/kimchi/tests/test_host.py
+++ /dev/null
@@ -1,200 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Project Kimchi
-#
-# Copyright IBM, Corp. 2015
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-import json
-import os
-import platform
-import psutil
-import tempfile
-import time
-import unittest
-from functools import partial
-
-from wok.plugins.kimchi.mockmodel import MockModel
-
-from utils import get_free_port, patch_auth, request, run_server, wait_task
-
-
-test_server = None
-model = None
-host = None
-ssl_port = None
-tmpfile = None
-
-
-def setUpModule():
- global test_server, model, host, ssl_port, tmpfile
-
- patch_auth()
- tmpfile = tempfile.mktemp()
- model = MockModel(tmpfile)
- host = '127.0.0.1'
- port = get_free_port('http')
- ssl_port = get_free_port('https')
- cherrypy_port = get_free_port('cherrypy_port')
- test_server = run_server(host, port, ssl_port, test_mode=True,
- cherrypy_port=cherrypy_port, model=model)
-
-
-def tearDownModule():
- test_server.stop()
- os.unlink(tmpfile)
-
-
-class HostTests(unittest.TestCase):
- def setUp(self):
- self.request = partial(request, host, ssl_port)
-
- def test_hostinfo(self):
- resp = self.request('/plugins/kimchi/host').read()
- info = json.loads(resp)
- keys = ['os_distro', 'os_version', 'os_codename', 'cpu_model',
- 'memory', 'cpus']
- self.assertEquals(sorted(keys), sorted(info.keys()))
-
- distro, version, codename = platform.linux_distribution()
- self.assertEquals(distro, info['os_distro'])
- self.assertEquals(version, info['os_version'])
- self.assertEquals(unicode(codename, "utf-8"), info['os_codename'])
- self.assertEquals(psutil.TOTAL_PHYMEM, info['memory'])
-
- def test_hoststats(self):
- time.sleep(1)
- stats_keys = ['cpu_utilization', 'memory', 'disk_read_rate',
- 'disk_write_rate', 'net_recv_rate', 'net_sent_rate']
- resp = self.request('/plugins/kimchi/host/stats').read()
- stats = json.loads(resp)
- self.assertEquals(sorted(stats_keys), sorted(stats.keys()))
-
- cpu_utilization = stats['cpu_utilization']
- self.assertIsInstance(cpu_utilization, float)
- self.assertGreaterEqual(cpu_utilization, 0.0)
- self.assertTrue(cpu_utilization <= 100.0)
-
- memory_stats = stats['memory']
- self.assertIn('total', memory_stats)
- self.assertIn('free', memory_stats)
- self.assertIn('cached', memory_stats)
- self.assertIn('buffers', memory_stats)
- self.assertIn('avail', memory_stats)
-
- resp = self.request('/plugins/kimchi/host/stats/history').read()
- history = json.loads(resp)
- self.assertEquals(sorted(stats_keys), sorted(history.keys()))
-
- def test_host_actions(self):
- def _task_lookup(taskid):
- return json.loads(self.request('/plugins/kimchi/tasks/%s' %
- taskid).read())
-
- resp = self.request('/plugins/kimchi/host/shutdown', '{}', 'POST')
- self.assertEquals(200, resp.status)
- resp = self.request('/plugins/kimchi/host/reboot', '{}', 'POST')
- self.assertEquals(200, resp.status)
-
- # Test system update
- resp = self.request('/plugins/kimchi/host/packagesupdate', None, 'GET')
- pkgs = json.loads(resp.read())
- self.assertEquals(3, len(pkgs))
-
- pkg_keys = ['package_name', 'repository', 'arch', 'version']
- for p in pkgs:
- name = p['package_name']
- resp = self.request('/plugins/kimchi/host/packagesupdate/' + name,
- None, 'GET')
- info = json.loads(resp.read())
- self.assertEquals(sorted(pkg_keys), sorted(info.keys()))
-
- resp = self.request('/plugins/kimchi/host/swupdate', '{}', 'POST')
- task = json.loads(resp.read())
- task_params = [u'id', u'message', u'status', u'target_uri']
- self.assertEquals(sorted(task_params), sorted(task.keys()))
-
- resp = self.request('/plugins/kimchi/tasks/' + task[u'id'], None, 'GET')
- task_info = json.loads(resp.read())
- self.assertEquals(task_info['status'], 'running')
- wait_task(_task_lookup, task_info['id'])
- resp = self.request('/plugins/kimchi/tasks/' + task[u'id'], None, 'GET')
- task_info = json.loads(resp.read())
- self.assertEquals(task_info['status'], 'finished')
- self.assertIn(u'All packages updated', task_info['message'])
- pkgs = model.packagesupdate_get_list()
- self.assertEquals(0, len(pkgs))
-
- def test_host_partitions(self):
- resp = self.request('/plugins/kimchi/host/partitions')
- self.assertEquals(200, resp.status)
- partitions = json.loads(resp.read())
-
- keys = ['name', 'path', 'type', 'fstype', 'size', 'mountpoint',
- 'available']
- for item in partitions:
- resp = self.request('/plugins/kimchi/host/partitions/%s' %
- item['name'])
- info = json.loads(resp.read())
- self.assertEquals(sorted(info.keys()), sorted(keys))
-
- def test_host_devices(self):
- def asset_devices_type(devices, dev_type):
- for dev in devices:
- self.assertEquals(dev['device_type'], dev_type)
-
- resp = self.request('/plugins/kimchi/host/devices?_cap=scsi_host')
- nodedevs = json.loads(resp.read())
- # Mockmodel brings 3 preconfigured scsi fc_host
- self.assertEquals(3, len(nodedevs))
-
- nodedev = json.loads(self.request(
- '/plugins/kimchi/host/devices/scsi_host2').read())
- # Mockmodel generates random wwpn and wwnn
- self.assertEquals('scsi_host2', nodedev['name'])
- self.assertEquals('fc_host', nodedev['adapter']['type'])
- self.assertEquals(16, len(nodedev['adapter']['wwpn']))
- self.assertEquals(16, len(nodedev['adapter']['wwnn']))
-
- devs = json.loads(self.request('/plugins/kimchi/host/devices').read())
- dev_names = [dev['name'] for dev in devs]
- for dev_type in ('pci', 'usb_device', 'scsi'):
- resp = self.request('/plugins/kimchi/host/devices?_cap=%s' %
- dev_type)
- devsByType = json.loads(resp.read())
- names = [dev['name'] for dev in devsByType]
- self.assertTrue(set(names) <= set(dev_names))
- asset_devices_type(devsByType, dev_type)
-
- resp = self.request('/plugins/kimchi/host/devices?_passthrough=true')
- passthru_devs = [dev['name'] for dev in json.loads(resp.read())]
- self.assertTrue(set(passthru_devs) <= set(dev_names))
-
- for dev_type in ('pci', 'usb_device', 'scsi'):
- resp = self.request(
- '/plugins/kimchi/host/devices?_cap=%s&_passthrough=true' %
- dev_type)
- filteredDevs = json.loads(resp.read())
- filteredNames = [dev['name'] for dev in filteredDevs]
- self.assertTrue(set(filteredNames) <= set(dev_names))
- asset_devices_type(filteredDevs, dev_type)
-
- for dev in passthru_devs:
- resp = self.request(
- '/plugins/kimchi/host/devices?_passthrough_affected_by=%s' %
- dev)
- affected_devs = [dev['name'] for dev in json.loads(resp.read())]
- self.assertTrue(set(affected_devs) <= set(dev_names))
diff --git a/plugins/kimchi/tests/test_model.py b/plugins/kimchi/tests/test_model.py
index c70e4fb..3e95b58 100644
--- a/plugins/kimchi/tests/test_model.py
+++ b/plugins/kimchi/tests/test_model.py
@@ -943,54 +943,6 @@ class ModelTests(unittest.TestCase):
self.assertTrue('kimchi-vm' in vms)
- @unittest.skipUnless(utils.running_as_root(), 'Must be run as root')
- def test_debug_reports(self):
- inst = model.Model('test:///default',
- objstore_loc=self.tmp_store)
-
- if not inst.capabilities_lookup()['system_report_tool']:
- raise unittest.SkipTest("Without debug report tool")
-
- try:
- timeout = int(os.environ['TEST_REPORT_TIMEOUT'])
- except (ValueError, KeyError):
- timeout = 120
-
- namePrefix = 'unitTestReport'
- # sosreport always deletes unsual letters like '-' and '_' in the
- # generated report file name.
- uuidstr = str(uuid.uuid4()).translate(None, "-_")
- reportName = namePrefix + uuidstr
- try:
- inst.debugreport_delete(namePrefix + '*')
- except NotFoundError:
- pass
- with RollbackContext() as rollback:
- report_list = inst.debugreports_get_list()
- self.assertFalse(reportName in report_list)
- try:
- tmp_name = reportName + "_1"
- task = inst.debugreports_create({'name': reportName})
- rollback.prependDefer(inst.debugreport_delete, tmp_name)
- taskid = task['id']
- inst.task_wait(taskid, timeout)
- self.assertEquals('finished',
- inst.task_lookup(taskid)['status'],
- "It is not necessary an error. "
- "You may need to increase the "
- "timeout number by "
- "TEST_REPORT_TIMEOUT=200 "
- "./run_tests.sh test_model")
- report_list = inst.debugreports_get_list()
- self.assertTrue(reportName in report_list)
- name = inst.debugreport_update(reportName, {'name': tmp_name})
- self.assertEquals(name, tmp_name)
- report_list = inst.debugreports_get_list()
- self.assertTrue(tmp_name in report_list)
- except OperationFailed, e:
- if 'debugreport tool not found' not in e.message:
- raise e
-
def test_get_distros(self):
inst = model.Model('test:///default',
objstore_loc=self.tmp_store)
@@ -1029,195 +981,6 @@ class ModelTests(unittest.TestCase):
volumes = inst.storagevolumes_get_list(args['name'])
self.assertEquals(len(volumes), 2)
- def test_repository_create(self):
- inst = model.Model('test:///default',
- objstore_loc=self.tmp_store)
-
- yum_repos = [{'repo_id': 'fedora-fake',
- 'baseurl': 'http://www.fedora.org'},
- {'repo_id': 'fedora-updates-fake',
- 'config':
- {'mirrorlist': 'http://www.fedoraproject.org'}}]
-
- deb_repos = [{'baseurl': 'http://archive.ubuntu.com/ubuntu/',
- 'config': {'dist': 'quantal'}},
- {'baseurl': 'http://archive.ubuntu.com/ubuntu/',
- 'config': {'dist': 'quantal', 'comps': ['main']}}]
-
- yum_invalid_repos = []
- deb_invalid_repos = []
-
- for url in invalid_repository_urls:
- wrong_baseurl = {'repo_id': 'wrong-id', 'baseurl': url}
- wrong_mirrorlist = {'repo_id': 'wrong-id',
- 'baseurl': 'www.example.com',
- 'config': {'mirrorlist': url}}
- wrong_config_item = {
- 'repo_id': 'wrong-id',
- 'baseurl': 'www.example.com',
- 'config': {
- 'gpgkey': 'file:///tmp/KEY-fedora-updates-fake-19'}}
-
- yum_invalid_repos.append(wrong_baseurl)
- yum_invalid_repos.append(wrong_mirrorlist)
- yum_invalid_repos.append(wrong_config_item)
-
- wrong_baseurl['config'] = {'dist': 'tasty'}
- wrong_config = {'baseurl': deb_repos[0]['baseurl'],
- 'config': {
- 'unsupported_item': "a_unsupported_item"}}
- deb_invalid_repos.append(wrong_baseurl)
- deb_invalid_repos.append(wrong_config)
-
- repo_type = inst.capabilities_lookup()['repo_mngt_tool']
- if repo_type == 'yum':
- test_repos = yum_repos
- invalid_repos = yum_invalid_repos
- elif repo_type == 'deb':
- test_repos = deb_repos
- invalid_repos = deb_invalid_repos
- else:
- # repository management tool was not recognized by Kimchi
- # skip test case
- return
-
- # create repositories with invalid data
- for repo in invalid_repos:
- self.assertRaises(InvalidParameter, inst.repositories_create, repo)
-
- for repo in test_repos:
- system_host_repos = len(inst.repositories_get_list())
- repo_id = inst.repositories_create(repo)
- host_repos = inst.repositories_get_list()
- self.assertEquals(system_host_repos + 1, len(host_repos))
-
- repo_info = inst.repository_lookup(repo_id)
- self.assertEquals(repo_id, repo_info['repo_id'])
- self.assertEquals(True, repo_info.get('enabled'))
- self.assertEquals(repo.get('baseurl', ''),
- repo_info.get('baseurl'))
-
- original_config = repo.get('config', {})
- config_info = repo_info.get('config', {})
-
- if repo_type == 'yum':
- self.assertEquals(original_config.get('mirrorlist', ''),
- config_info.get('mirrorlist', ''))
- self.assertEquals(True, config_info['gpgcheck'])
- else:
- self.assertEquals(original_config['dist'], config_info['dist'])
- self.assertEquals(original_config.get('comps', []),
- config_info.get('comps', []))
-
- inst.repository_delete(repo_id)
- self.assertRaises(NotFoundError, inst.repository_lookup, repo_id)
-
- self.assertRaises(NotFoundError, inst.repository_lookup, 'google')
-
- def test_repository_update(self):
- inst = model.Model('test:///default',
- objstore_loc=self.tmp_store)
-
- yum_repo = {'repo_id': 'fedora-fake',
- 'baseurl': 'http://www.fedora.org'}
- yum_new_repo = {'baseurl': 'http://www.fedoraproject.org'}
-
- deb_repo = {'baseurl': 'http://archive.ubuntu.com/ubuntu/',
- 'config': {'dist': 'quantal'}}
- deb_new_repo = {'baseurl': 'http://br.archive.canonical.com/ubuntu/',
- 'config': {'dist': 'utopic'}}
-
- yum_invalid_repos = []
- deb_invalid_repos = []
-
- for url in invalid_repository_urls:
- wrong_baseurl = {'baseurl': url}
- wrong_mirrorlist = {'baseurl': 'www.example.com',
- 'config': {'mirrorlist': url}}
-
- yum_invalid_repos.append(wrong_baseurl)
- yum_invalid_repos.append(wrong_mirrorlist)
-
- wrong_baseurl['config'] = {'dist': 'tasty'}
- deb_invalid_repos.append(wrong_baseurl)
-
- repo_type = inst.capabilities_lookup()['repo_mngt_tool']
- if repo_type == 'yum':
- repo = yum_repo
- new_repo = yum_new_repo
- invalid_repos = yum_invalid_repos
- elif repo_type == 'deb':
- repo = deb_repo
- new_repo = deb_new_repo
- invalid_repos = deb_invalid_repos
- else:
- # repository management tool was not recognized by Kimchi
- # skip test case
- return
-
- system_host_repos = len(inst.repositories_get_list())
-
- with RollbackContext() as rollback:
- repo_id = inst.repositories_create(repo)
- rollback.prependDefer(inst.repository_delete, repo_id)
-
- host_repos = inst.repositories_get_list()
- self.assertEquals(system_host_repos + 1, len(host_repos))
-
- # update repositories with invalid data
- for tmp_repo in invalid_repos:
- self.assertRaises(InvalidParameter, inst.repository_update,
- repo_id, tmp_repo)
-
- new_repo_id = inst.repository_update(repo_id, new_repo)
- repo_info = inst.repository_lookup(new_repo_id)
-
- self.assertEquals(new_repo_id, repo_info['repo_id'])
- self.assertEquals(new_repo['baseurl'], repo_info['baseurl'])
- self.assertEquals(True, repo_info['enabled'])
- inst.repository_update(new_repo_id, repo)
-
- def test_repository_disable_enable(self):
- inst = model.Model('test:///default',
- objstore_loc=self.tmp_store)
-
- yum_repo = {'repo_id': 'fedora-fake',
- 'baseurl': 'http://www.fedora.org'}
- deb_repo = {'baseurl': 'http://archive.ubuntu.com/ubuntu/',
- 'config': {'dist': 'quantal'}}
-
- repo_type = inst.capabilities_lookup()['repo_mngt_tool']
- if repo_type == 'yum':
- repo = yum_repo
- elif repo_type == 'deb':
- repo = deb_repo
- else:
- # repository management tool was not recognized by Kimchi
- # skip test case
- return
-
- system_host_repos = len(inst.repositories_get_list())
-
- repo_id = inst.repositories_create(repo)
-
- host_repos = inst.repositories_get_list()
- self.assertEquals(system_host_repos + 1, len(host_repos))
-
- repo_info = inst.repository_lookup(repo_id)
- self.assertEquals(True, repo_info['enabled'])
-
- inst.repository_disable(repo_id)
- repo_info = inst.repository_lookup(repo_id)
- self.assertEquals(False, repo_info['enabled'])
-
- inst.repository_enable(repo_id)
- repo_info = inst.repository_lookup(repo_id)
- self.assertEquals(True, repo_info['enabled'])
-
- # remove files creates
- inst.repository_delete(repo_id)
-
-
class BaseModelTests(unittest.TestCase):
class FoosModel(object):
def __init__(self):
diff --git a/plugins/kimchi/tests/test_rest.py b/plugins/kimchi/tests/test_rest.py
index 1a1ae6c..75e4342 100644
--- a/plugins/kimchi/tests/test_rest.py
+++ b/plugins/kimchi/tests/test_rest.py
@@ -1127,53 +1127,6 @@ class RestTests(unittest.TestCase):
# Distro not found error
self.assertIn('KCHDISTRO0001E', distro.get('reason'))
- def test_debugreports(self):
- resp = request(host, ssl_port, '/plugins/kimchi/debugreports')
- self.assertEquals(200, resp.status)
-
- def _report_delete(self, name):
- request(host, ssl_port, '/plugins/kimchi/debugreports/%s' % name, '{}', 'DELETE')
-
- def test_create_debugreport(self):
- req = json.dumps({'name': 'report1'})
- with RollbackContext() as rollback:
- resp = request(host, ssl_port, '/plugins/kimchi/debugreports', req, 'POST')
- self.assertEquals(202, resp.status)
- task = json.loads(resp.read())
- # make sure the debugreport doesn't exist until the
- # the task is finished
- wait_task(self._task_lookup, task['id'])
- rollback.prependDefer(self._report_delete, 'report2')
- resp = request(host, ssl_port, '/plugins/kimchi/debugreports/report1')
- debugreport = json.loads(resp.read())
- self.assertEquals("report1", debugreport['name'])
- self.assertEquals(200, resp.status)
- req = json.dumps({'name': 'report2'})
- resp = request(host, ssl_port, '/plugins/kimchi/debugreports/report1',
- req, 'PUT')
- self.assertEquals(303, resp.status)
-
- def test_debugreport_download(self):
- req = json.dumps({'name': 'report1'})
- with RollbackContext() as rollback:
- resp = request(host, ssl_port, '/plugins/kimchi/debugreports', req, 'POST')
- self.assertEquals(202, resp.status)
- task = json.loads(resp.read())
- # make sure the debugreport doesn't exist until the
- # the task is finished
- wait_task(self._task_lookup, task['id'], 20)
- rollback.prependDefer(self._report_delete, 'report1')
- resp = request(host, ssl_port, '/plugins/kimchi/debugreports/report1')
- debugreport = json.loads(resp.read())
- self.assertEquals("report1", debugreport['name'])
- self.assertEquals(200, resp.status)
- resp = request(host, ssl_port, '/plugins/kimchi/debugreports/report1/content')
- self.assertEquals(200, resp.status)
- resp = request(host, ssl_port, '/plugins/kimchi/debugreports/report1')
- debugre = json.loads(resp.read())
- resp = request(host, ssl_port, debugre['uri'])
- self.assertEquals(200, resp.status)
-
def test_repositories(self):
def verify_repo(t, res):
for field in ('repo_id', 'enabled', 'baseurl', 'config'):
diff --git a/plugins/kimchi/ui/config/tab-ext.xml b/plugins/kimchi/ui/config/tab-ext.xml
index ee88c88..48ec9ec 100644
--- a/plugins/kimchi/ui/config/tab-ext.xml
+++ b/plugins/kimchi/ui/config/tab-ext.xml
@@ -2,13 +2,6 @@
<tabs-ext>
<tab>
<access role="admin" mode="admin"/>
- <access role="user" mode="none"/>
-
- <title>Host</title>
- <path>plugins/kimchi/host.html</path>
- </tab>
- <tab>
- <access role="admin" mode="admin"/>
<access role="user" mode="byInstance"/>
<title>Guests</title>
diff --git a/plugins/kimchi/ui/css/theme-default/host.css b/plugins/kimchi/ui/css/theme-default/host.css
deleted file mode 100644
index a0cccb1..0000000
--- a/plugins/kimchi/ui/css/theme-default/host.css
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2013-2014
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-.host-panel {
- font-size: 12px;
- margin-bottom: 100px;
-}
-
-.host-panel .logo-container, .host-panel .info-container,
-.host-panel .section-label, .host-panel .section-value {
- display: inline-block;
- vertical-align: top;
-}
-
-.host-panel .section-label {
- display: inline-block;
- margin-right: 1em;
- vertical-align: top;
-}
-
-.host-panel .logo {
- background: url("plugins/kimchi/images/icon-vm.png") no-repeat left top;
- height: 128px;
- width: 128px;
-}
-
-.host-panel .hostname {
- text-decoration: underline;
-}
-
-.host-panel .action-panel {
- margin-top: 2em;
- padding-left: 10px;
-}
-
-.host-panel .button-icon {
- background: url("../images/theme-default/host-icon-sprite.png") no-repeat
- left top;
- display: inline-block;
- height: 12px;
- width: 12px;
-}
-
-.host-panel .action-icon-stop {
- background-position: -14px 0;
-}
-
-.host-panel .action-icon-restart {
- background-position: -28px 0;
-}
-
-.host-panel .action-icon-download {
- background-position: -42px 0;
-}
-
-.host-panel .action-icon-connect {
- background-position: -56px 0;
-}
-
-.host-panel .action-icon-add {
- background-position: -70px 0;
-}
-
-.host-panel .action-icon-edit {
- background-position: -84px 0;
-}
-
-.host-panel .action-icon-remove {
- background-position: -98px 0;
-}
-
-.host-panel button:disabled .action-icon-start {
- background-position: 0 -14px;
-}
-
-.host-panel button:disabled .action-icon-stop {
- background-position: -14px -14px;
-}
-
-.host-panel button:disabled .action-icon-restart {
- background-position: -28px -14px;
-}
-
-.host-panel button:disabled .action-icon-download {
- background-position: -42px -14px;
-}
-
-.host-panel button:disabled .action-icon-connect {
- background-position: -56px -14px;
-}
-
-.host-panel button:disabled .action-icon-add {
- background-position: -70px -14px;
-}
-
-.host-panel button:disabled .action-icon-edit {
- background-position: -84px -14px;
-}
-
-.host-panel button:disabled .action-icon-remove {
- background-position: -98px -14px;
-}
-
-.host-panel .info-container {
- padding-top: 16px;
- width: 890px;
-}
-
-.host-panel .section-header {
- background: #EEE;
- border-radius: 5px;
- cursor: pointer;
- line-height: 2em;
- margin: 1em 0 1em;
- padding-left: 6px;
-}
-
-.host-panel .section-header:hover {
- background: #06f;
- color: white;
-}
-
-.host-panel .section-content {
- padding-left: 1em;
-}
-
-.host-panel .section-header .arrow {
- border-color: transparent;
- border-style: solid;
- display: inline-block;
- margin-right: 6px;
- width: 0;
-}
-
-.host-panel .section-header[aria-expanded="true"] .arrow {
- border-top-color: black;
- border-width: 8px 4px 0;
- border-bottom: none;
-}
-
-.host-panel .section-header[aria-expanded="true"]:hover .arrow {
- border-top-color: white;
-}
-
-.host-panel .section-header[aria-expanded="false"] .arrow {
- border-left-color: black;
- border-right: none;
- border-width: 4px 0 4px 8px;
-}
-
-.host-panel .section-header[aria-expanded="false"]:hover .arrow {
- border-left-color: white;
-}
-
-.host-panel .section-row {
- line-height: 1.6em;
- margin-bottom: 1em;
-}
-
-.host-panel .section-label {
- width: 100px;
-}
-
-#frequency-textbox {
- width: 20px;
-}
-
-#container-chart-cpu,
-#container-chart-memory,
-#container-chart-disk-io,
-#container-chart-network-io {
- border: 1px solid white;
- box-shadow: 2px 2px 2px gray, 2px -2px 2px gray, -2px -2px 2px gray, -2px
- 2px 2px gray;
- height: 100px;
- width: 500px;
-}
-
-#container-chart-disk-io .disk-write,
-#container-chart-network-io .network-sent {
- stroke: #f80;
-}
-
-/* Debug Report */
-.cell-text-wrapper {
- margin-left: 10px;
-}
-
-.host-panel #available-reports-grid {
- border-color: #ddd;
- height: 400px;
- width: 850px;
-}
-
-.host-panel select#available-reports-list {
- width: 300px;
-}
-
-.host-panel select#available-reports-list option {
- margin: .2em 1em;
-}
-
-.debug-report-name,
-.debug-report-time {
- width: 424px;
-}
-
-#id-debug-img {
- background: url(../images/theme-default/kimchi-loading15x15.gif) 12px
- center no-repeat;
- padding-left: 23px;
-}
-
-/* End of Debug Report */
-
-/* Software Updates */
-.host-panel #software-updates-grid {
- border-color: #ddd;
- height: 300px;
- width: 850px;
-}
-
-.software-update-name,
-.software-update-repos {
- width: 224px;
-}
-
-.software-update-version,
-.software-update-arch {
- width: 200px;
-}
-
-.host-panel #software-updates-progress-textarea {
- border: 1px solid #ddd;
- box-sizing: border-box;
- height: 100px;
- padding: .2em .5em;
- resize: vertical;
- width: 852px;
-}
-/* End of Software Updates */
-
-/* Repository */
-.host-panel #repositories-grid {
- border-color: #ddd;
- height: 200px;
- width: 850px;
-}
-
-.host-panel #repositories-grid .repository-id {
- width: 120px;
-}
-
-.host-panel #repositories-grid .repository-name {
- width: 640px;
-}
-
-.host-panel #repositories-grid .repository-enabled {
- width: 88px;
-}
-
-.host-panel #repositories-grid .repository-baseurl.deb {
- width: 400px;
-}
-
-.host-panel #repositories-grid .repository-enabled.deb {
- width: 100px;
-}
-
-.host-panel #repositories-grid .repository-gpgcheck.deb {
- width: 150px;
-}
-/* End of Repository */
diff --git a/plugins/kimchi/ui/css/theme-default/report-add.css b/plugins/kimchi/ui/css/theme-default/report-add.css
deleted file mode 100644
index 8020182..0000000
--- a/plugins/kimchi/ui/css/theme-default/report-add.css
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2013-2015
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#report-add-window {
- height: 300px;
- width: 400px;
-}
-
-#report-add-window .field {
- font-size: 12px;
-}
-
-#report-name-textbox {
- margin: 0;
- width: 100%;
-}
-
-.info-add-debug-report {
- font-size: 12px;
- color: #999999;
- font-weight: lighter;
- font-family: 'Helvetica Neue', Helvetica, Arial;
-}
\ No newline at end of file
diff --git a/plugins/kimchi/ui/css/theme-default/report-rename.css b/plugins/kimchi/ui/css/theme-default/report-rename.css
deleted file mode 100644
index 2fb2698..0000000
--- a/plugins/kimchi/ui/css/theme-default/report-rename.css
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2014-2015
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#report-rename-window {
- height: 300px;
- width: 400px;
-}
-
-#report-rename-window .field {
- font-size: 12px;
-}
-
-#report-name-textbox {
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- width: 100%;
-}
-
-.info-debug-report-rename {
- font-size: 12px;
- color: #999999;
- font-weight: lighter;
- font-family: 'Helvetica Neue', Helvetica, Arial;
-}
diff --git a/plugins/kimchi/ui/css/theme-default/repository-add.css b/plugins/kimchi/ui/css/theme-default/repository-add.css
deleted file mode 100644
index 4344569..0000000
--- a/plugins/kimchi/ui/css/theme-default/repository-add.css
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2014-2015
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#repository-add-window {
- height: 500px;
- width: 1000px;
-}
-
-#repository-add-window span.required {
- color: red;
- padding-left: 5px;
- vertical-align: top;
-}
-
-#repository-add-window .textbox-wrapper input[type="text"] {
- box-sizing: border-box;
- width: 100%;
-}
-
-#repository-add-window .textbox-wrapper label {
- vertical-align: middle;
-}
-
-#isMirrorLabel {
- font-size: 14px;
- font-weight: lighter;
- font-family: 'Helvetica Neue', Helvetica, Arial;
-}
\ No newline at end of file
diff --git a/plugins/kimchi/ui/css/theme-default/repository-edit.css b/plugins/kimchi/ui/css/theme-default/repository-edit.css
deleted file mode 100644
index 383a7fe..0000000
--- a/plugins/kimchi/ui/css/theme-default/repository-edit.css
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2014-2015
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-.yum div#repository-edit-window {
- height: 680px;
- width: 1000px;
-}
-
-.deb div#repository-edit-window {
- height: 480px;
- width: 1000px;
-}
-
-
-.repository-edit-fieldset {
- float: left;
- padding: 0 30px;
- width: 95%;
-}
-
-.repository-edit-wrapper-label, .repository-edit-wrapper-controls {
- display: inline-block;
- height: 30px;
- line-height: 30px;
- font-size: 14px;
- vertical-align: top;
-}
-
-.repository-edit-wrapper-label {
- margin-top: 10px;
- width: 150px;
-}
-
-.repository-edit-wrapper-controls label {
- vertical-align: middle;
-}
-
-.repository-edit-wrapper-controls {
- width: 100%;
-}
-
-.repository-edit-wrapper-controls input[type="text"] {
- font-size: 16px;
- height: 30px;
- line-height: 30px;
- padding: 0 10px;
- width: 100%;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- border: 1px solid #CCCCCC;
-}
-
-
-.repository-edit-wrapper-controls input[type="text"][readonly] {
- color: #bbb;
- background-color: #fafafa;
-}
-
-
-.repository-edit-wrapper-controls input[type="text"][disabled] {
- color: #bbb;
- background-color: #fafafa;
- cursor: not-allowed;
-}
-
-
-.deb .yum{
- display: none;
-}
-
-
-.yum .deb{
- display: none;
-}
diff --git a/plugins/kimchi/ui/js/src/kimchi.api.js b/plugins/kimchi/ui/js/src/kimchi.api.js
index 0ec3747..19fe1a6 100644
--- a/plugins/kimchi/ui/js/src/kimchi.api.js
+++ b/plugins/kimchi/ui/js/src/kimchi.api.js
@@ -70,37 +70,6 @@ var kimchi = {
},
/**
- * Get the dynamic host stats (usually used for monitoring).
- */
- getHostStats : function(suc, err) {
- wok.requestJSON({
- url : 'plugins/kimchi/host/stats',
- type : 'GET',
- contentType : 'application/json',
- headers: {'Wok-Robot': 'wok-robot'},
- dataType : 'json',
- success : suc,
- error: err
- });
- },
-
- /**
- * Get the historic host stats.
- */
- getHostStatsHistory : function(suc, err) {
- wok.requestJSON({
- url : 'plugins/kimchi/host/stats/history',
- type : 'GET',
- resend: true,
- contentType : 'application/json',
- headers: {'Wok-Robot': 'wok-robot'},
- dataType : 'json',
- success : suc,
- error: err
- });
- },
-
- /**
*
* Create a new Virtual Machine. Usage: kimchi.createVM({ name: 'MyUbuntu',
* template: '/templates/ubuntu_base' }, creationSuc, creationErr);
@@ -638,18 +607,6 @@ var kimchi = {
});
},
- listReports : function(suc, err) {
- wok.requestJSON({
- url : 'plugins/kimchi/debugreports',
- type : 'GET',
- contentType : 'application/json',
- dataType : 'json',
- resend: true,
- success : suc,
- error : err
- });
- },
-
trackTask : function(taskID, suc, err, progress) {
var onTaskResponse = function(result) {
var taskStatus = result['status'];
@@ -676,75 +633,6 @@ var kimchi = {
kimchi.trackingTasks.push(taskID);
},
- createReport: function(settings, suc, err, progress) {
- var onResponse = function(data) {
- taskID = data['id'];
- kimchi.trackTask(taskID, suc, err, progress);
- };
-
- wok.requestJSON({
- url : 'plugins/kimchi/debugreports',
- type : "POST",
- contentType : "application/json",
- data : JSON.stringify(settings),
- dataType : "json",
- success : onResponse,
- error : err
- });
- },
-
- renameReport : function(name, settings, suc, err) {
- $.ajax({
- url : "plugins/kimchi/debugreports/" + encodeURIComponent(name),
- type : 'PUT',
- contentType : 'application/json',
- data : JSON.stringify(settings),
- dataType : 'json',
- success: suc,
- error: err
- });
- },
-
- deleteReport: function(settings, suc, err) {
- var reportName = encodeURIComponent(settings['name']);
- wok.requestJSON({
- url : 'plugins/kimchi/debugreports/' + reportName,
- type : 'DELETE',
- contentType : 'application/json',
- dataType : 'json',
- success : suc,
- error : err
- });
- },
-
- downloadReport: function(settings, suc, err) {
- window.open(settings['file']);
- },
-
- shutdown: function(settings, suc, err) {
- var reboot = settings && settings['reboot'] === true;
- var url = 'plugins/kimchi/host/' + (reboot ? 'reboot' : 'shutdown');
- wok.requestJSON({
- url : url,
- type : 'POST',
- contentType : 'application/json',
- dataType : 'json',
- success : suc,
- error : err
- });
- },
-
- listHostPartitions : function(suc, err) {
- wok.requestJSON({
- url : 'plugins/kimchi/host/partitions',
- type : 'GET',
- contentType : 'application/json',
- dataType : 'json',
- success : suc,
- error : err
- });
- },
-
getStorageServers: function(type, suc, err) {
var url = 'plugins/kimchi/storageservers?_target_type=' + type;
wok.requestJSON({
@@ -872,131 +760,6 @@ var kimchi = {
});
},
- listSoftwareUpdates : function(suc, err) {
- wok.requestJSON({
- url : 'plugins/kimchi/host/packagesupdate',
- type : 'GET',
- contentType : 'application/json',
- dataType : 'json',
- resend: true,
- success : suc,
- error : err
- });
- },
-
- updateSoftware : function(suc, err, progress) {
- var taskID = -1;
- var onResponse = function(data) {
- taskID = data['id'];
- trackTask();
- };
-
- var trackTask = function() {
- kimchi.getTask(taskID, onTaskResponse, err);
- };
-
- var onTaskResponse = function(result) {
- var taskStatus = result['status'];
- switch(taskStatus) {
- case 'running':
- progress && progress(result);
- setTimeout(function() {
- trackTask();
- }, 200);
- break;
- case 'finished':
- case 'failed':
- suc(result);
- break;
- default:
- break;
- }
- };
-
- wok.requestJSON({
- url : 'plugins/kimchi/host/swupdate',
- type : "POST",
- contentType : "application/json",
- dataType : "json",
- success : onResponse,
- error : err
- });
- },
-
- createRepository : function(settings, suc, err) {
- wok.requestJSON({
- url : "plugins/kimchi/host/repositories",
- type : "POST",
- contentType : "application/json",
- data : JSON.stringify(settings),
- dataType : "json",
- success: suc,
- error: err
- });
- },
-
- retrieveRepository : function(repository, suc, err) {
- var reposID = encodeURIComponent(repository);
- wok.requestJSON({
- url : "plugins/kimchi/host/repositories/" + reposID,
- type : 'GET',
- contentType : 'application/json',
- dataType : 'json',
- success : suc,
- error : err
- });
- },
-
- updateRepository : function(name, settings, suc, err) {
- var reposID = encodeURIComponent(name);
- $.ajax({
- url : "plugins/kimchi/host/repositories/" + reposID,
- type : 'PUT',
- contentType : 'application/json',
- data : JSON.stringify(settings),
- dataType : 'json',
- success : suc,
- error : err
- });
- },
-
- enableRepository : function(name, enable, suc, err) {
- var reposID = encodeURIComponent(name);
- $.ajax({
- url : "plugins/kimchi/host/repositories/" + reposID +
- '/' + (enable === true ? 'enable' : 'disable'),
- type : 'POST',
- contentType : 'application/json',
- dataType : 'json',
- success : suc,
- error : err
- });
- },
-
- deleteRepository : function(repository, suc, err) {
- var reposID = encodeURIComponent(repository);
- wok.requestJSON({
- url : 'plugins/kimchi/host/repositories/' + reposID,
- type : 'DELETE',
- contentType : 'application/json',
- dataType : 'json',
- success : suc,
- error : err
- });
- },
-
- listRepositories : function(suc, err) {
- wok.requestJSON({
- url : 'plugins/kimchi/host/repositories',
- type : 'GET',
- contentType : 'application/json',
- dataType : 'json',
- resend: true,
- success : suc,
- error : err
- });
- },
-
getHostFCDevices: function(suc, err) {
var url = 'plugins/kimchi/host/devices?_cap=fc_host';
wok.requestJSON({
@@ -1339,17 +1102,4 @@ var kimchi = {
});
},
- getCPUInfo : function(suc, err) {
- wok.requestJSON({
- url : 'plugins/kimchi/host/cpuinfo',
- type : 'GET',
- contentType : 'application/json',
- dataType : 'json',
- resend : true,
- success : suc,
- error : err ? err : function(data) {
- wok.message.error(data.responseJSON.reason);
- }
- });
- }
};
diff --git a/plugins/kimchi/ui/js/src/kimchi.host.js b/plugins/kimchi/ui/js/src/kimchi.host.js
deleted file mode 100644
index ab02333..0000000
--- a/plugins/kimchi/ui/js/src/kimchi.host.js
+++ /dev/null
@@ -1,858 +0,0 @@
-/*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2013-2014
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-kimchi.host={};
-
-kimchi.host_main = function() {
- var expand = function(header, toExpand) {
- var controlledNode = $(header).attr('aria-controls');
- $('#' + controlledNode)[toExpand ? 'removeClass' : 'addClass']('hidden');
- $(header).attr('aria-expanded', toExpand ? 'true' : 'false');
- };
-
- var repositoriesGrid = null;
- var initRepositoriesGrid = function(repo_type) {
- var gridFields=[];
- if (repo_type == "yum") {
- gridFields=[{
- name: 'repo_id',
- label: i18n['KCHREPO6004M'],
- 'class': 'repository-id'
- }, {
- name: 'config[repo_name]',
- label: i18n['KCHREPO6005M'],
- 'class': 'repository-name'
- }, {
- name: 'enabled',
- label: i18n['KCHREPO6009M'],
- 'class': 'repository-enabled'
- }];
- }
- else if (repo_type == "deb") {
- gridFields=[{
- name: 'baseurl',
- label: i18n['KCHREPO6006M'],
- makeTitle: true,
- 'class': 'repository-baseurl deb'
- }, {
- name: 'enabled',
- label: i18n['KCHREPO6009M'],
- 'class': 'repository-enabled deb'
- }, {
- name: 'config[dist]',
- label: "dist",
- 'class': 'repository-gpgcheck deb'
- }, {
- name: 'config[comps]',
- label: "comps",
- 'class': 'repository-gpgcheck deb'
- }];
- }
- else {
- gridFields=[{
- name: 'repo_id',
- label: i18n['KCHREPO6004M'],
- 'class': 'repository-id'
- }, {
- name: 'enabled',
- label: i18n['KCHREPO6009M'],
- 'class': 'repository-enabled'
- }, {
- name: 'baseurl',
- label: i18n['KCHREPO6006M'],
- makeTitle: true,
- 'class': 'repository-baseurl'
- }];
- }
- repositoriesGrid = new kimchi.widget.Grid({
- container: 'repositories-grid-container',
- id: 'repositories-grid',
- title: i18n['KCHREPO6003M'],
- toolbarButtons: [{
- id: 'repositories-grid-add-button',
- label: i18n['KCHREPO6012M'],
- onClick: function(event) {
- wok.window.open({url:'plugins/kimchi/repository-add.html',
- class: repo_type});
- }
- }, {
- id: 'repositories-grid-enable-button',
- label: i18n['KCHREPO6016M'],
- disabled: true,
- onClick: function(event) {
- var repository = repositoriesGrid.getSelected();
- if(!repository) {
- return;
- }
- var name = repository['repo_id'];
- var enable = !repository['enabled'];
- $(this).prop('disabled', true);
- kimchi.enableRepository(name, enable, function() {
- wok.topic('kimchi/repositoryUpdated').publish();
- });
- }
- }, {
- id: 'repositories-grid-edit-button',
- label: i18n['KCHREPO6013M'],
- disabled: true,
- onClick: function(event) {
- var repository = repositoriesGrid.getSelected();
- if(!repository) {
- return;
- }
- kimchi.selectedRepository = repository['repo_id'];
- wok.window.open({url:'plugins/kimchi/repository-edit.html',
- class: repo_type});
- }
- }, {
- id: 'repositories-grid-remove-button',
- label: i18n['KCHREPO6014M'],
- disabled: true,
- onClick: function(event) {
- var repository = repositoriesGrid.getSelected();
- if(!repository) {
- return;
- }
-
- var settings = {
- title : i18n['KCHREPO6001M'],
- content : i18n['KCHREPO6002M'],
- confirm : i18n['KCHAPI6004M'],
- cancel : i18n['KCHAPI6003M']
- };
-
- wok.confirm(settings, function() {
- kimchi.deleteRepository(
- repository['repo_id'],
- function(result) {
- wok.topic('kimchi/repositoryDeleted').publish(result);
- }, function(error) {
- }
- );
- });
- }
- }],
- onRowSelected: function(row) {
- var repository = repositoriesGrid.getSelected();
- if(!repository) {
- return;
- }
- $('#repositories-grid-remove-button').prop('disabled', false);
- $('#repositories-grid-edit-button').prop('disabled', false);
- var enabled = repository['enabled'];
- $('#repositories-grid-enable-button')
- .text(i18n[enabled ? 'KCHREPO6017M' : 'KCHREPO6016M'])
- .prop('disabled', false);
- },
- frozenFields: [],
- fields: gridFields,
- data: listRepositories
- });
- };
-
- var listRepositories = function(gridCallback) {
- kimchi.listRepositories(function(repositories) {
- if($.isFunction(gridCallback)) {
- gridCallback(repositories);
- }
- else {
- if(repositoriesGrid) {
- repositoriesGrid.setData(repositories);
- }
- else {
- initRepositoriesGrid();
- repositoriesGrid.setData(repositories);
- }
- }
- },
- function(error) {
- var message = error && error['responseJSON'] && error['responseJSON']['reason'];
-
- if($.isFunction(gridCallback)) {
- gridCallback([]);
- }
- repositoriesGrid &&
- repositoriesGrid.showMessage(message || i18n['KCHUPD6008M']);
- });
-
- $('#repositories-grid-remove-button').prop('disabled', true);
- $('#repositories-grid-edit-button').prop('disabled', true);
- $('#repositories-grid-enable-button').prop('disabled', true);
- };
-
- var softwareUpdatesGridID = 'software-updates-grid';
- var softwareUpdatesGrid = null;
- var progressAreaID = 'software-updates-progress-textarea';
- var reloadProgressArea = function(result) {
- var progressArea = $('#' + progressAreaID)[0];
- $(progressArea).text(result['message']);
- var scrollTop = $(progressArea).prop('scrollHeight');
- $(progressArea).prop('scrollTop', scrollTop);
- };
-
- var initSoftwareUpdatesGrid = function(softwareUpdates) {
- softwareUpdatesGrid = new kimchi.widget.Grid({
- container: 'software-updates-grid-container',
- id: softwareUpdatesGridID,
- title: i18n['KCHUPD6001M'],
- rowSelection: 'disabled',
- toolbarButtons: [{
- id: softwareUpdatesGridID + '-update-button',
- label: i18n['KCHUPD6006M'],
- disabled: true,
- onClick: function(event) {
- var updateButton = $(this);
- var progressArea = $('#' + progressAreaID)[0];
- $('#software-updates-progress-container').removeClass('hidden');
- $(progressArea).text('');
- !wok.isElementInViewport(progressArea) &&
- progressArea.scrollIntoView();
- $(updateButton).text(i18n['KCHUPD6007M']).prop('disabled', true);
-
- kimchi.updateSoftware(function(result) {
- reloadProgressArea(result);
- $(updateButton).text(i18n['KCHUPD6006M']).prop('disabled', false);
- wok.topic('kimchi/softwareUpdated').publish({
- result: result
- });
- }, function(error) {
- var message = error && error['responseJSON'] && error['responseJSON']['reason'];
- wok.message.error(message || i18n['KCHUPD6009M']);
- $(updateButton).text(i18n['KCHUPD6006M']).prop('disabled', false);
- }, reloadProgressArea);
- }
- }],
- frozenFields: [],
- fields: [{
- name: 'package_name',
- label: i18n['KCHUPD6002M'],
- 'class': 'software-update-name'
- }, {
- name: 'version',
- label: i18n['KCHUPD6003M'],
- 'class': 'software-update-version'
- }, {
- name: 'arch',
- label: i18n['KCHUPD6004M'],
- 'class': 'software-update-arch'
- }, {
- name: 'repository',
- label: i18n['KCHUPD6005M'],
- 'class': 'software-update-repos'
- }],
- data: listSoftwareUpdates
- });
- };
-
- var listSoftwareUpdates = function(gridCallback) {
- kimchi.listSoftwareUpdates(function(softwareUpdates) {
- if($.isFunction(gridCallback)) {
- gridCallback(softwareUpdates);
- }
- else {
- if(softwareUpdatesGrid) {
- softwareUpdatesGrid.setData(softwareUpdates);
- }
- else {
- initSoftwareUpdatesGrid(softwareUpdates);
- }
- }
-
- var updateButton = $('#' + softwareUpdatesGridID + '-update-button');
- $(updateButton).prop('disabled', softwareUpdates.length === 0);
- }, function(error) {
- var message = error && error['responseJSON'] && error['responseJSON']['reason'];
- if($.isFunction(gridCallback)) {
- gridCallback([]);
- }
- softwareUpdatesGrid &&
- softwareUpdatesGrid.showMessage(message || i18n['KCHUPD6008M']);
- });
- };
-
- var reportGridID = 'available-reports-grid';
- var reportGrid = null;
- var enableReportButtons = function(toEnable) {
- var buttonID = '#{grid}-{btn}-button';
- $.each(['rename', 'remove', 'download'], function(i, n) {
- $(wok.substitute(buttonID, {
- grid: reportGridID,
- btn: n
- })).prop('disabled', !toEnable);
- });
- };
- var initReportGrid = function(reports) {
- reportGrid = new kimchi.widget.Grid({
- container: 'available-reports-grid-container',
- id: reportGridID,
- title: i18n['KCHDR6002M'],
- toolbarButtons: [{
- id: reportGridID + '-generate-button',
- label: i18n['KCHDR6006M'],
- onClick: function(event) {
- wok.window.open('plugins/kimchi/report-add.html');
- }
- }, {
- id: reportGridID + '-rename-button',
- label: i18n['KCHDR6008M'],
- disabled: true,
- onClick: function(event) {
- var report = reportGrid.getSelected();
- if(!report) {
- return;
- }
-
- kimchi.selectedReport = report['name'];
- wok.window.open('plugins/kimchi/report-rename.html');
- }
- }, {
- id: reportGridID + '-remove-button',
- label: i18n['KCHDR6009M'],
- disabled: true,
- onClick: function(event) {
- var report = reportGrid.getSelected();
- if(!report) {
- return;
- }
-
- var settings = {
- title : i18n['KCHAPI6004M'],
- content : i18n['KCHDR6001M'],
- confirm : i18n['KCHAPI6002M'],
- cancel : i18n['KCHAPI6003M']
- };
-
- wok.confirm(settings, function() {
- kimchi.deleteReport({
- name: report['name']
- }, function(result) {
- listDebugReports();
- }, function(error) {
- wok.message.error(error.responseJSON.reason);
- });
- });
- }
- }, {
- id: reportGridID + '-download-button',
- label: i18n['KCHDR6010M'],
- disabled: true,
- onClick: function(event) {
- var report = reportGrid.getSelected();
- if(!report) {
- return;
- }
-
- kimchi.downloadReport({
- file: report['uri']
- });
- }
- }],
- onRowSelected: function(row) {
- var report = reportGrid.getSelected();
- // Only enable report buttons if the selected line is not a
- // pending report
- if (report['time'] == i18n['KCHDR6007M']) {
- var gridElement = $('#'+ reportGridID);
- var row = $('tr:contains(' + report['name'] + ')', gridElement);
- enableReportButtons(false);
- row.attr('class', '');
- }
- else {
- enableReportButtons(true);
- }
- },
- frozenFields: [],
- fields: [{
- name: 'name',
- label: i18n['KCHDR6003M'],
- 'class': 'debug-report-name'
- }, {
- name: 'time',
- label: i18n['KCHDR6005M'],
- 'class': 'debug-report-time'
- }],
- data: reports
- });
- };
-
- var getPendingReports = function() {
- var reports = []
- var filter = 'status=running&target_uri=' + encodeURIComponent('^/plugins/kimchi/debugreports/*')
-
- kimchi.getTasksByFilter(filter, function(tasks) {
- for(var i = 0; i < tasks.length; i++) {
- reportName = tasks[i].target_uri.replace(/^\/plugins\/kimchi\/debugreports\//, '') || i18n['KCHDR6012M'];
- reports.push({'name': reportName, 'time': i18n['KCHDR6007M']})
-
- if(kimchi.trackingTasks.indexOf(tasks[i].id) >= 0) {
- continue;
- }
-
- kimchi.trackTask(tasks[i].id, function(result) {
- wok.topic('kimchi/debugReportAdded').publish();
- }, function(result) {
- // Error message from Async Task status
- if (result['message']) {
- var errText = result['message'];
- }
- // Error message from standard kimchi exception
- else {
- var errText = result['responseJSON']['reason'];
- }
- result && wok.message.error(errText);
- wok.topic('kimchi/debugReportAdded').publish();
- }, null);
- }
- }, null, true);
-
- return reports;
- };
-
- var listDebugReports = function() {
- kimchi.listReports(function(reports) {
- pendingReports = getPendingReports();
- allReports = pendingReports.concat(reports);
- $('#debug-report-section').removeClass('hidden');
-
- // Row selection will be cleared so disable buttons here
- enableReportButtons(false);
-
- if(reportGrid) {
- reportGrid.setData(allReports);
- }
- else {
- initReportGrid(allReports);
- }
-
- // Set id-debug-img to pending reports
- // It will display a loading icon
- var gridElement = $('#' + reportGridID);
- $.each($('td:contains(' + i18n['KCHDR6007M'] + ')', gridElement), function(index, row) {
- $(row).parent().addClass('no-hover');
- $(row).attr('id', 'id-debug-img');
- });
- }, function(error) {
- if(error['status'] == 403) {
- $('#debug-report-section').addClass('hidden');
- return;
- }
- $('#debug-report-section').removeClass('hidden');
- });
- };
-
- var shutdownButtonID = '#host-button-shutdown';
- var restartButtonID = '#host-button-restart';
- var shutdownHost = function(params) {
- var settings = {
- title : i18n['KCHAPI6004M'],
- content : i18n['KCHHOST6008M'],
- confirm : i18n['KCHAPI6002M'],
- cancel : i18n['KCHAPI6003M']
- };
-
- wok.confirm(settings, function() {
- kimchi.shutdown(params);
- $(shutdownButtonID).prop('disabled', true);
- $(restartButtonID).prop('disabled', true);
- // Check if there is any VM is running.
- kimchi.listVMs(function(vms) {
- for(var i = 0; i < vms.length; i++) {
- if(vms[i]['state'] === 'running') {
- wok.message.error.code('KCHHOST6001E');
- $(shutdownButtonID).prop('disabled', false);
- $(restartButtonID).prop('disabled', false);
- return;
- }
- }
-
- });
- }, function() {
- });
- };
-
- var initPage = function() {
- $('#host-info-container .section-header').each(function(i, header) {
- $('<span class="arrow"></span>').prependTo(header);
- var toExpand = $(header).attr('aria-expanded') !== 'false';
- expand(header, toExpand);
- });
-
- $('#host-info-container').on('click', '.section-header', function(event) {
- var toExpand = $(this).attr('aria-expanded') === 'false';
- expand(this, toExpand);
- });
-
- $('#host-button-shutdown').on('click', function(event) {
- shutdownHost(null);
- });
-
- $('#host-button-restart').on('click', function(event) {
- shutdownHost({
- reboot: true
- });
- });
-
- var setupUI = function() {
- if (kimchi.capabilities == undefined) {
- setTimeout(setupUI, 2000);
- return;
- }
-
- if((kimchi.capabilities['repo_mngt_tool']) && (kimchi.capabilities['repo_mngt_tool']!="None")) {
- initRepositoriesGrid(kimchi.capabilities['repo_mngt_tool']);
- $('#repositories-section').switchClass('hidden', kimchi.capabilities['repo_mngt_tool']);
- wok.topic('kimchi/repositoryAdded')
- .subscribe(listRepositories);
- wok.topic('kimchi/repositoryUpdated')
- .subscribe(listRepositories);
- wok.topic('kimchi/repositoryDeleted')
- .subscribe(listRepositories);
- }
-
- if(kimchi.capabilities['update_tool']) {
- $('#software-update-section').removeClass('hidden');
- initSoftwareUpdatesGrid();
- wok.topic('kimchi/softwareUpdated')
- .subscribe(listSoftwareUpdates);
- $('#software-updates-progress-container').accordion({
- collapsible: true
- });
- }
-
- if(kimchi.capabilities['system_report_tool']) {
- listDebugReports();
- wok.topic('kimchi/debugReportAdded')
- .subscribe(listDebugReports);
- wok.topic('kimchi/debugReportRenamed')
- .subscribe(listDebugReports);
- }
- };
- setupUI();
- };
-
- kimchi.getHost(function(data) {
- var htmlTmpl = $('#host-tmpl').html();
- data['logo'] = data['logo'] || '';
- data['memory'] = wok.formatMeasurement(data['memory'], {
- fixed: 2
- });
- var templated = wok.substitute(htmlTmpl, data);
- $('#host-content-container').html(templated);
-
- initPage();
- initTracker();
- });
-
- var StatsMgr = function() {
- var statsArray = {
- cpu: {
- u: {
- type: 'percent',
- legend: i18n['KCHHOST6002M'],
- points: []
- }
- },
- memory: {
- u: {
- type: 'value',
- base: 2,
- fixed: 2,
- legend: i18n['KCHHOST6003M'],
- points: []
- }
- },
- diskIO: {
- r: {
- type: 'value',
- base: 2,
- fixed: 2,
- unit: 'B/s',
- legend: i18n['KCHHOST6004M'],
- points: []
- },
- w: {
- type: 'value',
- base: 2,
- fixed: 2,
- unit: 'B/s',
- legend: i18n['KCHHOST6005M'],
- 'class': 'disk-write',
- points: []
- }
- },
- networkIO: {
- r: {
- type: 'value',
- base: 2,
- fixed: 2,
- unit: 'B/s',
- legend: i18n['KCHHOST6006M'],
- points: []
- },
- s: {
- type: 'value',
- base: 2,
- fixed: 2,
- unit: 'B/s',
- legend: i18n['KCHHOST6007M'],
- 'class': 'network-sent',
- points: []
- }
- }
- };
- var SIZE = 20;
- var cursor = SIZE;
-
- var add = function(stats) {
- for(var key in stats) {
- var item = stats[key];
- for(var metrics in item) {
- var value = item[metrics]['v'];
- var max = item[metrics]['max'];
- var unifiedMetrics = statsArray[key][metrics];
- var ps = unifiedMetrics['points'];
- if(!Array.isArray(value)){
- ps.push(value);
- if(ps.length > SIZE + 1) {
- ps.shift();
- }
- }
- else{
- ps=ps.concat(value);
- ps.splice(0, ps.length-SIZE-1);
- unifiedMetrics['points']=ps;
- }
- if(max !== undefined) {
- unifiedMetrics['max'] = max;
- }
- else {
- if(unifiedMetrics['type'] !== 'value') {
- continue;
- }
- max = -Infinity;
- $.each(ps, function(i, value) {
- if(value > max) {
- max = value;
- }
- });
- if(max === 0) {
- ++max;
- }
- max *= 1.1;
- unifiedMetrics['max'] = max;
- }
- }
- }
- cursor++;
- };
-
- var get = function(which) {
- var stats = statsArray[which];
- var lines = [];
- for(var k in stats) {
- var obj = stats[k];
- var line = {
- type: obj['type'],
- base: obj['base'],
- unit: obj['unit'],
- fixed: obj['fixed'],
- legend: obj['legend']
- };
- if(obj['max']) {
- line['max'] = obj['max'];
- }
- if(obj['class']) {
- line['class'] = obj['class'];
- }
- var ps = obj['points'];
- var numStats = ps.length;
- var unifiedPoints = [];
- $.each(ps, function(i, value) {
- unifiedPoints.push({
- x: cursor - numStats + i,
- y: value
- });
- });
- line['points'] = unifiedPoints;
- lines.push(line);
- }
- return lines;
- };
-
- return {
- add: add,
- get: get
- };
- };
-
- var Tracker = function(charts) {
- var charts = charts;
- var timer = null;
- var statsPool = new StatsMgr();
- var setCharts = function(newCharts) {
- charts = newCharts;
- for(var key in charts) {
- var chart = charts[key];
- chart.updateUI(statsPool.get(key));
- }
- };
-
- var self = this;
-
- var UnifyStats = function(stats) {
- var result= {
- cpu: {
- u: {
- v: stats['cpu_utilization']
- }
- },
- memory: {
- u: {
- }
- },
- diskIO: {
- r: {
- v: stats['disk_read_rate']
- },
- w: {
- v: stats['disk_write_rate']
- }
- },
- networkIO: {
- r: {
- v: stats['net_recv_rate']
- },
- s: {
- v: stats['net_sent_rate']
- }
- }
- };
- if(Array.isArray(stats['memory'])){
- result.memory.u['v']=[];
- result.memory.u['max']=-Infinity;
- for(var i=0;i<stats['memory'].length;i++){
- result.memory.u['v'].push(stats['memory'][i]['avail']);
- result.memory.u['max']=Math.max(result.memory.u['max'],stats['memory'][i]['total']);
- }
- }
- else {
- result.memory.u['v']=stats['memory']['avail'],
- result.memory.u['max']=stats['memory']['total']
- }
- return(result);
- };
-
-
- var statsCallback = function(stats) {
- var unifiedStats = UnifyStats(stats);
- statsPool.add(unifiedStats);
- for(var key in charts) {
- var chart = charts[key];
- chart.updateUI(statsPool.get(key));
- }
- timer = setTimeout(function() {
- continueTrack();
- }, 1000);
- };
-
- var track = function() {
- kimchi.getHostStatsHistory(statsCallback,
- function() {
- continueTrack();
- });
- };
-
- var continueTrack = function() {
- kimchi.getHostStats(statsCallback,
- function() {
- continueTrack();
- });
- };
-
- var destroy = function() {
- timer && clearTimeout(timer);
- timer = null;
- };
-
- return {
- setCharts: setCharts,
- start: track,
- stop: destroy
- };
- };
-
- var initTracker = function() {
- // TODO: Extend tabs with onUnload event to unregister timers.
- if(kimchi.hostTimer) {
- kimchi.hostTimer.stop();
- delete kimchi.hostTimer;
- }
-
- var trackedCharts = {
- cpu: new kimchi.widget.LineChart({
- id: 'chart-cpu',
- node: 'container-chart-cpu',
- type: 'percent'
- }),
- memory: new kimchi.widget.LineChart({
- id: 'chart-memory',
- node: 'container-chart-memory',
- type: 'value'
- }),
- diskIO: new kimchi.widget.LineChart({
- id: 'chart-disk-io',
- node: 'container-chart-disk-io',
- type: 'value'
- }),
- networkIO: new kimchi.widget.LineChart({
- id: 'chart-network-io',
- node: 'container-chart-network-io',
- type: 'value'
- })
- };
-
- if(kimchi.hostTimer) {
- kimchi.hostTimer.setCharts(trackedCharts);
- }
- else {
- kimchi.hostTimer = new Tracker(trackedCharts);
- kimchi.hostTimer.start();
- }
- };
-
- $('#host-root-container').on('remove', function() {
- if(kimchi.hostTimer) {
- kimchi.hostTimer.stop();
- delete kimchi.hostTimer;
- }
-
- repositoriesGrid && repositoriesGrid.destroy();
- wok.topic('kimchi/repositoryAdded')
- .unsubscribe(listRepositories);
- wok.topic('kimchi/repositoryUpdated')
- .unsubscribe(listRepositories);
- wok.topic('kimchi/repositoryDeleted')
- .unsubscribe(listRepositories);
-
- softwareUpdatesGrid && softwareUpdatesGrid.destroy();
- wok.topic('kimchi/softwareUpdated').unsubscribe(listSoftwareUpdates);
-
- reportGrid && reportGrid.destroy();
- wok.topic('kimchi/debugReportAdded').unsubscribe(listDebugReports);
- wok.topic('kimchi/debugReportRenamed').unsubscribe(listDebugReports);
- });
-};
diff --git a/plugins/kimchi/ui/js/src/kimchi.report_add_main.js b/plugins/kimchi/ui/js/src/kimchi.report_add_main.js
deleted file mode 100644
index 5f098d3..0000000
--- a/plugins/kimchi/ui/js/src/kimchi.report_add_main.js
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2013-2014
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-kimchi.report_add_main = function() {
- var reportGridID = 'available-reports-grid';
- var addReportForm = $('#form-report-add');
- var submitButton = $('#button-report-add');
- var nameTextbox = $('input[name="name"]', addReportForm);
- nameTextbox.select();
-
- var submitForm = function(event) {
- if(submitButton.prop('disabled')) {
- return false;
- }
- var reportName = nameTextbox.val();
- var validator = RegExp("^[_A-Za-z0-9-]*$");
- if (!validator.test(reportName)) {
- wok.message.error.code('KCHDR6011M');
- return false;
- }
- var formData = addReportForm.serializeObject();
- var taskAccepted = false;
- var onTaskAccepted = function() {
- if(taskAccepted) {
- return;
- }
- taskAccepted = true;
- wok.window.close();
- wok.topic('kimchi/debugReportAdded').publish();
- };
-
- kimchi.createReport(formData, function(result) {
- onTaskAccepted();
- wok.topic('kimchi/debugReportAdded').publish();
- }, function(result) {
- // Error message from Async Task status
- if (result['message']) {
- var errText = result['message'];
- }
- // Error message from standard kimchi exception
- else {
- var errText = result['responseJSON']['reason'];
- }
- result && wok.message.error(errText);
-
- taskAccepted &&
- $('.grid-body-view table tr:first-child',
- '#' + reportGridID).remove();
- submitButton.prop('disabled', false);
- nameTextbox.select();
- }, onTaskAccepted);
-
- event.preventDefault();
- };
-
- addReportForm.on('submit', submitForm);
- submitButton.on('click', submitForm);
-};
diff --git a/plugins/kimchi/ui/js/src/kimchi.report_rename_main.js b/plugins/kimchi/ui/js/src/kimchi.report_rename_main.js
deleted file mode 100644
index 1bdb8d9..0000000
--- a/plugins/kimchi/ui/js/src/kimchi.report_rename_main.js
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2014
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-kimchi.report_rename_main = function() {
- var renameReportForm = $('#form-report-rename');
- var submitButton = $('#button-report-rename');
- var nameTextbox = $('input[name="name"]', renameReportForm);
- var submitForm = function(event) {
- if(submitButton.prop('disabled')) {
- return false;
- }
- var reportName = nameTextbox.val();
-
- // if the user hasn't changed the report's name,
- // nothing should be done.
- if (reportName == kimchi.selectedReport) {
- wok.message.error.code('KCHDR6013M');
- return false;
- }
-
- var validator = RegExp("^[A-Za-z0-9-]*$");
- if (!validator.test(reportName)) {
- wok.message.error.code('KCHDR6011M');
- return false;
- }
- var formData = renameReportForm.serializeObject();
- submitButton.prop('disabled', true);
- nameTextbox.prop('disabled', true);
- kimchi.renameReport(kimchi.selectedReport, formData, function(result) {
- submitButton.prop('disabled', false);
- nameTextbox.prop('disabled', false);
- wok.window.close();
- wok.topic('kimchi/debugReportRenamed').publish({
- result: result
- });
- }, function(result) {
- var errText = result &&
- result['responseJSON'] &&
- result['responseJSON']['reason'];
- wok.message.error(errText);
- submitButton.prop('disabled', false);
- nameTextbox.prop('disabled', false).focus();
- });
-
- event.preventDefault();
- };
-
- renameReportForm.on('submit', submitForm);
- submitButton.on('click', submitForm);
-
- nameTextbox.val(kimchi.selectedReport).select();
-};
diff --git a/plugins/kimchi/ui/js/src/kimchi.repository_add_main.js b/plugins/kimchi/ui/js/src/kimchi.repository_add_main.js
deleted file mode 100644
index 656306b..0000000
--- a/plugins/kimchi/ui/js/src/kimchi.repository_add_main.js
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2014
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-kimchi.repository_add_main = function() {
-
- var addForm = $('#form-repository-add');
- var addButton = $('#button-repository-add');
-
- var validateField = function(event) {
- var valid=($(this).val()!=='');
- $(addButton).prop('disabled', !valid);
- return(valid);
- };
-
- var validateForm = function(event) {
- var valid=false;
- addForm.find('input.required').each( function() {
- valid=($(this).val()!=='');
- return(!valid);
- });
- return(valid);
- }
-
- addForm.find('input.required').on('input propertychange', validateField);
-
- var weedObject = function(obj) {
- for (var key in obj) {
- if (obj.hasOwnProperty(key)) {
- if((typeof(obj[key])==="object") && !Array.isArray(obj[key])) {
- weedObject(obj[key]);
- }
- else if(obj[key] == '') {
- delete obj[key];
- }
- }
- }
- }
-
- var addRepository = function(event) {
- var valid = validateForm();
- if(!valid) {
- return false;
- }
-
- var formData = $(addForm).serializeObject();
-
- if (formData && formData.isMirror!=undefined) {
- formData.isMirror=(String(formData.isMirror).toLowerCase() === 'true');
- }
- if(formData.isMirror) {
- if(formData.config==undefined) {
- formData.config=new Object();
- }
- formData.config.mirrorlist=formData.baseurl;
- delete formData.baseurl;
- delete formData.isMirror;
- }
- weedObject(formData);
- if(formData.config && formData.config.comps) {
- formData.config.comps=formData.config.comps.split(/[,\s]/);
- for(var i=0; i>formData.config.comps.length; i++) {
- formData.config.comps[i]=formData.config.comps[i].trim();
- }
- for (var j=formData.config.comps.indexOf(""); j!=-1; j=formData.config.comps.indexOf("")) {
- formData.config.comps.splice(j, 1);
- }
- }
-
- kimchi.createRepository(formData, function() {
- wok.topic('kimchi/repositoryAdded').publish();
- wok.window.close();
- }, function(jqXHR, textStatus, errorThrown) {
- var reason = jqXHR &&
- jqXHR['responseJSON'] &&
- jqXHR['responseJSON']['reason'];
- wok.message.error(reason);
- });
- return false;
- };
-
- $(addForm).on('submit', addRepository);
-};
diff --git a/plugins/kimchi/ui/js/src/kimchi.repository_edit_main.js b/plugins/kimchi/ui/js/src/kimchi.repository_edit_main.js
deleted file mode 100644
index 5bfc51e..0000000
--- a/plugins/kimchi/ui/js/src/kimchi.repository_edit_main.js
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2014
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-kimchi.repository_edit_main = function() {
-
- var editForm = $('#form-repository-edit');
-
- var saveButton = $('#repository-edit-button-save');
-
- if(kimchi.capabilities['repo_mngt_tool']=="yum") {
- editForm.find('input.deb').prop('disabled', true);
- }
- else if(kimchi.capabilities['repo_mngt_tool']=="deb") {
- editForm.find('input.yum').prop('disabled', true);
- }
-
- kimchi.retrieveRepository(kimchi.selectedRepository, function(repository) {
- editForm.fillWithObject(repository);
-
- $('input', editForm).on('input propertychange', function(event) {
- if($(this).val() !== '') {
- $(saveButton).prop('disabled', false);
- }
- });
- });
-
-
- var editRepository = function(event) {
- var formData = $(editForm).serializeObject();
-
- if (formData && formData.config) {
- formData.config.gpgcheck=(String(formData.config.gpgcheck).toLowerCase() === 'true');
- }
-
- if(formData.config && formData.config.comps) {
- formData.config.comps=formData.config.comps.split(/[,\s]/);
- for(var i=0; i>formData.config.comps.length; i++) {
- formData.config.comps[i]=formData.config.comps[i].trim();
- }
- for (var j=formData.config.comps.indexOf(""); j!=-1; j=formData.config.comps.indexOf("")) {
- formData.config.comps.splice(j, 1);
- }
- }
-
- kimchi.updateRepository(kimchi.selectedRepository, formData, function() {
- wok.topic('kimchi/repositoryUpdated').publish();
- wok.window.close();
- }, function(jqXHR, textStatus, errorThrown) {
- var reason = jqXHR &&
- jqXHR['responseJSON'] &&
- jqXHR['responseJSON']['reason'];
- wok.message.error(reason);
- });
-
- return false;
- };
-
- $(editForm).on('submit', editRepository);
- $(saveButton).on('click', editRepository);
-};
diff --git a/plugins/kimchi/ui/pages/help/de_DE/host.dita b/plugins/kimchi/ui/pages/help/de_DE/host.dita
deleted file mode 100644
index 33a40e3..0000000
--- a/plugins/kimchi/ui/pages/help/de_DE/host.dita
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--Arbortext, Inc., 1988-2011, v.4002-->
-<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
- "..\dtd\cshelp.dtd">
-
-
-<!--This DITA specialized document type is not supported by the Authoring Tools development team.
-For support please see:
-https://w3.opensource.ibm.com/projects/dita-cshelp/-->
-<cshelp id="kimhhost" xml:lang="de-de">
-<title>Host</title>
-<shortdesc>Die Seite <wintitle>Host</wintitle> zeigt Informationen zum Hostsystem an und ermöglicht Ihnen, den Host herunterzufahren, erneut zu starten und eine Verbindung zu ihm herzustellen.</shortdesc>
-<csbody>
-<p>Sie können die folgenden Aktionen am Host durchführen:<ul>
-<li>Wählen Sie <uicontrol>Herunterfahren</uicontrol> aus, um das Hostsystem herunterzufahren.</li>
-<li>Wählen Sie <uicontrol>Erneut starten</uicontrol> aus, um das Hostsystem erneut zu starten.</li>
-<li>Wählen Sie <uicontrol>Verbinden</uicontrol> aus, um eine VNC-Verbindung zum Hostsystem herzustellen, wenn noch keine Verbindung besteht.</li>
-</ul></p>
-<p>Klicken Sie auf die folgenden Abschnitte, um Informationen zum Host anzuzeigen:<dl>
-<dlentry>
-<dt>Basisinformationen</dt>
-<dd>Dieser Abschnitt zeigt die Verteilung, die Version und den Codenamen des Hostbetriebssystems sowie den Prozessortyp und die Speicherkapazität in GB an.</dd>
-</dlentry><dlentry>
-<dt>Systemstatistik</dt>
-<dd>Dieser Abschnitt zeigt mithilfe von Grafiken Statistiken für CPU, Speicher, Platten-E/A und Netz-E/A für den Host an. Wählen Sie <uicontrol>Daten werden nach dem Verlassen dieser Seite gesammelt</uicontrol> aus, um mit der Sammlung von Daten fortzufahren, wenn die Host-Registerkarte nicht angezeigt wird.</dd>
-</dlentry><dlentry>
-<dt>Software-Updates</dt>
-<dd>Dieser Abschnitt zeigt Informationen für alle Pakete an, bei denen Aktualisierungen verfügbar sind, einschließlich Paketname, Version, Architektur und Repository. Sie können alle aufgelisteten Pakete aktualisieren, indem Sie <uicontrol>Alle aktualisieren</uicontrol> auswählen. Sie können nicht einzelne Pakete zur Aktualisierung auswählen.</dd>
-</dlentry><dlentry>
-<dt>Repositorys</dt>
-<dd>Dieser Abschnitt zeigt Repositorys an, die dem Hostsystem zugeordnet sind. Sie können Repositorys hinzufügen, aktivieren, bearbeiten oder entfernen. Beim Hinzufügen wird ein Repository dem Hostsystem zugeordnet. Das Aktivieren eines Repositorys dagegen ermöglicht dem Host den Zugriff auf das Repository. Wenn Ihr System Red Hat Enterprise
-Linux oder Fedora ist, können Sie <filepath>yum</filepath>-Repositorys hinzufügen.
-Wenn Ihr System Ubuntu oder Debian ist, fügen Sie <filepath>deb</filepath>-Repositorys hinzu.<p>Wenn Sie mit yum-Repositorys arbeiten, können Sie eine GPG-Prüfung hinzufügen, um sicherzustellen, dass ein Paket aus diesem Repository nicht beschädigt wurde.
-Wählen Sie ein Repository und dann <uicontrol>Bearbeiten</uicontrol> aus. Wählen Sie <uicontrol>Ja</uicontrol> aus, um die GPG-Prüfung zu aktivieren, und geben Sie dann ein URL zur GPG-Schlüsseldatei für das Repository ein.</p></dd>
-</dlentry><dlentry>
-<dt>Debugberichte</dt>
-<dd>Dieser Abschnitt zeigt Debugberichte, einschließlich Name und Dateipfad, an.
-Sie haben die Möglichkeit, einen neuen Bericht zu erstellen oder einen bestehenden Bericht umzubenennen, zu entfernen oder herunterzuladen.<p>Der Debugbericht wird während des Befehls <cmdname>sosreport</cmdname> generiert. Er ist verfügbar für Red Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>-, Fedora-
-und Ubuntu-Verteilungen. Der Befehl generiert eine .tar-Datei, die Konfigurations- und Diagnoseinformationen enthält, wie zum Beispiel Kernelversion, geladene Module sowie System- und Servicekonfigurationdateien.
-Der Befehl führt zudem externe Programme aus, um weitere Informationen zu sammeln, und speichert diese Ausgabe im resultierenden Archiv.</p> </dd>
-</dlentry></dl></p>
-</csbody>
-<?tm 1392659967 1?>
-</cshelp>
-
-
-<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
-<!-- T9N_SRC_ID 232 -->
-<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/kimchi/ui/pages/help/en_US/host.dita b/plugins/kimchi/ui/pages/help/en_US/host.dita
deleted file mode 100644
index 0dcb670..0000000
--- a/plugins/kimchi/ui/pages/help/en_US/host.dita
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--Arbortext, Inc., 1988-2011, v.4002-->
-<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
- "..\dtd\cshelp.dtd">
-<?Pub Sty _display FontColor="red"?>
-<?Pub Inc?>
-<!--This DITA specialized document type is not supported by the Authoring Tools development team.
-For support please see:
-https://w3.opensource.ibm.com/projects/dita-cshelp/-->
-<cshelp id="kimhhost" xml:lang="en-us">
-<title>Host</title>
-<shortdesc>The <wintitle>Host</wintitle> page shows information about
-the host system, and allows you to shut down, restart, and connect
-to the host.</shortdesc>
-<csbody>
-<p>You can perform the following actions on the host:<ul>
-<li>Select <uicontrol>Shut down</uicontrol> to shut down the host
-system.</li>
-<li>Select <uicontrol>Restart</uicontrol> to restart the host system.</li>
-<li>Select <uicontrol>Connect</uicontrol> to open a VNC connection
-to the host system, if it is not already connected.</li>
-</ul></p>
-<p>Click the following sections to display information about the host:<dl>
-<dlentry>
-<dt>Basic information</dt>
-<dd>This section displays the host operating system distribution,
-version, and code name, as well as the processor type, the number of
-online CPUs and amount of memory in GB.</dd>
-</dlentry><dlentry>
-<dt>System statistics</dt>
-<dd>This section displays graphs to show statistics for CPU, memory,
-disk I/O, and network I/O for the host. Select <uicontrol>Collecting
-data after leaving this page</uicontrol> to continue collecting data
-when the host tab is out of view.</dd>
-</dlentry><dlentry>
-<dt>Software Updates</dt>
-<dd>This section displays information for all of the packages that
-have updates available, including package name, version, architecture,
-and repository. You can update all of the packages listed by selecting <uicontrol>Update
-All</uicontrol>. You cannot select individual packages for updates.</dd>
-</dlentry><dlentry>
-<dt>Repositories</dt>
-<dd>This section displays repositories that are associated with the
-host system. You can add, enable, edit, or remove repositories. Adding
-a repository associates it with the host system while enabling a repository
-allows the host to access it. If your system is Red Hat Enterprise
-Linux or Fedora, you can add <filepath>yum</filepath> repositories.
-If your system is Ubuntu or Debian, then add <filepath>deb</filepath> repositories.<p>If
-you are working with yum repositories, you can add a GPG check to
-verify that a package from this repository have not been corrupted.
-Select a repository and then <uicontrol>Edit</uicontrol>. Select <uicontrol>Yes</uicontrol> to
-enable GPG Check and then enter a URL to the GPG key file for the
-repository.</p><?Pub Caret 156?></dd>
-</dlentry><dlentry>
-<dt>Debug reports</dt>
-<dd>This section displays debug reports, including name and file path.
-You can select from options to generate a new report, or rename, remove,
-or download an existing report.<p>The debug report is generated using
-the <cmdname>sosreport</cmdname> command. It is available for Red
-Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>, Fedora,
-and Ubuntu distributions. The command generates a .tar file that contains
-configuration and diagnostic information, such as the running kernel
-version, loaded modules, and system and service configuration files.
-The command also runs external programs to collect further information
-and stores this output in the resulting archive.</p> </dd>
-</dlentry></dl></p>
-</csbody>
-<?tm 1392659967 1?>
-</cshelp>
-<?Pub *0000003492?>
diff --git a/plugins/kimchi/ui/pages/help/es_ES/host.dita b/plugins/kimchi/ui/pages/help/es_ES/host.dita
deleted file mode 100644
index 7734244..0000000
--- a/plugins/kimchi/ui/pages/help/es_ES/host.dita
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--Arbortext, Inc., 1988-2011, v.4002-->
-<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
- "..\dtd\cshelp.dtd">
-
-
-<!--This DITA specialized document type is not supported by the Authoring Tools development team.
-For support please see:
-https://w3.opensource.ibm.com/projects/dita-cshelp/-->
-<cshelp id="kimhhost" xml:lang="es-es">
-<title>Host</title>
-<shortdesc>La página <wintitle>Host</wintitle> muestra información sobre el sistema host y le permite concluir, reiniciar y conectar con el sistema principal.</shortdesc>
-<csbody>
-<p>Puede realizar las acciones siguientes en el host:<ul>
-<li>Seleccione <uicontrol>Concluir</uicontrol> para concluir el sistema host.</li>
-<li>Seleccione <uicontrol>Reiniciar</uicontrol> para reiniciar el sistema host.</li>
-<li>Seleccione <uicontrol>Conectar</uicontrol> para abrir una conexión VNC al sistema host, si no está conectado aún.</li>
-</ul></p>
-<p>Pulse en las secciones siguientes para visualizar información acerca del host:<dl>
-<dlentry>
-<dt>Información básica</dt>
-<dd>Esta sección muestra la distribución del sistema operativo de host, la versión y el nombre de código, así como el tipo de procesador y la cantidad de memoria en GB.</dd>
-</dlentry><dlentry>
-<dt>Estadísticas del sistema</dt>
-<dd>Esta sección muestra gráficos para mostrar estadísticas para CPU, memoria, E/S de disco y E/S de red para el host. Seleccione <uicontrol>Recoger datos después de salir de esta página</uicontrol> para continuar la recogida de datos cuando la pestaña principal ya no está a la vista.</dd>
-</dlentry><dlentry>
-<dt>Actualizaciones de software</dt>
-<dd>En esta sección se muestra información para todos los paquetes que tienen actualizaciones disponibles, incluido el nombre de paquete, versión, arquitectura y repositorio. Puede actualizar todos los paquetes listados seleccionando <uicontrol>Actualizar todo</uicontrol>. No puede seleccionar paquetes individuales para las actualizaciones.</dd>
-</dlentry><dlentry>
-<dt>Repositorios</dt>
-<dd>En esta sección se muestran los repositorios que están asociados con el sistema host. Puede añadir, habilitar, editar o eliminar repositorios. Añadir un repositorio lo asocia con el sistema host mientras que habilitar un repositorio permite que el host acceda a él. Si el sistema es Red Hat Enterprise
-Linux o Fedora, puede añadir repositorios <filepath>yum</filepath>.
-Si el sistema es Ubuntu o Debian, añada repositorios <filepath>deb</filepath>.<p>Si está trabajando con repositorios yum, puede añadir una comprobación GPG para verificar que un paquete de este repositorio no ha resultado dañado.
-Seleccione un repositorio y, a continuación, <uicontrol>Editar</uicontrol>. Seleccione <uicontrol>Sí</uicontrol> para habilitar la comprobación GPG y, a continuación, especifique un URL al archivo de claves GPG para el repositorio.</p></dd>
-</dlentry><dlentry>
-<dt>Informes de depuración</dt>
-<dd>En esta sección se muestran informes de depuración, incluido el nombre y la ruta de archivo.
-Puede seleccionar entre opciones para generar un informe nuevo, o bien redenominar, eliminar o descargar un informe existente.<p>El informe de depuración se genera utilizando el mandato <cmdname>sosreport</cmdname>. Está disponible para distribuciones de Red
-Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>, Fedora y Ubuntu. El mandato genera un archivo .tar que contiene la información de configuración y de diagnóstico, como la versión de kernel en ejecución, los módulos de carga y los archivos de configuración del sistema y servicio.
-El mandato también ejecuta programas externos para recopilar información adicional y almacena esta salida en el archivo resultante.</p> </dd>
-</dlentry></dl></p>
-</csbody>
-<?tm 1392659967 1?>
-</cshelp>
-
-
-<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
-<!-- T9N_SRC_ID 232 -->
-<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/kimchi/ui/pages/help/fr_FR/host.dita b/plugins/kimchi/ui/pages/help/fr_FR/host.dita
deleted file mode 100644
index f4c330b..0000000
--- a/plugins/kimchi/ui/pages/help/fr_FR/host.dita
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--Arbortext, Inc., 1988-2011, v.4002-->
-<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
- "..\dtd\cshelp.dtd">
-
-
-<!--This DITA specialized document type is not supported by the Authoring Tools development team.
-For support please see:
-https://w3.opensource.ibm.com/projects/dita-cshelp/-->
-<cshelp id="kimhhost" xml:lang="fr-fr">
-<title>Hôte</title>
-<shortdesc>La page <wintitle>Hôte</wintitle> affiche des informations
-sur le système hôte et vous permet d'arrêter, de redémarrer et de vous
-connecter à l'hôte.</shortdesc>
-<csbody>
-<p>Vous pouvez effectuer les actions suivantes sur l'hôte :<ul>
-<li>Sélectionnez <uicontrol>Arrêter</uicontrol> pour arrêter le système hôte.</li>
-<li>Sélectionnez <uicontrol>Redémarrer</uicontrol> pour redémarrer le système hôte.</li>
-<li>Sélectionnez <uicontrol>Connexion</uicontrol> pour ouvrir une connexion VNC
-au système hôte, si celui-ci n'est pas déjà connecté.</li>
-</ul></p>
-<p>Cliquez sur les sections suivantes pour afficher des informations sur l'hôte :<dl>
-<dlentry>
-<dt>Informations de base</dt>
-<dd>Cette section affiche la distribution, la version et le nom de code
-du système d'exploitation hôte, ainsi que le type de processeur et la quantité
-de mémoire en Go.</dd>
-</dlentry><dlentry>
-<dt>Statistiques système</dt>
-<dd>Cette section affiche les graphiques des statistiques pour l'UC, mémoire, ainsi que
-les E-S disque et E-S réseau pour l'hôte. Sélectionnez <uicontrol>Collecte des données une fois la page quittée</uicontrol>
-pour continuer la collecte de données lorsque l'onglet hôte n'est plus visible.</dd>
-</dlentry><dlentry>
-<dt>Mises à jour logicielles</dt>
-<dd>Cette section affiche des informations pour tous les modules qui
-disposent de mises à jour disponibles, y compris le nom de module, la version, l'architecture
-et le référentiel. Vous pouvez mettre à jour toutes les modules répertoriés en sélectionnant <uicontrol>Tout
-mettre à jour</uicontrol>. Vous ne pouvez pas sélectionner des modules individuels pour les mises à jour.</dd>
-</dlentry><dlentry>
-<dt>Référentiels</dt>
-<dd>Cette section affiche les référentiels associés au système hôte. Vous pouvez ajouter, activer, éditer ou retirer des référentiels. L'ajout d'un référentiel associe celui-ci au système hôte,
-tandis que l'activation d'un référentiel permet à l'hôte d'y accéder. Si votre système est Red Hat Enterprise Linux ou Fedora,
-vous pouvez ajouter des référentiels <filepath>yum</filepath>.
-Si votre système est de type Ubuntu ou Debian, ajoutez des référentiels
-<filepath>deb</filepath>.<p>Si vous travaillez avec des référentiels yum, vous pouvez ajouter un contrôle GPG
-afin de vérifier qu'un module provenant de ce référentiel n'a pas été endommagé.
-Sélectionnez un référentiel puis cliquez sur <uicontrol>Editer</uicontrol>. Sélectionnez <uicontrol>Oui</uicontrol> pour activer le contrôle GPG,
-puis entrez une URL pour le fichier de clés GPG du référentiel.</p></dd>
-</dlentry><dlentry>
-<dt>Rapports de débogage</dt>
-<dd>Cette section affiche les rapports de débogage, y compris le nom et le chemin du fichier.
-Vous pouvez faire un choix parmi les options afin de générer un nouveau rapport, ou renommer, supprimer,
-ou télécharger un rapport existant.<p>Le rapport de débogage est généré à
-l'aide de la commande <cmdname>sosreport</cmdname>. Cette option est disponible pour les distributions
-Red Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>, Fedora et Ubuntu. La commande génère un fichier .tar contenant la configuration et des informations de diagnostic,
-telles que la version du noyau d'exécution, les modules chargés, ainsi que les fichiers de configuration
-du système et de la maintenance.
-La commande exécute également des programmes externes pour collecter des informations
-supplémentaires et stocke cette sortie dans l'archive résultante.</p> </dd>
-</dlentry></dl></p>
-</csbody>
-<?tm 1392659967 1?>
-</cshelp>
-
-
-<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
-<!-- T9N_SRC_ID 232 -->
-<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/kimchi/ui/pages/help/it_IT/host.dita b/plugins/kimchi/ui/pages/help/it_IT/host.dita
deleted file mode 100644
index 63d3367..0000000
--- a/plugins/kimchi/ui/pages/help/it_IT/host.dita
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--Arbortext, Inc., 1988-2011, v.4002-->
-<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
- "..\dtd\cshelp.dtd">
-
-
-<!--This DITA specialized document type is not supported by the Authoring Tools development team.
-For support please see:
-https://w3.opensource.ibm.com/projects/dita-cshelp/-->
-<cshelp id="kimhhost" xml:lang="it-it">
-<title>Host</title>
-<shortdesc>La pagina <wintitle>Host</wintitle> visualizza le informazioni sul sistema host e consente di arrestarlo, riavviarlo e connettersi ad esso.</shortdesc>
-<csbody>
-<p>È possibile effettuare le seguenti operazioni sull'host:<ul>
-<li>Selezionare <uicontrol>Arresta</uicontrol> per arrestare il sistema host.</li>
-<li>Selezionare <uicontrol>Riavvia</uicontrol> per riavviare il sistema host.</li>
-<li>Selezionare <uicontrol>Connetti</uicontrol> per aprire una connessione VNC al sistema host, se non è già connesso.</li>
-</ul></p>
-<p>Fare clic sulle seguenti sezioni per visualizzare le informazioni sull'host:<dl>
-<dlentry>
-<dt>Informazioni di base</dt>
-<dd>Questa sezione visualizza il nome codice, la versione e la distribuzione del sistema operativo, come pure il tipo di processore e la quantità di memoria in GB.</dd>
-</dlentry><dlentry>
-<dt>Statistiche di sistema</dt>
-<dd>Questa sezione visualizza i grafici che mostrano le statistiche per la CPU, la memoria, l'I/O disco e di rete per l'host. Selezionare <uicontrol>Raccolta dati all'uscita dalla pagina</uicontrol> per continuare la raccolta dei dati quando la scheda host non è più visibile.</dd>
-</dlentry><dlentry>
-<dt>Aggiornamenti del software</dt>
-<dd>Questa sezione visualizza le informazioni per tutti i pacchetti per cui sono disponibili gli aggiornamenti, incluso il nome, la versione, l'architettura e il repository del pacchetto. È possibile aggiornare tutti i pacchetti elencati, selezionando <uicontrol>Aggiorna tutto</uicontrol>. Non è possibile selezionare singoli pacchetti per gli aggiornamenti.</dd>
-</dlentry><dlentry>
-<dt>Repository</dt>
-<dd>Questa sezione visualizza i repository associati al sistema host. È possibile aggiungere, abilitare, modificare o rimuovere i repository. L'aggiunta di un repository lo associa al sistema host, mentre l'abilitazione di un repository
-consente all'host di accedervi. Se il sistema è Red Hat Enterprise
-Linux o Fedora, è possibile aggiungere i repository <filepath>yum</filepath>.
-Se il sistema è Ubuntu o Debian, aggiungere i repository <filepath>deb</filepath>.<p>Se si stanno utilizzando i repository yum, è possibile aggiungere un controllo GPG per verificare che un pacchetto da questo repository non sia stato corrotto.
-Selezionare un repository, quindi <uicontrol>Modifica</uicontrol>. Selezionare <uicontrol>Sì</uicontrol> per abilitare il controllo GPG, quindi immettere un URL al file di chiavi GPG per il
-repository.</p></dd>
-</dlentry><dlentry>
-<dt>Report di debug</dt>
-<dd>Questa sezione visualizza i report di debug, incluso il nome e il percorso file.
-Le opzioni disponibili consentono di generare un nuovo report oppure ridenominare, rimuovere o scaricare un report esistente.<p>Il report di debug viene generato utilizzando il comando <cmdname>sosreport</cmdname>. È disponibile per le distribuzioni Red
-Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>, Fedora e Ubuntu. Il comando genera un file .tar che contiene informazioni di diagnostica e configurazione, come la versione del kernel in esecuzione, i moduli caricati e i file di configurazione del servizio e del sistema.
-Il comando esegue anche programmi esterni per raccogliere ulteriori informazioni e memorizza l'output nell'archivio risultante.</p> </dd>
-</dlentry></dl></p>
-</csbody>
-<?tm 1392659967 1?>
-</cshelp>
-
-
-<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
-<!-- T9N_SRC_ID 232 -->
-<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/kimchi/ui/pages/help/ja_JP/host.dita b/plugins/kimchi/ui/pages/help/ja_JP/host.dita
deleted file mode 100644
index 3a0141c..0000000
--- a/plugins/kimchi/ui/pages/help/ja_JP/host.dita
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--Arbortext, Inc., 1988-2011, v.4002-->
-<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
- "..\dtd\cshelp.dtd">
-
-
-<!--This DITA specialized document type is not supported by the Authoring Tools development team.
-For support please see:
-https://w3.opensource.ibm.com/projects/dita-cshelp/-->
-<cshelp id="kimhhost" xml:lang="ja-jp">
-<title>ホスト</title>
-<shortdesc><wintitle>「ホスト」</wintitle>ページには、ホスト・システムに関する情報が表示されます。ここで、ホストをシャットダウン、再始動、またホストに接続することができます。
-</shortdesc>
-<csbody>
-<p>以下のアクションをホストに対して実行できます。
-<ul>
-<li>ホスト・システムをシャットダウンするには<uicontrol>「シャットダウン」</uicontrol>を選択します。
-</li>
-<li>ホスト・システムを再始動するには<uicontrol>「再始動」</uicontrol>を選択します。
-</li>
-<li>ホスト・システムへの VNC 接続を (まだ接続されていない場合に) オープンするには、<uicontrol>「接続」</uicontrol>を選択します。
-</li>
-</ul></p>
-<p>ホストに関する情報を表示するには、以下の選択項目をクリックしてください。
-<dl>
-<dlentry>
-<dt>基本情報</dt>
-<dd>このセクションには、ホスト・オペレーティング・システムのディストリビューション、バージョン、およびコード名、さらにプロセッサー・タイプとメモリーの量 (GB 単位) が表示されます。
-</dd>
-</dlentry><dlentry>
-<dt>システム統計情報</dt>
-<dd>このセクションには、ホストの CPU、メモリー、ディスク入出力、およびネットワーク入出力の統計情報を表すグラフが表示されます。
-ホスト・タブを閉じたときにデータの収集を続行するには、<uicontrol>「このページを閉じた後、データを収集する」</uicontrol>を選択してください。
-</dd>
-</dlentry><dlentry>
-<dt>ソフトウェア更新</dt>
-<dd>このセクションには、更新が用意されているパッケージすべての情報
-(パッケージ名、バージョン、アーキテクチャー、リポジトリーなど) が表示されます。
-<uicontrol>「すべて更新」</uicontrol>を選択すると、リストされているパッケージすべてを更新できます。
-更新する対象として個別のパッケージを選択することはできません。
-</dd>
-</dlentry><dlentry>
-<dt>リポジトリー</dt>
-<dd>このセクションには、ホスト・システムに関連付けられているリポジトリーが表示されます。
-リポジトリーを追加する、有効にする、編集する、または削除することができます。
-リポジトリーを追加すると、そのリポジトリーがホスト・システムに関連付けられ、リポジトリーを有効にすると、そのリポジトリーにホストがアクセスできるようになります。
-システムが Red Hat Enterprise Linux または Fedora であれば、<filepath>yum</filepath> リポジトリーを追加できます。
-システムが Ubuntu または Debian であれば、<filepath>deb</filepath> リポジトリーを追加してください。
-<p>yum リポジトリーを操作している場合、そのリポジトリーに入っているパッケージが壊れていないことを確認するため、GPG チェックを追加できます。
-リポジトリーを選択し、<uicontrol>「編集」</uicontrol>をクリックしてください。
-<uicontrol>「はい」</uicontrol>を選択して GPG チェックを有効にしてから、そのリポジトリーの GPG 鍵ファイルの URL を入力してください。
-</p></dd>
-</dlentry><dlentry>
-<dt>デバッグ・レポート</dt>
-<dd>このセクションには、デバッグ・レポート (名前やファイル・パスなど) が表示されます。
-新しいレポートを生成、既存のレポートを名前変更、削除、またはダウンロードするためのオプションを選択できます。
-<p>デバッグ・レポートは、<cmdname>sosreport</cmdname> コマンドで生成されます。
-これは、Red Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>、Fedora、および Ubuntu ディストリビューションに用意されています。
-このコマンドは、構成および診断情報 (稼働中のカーネルのバージョン、ロードされているモジュール、システムおよびサービス構成ファイルなど) が入った .tar ファイルを生成します。
-このコマンドはまた、外部プログラムを実行して情報をさらに収集し、その出力を結果のアーカイブに保管します。
-</p> </dd>
-</dlentry></dl></p>
-</csbody>
-<?tm 1392659967 1?>
-</cshelp>
-
-
-<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
-<!-- T9N_SRC_ID 227 -->
-<!-- T9N_SH1P_STR1NG KVM21AAP001 1 -->
diff --git a/plugins/kimchi/ui/pages/help/ko_KR/host.dita b/plugins/kimchi/ui/pages/help/ko_KR/host.dita
deleted file mode 100644
index ee4a9c3..0000000
--- a/plugins/kimchi/ui/pages/help/ko_KR/host.dita
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--Arbortext, Inc., 1988-2011, v.4002-->
-<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
- "..\dtd\cshelp.dtd">
-
-
-<!--This DITA specialized document type is not supported by the Authoring Tools development team.
-For support please see:
-https://w3.opensource.ibm.com/projects/dita-cshelp/-->
-<cshelp id="kimhhost" xml:lang="ko-kr">
-<title>호스트</title>
-<shortdesc><wintitle>호스트</wintitle> 페이지에는 호스트 시스템에 대한 정보가 표시되며 이 페이지를 사용하여 호스트를 종료 및 다시 시작하거나 호스트에 연결할 수 있습니다.</shortdesc>
-<csbody>
-<p>호스트에 대해 다음 조치를 수행할 수 있습니다.<ul>
-<li>호스트 시스템을 종료하려면 <uicontrol>시스템 종료</uicontrol>를 선택합니다.</li>
-<li>호스트 시스템을 다시 시작하려면 <uicontrol>다시 시작</uicontrol>을 선택합니다.</li>
-<li>이미 연결되어 있지 않은 경우, 호스트 시스템에 대한 VNC 연결을 시작하려면 <uicontrol>연결</uicontrol>을 선택합니다.</li>
-</ul></p>
-<p>호스트에 대한 정보를 표시하려면 다음 섹션을 클릭하십시오.<dl>
-<dlentry>
-<dt>기본 정보</dt>
-<dd>이 섹션에는 호스트 운영 체제 배포, 버전, 코드 이름, 프로세서 유형, 메모리 용량(GB) 등이 표시됩니다.</dd>
-</dlentry><dlentry>
-<dt>시스템 통계</dt>
-<dd>이 섹션에는 호스트의 CPU, 메모리, 디스크 I/O, 네트워크 I/O에 대한 통계를 표시하는 그래프가 표시됩니다. 호스트 탭을 떠났을 때 데이터 수집을 계속하려면 <uicontrol>이 페이지를 떠난 후에 데이터 수집</uicontrol>을 선택합니다.</dd>
-</dlentry><dlentry>
-<dt>소프트웨어 업데이트</dt>
-<dd>이 섹션에는 패키지 이름, 버전, 아키텍처, 저장소를 비롯하여 사용 가능한 업데이트가 있는 모든 패키지에 대한 정보가 표시됩니다. <uicontrol>모두 업데이트</uicontrol>를 선택하여 나열된 모든 패키지를 업데이트할 수 있습니다. 업데이트에 대해 개별 패키지를 선택할 수는 없습니다.</dd>
-</dlentry><dlentry>
-<dt>저장소</dt>
-<dd>이 섹션에는 호스트 시스템과 연관된 저장소가 표시됩니다. 저장소를 추가하거나, 사용으로 설정하거나, 편집하거나, 제거할 수 있습니다. 저장소를 추가하면 저장소가 호스트 시스템과 연관되며, 저장소를 사용으로 설정하면 호스트가 저장소에 액세스할 수 있습니다. 해당 시스템이 Red Hat Enterprise Linux 또는 Fedora인 경우, <filepath>yum</filepath> 저장소를 추가할 수 있습니다.
-해당 시스템이 Ubuntu 또는 Debian인 경우, <filepath>deb</filepath> 저장소를 추가하십시오.<p>yum 저장소로 작업하는 경우, GPG 검사를 추가하여 이 저장소의 패키지가 손상되지 않았는지 확인할 수 있습니다.
-저장소를 선택한 후 <uicontrol>편집</uicontrol>을 선택하십시오. <uicontrol>예</uicontrol>를 선택하여 GPG 검사를 사용으로 설정한 후 저장소에 대한 GPG 키 파일의 URL을 입력하십시오.</p></dd>
-</dlentry><dlentry>
-<dt>디버그 보고서</dt>
-<dd>이 섹션에는 이름 및 파일 경로를 포함한 디버그 보고서가 표시됩니다.
-새 보고서 생성, 기존 보고서 이름 바꾸기, 제거, 다운로드 등의 옵션 중에서 선택할 수 있습니다.<p>디버그 보고서는 <cmdname>sosreport</cmdname> 명령을 사용하여 생성됩니다. 이는 Red Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>, Fedora 및 Ubuntu 배포에서 사용 가능합니다. 이 명령은 구성 및 진단 정보(예: 실행 중인 커널 버전, 로드된 모듈, 시스템 및 서비스 구성 파일)를 포함하는 .tar 파일을 생성합니다.
-또한 이 명령은 외부 프로그램을 실행하여 추가 정보를 수집하고 결과 아카이브에 이 출력을 저장합니다.</p> </dd>
-</dlentry></dl></p>
-</csbody>
-<?tm 1392659967 1?>
-</cshelp>
-
-
-<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
-<!-- T9N_SRC_ID 232 -->
-<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/kimchi/ui/pages/help/pt_BR/host.dita b/plugins/kimchi/ui/pages/help/pt_BR/host.dita
deleted file mode 100644
index 88f7eb2..0000000
--- a/plugins/kimchi/ui/pages/help/pt_BR/host.dita
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--Arbortext, Inc., 1988-2011, v.4002-->
-<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
- "..\dtd\cshelp.dtd">
-
-
-<!--This DITA specialized document type is not supported by the Authoring Tools development team.
-For support please see:
-https://w3.opensource.ibm.com/projects/dita-cshelp/-->
-<cshelp id="kimhhost" xml:lang="pt-br">
-<title>Host</title>
-<shortdesc>A página <wintitle>Host</wintitle> mostra informações sobre
-o sistema host e permite encerrar, reiniciar e conectar
-ao host.</shortdesc>
-<csbody>
-<p>É possível executar as ações a segur no host:<ul>
-<li>Selecione <uicontrol>Encerrar</uicontrol> para encerrar o sistema
-host.</li>
-<li>Selecione <uicontrol>Reiniciar</uicontrol> para reiniciar o sistema host.</li>
-<li>Selecione <uicontrol>Conectar</uicontrol> para abrir uma conexão VNC
-para o sistema host, se ele já não estiver conectado.</li>
-</ul></p>
-<p>Clique nas seções a seguir para exibir informações sobre o host:<dl>
-<dlentry>
-<dt>Informações básicas</dt>
-<dd>Esta seção exibe a distribuição do sistema operacional do host,
-a versão e o nome do código, bem como o tipo de processador e quantia de
-memória em GB.</dd>
-</dlentry><dlentry>
-<dt>Estatísticas do sistema</dt>
-<dd>Esta seção exibe gráficos para mostrar estatísticas para CPU, memória,
-E/S de disco e E/S de rede para o host. Selecione <uicontrol>Coletando
-dados depois de sair desta página</uicontrol> para continuar a coletar dados
-quando a guia do host estiver fora de visualização.</dd>
-</dlentry><dlentry>
-<dt>Atualizações de software</dt>
-<dd>Esta seção exibe informações de todos os pacotes que
-possuem atualizações disponíveis, incluindo nome do pacote, versão, arquitetura
-e repositório. É possível atualizar todos os pacotes listados selecionando <uicontrol>Atualizar
-todos</uicontrol>. Não é possível selecionar pacotes individuais para atualizações.</dd>
-</dlentry><dlentry>
-<dt>Repositórios</dt>
-<dd>Esta seção exibe repositórios que estão associados ao
-sistema host. É possível incluir, ativar, editar ou remover repositórios. Incluir
-um repositório o associa com o sistema host enquanto ativar um repositório
-permite que o host o acesse. Se o seu sistema for Red Hat Enterprise
-Linux ou Fedora, será possível incluir repositórios <filepath>yum</filepath>.
-Se o seu sistema for Ubuntu ou Debian, inclua repositórios <filepath>deb</filepath>.<p>Se
-você estiver trabalhando com repositórios yum, será possível incluir uma verificação de GPG para
-verificar se um pacote desse repositório não foi corrompido.
-Selecione um repositório e, em seguida, <uicontrol>Editar</uicontrol>. Selecione <uicontrol>Sim</uicontrol> para
-ativar a Verificação de GPG e, em seguida, insira uma URL no arquivo-chave de GPG para o
-repositório.</p></dd>
-</dlentry><dlentry>
-<dt>Relatórios de depuração</dt>
-<dd>Esta seção exibe relatórios de depuração, incluindo nome e caminho do arquivo.
-É possível selecionar a partir das opções para gerar um novo relatório ou renomear, remover
-ou fazer o download de um relatório existente.<p>O relatório de depuração é gerado usando
-o comando <cmdname>sosreport</cmdname>. Ele está disponível para distribuições
-Red Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>, Fedora
-e Ubuntu. O comando gera um arquivo .tar que contém
-informações de configuração e de diagnóstico, como versão do kernel
-em execução, módulos carregados e arquivos de configuração de sistema e de serviço.
-O comando também executa programas externos para coletar informações adicionais
-e armazena essa saída no archive resultante.</p> </dd>
-</dlentry></dl></p>
-</csbody>
-<?tm 1392659967 1?>
-</cshelp>
-
-
-<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
-<!-- T9N_SRC_ID 232 -->
-<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/kimchi/ui/pages/help/ru_RU/host.dita b/plugins/kimchi/ui/pages/help/ru_RU/host.dita
deleted file mode 100644
index fb72c21..0000000
--- a/plugins/kimchi/ui/pages/help/ru_RU/host.dita
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--Arbortext, Inc., 1988-2011, v.4002-->
-<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
- "..\dtd\cshelp.dtd">
-
-
-<!--This DITA specialized document type is not supported by the Authoring Tools development team.
-For support please see:
-https://w3.opensource.ibm.com/projects/dita-cshelp/-->
-<cshelp id="kimhhost" xml:lang="ru-ru">
-<title>Хост</title>
-<shortdesc>Страница <wintitle>Хост</wintitle> показывает информацию о системе хоста и позволяет останавливать хост, перезапускать хост и подключаться к нему.</shortdesc>
-<csbody>
-<p>На хосте можно выполнять следующие действия:<ul>
-<li><uicontrol>Завершить работу</uicontrol> - остановить систему хоста.</li>
-<li><uicontrol>Перезапустить</uicontrol> - перезапустить систему хоста.</li>
-<li><uicontrol>Подключиться</uicontrol> - открыть соединение VNC с системой хоста, если оно еще не установлено.</li>
-</ul></p>
-<p>Щелкните на следующих разделах для просмотра информации о хосте:<dl>
-<dlentry>
-<dt>Базовая информация</dt>
-<dd>В этом разделе показывается вариант операционной системы, его версия и кодовое имя, а также тип процессора и объем памяти в ГБ.</dd>
-</dlentry><dlentry>
-<dt>Системная статистика</dt>
-<dd>В этом разделе показываются графики, отражающие статистическую информацию о процессоре, памяти, дисковом вводе-выводе и сетевом вводе-выводе для хоста. Выберите <uicontrol>Сбор данных после закрытия этой страницы</uicontrol>, чтобы сбор данных продолжался после закрытия вкладки Хост.</dd>
-</dlentry><dlentry>
-<dt>Обновления программного обеспечения</dt>
-<dd>В этом разделе показывается информация обо всех пакетах, для которых доступны обновления, включая имя пакета, версию, архитектуру и хранилище. Можно обновить все пакеты в списке щелчком на <uicontrol>Обновить все</uicontrol>. Отдельные пакеты для обновления выбрать нельзя.</dd>
-</dlentry><dlentry>
-<dt>Хранилища</dt>
-<dd>В этом разделе показываются хранилища, связанные с системой хоста. Хранилища можно добавлять, активировать, изменять и удалять. При добавлении хранилище связывается с системой хоста, при активации хранилище становится доступным для хоста. Если система - Red Hat Enterprise Linux или Fedora, можно добавить хранилища <filepath>yum</filepath>.
-Если система - Ubuntu или Debian, добавьте хранилища <filepath>deb</filepath>.<p>При работе с хранилищами yum можно добавить проверку GPG для проверки целостности пакетов из данного хранилища.
-Выберите хранилище и щелкните на <uicontrol>Изменить</uicontrol>. Выберите <uicontrol>Да</uicontrol>, чтобы включить проверку GPG, и введите URL файла ключей GPG для хранилища.</p></dd>
-</dlentry><dlentry>
-<dt>Отладочные отчеты</dt>
-<dd>В этом разделе показываются отладочные отчеты, включая имя и путь.
-Доступны команды для создания, переименования, удаления и загрузки отчетов.<p>Отладочный отчет создается командой <cmdname>sosreport</cmdname>. Он доступен для Red
-Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>, Fedora и Ubuntu. Команда создает файл .tar с конфигурационной и диагностической информацией, такой как версия ядра, загруженные модули и файлы конфигурации системы и служб.
-Команда также выполняет внешние программы для сбора дополнительной информации и сохраняет их вывод в результирующем архиве.</p> </dd>
-</dlentry></dl></p>
-</csbody>
-<?tm 1392659967 1?>
-</cshelp>
-
-
-<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
-<!-- T9N_SRC_ID 232 -->
-<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/kimchi/ui/pages/help/zh_CN/host.dita b/plugins/kimchi/ui/pages/help/zh_CN/host.dita
deleted file mode 100644
index 78a89c3..0000000
--- a/plugins/kimchi/ui/pages/help/zh_CN/host.dita
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--Arbortext, Inc., 1988-2011, v.4002-->
-<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
- "..\dtd\cshelp.dtd">
-
-
-<!--This DITA specialized document type is not supported by the Authoring Tools development team.
-For support please see:
-https://w3.opensource.ibm.com/projects/dita-cshelp/-->
-<cshelp id="kimhhost" xml:lang="zh-cn">
-<title>主机</title>
-<shortdesc>“<wintitle>主机</wintitle>”页面显示有关主机系统的信息,并且允许您对主机进行关闭、启动和连接。</shortdesc>
-<csbody>
-<p>可对主机执行以下操作:<ul>
-<li>选择<uicontrol>关闭</uicontrol>以关闭主机系统。</li>
-<li>选择<uicontrol>重新启动</uicontrol>以重新启动主机系统。</li>
-<li>选择<uicontrol>连接</uicontrol>以打开与主机系统的 VNC 连接(如果尚未连接)。</li>
-</ul></p>
-<p>单击以下部分以显示有关主机的信息:<dl>
-<dlentry>
-<dt>基本信息</dt>
-<dd>本部分显示主机操作系统分发版、版本和代码名称以及处理器类型和内存量(以 GB 计)。</dd>
-</dlentry><dlentry>
-<dt>系统统计信息</dt>
-<dd>本部分显示图形,以显示主机有关 CPU、内存、磁盘 I/O 和网络 I/O 的统计信息。选择<uicontrol>离开此页面之后收集数据</uicontrol>以继续在主机选项卡不在视图中时收集数据。</dd>
-</dlentry><dlentry>
-<dt>软件更新</dt>
-<dd>本部分显示有更新可用的所有软件包的信息,其中包括软件包名称、版本、体系结构和存储库。可通过选择<uicontrol>全部更新</uicontrol>来更新所列示的所有软件包。不能针对更新选择各个软件包。</dd>
-</dlentry><dlentry>
-<dt>存储库</dt>
-<dd>本部分显示与主机系统关联的存储库。您可以添加、启用、编辑或除去存储库。当启用存储库会允许主机对其进行访问时,添加存储库会将其与主机系统关联。如果您的系统为 Red Hat Enterprise Linux 或 Fedora,那么可添加 <filepath>yum</filepath> 存储库。如果您的系统为 Ubuntu 或 Debian,那么请添加 <filepath>deb</filepath> 存储库。<p>如果要处理 Yum 存储库,您可以添加 GPG 检查以验证此存储库中的软件包是否已损坏。选择一个存储库,然后选择<uicontrol>编辑</uicontrol>。选择<uicontrol>是</uicontrol>以启用 GPG 检查,然后输入存储库中 GPG 密钥文件的 URL。</p></dd>
-</dlentry><dlentry>
-<dt>调试报告</dt>
-<dd>本部分显示调试报告,其中包括名称和文件路径。您可以从选项中进行选择以生成新报告,或者对现有报告进行重命名、除去或下载。<p>调试报告将使用
-<cmdname>sosreport</cmdname> 命令生成。该报告可用于 Red
-Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>、Fedora 和 Ubuntu 分发版。该命令将生成包含配置和诊断信息的 .tar 文件,例如,正在运行的内核版本、已装入的模块以及系统和服务配置文件。该命令还会运行外部程序以收集更多信息并将此输出存储在生成的归档中。</p> </dd>
-</dlentry></dl></p>
-</csbody>
-<?tm 1392659967 1?>
-</cshelp>
-
-
-<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
-<!-- T9N_SRC_ID 232 -->
-<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/kimchi/ui/pages/help/zh_TW/host.dita b/plugins/kimchi/ui/pages/help/zh_TW/host.dita
deleted file mode 100644
index a55aae4..0000000
--- a/plugins/kimchi/ui/pages/help/zh_TW/host.dita
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--Arbortext, Inc., 1988-2011, v.4002-->
-<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"
- "..\dtd\cshelp.dtd">
-
-
-<!--This DITA specialized document type is not supported by the Authoring Tools development team.
-For support please see:
-https://w3.opensource.ibm.com/projects/dita-cshelp/-->
-<cshelp id="kimhhost" xml:lang="zh-tw">
-<title>主機</title>
-<shortdesc>「<wintitle>主機</wintitle>」頁面會顯示主機系統的相關資訊,並容許您關閉、重新啟動以及連接到主機。</shortdesc>
-<csbody>
-<p>您可以針對主機執行下列動作:<ul>
-<li>選取<uicontrol>關閉</uicontrol>以關閉主機系統。</li>
-<li>選取<uicontrol>重新啟動</uicontrol>以重新啟動主機系統。</li>
-<li>選取<uicontrol>連接</uicontrol>以開啟與主機系統的 VNC 連線(如果尚未連線到主機系統)。</li>
-</ul></p>
-<p>按一下下列區段以顯示主機的相關資訊:<dl>
-<dlentry>
-<dt>基本資訊</dt>
-<dd>此區段會顯示主機作業系統發行套件、版本、程式碼名稱、處理器類型以及記憶體數量 (GB)。</dd>
-</dlentry><dlentry>
-<dt>系統統計資料</dt>
-<dd>此區段會顯示一些圖形,以顯示主機的 CPU、記憶體、磁碟 I/O 和網路 I/O 的統計資料。選取<uicontrol>離開此頁面之後收集資料</uicontrol>以在主機標籤從視線中消失之後繼續收集資料。</dd>
-</dlentry><dlentry>
-<dt>軟體更新</dt>
-<dd>此區段會顯示具有可用更新的所有套件的相關資訊,包括套件名稱、版本、架構和儲存庫。您可以透過選取<uicontrol>全部更新</uicontrol>來更新所有列出的套件。不能選取個別套件以進行更新。</dd>
-</dlentry><dlentry>
-<dt>儲存庫</dt>
-<dd>此區段會顯示與主機系統相關聯的儲存庫。您可以新增、啟用、編輯或移除儲存庫。新增儲存庫可使它與主機系統相關聯,而啟用儲存庫則容許主機存取儲存庫。如果您的系統是
-Red Hat Enterprise Linux 或 Fedora,則可以新增 <filepath>yum</filepath> 儲存庫。如果您的系統是
-Ubuntu 或 Debian,則可以新增 <filepath>deb</filepath> 儲存庫。<p>如果您正在使用
-yum 儲存庫,則可以新增 GPG 檢查以驗證此儲存庫中的某個套件是否未毀損。選取儲存庫,然後選取<uicontrol>編輯</uicontrol>。選取<uicontrol>是</uicontrol>以啟用
-GPG 檢查,然後輸入儲存庫的 GPG 金鑰檔的 URL。</p></dd>
-</dlentry><dlentry>
-<dt>除錯報告</dt>
-<dd>此區段顯示除錯報告,包括名稱和檔案路徑。您可以選取選項以產生新報告、或是重新命名、移除或下載現有報告。<p>除錯報告是使用
-<cmdname>sosreport</cmdname> 指令產生的。該指令可用於 Red
-Hat Enterprise <tm tmtype="tm" trademark="Linux">Linux</tm>、Fedora
-及 Ubuntu 發行套件。該指令會產生 .tar 檔案,其包含配置與診斷資訊,例如執行中的核心版本、已載入模組以及系統和服務配置檔案。該指令還會執行外部程式來收集更多資訊並將此輸出儲存在產生的保存檔中。</p> </dd>
-</dlentry></dl></p>
-</csbody>
-<?tm 1392659967 1?>
-</cshelp>
-
-
-<!-- ENGL1SH_VERS10N 47930_4 DO NOT REMOVE OR CHANGE THIS LINE -->
-<!-- T9N_SRC_ID 232 -->
-<!-- T9N_SH1P_STR1NG KVM21AAP001 3 -->
diff --git a/plugins/kimchi/ui/pages/host.html.tmpl b/plugins/kimchi/ui/pages/host.html.tmpl
deleted file mode 100644
index d87debc..0000000
--- a/plugins/kimchi/ui/pages/host.html.tmpl
+++ /dev/null
@@ -1,177 +0,0 @@
-#*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2013-2015
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *#
-
-#unicode UTF-8
-#import gettext
-#from wok.cachebust import href
-#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
-#silent _ = t.gettext
-#silent _t = t.gettext
-<!DOCTYPE html>
-<html>
-<head>
-<link rel="stylesheet" href="plugins/kimchi/css/theme-default.min.css">
-<script src="plugins/kimchi/js/kimchi.min.js"></script>
-</head>
-<body>
-<div id="host-root-container">
- <div class="toolbar">
- <div class="tools">
- </div>
- </div>
- <div id="host-content-container" class="empty-when-logged-off"></div>
-</div>
-
-<script id="host-tmpl" type="kimchi/template">
- <div class="host-panel">
- <div class="logo-container">
- <div class="logo" style="background-image: url({logo});"></div>
- </div>
- <div id="host-info-container" class="info-container">
- <h2 class="hostname">{hostname}</h2>
- <div class="action-panel">
- <button id="host-button-shutdown" class="btn-normal-1 stop">
- <div class="button-icon action-icon-stop"></div>
- $_("Shut down")
- </button>
- <button id="host-button-restart" class="btn-normal-1 restart">
- <div class="button-icon action-icon-restart"></div>
- $_("Restart")
- </button>
- <button class="btn-normal-1 connect" disabled="disabled">
- <div class="button-icon action-icon-connect"></div>
- $_("Connect")
- </button>
- </div>
- <div class="host-section">
- <h3 class="section-header"
- aria-expanded="false"
- aria-controls="content-sys-info">
- $_("Basic Information")
- </h3>
- <div id="content-sys-info" class="section-content">
- <div class="section-row">
- <div class="section-label">$_("OS Distro")</div>
- <div class="section-value">{os_distro}</div>
- </div>
- <div class="section-row">
- <div class="section-label">$_("OS Version")</div>
- <div class="section-value">{os_version}</div>
- </div>
- <div class="section-row">
- <div class="section-label">$_("OS Code Name")</div>
- <div class="section-value">{os_codename}</div>
- </div>
- <div class="section-row">
- <div class="section-label">$_("Processor")</div>
- <div class="section-value">{cpu_model}</div>
- </div>
- <div class="section-row">
- <div class="section-label">$_("CPU(s)")</div>
- <div class="section-value">{cpus}</div>
- </div>
- <div class="section-row">
- <div class="section-label">$_("Memory")</div>
- <div class="section-value">{memory}</div>
- </div>
- </div>
- </div>
- <div class="host-section">
- <h3 class="section-header"
- aria-controls="content-sys-statistics">
- $_("System Statistics")
- </h3>
- <div id="content-sys-statistics" class="section-content">
- <div class="section-row">
- <div class="section-label">$_("CPU")</div>
- <div class="section-value">
- <div id="container-chart-cpu" class="inline-block"></div>
- </div>
- </div>
- <div class="section-row">
- <div class="section-label">$_("Memory")</div>
- <div class="section-value">
- <div id="container-chart-memory" class="inline-block"></div>
- </div>
- </div>
- <div class="section-row">
- <div class="section-label">$_("Disk I/O")</div>
- <div class="section-value">
- <div id="container-chart-disk-io" class="inline-block"></div>
- </div>
- </div>
- <div class="section-row">
- <div class="section-label">$_("Network I/O")</div>
- <div class="section-value">
- <div id="container-chart-network-io" class="inline-block"></div>
- </div>
- </div>
- </div>
- </div>
- <div id="software-update-section" class="host-section hidden">
- <h3 class="section-header"
- aria-controls="content-software-update">
- $_("Software Updates")
- </h3>
- <div id="content-software-update" class="section-content">
- <div class="section-row">
- <div class="section-value">
- <div id="software-updates-grid-container"></div>
- <div id="software-updates-progress-container" class="hidden">
- <label for="software-updates-progress-textarea">$_("Update Progress")</label>
- <textarea id="software-updates-progress-textarea" readonly></textarea>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div id="repositories-section" class="host-section hidden">
- <h3 class="section-header"
- aria-controls="content-repositories">
- $_("Repositories")
- </h3>
- <div id="content-repositories" class="section-content">
- <div class="section-row">
- <div class="section-value">
- <div id="repositories-grid-container"></div>
- </div>
- </div>
- </div>
- </div>
- <div id="debug-report-section" class="host-section hidden">
- <h3 class="section-header"
- aria-controls="content-sys-reports">
- $_("Debug Reports")
- </h3>
- <div id="content-sys-reports" class="section-content">
- <div class="section-row">
- <div class="section-value">
- <div id="available-reports-grid-container"></div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
-</script>
-
-<script type="text/javascript">
- kimchi.host_main();
-</script>
-</body>
-</html>
diff --git a/plugins/kimchi/ui/pages/i18n.json.tmpl b/plugins/kimchi/ui/pages/i18n.json.tmpl
index cd320e0..f7f557d 100644
--- a/plugins/kimchi/ui/pages/i18n.json.tmpl
+++ b/plugins/kimchi/ui/pages/i18n.json.tmpl
@@ -75,49 +75,6 @@
"KCHHOST6007M": "$_("Sent")",
"KCHHOST6008M": "$_("Shutting down or restarting host will cause unsaved work lost. Continue to shut down/restarting?")",
-
- "KCHREPO6001M": "$_("Confirm")",
- "KCHREPO6002M": "$_("Repository will be removed permanently and can't be recovered. Do you want to continue?")",
- "KCHREPO6003M": "$_("Repositories")",
- "KCHREPO6004M": "$_("ID")",
- "KCHREPO6005M": "$_("Name")",
- "KCHREPO6006M": "$_("Base URL")",
- "KCHREPO6007M": "$_("Is Mirror")",
- "KCHREPO6008M": "$_("URL Args")",
- "KCHREPO6009M": "$_("Enabled")",
- "KCHREPO6010M": "$_("GPG Check")",
- "KCHREPO6011M": "$_("GPG Key")",
- "KCHREPO6012M": "$_("Add")",
- "KCHREPO6013M": "$_("Edit")",
- "KCHREPO6014M": "$_("Remove")",
- "KCHREPO6016M": "$_("Enable")",
- "KCHREPO6017M": "$_("Disable")",
-
-
- "KCHUPD6001M": "$_("Software Updates")",
- "KCHUPD6002M": "$_("Package Name")",
- "KCHUPD6003M": "$_("Version")",
- "KCHUPD6004M": "$_("Architecture")",
- "KCHUPD6005M": "$_("Repository")",
- "KCHUPD6006M": "$_("Update All")",
- "KCHUPD6007M": "$_("Updating...")",
- "KCHUPD6008M": "$_("Failed to retrieve packages update information.")",
- "KCHUPD6009M": "$_("Failed to update package(s).")",
-
-
- "KCHDR6001M": "$_("Debug report will be removed permanently and can't be recovered. Do you want to continue?")",
- "KCHDR6002M": "$_("Debug Reports")",
- "KCHDR6003M": "$_("Name")",
- "KCHDR6005M": "$_("Generated Time")",
- "KCHDR6006M": "$_("Generate")",
- "KCHDR6007M": "$_("Generating...")",
- "KCHDR6008M": "$_("Rename")",
- "KCHDR6009M": "$_("Remove")",
- "KCHDR6010M": "$_("Download")",
- "KCHDR6011M": "$_("Report name should contain only letters, digits, underscore ('_') and/or hyphen ('-').")",
- "KCHDR6012M": "$_("Pending...")",
- "KCHDR6013M": "$_("Report name is the same as the original one.")",
-
"KCHVM6001M": "$_("This will delete the virtual machine and its virtual disks. This operation cannot be undone. Would you like to continue?")",
"KCHVM6002M": "$_("Power off Confirmation")",
"KCHVM6003M": "$_("This action may produce undesirable results, "
diff --git a/plugins/kimchi/ui/pages/report-add.html.tmpl b/plugins/kimchi/ui/pages/report-add.html.tmpl
deleted file mode 100644
index 25bf0a9..0000000
--- a/plugins/kimchi/ui/pages/report-add.html.tmpl
+++ /dev/null
@@ -1,56 +0,0 @@
-#*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2013-2015
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *#
-#unicode UTF-8
-#import gettext
-#from wok.cachebust import href
-#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
-#silent _ = t.gettext
-#silent _t = t.gettext
-<!DOCTYPE html>
-<div id="report-add-window" class="window">
- <header>
- <h1 class="title h1 grey">$_("Generate a New Debug Report")</h1>
- </header>
- <div class="content">
- <form id="form-report-add">
- <section class="form-section">
- <h2>
- <label for="report-name-textbox">$_("Report Name")</label>
- </h2>
- <div class="field">
- <input type="text" class="text" id="report-name-textbox" name="name" />
- <span class="icon-info-circled light-grey c1"></span>
- <span class="info-add-debug-report">
- $_("The name used to identify the report. If omitted, a name will be chosen based on current time. Name can contain: letters, digits, underscore (\"_\") and hyphen (\"-\").")
- </span>
- </div>
- </section>
- </form>
- </div>
- <footer>
- <div class="btn-group">
- <button id="button-report-add" class="btn-normal"><span class="text">$_("Generate")</span></button>
- <button id="button-report-cancel" class="btn-normal close" type="button">
- <span calss="text">$_("Cancel")</span>
- </button>
- </div>
- </footer>
-</div>
-<script>
- kimchi.report_add_main();
-</script>
diff --git a/plugins/kimchi/ui/pages/report-rename.html.tmpl b/plugins/kimchi/ui/pages/report-rename.html.tmpl
deleted file mode 100644
index 90a0a80..0000000
--- a/plugins/kimchi/ui/pages/report-rename.html.tmpl
+++ /dev/null
@@ -1,56 +0,0 @@
-#*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2014-2015
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *#
-#unicode UTF-8
-#import gettext
-#from wok.cachebust import href
-#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
-#silent _ = t.gettext
-#silent _t = t.gettext
-<!DOCTYPE html>
-<div id="report-rename-window" class="window">
- <header>
- <h1 class="title h1 grey">$_("Rename a Debug Report")</h1>
- </header>
- <div class="content">
- <form id="form-report-rename">
- <section class="form-section">
- <h2>
- <label for="report-name-textbox">$_("Report Name")</label>
- </h2>
- <div class="field">
- <input type="text" class="text" id="report-name-textbox" name="name" />
- <span class="icon-info-circled light-grey c1"></span>
- <span class="info-debug-report-rename">
- $_("The name used to identify the report. Name can contain: letters, digits and hyphen (\"-\").")
- </span>
- </div>
- </section>
- </form>
- </div>
- <footer>
- <div class="btn-group">
- <button id="button-report-rename" class="btn-normal"><span class="text">$_("Submit")</span></button>
- <button id-"button-report-rename-cancel" class="btn-normal close" type="button">
- <span class="text">$_("Cancel")</span>
- </button>
- </div>
- </footer>
-</div>
-<script>
- kimchi.report_rename_main();
-</script>
diff --git a/plugins/kimchi/ui/pages/repository-add.html.tmpl b/plugins/kimchi/ui/pages/repository-add.html.tmpl
deleted file mode 100644
index 950252a..0000000
--- a/plugins/kimchi/ui/pages/repository-add.html.tmpl
+++ /dev/null
@@ -1,113 +0,0 @@
-#*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2014-2015
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *#
-#unicode UTF-8
-#import gettext
-#from wok.cachebust import href
-#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
-#silent _ = t.gettext
-#silent _t = t.gettext
-<div id="repository-add-window" class="window">
- <form id="form-repository-add">
- <header class="window-header">
- <h1 class="title h1 grey">$_("Add a Repository")</h1>
- </header>
- <section>
- <div class="content">
- <div class="form-section yum">
- <h2>$_("Identifier")</h2>
- <div class="field">
- <div class="textbox-wrapper">
- <input type="text" class="text" name="repo_id" />
- </div>
- <div class="icon-info-circled light-grey c1 help-inline"></div>
- <p class="text-help help-inline">
- $_("Single word, unique identifier for the repository.")
- </p>
- </div>
- </div>
- <section class="form-section yum">
- <h2>$_("Name")</h2>
- <div class="field">
- <div class="textbox-wrapper">
- <input type="text" class="text" name="config[repo_name]" />
- </div>
- <div class="icon-info-circled light-grey c1 help-inline"></div>
- <p class="text-help help-inline">
- $_("Textual name for the repository.")
- </p>
- </div>
- </section>
- <section class="form-section">
- <h2>$_("URL")<span class="required" role="presentation" title='$_("Required Field")'>*</span></h2>
- <div class="field">
- <div class="textbox-wrapper">
- <input type="text" class="text required" name="baseurl" />
- </div>
- <div class="icon-info-circled light-grey c1 help-inline"></div>
- <p class="text-help help-inline">
- $_("URL to the repository. Supported protocols are http, ftp, and file.")
- </p>
- </div>
- <div class="field yum">
- <p class="yum">
- <input type="checkbox" name="isMirror" value="true" id="isMirror" />
- <label id="isMirrorLabel" for="isMirror">$_("Repository is a mirror")</label>
- </p>
- </div>
- </section>
- <section class="form-section repository-dist deb">
- <h2>$_("Distribution")</h2>
- <div class="field">
- <div class="textbox-wrapper">
- <input type="text" class="text" name="config[dist]" />
- </div>
- <div class="icon-info-circled light-grey c1 help-inline"></div>
- <p class="text-help help-inline">
- $_("Distribution of the DEB repository.")
- </p>
- </div>
- </section>
- <section class="form-section repository-comps deb">
- <h2>$_("Components")</h2>
- <div class="field">
- <div class="textbox-wrapper">
- <input type="text" class="text" name="config[comps]" />
- </div>
- <div class="icon-info-circled light-grey c1 help-inline"></div>
- <p class="text-help help-inline">
- $_("List of components in DEB repository.")
- </p>
- </div>
- </section>
- </div>
- </section>
- <footer>
- <div class="btn-group">
- <button type="submit" id="button-repository-add" class="btn-normal" disabled="disabled">
- <span class="text">$_("Add")</span>
- </button>
- <button type="button" id="button-repository-close" class="btn-normal close">
- <span class="text">$("Cancel")</span>
- </button>
- </div>
- </footer>
- </form>
-</div>
-<script>
- kimchi.repository_add_main();
-</script>
diff --git a/plugins/kimchi/ui/pages/repository-edit.html.tmpl b/plugins/kimchi/ui/pages/repository-edit.html.tmpl
deleted file mode 100644
index e5a3cfb..0000000
--- a/plugins/kimchi/ui/pages/repository-edit.html.tmpl
+++ /dev/null
@@ -1,117 +0,0 @@
-#*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2014-2015
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *#
-#unicode UTF-8
-#import gettext
-#from wok.cachebust import href
-#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
-#silent _ = t.gettext
-#silent _t = t.gettext
-
-<div id="repository-edit-window" class="window">
- <form id="form-repository-edit">
- <header>
- <h1 class="title h1 grey">$_("Edit Repository")</h1>
- </header>
- <div class="content">
- <section id="form-repository-edit">
- <fieldset class="repository-edit-fieldset">
- <div class="repository-id yum">
- <div class="repository-edit-wrapper-label">
- <label for="repository-edit-id-textbox">$_("ID")</label>
- </div>
- <div class="repository-edit-wrapper-controls">
- <input id="repository-edit-id-textbox" name="repo_id" type="text" disabled="disabled" readonly="readonly"/>
- </div>
- </div>
- <div class="repository-name yum">
- <div class="repository-edit-wrapper-label">
- <label for="repository-edit-name-textbox">$_("Name")</label>
- </div>
- <div class="repository-edit-wrapper-controls">
- <input id="repository-edit-name-textbox" class="yum" name="config[repo_name]" type="text" />
- </div>
- </div>
- <div class="repository-url">
- <div class="repository-edit-wrapper-label">
- <label for="repository-edit-baseurl-textbox">$_("URL")</label>
- </div>
- <div class="repository-edit-wrapper-controls">
- <input id="repository-edit-baseurl-textbox" name="baseurl" type="text" />
- </div>
- </div>
- <div class="repository-dist deb">
- <div class="repository-edit-wrapper-label">
- <label for="repository-edit-urlargs-textbox">$_("Distribution")</label>
- </div>
- <div class="repository-edit-wrapper-controls">
- <input id="repository-edit-urlargs-textbox" class="deb" name="config[dist]" type="text" />
- </div>
- </div>
- <div class="repository-mirrorlist yum">
- <div class="repository-edit-wrapper-label">
- <label for="repository-edit-urlargs-textbox">$_("Mirror List URL")</label>
- </div>
- <div class="repository-edit-wrapper-controls">
- <input id="repository-edit-urlargs-textbox" class="yum" name="config[mirrorlist]" type="text" />
- </div>
- </div>
- <div class="repository-comps deb">
- <div class="repository-edit-wrapper-label">
- <label for="repository-edit-urlargs-textbox">$_("Components")</label>
- </div>
- <div class="repository-edit-wrapper-controls">
- <input id="repository-edit-urlargs-textbox" class="deb" name="config[comps]" type="text" />
- </div>
- </div>
- <div class="repository-gpgkey yum">
- <div class="repository-edit-wrapper-label">
- <label for="repository-edit-gpgkey-textbox">$_("GPG Key")</label>
- </div>
- <div class="repository-edit-wrapper-controls">
- <input id="repository-edit-gpgkey-textbox" class="yum" name="config[gpgkey]" type="text" />
- </div>
- </div>
- <div class="repository-gpgcheck yum">
- <div class="repository-edit-wrapper-label">
- <label>$_("GPG Check")</label>
- </div>
- <div class="repository-edit-wrapper-controls">
- <input id="repository-edit-gpgcheck-radio-true" class="yum" name="config[gpgcheck]" type="radio" value="true" />
- <label for="repository-edit-gpgcheck-radio-true">$_("Yes")</label>
- <input id="repository-edit-gpgcheck-radio-false" class="yum" name="config[gpgcheck]" type="radio" value="false" />
- <label for="repository-edit-gpgcheck-radio-false">$_("No")</label>
- </div>
- </div>
- </fieldset>
- </section>
- </div>
- <footer>
- <div class="btn-group">
- <button type="submit" id="repository-edit-button-save" class="btn-normal">
- <span class="text">$_("Save")</span>
- </button>
- <button type="button" id="repository-edit-button-cancel" class="close btn-normal">
- <span class="text">$_("Cancel")</span>
- </button>
- </div>
- </footer>
- </form>
-</div>
-<script type="text/javascript">
- kimchi.repository_edit_main();
-</script>
diff --git a/plugins/kimchi/yumparser.py b/plugins/kimchi/yumparser.py
deleted file mode 100644
index 74f9fa0..0000000
--- a/plugins/kimchi/yumparser.py
+++ /dev/null
@@ -1,283 +0,0 @@
-#
-# Project Kimchi
-#
-# Copyright IBM, Corp. 2015
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-import subprocess
-from os import listdir
-from os.path import isfile, splitext
-
-
-class YumRepoObject(object):
-
- def __init__(self, repo_id, repofile):
- self.repo_id = repo_id
- self.name = None
- self.baseurl = None
- self.enabled = True
- self.gpgcheck = True
- self.gpgkey = None
- self.metalink = None
- self.mirrorlist = None
- self.repofile = repofile
- self.string_attrs = ['baseurl', 'gpgkey', 'name',
- 'metalink', 'mirrorlist']
- self.boolean_attrs = ['enabled', 'gpgcheck']
-
- def set_attribute(self, key, strvalue):
- if key in self.string_attrs:
- setattr(self, key, strvalue)
- elif key in self.boolean_attrs:
- setattr(self, key, (strvalue == '1'))
-
- def get_attribute_str(self, key):
- if key not in self.get_attributes():
- return None
-
- if key in self.boolean_attrs:
- str_value = '1' if getattr(self, key) is True else '0'
- else:
- str_value = getattr(self, key)
-
- if str_value is None:
- return None
-
- return key + '=' + str_value
-
- def get_attributes(self):
- return self.string_attrs + self.boolean_attrs
-
- def enable(self):
- self.enabled = True
-
- def disable(self):
- self.enabled = False
-
- def __str__(self):
- str_obj = '[' + self.repo_id + ']' + '\n'
- for key in self.get_attributes():
- if self.get_attribute_str(key) is not None:
- str_obj += self.get_attribute_str(key) + '\n'
- return str_obj
-
-
-def get_repo_files():
- def _is_repository_file(f):
- _, f_extension = splitext(f)
- return isfile(f) and (f_extension == '.repo')
-
- YUM_REPO_DIR = '/etc/yum.repos.d'
- return [YUM_REPO_DIR+'/'+f for f in listdir(YUM_REPO_DIR)
- if _is_repository_file(YUM_REPO_DIR+'/'+f)]
-
-
-def _ignore_line_repo_file(line):
- return line.startswith("#") or '=' not in line
-
-
-def _get_repos_from_file(repo_file):
- repos_from_file = {}
- current_repo = None
- current_repo_id = None
- with open(repo_file) as f:
- for line in f.readlines():
- line = line.strip()
- if line.startswith("["):
- if current_repo is not None:
- repos_from_file[current_repo_id] = current_repo
- current_repo_id = line.strip('[]')
- current_repo = YumRepoObject(current_repo_id, repo_file)
- continue
- if _ignore_line_repo_file(line):
- continue
- key, value = line.split('=', 1)
- key = key.strip()
- value = value.strip()
- current_repo.set_attribute(key, value)
-
- # add the last repo from file.
- if current_repo is not None:
- repos_from_file[current_repo_id] = current_repo
-
- return repos_from_file
-
-
-def get_yum_repositories():
- repo_files = get_repo_files()
- repos = {}
- for yum_repo in repo_files:
- repos.update(_get_repos_from_file(yum_repo))
-
- return repos
-
-
-def _retrieve_repo_line_index(data, repo):
- repo_entry = '[' + repo.repo_id + ']\n'
- try:
- repo_index = data.index(repo_entry)
- except:
- return None
- return repo_index
-
-
-def _update_repo_file_data(data, repo, repo_index):
- remaining_repo_attrs = repo.get_attributes()
-
- for i in range(repo_index + 1, len(data)):
- line = data[i].strip()
- if line.startswith('['):
- break
- if _ignore_line_repo_file(line):
- continue
- key, _ = line.split('=', 1)
- key = key.strip()
- attr_str = repo.get_attribute_str(key)
- if attr_str is None:
- continue
- remaining_repo_attrs.remove(key)
- data[i] = attr_str + '\n'
-
- for attr in remaining_repo_attrs:
- attr_str = repo.get_attribute_str(attr)
- if attr_str is None:
- continue
- data.insert(repo_index+1, attr_str + '\n')
-
- return data
-
-
-def write_repo_to_file(repo):
- with open(repo.repofile) as f:
- data = f.readlines()
-
- repo_index = _retrieve_repo_line_index(data, repo)
- if repo_index is None:
- return
-
- data = _update_repo_file_data(data, repo, repo_index)
-
- with open(repo.repofile, 'w') as f:
- f.writelines(data)
-
-
-def _get_last_line_repo(data, repo_index):
- stop_delete_index = None
- for i in range(repo_index+1, len(data)):
- line = data[i].strip()
- if line.startswith('['):
- stop_delete_index = i - 1
- break
- if stop_delete_index is None:
- stop_delete_index = len(data) - 1
-
- return stop_delete_index
-
-
-def _remove_repo_file_data(data, repo_index):
- last_line_repo = _get_last_line_repo(data, repo_index)
- for i in range(last_line_repo, repo_index - 1, -1):
- data.pop(i)
- return data
-
-
-def delete_repo_from_file(repo):
- with open(repo.repofile) as f:
- data = f.readlines()
-
- repo_index = _retrieve_repo_line_index(data, repo)
- if repo_index is None:
- return
-
- data = _remove_repo_file_data(data, repo_index)
-
- with open(repo.repofile, 'w') as f:
- f.writelines(data)
-
-
-class YumUpdatePackageObject(object):
-
- def __init__(self, name, arch, version, repo):
- self.name = name
- self.arch = arch
- self.version = version
- self.ui_from_repo = repo
-
-
-def _include_line_checkupdate_output(line):
- tokens = line.split()
-
- if len(tokens) != 3:
- return False
-
- if '.' not in tokens[0]:
- return False
-
- return True
-
-
-def _ignore_obsoleting_packages_in(output):
- out = ''
- for l in output.split('\n'):
- if 'Obsoleting ' in l:
- break
- out += l + '\n'
- return out
-
-
-def _filter_lines_checkupdate_output(output):
- if output is None:
- return []
-
- output = _ignore_obsoleting_packages_in(output)
-
- out = [l for l in output.split('\n')
- if _include_line_checkupdate_output(l)]
- return out
-
-
-def _get_yum_checkupdate_output():
- cmd = ['yum', 'check-update', '-d0']
- yum_update_cmd = subprocess.Popen(cmd,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- out, error = yum_update_cmd.communicate()
- return_code = yum_update_cmd.returncode
- if return_code == 1:
- return None
-
- return out
-
-
-def get_yum_packages_list_update(checkupdate_output=None):
- if checkupdate_output is None:
- checkupdate_output = _get_yum_checkupdate_output()
-
- filtered_output = _filter_lines_checkupdate_output(checkupdate_output)
-
- packages = []
- for line in filtered_output:
- line = line.split()
- index = 0
- name_arch = line[index]
- index += 1
- version = line[index]
- index += 1
- repo = line[index]
- name, arch = name_arch.rsplit('.', 1)
- packages.append(YumUpdatePackageObject(name, arch, version, repo))
-
- return packages
--
2.1.0
9 years, 3 months
[PATCH] Add missing translations
by Aline Manera
Signed-off-by: Aline Manera <alinefm(a)linux.vnet.ibm.com>
---
po/de_DE.po | 1785 +++++++++++++++++++++--------------------------------
po/en_US.po | 5 +-
po/es_ES.po | 1768 +++++++++++++++++++++-------------------------------
po/fr_FR.po | 1779 +++++++++++++++++++++--------------------------------
po/it_IT.po | 1747 ++++++++++++++++++++--------------------------------
po/ja_JP.po | 732 ++++++++++++----------
po/kimchi.pot | 5 +-
po/ko_KR.po | 1824 +++++++++++++++++++-----------------------------------
po/pt_BR.po | 1189 ++++++++++++++++++-----------------
po/ru_RU.po | 1779 ++++++++++++++++++++---------------------------------
po/zh_CN.po | 1903 +++++++++++++++++++-------------------------------------
po/zh_TW.po | 1905 +++++++++++++++++++--------------------------------------
12 files changed, 6402 insertions(+), 10019 deletions(-)
diff --git a/po/de_DE.po b/po/de_DE.po
index 1347df6..439dce4 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -6,57 +6,49 @@ msgid ""
msgstr ""
"Project-Id-Version: kimchi 0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-24 09:39-0300\n"
+"POT-Creation-Date: 2015-08-21 09:52-0300\n"
"PO-Revision-Date: 2013-07-11 17:32-0400\n"
"Last-Translator: Crístian Viana <vianac(a)linux.vnet.ibm.com>\n"
"Language-Team: English\n"
-"Language: en_US\n"
+"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
-"Plural-Forms: nplurals=2; plural=n != 1;"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
#, python-format
msgid "Unknown parameter %(value)s"
-msgstr ""
-"Unbekannter Parameter %(value)s"
+msgstr "Unbekannter Parameter %(value)s"
#, python-format
msgid "Delete is not allowed for %(resource)s"
-msgstr ""
-"Löschen ist nicht zulässig für %(resource)s"
+msgstr "Löschen ist nicht zulässig für %(resource)s"
#, python-format
msgid "%(resource)s does not implement update method"
-msgstr ""
-"%(resource)s implementiert keine Aktualisierungsmethode"
+msgstr "%(resource)s implementiert keine Aktualisierungsmethode"
#, python-format
msgid "Create is not allowed for %(resource)s"
-msgstr ""
-"Erstellen ist nicht zulässig für %(resource)s"
+msgstr "Erstellen ist nicht zulässig für %(resource)s"
msgid "Unable to parse JSON request"
-msgstr ""
-"JSON-Anfrage konnte nicht analysiert werden"
+msgstr "JSON-Anfrage konnte nicht analysiert werden"
msgid "This API only supports JSON"
-msgstr ""
-"Diese API unterstützt nur JSON"
+msgstr "Diese API unterstützt nur JSON"
#, python-format
msgid "Parameters does not match requirement in schema: %(err)s"
-msgstr ""
-"Parameter entsprechen nicht der Anforderung im Schema: %(err)s"
+msgstr "Parameter entsprechen nicht der Anforderung im Schema: %(err)s"
msgid "You don't have permission to perform this operation."
msgstr ""
"Sie verfügen nicht über die Berechtigung zur Ausführung dieser Operation."
msgid "Datastore is not initiated in the model object."
-msgstr ""
-"Datenspeicher wird nicht im Modellobjekt initialisiert."
+msgstr "Datenspeicher wird nicht im Modellobjekt initialisiert."
#, python-format
msgid "Unable to start task due error: %(err)s"
@@ -66,99 +58,92 @@ msgstr ""
#, python-format
msgid "Timeout of %(seconds)s seconds expired while running task '%(task)s."
msgstr ""
-"Zeitlimit von %(seconds)s Sekunden ist während der Ausführung von Task '%(task)s' abgelaufen."
+"Zeitlimit von %(seconds)s Sekunden ist während der Ausführung von Task "
+"'%(task)s' abgelaufen."
#, python-format
msgid "Authentication failed for user '%(username)s'. [Error code: %(code)s]"
msgstr ""
-"Authentifizierung für Benutzer '%(username)s' fehlgeschlagen. [Fehlercode: %(code)s]"
+"Authentifizierung für Benutzer '%(username)s' fehlgeschlagen. [Fehlercode: "
+"%(code)s]"
msgid "You are not authorized to access Kimchi"
-msgstr ""
-"Sie sind nicht berechtigt, auf Kimchi zuzugreifen"
+msgstr "Sie sind nicht berechtigt, auf Kimchi zuzugreifen"
#, python-format
msgid "Specify %(item)s to login into Kimchi"
-msgstr ""
-"Geben Sie %(item)s an, um sich bei Kimchi anzumelden"
+msgstr "Geben Sie %(item)s an, um sich bei Kimchi anzumelden"
#, python-format
msgid "User %(user_id)s not found with given LDAP settings."
msgstr ""
-"Benutzer %(user_id)s mit den angegebenen LDAP-Einstellungen wurde nicht gefunden."
+"Benutzer %(user_id)s mit den angegebenen LDAP-Einstellungen wurde nicht "
+"gefunden."
#, python-format
msgid "Invalid LDAP configuration: %(item)s : %(value)s"
-msgstr ""
-"Ungültige LDAP-Konfiguration: %(item)s : %(value)s"
+msgstr "Ungültige LDAP-Konfiguration: %(item)s : %(value)s"
msgid "Unknown \"_cap\" specified"
-msgstr ""
-"Unbekanntes Element \"_cap\" angegeben"
+msgstr "Unbekanntes Element \"_cap\" angegeben"
msgid "\"_passthrough\" should be \"true\" or \"false\""
-msgstr ""
-"Für \"_passthrough\" muss \"true\" oder \"false\" angegeben werden"
+msgstr "Für \"_passthrough\" muss \"true\" oder \"false\" angegeben werden"
msgid "\"_passthrough_affected_by\" should be a device name string"
msgstr ""
-"Für \"_passthrough_affected_by\" muss eine Einheitennamenszeichenfolge angegeben werden"
+"Für \"_passthrough_affected_by\" muss eine Einheitennamenszeichenfolge "
+"angegeben werden"
+
+msgid "\"_available_only\" should be \"true\" or \"false\""
+msgstr "Für \"_available_only\" muss \"true\" oder \"false\" angegeben werden"
#, python-format
msgid "Error while getting block devices. Details: %(err)s"
-msgstr ""
-"Fehler beim Abrufen von Blockeinheiten. Details: %(err)s"
+msgstr "Fehler beim Abrufen von Blockeinheiten. Details: %(err)s"
#, python-format
msgid "Error while getting block device information for %(device)s."
-msgstr ""
-"Fehler beim Abrufen von Blockeinheiteninformationen für %(device)s."
+msgstr "Fehler beim Abrufen von Blockeinheiteninformationen für %(device)s."
#, python-format
msgid "Unable to find distro file: %(filename)s"
-msgstr ""
-"Distro-Datei konnte nicht gefunden werden: %(filename)s"
+msgstr "Distro-Datei konnte nicht gefunden werden: %(filename)s"
#, python-format
msgid ""
"Unable to parse distro file: %(filename)s. Make sure, it is a JSON file."
msgstr ""
-"Distro-Datei konnte nicht analysiert werden: %(filename)s. Stellen Sie sicher, dass es sich um eine JSON-Datei handelt."
+"Distro-Datei konnte nicht analysiert werden: %(filename)s. Stellen Sie "
+"sicher, dass es sich um eine JSON-Datei handelt."
#, python-format
msgid "Unable to login to iSCSI host target %(portal)s. Details: %(err)s"
-msgstr ""
-"Fehler beim Anmelden bei iSCSI-Hostziel %(portal)s. Details: %(err)s"
+msgstr "Fehler beim Anmelden bei iSCSI-Hostziel %(portal)s. Details: %(err)s"
#, python-format
msgid "Unable to login to iSCSI host %(host)s target %(target)s"
-msgstr ""
-"Anmeldung bei iSCSI-Host %(host)s Ziel %(target)s nicht möglich"
+msgstr "Anmeldung bei iSCSI-Host %(host)s Ziel %(target)s nicht möglich"
#, python-format
msgid "Unable to find ISO file %(filename)s"
-msgstr ""
-"ISO-Datei %(filename)s konnte nicht gefunden werden"
+msgstr "ISO-Datei %(filename)s konnte nicht gefunden werden"
#, python-format
msgid "The ISO file %(filename)s is not bootable"
-msgstr ""
-"Die ISO-Datei %(filename)s ist nicht bootfähig"
+msgstr "Die ISO-Datei %(filename)s ist nicht bootfähig"
#, python-format
msgid "The ISO file %(filename)s does not have a valid El Torito boot record"
-msgstr ""
-"Die ISO-Datei %(filename)s hat keinen gültigen El Torito-Bootsatz"
+msgstr "Die ISO-Datei %(filename)s hat keinen gültigen El Torito-Bootsatz"
#, python-format
msgid "Invalid El Torito validation entry in ISO %(filename)s"
-msgstr ""
-"Ungültiger El Torito-Prüfeintrag in ISO-Datei %(filename)s"
+msgstr "Ungültiger El Torito-Prüfeintrag in ISO-Datei %(filename)s"
#, python-format
msgid "Invalid El Torito boot indicator in ISO %(filename)s"
-msgstr ""
-"Ungültiger El Torito-Boot-Indikator in ISO-Datei %(filename)s"
+msgstr "Ungültiger El Torito-Boot-Indikator in ISO-Datei %(filename)s"
#, python-format
msgid "Unexpected volume type for primary volume in ISO %(filename)s"
@@ -168,7 +153,8 @@ msgstr ""
#, python-format
msgid "Bad format while reading volume descriptor in ISO %(filename)s"
msgstr ""
-"Ungültiges Format beim Lesen des Datenträgerdeskriptors in ISO-Datei %(filename)s"
+"Ungültiges Format beim Lesen des Datenträgerdeskriptors in ISO-Datei "
+"%(filename)s"
#, python-format
msgid ""
@@ -178,64 +164,59 @@ msgid ""
"'%(user)s' to the ISO path group, or (not recommended) 'chmod -R o+x "
"'path_to_iso'.Details: %(err)s"
msgstr ""
-"Der Hypervisor hat nicht die Berechtigung, die ISO-Datei %(filename)s zu verwenden."
-"Verschieben Sie sie entweder nach /var/lib/libvirt oder setzen Sie, sofern möglich, die Suchberechtigung "
-"auf Dateizugriffssteuerungslisten für den Benutzer '%(user)s' oder fügen Sie "
-"'%(user)s' der ISO-Pfadgruppe hinzu oder (nicht empfohlen) 'chmod -R o+x "
-"'path_to_iso'. Details: %(err)s"
+"Der Hypervisor hat nicht die Berechtigung, die ISO-Datei %(filename)s zu "
+"verwenden.Verschieben Sie sie entweder nach /var/lib/libvirt oder setzen "
+"Sie, sofern möglich, die Suchberechtigung auf Dateizugriffssteuerungslisten "
+"für den Benutzer '%(user)s' oder fügen Sie '%(user)s' der ISO-Pfadgruppe "
+"hinzu oder (nicht empfohlen) 'chmod -R o+x 'path_to_iso'. Details: %(err)s"
msgid "An error occurred when probing image OS information."
-msgstr ""
-"Beim Prüfen der OS-Informationen des Image ist ein Fehler aufgetreten."
+msgstr "Beim Prüfen der OS-Informationen des Image ist ein Fehler aufgetreten."
msgid "No OS information found in given image."
-msgstr ""
-"Im angegebenen Image wurden keine OS-Informationen gefunden."
+msgstr "Im angegebenen Image wurden keine OS-Informationen gefunden."
#, python-format
msgid "Unable to read image file %(filename)s"
-msgstr ""
-"Die Imagedatei %(filename)s konnte nicht gelesen werden"
+msgstr "Die Imagedatei %(filename)s konnte nicht gelesen werden"
#, python-format
msgid ""
"Image file must be an existing file on system. %(filename)s is not a valid "
"input."
msgstr ""
-"Bei der Imagedatei muss es sich um eine auf dem System vorhandene Datei handeln. %(filename)s ist keine gültige "
-"Eingabe."
+"Bei der Imagedatei muss es sich um eine auf dem System vorhandene Datei "
+"handeln. %(filename)s ist keine gültige Eingabe."
#, python-format
msgid "Virtual machine %(name)s already exists"
-msgstr ""
-"Virtuelle Maschine %(name)s ist bereits vorhanden"
+msgstr "Virtuelle Maschine %(name)s ist bereits vorhanden"
#, python-format
msgid "Virtual machine %(name)s does not exist"
-msgstr ""
-"Virtuelle Maschine %(name)s ist nicht vorhanden"
+msgstr "Virtuelle Maschine %(name)s ist nicht vorhanden"
#, python-format
msgid ""
"Unable to rename virtual machine %(name)s. The name %(new_name)s is already "
"in use or the virtual machine is not powered off."
msgstr ""
-"Virtuelle Maschine %(name)s konnte nicht umbenannt werden. Der Name %(new_name)s ist bereits belegt "
-"oder die virtuelle Maschine wurde nicht ausgeschaltet."
+"Virtuelle Maschine %(name)s konnte nicht umbenannt werden. Der Name "
+"%(new_name)s ist bereits belegt oder die virtuelle Maschine wurde nicht "
+"ausgeschaltet."
#, python-format
msgid "Unable to retrieve screenshot for stopped virtual machine %(name)s"
msgstr ""
-"Screenshot für gestoppte virtuelle Maschine %(name)s konnte nicht abgerufen werden"
+"Screenshot für gestoppte virtuelle Maschine %(name)s konnte nicht abgerufen "
+"werden"
msgid "Remote ISO image is not supported by this server."
-msgstr ""
-"Fernes ISO-Image wird von diesem Server nicht unterstützt."
+msgstr "Fernes ISO-Image wird von diesem Server nicht unterstützt."
#, python-format
msgid "Screenshot is not supported on virtual machine %(name)s"
-msgstr ""
-"Screenshot wird auf virtueller Maschine %(name)s nicht unterstützt"
+msgstr "Screenshot wird auf virtueller Maschine %(name)s nicht unterstützt"
#, python-format
msgid "Unable to create virtual machine %(name)s. Details: %(err)s"
@@ -245,7 +226,8 @@ msgstr ""
#, python-format
msgid "Unable to update virtual machine %(name)s. Details: %(err)s"
msgstr ""
-"Virtuelle Maschine %(name)s konnte nicht aktualisiert werden. Details: %(err)s"
+"Virtuelle Maschine %(name)s konnte nicht aktualisiert werden. Details: "
+"%(err)s"
#, python-format
msgid "Unable to retrieve virtual machine %(name)s. Details: %(err)s"
@@ -255,33 +237,30 @@ msgstr ""
#, python-format
msgid "Unable to connect to powered off virtual machine %(name)s."
msgstr ""
-"Verbindung zu ausgeschalteter virtueller Maschine %(name)s konnte nicht hergestellt werden."
+"Verbindung zu ausgeschalteter virtueller Maschine %(name)s konnte nicht "
+"hergestellt werden."
msgid "Virtual machine name must be a string without slashes (/)"
msgstr ""
-"Name der virtuellen Maschine muss eine Zeichenfolge ohne Schrägstriche (/) sein"
+"Name der virtuellen Maschine muss eine Zeichenfolge ohne Schrägstriche (/) "
+"sein"
#, python-format
msgid "Invalid template URI %(value)s specified for virtual machine"
-msgstr ""
-"Ungültiger Vorlagen-URI %(value)s für virtuelle Maschine angegeben"
+msgstr "Ungültiger Vorlagen-URI %(value)s für virtuelle Maschine angegeben"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for virtual machine"
-msgstr ""
-"Ungültiger Speicherpool-URI %(value)s für virtuelle Maschine angegeben"
+msgstr "Ungültiger Speicherpool-URI %(value)s für virtuelle Maschine angegeben"
msgid "Supported virtual machine graphics are Spice or VNC"
-msgstr ""
-"Unterstützte Grafiken für virtuelle Maschine sind Spice oder VNC"
+msgstr "Unterstützte Grafiken für virtuelle Maschine sind Spice oder VNC"
msgid "Graphics address to listen on must be IPv4 or IPv6"
-msgstr ""
-"Zu überwachende Grafikadresse muss IPv4 oder IPv6 sein"
+msgstr "Zu überwachende Grafikadresse muss IPv4 oder IPv6 sein"
msgid "Specify a template to create a virtual machine from"
-msgstr ""
-"Vorlage angeben, aus der eine virtuelle Maschine erstellt werden soll"
+msgstr "Vorlage angeben, aus der eine virtuelle Maschine erstellt werden soll"
#, python-format
msgid "Unable to start virtual machine %(name)s. Details: %(err)s"
@@ -291,7 +270,8 @@ msgstr ""
#, python-format
msgid "Unable to power off virtual machine %(name)s. Details: %(err)s"
msgstr ""
-"Virtuelle Maschine %(name)s konnte nicht ausgeschaltet werden. Details: %(err)s"
+"Virtuelle Maschine %(name)s konnte nicht ausgeschaltet werden. Details: "
+"%(err)s"
#, python-format
msgid "Unable to delete virtual machine %(name)s. Details: %(err)s"
@@ -301,48 +281,44 @@ msgstr ""
#, python-format
msgid "Unable to reset virtual machine %(name)s. Details: %(err)s"
msgstr ""
-"Virtuelle Maschine %(name)s konnte nicht zurückgesetzt werden. Details: %(err)s"
+"Virtuelle Maschine %(name)s konnte nicht zurückgesetzt werden. Details: "
+"%(err)s"
msgid "User name list must be an array"
-msgstr ""
-"Benutzernamensliste muss ein Array sein"
+msgstr "Benutzernamensliste muss ein Array sein"
msgid "User name must be a string"
-msgstr ""
-"Benutzername muss eine Zeichenfolge sein"
+msgstr "Benutzername muss eine Zeichenfolge sein"
msgid "Group name list must be an array"
-msgstr ""
-"Gruppennamensliste muss ein Array sein"
+msgstr "Gruppennamensliste muss ein Array sein"
msgid "Group name must be a string"
-msgstr ""
-"Gruppenname muss eine Zeichenfolge sein"
+msgstr "Gruppenname muss eine Zeichenfolge sein"
#, python-format
msgid "User(s) '%(users)s' do not exist"
-msgstr ""
-"Benutzer '%(users)s' nicht vorhanden"
+msgstr "Benutzer '%(users)s' nicht vorhanden"
#, python-format
msgid "Group(s) '%(groups)s' do not exist"
-msgstr ""
-"Gruppe(n) '%(groups)s' nicht vorhanden"
+msgstr "Gruppe(n) '%(groups)s' nicht vorhanden"
#, python-format
msgid "Unable to shutdown virtual machine %(name)s. Details: %(err)s"
msgstr ""
-"Virtuelle Maschine %(name)s konnte nicht heruntergefahren werden. Details: %(err)s"
+"Virtuelle Maschine %(name)s konnte nicht heruntergefahren werden. Details: "
+"%(err)s"
#, python-format
msgid ""
"Unable to get access metadata of virtual machine %(name)s. Details: %(err)s"
msgstr ""
-"Zugriff auf die Metadaten der virtuellen Maschine %(name)s nicht möglich. Details: %(err)s"
+"Zugriff auf die Metadaten der virtuellen Maschine %(name)s nicht möglich. "
+"Details: %(err)s"
msgid "The guest console password must be a string."
-msgstr ""
-"Das Konsolenkennwort des Gastes muss eine Zeichenfolge sein."
+msgstr "Das Konsolenkennwort des Gastes muss eine Zeichenfolge sein."
msgid "The life time for the guest console password must be a number."
msgstr ""
@@ -350,13 +326,13 @@ msgstr ""
#, python-format
msgid "Virtual machine '%(name)s' must be stopped before cloning it."
-msgstr ""
-"Die virtuelle Maschine '%(name)s' muss vor dem Klonen gestoppt werden."
+msgstr "Die virtuelle Maschine '%(name)s' muss vor dem Klonen gestoppt werden."
#, python-format
msgid "Insufficient disk space to clone virtual machine '%(name)s'"
msgstr ""
-"Nicht genügend Plattenspeicherplatz zum Klonen der virtuellen Maschine '%(name)s' vorhanden"
+"Nicht genügend Plattenspeicherplatz zum Klonen der virtuellen Maschine "
+"'%(name)s' vorhanden"
#, python-format
msgid "Unable to clone VM '%(name)s'. Details: %(err)s"
@@ -365,40 +341,45 @@ msgstr ""
#, python-format
msgid "Invalid operation for non-persistent virtual machine %(name)s"
-msgstr ""
-"Ungültige Operation für nicht permanente virtuelle Maschine %(name)s"
+msgstr "Ungültige Operation für nicht permanente virtuelle Maschine %(name)s"
#, python-format
msgid "Cannot suspend VM '%(name)s' because it is not running."
msgstr ""
-"Die virtuelle Maschine '%(name)s' kann nicht ausgesetzt werden, weil sie momentan nicht aktiv ist."
+"Die virtuelle Maschine '%(name)s' kann nicht ausgesetzt werden, weil sie "
+"momentan nicht aktiv ist."
#, python-format
msgid "Unable to suspend VM '%(name)s'. Details: %(err)s"
msgstr ""
-"Virtuelle Maschine '%(name)s' konnte nicht ausgesetzt werden. Details: %(err)s"
+"Virtuelle Maschine '%(name)s' konnte nicht ausgesetzt werden. Details: "
+"%(err)s"
#, python-format
msgid "Cannot resume VM '%(name)s' because it is not paused."
msgstr ""
-"Die virtuelle Maschine '%(name)s' kann nicht fortgesetzt werden, weil sie nicht angehalten wurde."
+"Die virtuelle Maschine '%(name)s' kann nicht fortgesetzt werden, weil sie "
+"nicht angehalten wurde."
#, python-format
msgid "Unable to resume VM '%(name)s'. Details: %(err)s"
msgstr ""
-"Virtuelle Maschine '%(name)s' konnte nicht fortgesetzt werden. Details: %(err)s"
+"Virtuelle Maschine '%(name)s' konnte nicht fortgesetzt werden. Details: "
+"%(err)s"
msgid "Memory assigned is higher then the maximum allowed in the host."
msgstr ""
-"Der zugewiesene Speicher überschreitet den auf dem Host zulässigen Maximalwert."
+"Der zugewiesene Speicher überschreitet den auf dem Host zulässigen "
+"Maximalwert."
#, python-format
msgid ""
"VM '%(name)s' does not support live memory update. Update the memory with "
"the machine offline to enable this feature."
msgstr ""
-"Die Live-Speicheraktualisierung wird von der virtuellen Maschine '%(name)s' nicht unterstützt. Aktualisieren Sie den Speicher mit "
-"der Maschine im Offlinemodus, um diese Funktion zu aktivieren."
+"Die Live-Speicheraktualisierung wird von der virtuellen Maschine '%(name)s' "
+"nicht unterstützt. Aktualisieren Sie den Speicher mit der Maschine im "
+"Offlinemodus, um diese Funktion zu aktivieren."
msgid "Only increase memory is allowed in active VMs"
msgstr ""
@@ -408,8 +389,8 @@ msgid ""
"For live memory update, new memory value must be equal old memory value plus "
"multiples of 1024 Mib"
msgstr ""
-"Für die Live-Speicheraktualisierung muss der neue Speicherwert gleich dem alten Speicherwert plus "
-"ein Vielfaches von 1024 Mebibyte sein"
+"Für die Live-Speicheraktualisierung muss der neue Speicherwert gleich dem "
+"alten Speicherwert plus ein Vielfaches von 1024 Mebibyte sein"
msgid "There are not enough free slots of 1024 Mib in the guest."
msgstr ""
@@ -419,13 +400,12 @@ msgid ""
"Host's libvirt version does not support memory devices. Libvirt must be >= "
"1.2.14"
msgstr ""
-"Die libvirt-Version des Hosts unterstützt keine Speichereinheiten. Für libvirt muss >= "
-"1.2.14 angegeben sein"
+"Die libvirt-Version des Hosts unterstützt keine Speichereinheiten. Für "
+"libvirt muss >= 1.2.14 angegeben sein"
#, python-format
msgid "Error attaching memory device. Details: %(error)s"
-msgstr ""
-"Fehler beim Anschließen der Speichereinheit. Details: %(error)s"
+msgstr "Fehler beim Anschließen der Speichereinheit. Details: %(error)s"
#, python-format
msgid ""
@@ -445,23 +425,23 @@ msgid ""
"to your Kernel parameter in /boot/grub2/grub.conf. For AMD CPU, add iommu=pt "
"iommu=1."
msgstr ""
-"Keine IOMMU-Gruppen gefunden. Für den Host-PCI-Durchgriff muss die IOMMU-Gruppe "
-"ordnungsgemäß funktionieren. Aktivieren Sie Intel VT-d oder AMD IOMMU in Ihrem BIOS "
-"und prüfen Sie dann, ob der Kernel mit IOMMU-Unterstützung kompiliert wurde. Fügen Sie "
-"Ihrem Kernelparameter für die Intel-CPU intel_iommu=on in /boot/grub2/grub.conf hinzu. "
-"Für AMD-CPU müssen Sie iommu=pt iommu=1 hinzufügen."
+"Keine IOMMU-Gruppen gefunden. Für den Host-PCI-Durchgriff muss die IOMMU-"
+"Gruppe ordnungsgemäß funktionieren. Aktivieren Sie Intel VT-d oder AMD IOMMU "
+"in Ihrem BIOS und prüfen Sie dann, ob der Kernel mit IOMMU-Unterstützung "
+"kompiliert wurde. Fügen Sie Ihrem Kernelparameter für die Intel-CPU "
+"intel_iommu=on in /boot/grub2/grub.conf hinzu. Für AMD-CPU müssen Sie "
+"iommu=pt iommu=1 hinzufügen."
msgid "\"name\" should be a device name string"
-msgstr ""
-"Für \"name\" muss eine Einheitennamenszeichenfolge angegeben werden"
+msgstr "Für \"name\" muss eine Einheitennamenszeichenfolge angegeben werden"
#, python-format
msgid ""
"The device %(name)s is probably in use by the host. Unable to attach it to "
"the guest."
msgstr ""
-"Die Einheit %(name)s wird vermutlich vom Host benutzt. Es kann keine Verbindung der Einheit zum "
-"Gast hergestellt werden."
+"Die Einheit %(name)s wird vermutlich vom Host benutzt. Es kann keine "
+"Verbindung der Einheit zum Gast hergestellt werden."
#, python-format
msgid "Interface %(iface)s does not exist in virtual machine %(name)s"
@@ -472,27 +452,29 @@ msgstr ""
msgid ""
"Network %(network)s specified for virtual machine %(name)s does not exist"
msgstr ""
-"Das Netz %(network)s, das für die virtuelle Maschine %(name)s angegeben wurde, ist nicht vorhanden"
+"Das Netz %(network)s, das für die virtuelle Maschine %(name)s angegeben "
+"wurde, ist nicht vorhanden"
msgid "Supported virtual machine interfaces type is only network"
-msgstr ""
-"Unterstützter Schnittstellentyp einer virtuellen Maschine ist nur Netz"
+msgstr "Unterstützter Schnittstellentyp einer virtuellen Maschine ist nur Netz"
msgid "Network name for virtual machine interface must be a string"
msgstr ""
-"Netzname für Schnittstelle einer virtuellen Maschine muss eine Zeichenfolge sein"
+"Netzname für Schnittstelle einer virtuellen Maschine muss eine Zeichenfolge "
+"sein"
msgid "Invalid network model card specified for virtual machine interface"
msgstr ""
-"Ungültige Netzmodellkarte für Schnittstelle einer virtuellen Maschine angegeben"
+"Ungültige Netzmodellkarte für Schnittstelle einer virtuellen Maschine "
+"angegeben"
msgid "Specify type and network to add a new virtual machine interface"
msgstr ""
-"Geben Sie Typ und Netz an, um eine neue Schnittstelle für eine virtuelle Maschine hinzuzufügen"
+"Geben Sie Typ und Netz an, um eine neue Schnittstelle für eine virtuelle "
+"Maschine hinzuzufügen"
msgid "MAC Address must respect this format FF:FF:FF:FF:FF:FF"
-msgstr ""
-"MAC-Adresse muss folgendes Format verwenden: FF:FF:FF:FF:FF:FF"
+msgstr "MAC-Adresse muss folgendes Format verwenden: FF:FF:FF:FF:FF:FF"
#, python-format
msgid "MAC Address %(mac)s already exists in virtual machine %(name)s"
@@ -500,8 +482,7 @@ msgstr ""
"MAC-Adresse %(mac)s ist in virtueller Maschine %(name)s bereits vorhanden"
msgid "Invalid MAC Address"
-msgstr ""
-"Ungültige MAC-Adresse"
+msgstr "Ungültige MAC-Adresse"
msgid "Cannot change MAC address of a running virtual machine"
msgstr ""
@@ -509,80 +490,75 @@ msgstr ""
#, python-format
msgid "Template %(name)s already exists"
-msgstr ""
-"Vorlage %(name)s ist bereits vorhanden"
+msgstr "Vorlage %(name)s ist bereits vorhanden"
#, python-format
msgid ""
"Network '%(network)s' specified for template %(template)s does not exist"
msgstr ""
-"Netz '%(network)s', das für Vorlage %(template)s angegeben wurde, ist nicht vorhanden"
+"Netz '%(network)s', das für Vorlage %(template)s angegeben wurde, ist nicht "
+"vorhanden"
#, python-format
msgid ""
"Storage pool %(pool)s specified for template %(template)s does not exist"
msgstr ""
-"Speicherpool %(pool)s, der für Vorlage %(template)s angegeben wurde, ist nicht vorhanden"
+"Speicherpool %(pool)s, der für Vorlage %(template)s angegeben wurde, ist "
+"nicht vorhanden"
#, python-format
msgid "Storage pool %(pool)s specified for template %(template)s is not active"
msgstr ""
-"Speicherpool %(pool)s, der für Vorlage %(template)s angegeben wurde, ist nicht aktiv"
+"Speicherpool %(pool)s, der für Vorlage %(template)s angegeben wurde, ist "
+"nicht aktiv"
#, python-format
msgid "Invalid parameter '%(param)s' specified for CDROM."
-msgstr ""
-"Ungültiger Parameter '%(param)s' für CD-ROM angegeben."
+msgstr "Ungültiger Parameter '%(param)s' für CD-ROM angegeben."
#, python-format
msgid "Network %(network)s specified for template %(template)s is not active"
msgstr ""
-"Netz %(network)s, das für Vorlage %(template)s angegeben wurde, ist nicht aktiv"
+"Netz %(network)s, das für Vorlage %(template)s angegeben wurde, ist nicht "
+"aktiv"
msgid "Template name must be a string"
-msgstr ""
-"Vorlagenname muss eine Zeichenfolge sein"
+msgstr "Vorlagenname muss eine Zeichenfolge sein"
msgid "Template icon must be a path to the image"
-msgstr ""
-"Vorlagensymbol muss ein Pfad zum Image sein"
+msgstr "Vorlagensymbol muss ein Pfad zum Image sein"
msgid "Template distribution must be a string"
-msgstr ""
-"Vorlagenverteilung muss eine Zeichenfolge sein"
+msgstr "Vorlagenverteilung muss eine Zeichenfolge sein"
msgid "Template distribution version must be a string"
-msgstr ""
-"Vorlagenverteilungsversion muss eine Zeichenfolge sein"
+msgstr "Vorlagenverteilungsversion muss eine Zeichenfolge sein"
msgid "The number of CPUs must be an integer greater than 0"
-msgstr ""
-"Die Anzahl der CPUs muss eine Ganzzahl größer als 0 sein"
+msgstr "Die Anzahl der CPUs muss eine Ganzzahl größer als 0 sein"
msgid "Amount of memory (MB) must be an integer greater than 512"
-msgstr ""
-"Speicherkapazität (MB) muss eine Ganzzahl größer als 512 sein"
+msgstr "Speicherkapazität (MB) muss eine Ganzzahl größer als 512 sein"
msgid "Template CDROM must be a local or remote ISO file"
-msgstr ""
-"Vorlagen-CD-ROM muss eine lokale oder ferne ISO-Datei sein"
+msgstr "Vorlagen-CD-ROM muss eine lokale oder ferne ISO-Datei sein"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for template"
-msgstr ""
-"Ungültiger Speicherpool-URI %(value)s für Vorlage angegeben"
+msgstr "Ungültiger Speicherpool-URI %(value)s für Vorlage angegeben"
msgid "Specify an ISO image as CDROM or a base image to create a template"
msgstr ""
-"Geben Sie ein ISO-Image als CD-ROM oder ein Basisimage an, um eine Vorlage zu erstellen"
+"Geben Sie ein ISO-Image als CD-ROM oder ein Basisimage an, um eine Vorlage "
+"zu erstellen"
msgid "All networks for the template must be specified in a list."
-msgstr ""
-"Alle Netze für die Vorlage müssen in einer Liste angegeben werden."
+msgstr "Alle Netze für die Vorlage müssen in einer Liste angegeben werden."
msgid "Specify a volume to a template when storage pool is iSCSI or SCSI"
msgstr ""
-"Geben Sie einen Datenträger für eine Vorlage an, wenn der Speicherpool iSCSI oder SCSI ist"
+"Geben Sie einen Datenträger für eine Vorlage an, wenn der Speicherpool iSCSI "
+"oder SCSI ist"
#, python-format
msgid "The volume %(volume)s is not in storage pool %(pool)s"
@@ -600,24 +576,21 @@ msgstr ""
"Vorlage kann aufgrund des folgenden Fehlers nicht gelöscht werden: %(err)s"
msgid "Disk size must be an integer greater than 1GB."
-msgstr ""
-"Plattengröße muss eine Ganzzahl größer als 1 GB sein."
+msgstr "Plattengröße muss eine Ganzzahl größer als 1 GB sein."
msgid "Template base image must be a valid local image file"
-msgstr ""
-"Basisimage der Vorlage muss eine gültige lokale Imagedatei sein"
+msgstr "Basisimage der Vorlage muss eine gültige lokale Imagedatei sein"
#, python-format
msgid "Cannot identify base image %(path)s format"
-msgstr ""
-"Format für %(path)s des Basisimage kann nicht ermittelt werden"
+msgstr "Format für %(path)s des Basisimage kann nicht ermittelt werden"
msgid ""
"When specifying CPU topology, VCPUs must be a product of sockets, cores, and "
"threads."
msgstr ""
-"Bei der Angabe der CPU-Topologie müssen VCPUs ein Produkt der Sockets, Kerne und "
-"Threads sein."
+"Bei der Angabe der CPU-Topologie müssen VCPUs ein Produkt der Sockets, Kerne "
+"und Threads sein."
msgid ""
"When specifying CPU topology, each element must be an integer greater than "
@@ -630,51 +603,44 @@ msgid ""
"Invalid disk image format. Valid formats: bochs, cloop, cow, dmg, qcow, "
"qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"Ungültiges Plattenimageformat. Gültige Formate: bochs, cloop, cow, dmg, qcow, "
-"qcow2, qed, raw, vmdk, vpc."
+"Ungültiges Plattenimageformat. Gültige Formate: bochs, cloop, cow, dmg, "
+"qcow, qcow2, qed, raw, vmdk, vpc."
#, python-format
msgid "Storage pool %(name)s already exists"
-msgstr ""
-"Speicherpool %(name)s ist bereits vorhanden"
+msgstr "Speicherpool %(name)s ist bereits vorhanden"
#, python-format
msgid "Storage pool %(name)s does not exist"
-msgstr ""
-"Speicherpool %(name)s ist nicht vorhanden"
+msgstr "Speicherpool %(name)s ist nicht vorhanden"
#, python-format
msgid "Specify %(item)s in order to create the storage pool %(name)s"
-msgstr ""
-"Geben Sie %(item)s an, um den Speicherpool %(name)s zu erstellen"
+msgstr "Geben Sie %(item)s an, um den Speicherpool %(name)s zu erstellen"
#, python-format
msgid "Unable to delete active storage pool %(name)s"
-msgstr ""
-"Aktiver Speicherpool %(name)s konnte nicht gelöscht werden"
+msgstr "Aktiver Speicherpool %(name)s konnte nicht gelöscht werden"
#, python-format
msgid "Unable to list storage pools. Details: %(err)s"
-msgstr ""
-"Speicherpools konnten nicht aufgelistet werden. Details: %(err)s"
+msgstr "Speicherpools konnten nicht aufgelistet werden. Details: %(err)s"
#, python-format
msgid "Unable to create storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"Speicherpool %(name)s konnte nicht erstellt werden. Details: %(err)s"
+msgstr "Speicherpool %(name)s konnte nicht erstellt werden. Details: %(err)s"
#, python-format
msgid ""
"Unable to get number of storage volumes in storage pool %(name)s. Details: "
"%(err)s"
msgstr ""
-"Anzahl der Speicherdatenträger im Speicherpool %(name)s konnte nicht abgerufen werden. Details: "
-"%(err)s"
+"Anzahl der Speicherdatenträger im Speicherpool %(name)s konnte nicht "
+"abgerufen werden. Details: %(err)s"
#, python-format
msgid "Unable to activate storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"Speicherpool %(name)s konnte nicht aktiviert werden. Details: %(err)s"
+msgstr "Speicherpool %(name)s konnte nicht aktiviert werden. Details: %(err)s"
#, python-format
msgid "Unable to deactivate storage pool %(name)s. Details: %(err)s"
@@ -683,29 +649,28 @@ msgstr ""
#, python-format
msgid "Unable to delete storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"Speicherpool %(name)s konnte nicht gelöscht werden. Details: %(err)s"
+msgstr "Speicherpool %(name)s konnte nicht gelöscht werden. Details: %(err)s"
#, python-format
msgid ""
"Unable to create NFS Pool as export path %(path)s may block during mount"
msgstr ""
-"NFS-Pool konnte nicht erstellt werden, weil Exportpfad %(path)s beim Mounten blockieren kann"
+"NFS-Pool konnte nicht erstellt werden, weil Exportpfad %(path)s beim Mounten "
+"blockieren kann"
#, python-format
msgid "Unable to create NFS Pool as export path %(path)s mount failed"
msgstr ""
-"NFS-Pool konnte nicht erstellt werden, weil das Mounten des Exportpfads %(path)s fehlgeschlagen ist"
+"NFS-Pool konnte nicht erstellt werden, weil das Mounten des Exportpfads "
+"%(path)s fehlgeschlagen ist"
#, python-format
msgid "Unsupported storage pool type: %(type)s"
-msgstr ""
-"Nicht unterstützter Speicherpooltyp: %(type)s"
+msgstr "Nicht unterstützter Speicherpooltyp: %(type)s"
#, python-format
msgid "Error while retrieving storage pool XML to %(pool)s"
-msgstr ""
-"Fehler beim Abrufen der XML für Speicherpool in %(pool)s"
+msgstr "Fehler beim Abrufen der XML für Speicherpool in %(pool)s"
msgid "Storage pool name must be a string without slashes (/)"
msgstr ""
@@ -715,52 +680,45 @@ msgid ""
"Supported storage pool types are dir, netfs, logical, iscsi, isci and kimchi-"
"iso"
msgstr ""
-"Unterstützte Speicherpooltypen sind dir, netfs, logical, iscsi, isci und kimchi-"
-"iso"
+"Unterstützte Speicherpooltypen sind dir, netfs, logical, iscsi, isci und "
+"kimchi-iso"
msgid "Storage pool path must be a string"
-msgstr ""
-"Speicherpoolpfad muss eine Zeichenfolge sein"
+msgstr "Speicherpoolpfad muss eine Zeichenfolge sein"
msgid "Storage pool host must be a IP or hostname"
-msgstr ""
-"Speicherpoolhost muss eine IP oder ein Hostname sein"
+msgstr "Speicherpoolhost muss eine IP oder ein Hostname sein"
msgid "Storage pool device must be the absolute path to the block device"
-msgstr ""
-"Speicherpooleinheit muss den absoluten Pfad zur Blockeinheit angeben"
+msgstr "Speicherpooleinheit muss den absoluten Pfad zur Blockeinheit angeben"
msgid "Storage pool devices parameter must be a list"
-msgstr ""
-"Einheitenparameter des Speicherpools muss eine Liste sein"
+msgstr "Einheitenparameter des Speicherpools muss eine Liste sein"
msgid "Target IQN of an iSCSI pool must be a string"
-msgstr ""
-"Ziel-IQN eines iSCSI-Pools muss eine Zeichenfolge sein"
+msgstr "Ziel-IQN eines iSCSI-Pools muss eine Zeichenfolge sein"
msgid "Port of a remote storage server must be an integer between 1 and 65535"
msgstr ""
-"Port eines fernen Speicherservers muss eine Ganzzahl zwischen 1 und 65535 sein"
+"Port eines fernen Speicherservers muss eine Ganzzahl zwischen 1 und 65535 "
+"sein"
msgid "iSCSI target username must be a string"
-msgstr ""
-"Benutzername des iSCSI-Ziels muss eine Zeichenfolge sein"
+msgstr "Benutzername des iSCSI-Ziels muss eine Zeichenfolge sein"
msgid "iSCSI target password must be a string"
-msgstr ""
-"Kennwort des iSCSI-Ziels muss eine Zeichenfolge sein"
+msgstr "Kennwort des iSCSI-Ziels muss eine Zeichenfolge sein"
msgid "Specify name and type to create a storage pool"
-msgstr ""
-"Geben Sie Name und Typ an, um einen Speicherpool zu erstellen"
+msgstr "Geben Sie Name und Typ an, um einen Speicherpool zu erstellen"
#, python-format
msgid ""
"%(disk)s is not a valid disk/partition. Could not add it to the pool "
"%(pool)s."
msgstr ""
-"%(disk)s ist keine gültige Platte/Partition. Sie konnte nicht hinzugefügt werden zum Pool "
-"%(pool)s."
+"%(disk)s ist keine gültige Platte/Partition. Sie konnte nicht hinzugefügt "
+"werden zum Pool %(pool)s."
#, python-format
msgid "Unable to extend logical pool %(pool)s. Details: %(err)s"
@@ -769,60 +727,61 @@ msgstr ""
msgid "The parameter disks only can be updated for logical storage pool."
msgstr ""
-"Die Parameterplatten können nur für den logischen Speicherpool aktualisiert werden."
+"Die Parameterplatten können nur für den logischen Speicherpool aktualisiert "
+"werden."
msgid "The SCSI host adapter name must be a string."
-msgstr ""
-"Der Name des SCSI-Hostadapters muss eine Zeichenfolge sein."
+msgstr "Der Name des SCSI-Hostadapters muss eine Zeichenfolge sein."
msgid "The storage pool kimchi_isos is reserved for internal use"
-msgstr ""
-"Der Speicherpool kimchi_isos ist für die interne Verwendung reserviert"
+msgstr "Der Speicherpool kimchi_isos ist für die interne Verwendung reserviert"
#, python-format
msgid ""
"Unable to activate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
msgstr ""
-"NFS-Speicherpool %(name)s konnte nicht aktiviert werden. NFS-Server %(server)s ist "
-"nicht erreichbar."
+"NFS-Speicherpool %(name)s konnte nicht aktiviert werden. NFS-Server "
+"%(server)s ist nicht erreichbar."
#, python-format
msgid ""
"Unable to deactivate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
msgstr ""
-"NFS-Speicherpool %(name)s konnte nicht inaktiviert werden. NFS-Server %(server)s ist "
-"nicht erreichbar."
+"NFS-Speicherpool %(name)s konnte nicht inaktiviert werden. NFS-Server "
+"%(server)s ist nicht erreichbar."
#, python-format
msgid ""
"Unable to deactivate pool %(name)s as it is associated with some templates"
msgstr ""
-"Pool %(name)s konnte nicht inaktiviert werden, weil er einigen Vorlagen zugeordnet ist"
+"Pool %(name)s konnte nicht inaktiviert werden, weil er einigen Vorlagen "
+"zugeordnet ist"
#, python-format
msgid "Unable to delete pool %(name)s as it is associated with some templates"
msgstr ""
-"Pool %(name)s konnte nicht gelöscht werden, weil er einigen Vorlagen zugeordnet ist"
+"Pool %(name)s konnte nicht gelöscht werden, weil er einigen Vorlagen "
+"zugeordnet ist"
#, python-format
msgid ""
"A volume group named '%(name)s' already exists. Please, choose another name "
"to create the logical pool."
msgstr ""
-"Eine Datenträgergruppe mit dem Namen '%(name)s' ist bereits vorhanden. Wählen Sie einen anderen Namen aus, "
-"um den logischen Pool zu erstellen."
+"Eine Datenträgergruppe mit dem Namen '%(name)s' ist bereits vorhanden. "
+"Wählen Sie einen anderen Namen aus, um den logischen Pool zu erstellen."
#, python-format
msgid "Unable to update database with deep scan information due error: %(err)s"
msgstr ""
-"Datenbank mit Tiefenscaninformationen kann aufgrund des folgenden Fehlers nicht aktualisiert werden: %(err)s"
+"Datenbank mit Tiefenscaninformationen kann aufgrund des folgenden Fehlers "
+"nicht aktualisiert werden: %(err)s"
#, python-format
msgid "Storage volume %(name)s already exists"
-msgstr ""
-"Speicherdatenträger %(name)s ist bereits vorhanden"
+msgstr "Speicherdatenträger %(name)s ist bereits vorhanden"
#, python-format
msgid "Storage volume %(name)s does not exist in storage pool %(pool)s"
@@ -834,8 +793,8 @@ msgid ""
"Unable to create storage volume %(volume)s because storage pool %(pool)s is "
"not active"
msgstr ""
-"Speicherdatenträger %(volume)s konnte nicht erstellt werden, weil Speicherpool %(pool)s "
-"nicht aktiv ist"
+"Speicherdatenträger %(volume)s konnte nicht erstellt werden, weil "
+"Speicherpool %(pool)s nicht aktiv ist"
#, python-format
msgid "Specify %(item)s in order to create storage volume %(volume)s"
@@ -846,21 +805,23 @@ msgstr ""
msgid ""
"Unable to list storage volumes because storage pool %(pool)s is not active"
msgstr ""
-"Speicherdatenträger konnten nicht aufgelistet werden, weil Speicherpool %(pool)s nicht aktiv ist"
+"Speicherdatenträger konnten nicht aufgelistet werden, weil Speicherpool "
+"%(pool)s nicht aktiv ist"
#, python-format
msgid ""
"Unable to create storage volume %(name)s in storage pool %(pool)s. Details: "
"%(err)s"
msgstr ""
-"Speicherdatenträger %(name)s konnte im Speicherpool %(pool)s nicht erstellt werden. Details: "
-"%(err)s"
+"Speicherdatenträger %(name)s konnte im Speicherpool %(pool)s nicht erstellt "
+"werden. Details: %(err)s"
#, python-format
msgid ""
"Unable to list storage volumes in storage pool %(pool)s. Details: %(err)s"
msgstr ""
-"Speicherdatenträger im Speicherpool %(pool)s konnten nicht aufgelistet werden. Details: %(err)s"
+"Speicherdatenträger im Speicherpool %(pool)s konnten nicht aufgelistet "
+"werden. Details: %(err)s"
#, python-format
msgid "Unable to wipe storage volumes %(name)s. Details: %(err)s"
@@ -875,81 +836,81 @@ msgstr ""
#, python-format
msgid "Unable to resize storage volume %(name)s. Details: %(err)s"
msgstr ""
-"Größe des Speicherdatenträgers %(name)s konnte nicht geändert werden. Details: %(err)s"
+"Größe des Speicherdatenträgers %(name)s konnte nicht geändert werden. "
+"Details: %(err)s"
#, python-format
msgid "Storage type %(type)s does not support volume create and delete"
msgstr ""
-"Speichertyp %(type)s unterstützt nicht das Erstellen und Löschen von Datenträgern"
+"Speichertyp %(type)s unterstützt nicht das Erstellen und Löschen von "
+"Datenträgern"
msgid "Storage volume name must be a string"
-msgstr ""
-"Name des Speicherdatenträgers muss eine Zeichenfolge sein"
+msgstr "Name des Speicherdatenträgers muss eine Zeichenfolge sein"
msgid "Storage volume allocation must be an integer number"
-msgstr ""
-"Zuordnung des Speicherdatenträgers muss eine Ganzzahl sein"
+msgstr "Zuordnung des Speicherdatenträgers muss eine Ganzzahl sein"
msgid ""
"Storage volume format not supported. Valid formats: bochs, cloop, cow, dmg, "
"qcow, qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"Format des Speicherdatenträgers wird nicht unterstützt. Gültige Formate: bochs, cloop, cow, dmg, "
-"qcow, qcow2, qed, raw, vmdk, vpc."
+"Format des Speicherdatenträgers wird nicht unterstützt. Gültige Formate: "
+"bochs, cloop, cow, dmg, qcow, qcow2, qed, raw, vmdk, vpc."
msgid "Storage volume requires a volume name"
-msgstr ""
-"Speicherdatenträger erfordert einen Datenträgernamen"
+msgstr "Speicherdatenträger erfordert einen Datenträgernamen"
#, python-format
msgid ""
"Unable to update database with storage volume information due error: %(err)s"
msgstr ""
-"Datenbank mit Datenträgerinformationen kann aufgrund des folgenden Fehlers nicht aktualisiert werden: %(err)s"
+"Datenbank mit Datenträgerinformationen kann aufgrund des folgenden Fehlers "
+"nicht aktualisiert werden: %(err)s"
#, python-format
msgid "Only one of parameter %(param)s can be specified"
-msgstr ""
-"Der Parameter %(param)s kann nur einmal angegeben werden"
+msgstr "Der Parameter %(param)s kann nur einmal angegeben werden"
#, python-format
msgid "Create volume from %(param)s is not supported"
-msgstr ""
-"Erstellung des Datenträgers aus %(param)s wird nicht unterstützt"
+msgstr "Erstellung des Datenträgers aus %(param)s wird nicht unterstützt"
msgid "Storage volume capacity must be an integer number."
-msgstr ""
-"Kapazität des Speicherdatenträgers muss eine Ganzzahl sein."
+msgstr "Kapazität des Speicherdatenträgers muss eine Ganzzahl sein."
msgid "Storage volume URL must be http://, https://, ftp:// or ftps://."
msgstr ""
-"Speicherdatenträger-URL muss eine http://-, https://-, ftp://- oder ftps://-URL sein."
+"Speicherdatenträger-URL muss eine http://-, https://-, ftp://- oder ftps://-"
+"URL sein."
#, python-format
msgid "Unable to access file %(url)s. Please, check it."
msgstr ""
-"Zugriff auf Datei %(url)s konnte nicht ausgeführt werden. Überprüfen Sie die Datei."
+"Zugriff auf Datei %(url)s konnte nicht ausgeführt werden. Überprüfen Sie die "
+"Datei."
#, python-format
msgid ""
"Unable to clone storage volume '%(name)s' in pool '%(pool)s'. Details: "
"%(err)s"
msgstr ""
-"Speicherdatenträger '%(name)s' im Pool '%(pool)s' konnte nicht geklont werden. Details: "
-"%(err)s"
+"Speicherdatenträger '%(name)s' im Pool '%(pool)s' konnte nicht geklont "
+"werden. Details: %(err)s"
msgid "Specify chunk data and its size to upload a file."
-msgstr ""
-"Geben Sie Chunkdaten und deren Größe an, um eine Datei hochzuladen."
+msgstr "Geben Sie Chunkdaten und deren Größe an, um eine Datei hochzuladen."
msgid "In order to upload a storage volume, specify the 'upload' parameter."
msgstr ""
-"Um einen Speicherdatenträger hochzuladen, müssen Sie den Parameter 'upload' angeben."
+"Um einen Speicherdatenträger hochzuladen, müssen Sie den Parameter 'upload' "
+"angeben."
msgid ""
"Unable to upload chunk data as it does not match with requested chunk size."
msgstr ""
-"Chunkdaten konnten nicht hochgeladen werden, da sie nicht mit der angeforderten Chunkgröße übereinstimmen."
+"Chunkdaten konnten nicht hochgeladen werden, da sie nicht mit der "
+"angeforderten Chunkgröße übereinstimmen."
#, python-format
msgid "The storage volume %(vol)s is not under an upload process."
@@ -958,255 +919,233 @@ msgstr ""
msgid "The upload chunk data will exceed the storage volume size."
msgstr ""
-"Die Chunkdaten für den Upload überschreiten die Größe des Speicherdatenträgers."
+"Die Chunkdaten für den Upload überschreiten die Größe des "
+"Speicherdatenträgers."
#, python-format
msgid "Unable to upload chunk data to storage volume. Details: %(err)s."
msgstr ""
-"Chunkdaten konnten nicht auf Speicherdatenträger hochgeladen werden. Details: %(err)s."
+"Chunkdaten konnten nicht auf Speicherdatenträger hochgeladen werden. "
+"Details: %(err)s."
#, python-format
msgid "Interface %(name)s does not exist"
-msgstr ""
-"Schnittstelle %(name)s ist nicht vorhanden"
+msgstr "Schnittstelle %(name)s ist nicht vorhanden"
#, python-format
msgid "Network %(name)s already exists"
-msgstr ""
-"Netz %(name)s ist bereits vorhanden"
+msgstr "Netz %(name)s ist bereits vorhanden"
#, python-format
msgid "Network %(name)s does not exist"
-msgstr ""
-"Netz %(name)s ist nicht vorhanden"
+msgstr "Netz %(name)s ist nicht vorhanden"
#, python-format
msgid "Subnet %(subnet)s specified for network %(network)s is not valid."
msgstr ""
-"Das Teilnetz %(subnet)s, das für das Netz %(network)s angegeben wurde, ist nicht gültig."
+"Das Teilnetz %(subnet)s, das für das Netz %(network)s angegeben wurde, ist "
+"nicht gültig."
#, python-format
msgid "Specify a network interface to create bridged network %(name)s"
msgstr ""
-"Geben Sie eine Netzschnittstelle an, um das überbrückte Netz %(name)s zu erstellen"
+"Geben Sie eine Netzschnittstelle an, um das überbrückte Netz %(name)s zu "
+"erstellen"
#, python-format
msgid "Unable to delete active network %(name)s"
-msgstr ""
-"Aktives Netz %(name)s konnte nicht gelöscht werden"
+msgstr "Aktives Netz %(name)s konnte nicht gelöscht werden"
#, python-format
msgid "Interface %(iface)s specified for network %(network)s is already in use"
msgstr ""
-"Die Schnittstelle %(iface)s, die für das Netz %(network)s angegeben wurde, ist bereits belegt"
+"Die Schnittstelle %(iface)s, die für das Netz %(network)s angegeben wurde, "
+"ist bereits belegt"
msgid "Interface should be bare NIC, bonding or bridge device."
-msgstr ""
-"Schnittstelle sollte bloßes NIC, Bonding oder Brückeneinheit sein."
+msgstr "Schnittstelle sollte bloßes NIC, Bonding oder Brückeneinheit sein."
#, python-format
msgid "Unable to create network %(name)s. Details: %(err)s"
-msgstr ""
-"Netz %(name)s konnte nicht erstellt werden. Details: %(err)s"
+msgstr "Netz %(name)s konnte nicht erstellt werden. Details: %(err)s"
#, python-format
msgid "Unable to find a free IP address for network '%(name)s'"
-msgstr ""
-"Es konnte keine freie IP-Adresse für Netz '%(name)s' gefunden werden"
+msgstr "Es konnte keine freie IP-Adresse für Netz '%(name)s' gefunden werden"
#, python-format
msgid "The interface %(iface)s already exists."
-msgstr ""
-"Schnittstelle %(iface)s ist bereits vorhanden."
+msgstr "Schnittstelle %(iface)s ist bereits vorhanden."
msgid "Network name must be a string without slashes (/) or quotes (\")"
msgstr ""
-"Netzname muss eine Zeichenfolge ohne Schrägstriche (/) oder Anführungszeichen (\") sein"
+"Netzname muss eine Zeichenfolge ohne Schrägstriche (/) oder "
+"Anführungszeichen (\") sein"
msgid "Supported network types are isolated, NAT and bridge"
-msgstr ""
-"Unterstützte Netztypen sind Isoliert, NAT und Brücke"
+msgstr "Unterstützte Netztypen sind Isoliert, NAT und Brücke"
msgid "Network subnet must be a string with IP address and prefix or netmask"
msgstr ""
-"Teilnetz des Netzes muss eine Zeichenfolge mit IP-Adresse und Präfix oder Netzmaske sein"
+"Teilnetz des Netzes muss eine Zeichenfolge mit IP-Adresse und Präfix oder "
+"Netzmaske sein"
msgid "Network interface must be a string"
-msgstr ""
-"Netzschnittstelle muss eine Zeichenfolge sein"
+msgstr "Netzschnittstelle muss eine Zeichenfolge sein"
msgid "Network VLAN ID must be an integer between 1 and 4094"
-msgstr ""
-"Netz-VLAN-ID muss eine Ganzzahl zwischen 1 und 4094 sein"
+msgstr "Netz-VLAN-ID muss eine Ganzzahl zwischen 1 und 4094 sein"
msgid "Specify name and type to create a Network"
-msgstr ""
-"Geben Sie Name und Typ an, um ein Netz zu erstellen"
+msgstr "Geben Sie Name und Typ an, um ein Netz zu erstellen"
#, python-format
msgid ""
"Unable to delete network %(name)s. There are some virtual machines %(vms)s "
"and/or templates linked to this network."
msgstr ""
-"Netz %(name)s konnte nicht gelöscht werden. Mit diesem Netz sind einige virtuelle Maschinen %(vms)s "
-"und/oder Vorlagen verlinkt."
+"Netz %(name)s konnte nicht gelöscht werden. Mit diesem Netz sind einige "
+"virtuelle Maschinen %(vms)s und/oder Vorlagen verlinkt."
#, python-format
msgid ""
"Unable to deactivate network %(name)s. There are some virtual machines "
"%(vms)s and/or templates linked to this network."
msgstr ""
-"Netz %(name)s konnte nicht inaktiviert werden. Mit diesem Netz sind einige virtuelle Maschinen "
-"%(vms)s und/oder Vorlagen verlinkt."
+"Netz %(name)s konnte nicht inaktiviert werden. Mit diesem Netz sind einige "
+"virtuelle Maschinen %(vms)s und/oder Vorlagen verlinkt."
#, python-format
msgid "Bridge device %(name)s can not be the trunk device of a VLAN."
-msgstr ""
-"Brückeneinheit %(name)s kann nicht die Trunkeinheit eines VLAN sein."
+msgstr "Brückeneinheit %(name)s kann nicht die Trunkeinheit eines VLAN sein."
#, python-format
msgid "Failed to activate interface %(iface)s: %(err)s."
-msgstr ""
-"Schnittstelle %(iface)s konnte nicht aktiviert werden: %(err)s."
+msgstr "Schnittstelle %(iface)s konnte nicht aktiviert werden: %(err)s."
#, python-format
msgid ""
"Failed to activate interface %(iface)s. Please check the physical link "
"status."
msgstr ""
-"Schnittstelle %(iface)s konnte nicht aktiviert werden. Überprüfen Sie den Status der "
-"physischen Verbindung."
+"Schnittstelle %(iface)s konnte nicht aktiviert werden. Überprüfen Sie den "
+"Status der physischen Verbindung."
#, python-format
msgid "Failed to start network %(name)s. Details: %(err)s"
-msgstr ""
-"Netz %(name)s konnte nicht gestartet werden. Details: %(err)s"
+msgstr "Netz %(name)s konnte nicht gestartet werden. Details: %(err)s"
#, python-format
msgid "Debug report %(name)s does not exist"
-msgstr ""
-"Debugbericht %(name)s ist nicht vorhanden"
+msgstr "Debugbericht %(name)s ist nicht vorhanden"
msgid "Debug report tool not found in system"
-msgstr ""
-"Debugberichtstool nicht im System gefunden"
+msgstr "Debugberichtstool nicht im System gefunden"
#, python-format
msgid "Unable to create debug report %(name)s. Details: %(err)s."
-msgstr ""
-"Debugbericht %(name)s konnte nicht erstellt werden. Details: %(err)s."
+msgstr "Debugbericht %(name)s konnte nicht erstellt werden. Details: %(err)s."
#, python-format
msgid "Can not find any debug report with the given name %(name)s"
msgstr ""
-"Ein Debugbericht mit dem angegebenen Namen %(name)s konnte nicht gefunden werden"
+"Ein Debugbericht mit dem angegebenen Namen %(name)s konnte nicht gefunden "
+"werden"
#, python-format
msgid "Unable to generate debug report %(name)s. Details: %(err)s"
-msgstr ""
-"Debugbericht %(name)s konnte nicht generiert werden. Details: %(err)s"
+msgstr "Debugbericht %(name)s konnte nicht generiert werden. Details: %(err)s"
msgid "You should give a name for the debug report file."
-msgstr ""
-"Sie müssen einen Namen für die Debugberichtsdatei angeben."
+msgstr "Sie müssen einen Namen für die Debugberichtsdatei angeben."
msgid ""
"Debug report name must be a string. Only letters, digits, underscore ('_') "
"and hyphen ('-') are allowed."
msgstr ""
-"Der Name des Debugberichts muss eine Zeichenfolge sein. Nur Buchstaben, Ziffern, Unterstreichungszeichen ('_') "
-"und Bindestriche ('-') sind zulässig."
+"Der Name des Debugberichts muss eine Zeichenfolge sein. Nur Buchstaben, "
+"Ziffern, Unterstreichungszeichen ('_') und Bindestriche ('-') sind zulässig."
#, python-format
msgid ""
"The debug report with specified name \"%(name)s\" already exists. Please use "
"another one."
msgstr ""
-"Der Debugbericht mit dem Namen \"%(name)s\" ist bereits vorhanden. Verwenden Sie "
-"einen anderen Namen."
+"Der Debugbericht mit dem Namen \"%(name)s\" ist bereits vorhanden. Verwenden "
+"Sie einen anderen Namen."
#, python-format
msgid "Storage server %(server)s was not used by Kimchi"
-msgstr ""
-"Speicherserver %(server)s wurde nicht von Kimchi verwendet"
+msgstr "Speicherserver %(server)s wurde nicht von Kimchi verwendet"
#, python-format
msgid "Distro '%(name)s' does not exist"
-msgstr ""
-"Distro '%(name)s' ist nicht vorhanden"
+msgstr "Distro '%(name)s' ist nicht vorhanden"
#, python-format
msgid "Partition %(name)s does not exist in the host"
-msgstr ""
-"Partition %(name)s ist im Host nicht vorhanden"
+msgstr "Partition %(name)s ist im Host nicht vorhanden"
msgid "Unable to shutdown host machine as there are running virtual machines"
msgstr ""
-"Hostmaschine konnte nicht heruntergefahren werden, weil virtuelle Maschinen ausgeführt werden"
+"Hostmaschine konnte nicht heruntergefahren werden, weil virtuelle Maschinen "
+"ausgeführt werden"
msgid "Unable to reboot host machine as there are running virtual machines"
msgstr ""
-"Hostmaschine konnte nicht neu gestartet werden, weil virtuelle Maschinen ausgeführt werden"
+"Hostmaschine konnte nicht neu gestartet werden, weil virtuelle Maschinen "
+"ausgeführt werden"
#, python-format
msgid "Node device '%(name)s' not found"
-msgstr ""
-"Knoteneinheit '%(name)s' nicht gefunden"
+msgstr "Knoteneinheit '%(name)s' nicht gefunden"
msgid "Conflicting flag filters specified."
-msgstr ""
-"In Konflikt stehende Flagfilter angegeben."
+msgstr "In Konflikt stehende Flagfilter angegeben."
msgid "No packages marked for update"
-msgstr ""
-"Keine Pakete für Aktualisierung markiert"
+msgstr "Keine Pakete für Aktualisierung markiert"
#, python-format
msgid "Package %(name)s is not marked to be updated."
-msgstr ""
-"Paket %(name)s ist nicht für Aktualisierung markiert."
+msgstr "Paket %(name)s ist nicht für Aktualisierung markiert."
#, python-format
msgid "Error while getting packages marked to be updated. Details: %(err)s"
msgstr ""
-"Fehler beim Abrufen von Paketen, die für die Aktualisierung markiert sind. Details: %(err)s"
+"Fehler beim Abrufen von Paketen, die für die Aktualisierung markiert sind. "
+"Details: %(err)s"
msgid "There is no compatible package manager for this system."
-msgstr ""
-"Es gibt keinen kompatiblen Paketmanager für dieses System."
+msgstr "Es gibt keinen kompatiblen Paketmanager für dieses System."
#, python-format
msgid "Unable to find %(item)s in datastore"
-msgstr ""
-"%(item)s konnten nicht im Datenspeicher gefunden werden"
+msgstr "%(item)s konnten nicht im Datenspeicher gefunden werden"
#, python-format
msgid "Invalid URI %(uri)s"
-msgstr ""
-"Ungültiger URI %(uri)s"
+msgstr "Ungültiger URI %(uri)s"
#, python-format
msgid "Timeout while running command '%(cmd)s' after %(seconds)s seconds"
msgstr ""
-"Zeitlimitüberschreitung bei Ausführung des Befehls '%(cmd)s' nach %(seconds)s Sekunden"
+"Zeitlimitüberschreitung bei Ausführung des Befehls '%(cmd)s' nach "
+"%(seconds)s Sekunden"
msgid "Unable to choose a virtual machine name"
-msgstr ""
-"Name der virtuellen Maschine konnte nicht ausgewählt werden"
+msgstr "Name der virtuellen Maschine konnte nicht ausgewählt werden"
#, python-format
msgid "Invalid data value '%(value)s'"
-msgstr ""
-"Ungültiger Datenwert '%(value)s'"
+msgstr "Ungültiger Datenwert '%(value)s'"
#, python-format
msgid "Invalid data unit '%(unit)s'"
-msgstr ""
-"Ungültige Dateneinheit '%(unit)s'"
+msgstr "Ungültige Dateneinheit '%(unit)s'"
msgid "Invalid storage type. Types supported: 'cdrom', 'disk'"
-msgstr ""
-"Ungültiger Speichertyp. Unterstützte Typen: 'cdrom', 'disk'"
+msgstr "Ungültiger Speichertyp. Unterstützte Typen: 'cdrom', 'disk'"
#, python-format
msgid "The path '%(value)s' is not a valid local/remote path for the device"
@@ -1214,56 +1153,52 @@ msgstr ""
"Der Pfad '%(value)s' ist kein gültiger lokaler/ferner Pfad für die Einheit"
msgid "Only CDROM path can be update."
-msgstr ""
-"Nur der CD-ROM-Pfad kann aktualisiert werden."
+msgstr "Nur der CD-ROM-Pfad kann aktualisiert werden."
#, python-format
msgid ""
"The storage device %(dev_name)s does not exist in the virtual machine "
"%(vm_name)s"
msgstr ""
-"Die Speichereinheit %(dev_name)s ist in der virtuellen Maschine "
-"%(vm_name)s nicht vorhanden"
+"Die Speichereinheit %(dev_name)s ist in der virtuellen Maschine %(vm_name)s "
+"nicht vorhanden"
#, python-format
msgid "Error while creating new storage device: %(error)s"
-msgstr ""
-"Fehler beim Erstellen einer neuen Speichereinheit: %(error)s"
+msgstr "Fehler beim Erstellen einer neuen Speichereinheit: %(error)s"
#, python-format
msgid "Error while updating storage device: %(error)s"
-msgstr ""
-"Fehler beim Aktualisieren einer Speichereinheit: %(error)s"
+msgstr "Fehler beim Aktualisieren einer Speichereinheit: %(error)s"
#, python-format
msgid "Error while removing storage device: %(error)s"
-msgstr ""
-"Fehler beim Entfernen einer Speichereinheit: %(error)s"
+msgstr "Fehler beim Entfernen einer Speichereinheit: %(error)s"
msgid "Do not support IDE device hot plug"
-msgstr ""
-"Hot Plug für IDE-Einheit nicht unterstützen"
+msgstr "Hot Plug für IDE-Einheit nicht unterstützen"
msgid ""
"Specify type and path or type and pool/volume to add a new virtual machine "
"disk"
msgstr ""
-"Geben Sie Typ und Pfad oder Typ und Pool/Datenträger an, um eine neue "
-"Platte für eine virtuelle Maschine hinzuzufügen"
+"Geben Sie Typ und Pfad oder Typ und Pool/Datenträger an, um eine neue Platte "
+"für eine virtuelle Maschine hinzuzufügen"
msgid "Specify path to update virtual machine disk"
msgstr ""
-"Geben Sie einen Pfad an, um die Platte der virtuellen Maschine zu aktualisieren"
+"Geben Sie einen Pfad an, um die Platte der virtuellen Maschine zu "
+"aktualisieren"
#, python-format
msgid "Controller type %(type)s limitation of %(limit)s devices reached"
-msgstr ""
-"Begrenzung von %(limit)s Einheiten bei Controllertyp %(type)s erreicht"
+msgstr "Begrenzung von %(limit)s Einheiten bei Controllertyp %(type)s erreicht"
#, python-format
msgid "Cannot retrieve disk path information for given pool/volume: %(error)s"
msgstr ""
-"Plattenpfadinformationen für angegebenen Pool/Datenträger können nicht abgerufen werden: %(error)s"
+"Plattenpfadinformationen für angegebenen Pool/Datenträger können nicht "
+"abgerufen werden: %(error)s"
msgid "Volume already in use by other virtual machine."
msgstr ""
@@ -1273,8 +1208,8 @@ msgid ""
"Only one of path or pool/volume can be specified to add a new virtual "
"machine disk"
msgstr ""
-"Es kann nur ein Pfad oder ein Pool/Datenträger angegeben werden, um eine neue "
-"Platte für die virtuelle Maschine hinzuzufügen"
+"Es kann nur ein Pfad oder ein Pool/Datenträger angegeben werden, um eine "
+"neue Platte für die virtuelle Maschine hinzuzufügen"
#, python-format
msgid ""
@@ -1289,39 +1224,32 @@ msgstr ""
"YUM-Repository-ID darf nur ein aus einer Zeichenfolge bestehendes Wort sein."
msgid "Repository URL must be an http://, ftp:// or file:// URL."
-msgstr ""
-"Repository-URL muss eine http://-, ftp://- oder file://-URL sein."
+msgstr "Repository-URL muss eine http://-, ftp://- oder file://-URL sein."
msgid ""
"Repository configuration is a dictionary with specific values according to "
"repository type."
msgstr ""
-"Repository-Konfiguration ist ein Wörterbuch mit bestimmten Werten hinsichtlich "
-"Repository-Typ."
+"Repository-Konfiguration ist ein Wörterbuch mit bestimmten Werten "
+"hinsichtlich Repository-Typ."
msgid "Distribution to DEB repository must be a string"
-msgstr ""
-"Verteilung an DEB-Repository muss eine Zeichenfolge sein"
+msgstr "Verteilung an DEB-Repository muss eine Zeichenfolge sein"
msgid "Components to DEB repository must be listed in a array"
-msgstr ""
-"Komponenten für DEB-Repository müssen in einem Array aufgelistet sein"
+msgstr "Komponenten für DEB-Repository müssen in einem Array aufgelistet sein"
msgid "Components to DEB repository must be a string"
-msgstr ""
-"Komponenten für DEB-Repository müssen eine Zeichenfolge sein"
+msgstr "Komponenten für DEB-Repository müssen eine Zeichenfolge sein"
msgid "Mirror list to repository must be a string"
-msgstr ""
-"Spiegelliste für Repository muss eine Zeichenfolge sein"
+msgstr "Spiegelliste für Repository muss eine Zeichenfolge sein"
msgid "YUM Repository name must be string."
-msgstr ""
-"Name des YUM-Repositorys muss eine Zeichenfolge sein."
+msgstr "Name des YUM-Repositorys muss eine Zeichenfolge sein."
msgid "GPG check must be a boolean value."
-msgstr ""
-"GPG-Prüfung muss ein boolescher Wert sein."
+msgstr "GPG-Prüfung muss ein boolescher Wert sein."
msgid "GPG key must be a URL pointing to the ASCII-armored file."
msgstr ""
@@ -1329,39 +1257,33 @@ msgstr ""
#, python-format
msgid "Could not update repository %(repo_id)s."
-msgstr ""
-"Repository %(repo_id)s konnte nicht aktualisiert werden."
+msgstr "Repository %(repo_id)s konnte nicht aktualisiert werden."
#, python-format
msgid "Repository %(repo_id)s does not exist."
-msgstr ""
-"Repository %(repo_id)s ist nicht vorhanden."
+msgstr "Repository %(repo_id)s ist nicht vorhanden."
msgid ""
"Specify repository base URL, mirror list or metalink in order to create or "
"update a YUM repository."
msgstr ""
-"Geben Sie die Basis-URL, die Spiegelliste oder den Metalink des Repositorys an, um ein "
-"YUM-Repository zu erstellen oder zu aktualisieren."
+"Geben Sie die Basis-URL, die Spiegelliste oder den Metalink des Repositorys "
+"an, um ein YUM-Repository zu erstellen oder zu aktualisieren."
msgid "Repository management tool was not recognized for your system."
-msgstr ""
-"Repository-Verwaltungstool wurde für Ihr System nicht erkannt."
+msgstr "Repository-Verwaltungstool wurde für Ihr System nicht erkannt."
#, python-format
msgid "Repository %(repo_id)s is already enabled."
-msgstr ""
-"Repository %(repo_id)s ist bereits aktiviert."
+msgstr "Repository %(repo_id)s ist bereits aktiviert."
#, python-format
msgid "Repository %(repo_id)s is already disabled."
-msgstr ""
-"Repository %(repo_id)s ist bereits inaktiviert."
+msgstr "Repository %(repo_id)s ist bereits inaktiviert."
#, python-format
msgid "Could not remove repository %(repo_id)s."
-msgstr ""
-"Repository %(repo_id)s konnte nicht entfernt werden."
+msgstr "Repository %(repo_id)s konnte nicht entfernt werden."
#, python-format
msgid "Could not write repository configuration file %(repo_file)s"
@@ -1374,26 +1296,21 @@ msgstr ""
#, python-format
msgid "Could not enable repository %(repo_id)s."
-msgstr ""
-"Repository %(repo_id)s konnte nicht aktiviert werden."
+msgstr "Repository %(repo_id)s konnte nicht aktiviert werden."
#, python-format
msgid "Could not disable repository %(repo_id)s."
-msgstr ""
-"Repository %(repo_id)s konnte nicht inaktiviert werden."
+msgstr "Repository %(repo_id)s konnte nicht inaktiviert werden."
msgid "YUM Repository ID already exists"
-msgstr ""
-"YUM-Repository-ID ist bereits vorhanden"
+msgstr "YUM-Repository-ID ist bereits vorhanden"
msgid "YUM Repository name must be a string"
-msgstr ""
-"YUM-Repository-Name muss eine Zeichenfolge sein"
+msgstr "YUM-Repository-Name muss eine Zeichenfolge sein"
#, python-format
msgid "Unable to list repositories. Details: '%(err)s'"
-msgstr ""
-"Repositorys konnten nicht aufgelistet werden. Details: '%(err)s'"
+msgstr "Repositorys konnten nicht aufgelistet werden. Details: '%(err)s'"
#, python-format
msgid "Unable to retrieve repository information. Details: '%(err)s'"
@@ -1402,41 +1319,39 @@ msgstr ""
#, python-format
msgid "Unable to add repository. Details: '%(err)s'"
-msgstr ""
-"Repository konnte nicht hinzugefügt werden. Details: '%(err)s'"
+msgstr "Repository konnte nicht hinzugefügt werden. Details: '%(err)s'"
#, python-format
msgid "Unable to remove repository. Details: '%(err)s'"
-msgstr ""
-"Repository konnte nicht entfernt werden. Details: '%(err)s'"
+msgstr "Repository konnte nicht entfernt werden. Details: '%(err)s'"
#, python-format
msgid ""
"Configuration items: '%(items)s' are not supported by repository manager"
msgstr ""
-"Konfigurationselemente: '%(items)s' werden vom Repository-Manager nicht unterstützt"
+"Konfigurationselemente: '%(items)s' werden vom Repository-Manager nicht "
+"unterstützt"
msgid "Repository metalink must be an http://, ftp:// or file:// URL."
-msgstr ""
-"Repository-Metalink muss eine http://-, ftp://- oder file://-URL sein."
+msgstr "Repository-Metalink muss eine http://-, ftp://- oder file://-URL sein."
msgid "Cannot specify mirrorlist and metalink at the same time."
-msgstr ""
-"Spiegelliste und Metalink können nicht gleichzeitig angegeben werden."
+msgstr "Spiegelliste und Metalink können nicht gleichzeitig angegeben werden."
#, python-format
msgid ""
"Virtual machine '%(vm)s' must be stopped before creating a snapshot of it."
msgstr ""
-"Die virtuelle Maschine '%(vm)s' muss vor dem Erstellen eines Snapshots gestoppt werden."
+"Die virtuelle Maschine '%(vm)s' muss vor dem Erstellen eines Snapshots "
+"gestoppt werden."
#, python-format
msgid ""
"Unable to create snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Snapshot '%(name)s' kann auf virtueller Maschine '%(vm)s' nicht erstellt werden. Details: "
-"%(err)s"
+"Snapshot '%(name)s' kann auf virtueller Maschine '%(vm)s' nicht erstellt "
+"werden. Details: %(err)s"
#, python-format
msgid "Snapshot '%(name)s' does not exist on virtual machine '%(vm)s'."
@@ -1448,634 +1363,507 @@ msgid ""
"Unable to retrieve snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Snapshot '%(name)s' kann auf virtueller Maschine '%(vm)s' nicht abgerufen werden. Details: "
-"%(err)s"
+"Snapshot '%(name)s' kann auf virtueller Maschine '%(vm)s' nicht abgerufen "
+"werden. Details: %(err)s"
#, python-format
msgid "Unable to list snapshots on virtual machine '%(vm)s'. Details: %(err)s"
msgstr ""
-"Snapshots können auf virtueller Maschine '%(vm)s' nicht aufgelistet werden. Details: %(err)s"
+"Snapshots können auf virtueller Maschine '%(vm)s' nicht aufgelistet werden. "
+"Details: %(err)s"
#, python-format
msgid ""
"Unable to delete snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Snapshot '%(name)s' kann auf virtueller Maschine '%(vm)s' nicht gelöscht werden. Details: "
-"%(err)s"
+"Snapshot '%(name)s' kann auf virtueller Maschine '%(vm)s' nicht gelöscht "
+"werden. Details: %(err)s"
#, python-format
msgid ""
"Unable to retrieve current snapshot of virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Aktueller Snapshot der virtuellen Maschine '%(vm)s' kann nicht abgerufen werden. Details: "
-"%(err)s"
+"Aktueller Snapshot der virtuellen Maschine '%(vm)s' kann nicht abgerufen "
+"werden. Details: %(err)s"
#, python-format
msgid ""
"Unable to revert virtual machine '%(vm)s' to snapshot '%(name)s'. Details: "
"%(err)s"
msgstr ""
-"Virtuelle Maschine '%(vm)s' kann nicht auf Snapshot '%(name)s' zurückgesetzt werden. Details: "
-"%(err)s"
+"Virtuelle Maschine '%(vm)s' kann nicht auf Snapshot '%(name)s' zurückgesetzt "
+"werden. Details: %(err)s"
#, python-format
msgid ""
"Unable to create snapshot of virtual machine '%(vm)s' because it contains a "
"disk with format '%(format)s'; only 'qcow2' is supported."
msgstr ""
-"Snapshot der virtuellen Maschine '%(vm)s' kann nicht erstellt werden, weil er eine "
-"Platte im Format '%(format)s' enthält. Nur 'qcow2' wird unterstützt."
+"Snapshot der virtuellen Maschine '%(vm)s' kann nicht erstellt werden, weil "
+"er eine Platte im Format '%(format)s' enthält. Nur 'qcow2' wird unterstützt."
msgid "The number of vCPUs is too large for this system."
-msgstr ""
-"Die Anzahl der vCPUs ist für dieses System zu groß."
+msgstr "Die Anzahl der vCPUs ist für dieses System zu groß."
msgid "Invalid vCPU/topology combination."
-msgstr ""
-"Ungültige Kombination aus vCPU und Topologie."
+msgstr "Ungültige Kombination aus vCPU und Topologie."
msgid "This host (or current configuration) does not allow CPU topology."
msgstr ""
"Dieser Host (oder die aktuelle Konfiguration) erlaubt keine CPU-Topologie."
msgid "ERROR CODE"
-msgstr ""
-"FEHLERCODE"
+msgstr "FEHLERCODE"
msgid "REASON"
-msgstr ""
-"GRUND"
+msgstr "GRUND"
msgid "STACK"
-msgstr ""
-"STACK"
+msgstr "STACK"
msgid "Go to Homepage"
-msgstr ""
-"Gehe zu Homepage"
+msgstr "Gehe zu Homepage"
msgid "Create a New Virtual Machine"
-msgstr ""
-"Neue virtuelle Maschine erstellen"
+msgstr "Neue virtuelle Maschine erstellen"
msgid "Virtual Machine Name"
-msgstr ""
-"Name der virtuellen Maschine"
+msgstr "Name der virtuellen Maschine"
msgid ""
"The name used to identify the virtual machine. If omitted, a name will be "
"chosen based on the template used."
msgstr ""
-"Der für die Kennzeichnung der virtuellen Maschine verwendete Name. Falls er ausgelassen wird, wird ein Name "
-"anhand der verwendeten Vorlage ausgewählt."
+"Der für die Kennzeichnung der virtuellen Maschine verwendete Name. Falls er "
+"ausgelassen wird, wird ein Name anhand der verwendeten Vorlage ausgewählt."
msgid "Template"
-msgstr ""
-"Vorlage"
+msgstr "Vorlage"
msgid "Please create a template first."
-msgstr ""
-"Erstellen Sie zunächst eine Vorlage."
+msgstr "Erstellen Sie zunächst eine Vorlage."
msgid "Create a Template"
-msgstr ""
-"Vorlage erstellen"
+msgstr "Vorlage erstellen"
msgid "Please choose a template."
-msgstr ""
-"Wählen Sie eine Vorlage aus."
+msgstr "Wählen Sie eine Vorlage aus."
msgid "OS"
-msgstr ""
-"BS"
+msgstr "BS"
msgid "OS Version"
-msgstr ""
-"BS-Version"
+msgstr "BS-Version"
msgid "CPUS"
-msgstr ""
-"CPUS"
+msgstr "CPUS"
msgid "Memory"
-msgstr ""
-"Speicher"
+msgstr "Speicher"
msgid "Create"
-msgstr ""
-"Erstellen"
+msgstr "Erstellen"
msgid "Creating..."
-msgstr ""
-"Wird erstellt..."
+msgstr "Wird erstellt..."
msgid "Edit Guest"
-msgstr ""
-"Gast bearbeiten"
+msgstr "Gast bearbeiten"
msgid "General"
-msgstr ""
-"Allgemein"
+msgstr "Allgemein"
msgid "Storage"
-msgstr ""
-"Speicher"
+msgstr "Speicher"
msgid "Interface"
-msgstr ""
-"Schnittstelle"
+msgstr "Schnittstelle"
msgid "Permission"
-msgstr ""
-"Berechtigung"
+msgstr "Berechtigung"
msgid "Host PCI Device"
-msgstr ""
-"PCI-Einheit für Host"
+msgstr "PCI-Einheit für Host"
msgid "Snapshot"
-msgstr ""
-"Snapshot"
+msgstr "Snapshot"
msgid "Name"
-msgstr ""
-"Name"
+msgstr "Name"
msgid "CPUs"
-msgstr ""
-"CPUs"
+msgstr "CPUs"
msgid "Memory (MB)"
-msgstr ""
-"Speicher (MB)"
+msgstr "Speicher (MB)"
msgid "Icon"
-msgstr ""
-"Symbol"
+msgstr "Symbol"
msgid "Device"
-msgstr ""
-"Einheit"
+msgstr "Einheit"
msgid "Path"
-msgstr ""
-"Pfad"
+msgstr "Pfad"
msgid "Network"
-msgstr ""
-"Netz"
+msgstr "Netz"
msgid "Type"
-msgstr ""
-"Typ"
+msgstr "Typ"
msgid "MAC Address"
-msgstr ""
-"MAC-Adresse"
+msgstr "MAC-Adresse"
msgid "Available system users and groups"
-msgstr ""
-"Verfügbare Systembenutzer und -gruppen"
+msgstr "Verfügbare Systembenutzer und -gruppen"
msgid "Selected system users and groups"
-msgstr ""
-"Ausgewählte Systembenutzer und -gruppen"
+msgstr "Ausgewählte Systembenutzer und -gruppen"
msgid "User"
-msgstr ""
-"Benutzer"
+msgstr "Benutzer"
msgid "All"
-msgstr ""
-"Alle"
+msgstr "Alle"
msgid "To Add"
-msgstr ""
-"Hinzuzufügen"
+msgstr "Hinzuzufügen"
msgid "Added"
-msgstr ""
-"Hinzugefügt"
+msgstr "Hinzugefügt"
msgid "filter"
-msgstr ""
-"Filter"
+msgstr "Filter"
msgid "Product"
-msgstr ""
-"Produkt"
+msgstr "Produkt"
msgid "Vendor"
-msgstr ""
-"Anbieter"
+msgstr "Anbieter"
msgid "Created"
-msgstr ""
-"Erstellt"
+msgstr "Erstellt"
msgid "Save"
-msgstr ""
-"Speichern"
+msgstr "Speichern"
msgid "Replace"
-msgstr ""
-"Ersetzen"
+msgstr "Ersetzen"
msgid "Detach"
-msgstr ""
-"Abhängen"
+msgstr "Abhängen"
msgid "Cancel"
-msgstr ""
-"Abbrechen"
+msgstr "Abbrechen"
msgid "revert"
-msgstr ""
-"zurücksetzen"
+msgstr "zurücksetzen"
msgid "Add a Storage Device to VM"
-msgstr ""
-"Speichereinheit zur virtuellen Maschine hinzufügen"
+msgstr "Speichereinheit zur virtuellen Maschine hinzufügen"
msgid "Device Type"
-msgstr ""
-"Einheitentyp"
+msgstr "Einheitentyp"
msgid "The device type. Currently, \"cdrom\" and \"disk\" are supported."
msgstr ""
"Der Einheitentyp. Derzeit werden nur \"cdrom\" und \"disk\" unterstützt."
msgid "Storage Pool"
-msgstr ""
-"Speicherpool"
+msgstr "Speicherpool"
msgid "Storage pool which volume located in"
-msgstr ""
-"Speicherpool, in dem sich der Datenträger befindet"
+msgstr "Speicherpool, in dem sich der Datenträger befindet"
msgid "Storage Volume"
-msgstr ""
-"Speicherdatenträger"
+msgstr "Speicherdatenträger"
msgid "Storage volume to be attached"
-msgstr ""
-"Anzuhängender Speicherdatenträger"
+msgstr "Anzuhängender Speicherdatenträger"
msgid "File Path"
-msgstr ""
-"Dateipfad"
+msgstr "Dateipfad"
msgid "The ISO file path in the server for CDROM."
-msgstr ""
-"Der ISO-Dateipfad auf dem Server für die CD-ROM."
+msgstr "Der ISO-Dateipfad auf dem Server für die CD-ROM."
msgid "Attach"
-msgstr ""
-"Anhängen"
+msgstr "Anhängen"
msgid "Start"
-msgstr ""
-"Starten"
+msgstr "Starten"
msgid "Reset"
-msgstr ""
-"Zurücksetzen"
+msgstr "Zurücksetzen"
msgid "Pause"
-msgstr ""
-"Anhalten"
+msgstr "Anhalten"
msgid "Resume"
-msgstr ""
-"Fortsetzen"
+msgstr "Fortsetzen"
msgid "Power Off"
-msgstr ""
-"Ausschalten"
+msgstr "Ausschalten"
msgid "Actions"
-msgstr ""
-"Aktionen"
+msgstr "Aktionen"
msgid "Connect"
-msgstr ""
-"Verbinden"
+msgstr "Verbinden"
msgid "Clone"
-msgstr ""
-"Klonen"
+msgstr "Klonen"
msgid "Edit"
-msgstr ""
-"Bearbeiten"
+msgstr "Bearbeiten"
msgid "Shut Down"
-msgstr ""
-"Herunterfahren"
+msgstr "Herunterfahren"
msgid "Delete"
-msgstr ""
-"Löschen"
+msgstr "Löschen"
msgid "The username or password you entered is incorrect. Please try again."
msgstr ""
-"Der Benutzername oder das Kennwort, den bzw. das Sie eingegeben haben, ist falsch. Versuchen Sie es bitte erneut."
+"Der Benutzername oder das Kennwort, den bzw. das Sie eingegeben haben, ist "
+"falsch. Versuchen Sie es bitte erneut."
msgid "This field is required."
-msgstr ""
-"Dieses Feld ist erforderlich."
+msgstr "Dieses Feld ist erforderlich."
msgid "Log in"
-msgstr ""
-"Anmelden"
+msgstr "Anmelden"
msgid "Logging in..."
-msgstr ""
-"Wird angemeldet..."
+msgstr "Wird angemeldet..."
msgid "Host"
-msgstr ""
-"Host"
+msgstr "Host"
msgid "Guests"
-msgstr ""
-"Gäste"
+msgstr "Gäste"
msgid "Templates"
-msgstr ""
-"Vorlagen"
+msgstr "Vorlagen"
msgid "Failed to get application configuration"
-msgstr ""
-"Anwendungskonfiguration konnte nicht abgerufen werden"
+msgstr "Anwendungskonfiguration konnte nicht abgerufen werden"
msgid "This is not a valid Linux path"
-msgstr ""
-"Dies ist kein gültiger Linux-Pfad"
+msgstr "Dies ist kein gültiger Linux-Pfad"
msgid "This is not a valid URL."
-msgstr ""
-"Dies ist keine gültige URL."
+msgstr "Dies ist keine gültige URL."
msgid "No such data available."
-msgstr ""
-"Keine solchen Daten verfügbar."
+msgstr "Keine solchen Daten verfügbar."
msgid ""
"Can not contact the host system. Verify the host system is up and that you "
"have network connectivity to it. HTTP request response %1. "
msgstr ""
-"Hostsystem kann nicht kontaktiert werden. Prüfen Sie, ob das Hostsystem aktiv ist und ob"
-"Netzkonnektivität besteht. HTTP-Anforderungsantwort %1."
+"Hostsystem kann nicht kontaktiert werden. Prüfen Sie, ob das Hostsystem "
+"aktiv ist und obNetzkonnektivität besteht. HTTP-Anforderungsantwort %1."
msgid "Unable to read file."
-msgstr ""
-"Datei konnte nicht gelesen werden."
+msgstr "Datei konnte nicht gelesen werden."
msgid "Error while uploading file."
-msgstr ""
-"Fehler beim Hochladen der Datei."
+msgstr "Fehler beim Hochladen der Datei."
msgid "Delete Confirmation"
-msgstr ""
-"Löschbestätigung"
+msgstr "Löschbestätigung"
msgid "OK"
-msgstr ""
-"OK"
+msgstr "OK"
msgid "Confirm"
-msgstr ""
-"Bestätigen"
+msgstr "Bestätigen"
msgid "Warning"
-msgstr ""
-"Warnung"
+msgstr "Warnung"
msgid "Cloning..."
-msgstr ""
-"Wird geklont..."
+msgstr "Wird geklont..."
msgid "Loading..."
-msgstr ""
-"Wird geladen..."
+msgstr "Wird geladen..."
msgid "An error occurred while retrieving system information."
-msgstr ""
-"Beim Abrufen der Systeminformationen ist ein Fehler aufgetreten."
+msgstr "Beim Abrufen der Systeminformationen ist ein Fehler aufgetreten."
msgid "Retry"
-msgstr ""
-"Wiederholen"
+msgstr "Wiederholen"
msgid "Detailed message:"
-msgstr ""
-"Detaillierte Meldung:"
+msgstr "Detaillierte Meldung:"
msgid "No ISO found"
-msgstr ""
-"Keine ISO-Datei gefunden"
+msgstr "Keine ISO-Datei gefunden"
msgid "This is not a valid ISO file."
-msgstr ""
-"Dies ist keine gültige ISO-Datei."
+msgstr "Dies ist keine gültige ISO-Datei."
msgid "This may take a long time. Do you want to continue?"
-msgstr ""
-"Dieser Vorgang kann lange dauern. Möchten Sie fortfahren?"
+msgstr "Dieser Vorgang kann lange dauern. Möchten Sie fortfahren?"
msgid "This will permanently delete the template. Would you like to continue?"
-msgstr ""
-"Hiermit wird die Vorlage dauerhaft gelöscht. Möchten Sie fortfahren?"
+msgstr "Hiermit wird die Vorlage dauerhaft gelöscht. Möchten Sie fortfahren?"
msgid "Unable to shut down system as there are some virtual machines running!"
msgstr ""
-"System konnte nicht heruntergefahren werden, weil einige virtuellen Maschinen ausgeführt werden!"
+"System konnte nicht heruntergefahren werden, weil einige virtuellen "
+"Maschinen ausgeführt werden!"
msgid "Max:"
-msgstr ""
-"Max:"
+msgstr "Max:"
msgid "Utilization"
-msgstr ""
-"Auslastung"
+msgstr "Auslastung"
msgid "Available"
-msgstr ""
-"Verfügbar"
+msgstr "Verfügbar"
msgid "Read Rate"
-msgstr ""
-"Leserate"
+msgstr "Leserate"
msgid "Write Rate"
-msgstr ""
-"Schreibrate"
+msgstr "Schreibrate"
msgid "Received"
-msgstr ""
-"Empfangen"
+msgstr "Empfangen"
msgid "Sent"
-msgstr ""
-"Gesendet"
+msgstr "Gesendet"
msgid ""
"Shutting down or restarting host will cause unsaved work lost. Continue to "
"shut down/restarting?"
msgstr ""
-"Durch das Herunterfahren oder Neustarten des Hosts können ungesicherte Arbeiten verloren gehen. Möchten Sie mit dem Herunterfahren/Neustarten "
+"Durch das Herunterfahren oder Neustarten des Hosts können ungesicherte "
+"Arbeiten verloren gehen. Möchten Sie mit dem Herunterfahren/Neustarten "
"fortfahren?"
msgid ""
"Repository will be removed permanently and can't be recovered. Do you want "
"to continue?"
msgstr ""
-"Repository wird dauerhaft entfernt und kann nicht wiederhergestellt werden. Möchten Sie "
-"fortfahren?"
+"Repository wird dauerhaft entfernt und kann nicht wiederhergestellt werden. "
+"Möchten Sie fortfahren?"
msgid "Repositories"
-msgstr ""
-"Repositorys"
+msgstr "Repositorys"
msgid "ID"
-msgstr ""
-"ID"
+msgstr "ID"
msgid "Base URL"
-msgstr ""
-"Basis-URL"
+msgstr "Basis-URL"
msgid "Is Mirror"
-msgstr ""
-"Ist Spiegel"
+msgstr "Ist Spiegel"
msgid "URL Args"
-msgstr ""
-"URL-Args"
+msgstr "URL-Args"
msgid "Enabled"
-msgstr ""
-"Aktiviert"
+msgstr "Aktiviert"
msgid "GPG Check"
-msgstr ""
-"GPG-Prüfung"
+msgstr "GPG-Prüfung"
msgid "GPG Key"
-msgstr ""
-"GPG-Schlüssel"
+msgstr "GPG-Schlüssel"
msgid "Add"
-msgstr ""
-"Hinzufügen"
+msgstr "Hinzufügen"
msgid "Remove"
-msgstr ""
-"Entfernen"
+msgstr "Entfernen"
msgid "Enable"
-msgstr ""
-"Aktivieren"
+msgstr "Aktivieren"
msgid "Disable"
-msgstr ""
-"Inaktivieren"
+msgstr "Inaktivieren"
msgid "Software Updates"
-msgstr ""
-"Software-Updates"
+msgstr "Software-Updates"
msgid "Package Name"
-msgstr ""
-"Paketname"
+msgstr "Paketname"
msgid "Version"
-msgstr ""
-"Version"
+msgstr "Version"
msgid "Architecture"
-msgstr ""
-"Architektur"
+msgstr "Architektur"
msgid "Repository"
-msgstr ""
-"Repository"
+msgstr "Repository"
msgid "Update All"
-msgstr ""
-"Alle aktualisieren"
+msgstr "Alle aktualisieren"
msgid "Updating..."
-msgstr ""
-"Wird aktualisiert..."
+msgstr "Wird aktualisiert..."
msgid "Failed to retrieve packages update information."
-msgstr ""
-"Updateinformationen für Pakete konnten nicht abgerufen werden."
+msgstr "Updateinformationen für Pakete konnten nicht abgerufen werden."
msgid "Failed to update package(s)."
-msgstr ""
-"Pakete konnten nicht aktualisiert werden."
+msgstr "Pakete konnten nicht aktualisiert werden."
msgid ""
"Debug report will be removed permanently and can't be recovered. Do you want "
"to continue?"
msgstr ""
-"Debugbericht wird dauerhaft entfernt und kann nicht wiederhergestellt werden. Möchten Sie "
-"fortfahren?"
+"Debugbericht wird dauerhaft entfernt und kann nicht wiederhergestellt "
+"werden. Möchten Sie fortfahren?"
msgid "Debug Reports"
-msgstr ""
-"Debugberichte"
+msgstr "Debugberichte"
msgid "Generated Time"
-msgstr ""
-"Generierte Zeit"
+msgstr "Generierte Zeit"
msgid "Generate"
-msgstr ""
-"Generieren"
+msgstr "Generieren"
msgid "Generating..."
-msgstr ""
-"Wird generiert..."
+msgstr "Wird generiert..."
msgid "Rename"
-msgstr ""
-"Umbenennen"
+msgstr "Umbenennen"
msgid "Download"
-msgstr ""
-"Herunterladen"
+msgstr "Herunterladen"
msgid ""
"Report name should contain only letters, digits, underscore ('_') and/or "
"hyphen ('-')."
msgstr ""
-"Der Berichtsname darf nur Buchstaben, Ziffern, Unterstreichungszeichen ('_') und/oder "
-"Bindestriche ('-') enthalten."
+"Der Berichtsname darf nur Buchstaben, Ziffern, Unterstreichungszeichen ('_') "
+"und/oder Bindestriche ('-') enthalten."
msgid "Pending..."
-msgstr ""
-"Anstehend..."
+msgstr "Anstehend..."
msgid "Report name is the same as the original one."
-msgstr ""
-"Der Berichtsname stimmt mit dem ursprünglichen Namen überein."
+msgstr "Der Berichtsname stimmt mit dem ursprünglichen Namen überein."
msgid ""
"This will delete the virtual machine and its virtual disks. This operation "
"cannot be undone. Would you like to continue?"
msgstr ""
-"Hiermit werden die virtuelle Maschine und deren virtuellen Platten gelöscht. Diese Operation "
-"kann nicht rückgängig gemacht werden. Möchten Sie fortfahren?"
+"Hiermit werden die virtuelle Maschine und deren virtuellen Platten gelöscht. "
+"Diese Operation kann nicht rückgängig gemacht werden. Möchten Sie fortfahren?"
msgid "Power off Confirmation"
-msgstr ""
-"Ausschalten bestätigen"
+msgstr "Ausschalten bestätigen"
msgid ""
"This action may produce undesirable results, for example unflushed disk "
@@ -2085,8 +1873,7 @@ msgstr ""
"einem nicht geleerten Plattencache beim Gast. Möchten Sie fortfahren?"
msgid "Reset Confirmation"
-msgstr ""
-"Zurücksetzung bestätigen"
+msgstr "Zurücksetzung bestätigen"
msgid ""
"There is a risk of data loss caused by reset without the guest OS shutdown. "
@@ -2096,125 +1883,111 @@ msgstr ""
"das Risiko eines Datenverlusts. Möchten Sie fortfahren?"
msgid "Shut Down Confirmation"
-msgstr ""
-"Herunterfahren bestätigen"
+msgstr "Herunterfahren bestätigen"
msgid "Note the guest OS may ignore this request. Would you like to continue?"
msgstr ""
-"Hinweis: Diese Anforderung wird vom Gastbetriebssystem möglicherweise ignoriert. Möchten Sie fortfahren?"
+"Hinweis: Diese Anforderung wird vom Gastbetriebssystem möglicherweise "
+"ignoriert. Möchten Sie fortfahren?"
msgid "Virtual Machine delete Confirmation"
-msgstr ""
-"Löschbestätigung für virtuelle Maschine"
+msgstr "Löschbestätigung für virtuelle Maschine"
msgid ""
"This virtual machine is not persistent. Power Off will delete it. Continue?"
msgstr ""
-"Diese virtuelle Maschine ist nicht permanent. Wenn Sie das System ausschalten, wird sie gelöscht. Möchten Sie fortfahren?"
+"Diese virtuelle Maschine ist nicht permanent. Wenn Sie das System "
+"ausschalten, wird sie gelöscht. Möchten Sie fortfahren?"
msgid ""
"When the target guest has SCSI or iSCSI volumes, they will be cloned on "
"default storage pool. The same will happen when the target pool does not "
"have enough space to clone the volumes. Do you want to continue?"
msgstr ""
-"Wenn der Zielgast über SCSI- oder iSCSI-Datenträger verfügt, dann werden sie im Standardspeicherpool "
-"geklont. Derselbe Vorgang wird ausgeführt, wenn der Zielpool nicht über genügend "
-"Speicherplatz zum Klonen der Datenträger verfügt. Möchten Sie fortfahren?"
+"Wenn der Zielgast über SCSI- oder iSCSI-Datenträger verfügt, dann werden sie "
+"im Standardspeicherpool geklont. Derselbe Vorgang wird ausgeführt, wenn der "
+"Zielpool nicht über genügend Speicherplatz zum Klonen der Datenträger "
+"verfügt. Möchten Sie fortfahren?"
msgid ""
"This CDROM will be detached permanently and you can re-attach it. Continue "
"to detach it?"
msgstr ""
-"Diese CD-ROM wird dauerhaft abgehängt und Sie können sie neu anhängen. Möchten Sie "
-"mit dem Abhängen fortfahren?"
+"Diese CD-ROM wird dauerhaft abgehängt und Sie können sie neu anhängen. "
+"Möchten Sie mit dem Abhängen fortfahren?"
msgid "Attaching..."
-msgstr ""
-"Wird angehängt..."
+msgstr "Wird angehängt..."
msgid "Replacing..."
-msgstr ""
-"Wird ersetzt..."
+msgstr "Wird ersetzt..."
msgid "Successfully attached!"
-msgstr ""
-"Erfolgreich angehängt!"
+msgstr "Erfolgreich angehängt!"
msgid "Successfully replaced!"
-msgstr ""
-"Erfolgreich ersetzt!"
+msgstr "Erfolgreich ersetzt!"
msgid "Successfully detached!"
-msgstr ""
-"Erfolgreich abgehängt!"
+msgstr "Erfolgreich abgehängt!"
msgid ""
"This disk will be detached permanently and you can re-attach it. Continue to "
"detach it?"
msgstr ""
-"Diese Platte wird dauerhaft abgehängt und Sie können sie neu anhängen. Möchten Sie "
-"mit dem Abhängen fortfahren?"
+"Diese Platte wird dauerhaft abgehängt und Sie können sie neu anhängen. "
+"Möchten Sie mit dem Abhängen fortfahren?"
msgid "interface:"
-msgstr ""
-"Schnittstelle:"
+msgstr "Schnittstelle:"
msgid "address:"
-msgstr ""
-"Adresse:"
+msgstr "Adresse:"
msgid "link_type:"
-msgstr ""
-"Linktyp:"
+msgstr "Linktyp:"
msgid "block:"
-msgstr ""
-"Block:"
+msgstr "Block:"
msgid "drive_type:"
-msgstr ""
-"Laufwerkstyp:"
+msgstr "Laufwerkstyp:"
msgid "model:"
-msgstr ""
-"Modell:"
+msgstr "Modell:"
msgid "Affected devices:"
-msgstr ""
-"Betroffene Einheiten:"
+msgstr "Betroffene Einheiten:"
msgid "The VLAN id must be between 1 and 4094."
-msgstr ""
-"Die VLAN-ID muss zwischen 1 und 4094 liegen."
+msgstr "Die VLAN-ID muss zwischen 1 und 4094 liegen."
msgid "unavailable"
-msgstr ""
-"nicht verfügbar"
+msgstr "nicht verfügbar"
msgid ""
"This action will interrupt network connectivity for any virtual machine that "
"depend on this network."
msgstr ""
-"Diese Aktion unterbricht die Netzkonnektivität für jede virtuelle Maschine, die "
-"von diesem Netz abhängt."
+"Diese Aktion unterbricht die Netzkonnektivität für jede virtuelle Maschine, "
+"die von diesem Netz abhängt."
msgid "Create a network"
-msgstr ""
-"Netz erstellen"
+msgstr "Netz erstellen"
msgid ""
"This network is not persistent. Instead of stop, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"Dieses Netz ist nicht permanent. Durch diese Aktion wird es nicht gestoppt, sondern "
-"permanent gelöscht. Möchten Sie fortfahren?"
+"Dieses Netz ist nicht permanent. Durch diese Aktion wird es nicht gestoppt, "
+"sondern permanent gelöscht. Möchten Sie fortfahren?"
msgid ""
"The bridged VLAN tag may not work well with NetworkManager enabled. You "
"should consider disabling it."
msgstr ""
-"Der überbrückte VLAN-Tag arbeitet möglicherweise nicht korrekt, wenn der Netzmanager aktiviert ist. Sie "
-"sollten ihn eventuell inaktivieren."
+"Der überbrückte VLAN-Tag arbeitet möglicherweise nicht korrekt, wenn der "
+"Netzmanager aktiviert ist. Sie sollten ihn eventuell inaktivieren."
msgid ""
"This will permanently delete the storage pool. Would you like to continue?"
@@ -2222,620 +1995,484 @@ msgstr ""
"Hiermit wird der Speicherpool dauerhaft gelöscht. Möchten Sie fortfahren?"
msgid "This storage pool is empty."
-msgstr ""
-"Dieser Speicherpool ist leer."
+msgstr "Dieser Speicherpool ist leer."
msgid ""
"It will format your disk and you will loose any data in there, are you sure "
"to continue? "
msgstr ""
-"Hiermit wird Ihre Platte formatiert und Sie verlieren sämtliche Daten darauf. Sind Sie sicher, dass "
-"Sie fortfahren möchten? "
+"Hiermit wird Ihre Platte formatiert und Sie verlieren sämtliche Daten "
+"darauf. Sind Sie sicher, dass Sie fortfahren möchten? "
msgid "SCSI Fibre Channel"
-msgstr ""
-"SCSI-Fibre Channel"
+msgstr "SCSI-Fibre Channel"
msgid "No SCSI adapters found."
-msgstr ""
-"Keine SCSI-Adapter gefunden."
+msgstr "Keine SCSI-Adapter gefunden."
msgid "Loading iSCSI targets..."
-msgstr ""
-"iSCSI-Ziele werden geladen..."
+msgstr "iSCSI-Ziele werden geladen..."
msgid "No iSCSI found. Please input one."
-msgstr ""
-"iSCSI wurde nicht gefunden. Nehmen Sie die iSCSI-Eingabe vor."
+msgstr "iSCSI wurde nicht gefunden. Nehmen Sie die iSCSI-Eingabe vor."
msgid "Failed to load iSCSI targets."
-msgstr ""
-"iSCSI-Ziele konnten nicht geladen werden."
+msgstr "iSCSI-Ziele konnten nicht geladen werden."
msgid "The storage pool name can not be blank."
-msgstr ""
-"Der Speicherpoolname darf nicht leer sein."
+msgstr "Der Speicherpoolname darf nicht leer sein."
msgid "The storage pool path can not be blank."
-msgstr ""
-"Der Speicherpoolpfad darf nicht leer sein."
+msgstr "Der Speicherpoolpfad darf nicht leer sein."
msgid "NFS server mount path can not be blank."
-msgstr ""
-"Der Mountpfad des NFS-Servers darf nicht leer sein."
+msgstr "Der Mountpfad des NFS-Servers darf nicht leer sein."
msgid "Invalid NFS mount path."
-msgstr ""
-"Ungültiger NFS-Mountpfad."
+msgstr "Ungültiger NFS-Mountpfad."
msgid "No logical device selected."
-msgstr ""
-"Keine logische Einheit ausgewählt."
+msgstr "Keine logische Einheit ausgewählt."
msgid "The iSCSI target can not be blank."
-msgstr ""
-"Das iSCSI-Ziel darf nicht leer sein."
+msgstr "Das iSCSI-Ziel darf nicht leer sein."
msgid "Server name can not be blank."
-msgstr ""
-"Servername darf nicht leer sein."
+msgstr "Servername darf nicht leer sein."
msgid "This is not a valid Server Name or IP. Please, modify it."
msgstr ""
-"Dies ist kein gültiger Servername oder keine gültige IP. Ändern Sie den Servernamen oder die IP."
+"Dies ist kein gültiger Servername oder keine gültige IP. Ändern Sie den "
+"Servernamen oder die IP."
msgid "Looking for available partitions ..."
-msgstr ""
-"Es wird nach verfügbaren Partitionen gesucht..."
+msgstr "Es wird nach verfügbaren Partitionen gesucht..."
msgid "No available partitions found."
-msgstr ""
-"Keine gültigen Partitionen gefunden."
+msgstr "Keine gültigen Partitionen gefunden."
msgid ""
"This storage pool is not persistent. Instead of deactivate, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"Dieser Speicherpool ist nicht permanent. Durch diese Aktion wird er nicht inaktiviert, sondern "
-"permanent gelöscht. Möchten Sie fortfahren?"
+"Dieser Speicherpool ist nicht permanent. Durch diese Aktion wird er nicht "
+"inaktiviert, sondern permanent gelöscht. Möchten Sie fortfahren?"
msgid "Unable to retrieve partitions information."
-msgstr ""
-"Partitionsinformationen konnten nicht abgerufen werden."
+msgstr "Partitionsinformationen konnten nicht abgerufen werden."
msgid "In progress..."
-msgstr ""
-"In Bearbeitung..."
+msgstr "In Bearbeitung..."
msgid "Failed!"
-msgstr ""
-"Fehlgeschlagen!"
+msgstr "Fehlgeschlagen!"
msgid "CDROM path needs to be a valid local/remote path and cannot be blank."
msgstr ""
-"Der CD-ROM-Pfad muss ein gültiger lokaler/ferner Pfad sein. Er darf nicht leer sein."
+"Der CD-ROM-Pfad muss ein gültiger lokaler/ferner Pfad sein. Er darf nicht "
+"leer sein."
msgid "Disk pool or volume cannot be blank."
-msgstr ""
-"Der Plattenpool oder Datenträger darf nicht leer sein."
+msgstr "Der Plattenpool oder Datenträger darf nicht leer sein."
msgid "Peers"
-msgstr ""
-"Peers"
+msgstr "Peers"
msgid "Searching"
-msgstr ""
-"Suche wird durchgeführt"
+msgstr "Suche wird durchgeführt"
msgid "No peers found."
-msgstr ""
-"Keine Peers gefunden."
+msgstr "Keine Peers gefunden."
msgid "Help"
-msgstr ""
-"Hilfe"
+msgstr "Hilfe"
msgid "About"
-msgstr ""
-"Informationen"
+msgstr "Informationen"
msgid "Log out"
-msgstr ""
-"Abmelden"
+msgstr "Abmelden"
msgid "Version:"
-msgstr ""
-"Version:"
+msgstr "Version:"
msgid "Session timeout, please re-login."
-msgstr ""
-"Sitzungszeitlimitüberschreitung, melden Sie sich erneut an."
+msgstr "Sitzungszeitlimitüberschreitung, melden Sie sich erneut an."
msgid "User Name"
-msgstr ""
-"Benutzername"
+msgstr "Benutzername"
msgid "Password"
-msgstr ""
-"Kennwort"
+msgstr "Kennwort"
msgid "Generate a New Debug Report"
-msgstr ""
-"Neuen Debugbericht erstellen"
+msgstr "Neuen Debugbericht erstellen"
msgid "Report Name"
-msgstr ""
-"Berichtsname"
+msgstr "Berichtsname"
msgid ""
"The name used to identify the report. If omitted, a name will be chosen "
"based on current time. Name can contain: letters, digits, underscore (\"_\") "
"and hyphen (\"-\")."
msgstr ""
-"Der Name, mit dem der Bericht angegeben wird. Falls keine Angabe erfolgt, wird ein Name "
-"auf Basis der aktuellen Uhrzeit ausgewählt. Der Name kann Buchstaben, Ziffern, Unterstreichungszeichen (\"_\") "
-"und Bindestriche (\"-\") enthalten."
+"Der Name, mit dem der Bericht angegeben wird. Falls keine Angabe erfolgt, "
+"wird ein Name auf Basis der aktuellen Uhrzeit ausgewählt. Der Name kann "
+"Buchstaben, Ziffern, Unterstreichungszeichen (\"_\") und Bindestriche (\"-"
+"\") enthalten."
msgid "Rename a Debug Report"
-msgstr ""
-"Debugbericht umbenennen"
+msgstr "Debugbericht umbenennen"
msgid ""
"The name used to identify the report. Name can contain: letters, digits and "
"hyphen (\"-\")."
msgstr ""
-"Der Name, mit dem der Bericht angegeben wird. Der Name kann Buchstaben, Ziffern und "
-"Bindestriche (\"-\") enthalten."
+"Der Name, mit dem der Bericht angegeben wird. Der Name kann Buchstaben, "
+"Ziffern und Bindestriche (\"-\") enthalten."
msgid "Submit"
-msgstr ""
-"Übergeben"
+msgstr "Übergeben"
msgid "Add a Repository"
-msgstr ""
-"Repository hinzufügen"
+msgstr "Repository hinzufügen"
msgid "Identifier"
-msgstr ""
-"Kennung"
+msgstr "Kennung"
msgid "Single word, unique identifier for the repository."
-msgstr ""
-"Einzelnes Wort, eindeutige Kennung für das Repository."
+msgstr "Einzelnes Wort, eindeutige Kennung für das Repository."
msgid "Textual name for the repository."
-msgstr ""
-"Textname für das Repository."
+msgstr "Textname für das Repository."
msgid "URL"
-msgstr ""
-"URL"
+msgstr "URL"
msgid "Required Field"
-msgstr ""
-"Erforderliches Feld"
+msgstr "Erforderliches Feld"
msgid "URL to the repository. Supported protocols are http, ftp, and file."
-msgstr ""
-"URL zum Repository. Unterstützte Protokolle sind http, ftp und file."
+msgstr "URL zum Repository. Unterstützte Protokolle sind http, ftp und file."
msgid "Repository is a mirror"
-msgstr ""
-"Repository ist ein Spiegel"
+msgstr "Repository ist ein Spiegel"
msgid "Distribution"
-msgstr ""
-"Verteilung"
+msgstr "Verteilung"
msgid "Distribution of the DEB repository."
-msgstr ""
-"Verteilung des DEB-Repositorys."
+msgstr "Verteilung des DEB-Repositorys."
msgid "Components"
-msgstr ""
-"Komponenten"
+msgstr "Komponenten"
msgid "List of components in DEB repository."
-msgstr ""
-"Liste der Komponenten im DEB-Repository."
+msgstr "Liste der Komponenten im DEB-Repository."
msgid "Edit Repository"
-msgstr ""
-"Repository bearbeiten"
+msgstr "Repository bearbeiten"
msgid "Mirror List URL"
-msgstr ""
-"Spiegellisten-URL"
+msgstr "Spiegellisten-URL"
msgid "Yes"
-msgstr ""
-"Ja"
+msgstr "Ja"
msgid "No"
-msgstr ""
-"Nein"
+msgstr "Nein"
msgid "Add a Volume to Storage Pool"
-msgstr ""
-"Datenträger zu Speicherpool hinzufügen"
+msgstr "Datenträger zu Speicherpool hinzufügen"
msgid "Fetch from remote URL"
-msgstr ""
-"Über Remote URL abrufen"
+msgstr "Über Remote URL abrufen"
msgid "Enter the remote URL here."
-msgstr ""
-"Remote URL hier eingeben."
+msgstr "Remote URL hier eingeben."
msgid "Upload a file"
-msgstr ""
-"Datei hochladen"
+msgstr "Datei hochladen"
msgid "Choose the file you want to upload."
-msgstr ""
-"Wählen Sie die hochzuladende Datei aus."
+msgstr "Wählen Sie die hochzuladende Datei aus."
msgid "Define a New Storage Pool"
-msgstr ""
-"Neuen Speicherpool definieren"
+msgstr "Neuen Speicherpool definieren"
msgid "Storage Pool Name"
-msgstr ""
-"Speicherpoolname"
+msgstr "Speicherpoolname"
msgid ""
"The name used to identify the storage pools, and it should not be empty."
msgstr ""
-"Der Name, mit dem die Speicherpools gekennzeichnet werden. Er darf nicht leer sein."
+"Der Name, mit dem die Speicherpools gekennzeichnet werden. Er darf nicht "
+"leer sein."
msgid "Storage Pool Type"
-msgstr ""
-"Speicherpooltyp"
+msgstr "Speicherpooltyp"
msgid "Storage Path"
-msgstr ""
-"Speicherpfad"
+msgstr "Speicherpfad"
msgid ""
"The path of the Storage Pool. Each Storage Pool must have a unique path."
msgstr ""
-"Der Pfad des Speicherpools. Jeder Speicherpool muss einen eindeutigen Pfad haben."
+"Der Pfad des Speicherpools. Jeder Speicherpool muss einen eindeutigen Pfad "
+"haben."
msgid ""
"Kimchi will try to create the directory when it does not already exist in "
"your system."
msgstr ""
-"Kimchi versucht, das Verzeichnis zu erstellen, wenn es noch nicht in Ihrem System "
-"vorhanden ist."
+"Kimchi versucht, das Verzeichnis zu erstellen, wenn es noch nicht in Ihrem "
+"System vorhanden ist."
msgid "NFS Server IP"
-msgstr ""
-"NFS-Server-IP"
+msgstr "NFS-Server-IP"
msgid "NFS server IP or hostname. It can be input or chosen from history."
msgstr ""
-"IP oder Hostname des NFS-Servers. Diese(r) kann eingegeben oder aus dem Verlauf ausgewählt werden."
+"IP oder Hostname des NFS-Servers. Diese(r) kann eingegeben oder aus dem "
+"Verlauf ausgewählt werden."
msgid "NFS Path"
-msgstr ""
-"NFS-Pfad"
+msgstr "NFS-Pfad"
msgid "The NFS exported path on NFS server."
-msgstr ""
-"Der NFS-Exportpfad auf dem NFS-Server."
+msgstr "Der NFS-Exportpfad auf dem NFS-Server."
msgid "Device path"
-msgstr ""
-"Einheitenpfad"
+msgstr "Einheitenpfad"
msgid "iSCSI Server"
-msgstr ""
-"iSCSI-Server"
+msgstr "iSCSI-Server"
msgid "iSCSI server IP or hostname. It should not be empty."
-msgstr ""
-"IP oder Hostname des iSCSI-Servers. Diese(r) darf nicht leer sein."
+msgstr "IP oder Hostname des iSCSI-Servers. Diese(r) darf nicht leer sein."
msgid "Server"
-msgstr ""
-"Server"
+msgstr "Server"
msgid "Port"
-msgstr ""
-"Port"
+msgstr "Port"
msgid "Target"
-msgstr ""
-"Ziel"
+msgstr "Ziel"
msgid "The iSCSI target on iSCSI server"
-msgstr ""
-"Das iSCSI-Ziel auf dem iSCSI-Server"
+msgstr "Das iSCSI-Ziel auf dem iSCSI-Server"
msgid "Add iSCSI Authentication"
-msgstr ""
-"iSCSI-Authentifizierung hinzufügen"
+msgstr "iSCSI-Authentifizierung hinzufügen"
msgid "iSCSI Authentication"
-msgstr ""
-"iSCSI-Authentifizierung"
+msgstr "iSCSI-Authentifizierung"
msgid "SCSI Adapter"
-msgstr ""
-"SCSI-Adapter"
+msgstr "SCSI-Adapter"
msgid "Please, wait..."
-msgstr ""
-"Bitte warten..."
+msgstr "Bitte warten..."
msgid "Add Template"
-msgstr ""
-"Vorlage hinzufügen"
+msgstr "Vorlage hinzufügen"
msgid "Where is the source media for this template? "
-msgstr ""
-"Wo ist der Quellendatenträger für diese Vorlage?"
+msgstr "Wo ist der Quellendatenträger für diese Vorlage?"
msgid "Local ISO Image"
-msgstr ""
-"Lokales ISO-Image"
+msgstr "Lokales ISO-Image"
msgid "Local Image File"
-msgstr ""
-"Lokale Imagedatei"
+msgstr "Lokale Imagedatei"
msgid "Remote ISO Image"
-msgstr ""
-"Fernes ISO-Image"
+msgstr "Fernes ISO-Image"
msgid "Search ISOs"
-msgstr ""
-"ISOs suchen"
+msgstr "ISOs suchen"
msgid "The following ISOs are available:"
-msgstr ""
-"Die folgenden ISOs sind verfügbar:"
+msgstr "Die folgenden ISOs sind verfügbar:"
msgid "OS: "
-msgstr ""
-"BS: "
+msgstr "BS: "
msgid "Version: "
-msgstr ""
-"Version: "
+msgstr "Version: "
msgid "Size: "
-msgstr ""
-"Größe: "
+msgstr "Größe: "
msgid "Search more ISOs"
-msgstr ""
-"Weitere ISOs suchen"
+msgstr "Weitere ISOs suchen"
msgid "Create Templates from Selected ISO"
-msgstr ""
-"Vorlagen aus ausgewähltem ISO erstellen"
+msgstr "Vorlagen aus ausgewähltem ISO erstellen"
msgid "I want to use a specific ISO file"
-msgstr ""
-"Ich möchte eine bestimmte ISO-Datei verwenden"
+msgstr "Ich möchte eine bestimmte ISO-Datei verwenden"
msgid "Loading default remote ISOs ..."
-msgstr ""
-"Standardmäßige ferne ISOs werden geladen..."
+msgstr "Standardmäßige ferne ISOs werden geladen..."
msgid "Arch: "
-msgstr ""
-"Arch: "
+msgstr "Arch: "
msgid "I want to use a custom URL"
-msgstr ""
-"Ich möchte eine benutzerdefinierte URL verwenden"
+msgstr "Ich möchte eine benutzerdefinierte URL verwenden"
msgid "Edit Template"
-msgstr ""
-"Vorlage bearbeiten"
+msgstr "Vorlage bearbeiten"
msgid "Processor"
-msgstr ""
-"Prozessor"
+msgstr "Prozessor"
msgid "CDROM"
-msgstr ""
-"CD-ROM"
+msgstr "CD-ROM"
msgid "Image File"
-msgstr ""
-"Imagedatei"
+msgstr "Imagedatei"
msgid "Graphics"
-msgstr ""
-"Grafik"
+msgstr "Grafik"
msgid "Disk(GB)"
-msgstr ""
-"Festplatte (GB)"
+msgstr "Festplatte (GB)"
msgid "Disk Format"
-msgstr ""
-"Plattenformat"
+msgstr "Plattenformat"
msgid "CPU Number"
-msgstr ""
-"CPU-Anzahl"
+msgstr "CPU-Anzahl"
msgid "Manually set CPU topology"
-msgstr ""
-"CPU-Topologie manuell festlegen"
+msgstr "CPU-Topologie manuell festlegen"
msgid "Cores"
-msgstr ""
-"Kerne"
+msgstr "Kerne"
msgid "Threads"
-msgstr ""
-"Threads"
+msgstr "Threads"
msgid "CPU"
-msgstr ""
-"CPU"
+msgstr "CPU"
msgid "Disk I/O"
-msgstr ""
-"Platten-E/A"
+msgstr "Platten-E/A"
msgid "Network I/O"
-msgstr ""
-"Netz-E/A"
+msgstr "Netz-E/A"
msgid "Livetile"
-msgstr ""
-"Live Tile"
+msgstr "Live Tile"
msgid "No guests found."
-msgstr ""
-"Keine Gäste gefunden."
+msgstr "Keine Gäste gefunden."
msgid "Shut down"
-msgstr ""
-"Herunterfahren"
+msgstr "Herunterfahren"
msgid "Restart"
-msgstr ""
-"Erneut starten"
+msgstr "Erneut starten"
msgid "Basic Information"
-msgstr ""
-"Basisinformationen"
+msgstr "Basisinformationen"
msgid "OS Distro"
-msgstr ""
-"BS-Distro"
+msgstr "BS-Distro"
msgid "OS Code Name"
-msgstr ""
-"BS-Codename"
+msgstr "BS-Codename"
msgid "CPU(s)"
-msgstr ""
-"CPU(s)"
+msgstr "CPU(s)"
msgid "System Statistics"
-msgstr ""
-"Systemstatistik"
+msgstr "Systemstatistik"
msgid "Update Progress"
-msgstr ""
-"Aktualisierungsfortschritt"
+msgstr "Aktualisierungsfortschritt"
msgid "Network Name"
-msgstr ""
-"Netzname"
+msgstr "Netzname"
msgid "State"
-msgstr ""
-"Status"
+msgstr "Status"
msgid "Network Type"
-msgstr ""
-"Netztyp"
+msgstr "Netztyp"
msgid "Address Space"
-msgstr ""
-"Adressraum"
+msgstr "Adressraum"
msgid "Name should not contain '/' and '\"'."
-msgstr ""
-"Der Name darf weder '/' noch '\"' enthalten."
+msgstr "Der Name darf weder '/' noch '\"' enthalten."
msgid "Isolated: no external network connection"
-msgstr ""
-"Isoliert: keine externe Netzverbindung"
+msgstr "Isoliert: keine externe Netzverbindung"
msgid "NAT: outbound physical network connection only"
-msgstr ""
-"NAT: nur ausgehende physische Netzverbindung"
+msgstr "NAT: nur ausgehende physische Netzverbindung"
msgid "Bridged: Virtual machines are connected to physical network directly"
msgstr ""
"Überbrückt: Virtuelle Maschinen sind direkt mit physischem Netz verbunden"
msgid "(No interfaces found)"
-msgstr ""
-"(Keine Schnittstellen gefunden)"
+msgstr "(Keine Schnittstellen gefunden)"
msgid "Destination"
-msgstr ""
-"Zieladresse"
+msgstr "Zieladresse"
msgid "Enable VLAN"
-msgstr ""
-"VLAN aktivieren"
+msgstr "VLAN aktivieren"
msgid "VLAN ID"
-msgstr ""
-"VLAN-ID"
+msgstr "VLAN-ID"
msgid "Stop"
-msgstr ""
-"Stoppen"
+msgstr "Stoppen"
msgid "%Used"
-msgstr ""
-"% belegt"
+msgstr "% belegt"
msgid "Location"
-msgstr ""
-"Position"
+msgstr "Position"
msgid "Capacity"
-msgstr ""
-"Kapazität"
+msgstr "Kapazität"
msgid "Allocated"
-msgstr ""
-"Zugeordnet"
+msgstr "Zugeordnet"
msgid "active"
-msgstr ""
-"aktiv"
+msgstr "aktiv"
msgid "inactive"
-msgstr ""
-"inaktiv"
+msgstr "inaktiv"
msgid "Deactivate"
-msgstr ""
-"Inaktivieren"
+msgstr "Inaktivieren"
msgid "Activate"
-msgstr ""
-"Aktivieren"
+msgstr "Aktivieren"
msgid "Add Volume"
-msgstr ""
-"Datenträger hinzufügen"
+msgstr "Datenträger hinzufügen"
msgid "Extend"
-msgstr ""
-"Erweitern"
+msgstr "Erweitern"
msgid "Undefine"
-msgstr ""
-"Definition aufheben"
+msgstr "Definition aufheben"
msgid "Format"
-msgstr ""
-"Format"
+msgstr "Format"
msgid "Allocation"
-msgstr ""
-"Zuordnung"
+msgstr "Zuordnung"
msgid "No templates found."
-msgstr ""
-"Keine Vorlagen gefunden."
-
-# ENGL1SH_VERS10N 28617_40 DO NOT REMOVE OR CHANGE THIS LINE
-# T9N_SRC_ID 92
-# T9N_SH1P_STR1NG KV310AAP001 1
+msgstr "Keine Vorlagen gefunden."
diff --git a/po/en_US.po b/po/en_US.po
index 9331bde..26dbaac 100644
--- a/po/en_US.po
+++ b/po/en_US.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: kimchi 0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-24 09:39-0300\n"
+"POT-Creation-Date: 2015-08-21 09:52-0300\n"
"PO-Revision-Date: 2013-07-11 17:32-0400\n"
"Last-Translator: Crístian Viana <vianac(a)linux.vnet.ibm.com>\n"
"Language-Team: English\n"
@@ -85,6 +85,9 @@ msgstr ""
msgid "\"_passthrough_affected_by\" should be a device name string"
msgstr ""
+msgid "\"_available_only\" should be \"true\" or \"false\""
+msgstr ""
+
#, python-format
msgid "Error while getting block devices. Details: %(err)s"
msgstr ""
diff --git a/po/es_ES.po b/po/es_ES.po
index f97760d..173af93 100644
--- a/po/es_ES.po
+++ b/po/es_ES.po
@@ -6,81 +6,71 @@ msgid ""
msgstr ""
"Project-Id-Version: kimchi 0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-24 09:39-0300\n"
+"POT-Creation-Date: 2015-08-21 09:52-0300\n"
"PO-Revision-Date: 2013-07-11 17:32-0400\n"
"Last-Translator: Crístian Viana <vianac(a)linux.vnet.ibm.com>\n"
"Language-Team: English\n"
-"Language: en_US\n"
+"Language: es_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
-"Plural-Forms: nplurals=2; plural=n != 1;"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
#, python-format
msgid "Unknown parameter %(value)s"
-msgstr ""
-"Parámetro %(value)s desconocido"
+msgstr "Parámetro %(value)s desconocido"
#, python-format
msgid "Delete is not allowed for %(resource)s"
-msgstr ""
-"No se permite la supresión para %(resource)s"
+msgstr "No se permite la supresión para %(resource)s"
#, python-format
msgid "%(resource)s does not implement update method"
-msgstr ""
-"%(resource)s no implementa el método de actualización"
+msgstr "%(resource)s no implementa el método de actualización"
#, python-format
msgid "Create is not allowed for %(resource)s"
-msgstr ""
-"No se permite la creación para %(resource)s"
+msgstr "No se permite la creación para %(resource)s"
msgid "Unable to parse JSON request"
-msgstr ""
-"No se puede analizar la solicitud JSON"
+msgstr "No se puede analizar la solicitud JSON"
msgid "This API only supports JSON"
-msgstr ""
-"Esta API sólo da soporte a JSON"
+msgstr "Esta API sólo da soporte a JSON"
#, python-format
msgid "Parameters does not match requirement in schema: %(err)s"
-msgstr ""
-"Los parámetros no coinciden con el requisito en el esquema: %(err)s"
+msgstr "Los parámetros no coinciden con el requisito en el esquema: %(err)s"
msgid "You don't have permission to perform this operation."
-msgstr ""
-"No dispone de permiso para llevar a cabo esta operación."
+msgstr "No dispone de permiso para llevar a cabo esta operación."
msgid "Datastore is not initiated in the model object."
-msgstr ""
-"El almacén de datos no se ha iniciado en el objeto de modelo."
+msgstr "El almacén de datos no se ha iniciado en el objeto de modelo."
#, python-format
msgid "Unable to start task due error: %(err)s"
-msgstr ""
-"No se puede iniciar la tarea debido a un error: %(err)s"
+msgstr "No se puede iniciar la tarea debido a un error: %(err)s"
#, python-format
msgid "Timeout of %(seconds)s seconds expired while running task '%(task)s."
msgstr ""
-"El tiempo de espera de %(seconds)s segundos se ha agotado al ejecutar la tarea '%(task)s."
+"El tiempo de espera de %(seconds)s segundos se ha agotado al ejecutar la "
+"tarea '%(task)s."
#, python-format
msgid "Authentication failed for user '%(username)s'. [Error code: %(code)s]"
msgstr ""
-"Error en la autenticación para el usuario '%(username)s'. [Código de error: %(code)s]"
+"Error en la autenticación para el usuario '%(username)s'. [Código de error: "
+"%(code)s]"
msgid "You are not authorized to access Kimchi"
-msgstr ""
-"No tiene autorización para acceder a Kimchi"
+msgstr "No tiene autorización para acceder a Kimchi"
#, python-format
msgid "Specify %(item)s to login into Kimchi"
-msgstr ""
-"Especifique %(item)s para iniciar sesión en Kimchi"
+msgstr "Especifique %(item)s para iniciar sesión en Kimchi"
#, python-format
msgid "User %(user_id)s not found with given LDAP settings."
@@ -89,25 +79,24 @@ msgstr ""
#, python-format
msgid "Invalid LDAP configuration: %(item)s : %(value)s"
-msgstr ""
-"Configuración LDAP no válida: %(item)s : %(value)s"
+msgstr "Configuración LDAP no válida: %(item)s : %(value)s"
msgid "Unknown \"_cap\" specified"
-msgstr ""
-"Se ha especificado un valor \"_cap\" desconocido"
+msgstr "Se ha especificado un valor \"_cap\" desconocido"
msgid "\"_passthrough\" should be \"true\" or \"false\""
-msgstr ""
-"\"_passthrough\" debería ser \"true\" o \"false\""
+msgstr "\"_passthrough\" debería ser \"true\" o \"false\""
msgid "\"_passthrough_affected_by\" should be a device name string"
msgstr ""
"\"_passthrough_affected_by\" debería ser una cadena de nombre de dispositivo"
+msgid "\"_available_only\" should be \"true\" or \"false\""
+msgstr "\"_available_only\" debería ser \"true\" o \"false\""
+
#, python-format
msgid "Error while getting block devices. Details: %(err)s"
-msgstr ""
-"Error al obtener dispositivos de bloque. Detalles: %(err)s"
+msgstr "Error al obtener dispositivos de bloque. Detalles: %(err)s"
#, python-format
msgid "Error while getting block device information for %(device)s."
@@ -116,19 +105,20 @@ msgstr ""
#, python-format
msgid "Unable to find distro file: %(filename)s"
-msgstr ""
-"No se ha podido encontrar el archivo distro: %(filename)s"
+msgstr "No se ha podido encontrar el archivo distro: %(filename)s"
#, python-format
msgid ""
"Unable to parse distro file: %(filename)s. Make sure, it is a JSON file."
msgstr ""
-"No se ha podido analizar el archivo distro: %(filename)s. Asegúrese de que se trate de un archivo JSON. "
+"No se ha podido analizar el archivo distro: %(filename)s. Asegúrese de que "
+"se trate de un archivo JSON. "
#, python-format
msgid "Unable to login to iSCSI host target %(portal)s. Details: %(err)s"
msgstr ""
-"No se puede iniciar sesión en el %(portal)s de destino de host iSCSI. Detalles: %(err)s"
+"No se puede iniciar sesión en el %(portal)s de destino de host iSCSI. "
+"Detalles: %(err)s"
#, python-format
msgid "Unable to login to iSCSI host %(host)s target %(target)s"
@@ -137,13 +127,11 @@ msgstr ""
#, python-format
msgid "Unable to find ISO file %(filename)s"
-msgstr ""
-"No se puede encontrar el archivo ISO %(filename)s"
+msgstr "No se puede encontrar el archivo ISO %(filename)s"
#, python-format
msgid "The ISO file %(filename)s is not bootable"
-msgstr ""
-"El archivo ISO %(filename)s no se puede arrancar"
+msgstr "El archivo ISO %(filename)s no se puede arrancar"
#, python-format
msgid "The ISO file %(filename)s does not have a valid El Torito boot record"
@@ -152,13 +140,11 @@ msgstr ""
#, python-format
msgid "Invalid El Torito validation entry in ISO %(filename)s"
-msgstr ""
-"La entrada de validación de El Torito no es válida en ISO %(filename)s"
+msgstr "La entrada de validación de El Torito no es válida en ISO %(filename)s"
#, python-format
msgid "Invalid El Torito boot indicator in ISO %(filename)s"
-msgstr ""
-"El indicador de arranque de El Torito no es válido en ISO %(filename)s"
+msgstr "El indicador de arranque de El Torito no es válido en ISO %(filename)s"
#, python-format
msgid "Unexpected volume type for primary volume in ISO %(filename)s"
@@ -167,8 +153,7 @@ msgstr ""
#, python-format
msgid "Bad format while reading volume descriptor in ISO %(filename)s"
-msgstr ""
-"Formato erróneo al leer el descriptor de volúmenes en ISO %(filename)s"
+msgstr "Formato erróneo al leer el descriptor de volúmenes en ISO %(filename)s"
#, python-format
msgid ""
@@ -180,40 +165,39 @@ msgid ""
msgstr ""
"El hipervisor no tiene permiso para utilizar este ISO %(filename)s. "
"Considere moverlo a /var/lib/libvirt, o establezca el permiso de búsqueda en "
-"las listas de control de acceso de archivos para el usuario '%(user)s', si es posible, o añada el "
-"'%(user)s' al grupo de vías de acceso ISO o (no recomendado) 'chmod -R o+x "
-"'path_to_iso'. Detalles: %(err)s"
+"las listas de control de acceso de archivos para el usuario '%(user)s', si "
+"es posible, o añada el '%(user)s' al grupo de vías de acceso ISO o (no "
+"recomendado) 'chmod -R o+x 'path_to_iso'. Detalles: %(err)s"
msgid "An error occurred when probing image OS information."
msgstr ""
-"Se ha producido un error al analizar la información de sistema operativo de las imágenes. "
+"Se ha producido un error al analizar la información de sistema operativo de "
+"las imágenes. "
msgid "No OS information found in given image."
msgstr ""
-"No se ha encontrado información de sistema operativo en una imagen especificada. "
+"No se ha encontrado información de sistema operativo en una imagen "
+"especificada. "
#, python-format
msgid "Unable to read image file %(filename)s"
-msgstr ""
-"No se puede leer el archivo de imágenes %(filename)s"
+msgstr "No se puede leer el archivo de imágenes %(filename)s"
#, python-format
msgid ""
"Image file must be an existing file on system. %(filename)s is not a valid "
"input."
msgstr ""
-"El archivo de imágenes debe ser un archivo existente en el sistema. %(filename)s no es una entrada"
-"válida. "
+"El archivo de imágenes debe ser un archivo existente en el sistema. "
+"%(filename)s no es una entradaválida. "
#, python-format
msgid "Virtual machine %(name)s already exists"
-msgstr ""
-"Ya existe la máquina virtual %(name)s"
+msgstr "Ya existe la máquina virtual %(name)s"
#, python-format
msgid "Virtual machine %(name)s does not exist"
-msgstr ""
-"No existe la máquina virtual %(name)s"
+msgstr "No existe la máquina virtual %(name)s"
#, python-format
msgid ""
@@ -226,36 +210,31 @@ msgstr ""
#, python-format
msgid "Unable to retrieve screenshot for stopped virtual machine %(name)s"
msgstr ""
-"No se puede recuperar la captura de pantalla para la máquina virtual detenida %(name)s"
+"No se puede recuperar la captura de pantalla para la máquina virtual "
+"detenida %(name)s"
msgid "Remote ISO image is not supported by this server."
-msgstr ""
-"La imagen ISO remota no está soportada por este servidor."
+msgstr "La imagen ISO remota no está soportada por este servidor."
#, python-format
msgid "Screenshot is not supported on virtual machine %(name)s"
-msgstr ""
-"No se acepta la captura de pantalla en la máquina virtual %(name)s"
+msgstr "No se acepta la captura de pantalla en la máquina virtual %(name)s"
#, python-format
msgid "Unable to create virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"No se puede crear la máquina virtual %(name)s. Detalles: %(err)s"
+msgstr "No se puede crear la máquina virtual %(name)s. Detalles: %(err)s"
#, python-format
msgid "Unable to update virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"No se puede actualizar la máquina virtual %(name)s. Detalles: %(err)s"
+msgstr "No se puede actualizar la máquina virtual %(name)s. Detalles: %(err)s"
#, python-format
msgid "Unable to retrieve virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"No se puede recuperar la máquina virtual %(name)s. Detalles: %(err)s"
+msgstr "No se puede recuperar la máquina virtual %(name)s. Detalles: %(err)s"
#, python-format
msgid "Unable to connect to powered off virtual machine %(name)s."
-msgstr ""
-"No se puede conectar a la máquina virtual %(name)s apagada. "
+msgstr "No se puede conectar a la máquina virtual %(name)s apagada. "
msgid "Virtual machine name must be a string without slashes (/)"
msgstr ""
@@ -264,20 +243,22 @@ msgstr ""
#, python-format
msgid "Invalid template URI %(value)s specified for virtual machine"
msgstr ""
-"Se ha especificado un URI de plantilla %(value)s no válido para la máquina virtual"
+"Se ha especificado un URI de plantilla %(value)s no válido para la máquina "
+"virtual"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for virtual machine"
msgstr ""
-"Se ha especificado un URI de agrupación de almacenamiento %(value)s no válido para la máquina virtual"
+"Se ha especificado un URI de agrupación de almacenamiento %(value)s no "
+"válido para la máquina virtual"
msgid "Supported virtual machine graphics are Spice or VNC"
-msgstr ""
-"Los gráficos de la máquina virtual soportados son Spice o VNC"
+msgstr "Los gráficos de la máquina virtual soportados son Spice o VNC"
msgid "Graphics address to listen on must be IPv4 or IPv6"
msgstr ""
-"La dirección de gráficos en que hay que estar a la escucha debe ser IPv4 o IPv6"
+"La dirección de gráficos en que hay que estar a la escucha debe ser IPv4 o "
+"IPv6"
msgid "Specify a template to create a virtual machine from"
msgstr ""
@@ -285,73 +266,62 @@ msgstr ""
#, python-format
msgid "Unable to start virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"No se puede iniciar la máquina virtual %(name)s. Detalles: %(err)s"
+msgstr "No se puede iniciar la máquina virtual %(name)s. Detalles: %(err)s"
#, python-format
msgid "Unable to power off virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"No se puede apagar la máquina virtual %(name)s. Detalles: %(err)s"
+msgstr "No se puede apagar la máquina virtual %(name)s. Detalles: %(err)s"
#, python-format
msgid "Unable to delete virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"No se puede suprimir la máquina virtual %(name)s. Detalles: %(err)s"
+msgstr "No se puede suprimir la máquina virtual %(name)s. Detalles: %(err)s"
#, python-format
msgid "Unable to reset virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"No se puede restablecer la máquina virtual %(name)s. Detalles: %(err)s"
+msgstr "No se puede restablecer la máquina virtual %(name)s. Detalles: %(err)s"
msgid "User name list must be an array"
-msgstr ""
-"La lista de nombres de usuarios debe ser una matriz"
+msgstr "La lista de nombres de usuarios debe ser una matriz"
msgid "User name must be a string"
-msgstr ""
-"El nombre de usuario debe ser una serie"
+msgstr "El nombre de usuario debe ser una serie"
msgid "Group name list must be an array"
-msgstr ""
-"La lista de nombres de grupos debe ser una matriz"
+msgstr "La lista de nombres de grupos debe ser una matriz"
msgid "Group name must be a string"
-msgstr ""
-"El nombre de grupo debe ser una serie"
+msgstr "El nombre de grupo debe ser una serie"
#, python-format
msgid "User(s) '%(users)s' do not exist"
-msgstr ""
-"No existe el usuario (o usuarios) '%(users)s'"
+msgstr "No existe el usuario (o usuarios) '%(users)s'"
#, python-format
msgid "Group(s) '%(groups)s' do not exist"
-msgstr ""
-"No existe el grupo (o grupos) '%(groups)s'"
+msgstr "No existe el grupo (o grupos) '%(groups)s'"
#, python-format
msgid "Unable to shutdown virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"No se puede apagar la máquina virtual %(name)s. Detalles: %(err)s"
+msgstr "No se puede apagar la máquina virtual %(name)s. Detalles: %(err)s"
#, python-format
msgid ""
"Unable to get access metadata of virtual machine %(name)s. Details: %(err)s"
msgstr ""
-"No se puede obtener acceso a los metadatos de la máquina virtual %(name)s. Detalles: %(err)s"
+"No se puede obtener acceso a los metadatos de la máquina virtual %(name)s. "
+"Detalles: %(err)s"
msgid "The guest console password must be a string."
-msgstr ""
-"La contraseña de la consola del invitado debe ser una serie. "
+msgstr "La contraseña de la consola del invitado debe ser una serie. "
msgid "The life time for the guest console password must be a number."
msgstr ""
-"El tiempo de vida para la contraseña de la consola del invitado debe ser un número. "
+"El tiempo de vida para la contraseña de la consola del invitado debe ser un "
+"número. "
#, python-format
msgid "Virtual machine '%(name)s' must be stopped before cloning it."
-msgstr ""
-"La máquina virtual '%(name)s' se debe detener antes de clonarla."
+msgstr "La máquina virtual '%(name)s' se debe detener antes de clonarla."
#, python-format
msgid "Insufficient disk space to clone virtual machine '%(name)s'"
@@ -360,45 +330,43 @@ msgstr ""
#, python-format
msgid "Unable to clone VM '%(name)s'. Details: %(err)s"
-msgstr ""
-"No se puede clonar la máquina virtual '%(name)s'. Detalles: %(err)s"
+msgstr "No se puede clonar la máquina virtual '%(name)s'. Detalles: %(err)s"
#, python-format
msgid "Invalid operation for non-persistent virtual machine %(name)s"
-msgstr ""
-"Operación no válida para la máquina virtual no persistente %(name)s"
+msgstr "Operación no válida para la máquina virtual no persistente %(name)s"
#, python-format
msgid "Cannot suspend VM '%(name)s' because it is not running."
msgstr ""
-"No se puede suspender la máquina virtual '%(name)s' porque no se está ejecutando."
+"No se puede suspender la máquina virtual '%(name)s' porque no se está "
+"ejecutando."
#, python-format
msgid "Unable to suspend VM '%(name)s'. Details: %(err)s"
-msgstr ""
-"No se puede suspender la máquina virtual '%(name)s'. Detalles: %(err)s"
+msgstr "No se puede suspender la máquina virtual '%(name)s'. Detalles: %(err)s"
#, python-format
msgid "Cannot resume VM '%(name)s' because it is not paused."
msgstr ""
-"No se puede reanudar la máquina virtual '%(name)s' porque no se ha puesto en pausa. "
+"No se puede reanudar la máquina virtual '%(name)s' porque no se ha puesto en "
+"pausa. "
#, python-format
msgid "Unable to resume VM '%(name)s'. Details: %(err)s"
-msgstr ""
-"No se puede reanudar la máquina virtual '%(name)s'. Detalles: %(err)s"
+msgstr "No se puede reanudar la máquina virtual '%(name)s'. Detalles: %(err)s"
msgid "Memory assigned is higher then the maximum allowed in the host."
-msgstr ""
-"La memoria asignada es superior al máximo asignado en el host."
+msgstr "La memoria asignada es superior al máximo asignado en el host."
#, python-format
msgid ""
"VM '%(name)s' does not support live memory update. Update the memory with "
"the machine offline to enable this feature."
msgstr ""
-"La máquina virtual '%(name)s' no admite la actualización de memoria activa. Actualice la memoria con "
-"la máquina fuera de línea para habilitar esta característica. "
+"La máquina virtual '%(name)s' no admite la actualización de memoria activa. "
+"Actualice la memoria con la máquina fuera de línea para habilitar esta "
+"característica. "
msgid "Only increase memory is allowed in active VMs"
msgstr ""
@@ -408,35 +376,35 @@ msgid ""
"For live memory update, new memory value must be equal old memory value plus "
"multiples of 1024 Mib"
msgstr ""
-"Para la actualización de memoria en directo, el valor de memoria nuevo debe ser igual al valor anterior de la memoria más "
-"múltiplos de 1024 Mib"
+"Para la actualización de memoria en directo, el valor de memoria nuevo debe "
+"ser igual al valor anterior de la memoria más múltiplos de 1024 Mib"
msgid "There are not enough free slots of 1024 Mib in the guest."
-msgstr ""
-"No hay suficientes ranuras libres de 1024 Mib en el invitado. "
+msgstr "No hay suficientes ranuras libres de 1024 Mib en el invitado. "
msgid ""
"Host's libvirt version does not support memory devices. Libvirt must be >= "
"1.2.14"
msgstr ""
-"La versión libvirt del host no admite dispositivos de memoria. Libvirt debe ser >= "
-"1.2.14"
+"La versión libvirt del host no admite dispositivos de memoria. Libvirt debe "
+"ser >= 1.2.14"
#, python-format
msgid "Error attaching memory device. Details: %(error)s"
-msgstr ""
-"Error al conectar el dispositivo de memoria. Detalles: %(error)s"
+msgstr "Error al conectar el dispositivo de memoria. Detalles: %(error)s"
#, python-format
msgid ""
"VM %(vmid)s does not contain directly assigned host device %(dev_name)s."
msgstr ""
-"La máquina virtual %(vmid)s no contiene el dispositivo de host asignado directamente %(dev_name)s."
+"La máquina virtual %(vmid)s no contiene el dispositivo de host asignado "
+"directamente %(dev_name)s."
#, python-format
msgid "The host device %(dev_name)s is not allowed to directly assign to VM."
msgstr ""
-"El dispositivo de host %(dev_name)s no se permite para asignarlo directamente a la máquina virtual. "
+"El dispositivo de host %(dev_name)s no se permite para asignarlo "
+"directamente a la máquina virtual. "
msgid ""
"No IOMMU groups found. Host PCI pass through needs IOMMU group to function "
@@ -445,28 +413,26 @@ msgid ""
"to your Kernel parameter in /boot/grub2/grub.conf. For AMD CPU, add iommu=pt "
"iommu=1."
msgstr ""
-"No se han encontrado grupos IOMMU. El paso a través de PCI de host necesita el grupo IOMMU para funcionar "
-"correctamente. Habilite Intel VT-d o AMD IOMMU en el BIOS y, a continuación, verifique "
-"que el Kernel se ha compilado con soporte IOMMU. Para Intel CPU, añada intel_iommu=on "
-"al parámetro de Kernel en /boot/grub2/grub.conf. Para AMD CPU, añada iommu=pt "
-"iommu=1."
+"No se han encontrado grupos IOMMU. El paso a través de PCI de host necesita "
+"el grupo IOMMU para funcionar correctamente. Habilite Intel VT-d o AMD IOMMU "
+"en el BIOS y, a continuación, verifique que el Kernel se ha compilado con "
+"soporte IOMMU. Para Intel CPU, añada intel_iommu=on al parámetro de Kernel "
+"en /boot/grub2/grub.conf. Para AMD CPU, añada iommu=pt iommu=1."
msgid "\"name\" should be a device name string"
-msgstr ""
-"\"name\" debe ser una serie de nombre de dispositivo"
+msgstr "\"name\" debe ser una serie de nombre de dispositivo"
#, python-format
msgid ""
"The device %(name)s is probably in use by the host. Unable to attach it to "
"the guest."
msgstr ""
-"El dispositivo %(name)s lo está utilizando probablemente el host. No se puede conectar al "
-"invitado. "
+"El dispositivo %(name)s lo está utilizando probablemente el host. No se "
+"puede conectar al invitado. "
#, python-format
msgid "Interface %(iface)s does not exist in virtual machine %(name)s"
-msgstr ""
-"La interfaz %(iface)s no existe en la máquina virtual %(name)s"
+msgstr "La interfaz %(iface)s no existe en la máquina virtual %(name)s"
#, python-format
msgid ""
@@ -475,8 +441,7 @@ msgstr ""
"La red %(network)s especificada para la máquina virtual %(name)s no existe"
msgid "Supported virtual machine interfaces type is only network"
-msgstr ""
-"El tipo de interfaces de máquina virtual soportado es de red solamente"
+msgstr "El tipo de interfaces de máquina virtual soportado es de red solamente"
msgid "Network name for virtual machine interface must be a string"
msgstr ""
@@ -484,24 +449,23 @@ msgstr ""
msgid "Invalid network model card specified for virtual machine interface"
msgstr ""
-"Especificada tarjeta de modelo de red no válida para la interfaz de máquina virtual"
+"Especificada tarjeta de modelo de red no válida para la interfaz de máquina "
+"virtual"
msgid "Specify type and network to add a new virtual machine interface"
msgstr ""
-"Especifique el tipo y la red para añadir una interfaz de máquina virtual nueva"
+"Especifique el tipo y la red para añadir una interfaz de máquina virtual "
+"nueva"
msgid "MAC Address must respect this format FF:FF:FF:FF:FF:FF"
-msgstr ""
-"La dirección MAC debe respetar este formato FF:FF:FF:FF:FF:FF"
+msgstr "La dirección MAC debe respetar este formato FF:FF:FF:FF:FF:FF"
#, python-format
msgid "MAC Address %(mac)s already exists in virtual machine %(name)s"
-msgstr ""
-"La dirección MAC %(mac)s ya existe en la máquina virtual %(name)s"
+msgstr "La dirección MAC %(mac)s ya existe en la máquina virtual %(name)s"
msgid "Invalid MAC Address"
-msgstr ""
-"Dirección MAC no válida"
+msgstr "Dirección MAC no válida"
msgid "Cannot change MAC address of a running virtual machine"
msgstr ""
@@ -509,8 +473,7 @@ msgstr ""
#, python-format
msgid "Template %(name)s already exists"
-msgstr ""
-"La plantilla %(name)s ya existe"
+msgstr "La plantilla %(name)s ya existe"
#, python-format
msgid ""
@@ -522,67 +485,64 @@ msgstr ""
msgid ""
"Storage pool %(pool)s specified for template %(template)s does not exist"
msgstr ""
-"La agrupación de almacenamiento %(pool)s especificada para la plantilla %(template)s no existe"
+"La agrupación de almacenamiento %(pool)s especificada para la plantilla "
+"%(template)s no existe"
#, python-format
msgid "Storage pool %(pool)s specified for template %(template)s is not active"
msgstr ""
-"La agrupación de almacenamiento %(pool)s especificada para la plantilla %(template)s no está activa"
+"La agrupación de almacenamiento %(pool)s especificada para la plantilla "
+"%(template)s no está activa"
#, python-format
msgid "Invalid parameter '%(param)s' specified for CDROM."
-msgstr ""
-"Parámetro no válido '%(param)s' especificado para CDROM."
+msgstr "Parámetro no válido '%(param)s' especificado para CDROM."
#, python-format
msgid "Network %(network)s specified for template %(template)s is not active"
msgstr ""
-"La red %(network)s que se ha especificado para la plantilla %(template)s no está activa"
+"La red %(network)s que se ha especificado para la plantilla %(template)s no "
+"está activa"
msgid "Template name must be a string"
-msgstr ""
-"El nombre de plantilla debe ser una serie"
+msgstr "El nombre de plantilla debe ser una serie"
msgid "Template icon must be a path to the image"
-msgstr ""
-"El icono de plantilla debe ser una vía de acceso a la imagen"
+msgstr "El icono de plantilla debe ser una vía de acceso a la imagen"
msgid "Template distribution must be a string"
-msgstr ""
-"La distribución de plantilla debe ser una serie"
+msgstr "La distribución de plantilla debe ser una serie"
msgid "Template distribution version must be a string"
-msgstr ""
-"La versión de distribución de plantilla debe ser una serie"
+msgstr "La versión de distribución de plantilla debe ser una serie"
msgid "The number of CPUs must be an integer greater than 0"
-msgstr ""
-"El número de CPU debe ser un entero mayor que 0"
+msgstr "El número de CPU debe ser un entero mayor que 0"
msgid "Amount of memory (MB) must be an integer greater than 512"
-msgstr ""
-"La cantidad de memoria (MB) debe ser un entero mayor que 512"
+msgstr "La cantidad de memoria (MB) debe ser un entero mayor que 512"
msgid "Template CDROM must be a local or remote ISO file"
-msgstr ""
-"El CDROM de plantilla debe ser un archivo ISO local o remoto"
+msgstr "El CDROM de plantilla debe ser un archivo ISO local o remoto"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for template"
msgstr ""
-"Se ha especificado un URI de agrupación de almacenamiento %(value)s no válido para la plantilla"
+"Se ha especificado un URI de agrupación de almacenamiento %(value)s no "
+"válido para la plantilla"
msgid "Specify an ISO image as CDROM or a base image to create a template"
msgstr ""
-"Especifique una imagen ISO como CDROM o una imagen base para crear una plantilla"
+"Especifique una imagen ISO como CDROM o una imagen base para crear una "
+"plantilla"
msgid "All networks for the template must be specified in a list."
-msgstr ""
-"Todas las redes para la plantilla deben especificarse en una lista."
+msgstr "Todas las redes para la plantilla deben especificarse en una lista."
msgid "Specify a volume to a template when storage pool is iSCSI or SCSI"
msgstr ""
-"Especifique un volumen para una plantilla cuando la agrupación de almacenamiento sea iSCSI o SCSI"
+"Especifique un volumen para una plantilla cuando la agrupación de "
+"almacenamiento sea iSCSI o SCSI"
#, python-format
msgid "The volume %(volume)s is not in storage pool %(pool)s"
@@ -591,57 +551,52 @@ msgstr ""
#, python-format
msgid "Unable to create template due error: %(err)s"
-msgstr ""
-"No se ha podido crear la plantilla debido al error: %(err)s"
+msgstr "No se ha podido crear la plantilla debido al error: %(err)s"
#, python-format
msgid "Unable to delete template due error: %(err)s"
-msgstr ""
-"No se ha podido suprimir la plantilla debido a un error: %(err)s"
+msgstr "No se ha podido suprimir la plantilla debido a un error: %(err)s"
msgid "Disk size must be an integer greater than 1GB."
-msgstr ""
-"El tamaño del disco debe ser un entero mayor que 1 GB."
+msgstr "El tamaño del disco debe ser un entero mayor que 1 GB."
msgid "Template base image must be a valid local image file"
msgstr ""
-"La imagen base de la plantilla debe ser un archivo de imagen base local válido"
+"La imagen base de la plantilla debe ser un archivo de imagen base local "
+"válido"
#, python-format
msgid "Cannot identify base image %(path)s format"
-msgstr ""
-"No se puede identificar el formato de la imagen base %(path)s"
+msgstr "No se puede identificar el formato de la imagen base %(path)s"
msgid ""
"When specifying CPU topology, VCPUs must be a product of sockets, cores, and "
"threads."
msgstr ""
-"Cuando se especifique la topología de CPU, las VCPU deben ser un producto de sockets, núcleos y "
-"hebras. "
+"Cuando se especifique la topología de CPU, las VCPU deben ser un producto de "
+"sockets, núcleos y hebras. "
msgid ""
"When specifying CPU topology, each element must be an integer greater than "
"zero."
msgstr ""
-"Cuando se especifica la topología de CPU, cada elemento debe ser un entero mayor que "
-"cero."
+"Cuando se especifica la topología de CPU, cada elemento debe ser un entero "
+"mayor que cero."
msgid ""
"Invalid disk image format. Valid formats: bochs, cloop, cow, dmg, qcow, "
"qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"formato de imagen de disco no válido. Formatos válidos: bochs, cloop, cow, dmg, qcow, "
-"qcow2, qed, raw, vmdk, vpc."
+"formato de imagen de disco no válido. Formatos válidos: bochs, cloop, cow, "
+"dmg, qcow, qcow2, qed, raw, vmdk, vpc."
#, python-format
msgid "Storage pool %(name)s already exists"
-msgstr ""
-"Ya existe la agrupación de almacenamiento %(name)s"
+msgstr "Ya existe la agrupación de almacenamiento %(name)s"
#, python-format
msgid "Storage pool %(name)s does not exist"
-msgstr ""
-"No existe la agrupación de almacenamiento %(name)s"
+msgstr "No existe la agrupación de almacenamiento %(name)s"
#, python-format
msgid "Specify %(item)s in order to create the storage pool %(name)s"
@@ -650,8 +605,7 @@ msgstr ""
#, python-format
msgid "Unable to delete active storage pool %(name)s"
-msgstr ""
-"No se puede suprimir la agrupación de almacenamiento activo %(name)s"
+msgstr "No se puede suprimir la agrupación de almacenamiento activo %(name)s"
#, python-format
msgid "Unable to list storage pools. Details: %(err)s"
@@ -668,39 +622,43 @@ msgid ""
"Unable to get number of storage volumes in storage pool %(name)s. Details: "
"%(err)s"
msgstr ""
-"No se puede obtener el número de volúmenes de almacenamiento en la agrupación de almacenamiento %(name)s. Detalles: "
-"%(err)s"
+"No se puede obtener el número de volúmenes de almacenamiento en la "
+"agrupación de almacenamiento %(name)s. Detalles: %(err)s"
#, python-format
msgid "Unable to activate storage pool %(name)s. Details: %(err)s"
msgstr ""
-"No se puede activar la agrupación de almacenamiento %(name)s. Detalles: %(err)s"
+"No se puede activar la agrupación de almacenamiento %(name)s. Detalles: "
+"%(err)s"
#, python-format
msgid "Unable to deactivate storage pool %(name)s. Details: %(err)s"
msgstr ""
-"No se puede desactivar la agrupación de almacenamiento %(name)s. Detalles: %(err)s"
+"No se puede desactivar la agrupación de almacenamiento %(name)s. Detalles: "
+"%(err)s"
#, python-format
msgid "Unable to delete storage pool %(name)s. Details: %(err)s"
msgstr ""
-"No se puede suprimir la agrupación de almacenamiento %(name)s. Detalles: %(err)s"
+"No se puede suprimir la agrupación de almacenamiento %(name)s. Detalles: "
+"%(err)s"
#, python-format
msgid ""
"Unable to create NFS Pool as export path %(path)s may block during mount"
msgstr ""
-"No se puede crear la agrupación de NFS ya que la vía de acceso de exportación %(path)s podría bloquearse durante el montaje"
+"No se puede crear la agrupación de NFS ya que la vía de acceso de "
+"exportación %(path)s podría bloquearse durante el montaje"
#, python-format
msgid "Unable to create NFS Pool as export path %(path)s mount failed"
msgstr ""
-"No se puede crear la agrupación de NFS ya que ha fallado el montaje de la vía de acceso de exportación %(path)s"
+"No se puede crear la agrupación de NFS ya que ha fallado el montaje de la "
+"vía de acceso de exportación %(path)s"
#, python-format
msgid "Unsupported storage pool type: %(type)s"
-msgstr ""
-"Tipo de agrupación de almacenamiento no admitido: %(type)s"
+msgstr "Tipo de agrupación de almacenamiento no admitido: %(type)s"
#, python-format
msgid "Error while retrieving storage pool XML to %(pool)s"
@@ -709,18 +667,18 @@ msgstr ""
msgid "Storage pool name must be a string without slashes (/)"
msgstr ""
-"El nombre de la agrupación de almacenamiento debe ser una serie sin barras inclinadas (/)"
+"El nombre de la agrupación de almacenamiento debe ser una serie sin barras "
+"inclinadas (/)"
msgid ""
"Supported storage pool types are dir, netfs, logical, iscsi, isci and kimchi-"
"iso"
msgstr ""
-"Los tipos de agrupación de almacenamiento admitidos son dir, netfs, logical, iscsi, isci y kimchi-"
-"iso"
+"Los tipos de agrupación de almacenamiento admitidos son dir, netfs, logical, "
+"iscsi, isci y kimchi-iso"
msgid "Storage pool path must be a string"
-msgstr ""
-"La vía de acceso de la agrupación de almacenamiento debe ser una serie"
+msgstr "La vía de acceso de la agrupación de almacenamiento debe ser una serie"
msgid "Storage pool host must be a IP or hostname"
msgstr ""
@@ -728,27 +686,27 @@ msgstr ""
msgid "Storage pool device must be the absolute path to the block device"
msgstr ""
-"El dispositivo de la agrupación de almacenamiento debe ser la vía de acceso absoluta al dispositivo de bloque"
+"El dispositivo de la agrupación de almacenamiento debe ser la vía de acceso "
+"absoluta al dispositivo de bloque"
msgid "Storage pool devices parameter must be a list"
msgstr ""
-"El parámetro de los dispositivos de agrupación de almacenamiento debe ser una lista"
+"El parámetro de los dispositivos de agrupación de almacenamiento debe ser "
+"una lista"
msgid "Target IQN of an iSCSI pool must be a string"
-msgstr ""
-"El IQN destino de una agrupación de iSCSI debe ser una serie"
+msgstr "El IQN destino de una agrupación de iSCSI debe ser una serie"
msgid "Port of a remote storage server must be an integer between 1 and 65535"
msgstr ""
-"El puerto de un servidor de almacenamiento remoto debe ser un entero entre 1 y 65535"
+"El puerto de un servidor de almacenamiento remoto debe ser un entero entre 1 "
+"y 65535"
msgid "iSCSI target username must be a string"
-msgstr ""
-"El nombre de usuario de destino de iSCSI debe ser una serie"
+msgstr "El nombre de usuario de destino de iSCSI debe ser una serie"
msgid "iSCSI target password must be a string"
-msgstr ""
-"La contraseña de destino de iSCSI debe ser una serie"
+msgstr "La contraseña de destino de iSCSI debe ser una serie"
msgid "Specify name and type to create a storage pool"
msgstr ""
@@ -759,21 +717,20 @@ msgid ""
"%(disk)s is not a valid disk/partition. Could not add it to the pool "
"%(pool)s."
msgstr ""
-"%(disk)s no es un disco/partición válido. No se ha podido añadir a la agrupación "
-"%(pool)s."
+"%(disk)s no es un disco/partición válido. No se ha podido añadir a la "
+"agrupación %(pool)s."
#, python-format
msgid "Unable to extend logical pool %(pool)s. Details: %(err)s"
-msgstr ""
-"No se puede ampliar la agrupación lógica %(pool)s. Detalles: %(err)s"
+msgstr "No se puede ampliar la agrupación lógica %(pool)s. Detalles: %(err)s"
msgid "The parameter disks only can be updated for logical storage pool."
msgstr ""
-"Los discos de parámetro sólo pueden actualizarse para la agrupación de almacenamiento lógico."
+"Los discos de parámetro sólo pueden actualizarse para la agrupación de "
+"almacenamiento lógico."
msgid "The SCSI host adapter name must be a string."
-msgstr ""
-"El nombre del adaptador de host SCSI debe ser una serie."
+msgstr "El nombre del adaptador de host SCSI debe ser una serie."
msgid "The storage pool kimchi_isos is reserved for internal use"
msgstr ""
@@ -784,27 +741,29 @@ msgid ""
"Unable to activate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
msgstr ""
-"No se puede activar la agrupación de almacenamiento NFS %(name)s. El servidor NFS %(server)s "
-"está fuera de alcance."
+"No se puede activar la agrupación de almacenamiento NFS %(name)s. El "
+"servidor NFS %(server)s está fuera de alcance."
#, python-format
msgid ""
"Unable to deactivate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
msgstr ""
-"No se puede desactivar la agrupación de almacenamiento NFS %(name)s. El servidor NFS %(server)s "
-"está fuera de alcance."
+"No se puede desactivar la agrupación de almacenamiento NFS %(name)s. El "
+"servidor NFS %(server)s está fuera de alcance."
#, python-format
msgid ""
"Unable to deactivate pool %(name)s as it is associated with some templates"
msgstr ""
-"No se puede desactivar la agrupación %(name)s ya que está asociada con algunas plantillas"
+"No se puede desactivar la agrupación %(name)s ya que está asociada con "
+"algunas plantillas"
#, python-format
msgid "Unable to delete pool %(name)s as it is associated with some templates"
msgstr ""
-"No se puede suprimir la agrupación %(name)s ya que está asociada con algunas plantillas"
+"No se puede suprimir la agrupación %(name)s ya que está asociada con algunas "
+"plantillas"
#, python-format
msgid ""
@@ -817,25 +776,26 @@ msgstr ""
#, python-format
msgid "Unable to update database with deep scan information due error: %(err)s"
msgstr ""
-"No se puede actualizar la base de datos con la información de exploración profunda debido a un error: %(err)s"
+"No se puede actualizar la base de datos con la información de exploración "
+"profunda debido a un error: %(err)s"
#, python-format
msgid "Storage volume %(name)s already exists"
-msgstr ""
-"Ya existe el volumen de almacenamiento %(name)s"
+msgstr "Ya existe el volumen de almacenamiento %(name)s"
#, python-format
msgid "Storage volume %(name)s does not exist in storage pool %(pool)s"
msgstr ""
-"No existe el volumen de almacenamiento %(name)s en la agrupación de almacenamiento %(pool)s"
+"No existe el volumen de almacenamiento %(name)s en la agrupación de "
+"almacenamiento %(pool)s"
#, python-format
msgid ""
"Unable to create storage volume %(volume)s because storage pool %(pool)s is "
"not active"
msgstr ""
-"No se puede crear el volumen de almacenamiento %(volume)s porque la agrupación de almacenamiento %(pool)s "
-"no está activa"
+"No se puede crear el volumen de almacenamiento %(volume)s porque la "
+"agrupación de almacenamiento %(pool)s no está activa"
#, python-format
msgid "Specify %(item)s in order to create storage volume %(volume)s"
@@ -846,26 +806,29 @@ msgstr ""
msgid ""
"Unable to list storage volumes because storage pool %(pool)s is not active"
msgstr ""
-"No se pueden listar los volúmenes de almacenamiento porque la agrupación de almacenamiento %(pool)s no está activa"
+"No se pueden listar los volúmenes de almacenamiento porque la agrupación de "
+"almacenamiento %(pool)s no está activa"
#, python-format
msgid ""
"Unable to create storage volume %(name)s in storage pool %(pool)s. Details: "
"%(err)s"
msgstr ""
-"No se puede crear el volumen de almacenamiento %(name)s en la agrupación de almacenamiento %(pool)s. Detalles: "
-"%(err)s"
+"No se puede crear el volumen de almacenamiento %(name)s en la agrupación de "
+"almacenamiento %(pool)s. Detalles: %(err)s"
#, python-format
msgid ""
"Unable to list storage volumes in storage pool %(pool)s. Details: %(err)s"
msgstr ""
-"No se pueden listar los volúmenes de almacenamiento en la agrupación de almacenamiento %(pool)s. Detalles: %(err)s"
+"No se pueden listar los volúmenes de almacenamiento en la agrupación de "
+"almacenamiento %(pool)s. Detalles: %(err)s"
#, python-format
msgid "Unable to wipe storage volumes %(name)s. Details: %(err)s"
msgstr ""
-"No se pueden limpiar los volúmenes de almacenamiento %(name)s. Detalles: %(err)s"
+"No se pueden limpiar los volúmenes de almacenamiento %(name)s. Detalles: "
+"%(err)s"
#, python-format
msgid "Unable to delete storage volume %(name)s. Details: %(err)s"
@@ -875,72 +838,68 @@ msgstr ""
#, python-format
msgid "Unable to resize storage volume %(name)s. Details: %(err)s"
msgstr ""
-"No se puede redimensionar el volumen de almacenamiento %(name)s. Detalles: %(err)s"
+"No se puede redimensionar el volumen de almacenamiento %(name)s. Detalles: "
+"%(err)s"
#, python-format
msgid "Storage type %(type)s does not support volume create and delete"
msgstr ""
-"El tipo de almacenamiento %(type)s no admite la creación y supresión del volumen"
+"El tipo de almacenamiento %(type)s no admite la creación y supresión del "
+"volumen"
msgid "Storage volume name must be a string"
-msgstr ""
-"El nombre de volumen de almacenamiento debe ser una serie"
+msgstr "El nombre de volumen de almacenamiento debe ser una serie"
msgid "Storage volume allocation must be an integer number"
-msgstr ""
-"La asignación de volumen de almacenamiento debe ser un número entero"
+msgstr "La asignación de volumen de almacenamiento debe ser un número entero"
msgid ""
"Storage volume format not supported. Valid formats: bochs, cloop, cow, dmg, "
"qcow, qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"Formato de volumen de almacenamiento no admitido. Formatos válidos: bochs, cloop, cow, dmg, "
-"qcow, qcow2, qed, raw, vmdk, vpc."
+"Formato de volumen de almacenamiento no admitido. Formatos válidos: bochs, "
+"cloop, cow, dmg, qcow, qcow2, qed, raw, vmdk, vpc."
msgid "Storage volume requires a volume name"
-msgstr ""
-"El volumen de almacenamiento requiere un nombre de volumen"
+msgstr "El volumen de almacenamiento requiere un nombre de volumen"
#, python-format
msgid ""
"Unable to update database with storage volume information due error: %(err)s"
msgstr ""
-"No se puede actualizar la base de datos con la información del volumen de almacenamiento debido a un error: %(err)s"
+"No se puede actualizar la base de datos con la información del volumen de "
+"almacenamiento debido a un error: %(err)s"
#, python-format
msgid "Only one of parameter %(param)s can be specified"
-msgstr ""
-"Sólo se puede especificar uno de los parámetros %(param)s"
+msgstr "Sólo se puede especificar uno de los parámetros %(param)s"
#, python-format
msgid "Create volume from %(param)s is not supported"
-msgstr ""
-"No se admite la creación del volumen de %(param)s"
+msgstr "No se admite la creación del volumen de %(param)s"
msgid "Storage volume capacity must be an integer number."
-msgstr ""
-"La capacidad del volumen de almacenamiento debe ser un número entero. "
+msgstr "La capacidad del volumen de almacenamiento debe ser un número entero. "
msgid "Storage volume URL must be http://, https://, ftp:// or ftps://."
msgstr ""
-"El URL del volumen de almacenamiento debe ser http://, https://, ftp:// o ftps://."
+"El URL del volumen de almacenamiento debe ser http://, https://, ftp:// o "
+"ftps://."
#, python-format
msgid "Unable to access file %(url)s. Please, check it."
-msgstr ""
-"No se puede acceder al archivo %(url)s. Por favor, compruébelo. "
+msgstr "No se puede acceder al archivo %(url)s. Por favor, compruébelo. "
#, python-format
msgid ""
"Unable to clone storage volume '%(name)s' in pool '%(pool)s'. Details: "
"%(err)s"
msgstr ""
-"No se puede clonar el volumen de almacenamiento '%(name)s' en la agrupación '%(pool)s'. Detalles: "
-"%(err)s"
+"No se puede clonar el volumen de almacenamiento '%(name)s' en la agrupación "
+"'%(pool)s'. Detalles: %(err)s"
msgid "Specify chunk data and its size to upload a file."
-msgstr ""
-"Especifique datos de fragmento y su tamaño para cargar un archivo. "
+msgstr "Especifique datos de fragmento y su tamaño para cargar un archivo. "
msgid "In order to upload a storage volume, specify the 'upload' parameter."
msgstr ""
@@ -949,7 +908,8 @@ msgstr ""
msgid ""
"Unable to upload chunk data as it does not match with requested chunk size."
msgstr ""
-"No se pueden cargar datos de fragmento porque no coinciden con el tamaño de fragmento solicitado. "
+"No se pueden cargar datos de fragmento porque no coinciden con el tamaño de "
+"fragmento solicitado. "
#, python-format
msgid "The storage volume %(vol)s is not under an upload process."
@@ -958,27 +918,26 @@ msgstr ""
msgid "The upload chunk data will exceed the storage volume size."
msgstr ""
-"Los datos de fragmento de carga superarán el tamaño del volumen de almacenamiento. "
+"Los datos de fragmento de carga superarán el tamaño del volumen de "
+"almacenamiento. "
#, python-format
msgid "Unable to upload chunk data to storage volume. Details: %(err)s."
msgstr ""
-"No se pueden cargar datos de fragmento al volumen de almacenamiento. Detalles: %(err)s."
+"No se pueden cargar datos de fragmento al volumen de almacenamiento. "
+"Detalles: %(err)s."
#, python-format
msgid "Interface %(name)s does not exist"
-msgstr ""
-"No existe la interfaz %(name)s"
+msgstr "No existe la interfaz %(name)s"
#, python-format
msgid "Network %(name)s already exists"
-msgstr ""
-"Ya existe la red %(name)s"
+msgstr "Ya existe la red %(name)s"
#, python-format
msgid "Network %(name)s does not exist"
-msgstr ""
-"No existe la red %(name)s"
+msgstr "No existe la red %(name)s"
#, python-format
msgid "Subnet %(subnet)s specified for network %(network)s is not valid."
@@ -987,61 +946,54 @@ msgstr ""
#, python-format
msgid "Specify a network interface to create bridged network %(name)s"
-msgstr ""
-"Especifique una interfaz de red para crear una red puenteada %(name)s"
+msgstr "Especifique una interfaz de red para crear una red puenteada %(name)s"
#, python-format
msgid "Unable to delete active network %(name)s"
-msgstr ""
-"No se puede suprimir la red activa %(name)s"
+msgstr "No se puede suprimir la red activa %(name)s"
#, python-format
msgid "Interface %(iface)s specified for network %(network)s is already in use"
msgstr ""
-"La interfaz %(iface)s especificada para la red %(network)s ya se está utilizando"
+"La interfaz %(iface)s especificada para la red %(network)s ya se está "
+"utilizando"
msgid "Interface should be bare NIC, bonding or bridge device."
-msgstr ""
-"La interfaz debe ser dispositivo de puente, enlazado o NIC simple."
+msgstr "La interfaz debe ser dispositivo de puente, enlazado o NIC simple."
#, python-format
msgid "Unable to create network %(name)s. Details: %(err)s"
-msgstr ""
-"No se puede crear la red %(name)s. Detalles: %(err)s"
+msgstr "No se puede crear la red %(name)s. Detalles: %(err)s"
#, python-format
msgid "Unable to find a free IP address for network '%(name)s'"
-msgstr ""
-"No se puede encontrar una dirección IP libre para la red '%(name)s'"
+msgstr "No se puede encontrar una dirección IP libre para la red '%(name)s'"
#, python-format
msgid "The interface %(iface)s already exists."
-msgstr ""
-"La interfaz %(iface)s ya existe."
+msgstr "La interfaz %(iface)s ya existe."
msgid "Network name must be a string without slashes (/) or quotes (\")"
msgstr ""
-"El nombre de red debe ser una serie sin barras inclinadas (/) ni comillas (\")"
+"El nombre de red debe ser una serie sin barras inclinadas (/) ni comillas "
+"(\")"
msgid "Supported network types are isolated, NAT and bridge"
-msgstr ""
-"Los tipos de red soportados son aislada, NAT y puente"
+msgstr "Los tipos de red soportados son aislada, NAT y puente"
msgid "Network subnet must be a string with IP address and prefix or netmask"
msgstr ""
-"La subred de red debe ser una serie con dirección IP y prefijo o máscara de red"
+"La subred de red debe ser una serie con dirección IP y prefijo o máscara de "
+"red"
msgid "Network interface must be a string"
-msgstr ""
-"La interfaz de red debe ser una serie"
+msgstr "La interfaz de red debe ser una serie"
msgid "Network VLAN ID must be an integer between 1 and 4094"
-msgstr ""
-"El ID de VLAN de red debe ser un entero entre 1 y 4094"
+msgstr "El ID de VLAN de red debe ser un entero entre 1 y 4094"
msgid "Specify name and type to create a Network"
-msgstr ""
-"Especifique el nombre y el tipo para crear una red"
+msgstr "Especifique el nombre y el tipo para crear una red"
#, python-format
msgid ""
@@ -1062,34 +1014,31 @@ msgstr ""
#, python-format
msgid "Bridge device %(name)s can not be the trunk device of a VLAN."
msgstr ""
-"El dispositivo en puente %(name)s no puede ser el dispositivo de conexión troncal de una VLAN."
+"El dispositivo en puente %(name)s no puede ser el dispositivo de conexión "
+"troncal de una VLAN."
#, python-format
msgid "Failed to activate interface %(iface)s: %(err)s."
-msgstr ""
-"No se ha podido activar la interfaz %(iface)s: %(err)s."
+msgstr "No se ha podido activar la interfaz %(iface)s: %(err)s."
#, python-format
msgid ""
"Failed to activate interface %(iface)s. Please check the physical link "
"status."
msgstr ""
-"No se ha podido activar la interfaz %(iface)s. Compruebe el estado del enlace "
-"físico. "
+"No se ha podido activar la interfaz %(iface)s. Compruebe el estado del "
+"enlace físico. "
#, python-format
msgid "Failed to start network %(name)s. Details: %(err)s"
-msgstr ""
-"No se ha podido iniciar la red %(name)s. Detalles: %(err)s"
+msgstr "No se ha podido iniciar la red %(name)s. Detalles: %(err)s"
#, python-format
msgid "Debug report %(name)s does not exist"
-msgstr ""
-"El informe de depuración %(name)s no existe"
+msgstr "El informe de depuración %(name)s no existe"
msgid "Debug report tool not found in system"
-msgstr ""
-"Herramienta de informes de depuración no encontrada en el sistema"
+msgstr "Herramienta de informes de depuración no encontrada en el sistema"
#, python-format
msgid "Unable to create debug report %(name)s. Details: %(err)s."
@@ -1099,7 +1048,8 @@ msgstr ""
#, python-format
msgid "Can not find any debug report with the given name %(name)s"
msgstr ""
-"No se puede encontrar ningún informe de depuración con el nombre indicado %(name)s"
+"No se puede encontrar ningún informe de depuración con el nombre indicado "
+"%(name)s"
#, python-format
msgid "Unable to generate debug report %(name)s. Details: %(err)s"
@@ -1107,64 +1057,58 @@ msgstr ""
"No se puede generar el informe de depuración %(name)s. Detalles: %(err)s"
msgid "You should give a name for the debug report file."
-msgstr ""
-"Debería dar un nombre al archivo de informe de depuración."
+msgstr "Debería dar un nombre al archivo de informe de depuración."
msgid ""
"Debug report name must be a string. Only letters, digits, underscore ('_') "
"and hyphen ('-') are allowed."
msgstr ""
-"El nombre del informe de depuración debe ser una serie. Solamente se permiten letras, dígitos, carácter de subrayado ('_') "
-"y guión ('-'). "
+"El nombre del informe de depuración debe ser una serie. Solamente se "
+"permiten letras, dígitos, carácter de subrayado ('_') y guión ('-'). "
#, python-format
msgid ""
"The debug report with specified name \"%(name)s\" already exists. Please use "
"another one."
msgstr ""
-"El informe de depuración con el nombre especificado \"%(name)s\" ya existe. Utilice "
-"otro."
+"El informe de depuración con el nombre especificado \"%(name)s\" ya existe. "
+"Utilice otro."
#, python-format
msgid "Storage server %(server)s was not used by Kimchi"
-msgstr ""
-"El servidor de almacenamiento %(server)s no lo ha utilizado Kimchi"
+msgstr "El servidor de almacenamiento %(server)s no lo ha utilizado Kimchi"
#, python-format
msgid "Distro '%(name)s' does not exist"
-msgstr ""
-"No existe Distro '%(name)s'"
+msgstr "No existe Distro '%(name)s'"
#, python-format
msgid "Partition %(name)s does not exist in the host"
-msgstr ""
-"La partición %(name)s no existe en el host"
+msgstr "La partición %(name)s no existe en el host"
msgid "Unable to shutdown host machine as there are running virtual machines"
msgstr ""
-"No se puede concluir la máquina host ya que hay máquinas virtuales en ejecución"
+"No se puede concluir la máquina host ya que hay máquinas virtuales en "
+"ejecución"
msgid "Unable to reboot host machine as there are running virtual machines"
msgstr ""
-"No se puede rearrancar la máquina host ya que hay máquinas virtuales en ejecución"
+"No se puede rearrancar la máquina host ya que hay máquinas virtuales en "
+"ejecución"
#, python-format
msgid "Node device '%(name)s' not found"
-msgstr ""
-"No se encuentra el dispositivo de nodos '%(name)s'"
+msgstr "No se encuentra el dispositivo de nodos '%(name)s'"
msgid "Conflicting flag filters specified."
-msgstr ""
-"Se han especificado filtros de distintivos en conflicto."
+msgstr "Se han especificado filtros de distintivos en conflicto."
msgid "No packages marked for update"
-msgstr ""
-"No hay paquetes marcados para su actualización"
+msgstr "No hay paquetes marcados para su actualización"
#, python-format
msgid "Package %(name)s is not marked to be updated."
-msgstr ""
-"El paquete %(name)s no se ha marcado para actualizarlo."
+msgstr "El paquete %(name)s no se ha marcado para actualizarlo."
#, python-format
msgid "Error while getting packages marked to be updated. Details: %(err)s"
@@ -1172,77 +1116,67 @@ msgstr ""
"Error al obtener paquetes marcados para su actualización. Detalles: %(err)s"
msgid "There is no compatible package manager for this system."
-msgstr ""
-"No hay ningún gestor de paquetes compatible para este sistema."
+msgstr "No hay ningún gestor de paquetes compatible para este sistema."
#, python-format
msgid "Unable to find %(item)s in datastore"
-msgstr ""
-"No se puede encontrar %(item)s en el almacén de datos"
+msgstr "No se puede encontrar %(item)s en el almacén de datos"
#, python-format
msgid "Invalid URI %(uri)s"
-msgstr ""
-"URI %(uri)s no válido"
+msgstr "URI %(uri)s no válido"
#, python-format
msgid "Timeout while running command '%(cmd)s' after %(seconds)s seconds"
msgstr ""
-"Tiempo de espera excedido al ejecutar el mandato '%(cmd)s' después de %(seconds)s segundos"
+"Tiempo de espera excedido al ejecutar el mandato '%(cmd)s' después de "
+"%(seconds)s segundos"
msgid "Unable to choose a virtual machine name"
-msgstr ""
-"No se puede elegir un nombre de máquina virtual"
+msgstr "No se puede elegir un nombre de máquina virtual"
#, python-format
msgid "Invalid data value '%(value)s'"
-msgstr ""
-"Valor de datos '%(value)s' no válido"
+msgstr "Valor de datos '%(value)s' no válido"
#, python-format
msgid "Invalid data unit '%(unit)s'"
-msgstr ""
-"Unidad de datos '%(unit)s' no válida"
+msgstr "Unidad de datos '%(unit)s' no válida"
msgid "Invalid storage type. Types supported: 'cdrom', 'disk'"
-msgstr ""
-"Tipo de almacenamiento no válido. Tipos soportados: 'cdrom', 'disk'"
+msgstr "Tipo de almacenamiento no válido. Tipos soportados: 'cdrom', 'disk'"
#, python-format
msgid "The path '%(value)s' is not a valid local/remote path for the device"
msgstr ""
-"La vía de acceso '%(value)s' no es una vía de acceso local/remota válida para el dispositivo"
+"La vía de acceso '%(value)s' no es una vía de acceso local/remota válida "
+"para el dispositivo"
msgid "Only CDROM path can be update."
-msgstr ""
-"Solamente se puede actualizar la vía de acceso de CDROM. "
+msgstr "Solamente se puede actualizar la vía de acceso de CDROM. "
#, python-format
msgid ""
"The storage device %(dev_name)s does not exist in the virtual machine "
"%(vm_name)s"
msgstr ""
-"El dispositivo de almacenamiento %(dev_name)s no existe en la máquina virtual. "
-"%(vm_name)s"
+"El dispositivo de almacenamiento %(dev_name)s no existe en la máquina "
+"virtual. %(vm_name)s"
#, python-format
msgid "Error while creating new storage device: %(error)s"
-msgstr ""
-"Error al crear el dispositivo de almacenamiento nuevo: %(error)s"
+msgstr "Error al crear el dispositivo de almacenamiento nuevo: %(error)s"
#, python-format
msgid "Error while updating storage device: %(error)s"
-msgstr ""
-"Error al actualizar el dispositivo de almacenamiento: %(error)s"
+msgstr "Error al actualizar el dispositivo de almacenamiento: %(error)s"
#, python-format
msgid "Error while removing storage device: %(error)s"
-msgstr ""
-"Error al eliminar el dispositivo de almacenamiento: %(error)s"
+msgstr "Error al eliminar el dispositivo de almacenamiento: %(error)s"
msgid "Do not support IDE device hot plug"
-msgstr ""
-"No se admite la conexión en caliente del IDE"
+msgstr "No se admite la conexión en caliente del IDE"
msgid ""
"Specify type and path or type and pool/volume to add a new virtual machine "
@@ -1258,91 +1192,81 @@ msgstr ""
#, python-format
msgid "Controller type %(type)s limitation of %(limit)s devices reached"
msgstr ""
-"Se ha alcanzado el límite de tipo de controlador %(type)s de %(limit)s dispositivos"
+"Se ha alcanzado el límite de tipo de controlador %(type)s de %(limit)s "
+"dispositivos"
#, python-format
msgid "Cannot retrieve disk path information for given pool/volume: %(error)s"
msgstr ""
-"No se puede recuperar la información de vía de acceso de disco para la agrupación o el volumen que se ha especificado: %(error)s"
+"No se puede recuperar la información de vía de acceso de disco para la "
+"agrupación o el volumen que se ha especificado: %(error)s"
msgid "Volume already in use by other virtual machine."
-msgstr ""
-"El volumen ya lo está utilizando otra máquina virtual. "
+msgstr "El volumen ya lo está utilizando otra máquina virtual. "
msgid ""
"Only one of path or pool/volume can be specified to add a new virtual "
"machine disk"
msgstr ""
-"Solo se puede especificar uno de vía de acceso o agrupación/volumen "
-"para añadir un nuevo disco de máquina virtual"
+"Solo se puede especificar uno de vía de acceso o agrupación/volumen para "
+"añadir un nuevo disco de máquina virtual"
#, python-format
msgid ""
"Volume chosen with format %(format)s does not fit in the storage type "
"%(type)s"
msgstr ""
-"El volumen elegido con el formato %(format)s no se ajusta al tipo de almacenamiento"
-"%(type)s"
+"El volumen elegido con el formato %(format)s no se ajusta al tipo de "
+"almacenamiento%(type)s"
msgid "YUM Repository ID must be one word only string."
-msgstr ""
-"El ID de repositorio YUM debe ser una serie de una sola palabra."
+msgstr "El ID de repositorio YUM debe ser una serie de una sola palabra."
msgid "Repository URL must be an http://, ftp:// or file:// URL."
-msgstr ""
-"El URL de repositorio debe ser http://, ftp:// o archivo:// URL."
+msgstr "El URL de repositorio debe ser http://, ftp:// o archivo:// URL."
msgid ""
"Repository configuration is a dictionary with specific values according to "
"repository type."
msgstr ""
-"La configuración de repositorio es un diccionario con valores específicos según "
-"el tipo de repositorio."
+"La configuración de repositorio es un diccionario con valores específicos "
+"según el tipo de repositorio."
msgid "Distribution to DEB repository must be a string"
-msgstr ""
-"El repositorio de Distribución a DEB debe ser una serie"
+msgstr "El repositorio de Distribución a DEB debe ser una serie"
msgid "Components to DEB repository must be listed in a array"
-msgstr ""
-"El repositorio de Componentes a DEB debe estar listado en una matriz"
+msgstr "El repositorio de Componentes a DEB debe estar listado en una matriz"
msgid "Components to DEB repository must be a string"
-msgstr ""
-"El repositorio de Componentes a DEB debe ser una serie"
+msgstr "El repositorio de Componentes a DEB debe ser una serie"
msgid "Mirror list to repository must be a string"
-msgstr ""
-"La lista de duplicados en el repositorios debe ser una serie"
+msgstr "La lista de duplicados en el repositorios debe ser una serie"
msgid "YUM Repository name must be string."
-msgstr ""
-"El nombre del repositorio YUM debe ser una serie."
+msgstr "El nombre del repositorio YUM debe ser una serie."
msgid "GPG check must be a boolean value."
-msgstr ""
-"La comprobación de GPG debe ser un valor booleano."
+msgstr "La comprobación de GPG debe ser un valor booleano."
msgid "GPG key must be a URL pointing to the ASCII-armored file."
-msgstr ""
-"La clave GPG debe ser un URL que apunta al archivo blindado por ASCII."
+msgstr "La clave GPG debe ser un URL que apunta al archivo blindado por ASCII."
#, python-format
msgid "Could not update repository %(repo_id)s."
-msgstr ""
-"No se puede actualizar el repositorio %(repo_id)s."
+msgstr "No se puede actualizar el repositorio %(repo_id)s."
#, python-format
msgid "Repository %(repo_id)s does not exist."
-msgstr ""
-"El repositorio %(repo_id)s no existe. "
+msgstr "El repositorio %(repo_id)s no existe. "
msgid ""
"Specify repository base URL, mirror list or metalink in order to create or "
"update a YUM repository."
msgstr ""
-"Especifique el URL base de repositorio, la lista de duplicados o el metaenlace para crear o "
-"actualizar un repositorio YUM. "
+"Especifique el URL base de repositorio, la lista de duplicados o el "
+"metaenlace para crear o actualizar un repositorio YUM. "
msgid "Repository management tool was not recognized for your system."
msgstr ""
@@ -1350,23 +1274,21 @@ msgstr ""
#, python-format
msgid "Repository %(repo_id)s is already enabled."
-msgstr ""
-"El repositorio %(repo_id)s ya está habilitado."
+msgstr "El repositorio %(repo_id)s ya está habilitado."
#, python-format
msgid "Repository %(repo_id)s is already disabled."
-msgstr ""
-"El repositorio %(repo_id)s ya está inhabilitado. "
+msgstr "El repositorio %(repo_id)s ya está inhabilitado. "
#, python-format
msgid "Could not remove repository %(repo_id)s."
-msgstr ""
-"No se ha podido eliminar el repositorio %(repo_id)s."
+msgstr "No se ha podido eliminar el repositorio %(repo_id)s."
#, python-format
msgid "Could not write repository configuration file %(repo_file)s"
msgstr ""
-"No se ha podido escribir en el archivo de configuración del repositorio %(repo_file)s"
+"No se ha podido escribir en el archivo de configuración del repositorio "
+"%(repo_file)s"
msgid "Specify repository distribution in order to create a DEB repository."
msgstr ""
@@ -1374,41 +1296,33 @@ msgstr ""
#, python-format
msgid "Could not enable repository %(repo_id)s."
-msgstr ""
-"No se ha podido habilitar el repositorio %(repo_id)s."
+msgstr "No se ha podido habilitar el repositorio %(repo_id)s."
#, python-format
msgid "Could not disable repository %(repo_id)s."
-msgstr ""
-"No se ha podido inhabilitar el repositorio %(repo_id)s."
+msgstr "No se ha podido inhabilitar el repositorio %(repo_id)s."
msgid "YUM Repository ID already exists"
-msgstr ""
-"El ID de repositorio de YUM ya existe"
+msgstr "El ID de repositorio de YUM ya existe"
msgid "YUM Repository name must be a string"
-msgstr ""
-"El nombre del repositorio de YUM debe ser una serie"
+msgstr "El nombre del repositorio de YUM debe ser una serie"
#, python-format
msgid "Unable to list repositories. Details: '%(err)s'"
-msgstr ""
-"No se pueden listar los repositorios. Detalles: '%(err)s'"
+msgstr "No se pueden listar los repositorios. Detalles: '%(err)s'"
#, python-format
msgid "Unable to retrieve repository information. Details: '%(err)s'"
-msgstr ""
-"No se puede recuperar información de repositorios. Detalles: '%(err)s'"
+msgstr "No se puede recuperar información de repositorios. Detalles: '%(err)s'"
#, python-format
msgid "Unable to add repository. Details: '%(err)s'"
-msgstr ""
-"No se puede añadir el repositorio. Detalles: '%(err)s'"
+msgstr "No se puede añadir el repositorio. Detalles: '%(err)s'"
#, python-format
msgid "Unable to remove repository. Details: '%(err)s'"
-msgstr ""
-"No se puede eliminar el repositorio. Detalles: '%(err)s'"
+msgstr "No se puede eliminar el repositorio. Detalles: '%(err)s'"
#, python-format
msgid ""
@@ -1428,689 +1342,562 @@ msgstr ""
msgid ""
"Virtual machine '%(vm)s' must be stopped before creating a snapshot of it."
msgstr ""
-"Se ha de detener la máquina virtual '%(vm)s' antes de crear una instantánea de la misma. "
+"Se ha de detener la máquina virtual '%(vm)s' antes de crear una instantánea "
+"de la misma. "
#, python-format
msgid ""
"Unable to create snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"No se puede crear la instantánea '%(name)s' en la máquina virtual '%(vm)s'. Detalles: "
-"%(err)s"
+"No se puede crear la instantánea '%(name)s' en la máquina virtual '%(vm)s'. "
+"Detalles: %(err)s"
#, python-format
msgid "Snapshot '%(name)s' does not exist on virtual machine '%(vm)s'."
-msgstr ""
-"La instantánea '%(name)s' no existe en la máquina virtual '%(vm)s'."
+msgstr "La instantánea '%(name)s' no existe en la máquina virtual '%(vm)s'."
#, python-format
msgid ""
"Unable to retrieve snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"No se puede recuperar la instantánea '%(name)s' en la máquina virtual '%(vm)s'. Detalles: "
-"%(err)s"
+"No se puede recuperar la instantánea '%(name)s' en la máquina virtual "
+"'%(vm)s'. Detalles: %(err)s"
#, python-format
msgid "Unable to list snapshots on virtual machine '%(vm)s'. Details: %(err)s"
msgstr ""
-"No se pueden listar las instantáneas en la máquina virtual '%(vm)s'. Detalles: %(err)s"
+"No se pueden listar las instantáneas en la máquina virtual '%(vm)s'. "
+"Detalles: %(err)s"
#, python-format
msgid ""
"Unable to delete snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"No se puede suprimir la instantánea '%(name)s' en la máquina virtual '%(vm)s'. Detalles: "
-"%(err)s"
+"No se puede suprimir la instantánea '%(name)s' en la máquina virtual "
+"'%(vm)s'. Detalles: %(err)s"
#, python-format
msgid ""
"Unable to retrieve current snapshot of virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"No se puede recuperar la instantánea actual de la máquina virtual '%(vm)s'. Detalles: "
-"%(err)s"
+"No se puede recuperar la instantánea actual de la máquina virtual '%(vm)s'. "
+"Detalles: %(err)s"
#, python-format
msgid ""
"Unable to revert virtual machine '%(vm)s' to snapshot '%(name)s'. Details: "
"%(err)s"
msgstr ""
-"No se puede revertir la máquina virtual '%(vm)s' en la instantánea '%(name)s'. Detalles: "
-"%(err)s"
+"No se puede revertir la máquina virtual '%(vm)s' en la instantánea "
+"'%(name)s'. Detalles: %(err)s"
#, python-format
msgid ""
"Unable to create snapshot of virtual machine '%(vm)s' because it contains a "
"disk with format '%(format)s'; only 'qcow2' is supported."
msgstr ""
-"No se puede crear la instantánea de la máquina virtual '%(vm)s' porque contiene un "
-"disco con el formato '%(format)s'; sólo se admite 'qcow2'. "
+"No se puede crear la instantánea de la máquina virtual '%(vm)s' porque "
+"contiene un disco con el formato '%(format)s'; sólo se admite 'qcow2'. "
msgid "The number of vCPUs is too large for this system."
-msgstr ""
-"El número de vCPUs es demasiado grande para este sistema. "
+msgstr "El número de vCPUs es demasiado grande para este sistema. "
msgid "Invalid vCPU/topology combination."
-msgstr ""
-"Combinación de vCPU/topología no válida."
+msgstr "Combinación de vCPU/topología no válida."
msgid "This host (or current configuration) does not allow CPU topology."
-msgstr ""
-"Este host (o la configuración actual) no permite la topología de CPU. "
+msgstr "Este host (o la configuración actual) no permite la topología de CPU. "
msgid "ERROR CODE"
-msgstr ""
-"CÓDIGO DE ERROR"
+msgstr "CÓDIGO DE ERROR"
msgid "REASON"
-msgstr ""
-"RAZÓN"
+msgstr "RAZÓN"
msgid "STACK"
-msgstr ""
-"PILA"
+msgstr "PILA"
msgid "Go to Homepage"
-msgstr ""
-"Ir a la página inicial"
+msgstr "Ir a la página inicial"
msgid "Create a New Virtual Machine"
-msgstr ""
-"Crear una nueva máquina virtual"
+msgstr "Crear una nueva máquina virtual"
msgid "Virtual Machine Name"
-msgstr ""
-"Nombre de máquina virtual"
+msgstr "Nombre de máquina virtual"
msgid ""
"The name used to identify the virtual machine. If omitted, a name will be "
"chosen based on the template used."
msgstr ""
-"El nombre que se utiliza para identificar la máquina virtual. Si se omite, se "
-"elegirá un nombre basándose en la plantilla utilizada."
+"El nombre que se utiliza para identificar la máquina virtual. Si se omite, "
+"se elegirá un nombre basándose en la plantilla utilizada."
msgid "Template"
-msgstr ""
-"Plantilla"
+msgstr "Plantilla"
msgid "Please create a template first."
-msgstr ""
-"Cree una plantilla primero."
+msgstr "Cree una plantilla primero."
msgid "Create a Template"
-msgstr ""
-"Crear una plantilla"
+msgstr "Crear una plantilla"
msgid "Please choose a template."
-msgstr ""
-"Elija una plantilla."
+msgstr "Elija una plantilla."
msgid "OS"
-msgstr ""
-"SO"
+msgstr "SO"
msgid "OS Version"
-msgstr ""
-"Versión del SO"
+msgstr "Versión del SO"
msgid "CPUS"
-msgstr ""
-"CPUS"
+msgstr "CPUS"
msgid "Memory"
-msgstr ""
-"Memoria"
+msgstr "Memoria"
msgid "Create"
-msgstr ""
-"Crear"
+msgstr "Crear"
msgid "Creating..."
-msgstr ""
-"Creando..."
+msgstr "Creando..."
msgid "Edit Guest"
-msgstr ""
-"Editar invitado"
+msgstr "Editar invitado"
msgid "General"
-msgstr ""
-"General"
+msgstr "General"
msgid "Storage"
-msgstr ""
-"Almacenamiento"
+msgstr "Almacenamiento"
msgid "Interface"
-msgstr ""
-"Interfaz"
+msgstr "Interfaz"
msgid "Permission"
-msgstr ""
-"Permiso"
+msgstr "Permiso"
msgid "Host PCI Device"
-msgstr ""
-"Dispositivo PCI de host"
+msgstr "Dispositivo PCI de host"
msgid "Snapshot"
-msgstr ""
-"Instantánea"
+msgstr "Instantánea"
msgid "Name"
-msgstr ""
-"Nombre"
+msgstr "Nombre"
msgid "CPUs"
-msgstr ""
-"CPUs"
+msgstr "CPUs"
msgid "Memory (MB)"
-msgstr ""
-"Memoria (MB)"
+msgstr "Memoria (MB)"
msgid "Icon"
-msgstr ""
-"Icono"
+msgstr "Icono"
msgid "Device"
-msgstr ""
-"Dispositivo"
+msgstr "Dispositivo"
msgid "Path"
-msgstr ""
-"Vía de acceso"
+msgstr "Vía de acceso"
msgid "Network"
-msgstr ""
-"Red"
+msgstr "Red"
msgid "Type"
-msgstr ""
-"Tipo"
+msgstr "Tipo"
msgid "MAC Address"
-msgstr ""
-"Dirección MAC"
+msgstr "Dirección MAC"
msgid "Available system users and groups"
-msgstr ""
-"Usuarios y grupos del sistema disponibles"
+msgstr "Usuarios y grupos del sistema disponibles"
msgid "Selected system users and groups"
-msgstr ""
-"Usuarios y grupos del sistema seleccionados"
+msgstr "Usuarios y grupos del sistema seleccionados"
msgid "User"
-msgstr ""
-"Usuario"
+msgstr "Usuario"
msgid "All"
-msgstr ""
-"Todo"
+msgstr "Todo"
msgid "To Add"
-msgstr ""
-"A añadir"
+msgstr "A añadir"
msgid "Added"
-msgstr ""
-"Añadido"
+msgstr "Añadido"
msgid "filter"
-msgstr ""
-"filtrar"
+msgstr "filtrar"
msgid "Product"
-msgstr ""
-"Producto"
+msgstr "Producto"
msgid "Vendor"
-msgstr ""
-"Proveedor"
+msgstr "Proveedor"
msgid "Created"
-msgstr ""
-"Creado"
+msgstr "Creado"
msgid "Save"
-msgstr ""
-"Guardar"
+msgstr "Guardar"
msgid "Replace"
-msgstr ""
-"Sustituir"
+msgstr "Sustituir"
msgid "Detach"
-msgstr ""
-"Desconectar"
+msgstr "Desconectar"
msgid "Cancel"
-msgstr ""
-"Cancelar"
+msgstr "Cancelar"
msgid "revert"
-msgstr ""
-"revertir"
+msgstr "revertir"
msgid "Add a Storage Device to VM"
-msgstr ""
-"Añadir un dispositivo de almacenamiento a VM"
+msgstr "Añadir un dispositivo de almacenamiento a VM"
msgid "Device Type"
-msgstr ""
-"Tipo de dispositivo"
+msgstr "Tipo de dispositivo"
msgid "The device type. Currently, \"cdrom\" and \"disk\" are supported."
msgstr ""
"El tipo de dispositivo. Actualmente se da soporte a \"cdrom\" y \"disk\"."
msgid "Storage Pool"
-msgstr ""
-"Agrupación de almacenamiento"
+msgstr "Agrupación de almacenamiento"
msgid "Storage pool which volume located in"
-msgstr ""
-"Agrupación de almacenamiento con volumen ubicado en"
+msgstr "Agrupación de almacenamiento con volumen ubicado en"
msgid "Storage Volume"
-msgstr ""
-"Volumen de almacenamiento"
+msgstr "Volumen de almacenamiento"
msgid "Storage volume to be attached"
-msgstr ""
-"Volumen de almacenamiento que se va a adjuntar"
+msgstr "Volumen de almacenamiento que se va a adjuntar"
msgid "File Path"
-msgstr ""
-"Vía de acceso de archivo"
+msgstr "Vía de acceso de archivo"
msgid "The ISO file path in the server for CDROM."
-msgstr ""
-"La vía de acceso del archivo ISO en el servidor para el CDROM."
+msgstr "La vía de acceso del archivo ISO en el servidor para el CDROM."
msgid "Attach"
-msgstr ""
-"Conectar"
+msgstr "Conectar"
msgid "Start"
-msgstr ""
-"Iniciar"
+msgstr "Iniciar"
msgid "Reset"
-msgstr ""
-"Restablecer"
+msgstr "Restablecer"
msgid "Pause"
-msgstr ""
-"Poner en pausa"
+msgstr "Poner en pausa"
msgid "Resume"
-msgstr ""
-"Reanudar"
+msgstr "Reanudar"
msgid "Power Off"
-msgstr ""
-"Apagar"
+msgstr "Apagar"
msgid "Actions"
-msgstr ""
-"Acciones"
+msgstr "Acciones"
msgid "Connect"
-msgstr ""
-"Conectar"
+msgstr "Conectar"
msgid "Clone"
-msgstr ""
-"Clonar"
+msgstr "Clonar"
msgid "Edit"
-msgstr ""
-"Editar"
+msgstr "Editar"
msgid "Shut Down"
-msgstr ""
-"Concluir"
+msgstr "Concluir"
msgid "Delete"
-msgstr ""
-"Suprimir"
+msgstr "Suprimir"
msgid "The username or password you entered is incorrect. Please try again."
msgstr ""
-"El nombre de usuario o contraseña que ha especificado es incorrecto. Por favor, vuelva a intentarlo."
+"El nombre de usuario o contraseña que ha especificado es incorrecto. Por "
+"favor, vuelva a intentarlo."
msgid "This field is required."
-msgstr ""
-"Este campo es obligatorio."
+msgstr "Este campo es obligatorio."
msgid "Log in"
-msgstr ""
-"Iniciar sesión"
+msgstr "Iniciar sesión"
msgid "Logging in..."
-msgstr ""
-"Iniciando sesión..."
+msgstr "Iniciando sesión..."
msgid "Host"
-msgstr ""
-"Host"
+msgstr "Host"
msgid "Guests"
-msgstr ""
-"Invitados"
+msgstr "Invitados"
msgid "Templates"
-msgstr ""
-"Plantillas"
+msgstr "Plantillas"
msgid "Failed to get application configuration"
-msgstr ""
-"No se ha podido obtener la configuración de la aplicación"
+msgstr "No se ha podido obtener la configuración de la aplicación"
msgid "This is not a valid Linux path"
-msgstr ""
-"No es una vía de acceso de Linux válida"
+msgstr "No es una vía de acceso de Linux válida"
msgid "This is not a valid URL."
-msgstr ""
-"No es un URL válido."
+msgstr "No es un URL válido."
msgid "No such data available."
-msgstr ""
-"No hay datos de ese tipo disponibles."
+msgstr "No hay datos de ese tipo disponibles."
msgid ""
"Can not contact the host system. Verify the host system is up and that you "
"have network connectivity to it. HTTP request response %1. "
msgstr ""
-"No se puede contactar con el sistema host. Verifique que el sistema host está activo y que "
-"tiene conectividad de red con él. Respuesta de solicitud HTTP %1. "
+"No se puede contactar con el sistema host. Verifique que el sistema host "
+"está activo y que tiene conectividad de red con él. Respuesta de solicitud "
+"HTTP %1. "
msgid "Unable to read file."
-msgstr ""
-"No se puede leer el archivo. "
+msgstr "No se puede leer el archivo. "
msgid "Error while uploading file."
-msgstr ""
-"Error al actualizar el archivo. "
+msgstr "Error al actualizar el archivo. "
msgid "Delete Confirmation"
-msgstr ""
-"Confirmación de supresión"
+msgstr "Confirmación de supresión"
msgid "OK"
-msgstr ""
-"Aceptar"
+msgstr "Aceptar"
msgid "Confirm"
-msgstr ""
-"Confirmar"
+msgstr "Confirmar"
msgid "Warning"
-msgstr ""
-"Aviso"
+msgstr "Aviso"
msgid "Cloning..."
-msgstr ""
-"Clonación..."
+msgstr "Clonación..."
msgid "Loading..."
-msgstr ""
-"Cargando..."
+msgstr "Cargando..."
msgid "An error occurred while retrieving system information."
-msgstr ""
-"Se ha producido un error al recuperar la información del sistema."
+msgstr "Se ha producido un error al recuperar la información del sistema."
msgid "Retry"
-msgstr ""
-"Reintentar"
+msgstr "Reintentar"
msgid "Detailed message:"
-msgstr ""
-"Mensaje detallado:"
+msgstr "Mensaje detallado:"
msgid "No ISO found"
-msgstr ""
-"No se ha encontrado ningún ISO"
+msgstr "No se ha encontrado ningún ISO"
msgid "This is not a valid ISO file."
-msgstr ""
-"No es un archivo ISO válido."
+msgstr "No es un archivo ISO válido."
msgid "This may take a long time. Do you want to continue?"
-msgstr ""
-"Esta operación puede necesitar mucho tiempo. ¿Desea continuar?"
+msgstr "Esta operación puede necesitar mucho tiempo. ¿Desea continuar?"
msgid "This will permanently delete the template. Would you like to continue?"
-msgstr ""
-"Así se suprimirá la plantilla de forma permanente. ¿Desea continuar?"
+msgstr "Así se suprimirá la plantilla de forma permanente. ¿Desea continuar?"
msgid "Unable to shut down system as there are some virtual machines running!"
msgstr ""
-"No se puede concluir el sistema ya que hay algunas máquinas virtuales en ejecución."
+"No se puede concluir el sistema ya que hay algunas máquinas virtuales en "
+"ejecución."
msgid "Max:"
-msgstr ""
-"Máx.:"
+msgstr "Máx.:"
msgid "Utilization"
-msgstr ""
-"Utilización"
+msgstr "Utilización"
msgid "Available"
-msgstr ""
-"Disponible"
+msgstr "Disponible"
msgid "Read Rate"
-msgstr ""
-"Velocidad de lectura"
+msgstr "Velocidad de lectura"
msgid "Write Rate"
-msgstr ""
-"Velocidad de escritura"
+msgstr "Velocidad de escritura"
msgid "Received"
-msgstr ""
-"Recibido"
+msgstr "Recibido"
msgid "Sent"
-msgstr ""
-"Enviado"
+msgstr "Enviado"
msgid ""
"Shutting down or restarting host will cause unsaved work lost. Continue to "
"shut down/restarting?"
msgstr ""
-"Concluir o reiniciar el host hará que se pierda el trabajo no guardado. ¿Desea continuar "
-"para concluir/reiniciar?"
+"Concluir o reiniciar el host hará que se pierda el trabajo no guardado. "
+"¿Desea continuar para concluir/reiniciar?"
msgid ""
"Repository will be removed permanently and can't be recovered. Do you want "
"to continue?"
msgstr ""
-"El repositorio se eliminará de forma permanente y no se puede recuperar. ¿Desea "
-"continuar?"
+"El repositorio se eliminará de forma permanente y no se puede recuperar. "
+"¿Desea continuar?"
msgid "Repositories"
-msgstr ""
-"Repositorios"
+msgstr "Repositorios"
msgid "ID"
-msgstr ""
-"ID"
+msgstr "ID"
msgid "Base URL"
-msgstr ""
-"URL base"
+msgstr "URL base"
msgid "Is Mirror"
-msgstr ""
-"Es duplicado"
+msgstr "Es duplicado"
msgid "URL Args"
-msgstr ""
-"Args de URL"
+msgstr "Args de URL"
msgid "Enabled"
-msgstr ""
-"Habilitado"
+msgstr "Habilitado"
msgid "GPG Check"
-msgstr ""
-"Comprobación GPG"
+msgstr "Comprobación GPG"
msgid "GPG Key"
-msgstr ""
-"Clave GPG"
+msgstr "Clave GPG"
msgid "Add"
-msgstr ""
-"Añadir"
+msgstr "Añadir"
msgid "Remove"
-msgstr ""
-"Eliminar"
+msgstr "Eliminar"
msgid "Enable"
-msgstr ""
-"Habilitar"
+msgstr "Habilitar"
msgid "Disable"
-msgstr ""
-"Inhabilitar"
+msgstr "Inhabilitar"
msgid "Software Updates"
-msgstr ""
-"Actualizaciones de software"
+msgstr "Actualizaciones de software"
msgid "Package Name"
-msgstr ""
-"Nombre de paquete"
+msgstr "Nombre de paquete"
msgid "Version"
-msgstr ""
-"Versión"
+msgstr "Versión"
msgid "Architecture"
-msgstr ""
-"Arquitectura"
+msgstr "Arquitectura"
msgid "Repository"
-msgstr ""
-"Repositorio"
+msgstr "Repositorio"
msgid "Update All"
-msgstr ""
-"Actualizar todo"
+msgstr "Actualizar todo"
msgid "Updating..."
-msgstr ""
-"Actualizando..."
+msgstr "Actualizando..."
msgid "Failed to retrieve packages update information."
msgstr ""
"No se ha podido recuperar la información de actualización de paquetes. "
msgid "Failed to update package(s)."
-msgstr ""
-"No se han podido actualizar paquetes."
+msgstr "No se han podido actualizar paquetes."
msgid ""
"Debug report will be removed permanently and can't be recovered. Do you want "
"to continue?"
msgstr ""
-"El informe de depuración se eliminará permanentemente y no se puede recuperar. ¿Desea "
-"continuar?"
+"El informe de depuración se eliminará permanentemente y no se puede "
+"recuperar. ¿Desea continuar?"
msgid "Debug Reports"
-msgstr ""
-"Informes de depuración"
+msgstr "Informes de depuración"
msgid "Generated Time"
-msgstr ""
-"Tiempo generado"
+msgstr "Tiempo generado"
msgid "Generate"
-msgstr ""
-"Generar"
+msgstr "Generar"
msgid "Generating..."
-msgstr ""
-"Generando..."
+msgstr "Generando..."
msgid "Rename"
-msgstr ""
-"Redenominar"
+msgstr "Redenominar"
msgid "Download"
-msgstr ""
-"Descargar"
+msgstr "Descargar"
msgid ""
"Report name should contain only letters, digits, underscore ('_') and/or "
"hyphen ('-')."
msgstr ""
-"El nombre de informe debe contener solamente letras, dígitos, el carácter de subrayado ('_') y/o "
-"de guión ('-')."
+"El nombre de informe debe contener solamente letras, dígitos, el carácter de "
+"subrayado ('_') y/o de guión ('-')."
msgid "Pending..."
-msgstr ""
-"Pendiente..."
+msgstr "Pendiente..."
msgid "Report name is the same as the original one."
-msgstr ""
-"El nombre de informe es el mismo que el original. "
+msgstr "El nombre de informe es el mismo que el original. "
msgid ""
"This will delete the virtual machine and its virtual disks. This operation "
"cannot be undone. Would you like to continue?"
msgstr ""
-"Esto suprimirá la máquina virtual y sus discos virtuales. Esta operación "
-"no se puede deshacer. ¿Desea continuar?"
+"Esto suprimirá la máquina virtual y sus discos virtuales. Esta operación no "
+"se puede deshacer. ¿Desea continuar?"
msgid "Power off Confirmation"
-msgstr ""
-"Confirmación de apagado"
+msgstr "Confirmación de apagado"
msgid ""
"This action may produce undesirable results, for example unflushed disk "
"cache in the guest. Would you like to continue?"
msgstr ""
-"Esta acción puede producir resultados no deseables, por ejemplo almacenamiento de memoria caché en disco "
-"sin vaciar en el invitado. ¿Desea continuar?"
+"Esta acción puede producir resultados no deseables, por ejemplo "
+"almacenamiento de memoria caché en disco sin vaciar en el invitado. ¿Desea "
+"continuar?"
msgid "Reset Confirmation"
-msgstr ""
-"Confirmación de restablecimiento"
+msgstr "Confirmación de restablecimiento"
msgid ""
"There is a risk of data loss caused by reset without the guest OS shutdown. "
"Would you like to continue?"
msgstr ""
-"Existe un riesgo de pérdida de datos causado por el restablecimiento sin la conclusión del sistema operativo invitado. "
-"¿Desea continuar?"
+"Existe un riesgo de pérdida de datos causado por el restablecimiento sin la "
+"conclusión del sistema operativo invitado. ¿Desea continuar?"
msgid "Shut Down Confirmation"
-msgstr ""
-"Confirmación de conclusión"
+msgstr "Confirmación de conclusión"
msgid "Note the guest OS may ignore this request. Would you like to continue?"
msgstr ""
-"Tenga en cuenta que el sistema operativo del invitado puede ignorar esta solicitud. ¿Desea continuar?"
+"Tenga en cuenta que el sistema operativo del invitado puede ignorar esta "
+"solicitud. ¿Desea continuar?"
msgid "Virtual Machine delete Confirmation"
-msgstr ""
-"Confirmación de supresión de la máquina virtual "
+msgstr "Confirmación de supresión de la máquina virtual "
msgid ""
"This virtual machine is not persistent. Power Off will delete it. Continue?"
msgstr ""
-"Esta máquina virtual no es persistente. Con la acción Apagar se suprimirá. ¿Desea continuar?"
+"Esta máquina virtual no es persistente. Con la acción Apagar se suprimirá. "
+"¿Desea continuar?"
msgid ""
"When the target guest has SCSI or iSCSI volumes, they will be cloned on "
@@ -2118,112 +1905,98 @@ msgid ""
"have enough space to clone the volumes. Do you want to continue?"
msgstr ""
"Cuando el invitado de destino tiene volúmenes SCSI o iSCSI, se clonarán en "
-"la agrupación de almacenamiento predeterminada. Ocurrirá lo mismo cuando la agrupación de destino no "
-"tenga espacio suficiente para clonar los volúmenes. ¿Desea continuar?"
+"la agrupación de almacenamiento predeterminada. Ocurrirá lo mismo cuando la "
+"agrupación de destino no tenga espacio suficiente para clonar los volúmenes. "
+"¿Desea continuar?"
msgid ""
"This CDROM will be detached permanently and you can re-attach it. Continue "
"to detach it?"
msgstr ""
-"Este CDROM se desconectará de forma permanente pero puede volver a conectarlo. ¿Desea "
-"continuar para desconectarlo?"
+"Este CDROM se desconectará de forma permanente pero puede volver a "
+"conectarlo. ¿Desea continuar para desconectarlo?"
msgid "Attaching..."
-msgstr ""
-"Conectando..."
+msgstr "Conectando..."
msgid "Replacing..."
-msgstr ""
-"Sustituyendo..."
+msgstr "Sustituyendo..."
msgid "Successfully attached!"
-msgstr ""
-"¡Conectado correctamente!"
+msgstr "¡Conectado correctamente!"
msgid "Successfully replaced!"
-msgstr ""
-"¡Sustituido correctamente!"
+msgstr "¡Sustituido correctamente!"
msgid "Successfully detached!"
-msgstr ""
-"¡Desconectado correctamente!"
+msgstr "¡Desconectado correctamente!"
msgid ""
"This disk will be detached permanently and you can re-attach it. Continue to "
"detach it?"
msgstr ""
-"Este disco se desconectará de forma permanente y podrá volver a conectarlo. ¿Desea continuar"
-"desconectándolo?"
+"Este disco se desconectará de forma permanente y podrá volver a conectarlo. "
+"¿Desea continuardesconectándolo?"
msgid "interface:"
-msgstr ""
-"interfaz: "
+msgstr "interfaz: "
msgid "address:"
-msgstr ""
-"dirección:"
+msgstr "dirección:"
msgid "link_type:"
-msgstr ""
-"link_type:"
+msgstr "link_type:"
msgid "block:"
-msgstr ""
-"bloque:"
+msgstr "bloque:"
msgid "drive_type:"
-msgstr ""
-"drive_type:"
+msgstr "drive_type:"
msgid "model:"
-msgstr ""
-"modelo:"
+msgstr "modelo:"
msgid "Affected devices:"
-msgstr ""
-"Dispositivos afectados:"
+msgstr "Dispositivos afectados:"
msgid "The VLAN id must be between 1 and 4094."
-msgstr ""
-"El ID de VLAN debe estar entre 1 y 4094."
+msgstr "El ID de VLAN debe estar entre 1 y 4094."
msgid "unavailable"
-msgstr ""
-"no disponible"
+msgstr "no disponible"
msgid ""
"This action will interrupt network connectivity for any virtual machine that "
"depend on this network."
msgstr ""
-"Esta acción interrumpirá la conectividad de red para cualquier máquina virtual que "
-"dependa de esta red."
+"Esta acción interrumpirá la conectividad de red para cualquier máquina "
+"virtual que dependa de esta red."
msgid "Create a network"
-msgstr ""
-"Crear una red"
+msgstr "Crear una red"
msgid ""
"This network is not persistent. Instead of stop, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"Esta red no es persistente. En lugar de detenerla, esta acción "
-"la suprimirá de forma permanente. ¿Desea continuar?"
+"Esta red no es persistente. En lugar de detenerla, esta acción la suprimirá "
+"de forma permanente. ¿Desea continuar?"
msgid ""
"The bridged VLAN tag may not work well with NetworkManager enabled. You "
"should consider disabling it."
msgstr ""
-"Es posible que el código VLAN ponteado no funcione bien si NetworkManager está habilitado. Debería "
-"considerar la posibilidad de inhabilitarlo. "
+"Es posible que el código VLAN ponteado no funcione bien si NetworkManager "
+"está habilitado. Debería considerar la posibilidad de inhabilitarlo. "
msgid ""
"This will permanently delete the storage pool. Would you like to continue?"
msgstr ""
-"Así se suprimirá la agrupación de almacenamiento de forma permanente. ¿Desea continuar?"
+"Así se suprimirá la agrupación de almacenamiento de forma permanente. ¿Desea "
+"continuar?"
msgid "This storage pool is empty."
-msgstr ""
-"Esta agrupación de almacenamiento está vacía."
+msgstr "Esta agrupación de almacenamiento está vacía."
msgid ""
"It will format your disk and you will loose any data in there, are you sure "
@@ -2233,609 +2006,472 @@ msgstr ""
"de que desea continuar? "
msgid "SCSI Fibre Channel"
-msgstr ""
-"Canal de fibra de SCSI"
+msgstr "Canal de fibra de SCSI"
msgid "No SCSI adapters found."
-msgstr ""
-"No se han encontrado adaptadores SCSI."
+msgstr "No se han encontrado adaptadores SCSI."
msgid "Loading iSCSI targets..."
-msgstr ""
-"Se están cargando los destinos iSCSI..."
+msgstr "Se están cargando los destinos iSCSI..."
msgid "No iSCSI found. Please input one."
-msgstr ""
-"No se ha encontrado el iSCSI. Indique uno. "
+msgstr "No se ha encontrado el iSCSI. Indique uno. "
msgid "Failed to load iSCSI targets."
-msgstr ""
-"No se han podido cargar los destinos iSCSI. "
+msgstr "No se han podido cargar los destinos iSCSI. "
msgid "The storage pool name can not be blank."
-msgstr ""
-"El nombre de la agrupación de almacenamiento no puede estar en blanco."
+msgstr "El nombre de la agrupación de almacenamiento no puede estar en blanco."
msgid "The storage pool path can not be blank."
msgstr ""
"La vía de acceso de la agrupación de almacenamiento no puede estar en blanco."
msgid "NFS server mount path can not be blank."
-msgstr ""
-"La vía de acceso de montaje del servidor NFS no puede estar en blanco."
+msgstr "La vía de acceso de montaje del servidor NFS no puede estar en blanco."
msgid "Invalid NFS mount path."
-msgstr ""
-"Vía de acceso de montaje de NFS no válida."
+msgstr "Vía de acceso de montaje de NFS no válida."
msgid "No logical device selected."
-msgstr ""
-"No se ha seleccionado ningún dispositivo lógico."
+msgstr "No se ha seleccionado ningún dispositivo lógico."
msgid "The iSCSI target can not be blank."
-msgstr ""
-"El destino iSCSI no puede estar en blanco."
+msgstr "El destino iSCSI no puede estar en blanco."
msgid "Server name can not be blank."
-msgstr ""
-"El nombre de servidor no puede estar en blanco."
+msgstr "El nombre de servidor no puede estar en blanco."
msgid "This is not a valid Server Name or IP. Please, modify it."
-msgstr ""
-"No es un nombre de servidor válido o IP válida. Modifique el valor. "
+msgstr "No es un nombre de servidor válido o IP válida. Modifique el valor. "
msgid "Looking for available partitions ..."
-msgstr ""
-"Buscando particiones disponibles..."
+msgstr "Buscando particiones disponibles..."
msgid "No available partitions found."
-msgstr ""
-"No se han encontrado particiones disponibles."
+msgstr "No se han encontrado particiones disponibles."
msgid ""
"This storage pool is not persistent. Instead of deactivate, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"Esta agrupación de almacenamiento no es persistente. En lugar de desactivar, esta acción "
-"la suprimirá de forma permanente. ¿Desea continuar?"
+"Esta agrupación de almacenamiento no es persistente. En lugar de desactivar, "
+"esta acción la suprimirá de forma permanente. ¿Desea continuar?"
msgid "Unable to retrieve partitions information."
-msgstr ""
-"No se puede recuperar la información de particiones. "
+msgstr "No se puede recuperar la información de particiones. "
msgid "In progress..."
-msgstr ""
-"En curso..."
+msgstr "En curso..."
msgid "Failed!"
-msgstr ""
-"Error"
+msgstr "Error"
msgid "CDROM path needs to be a valid local/remote path and cannot be blank."
msgstr ""
-"La vía de acceso de CDROM ha de ser una vía de acceso local/remota válida y no puede dejarse en blanco. "
+"La vía de acceso de CDROM ha de ser una vía de acceso local/remota válida y "
+"no puede dejarse en blanco. "
msgid "Disk pool or volume cannot be blank."
-msgstr ""
-"El volumen o la agrupación de discos no puede estar en blanco."
+msgstr "El volumen o la agrupación de discos no puede estar en blanco."
msgid "Peers"
-msgstr ""
-"Homólogos"
+msgstr "Homólogos"
msgid "Searching"
-msgstr ""
-"Buscando"
+msgstr "Buscando"
msgid "No peers found."
-msgstr ""
-"No se han encontrado homólogos."
+msgstr "No se han encontrado homólogos."
msgid "Help"
-msgstr ""
-"Ayuda"
+msgstr "Ayuda"
msgid "About"
-msgstr ""
-"Acerca de"
+msgstr "Acerca de"
msgid "Log out"
-msgstr ""
-"Finalizar sesión"
+msgstr "Finalizar sesión"
msgid "Version:"
-msgstr ""
-"Versión:"
+msgstr "Versión:"
msgid "Session timeout, please re-login."
msgstr ""
"Se ha excedido el tiempo de espera de sesión; vuelva a iniciar la sesión."
msgid "User Name"
-msgstr ""
-"Nombre de usuario"
+msgstr "Nombre de usuario"
msgid "Password"
-msgstr ""
-"Contraseña"
+msgstr "Contraseña"
msgid "Generate a New Debug Report"
-msgstr ""
-"Generar un Informe de depuración nuevo"
+msgstr "Generar un Informe de depuración nuevo"
msgid "Report Name"
-msgstr ""
-"Nombre de informe"
+msgstr "Nombre de informe"
msgid ""
"The name used to identify the report. If omitted, a name will be chosen "
"based on current time. Name can contain: letters, digits, underscore (\"_\") "
"and hyphen (\"-\")."
msgstr ""
-"El nombre que se utiliza para identificar el informe. Si se omite, se elegirá un nombre "
-"en base a la hora actual. El nombre puede contener: letras, dígitos, carácter de subrayado (\"_\") "
-"y de guión (\"-\")."
+"El nombre que se utiliza para identificar el informe. Si se omite, se "
+"elegirá un nombre en base a la hora actual. El nombre puede contener: "
+"letras, dígitos, carácter de subrayado (\"_\") y de guión (\"-\")."
msgid "Rename a Debug Report"
-msgstr ""
-"Renombre un informe de depuración"
+msgstr "Renombre un informe de depuración"
msgid ""
"The name used to identify the report. Name can contain: letters, digits and "
"hyphen (\"-\")."
msgstr ""
-"El nombre utilizado para identificar el informe. El nombre puede contener: letras, dígitos y "
-"el carácter de guión (\"-\")."
+"El nombre utilizado para identificar el informe. El nombre puede contener: "
+"letras, dígitos y el carácter de guión (\"-\")."
msgid "Submit"
-msgstr ""
-"Enviar"
+msgstr "Enviar"
msgid "Add a Repository"
-msgstr ""
-"Añadir un repositorio"
+msgstr "Añadir un repositorio"
msgid "Identifier"
-msgstr ""
-"Identificador"
+msgstr "Identificador"
msgid "Single word, unique identifier for the repository."
-msgstr ""
-"Identificador exclusivo de una sola palabra para el repositorio."
+msgstr "Identificador exclusivo de una sola palabra para el repositorio."
msgid "Textual name for the repository."
-msgstr ""
-"Nombre textual para el repositorio."
+msgstr "Nombre textual para el repositorio."
msgid "URL"
-msgstr ""
-"URL"
+msgstr "URL"
msgid "Required Field"
-msgstr ""
-"Campo obligatorio"
+msgstr "Campo obligatorio"
msgid "URL to the repository. Supported protocols are http, ftp, and file."
-msgstr ""
-"URL al repositorio. Los protocolos soportados son http, ftp y archivo."
+msgstr "URL al repositorio. Los protocolos soportados son http, ftp y archivo."
msgid "Repository is a mirror"
-msgstr ""
-"El repositorio es un duplicado"
+msgstr "El repositorio es un duplicado"
msgid "Distribution"
-msgstr ""
-"Distribución"
+msgstr "Distribución"
msgid "Distribution of the DEB repository."
-msgstr ""
-"Distribución del repositorio DEB."
+msgstr "Distribución del repositorio DEB."
msgid "Components"
-msgstr ""
-"Componentes"
+msgstr "Componentes"
msgid "List of components in DEB repository."
-msgstr ""
-"Lista de componentes en el repositorio DEB."
+msgstr "Lista de componentes en el repositorio DEB."
msgid "Edit Repository"
-msgstr ""
-"Editar repositorio"
+msgstr "Editar repositorio"
msgid "Mirror List URL"
-msgstr ""
-"URL de lista duplicada"
+msgstr "URL de lista duplicada"
msgid "Yes"
-msgstr ""
-"Sí"
+msgstr "Sí"
msgid "No"
-msgstr ""
-"No"
+msgstr "No"
msgid "Add a Volume to Storage Pool"
-msgstr ""
-"Añadir un volumen a la agrupación de almacenamiento"
+msgstr "Añadir un volumen a la agrupación de almacenamiento"
msgid "Fetch from remote URL"
-msgstr ""
-"Captar de URL remoto"
+msgstr "Captar de URL remoto"
msgid "Enter the remote URL here."
-msgstr ""
-"Escriba el URL remoto aquí. "
+msgstr "Escriba el URL remoto aquí. "
msgid "Upload a file"
-msgstr ""
-"Cargar un archivo"
+msgstr "Cargar un archivo"
msgid "Choose the file you want to upload."
-msgstr ""
-"Elija el archivo que desee cargar. "
+msgstr "Elija el archivo que desee cargar. "
msgid "Define a New Storage Pool"
-msgstr ""
-"Definir una agrupación de almacenamiento nueva"
+msgstr "Definir una agrupación de almacenamiento nueva"
msgid "Storage Pool Name"
-msgstr ""
-"Nombre de agrupación de almacenamiento"
+msgstr "Nombre de agrupación de almacenamiento"
msgid ""
"The name used to identify the storage pools, and it should not be empty."
msgstr ""
-"El nombre que se utiliza para identificar las agrupaciones de almacenamiento y no debe estar vacío."
+"El nombre que se utiliza para identificar las agrupaciones de almacenamiento "
+"y no debe estar vacío."
msgid "Storage Pool Type"
-msgstr ""
-"Tipo de agrupación de almacenamiento"
+msgstr "Tipo de agrupación de almacenamiento"
msgid "Storage Path"
-msgstr ""
-"Vía de acceso de almacenamiento"
+msgstr "Vía de acceso de almacenamiento"
msgid ""
"The path of the Storage Pool. Each Storage Pool must have a unique path."
msgstr ""
-"La vía de acceso de la agrupación de almacenamiento. Cada agrupación de almacenamiento debe tener una vía de acceso exclusiva."
+"La vía de acceso de la agrupación de almacenamiento. Cada agrupación de "
+"almacenamiento debe tener una vía de acceso exclusiva."
msgid ""
"Kimchi will try to create the directory when it does not already exist in "
"your system."
-msgstr ""
-"Kimchi intentará crear el directorio cuando no existe en "
-"el sistema."
+msgstr "Kimchi intentará crear el directorio cuando no existe en el sistema."
msgid "NFS Server IP"
-msgstr ""
-"IP de Servidor NFS"
+msgstr "IP de Servidor NFS"
msgid "NFS server IP or hostname. It can be input or chosen from history."
msgstr ""
-"IP o nombre de host de servidor NFS. Puede especificarse o elegirse del historial."
+"IP o nombre de host de servidor NFS. Puede especificarse o elegirse del "
+"historial."
msgid "NFS Path"
-msgstr ""
-"Vía de acceso NFS"
+msgstr "Vía de acceso NFS"
msgid "The NFS exported path on NFS server."
-msgstr ""
-"La vía de acceso exportada de NFS en el servidor NFS."
+msgstr "La vía de acceso exportada de NFS en el servidor NFS."
msgid "Device path"
-msgstr ""
-"Vía de acceso del dispositivo"
+msgstr "Vía de acceso del dispositivo"
msgid "iSCSI Server"
-msgstr ""
-"Servidor iSCSI"
+msgstr "Servidor iSCSI"
msgid "iSCSI server IP or hostname. It should not be empty."
-msgstr ""
-"IP o nombre de host de servidor iSCSI. No debe estar vacío."
+msgstr "IP o nombre de host de servidor iSCSI. No debe estar vacío."
msgid "Server"
-msgstr ""
-"Servidor"
+msgstr "Servidor"
msgid "Port"
-msgstr ""
-"Puerto"
+msgstr "Puerto"
msgid "Target"
-msgstr ""
-"Destino"
+msgstr "Destino"
msgid "The iSCSI target on iSCSI server"
-msgstr ""
-"El destino iSCSI en el servidor iSCSI"
+msgstr "El destino iSCSI en el servidor iSCSI"
msgid "Add iSCSI Authentication"
-msgstr ""
-"Añadir Autenticación iSCSI"
+msgstr "Añadir Autenticación iSCSI"
msgid "iSCSI Authentication"
-msgstr ""
-"Autenticación iSCSI"
+msgstr "Autenticación iSCSI"
msgid "SCSI Adapter"
-msgstr ""
-"Adaptador SCSI"
+msgstr "Adaptador SCSI"
msgid "Please, wait..."
-msgstr ""
-"Por favor, espere..."
+msgstr "Por favor, espere..."
msgid "Add Template"
-msgstr ""
-"Añadir plantilla"
+msgstr "Añadir plantilla"
msgid "Where is the source media for this template? "
-msgstr ""
-"¿Dónde está el soporte de origen para esta plantilla?"
+msgstr "¿Dónde está el soporte de origen para esta plantilla?"
msgid "Local ISO Image"
-msgstr ""
-"Imagen ISO local"
+msgstr "Imagen ISO local"
msgid "Local Image File"
-msgstr ""
-"Archivo de imagen local"
+msgstr "Archivo de imagen local"
msgid "Remote ISO Image"
-msgstr ""
-"Imagen ISO remota"
+msgstr "Imagen ISO remota"
msgid "Search ISOs"
-msgstr ""
-"Buscar ISOs"
+msgstr "Buscar ISOs"
msgid "The following ISOs are available:"
-msgstr ""
-"Las siguientes ISO están disponibles:"
+msgstr "Las siguientes ISO están disponibles:"
msgid "OS: "
-msgstr ""
-"SO: "
+msgstr "SO: "
msgid "Version: "
-msgstr ""
-"Versión: "
+msgstr "Versión: "
msgid "Size: "
-msgstr ""
-"Tamaño: "
+msgstr "Tamaño: "
msgid "Search more ISOs"
-msgstr ""
-"Buscar más ISO"
+msgstr "Buscar más ISO"
msgid "Create Templates from Selected ISO"
-msgstr ""
-"Crear plantillas a partir de ISO seleccionadas"
+msgstr "Crear plantillas a partir de ISO seleccionadas"
msgid "I want to use a specific ISO file"
-msgstr ""
-"Deseo utilizar un archivo ISO específico"
+msgstr "Deseo utilizar un archivo ISO específico"
msgid "Loading default remote ISOs ..."
-msgstr ""
-"Cargando ISO remotas predeterminadas ..."
+msgstr "Cargando ISO remotas predeterminadas ..."
msgid "Arch: "
-msgstr ""
-"Arch: "
+msgstr "Arch: "
msgid "I want to use a custom URL"
-msgstr ""
-"Deseo utilizar un URL personalizado"
+msgstr "Deseo utilizar un URL personalizado"
msgid "Edit Template"
-msgstr ""
-"Editar plantilla"
+msgstr "Editar plantilla"
msgid "Processor"
-msgstr ""
-"Procesador"
+msgstr "Procesador"
msgid "CDROM"
-msgstr ""
-"CDROM"
+msgstr "CDROM"
msgid "Image File"
-msgstr ""
-"Archivo de imagen"
+msgstr "Archivo de imagen"
msgid "Graphics"
-msgstr ""
-"Gráficos"
+msgstr "Gráficos"
msgid "Disk(GB)"
-msgstr ""
-"Disco (GB)"
+msgstr "Disco (GB)"
msgid "Disk Format"
-msgstr ""
-"Formato de disco"
+msgstr "Formato de disco"
msgid "CPU Number"
-msgstr ""
-"Número de CPU"
+msgstr "Número de CPU"
msgid "Manually set CPU topology"
-msgstr ""
-"Establezca manualmente la topología de CPU"
+msgstr "Establezca manualmente la topología de CPU"
msgid "Cores"
-msgstr ""
-"Núcleos"
+msgstr "Núcleos"
msgid "Threads"
-msgstr ""
-"Hebras"
+msgstr "Hebras"
msgid "CPU"
-msgstr ""
-"CPU"
+msgstr "CPU"
msgid "Disk I/O"
-msgstr ""
-"E/S de disco"
+msgstr "E/S de disco"
msgid "Network I/O"
-msgstr ""
-"E/S de red"
+msgstr "E/S de red"
msgid "Livetile"
-msgstr ""
-"Livetile"
+msgstr "Livetile"
msgid "No guests found."
-msgstr ""
-"No se ha encontrado invitados."
+msgstr "No se ha encontrado invitados."
msgid "Shut down"
-msgstr ""
-"Concluir"
+msgstr "Concluir"
msgid "Restart"
-msgstr ""
-"Reiniciar"
+msgstr "Reiniciar"
msgid "Basic Information"
-msgstr ""
-"Información básica"
+msgstr "Información básica"
msgid "OS Distro"
-msgstr ""
-"Distro de SO"
+msgstr "Distro de SO"
msgid "OS Code Name"
-msgstr ""
-"Nombre de código de SO"
+msgstr "Nombre de código de SO"
msgid "CPU(s)"
-msgstr ""
-"CPU(s)"
+msgstr "CPU(s)"
msgid "System Statistics"
-msgstr ""
-"Estadísticas del sistema"
+msgstr "Estadísticas del sistema"
msgid "Update Progress"
-msgstr ""
-"Actualizar progreso"
+msgstr "Actualizar progreso"
msgid "Network Name"
-msgstr ""
-"Nombre de red"
+msgstr "Nombre de red"
msgid "State"
-msgstr ""
-"Estado"
+msgstr "Estado"
msgid "Network Type"
-msgstr ""
-"Tipo de red"
+msgstr "Tipo de red"
msgid "Address Space"
-msgstr ""
-"Espacio de direcciones"
+msgstr "Espacio de direcciones"
msgid "Name should not contain '/' and '\"'."
-msgstr ""
-"El nombre no debe contener '/' y '\"'."
+msgstr "El nombre no debe contener '/' y '\"'."
msgid "Isolated: no external network connection"
-msgstr ""
-"Aislado: no hay conexión de red externa"
+msgstr "Aislado: no hay conexión de red externa"
msgid "NAT: outbound physical network connection only"
-msgstr ""
-"NAT: conexión de red física saliente solamente"
+msgstr "NAT: conexión de red física saliente solamente"
msgid "Bridged: Virtual machines are connected to physical network directly"
msgstr ""
-"Puenteado: Las máquinas virtuales están conectadas a la red física directamente"
+"Puenteado: Las máquinas virtuales están conectadas a la red física "
+"directamente"
msgid "(No interfaces found)"
-msgstr ""
-"(No se han encontrado interfaces) "
+msgstr "(No se han encontrado interfaces) "
msgid "Destination"
-msgstr ""
-"Destino"
+msgstr "Destino"
msgid "Enable VLAN"
-msgstr ""
-"Habilitar VLAN"
+msgstr "Habilitar VLAN"
msgid "VLAN ID"
-msgstr ""
-"ID de VLAN"
+msgstr "ID de VLAN"
msgid "Stop"
-msgstr ""
-"Detener"
+msgstr "Detener"
msgid "%Used"
-msgstr ""
-"% Utilizado"
+msgstr "% Utilizado"
msgid "Location"
-msgstr ""
-"Ubicación"
+msgstr "Ubicación"
msgid "Capacity"
-msgstr ""
-"Capacidad"
+msgstr "Capacidad"
msgid "Allocated"
-msgstr ""
-"Asignado"
+msgstr "Asignado"
msgid "active"
-msgstr ""
-"activo"
+msgstr "activo"
msgid "inactive"
-msgstr ""
-"inactivo"
+msgstr "inactivo"
msgid "Deactivate"
-msgstr ""
-"Desactivar"
+msgstr "Desactivar"
msgid "Activate"
-msgstr ""
-"Activar"
+msgstr "Activar"
msgid "Add Volume"
-msgstr ""
-"Añadir volumen"
+msgstr "Añadir volumen"
msgid "Extend"
-msgstr ""
-"Ampliar"
+msgstr "Ampliar"
msgid "Undefine"
-msgstr ""
-"No definir"
+msgstr "No definir"
msgid "Format"
-msgstr ""
-"Formato"
+msgstr "Formato"
msgid "Allocation"
-msgstr ""
-"Asignación"
+msgstr "Asignación"
msgid "No templates found."
-msgstr ""
-"No se han encontrado plantillas."
-
-# ENGL1SH_VERS10N 28617_40 DO NOT REMOVE OR CHANGE THIS LINE
-# T9N_SRC_ID 92
-# T9N_SH1P_STR1NG KV310AAP001 1
+msgstr "No se han encontrado plantillas."
diff --git a/po/fr_FR.po b/po/fr_FR.po
index 7418acc..42bb004 100644
--- a/po/fr_FR.po
+++ b/po/fr_FR.po
@@ -6,81 +6,71 @@ msgid ""
msgstr ""
"Project-Id-Version: kimchi 0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-24 09:39-0300\n"
+"POT-Creation-Date: 2015-08-21 09:52-0300\n"
"PO-Revision-Date: 2013-07-11 17:32-0400\n"
"Last-Translator: Crístian Viana <vianac(a)linux.vnet.ibm.com>\n"
"Language-Team: English\n"
-"Language: en_US\n"
+"Language: fr_FR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
-"Plural-Forms: nplurals=2; plural=n>1;"
+"Plural-Forms: nplurals=2; plural=n>1;\n"
#, python-format
msgid "Unknown parameter %(value)s"
-msgstr ""
-"Paramètre inconnu %(value)s"
+msgstr "Paramètre inconnu %(value)s"
#, python-format
msgid "Delete is not allowed for %(resource)s"
-msgstr ""
-"La suppression n'est pas autorisée pour %(resource)s"
+msgstr "La suppression n'est pas autorisée pour %(resource)s"
#, python-format
msgid "%(resource)s does not implement update method"
-msgstr ""
-"%(resource)s n'implémente pas la méthode de mise à jour"
+msgstr "%(resource)s n'implémente pas la méthode de mise à jour"
#, python-format
msgid "Create is not allowed for %(resource)s"
-msgstr ""
-"La création n'est pas autorisée pour %(resource)s"
+msgstr "La création n'est pas autorisée pour %(resource)s"
msgid "Unable to parse JSON request"
-msgstr ""
-"Impossible d'analyser la demande JSON"
+msgstr "Impossible d'analyser la demande JSON"
msgid "This API only supports JSON"
-msgstr ""
-"L'API prend uniquement en charge la notation JSON"
+msgstr "L'API prend uniquement en charge la notation JSON"
#, python-format
msgid "Parameters does not match requirement in schema: %(err)s"
-msgstr ""
-"Les paramètres ne correspondent pas aux exigences du schéma : %(err)s"
+msgstr "Les paramètres ne correspondent pas aux exigences du schéma : %(err)s"
msgid "You don't have permission to perform this operation."
-msgstr ""
-"Vous ne disposez pas des droits pour effectuer cette opération."
+msgstr "Vous ne disposez pas des droits pour effectuer cette opération."
msgid "Datastore is not initiated in the model object."
-msgstr ""
-"Le magasin de données n'est pas initié dans l'objet de modèle."
+msgstr "Le magasin de données n'est pas initié dans l'objet de modèle."
#, python-format
msgid "Unable to start task due error: %(err)s"
-msgstr ""
-"Impossible de démarrer la tâche en raison de l'erreur : %(err)s"
+msgstr "Impossible de démarrer la tâche en raison de l'erreur : %(err)s"
#, python-format
msgid "Timeout of %(seconds)s seconds expired while running task '%(task)s."
msgstr ""
-"Expiration du délai d'attente de %(seconds)s lors de l'exécution de la tâche '%(task)s."
+"Expiration du délai d'attente de %(seconds)s lors de l'exécution de la tâche "
+"'%(task)s."
#, python-format
msgid "Authentication failed for user '%(username)s'. [Error code: %(code)s]"
msgstr ""
-"Echec d'authentification pour l'utilisateur '%(username)s'. [Code d'erreur : %(code)s]"
+"Echec d'authentification pour l'utilisateur '%(username)s'. [Code d'erreur : "
+"%(code)s]"
msgid "You are not authorized to access Kimchi"
-msgstr ""
-"Vous n'êtes pas autorisé à accéder à Kimchi"
+msgstr "Vous n'êtes pas autorisé à accéder à Kimchi"
#, python-format
msgid "Specify %(item)s to login into Kimchi"
-msgstr ""
-"Indiquez %(item)s pour la connexion à Kimchi"
+msgstr "Indiquez %(item)s pour la connexion à Kimchi"
#, python-format
msgid "User %(user_id)s not found with given LDAP settings."
@@ -89,25 +79,23 @@ msgstr ""
#, python-format
msgid "Invalid LDAP configuration: %(item)s : %(value)s"
-msgstr ""
-"Configuration LDAP non valide : %(item)s : %(value)s"
+msgstr "Configuration LDAP non valide : %(item)s : %(value)s"
msgid "Unknown \"_cap\" specified"
-msgstr ""
-"\"_cap\" inconnu spécifié"
+msgstr "\"_cap\" inconnu spécifié"
msgid "\"_passthrough\" should be \"true\" or \"false\""
-msgstr ""
-"\"_passthrough\" doit avoir la valeur \"true\" ou \"false\""
+msgstr "\"_passthrough\" doit avoir la valeur \"true\" ou \"false\""
msgid "\"_passthrough_affected_by\" should be a device name string"
-msgstr ""
-"\"_passthrough_affected_by\" doit être une chaîne de nom d'unité"
+msgstr "\"_passthrough_affected_by\" doit être une chaîne de nom d'unité"
+
+msgid "\"_available_only\" should be \"true\" or \"false\""
+msgstr "\"_available_only\" doit avoir la valeur \"true\" ou \"false\""
#, python-format
msgid "Error while getting block devices. Details: %(err)s"
-msgstr ""
-"Erreur lors de l'obtention d'unités par bloc. Détails : %(err)s"
+msgstr "Erreur lors de l'obtention d'unités par bloc. Détails : %(err)s"
#, python-format
msgid "Error while getting block device information for %(device)s."
@@ -116,39 +104,38 @@ msgstr ""
#, python-format
msgid "Unable to find distro file: %(filename)s"
-msgstr ""
-"Fichier de distribution introuvable : %(filename)s"
+msgstr "Fichier de distribution introuvable : %(filename)s"
#, python-format
msgid ""
"Unable to parse distro file: %(filename)s. Make sure, it is a JSON file."
msgstr ""
-"Impossible d'analyser le fichier de distribution : %(filename)s. Vérifiez qu'il s'agit d'un fichier JSON."
+"Impossible d'analyser le fichier de distribution : %(filename)s. Vérifiez "
+"qu'il s'agit d'un fichier JSON."
#, python-format
msgid "Unable to login to iSCSI host target %(portal)s. Details: %(err)s"
msgstr ""
-"Impossible de se connecter à la cible hôte iSCSI %(portal)s. Détails : %(err)s"
+"Impossible de se connecter à la cible hôte iSCSI %(portal)s. Détails : "
+"%(err)s"
#, python-format
msgid "Unable to login to iSCSI host %(host)s target %(target)s"
-msgstr ""
-"Impossible de se connecter à la cible hôte %(host)s iSCSI %(target)s"
+msgstr "Impossible de se connecter à la cible hôte %(host)s iSCSI %(target)s"
#, python-format
msgid "Unable to find ISO file %(filename)s"
-msgstr ""
-"Fichier ISO introuvable : %(filename)s"
+msgstr "Fichier ISO introuvable : %(filename)s"
#, python-format
msgid "The ISO file %(filename)s is not bootable"
-msgstr ""
-"Le fichier ISO %(filename)s n'est pas amorçable"
+msgstr "Le fichier ISO %(filename)s n'est pas amorçable"
#, python-format
msgid "The ISO file %(filename)s does not have a valid El Torito boot record"
msgstr ""
-"Le fichier ISO %(filename)s ne possède pas d'enregistrement d'amorçage El Torito valide"
+"Le fichier ISO %(filename)s ne possède pas d'enregistrement d'amorçage El "
+"Torito valide"
#, python-format
msgid "Invalid El Torito validation entry in ISO %(filename)s"
@@ -163,12 +150,14 @@ msgstr ""
#, python-format
msgid "Unexpected volume type for primary volume in ISO %(filename)s"
msgstr ""
-"Type de volume inattendu pour le volume principal dans le fichier ISO %(filename)s"
+"Type de volume inattendu pour le volume principal dans le fichier ISO "
+"%(filename)s"
#, python-format
msgid "Bad format while reading volume descriptor in ISO %(filename)s"
msgstr ""
-"Format incorrect lors de la lecture du descripteur de volume dans le fichier ISO %(filename)s"
+"Format incorrect lors de la lecture du descripteur de volume dans le fichier "
+"ISO %(filename)s"
#, python-format
msgid ""
@@ -178,69 +167,69 @@ msgid ""
"'%(user)s' to the ISO path group, or (not recommended) 'chmod -R o+x "
"'path_to_iso'.Details: %(err)s"
msgstr ""
-"L'hyperviseur ne dispose pas des droits pour utiliser ce fichier ISO %(filename)s. "
-"placez-le dans /var/lib/libvirt, ou définissez le droit de recherche sur "
-"les listes de contrôle d'accès d'accès aux fichiers pour l'utilisateur '%(user)s', si possible, ou ajoutez "
-"'%(user)s' au groupe de chemins d'accès ISO ou (non recommandé) 'chmod -R o+x "
-"'path_to_iso'.Détails : %(err)s"
+"L'hyperviseur ne dispose pas des droits pour utiliser ce fichier ISO "
+"%(filename)s. placez-le dans /var/lib/libvirt, ou définissez le droit de "
+"recherche sur les listes de contrôle d'accès d'accès aux fichiers pour "
+"l'utilisateur '%(user)s', si possible, ou ajoutez '%(user)s' au groupe de "
+"chemins d'accès ISO ou (non recommandé) 'chmod -R o+x 'path_to_iso'."
+"Détails : %(err)s"
msgid "An error occurred when probing image OS information."
msgstr ""
-"Une erreur s'est produite lors de l'application d'une sonde aux informations de système d'exploitation d'image."
+"Une erreur s'est produite lors de l'application d'une sonde aux informations "
+"de système d'exploitation d'image."
msgid "No OS information found in given image."
msgstr ""
-"Aucune information relative au système d'exploitation n'a été trouvée dans l'image donnée."
+"Aucune information relative au système d'exploitation n'a été trouvée dans "
+"l'image donnée."
#, python-format
msgid "Unable to read image file %(filename)s"
-msgstr ""
-"Impossible de lire le fichier image %(filename)s"
+msgstr "Impossible de lire le fichier image %(filename)s"
#, python-format
msgid ""
"Image file must be an existing file on system. %(filename)s is not a valid "
"input."
msgstr ""
-"Le fichier image doit être un fichier existant sur le système. %(filename)s n'est pas une entrée "
-"valide."
+"Le fichier image doit être un fichier existant sur le système. %(filename)s "
+"n'est pas une entrée valide."
#, python-format
msgid "Virtual machine %(name)s already exists"
-msgstr ""
-"La machine virtuelle %(name)s existe déjà"
+msgstr "La machine virtuelle %(name)s existe déjà"
#, python-format
msgid "Virtual machine %(name)s does not exist"
-msgstr ""
-"La machine virtuelle nommée %(name)s n'existe pas"
+msgstr "La machine virtuelle nommée %(name)s n'existe pas"
#, python-format
msgid ""
"Unable to rename virtual machine %(name)s. The name %(new_name)s is already "
"in use or the virtual machine is not powered off."
msgstr ""
-"Impossible de renommer la machine virtuelle %(name)s. Le nom %(new_name)s est déjà "
-"utilisé ou la machine virtuelle n'est pas hors tension."
+"Impossible de renommer la machine virtuelle %(name)s. Le nom %(new_name)s "
+"est déjà utilisé ou la machine virtuelle n'est pas hors tension."
#, python-format
msgid "Unable to retrieve screenshot for stopped virtual machine %(name)s"
msgstr ""
-"Impossible d'extraire la capture d'écran pour la machine virtuelle arrêtée %(name)s"
+"Impossible d'extraire la capture d'écran pour la machine virtuelle arrêtée "
+"%(name)s"
msgid "Remote ISO image is not supported by this server."
-msgstr ""
-"L'image ISO distante n'est pas prise en charge par ce serveur."
+msgstr "L'image ISO distante n'est pas prise en charge par ce serveur."
#, python-format
msgid "Screenshot is not supported on virtual machine %(name)s"
msgstr ""
-"La capture d'écran n'est pas prise en charge sur la machine virtuelle %(name)s"
+"La capture d'écran n'est pas prise en charge sur la machine virtuelle "
+"%(name)s"
#, python-format
msgid "Unable to create virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Impossible de créer la machine virtuelle %(name)s. Détails : %(err)s"
+msgstr "Impossible de créer la machine virtuelle %(name)s. Détails : %(err)s"
#, python-format
msgid "Unable to update virtual machine %(name)s. Details: %(err)s"
@@ -263,25 +252,22 @@ msgstr ""
#, python-format
msgid "Invalid template URI %(value)s specified for virtual machine"
-msgstr ""
-"URI du modèle non valide %(value)s indiqué pour la machine virtuelle"
+msgstr "URI du modèle non valide %(value)s indiqué pour la machine virtuelle"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for virtual machine"
msgstr ""
-"URI du pool de stockage non valide %(value)s indiqué pour la machine virtuelle"
+"URI du pool de stockage non valide %(value)s indiqué pour la machine "
+"virtuelle"
msgid "Supported virtual machine graphics are Spice or VNC"
-msgstr ""
-"Graphiques de machine virtuelle pris en charge : Spice ou VNC"
+msgstr "Graphiques de machine virtuelle pris en charge : Spice ou VNC"
msgid "Graphics address to listen on must be IPv4 or IPv6"
-msgstr ""
-"L'adresse des graphiques pour l'écoute doit être IPv4 ou IPv6"
+msgstr "L'adresse des graphiques pour l'écoute doit être IPv4 ou IPv6"
msgid "Specify a template to create a virtual machine from"
-msgstr ""
-"Indiquez un modèle pour créer une machine virtuelle depuis"
+msgstr "Indiquez un modèle pour créer une machine virtuelle depuis"
#, python-format
msgid "Unable to start virtual machine %(name)s. Details: %(err)s"
@@ -291,7 +277,8 @@ msgstr ""
#, python-format
msgid "Unable to power off virtual machine %(name)s. Details: %(err)s"
msgstr ""
-"Impossible de mettre hors tension la machine virtuelle %(name)s. Détails : %(err)s"
+"Impossible de mettre hors tension la machine virtuelle %(name)s. Détails : "
+"%(err)s"
#, python-format
msgid "Unable to delete virtual machine %(name)s. Details: %(err)s"
@@ -304,59 +291,51 @@ msgstr ""
"Impossible de réinitialiser la machine virtuelle %(name)s. Détails : %(err)s"
msgid "User name list must be an array"
-msgstr ""
-"La liste de noms d'utilisateur doit être un tableau"
+msgstr "La liste de noms d'utilisateur doit être un tableau"
msgid "User name must be a string"
-msgstr ""
-"Le nom d'utilisateur doit être une chaîne"
+msgstr "Le nom d'utilisateur doit être une chaîne"
msgid "Group name list must be an array"
-msgstr ""
-"La liste de noms de groupe doit être un tableau"
+msgstr "La liste de noms de groupe doit être un tableau"
msgid "Group name must be a string"
-msgstr ""
-"Le nom de groupe doit être une chaîne"
+msgstr "Le nom de groupe doit être une chaîne"
#, python-format
msgid "User(s) '%(users)s' do not exist"
-msgstr ""
-"Le ou les utilisateurs '%(users)s' n'existent pas"
+msgstr "Le ou les utilisateurs '%(users)s' n'existent pas"
#, python-format
msgid "Group(s) '%(groups)s' do not exist"
-msgstr ""
-"Le ou les groupes '%(groups)s' n'existent pas"
+msgstr "Le ou les groupes '%(groups)s' n'existent pas"
#, python-format
msgid "Unable to shutdown virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Impossible d'arrêter la machine virtuelle %(name)s. Détails : %(err)s"
+msgstr "Impossible d'arrêter la machine virtuelle %(name)s. Détails : %(err)s"
#, python-format
msgid ""
"Unable to get access metadata of virtual machine %(name)s. Details: %(err)s"
msgstr ""
-"Impossible d'obtenir l'accès aux métadonnées de la machine virtuelle %(name)s. Détails : %(err)s"
+"Impossible d'obtenir l'accès aux métadonnées de la machine virtuelle "
+"%(name)s. Détails : %(err)s"
msgid "The guest console password must be a string."
-msgstr ""
-"Le mot de passe de la console invité doit être une chaîne."
+msgstr "Le mot de passe de la console invité doit être une chaîne."
msgid "The life time for the guest console password must be a number."
msgstr ""
-"La durée de vie du mot de passe de console invité doit être une valeur numérique."
+"La durée de vie du mot de passe de console invité doit être une valeur "
+"numérique."
#, python-format
msgid "Virtual machine '%(name)s' must be stopped before cloning it."
-msgstr ""
-"La machine virtuelle '%(name)s' doit être arrêtée avant d'être clonée."
+msgstr "La machine virtuelle '%(name)s' doit être arrêtée avant d'être clonée."
#, python-format
msgid "Insufficient disk space to clone virtual machine '%(name)s'"
-msgstr ""
-"Espace disque insuffisant pour cloner la machine virtuelle '%(name)s'"
+msgstr "Espace disque insuffisant pour cloner la machine virtuelle '%(name)s'"
#, python-format
msgid "Unable to clone VM '%(name)s'. Details: %(err)s"
@@ -365,13 +344,13 @@ msgstr ""
#, python-format
msgid "Invalid operation for non-persistent virtual machine %(name)s"
-msgstr ""
-"Opération non valide pour la machine virtuelle non permanente %(name)s"
+msgstr "Opération non valide pour la machine virtuelle non permanente %(name)s"
#, python-format
msgid "Cannot suspend VM '%(name)s' because it is not running."
msgstr ""
-"Impossible d'interrompre la machine virtuelle '%(name)s' car elle n'est pas en cours d'exécution."
+"Impossible d'interrompre la machine virtuelle '%(name)s' car elle n'est pas "
+"en cours d'exécution."
#, python-format
msgid "Unable to suspend VM '%(name)s'. Details: %(err)s"
@@ -381,7 +360,8 @@ msgstr ""
#, python-format
msgid "Cannot resume VM '%(name)s' because it is not paused."
msgstr ""
-"Impossible de reprendre la machine virtuelle '%(name)s' car elle n'est pas interrompue."
+"Impossible de reprendre la machine virtuelle '%(name)s' car elle n'est pas "
+"interrompue."
#, python-format
msgid "Unable to resume VM '%(name)s'. Details: %(err)s"
@@ -390,26 +370,29 @@ msgstr ""
msgid "Memory assigned is higher then the maximum allowed in the host."
msgstr ""
-"La mémoire affectée est supérieure à la quantité maximale autorisée sur l'hôte."
+"La mémoire affectée est supérieure à la quantité maximale autorisée sur "
+"l'hôte."
#, python-format
msgid ""
"VM '%(name)s' does not support live memory update. Update the memory with "
"the machine offline to enable this feature."
msgstr ""
-"La machine virtuelle '%(name)s' ne prend pas en charge la mise à jour dynamique de la mémoire. Mettez à jour la mémoire avec "
-"la machine hors ligne pour activer cette fonction."
+"La machine virtuelle '%(name)s' ne prend pas en charge la mise à jour "
+"dynamique de la mémoire. Mettez à jour la mémoire avec la machine hors ligne "
+"pour activer cette fonction."
msgid "Only increase memory is allowed in active VMs"
msgstr ""
-"Seule une augmentation de la mémoire est autorisée sur les machines virtuelles actives"
+"Seule une augmentation de la mémoire est autorisée sur les machines "
+"virtuelles actives"
msgid ""
"For live memory update, new memory value must be equal old memory value plus "
"multiples of 1024 Mib"
msgstr ""
-"Pour la mise à jour dynamique de la mémoire, la nouvelle valeur de mémoire doit être égale à l'ancienne valeur plus "
-"des multiples de 1024 Mib"
+"Pour la mise à jour dynamique de la mémoire, la nouvelle valeur de mémoire "
+"doit être égale à l'ancienne valeur plus des multiples de 1024 Mib"
msgid "There are not enough free slots of 1024 Mib in the guest."
msgstr ""
@@ -419,24 +402,25 @@ msgid ""
"Host's libvirt version does not support memory devices. Libvirt must be >= "
"1.2.14"
msgstr ""
-"La version libvirt de l'hôte ne prend pas en charge les unités de mémoire. Libvirt doit être >= "
-"1.2.14"
+"La version libvirt de l'hôte ne prend pas en charge les unités de mémoire. "
+"Libvirt doit être >= 1.2.14"
#, python-format
msgid "Error attaching memory device. Details: %(error)s"
-msgstr ""
-"Erreur d'attachement de l'unité de mémoire. Détails : %(error)s"
+msgstr "Erreur d'attachement de l'unité de mémoire. Détails : %(error)s"
#, python-format
msgid ""
"VM %(vmid)s does not contain directly assigned host device %(dev_name)s."
msgstr ""
-"La machine virtuelle VM %(vmid)s ne contient pas l'unité hôte affectée directement %(dev_name)s."
+"La machine virtuelle VM %(vmid)s ne contient pas l'unité hôte affectée "
+"directement %(dev_name)s."
#, python-format
msgid "The host device %(dev_name)s is not allowed to directly assign to VM."
msgstr ""
-"L'unité hôte %(dev_name)s n'est pas autorisée à être affectée directement à la machine virtuelle."
+"L'unité hôte %(dev_name)s n'est pas autorisée à être affectée directement à "
+"la machine virtuelle."
msgid ""
"No IOMMU groups found. Host PCI pass through needs IOMMU group to function "
@@ -445,28 +429,26 @@ msgid ""
"to your Kernel parameter in /boot/grub2/grub.conf. For AMD CPU, add iommu=pt "
"iommu=1."
msgstr ""
-"Aucun groupe IOMMU trouvé. Le passe-système PCI hôte a besoin d'un groupe IOMMU pour "
-"fonctionner correctement. Activez Intel VT-d ou AMD IOMMU dans votre BIOS, puis vérifiez "
-"que le noyau est compilé avec le support IOMMU. Pour l'UC Intel, ajoutez intel_iommu=on "
-"pour le paramètre de noyau dans /boot/grub2/grub.conf. Pour l'UC AMD, ajoutez iommu=pt "
-"iommu=1."
+"Aucun groupe IOMMU trouvé. Le passe-système PCI hôte a besoin d'un groupe "
+"IOMMU pour fonctionner correctement. Activez Intel VT-d ou AMD IOMMU dans "
+"votre BIOS, puis vérifiez que le noyau est compilé avec le support IOMMU. "
+"Pour l'UC Intel, ajoutez intel_iommu=on pour le paramètre de noyau dans /"
+"boot/grub2/grub.conf. Pour l'UC AMD, ajoutez iommu=pt iommu=1."
msgid "\"name\" should be a device name string"
-msgstr ""
-"\"name\" doit être une chaîne de nom d'unité"
+msgstr "\"name\" doit être une chaîne de nom d'unité"
#, python-format
msgid ""
"The device %(name)s is probably in use by the host. Unable to attach it to "
"the guest."
msgstr ""
-"L'unité %(name)s est probablement utilisée par l'hôte. Impossible de l'attacher à "
-"l'hôte."
+"L'unité %(name)s est probablement utilisée par l'hôte. Impossible de "
+"l'attacher à l'hôte."
#, python-format
msgid "Interface %(iface)s does not exist in virtual machine %(name)s"
-msgstr ""
-"L'interface %(iface)s n'existe pas sur la machine virtuelle %(name)s"
+msgstr "L'interface %(iface)s n'existe pas sur la machine virtuelle %(name)s"
#, python-format
msgid ""
@@ -480,37 +462,37 @@ msgstr ""
msgid "Network name for virtual machine interface must be a string"
msgstr ""
-"Le nom de réseau pour l'interface de la machine virtuelle doit être une chaîne"
+"Le nom de réseau pour l'interface de la machine virtuelle doit être une "
+"chaîne"
msgid "Invalid network model card specified for virtual machine interface"
msgstr ""
-"La carte de modèle réseau spécifiée pour l'interface de la machine virtuelle n'est pas valide"
+"La carte de modèle réseau spécifiée pour l'interface de la machine virtuelle "
+"n'est pas valide"
msgid "Specify type and network to add a new virtual machine interface"
msgstr ""
-"Spécifiez un type et un réseau à ajouter à une nouvelle interface de machine virtuelle"
+"Spécifiez un type et un réseau à ajouter à une nouvelle interface de machine "
+"virtuelle"
msgid "MAC Address must respect this format FF:FF:FF:FF:FF:FF"
-msgstr ""
-"L'adresse MAC doit être conforme au format FF:FF:FF:FF:FF:FF"
+msgstr "L'adresse MAC doit être conforme au format FF:FF:FF:FF:FF:FF"
#, python-format
msgid "MAC Address %(mac)s already exists in virtual machine %(name)s"
-msgstr ""
-"L'adresse MAC %(mac)s existe déjà sur la machine virtuelle %(name)s"
+msgstr "L'adresse MAC %(mac)s existe déjà sur la machine virtuelle %(name)s"
msgid "Invalid MAC Address"
-msgstr ""
-"Adresse MAC non valide"
+msgstr "Adresse MAC non valide"
msgid "Cannot change MAC address of a running virtual machine"
msgstr ""
-"Impossible de modifier l'adresse MAC d'une machine virtuelle en cours d'exécution"
+"Impossible de modifier l'adresse MAC d'une machine virtuelle en cours "
+"d'exécution"
#, python-format
msgid "Template %(name)s already exists"
-msgstr ""
-"Le modèle %(name)s existe déjà"
+msgstr "Le modèle %(name)s existe déjà"
#, python-format
msgid ""
@@ -522,17 +504,18 @@ msgstr ""
msgid ""
"Storage pool %(pool)s specified for template %(template)s does not exist"
msgstr ""
-"Le pool de stockage '%(pool)s' indiqué pour le modèle %(template)s n'existe pas"
+"Le pool de stockage '%(pool)s' indiqué pour le modèle %(template)s n'existe "
+"pas"
#, python-format
msgid "Storage pool %(pool)s specified for template %(template)s is not active"
msgstr ""
-"Le pool de stockage '%(pool)s' indiqué pour le modèle %(template)s n'est pas actif"
+"Le pool de stockage '%(pool)s' indiqué pour le modèle %(template)s n'est pas "
+"actif"
#, python-format
msgid "Invalid parameter '%(param)s' specified for CDROM."
-msgstr ""
-"Paramètre non valide '%(param)s' spécifié pour le CD-ROM."
+msgstr "Paramètre non valide '%(param)s' spécifié pour le CD-ROM."
#, python-format
msgid "Network %(network)s specified for template %(template)s is not active"
@@ -540,59 +523,49 @@ msgstr ""
"Le réseau '%(network)s' indiqué pour le modèle %(template)s n'est pas actif"
msgid "Template name must be a string"
-msgstr ""
-"Le nom du modèle doit être une chaîne"
+msgstr "Le nom du modèle doit être une chaîne"
msgid "Template icon must be a path to the image"
-msgstr ""
-"L'icône de modèle doit être un chemin d'accès à l'image"
+msgstr "L'icône de modèle doit être un chemin d'accès à l'image"
msgid "Template distribution must be a string"
-msgstr ""
-"La distribution du modèle doit être une chaîne"
+msgstr "La distribution du modèle doit être une chaîne"
msgid "Template distribution version must be a string"
-msgstr ""
-"La version de distribution du modèle doit être une chaîne"
+msgstr "La version de distribution du modèle doit être une chaîne"
msgid "The number of CPUs must be an integer greater than 0"
-msgstr ""
-"Le nombre d'UC doit être un entier supérieur à 0"
+msgstr "Le nombre d'UC doit être un entier supérieur à 0"
msgid "Amount of memory (MB) must be an integer greater than 512"
-msgstr ""
-"La quantité de mémoire (Mo) doit être un entier supérieur à 512"
+msgstr "La quantité de mémoire (Mo) doit être un entier supérieur à 512"
msgid "Template CDROM must be a local or remote ISO file"
-msgstr ""
-"Le CD-ROM modèle doit être un fichier ISO local ou distant"
+msgstr "Le CD-ROM modèle doit être un fichier ISO local ou distant"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for template"
-msgstr ""
-"URI du pool de stockage non valide %(value)s indiqué pour le modèle"
+msgstr "URI du pool de stockage non valide %(value)s indiqué pour le modèle"
msgid "Specify an ISO image as CDROM or a base image to create a template"
msgstr ""
"Indiquez une image ISO comme CD-ROM ou image de base pour créer un modèle"
msgid "All networks for the template must be specified in a list."
-msgstr ""
-"Tous les réseaux du modèle doivent être spécifiés dans une liste."
+msgstr "Tous les réseaux du modèle doivent être spécifiés dans une liste."
msgid "Specify a volume to a template when storage pool is iSCSI or SCSI"
msgstr ""
-"Spécifiez un volume sur un modèle lorsque le pool de stockage est iSCSI ou SCSI"
+"Spécifiez un volume sur un modèle lorsque le pool de stockage est iSCSI ou "
+"SCSI"
#, python-format
msgid "The volume %(volume)s is not in storage pool %(pool)s"
-msgstr ""
-"Le volume %(volume)s n'est pas dans le pool de stockage %(pool)s"
+msgstr "Le volume %(volume)s n'est pas dans le pool de stockage %(pool)s"
#, python-format
msgid "Unable to create template due error: %(err)s"
-msgstr ""
-"Impossible de créer le modèle en raison de l'erreur suivante : %(err)s"
+msgstr "Impossible de créer le modèle en raison de l'erreur suivante : %(err)s"
#, python-format
msgid "Unable to delete template due error: %(err)s"
@@ -600,81 +573,71 @@ msgstr ""
"Impossible de supprimer le modèle en raison de l'erreur suivante : %(err)s"
msgid "Disk size must be an integer greater than 1GB."
-msgstr ""
-"La taille du disque doit être un entier supérieur à 1 Go."
+msgstr "La taille du disque doit être un entier supérieur à 1 Go."
msgid "Template base image must be a valid local image file"
-msgstr ""
-"L'image de base du modèle doit être un fichier image local valide"
+msgstr "L'image de base du modèle doit être un fichier image local valide"
#, python-format
msgid "Cannot identify base image %(path)s format"
-msgstr ""
-"Impossible d'identifier le format %(path)s de l'image de base"
+msgstr "Impossible d'identifier le format %(path)s de l'image de base"
msgid ""
"When specifying CPU topology, VCPUs must be a product of sockets, cores, and "
"threads."
msgstr ""
-"Lors de la spécification de la topologie d'UC, les UC virtuelles doivent être un produit des sockets, coeurs et "
-"unités d'exécution."
+"Lors de la spécification de la topologie d'UC, les UC virtuelles doivent "
+"être un produit des sockets, coeurs et unités d'exécution."
msgid ""
"When specifying CPU topology, each element must be an integer greater than "
"zero."
msgstr ""
-"Lors de la spécification de la topologie d'UC, chaque élément doit être un entier supérieur à "
-"zéro."
+"Lors de la spécification de la topologie d'UC, chaque élément doit être un "
+"entier supérieur à zéro."
msgid ""
"Invalid disk image format. Valid formats: bochs, cloop, cow, dmg, qcow, "
"qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"Format d'image de disque non valide. Formats valides : bochs, cloop, cow, dmg, qcow, "
-"qcow2, qed, raw, vmdk, vpc."
+"Format d'image de disque non valide. Formats valides : bochs, cloop, cow, "
+"dmg, qcow, qcow2, qed, raw, vmdk, vpc."
#, python-format
msgid "Storage pool %(name)s already exists"
-msgstr ""
-"Le pool de stockage %(name)s existe déjà"
+msgstr "Le pool de stockage %(name)s existe déjà"
#, python-format
msgid "Storage pool %(name)s does not exist"
-msgstr ""
-"Le pool de stockage %(name)s n'existe pas"
+msgstr "Le pool de stockage %(name)s n'existe pas"
#, python-format
msgid "Specify %(item)s in order to create the storage pool %(name)s"
-msgstr ""
-"Spécifiez %(item)s pour créer le pool de stockage %(name)s"
+msgstr "Spécifiez %(item)s pour créer le pool de stockage %(name)s"
#, python-format
msgid "Unable to delete active storage pool %(name)s"
-msgstr ""
-"Impossible de supprimer le pool de stockage actif %(name)s"
+msgstr "Impossible de supprimer le pool de stockage actif %(name)s"
#, python-format
msgid "Unable to list storage pools. Details: %(err)s"
-msgstr ""
-"Impossible de répertorier les pools de stockage. Détails : %(err)s"
+msgstr "Impossible de répertorier les pools de stockage. Détails : %(err)s"
#, python-format
msgid "Unable to create storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"Impossible de créer le pool de stockage %(name)s. Détails : %(err)s"
+msgstr "Impossible de créer le pool de stockage %(name)s. Détails : %(err)s"
#, python-format
msgid ""
"Unable to get number of storage volumes in storage pool %(name)s. Details: "
"%(err)s"
msgstr ""
-"Impossible d'obtenir le nombre de volumes de stockage dans le pool de stockage %(name)s. Détails : "
-"%(err)s"
+"Impossible d'obtenir le nombre de volumes de stockage dans le pool de "
+"stockage %(name)s. Détails : %(err)s"
#, python-format
msgid "Unable to activate storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"Impossible d'activer le pool de stockage %(name)s. Détails : %(err)s"
+msgstr "Impossible d'activer le pool de stockage %(name)s. Détails : %(err)s"
#, python-format
msgid "Unable to deactivate storage pool %(name)s. Details: %(err)s"
@@ -690,121 +653,116 @@ msgstr ""
msgid ""
"Unable to create NFS Pool as export path %(path)s may block during mount"
msgstr ""
-"Impossible de créer le pool NFS car le chemin d'exportation %(path)s risque de bloquer lors du montage"
+"Impossible de créer le pool NFS car le chemin d'exportation %(path)s risque "
+"de bloquer lors du montage"
#, python-format
msgid "Unable to create NFS Pool as export path %(path)s mount failed"
msgstr ""
-"Impossible de créer le pool NFS car le montage du chemin d'exportation %(path)s a échoué"
+"Impossible de créer le pool NFS car le montage du chemin d'exportation "
+"%(path)s a échoué"
#, python-format
msgid "Unsupported storage pool type: %(type)s"
-msgstr ""
-"Type de pool de stockage non pris en charge : %(type)s"
+msgstr "Type de pool de stockage non pris en charge : %(type)s"
#, python-format
msgid "Error while retrieving storage pool XML to %(pool)s"
-msgstr ""
-"Erreur d'extraction du fichier XML du pool de stockage dans %(pool)s"
+msgstr "Erreur d'extraction du fichier XML du pool de stockage dans %(pool)s"
msgid "Storage pool name must be a string without slashes (/)"
-msgstr ""
-"Le nom du pool de stockage doit être une chaîne sans barre oblique (/)"
+msgstr "Le nom du pool de stockage doit être une chaîne sans barre oblique (/)"
msgid ""
"Supported storage pool types are dir, netfs, logical, iscsi, isci and kimchi-"
"iso"
msgstr ""
-"Types de pool de stockage pris en charge : dir, netfs, logical, iscsi, isci et kimchi-"
-"iso"
+"Types de pool de stockage pris en charge : dir, netfs, logical, iscsi, isci "
+"et kimchi-iso"
msgid "Storage pool path must be a string"
-msgstr ""
-"Le chemin du pool de stockage doit être une chaîne"
+msgstr "Le chemin du pool de stockage doit être une chaîne"
msgid "Storage pool host must be a IP or hostname"
-msgstr ""
-"L'hôte du pool de stockage doit être une adresse IP ou un nom d'hôte"
+msgstr "L'hôte du pool de stockage doit être une adresse IP ou un nom d'hôte"
msgid "Storage pool device must be the absolute path to the block device"
msgstr ""
-"L'unité du pool de stockage doit correspondre au chemin d'accès absolu à l'unité par bloc"
+"L'unité du pool de stockage doit correspondre au chemin d'accès absolu à "
+"l'unité par bloc"
msgid "Storage pool devices parameter must be a list"
msgstr ""
"Le paramètre des unités du pool de stockage doivent constituer une liste"
msgid "Target IQN of an iSCSI pool must be a string"
-msgstr ""
-"Le nom qualifié iSCSI (IQN) cible d'un pool iSCSI doit être une chaîne"
+msgstr "Le nom qualifié iSCSI (IQN) cible d'un pool iSCSI doit être une chaîne"
msgid "Port of a remote storage server must be an integer between 1 and 65535"
msgstr ""
-"Le port d'un serveur de stockage distant doit être un entier compris entre 1 et 65535"
+"Le port d'un serveur de stockage distant doit être un entier compris entre 1 "
+"et 65535"
msgid "iSCSI target username must be a string"
-msgstr ""
-"Le nom d'utilisateur cible iSCSI doit être une chaîne"
+msgstr "Le nom d'utilisateur cible iSCSI doit être une chaîne"
msgid "iSCSI target password must be a string"
-msgstr ""
-"Le mot de passe cible iSCSI doit être une chaîne"
+msgstr "Le mot de passe cible iSCSI doit être une chaîne"
msgid "Specify name and type to create a storage pool"
-msgstr ""
-"Indiquez le nom et le type pour créer un pool de stockage"
+msgstr "Indiquez le nom et le type pour créer un pool de stockage"
#, python-format
msgid ""
"%(disk)s is not a valid disk/partition. Could not add it to the pool "
"%(pool)s."
msgstr ""
-"%(disk)s n'est pas un disque/une partition valide. Impossible de l'ajouter au pool "
-"%(pool)s."
+"%(disk)s n'est pas un disque/une partition valide. Impossible de l'ajouter "
+"au pool %(pool)s."
#, python-format
msgid "Unable to extend logical pool %(pool)s. Details: %(err)s"
-msgstr ""
-"Impossible d'étendre le pool logique %(pool)s. Détails : %(err)s"
+msgstr "Impossible d'étendre le pool logique %(pool)s. Détails : %(err)s"
msgid "The parameter disks only can be updated for logical storage pool."
msgstr ""
-"Les disques de paramètre peuvent être mis à jour uniquement pour le pool de stockage logique."
+"Les disques de paramètre peuvent être mis à jour uniquement pour le pool de "
+"stockage logique."
msgid "The SCSI host adapter name must be a string."
-msgstr ""
-"Le nom de l'adaptateur hôte SCSI doit être une chaîne."
+msgstr "Le nom de l'adaptateur hôte SCSI doit être une chaîne."
msgid "The storage pool kimchi_isos is reserved for internal use"
-msgstr ""
-"Le pool de stockage kimchi_isos est réservé à un usage interne"
+msgstr "Le pool de stockage kimchi_isos est réservé à un usage interne"
#, python-format
msgid ""
"Unable to activate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
msgstr ""
-"Impossible d'activer le pool de stockage NFS %(name)s. Le serveur NFS %(server)s est "
-"inaccessible."
+"Impossible d'activer le pool de stockage NFS %(name)s. Le serveur NFS "
+"%(server)s est inaccessible."
#, python-format
msgid ""
"Unable to deactivate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
msgstr ""
-"Impossible de désactiver le pool de stockage NFS %(name)s. Le serveur NFS %(server)s est "
-"inaccessible."
+"Impossible de désactiver le pool de stockage NFS %(name)s. Le serveur NFS "
+"%(server)s est inaccessible."
#, python-format
msgid ""
"Unable to deactivate pool %(name)s as it is associated with some templates"
msgstr ""
-"Impossible de désactiver le pool %(name)s car il est associé à plusieurs modèles"
+"Impossible de désactiver le pool %(name)s car il est associé à plusieurs "
+"modèles"
#, python-format
msgid "Unable to delete pool %(name)s as it is associated with some templates"
msgstr ""
-"Impossible de supprimer le pool %(name)s car il est associé à plusieurs modèles"
+"Impossible de supprimer le pool %(name)s car il est associé à plusieurs "
+"modèles"
#, python-format
msgid ""
@@ -817,12 +775,12 @@ msgstr ""
#, python-format
msgid "Unable to update database with deep scan information due error: %(err)s"
msgstr ""
-"Impossible de mettre à jour la base de données avec des informations d'analyse approfondie en raison de l'erreur suivante : %(err)s"
+"Impossible de mettre à jour la base de données avec des informations "
+"d'analyse approfondie en raison de l'erreur suivante : %(err)s"
#, python-format
msgid "Storage volume %(name)s already exists"
-msgstr ""
-"Le volume de stockage %(name)s existe déjà"
+msgstr "Le volume de stockage %(name)s existe déjà"
#, python-format
msgid "Storage volume %(name)s does not exist in storage pool %(pool)s"
@@ -834,33 +792,34 @@ msgid ""
"Unable to create storage volume %(volume)s because storage pool %(pool)s is "
"not active"
msgstr ""
-"Impossible de créer le volume de stockage %(volume)s car le pool de stockage %(pool)s "
-"n'est pas actif"
+"Impossible de créer le volume de stockage %(volume)s car le pool de stockage "
+"%(pool)s n'est pas actif"
#, python-format
msgid "Specify %(item)s in order to create storage volume %(volume)s"
-msgstr ""
-"Spécifiez %(item)s afin de créer le volume de stockage %(volume)s"
+msgstr "Spécifiez %(item)s afin de créer le volume de stockage %(volume)s"
#, python-format
msgid ""
"Unable to list storage volumes because storage pool %(pool)s is not active"
msgstr ""
-"Impossible de répertorier les volumes de stockage car le pool de stockage %(pool)s n'est pas actif"
+"Impossible de répertorier les volumes de stockage car le pool de stockage "
+"%(pool)s n'est pas actif"
#, python-format
msgid ""
"Unable to create storage volume %(name)s in storage pool %(pool)s. Details: "
"%(err)s"
msgstr ""
-"Impossible de créer le volume de stockage %(name)s dans le pool de stockage %(pool)s. Détails : "
-"%(err)s"
+"Impossible de créer le volume de stockage %(name)s dans le pool de stockage "
+"%(pool)s. Détails : %(err)s"
#, python-format
msgid ""
"Unable to list storage volumes in storage pool %(pool)s. Details: %(err)s"
msgstr ""
-"Impossible de répertorier les volumes de stockage dans le pool de stockage %(pool)s. Détails : %(err)s"
+"Impossible de répertorier les volumes de stockage dans le pool de stockage "
+"%(pool)s. Détails : %(err)s"
#, python-format
msgid "Unable to wipe storage volumes %(name)s. Details: %(err)s"
@@ -875,42 +834,41 @@ msgstr ""
#, python-format
msgid "Unable to resize storage volume %(name)s. Details: %(err)s"
msgstr ""
-"Impossible de redimensionner le volume de stockage %(name)s. Détails : %(err)s"
+"Impossible de redimensionner le volume de stockage %(name)s. Détails : "
+"%(err)s"
#, python-format
msgid "Storage type %(type)s does not support volume create and delete"
msgstr ""
-"Le type de stockage %(type)s ne prend pas en charge la création et la suppression de volume"
+"Le type de stockage %(type)s ne prend pas en charge la création et la "
+"suppression de volume"
msgid "Storage volume name must be a string"
-msgstr ""
-"Le nom du volume de stockage doit être une chaîne"
+msgstr "Le nom du volume de stockage doit être une chaîne"
msgid "Storage volume allocation must be an integer number"
-msgstr ""
-"L'allocation de volume de stockage doit être un nombre entier"
+msgstr "L'allocation de volume de stockage doit être un nombre entier"
msgid ""
"Storage volume format not supported. Valid formats: bochs, cloop, cow, dmg, "
"qcow, qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"Format du volume de stockage non pris en charge. Formats valides : bochs, cloop, cow, dmg, "
-"qcow, qcow2, qed, raw, vmdk, vpc."
+"Format du volume de stockage non pris en charge. Formats valides : bochs, "
+"cloop, cow, dmg, qcow, qcow2, qed, raw, vmdk, vpc."
msgid "Storage volume requires a volume name"
-msgstr ""
-"Le volume de stockage requiert un nom de volume"
+msgstr "Le volume de stockage requiert un nom de volume"
#, python-format
msgid ""
"Unable to update database with storage volume information due error: %(err)s"
msgstr ""
-"Impossible de mettre à jour la base de données avec des informations de volume de stockage en raison de l'erreur suivante : %(err)s"
+"Impossible de mettre à jour la base de données avec des informations de "
+"volume de stockage en raison de l'erreur suivante : %(err)s"
#, python-format
msgid "Only one of parameter %(param)s can be specified"
-msgstr ""
-"Un seul paramètre %(param)s peut être spécifié"
+msgstr "Un seul paramètre %(param)s peut être spécifié"
#, python-format
msgid "Create volume from %(param)s is not supported"
@@ -927,16 +885,15 @@ msgstr ""
#, python-format
msgid "Unable to access file %(url)s. Please, check it."
-msgstr ""
-"Impossible d'accéder au fichier %(url)s. Vérifiez ce dernier."
+msgstr "Impossible d'accéder au fichier %(url)s. Vérifiez ce dernier."
#, python-format
msgid ""
"Unable to clone storage volume '%(name)s' in pool '%(pool)s'. Details: "
"%(err)s"
msgstr ""
-"Impossible de cloner le volume de stockage '%(name)s' dans le pool '%(pool)s'. Détails : "
-"%(err)s"
+"Impossible de cloner le volume de stockage '%(name)s' dans le pool "
+"'%(pool)s'. Détails : %(err)s"
msgid "Specify chunk data and its size to upload a file."
msgstr ""
@@ -949,51 +906,51 @@ msgstr ""
msgid ""
"Unable to upload chunk data as it does not match with requested chunk size."
msgstr ""
-"Impossible de télécharger les données de bloc car elles ne correspondent pas à la taille de bloc."
+"Impossible de télécharger les données de bloc car elles ne correspondent pas "
+"à la taille de bloc."
#, python-format
msgid "The storage volume %(vol)s is not under an upload process."
msgstr ""
-"Le volume de stockage %(vol)s n'est pas soumis à un processus de téléchargement."
+"Le volume de stockage %(vol)s n'est pas soumis à un processus de "
+"téléchargement."
msgid "The upload chunk data will exceed the storage volume size."
msgstr ""
-"Le téléchargement des données de bloc dépasse la taille du volume de stockage."
+"Le téléchargement des données de bloc dépasse la taille du volume de "
+"stockage."
#, python-format
msgid "Unable to upload chunk data to storage volume. Details: %(err)s."
msgstr ""
-"Impossible de télécharger les données de bloc dans le volume de stockage. Détails : %(err)s."
+"Impossible de télécharger les données de bloc dans le volume de stockage. "
+"Détails : %(err)s."
#, python-format
msgid "Interface %(name)s does not exist"
-msgstr ""
-"L'interface %(name)s n'existe pas"
+msgstr "L'interface %(name)s n'existe pas"
#, python-format
msgid "Network %(name)s already exists"
-msgstr ""
-"Le réseau %(name)s existe déjà"
+msgstr "Le réseau %(name)s existe déjà"
#, python-format
msgid "Network %(name)s does not exist"
-msgstr ""
-"Le réseau %(name)s n'existe pas"
+msgstr "Le réseau %(name)s n'existe pas"
#, python-format
msgid "Subnet %(subnet)s specified for network %(network)s is not valid."
msgstr ""
-"Le sous-réseau %(subnet)s indiqué pour le réseau %(network)s n'est pas valide."
+"Le sous-réseau %(subnet)s indiqué pour le réseau %(network)s n'est pas "
+"valide."
#, python-format
msgid "Specify a network interface to create bridged network %(name)s"
-msgstr ""
-"Indiquez une interface réseau pour créer le réseau routé %(name)s"
+msgstr "Indiquez une interface réseau pour créer le réseau routé %(name)s"
#, python-format
msgid "Unable to delete active network %(name)s"
-msgstr ""
-"Impossible de supprimer le réseau actif %(name)s"
+msgstr "Impossible de supprimer le réseau actif %(name)s"
#, python-format
msgid "Interface %(iface)s specified for network %(network)s is already in use"
@@ -1002,12 +959,12 @@ msgstr ""
msgid "Interface should be bare NIC, bonding or bridge device."
msgstr ""
-"L'interface doit être un contrôleur NIC nu, une unité de pontage ou de liaison."
+"L'interface doit être un contrôleur NIC nu, une unité de pontage ou de "
+"liaison."
#, python-format
msgid "Unable to create network %(name)s. Details: %(err)s"
-msgstr ""
-"Impossible de créer le réseau %(name)s. Détails : %(err)s"
+msgstr "Impossible de créer le réseau %(name)s. Détails : %(err)s"
#, python-format
msgid "Unable to find a free IP address for network '%(name)s'"
@@ -1016,80 +973,76 @@ msgstr ""
#, python-format
msgid "The interface %(iface)s already exists."
-msgstr ""
-"L'interface %(iface)s existe déjà."
+msgstr "L'interface %(iface)s existe déjà."
msgid "Network name must be a string without slashes (/) or quotes (\")"
msgstr ""
-"Le nom du réseau doit être une chaîne sans barre oblique (/) ni guillemet (\")"
+"Le nom du réseau doit être une chaîne sans barre oblique (/) ni guillemet "
+"(\")"
msgid "Supported network types are isolated, NAT and bridge"
-msgstr ""
-"Les types de réseau pris en charge sont isolé, NAT et routé"
+msgstr "Les types de réseau pris en charge sont isolé, NAT et routé"
msgid "Network subnet must be a string with IP address and prefix or netmask"
msgstr ""
-"Le sous-réseau du réseau doit être une chaîne avec adresse IP et préfixe ou masque de réseau"
+"Le sous-réseau du réseau doit être une chaîne avec adresse IP et préfixe ou "
+"masque de réseau"
msgid "Network interface must be a string"
-msgstr ""
-"L'interface réseau doit être une chaîne"
+msgstr "L'interface réseau doit être une chaîne"
msgid "Network VLAN ID must be an integer between 1 and 4094"
msgstr ""
-"L'ID réseau local virtuel du réseau doit être un entier compris entre 1 et 4094"
+"L'ID réseau local virtuel du réseau doit être un entier compris entre 1 et "
+"4094"
msgid "Specify name and type to create a Network"
-msgstr ""
-"Indiquez le nom et le type pour créer un réseau"
+msgstr "Indiquez le nom et le type pour créer un réseau"
#, python-format
msgid ""
"Unable to delete network %(name)s. There are some virtual machines %(vms)s "
"and/or templates linked to this network."
msgstr ""
-"Impossible de supprimer le réseau %(name)s. Il existe plusieurs machines virtuelles %(vms)s "
-"et/ou modèles liés à ce réseau."
+"Impossible de supprimer le réseau %(name)s. Il existe plusieurs machines "
+"virtuelles %(vms)s et/ou modèles liés à ce réseau."
#, python-format
msgid ""
"Unable to deactivate network %(name)s. There are some virtual machines "
"%(vms)s and/or templates linked to this network."
msgstr ""
-"Impossible de désactiver le réseau %(name)s. Il existe plusieurs machines virtuelles "
-"%(vms)s et/ou modèles liés à ce réseau."
+"Impossible de désactiver le réseau %(name)s. Il existe plusieurs machines "
+"virtuelles %(vms)s et/ou modèles liés à ce réseau."
#, python-format
msgid "Bridge device %(name)s can not be the trunk device of a VLAN."
msgstr ""
-"L'unité de pontage %(name)s ne peut pas être l'unité de liaison d'un réseau local virtuel."
+"L'unité de pontage %(name)s ne peut pas être l'unité de liaison d'un réseau "
+"local virtuel."
#, python-format
msgid "Failed to activate interface %(iface)s: %(err)s."
-msgstr ""
-"Echec de l'activation de l'interface %(iface)s: %(err)s."
+msgstr "Echec de l'activation de l'interface %(iface)s: %(err)s."
#, python-format
msgid ""
"Failed to activate interface %(iface)s. Please check the physical link "
"status."
msgstr ""
-"Echec de l'activation de l'interface %(iface)s. Vérifiez l'état de "
-"la liaison physique."
+"Echec de l'activation de l'interface %(iface)s. Vérifiez l'état de la "
+"liaison physique."
#, python-format
msgid "Failed to start network %(name)s. Details: %(err)s"
-msgstr ""
-"Echec du démarrage du réseau %(name)s. Détails : %(err)s"
+msgstr "Echec du démarrage du réseau %(name)s. Détails : %(err)s"
#, python-format
msgid "Debug report %(name)s does not exist"
-msgstr ""
-"Le rapport de débogage %(name)s n'existe pas"
+msgstr "Le rapport de débogage %(name)s n'existe pas"
msgid "Debug report tool not found in system"
-msgstr ""
-"Outil de génération de rapports de débogage introuvable sur le système"
+msgstr "Outil de génération de rapports de débogage introuvable sur le système"
#, python-format
msgid "Unable to create debug report %(name)s. Details: %(err)s."
@@ -1098,8 +1051,7 @@ msgstr ""
#, python-format
msgid "Can not find any debug report with the given name %(name)s"
-msgstr ""
-"Aucun rapport de débogage nommé %(name)s n'a été trouvé"
+msgstr "Aucun rapport de débogage nommé %(name)s n'a été trouvé"
#, python-format
msgid "Unable to generate debug report %(name)s. Details: %(err)s"
@@ -1107,106 +1059,95 @@ msgstr ""
"Impossible de générer le rapport de débogage %(name)s. Détails : %(err)s"
msgid "You should give a name for the debug report file."
-msgstr ""
-"Vous devez indiquer un nom pour le fichier du rapport de débogage."
+msgstr "Vous devez indiquer un nom pour le fichier du rapport de débogage."
msgid ""
"Debug report name must be a string. Only letters, digits, underscore ('_') "
"and hyphen ('-') are allowed."
msgstr ""
-"Le nom du rapport de débogage doit être une chaîne. Seuls des lettres, chiffres, trait de soulignement ('_') "
-"et tiret ('-') sont autorisés."
+"Le nom du rapport de débogage doit être une chaîne. Seuls des lettres, "
+"chiffres, trait de soulignement ('_') et tiret ('-') sont autorisés."
#, python-format
msgid ""
"The debug report with specified name \"%(name)s\" already exists. Please use "
"another one."
msgstr ""
-"Le rapport de débogage nommé \"%(name)s\" existe déjà. Veuillez utiliser "
-"un autre nom."
+"Le rapport de débogage nommé \"%(name)s\" existe déjà. Veuillez utiliser un "
+"autre nom."
#, python-format
msgid "Storage server %(server)s was not used by Kimchi"
-msgstr ""
-"Le serveur de stockage %(server)s n'a pas été utilisé par Kimchi"
+msgstr "Le serveur de stockage %(server)s n'a pas été utilisé par Kimchi"
#, python-format
msgid "Distro '%(name)s' does not exist"
-msgstr ""
-"La distribution '%(name)s' n'existe pas"
+msgstr "La distribution '%(name)s' n'existe pas"
#, python-format
msgid "Partition %(name)s does not exist in the host"
-msgstr ""
-"La partition %(name)s n'existe pas sur l'hôte"
+msgstr "La partition %(name)s n'existe pas sur l'hôte"
msgid "Unable to shutdown host machine as there are running virtual machines"
msgstr ""
-"Impossible d'arrêter la machine hôte car des machines virtuelles sont en cours d'exécution"
+"Impossible d'arrêter la machine hôte car des machines virtuelles sont en "
+"cours d'exécution"
msgid "Unable to reboot host machine as there are running virtual machines"
msgstr ""
-"Impossible de réamorcer la machine hôte car des machines virtuelles sont en cours d'exécution"
+"Impossible de réamorcer la machine hôte car des machines virtuelles sont en "
+"cours d'exécution"
#, python-format
msgid "Node device '%(name)s' not found"
-msgstr ""
-"Unité de noeud '%(name)s' introuvable"
+msgstr "Unité de noeud '%(name)s' introuvable"
msgid "Conflicting flag filters specified."
-msgstr ""
-"Filtres d'indicateur en conflit spécifiés."
+msgstr "Filtres d'indicateur en conflit spécifiés."
msgid "No packages marked for update"
-msgstr ""
-"Aucun module marqué pour mise à jour"
+msgstr "Aucun module marqué pour mise à jour"
#, python-format
msgid "Package %(name)s is not marked to be updated."
-msgstr ""
-"Le module %(name)s n'est pas marqué pour mise à jour."
+msgstr "Le module %(name)s n'est pas marqué pour mise à jour."
#, python-format
msgid "Error while getting packages marked to be updated. Details: %(err)s"
msgstr ""
-"Erreur lors de l'obtention des modules marqués pour mise à jour. Détails : %(err)s"
+"Erreur lors de l'obtention des modules marqués pour mise à jour. Détails : "
+"%(err)s"
msgid "There is no compatible package manager for this system."
-msgstr ""
-"Aucun gestionnaire de modules compatible pour ce système."
+msgstr "Aucun gestionnaire de modules compatible pour ce système."
#, python-format
msgid "Unable to find %(item)s in datastore"
-msgstr ""
-"%(item)s introuvable dans le magasin de données"
+msgstr "%(item)s introuvable dans le magasin de données"
#, python-format
msgid "Invalid URI %(uri)s"
-msgstr ""
-"URI %(uri)s non valide"
+msgstr "URI %(uri)s non valide"
#, python-format
msgid "Timeout while running command '%(cmd)s' after %(seconds)s seconds"
msgstr ""
-"Dépassement de délai lors de l'exécution de la commande '%(cmd)s' après %(seconds)s secondes"
+"Dépassement de délai lors de l'exécution de la commande '%(cmd)s' après "
+"%(seconds)s secondes"
msgid "Unable to choose a virtual machine name"
-msgstr ""
-"Impossible de sélectionner un nom de machine virtuelle"
+msgstr "Impossible de sélectionner un nom de machine virtuelle"
#, python-format
msgid "Invalid data value '%(value)s'"
-msgstr ""
-"Valeur de données '%(value)s' non valide"
+msgstr "Valeur de données '%(value)s' non valide"
#, python-format
msgid "Invalid data unit '%(unit)s'"
-msgstr ""
-"Unité de données '%(unit)s' non valide"
+msgstr "Unité de données '%(unit)s' non valide"
msgid "Invalid storage type. Types supported: 'cdrom', 'disk'"
-msgstr ""
-"Type de stockage non valide. Types pris en charge : 'cdrom', 'disk'"
+msgstr "Type de stockage non valide. Types pris en charge : 'cdrom', 'disk'"
#, python-format
msgid "The path '%(value)s' is not a valid local/remote path for the device"
@@ -1214,8 +1155,7 @@ msgstr ""
"Le chemin '%(value)s' n'est pas un chemin local/distant valide pour l'unité"
msgid "Only CDROM path can be update."
-msgstr ""
-"Seul le chemin du CD-ROM peut être mis à jour."
+msgstr "Seul le chemin du CD-ROM peut être mis à jour."
#, python-format
msgid ""
@@ -1227,122 +1167,106 @@ msgstr ""
#, python-format
msgid "Error while creating new storage device: %(error)s"
-msgstr ""
-"Erreur lors de la création de l'unité de stockage : %(error)s"
+msgstr "Erreur lors de la création de l'unité de stockage : %(error)s"
#, python-format
msgid "Error while updating storage device: %(error)s"
-msgstr ""
-"Erreur lors de la mise à jour de l'unité de stockage : %(error)s"
+msgstr "Erreur lors de la mise à jour de l'unité de stockage : %(error)s"
#, python-format
msgid "Error while removing storage device: %(error)s"
-msgstr ""
-"Erreur lors du retrait de l'unité de stockage : %(error)s"
+msgstr "Erreur lors du retrait de l'unité de stockage : %(error)s"
msgid "Do not support IDE device hot plug"
-msgstr ""
-"Pas de prise en charge du remplacement à chaud d'unité IDE"
+msgstr "Pas de prise en charge du remplacement à chaud d'unité IDE"
msgid ""
"Specify type and path or type and pool/volume to add a new virtual machine "
"disk"
msgstr ""
-"Spécifiez un type et un chemin pour ajouter un nouveau disque "
-"de machine virtuelle"
+"Spécifiez un type et un chemin pour ajouter un nouveau disque de machine "
+"virtuelle"
msgid "Specify path to update virtual machine disk"
-msgstr ""
-"Indiquez le chemin pour mettre à jour le disque de machine virtuelle"
+msgstr "Indiquez le chemin pour mettre à jour le disque de machine virtuelle"
#, python-format
msgid "Controller type %(type)s limitation of %(limit)s devices reached"
-msgstr ""
-"Le type de contrôleur %(type)s a atteint sa limite de %(limit)s unités"
+msgstr "Le type de contrôleur %(type)s a atteint sa limite de %(limit)s unités"
#, python-format
msgid "Cannot retrieve disk path information for given pool/volume: %(error)s"
msgstr ""
-"Impossible d'extraire les informations de chemin d'accès au disque pour le pool/volume donné : %(error)s"
+"Impossible d'extraire les informations de chemin d'accès au disque pour le "
+"pool/volume donné : %(error)s"
msgid "Volume already in use by other virtual machine."
-msgstr ""
-"Le volume est déjà utilisé par une autre machine virtuelle."
+msgstr "Le volume est déjà utilisé par une autre machine virtuelle."
msgid ""
"Only one of path or pool/volume can be specified to add a new virtual "
"machine disk"
msgstr ""
-"Soit le chemin, soit le pool/volume peut être spécifié pour ajouter un nouveau disque "
-"de machine virtuelle"
+"Soit le chemin, soit le pool/volume peut être spécifié pour ajouter un "
+"nouveau disque de machine virtuelle"
#, python-format
msgid ""
"Volume chosen with format %(format)s does not fit in the storage type "
"%(type)s"
msgstr ""
-"Le volume choisi avec le format %(format)s n'est pas adapté au type de stockage "
-"%(type)s"
+"Le volume choisi avec le format %(format)s n'est pas adapté au type de "
+"stockage %(type)s"
msgid "YUM Repository ID must be one word only string."
-msgstr ""
-"L'ID référentiel YUM doit être une chaîne d'un seul mot."
+msgstr "L'ID référentiel YUM doit être une chaîne d'un seul mot."
msgid "Repository URL must be an http://, ftp:// or file:// URL."
-msgstr ""
-"L'URL du référentiel doit être de type http://, ftp:// ou file://."
+msgstr "L'URL du référentiel doit être de type http://, ftp:// ou file://."
msgid ""
"Repository configuration is a dictionary with specific values according to "
"repository type."
msgstr ""
-"La configuration de référentiel est un dictionnaire avec des valeurs spécifiques en fonction "
-"du type de référentiel."
+"La configuration de référentiel est un dictionnaire avec des valeurs "
+"spécifiques en fonction du type de référentiel."
msgid "Distribution to DEB repository must be a string"
-msgstr ""
-"La distribution sur le référentiel DEB doit être une chaîne"
+msgstr "La distribution sur le référentiel DEB doit être une chaîne"
msgid "Components to DEB repository must be listed in a array"
msgstr ""
"Les composants du référentiel DEB doivent être répertoriés dans un tableau"
msgid "Components to DEB repository must be a string"
-msgstr ""
-"Les composants du référentiel DEB doivent être une chaîne"
+msgstr "Les composants du référentiel DEB doivent être une chaîne"
msgid "Mirror list to repository must be a string"
-msgstr ""
-"La liste miroir du référentiel doit être une chaîne"
+msgstr "La liste miroir du référentiel doit être une chaîne"
msgid "YUM Repository name must be string."
-msgstr ""
-"Le nom de référentiel YUM doit être une chaîne."
+msgstr "Le nom de référentiel YUM doit être une chaîne."
msgid "GPG check must be a boolean value."
-msgstr ""
-"Le contrôle GPG doit être une valeur booléenne."
+msgstr "Le contrôle GPG doit être une valeur booléenne."
msgid "GPG key must be a URL pointing to the ASCII-armored file."
-msgstr ""
-"La clé GPG doit être une URL pointant sur le fichier ASCII."
+msgstr "La clé GPG doit être une URL pointant sur le fichier ASCII."
#, python-format
msgid "Could not update repository %(repo_id)s."
-msgstr ""
-"Impossible de mettre à jour le référentiel %(repo_id)s."
+msgstr "Impossible de mettre à jour le référentiel %(repo_id)s."
#, python-format
msgid "Repository %(repo_id)s does not exist."
-msgstr ""
-"Le référentiel %(repo_id)s n'existe pas."
+msgstr "Le référentiel %(repo_id)s n'existe pas."
msgid ""
"Specify repository base URL, mirror list or metalink in order to create or "
"update a YUM repository."
msgstr ""
-"Indiquez l'URL de base du référentiel, la liste miroir ou le lien afin de créer ou "
-"mettre à jour un référentiel YUM."
+"Indiquez l'URL de base du référentiel, la liste miroir ou le lien afin de "
+"créer ou mettre à jour un référentiel YUM."
msgid "Repository management tool was not recognized for your system."
msgstr ""
@@ -1350,23 +1274,21 @@ msgstr ""
#, python-format
msgid "Repository %(repo_id)s is already enabled."
-msgstr ""
-"Le référentiel %(repo_id)s est déjà activé."
+msgstr "Le référentiel %(repo_id)s est déjà activé."
#, python-format
msgid "Repository %(repo_id)s is already disabled."
-msgstr ""
-"Le référentiel %(repo_id)s est déjà désactivé."
+msgstr "Le référentiel %(repo_id)s est déjà désactivé."
#, python-format
msgid "Could not remove repository %(repo_id)s."
-msgstr ""
-"Impossible de supprimer le référentiel %(repo_id)s."
+msgstr "Impossible de supprimer le référentiel %(repo_id)s."
#, python-format
msgid "Could not write repository configuration file %(repo_file)s"
msgstr ""
-"Impossible d'écrire dans le fichier de configuration du référentiel %(repo_file)s"
+"Impossible d'écrire dans le fichier de configuration du référentiel "
+"%(repo_file)s"
msgid "Specify repository distribution in order to create a DEB repository."
msgstr ""
@@ -1374,155 +1296,143 @@ msgstr ""
#, python-format
msgid "Could not enable repository %(repo_id)s."
-msgstr ""
-"Impossible d'activer le référentiel %(repo_id)s."
+msgstr "Impossible d'activer le référentiel %(repo_id)s."
#, python-format
msgid "Could not disable repository %(repo_id)s."
-msgstr ""
-"Impossible de désactiver le référentiel %(repo_id)s."
+msgstr "Impossible de désactiver le référentiel %(repo_id)s."
msgid "YUM Repository ID already exists"
-msgstr ""
-"L'ID référentiel YUM existe déjà"
+msgstr "L'ID référentiel YUM existe déjà"
msgid "YUM Repository name must be a string"
-msgstr ""
-"Le nom de référentiel YUM doit être une chaîne."
+msgstr "Le nom de référentiel YUM doit être une chaîne."
#, python-format
msgid "Unable to list repositories. Details: '%(err)s'"
-msgstr ""
-"Impossible de répertorier les référentiels. Détails : '%(err)s'"
+msgstr "Impossible de répertorier les référentiels. Détails : '%(err)s'"
#, python-format
msgid "Unable to retrieve repository information. Details: '%(err)s'"
msgstr ""
-"Impossible d'extraire les informations relatives au référentiel. Détails : '%(err)s'"
+"Impossible d'extraire les informations relatives au référentiel. Détails : "
+"'%(err)s'"
#, python-format
msgid "Unable to add repository. Details: '%(err)s'"
-msgstr ""
-"Impossible d'ajouter le référentiel. Détails : '%(err)s'"
+msgstr "Impossible d'ajouter le référentiel. Détails : '%(err)s'"
#, python-format
msgid "Unable to remove repository. Details: '%(err)s'"
-msgstr ""
-"Impossible de supprimer le référentiel. Détails : '%(err)s'"
+msgstr "Impossible de supprimer le référentiel. Détails : '%(err)s'"
#, python-format
msgid ""
"Configuration items: '%(items)s' are not supported by repository manager"
msgstr ""
-"Les éléments de configuration '%(items)s' ne sont pas pris en charge par le gestionnaire de référentiel"
+"Les éléments de configuration '%(items)s' ne sont pas pris en charge par le "
+"gestionnaire de référentiel"
msgid "Repository metalink must be an http://, ftp:// or file:// URL."
-msgstr ""
-"Le lien du référentiel doit être une URL http://, ftp:// ou file://."
+msgstr "Le lien du référentiel doit être une URL http://, ftp:// ou file://."
msgid "Cannot specify mirrorlist and metalink at the same time."
-msgstr ""
-"Impossible de spécifier à la fois la liste miroir et le lien."
+msgstr "Impossible de spécifier à la fois la liste miroir et le lien."
#, python-format
msgid ""
"Virtual machine '%(vm)s' must be stopped before creating a snapshot of it."
msgstr ""
-"La machine virtuelle '%(vm)s' doit être arrêtée avant la création d'une image instantanée de celle-ci."
+"La machine virtuelle '%(vm)s' doit être arrêtée avant la création d'une "
+"image instantanée de celle-ci."
#, python-format
msgid ""
"Unable to create snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Impossible de créer l'image instantanée '%(name)s' sur la machine virtuelle '%(vm)s'. Détails : "
-"%(err)s"
+"Impossible de créer l'image instantanée '%(name)s' sur la machine virtuelle "
+"'%(vm)s'. Détails : %(err)s"
#, python-format
msgid "Snapshot '%(name)s' does not exist on virtual machine '%(vm)s'."
msgstr ""
-"L'image instantanée '%(name)s' n'existe pas sur la machine virtuelle '%(vm)s'."
+"L'image instantanée '%(name)s' n'existe pas sur la machine virtuelle "
+"'%(vm)s'."
#, python-format
msgid ""
"Unable to retrieve snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Impossible d'extraire l'image instantanée '%(name)s' sur la machine virtuelle '%(vm)s'. Détails : "
-"%(err)s"
+"Impossible d'extraire l'image instantanée '%(name)s' sur la machine "
+"virtuelle '%(vm)s'. Détails : %(err)s"
#, python-format
msgid "Unable to list snapshots on virtual machine '%(vm)s'. Details: %(err)s"
msgstr ""
-"Impossible de répertorier les images instantanées sur la machine virtuelle '%(vm)s'. Détails : %(err)s"
+"Impossible de répertorier les images instantanées sur la machine virtuelle "
+"'%(vm)s'. Détails : %(err)s"
#, python-format
msgid ""
"Unable to delete snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Impossible de supprimer l'image instantanée '%(name)s' sur la machine virtuelle '%(vm)s'. Détails : "
-"%(err)s"
+"Impossible de supprimer l'image instantanée '%(name)s' sur la machine "
+"virtuelle '%(vm)s'. Détails : %(err)s"
#, python-format
msgid ""
"Unable to retrieve current snapshot of virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Impossible d'extraire l'image instantanée en cours de la machine virtuelle '%(vm)s'. Détails : "
-"%(err)s"
+"Impossible d'extraire l'image instantanée en cours de la machine virtuelle "
+"'%(vm)s'. Détails : %(err)s"
#, python-format
msgid ""
"Unable to revert virtual machine '%(vm)s' to snapshot '%(name)s'. Details: "
"%(err)s"
msgstr ""
-"Impossible de rétablir la machine virtuelle '%(vm)s' à l'image instantanée '%(name)s'. Détails : "
-"%(err)s"
+"Impossible de rétablir la machine virtuelle '%(vm)s' à l'image instantanée "
+"'%(name)s'. Détails : %(err)s"
#, python-format
msgid ""
"Unable to create snapshot of virtual machine '%(vm)s' because it contains a "
"disk with format '%(format)s'; only 'qcow2' is supported."
msgstr ""
-"Impossible de créer l'image instantanée de la machine virtuelle '%(vm)s' car elle contient un "
-"disque au format '%(format)s' ; seul 'qcow2' est pris en charge."
+"Impossible de créer l'image instantanée de la machine virtuelle '%(vm)s' car "
+"elle contient un disque au format '%(format)s' ; seul 'qcow2' est pris en "
+"charge."
msgid "The number of vCPUs is too large for this system."
-msgstr ""
-"Le nombre d'UC virtuelles est trop élevé pour ce système."
+msgstr "Le nombre d'UC virtuelles est trop élevé pour ce système."
msgid "Invalid vCPU/topology combination."
-msgstr ""
-"Combinaison d'UC virtuelle/topologie non valide."
+msgstr "Combinaison d'UC virtuelle/topologie non valide."
msgid "This host (or current configuration) does not allow CPU topology."
-msgstr ""
-"Cet hôte (ou configuration actuelle) n'autorise pas la topologie d'UC."
+msgstr "Cet hôte (ou configuration actuelle) n'autorise pas la topologie d'UC."
msgid "ERROR CODE"
-msgstr ""
-"CODE D'ERREUR"
+msgstr "CODE D'ERREUR"
msgid "REASON"
-msgstr ""
-"MOTIF"
+msgstr "MOTIF"
msgid "STACK"
-msgstr ""
-"PILE"
+msgstr "PILE"
msgid "Go to Homepage"
-msgstr ""
-"Accéder à la page d'accueil"
+msgstr "Accéder à la page d'accueil"
msgid "Create a New Virtual Machine"
-msgstr ""
-"Créer une machine virtuelle"
+msgstr "Créer une machine virtuelle"
msgid "Virtual Machine Name"
-msgstr ""
-"Nom de la machine virtuelle"
+msgstr "Nom de la machine virtuelle"
msgid ""
"The name used to identify the virtual machine. If omitted, a name will be "
@@ -1532,689 +1442,557 @@ msgstr ""
"choisi en fonction du modèle utilisé."
msgid "Template"
-msgstr ""
-"Modèle"
+msgstr "Modèle"
msgid "Please create a template first."
-msgstr ""
-"Commencez par créer un modèle."
+msgstr "Commencez par créer un modèle."
msgid "Create a Template"
-msgstr ""
-"Créer un modèle"
+msgstr "Créer un modèle"
msgid "Please choose a template."
-msgstr ""
-"Sélectionnez un modèle."
+msgstr "Sélectionnez un modèle."
msgid "OS"
-msgstr ""
-"SE"
+msgstr "SE"
msgid "OS Version"
-msgstr ""
-"Version SE"
+msgstr "Version SE"
msgid "CPUS"
-msgstr ""
-"Unités centrales"
+msgstr "Unités centrales"
msgid "Memory"
-msgstr ""
-"Mémoire"
+msgstr "Mémoire"
msgid "Create"
-msgstr ""
-"Créer"
+msgstr "Créer"
msgid "Creating..."
-msgstr ""
-"Création..."
+msgstr "Création..."
msgid "Edit Guest"
-msgstr ""
-"Editer l'invité"
+msgstr "Editer l'invité"
msgid "General"
-msgstr ""
-"Général"
+msgstr "Général"
msgid "Storage"
-msgstr ""
-"Stockage"
+msgstr "Stockage"
msgid "Interface"
-msgstr ""
-"Interface"
+msgstr "Interface"
msgid "Permission"
-msgstr ""
-"Droits"
+msgstr "Droits"
msgid "Host PCI Device"
-msgstr ""
-"Unité PCI hôte"
+msgstr "Unité PCI hôte"
msgid "Snapshot"
-msgstr ""
-"Image instantanée"
+msgstr "Image instantanée"
msgid "Name"
-msgstr ""
-"Nom"
+msgstr "Nom"
msgid "CPUs"
-msgstr ""
-"UC"
+msgstr "UC"
msgid "Memory (MB)"
-msgstr ""
-"Mémoire (Mo)"
+msgstr "Mémoire (Mo)"
msgid "Icon"
-msgstr ""
-"Icône"
+msgstr "Icône"
msgid "Device"
-msgstr ""
-"Unité"
+msgstr "Unité"
msgid "Path"
-msgstr ""
-"Chemin"
+msgstr "Chemin"
msgid "Network"
-msgstr ""
-"Réseau"
+msgstr "Réseau"
msgid "Type"
-msgstr ""
-"Type"
+msgstr "Type"
msgid "MAC Address"
-msgstr ""
-"Adresse MAC"
+msgstr "Adresse MAC"
msgid "Available system users and groups"
-msgstr ""
-"Groupes et utilisateurs système disponibles"
+msgstr "Groupes et utilisateurs système disponibles"
msgid "Selected system users and groups"
-msgstr ""
-"Groupes et utilisateurs système sélectionnés"
+msgstr "Groupes et utilisateurs système sélectionnés"
msgid "User"
-msgstr ""
-"Utilisateur"
+msgstr "Utilisateur"
msgid "All"
-msgstr ""
-"Tout"
+msgstr "Tout"
msgid "To Add"
-msgstr ""
-"A ajouter"
+msgstr "A ajouter"
msgid "Added"
-msgstr ""
-"Ajouté"
+msgstr "Ajouté"
msgid "filter"
-msgstr ""
-"filtre"
+msgstr "filtre"
msgid "Product"
-msgstr ""
-"Produit"
+msgstr "Produit"
msgid "Vendor"
-msgstr ""
-"Fournisseur"
+msgstr "Fournisseur"
msgid "Created"
-msgstr ""
-"Créé"
+msgstr "Créé"
msgid "Save"
-msgstr ""
-"Sauvegarder"
+msgstr "Sauvegarder"
msgid "Replace"
-msgstr ""
-"Remplacer"
+msgstr "Remplacer"
msgid "Detach"
-msgstr ""
-"Détacher"
+msgstr "Détacher"
msgid "Cancel"
-msgstr ""
-"Annuler"
+msgstr "Annuler"
msgid "revert"
-msgstr ""
-"rétablir"
+msgstr "rétablir"
msgid "Add a Storage Device to VM"
-msgstr ""
-"Ajouter une unité de stockage à la machine virtuelle"
+msgstr "Ajouter une unité de stockage à la machine virtuelle"
msgid "Device Type"
-msgstr ""
-"Type d'unité"
+msgstr "Type d'unité"
msgid "The device type. Currently, \"cdrom\" and \"disk\" are supported."
msgstr ""
-"Type d'unité. Actuellement, \"cdrom\" et \"disk\" seulement sont pris en charge."
+"Type d'unité. Actuellement, \"cdrom\" et \"disk\" seulement sont pris en "
+"charge."
msgid "Storage Pool"
-msgstr ""
-"Pool de stockage"
+msgstr "Pool de stockage"
msgid "Storage pool which volume located in"
-msgstr ""
-"Pool de stockage dans lequel le volume est situé"
+msgstr "Pool de stockage dans lequel le volume est situé"
msgid "Storage Volume"
-msgstr ""
-"Volume de stockage"
+msgstr "Volume de stockage"
msgid "Storage volume to be attached"
-msgstr ""
-"Volume de stockage à attacher"
+msgstr "Volume de stockage à attacher"
msgid "File Path"
-msgstr ""
-"Chemin d'accès au fichier"
+msgstr "Chemin d'accès au fichier"
msgid "The ISO file path in the server for CDROM."
-msgstr ""
-"Chemin d'accès au fichier ISO sur le serveur pour le CD-ROM."
+msgstr "Chemin d'accès au fichier ISO sur le serveur pour le CD-ROM."
msgid "Attach"
-msgstr ""
-"Attacher"
+msgstr "Attacher"
msgid "Start"
-msgstr ""
-"Démarrer"
+msgstr "Démarrer"
msgid "Reset"
-msgstr ""
-"Réinitialiser"
+msgstr "Réinitialiser"
msgid "Pause"
-msgstr ""
-"Pause"
+msgstr "Pause"
msgid "Resume"
-msgstr ""
-"Reprendre"
+msgstr "Reprendre"
msgid "Power Off"
-msgstr ""
-"Mettre hors tension"
+msgstr "Mettre hors tension"
msgid "Actions"
-msgstr ""
-"Actions"
+msgstr "Actions"
msgid "Connect"
-msgstr ""
-"Se connecter"
+msgstr "Se connecter"
msgid "Clone"
-msgstr ""
-"Cloner"
+msgstr "Cloner"
msgid "Edit"
-msgstr ""
-"Editer"
+msgstr "Editer"
msgid "Shut Down"
-msgstr ""
-"Arrêter"
+msgstr "Arrêter"
msgid "Delete"
-msgstr ""
-"Supprimer"
+msgstr "Supprimer"
msgid "The username or password you entered is incorrect. Please try again."
msgstr ""
-"Le nom d'utilisateur ou le mot de passe entré est incorrect. Veuillez recommencer."
+"Le nom d'utilisateur ou le mot de passe entré est incorrect. Veuillez "
+"recommencer."
msgid "This field is required."
-msgstr ""
-"Cette zone est obligatoire."
+msgstr "Cette zone est obligatoire."
msgid "Log in"
-msgstr ""
-"Connexion"
+msgstr "Connexion"
msgid "Logging in..."
-msgstr ""
-"Connexion en cours..."
+msgstr "Connexion en cours..."
msgid "Host"
-msgstr ""
-"Hôte"
+msgstr "Hôte"
msgid "Guests"
-msgstr ""
-"Invités"
+msgstr "Invités"
msgid "Templates"
-msgstr ""
-"Modèles"
+msgstr "Modèles"
msgid "Failed to get application configuration"
-msgstr ""
-"Echec d'obtention de la configuration d'application"
+msgstr "Echec d'obtention de la configuration d'application"
msgid "This is not a valid Linux path"
-msgstr ""
-"Ce chemin Linux n'est pas valide"
+msgstr "Ce chemin Linux n'est pas valide"
msgid "This is not a valid URL."
-msgstr ""
-"Cette URL n'est pas valide."
+msgstr "Cette URL n'est pas valide."
msgid "No such data available."
-msgstr ""
-"Aucune donnée de ce type disponible."
+msgstr "Aucune donnée de ce type disponible."
msgid ""
"Can not contact the host system. Verify the host system is up and that you "
"have network connectivity to it. HTTP request response %1. "
msgstr ""
-"Impossible de contacter le système hôte. Vérifiez que celui-ci est démarré et "
-"que vous disposez d'une connectivité au système hôte. Réponse à la demande HTTP %1. "
+"Impossible de contacter le système hôte. Vérifiez que celui-ci est démarré "
+"et que vous disposez d'une connectivité au système hôte. Réponse à la "
+"demande HTTP %1. "
msgid "Unable to read file."
-msgstr ""
-"Impossible de lire le fichier."
+msgstr "Impossible de lire le fichier."
msgid "Error while uploading file."
-msgstr ""
-"Erreur lors du téléchargement du fichier."
+msgstr "Erreur lors du téléchargement du fichier."
msgid "Delete Confirmation"
-msgstr ""
-"Confirmation de suppression"
+msgstr "Confirmation de suppression"
msgid "OK"
-msgstr ""
-"OK"
+msgstr "OK"
msgid "Confirm"
-msgstr ""
-"Confirmer"
+msgstr "Confirmer"
msgid "Warning"
-msgstr ""
-"Avertissement"
+msgstr "Avertissement"
msgid "Cloning..."
-msgstr ""
-"Clonage en cours..."
+msgstr "Clonage en cours..."
msgid "Loading..."
-msgstr ""
-"Chargement en cours..."
+msgstr "Chargement en cours..."
msgid "An error occurred while retrieving system information."
msgstr ""
"Une erreur s'est produite lors de l'extraction des informations système."
msgid "Retry"
-msgstr ""
-"Nouvelle tentative"
+msgstr "Nouvelle tentative"
msgid "Detailed message:"
-msgstr ""
-"Message détaillé :"
+msgstr "Message détaillé :"
msgid "No ISO found"
-msgstr ""
-"ISO introuvable"
+msgstr "ISO introuvable"
msgid "This is not a valid ISO file."
-msgstr ""
-"Ceci n'est pas un fichier ISO valide."
+msgstr "Ceci n'est pas un fichier ISO valide."
msgid "This may take a long time. Do you want to continue?"
-msgstr ""
-"Cette opération peut être assez longue. Voulez-vous continuer ?"
+msgstr "Cette opération peut être assez longue. Voulez-vous continuer ?"
msgid "This will permanently delete the template. Would you like to continue?"
-msgstr ""
-"Le modèle va être supprimé définitivement. Voulez-vous continuer ?"
+msgstr "Le modèle va être supprimé définitivement. Voulez-vous continuer ?"
msgid "Unable to shut down system as there are some virtual machines running!"
msgstr ""
-"Impossible d'arrêter le système car certaines machines virtuelles sont en cours d'exécution !"
+"Impossible d'arrêter le système car certaines machines virtuelles sont en "
+"cours d'exécution !"
msgid "Max:"
-msgstr ""
-"Maximum :"
+msgstr "Maximum :"
msgid "Utilization"
-msgstr ""
-"Utilisation"
+msgstr "Utilisation"
msgid "Available"
-msgstr ""
-"Disponible"
+msgstr "Disponible"
msgid "Read Rate"
-msgstr ""
-"Vitesse de lecture"
+msgstr "Vitesse de lecture"
msgid "Write Rate"
-msgstr ""
-"Vitesse d'écriture"
+msgstr "Vitesse d'écriture"
msgid "Received"
-msgstr ""
-"Reçu"
+msgstr "Reçu"
msgid "Sent"
-msgstr ""
-"Envoyé"
+msgstr "Envoyé"
msgid ""
"Shutting down or restarting host will cause unsaved work lost. Continue to "
"shut down/restarting?"
msgstr ""
-"L'arrêt ou le redémarrage de l'hôte va entraîner la perte du travail non sauvegardé. Poursuivre "
-"l'arrêt/le redémarrage ?"
+"L'arrêt ou le redémarrage de l'hôte va entraîner la perte du travail non "
+"sauvegardé. Poursuivre l'arrêt/le redémarrage ?"
msgid ""
"Repository will be removed permanently and can't be recovered. Do you want "
"to continue?"
msgstr ""
-"Le référentiel va être retiré définitivement et ne pourra pas être récupéré. Voulez-vous "
-"continuer ?"
+"Le référentiel va être retiré définitivement et ne pourra pas être récupéré. "
+"Voulez-vous continuer ?"
msgid "Repositories"
-msgstr ""
-"Référentiels"
+msgstr "Référentiels"
msgid "ID"
-msgstr ""
-"ID"
+msgstr "ID"
msgid "Base URL"
-msgstr ""
-"URL de base"
+msgstr "URL de base"
msgid "Is Mirror"
-msgstr ""
-"Est un miroir"
+msgstr "Est un miroir"
msgid "URL Args"
-msgstr ""
-"Arguments d'URL"
+msgstr "Arguments d'URL"
msgid "Enabled"
-msgstr ""
-"Activé"
+msgstr "Activé"
msgid "GPG Check"
-msgstr ""
-"Contrôle GPG"
+msgstr "Contrôle GPG"
msgid "GPG Key"
-msgstr ""
-"Clé GPG"
+msgstr "Clé GPG"
msgid "Add"
-msgstr ""
-"Ajouter"
+msgstr "Ajouter"
msgid "Remove"
-msgstr ""
-"Retirer"
+msgstr "Retirer"
msgid "Enable"
-msgstr ""
-"Activer"
+msgstr "Activer"
msgid "Disable"
-msgstr ""
-"Désactiver"
+msgstr "Désactiver"
msgid "Software Updates"
-msgstr ""
-"Mises à jour logicielles"
+msgstr "Mises à jour logicielles"
msgid "Package Name"
-msgstr ""
-"Nom du module"
+msgstr "Nom du module"
msgid "Version"
-msgstr ""
-"Version"
+msgstr "Version"
msgid "Architecture"
-msgstr ""
-"Architecture"
+msgstr "Architecture"
msgid "Repository"
-msgstr ""
-"Référentiel"
+msgstr "Référentiel"
msgid "Update All"
-msgstr ""
-"Tout mettre à jour"
+msgstr "Tout mettre à jour"
msgid "Updating..."
-msgstr ""
-"Mise à jour en cours..."
+msgstr "Mise à jour en cours..."
msgid "Failed to retrieve packages update information."
-msgstr ""
-"Echec de l'extraction des informations de mise à jour des modules."
+msgstr "Echec de l'extraction des informations de mise à jour des modules."
msgid "Failed to update package(s)."
-msgstr ""
-"Echec de mise à jour du ou des modules."
+msgstr "Echec de mise à jour du ou des modules."
msgid ""
"Debug report will be removed permanently and can't be recovered. Do you want "
"to continue?"
msgstr ""
-"Le rapport de débogage va être retiré définitivement et ne pourra pas être récupéré. Voulez-vous "
-"continuer ?"
+"Le rapport de débogage va être retiré définitivement et ne pourra pas être "
+"récupéré. Voulez-vous continuer ?"
msgid "Debug Reports"
-msgstr ""
-"Rapports de débogage"
+msgstr "Rapports de débogage"
msgid "Generated Time"
-msgstr ""
-"Heure génération"
+msgstr "Heure génération"
msgid "Generate"
-msgstr ""
-"Générer"
+msgstr "Générer"
msgid "Generating..."
-msgstr ""
-"Génération en cours..."
+msgstr "Génération en cours..."
msgid "Rename"
-msgstr ""
-"Renommer"
+msgstr "Renommer"
msgid "Download"
-msgstr ""
-"Télécharger"
+msgstr "Télécharger"
msgid ""
"Report name should contain only letters, digits, underscore ('_') and/or "
"hyphen ('-')."
msgstr ""
-"Le nom du rapport doit comporter uniquement des lettres, chiffres, trait de soulignement ('_') et/ou "
-"tiret ('-')."
+"Le nom du rapport doit comporter uniquement des lettres, chiffres, trait de "
+"soulignement ('_') et/ou tiret ('-')."
msgid "Pending..."
-msgstr ""
-"En attente..."
+msgstr "En attente..."
msgid "Report name is the same as the original one."
-msgstr ""
-"Le nom du rapport est identique au nom d'origine."
+msgstr "Le nom du rapport est identique au nom d'origine."
msgid ""
"This will delete the virtual machine and its virtual disks. This operation "
"cannot be undone. Would you like to continue?"
msgstr ""
-"Cette opération va supprimer la machine virtuelle et ses disques virtuels. L'opération "
-"ne peut pas être annulée. Voulez-vous continuer ?"
+"Cette opération va supprimer la machine virtuelle et ses disques virtuels. "
+"L'opération ne peut pas être annulée. Voulez-vous continuer ?"
msgid "Power off Confirmation"
-msgstr ""
-"Confirmation de mise hors tension"
+msgstr "Confirmation de mise hors tension"
msgid ""
"This action may produce undesirable results, for example unflushed disk "
"cache in the guest. Would you like to continue?"
msgstr ""
-"Cette action peut produire des résultats indésirables, par exemple, "
-"un cache de disque non vidé sur le système invité. Voulez-vous continuer ?"
+"Cette action peut produire des résultats indésirables, par exemple, un cache "
+"de disque non vidé sur le système invité. Voulez-vous continuer ?"
msgid "Reset Confirmation"
-msgstr ""
-"Confirmation de réinitialisation"
+msgstr "Confirmation de réinitialisation"
msgid ""
"There is a risk of data loss caused by reset without the guest OS shutdown. "
"Would you like to continue?"
msgstr ""
-"Risque de perte de données suite à une réinitialisation sans arrêt du système d'exploitation invité. "
-"Voulez-vous continuer ?"
+"Risque de perte de données suite à une réinitialisation sans arrêt du "
+"système d'exploitation invité. Voulez-vous continuer ?"
msgid "Shut Down Confirmation"
-msgstr ""
-"Confirmation d'arrêt"
+msgstr "Confirmation d'arrêt"
msgid "Note the guest OS may ignore this request. Would you like to continue?"
msgstr ""
-"Notez que le système d'exploitation invité peut ignorer cette demande. Voulez-vous continuer ?"
+"Notez que le système d'exploitation invité peut ignorer cette demande. "
+"Voulez-vous continuer ?"
msgid "Virtual Machine delete Confirmation"
-msgstr ""
-"Confirmation de la suppression de la machine virtuelle"
+msgstr "Confirmation de la suppression de la machine virtuelle"
msgid ""
"This virtual machine is not persistent. Power Off will delete it. Continue?"
msgstr ""
-"Cette machine virtuelle n'est pas permanente. Elle sera supprimée lors de la mise hors tension. Continuer ?"
+"Cette machine virtuelle n'est pas permanente. Elle sera supprimée lors de la "
+"mise hors tension. Continuer ?"
msgid ""
"When the target guest has SCSI or iSCSI volumes, they will be cloned on "
"default storage pool. The same will happen when the target pool does not "
"have enough space to clone the volumes. Do you want to continue?"
msgstr ""
-"Lorsque l'invité cible comporte des volumes SCSI ou iSCSI, ces derniers sont clonés dans le "
-"pool de stockage par défaut. Cela se produit également lorsque le pool cible ne comporte "
-"pas suffisamment d'espace pour cloner les volumes. Voulez-vous continuer ?"
+"Lorsque l'invité cible comporte des volumes SCSI ou iSCSI, ces derniers sont "
+"clonés dans le pool de stockage par défaut. Cela se produit également "
+"lorsque le pool cible ne comporte pas suffisamment d'espace pour cloner les "
+"volumes. Voulez-vous continuer ?"
msgid ""
"This CDROM will be detached permanently and you can re-attach it. Continue "
"to detach it?"
msgstr ""
-"Ce CD-ROM va être détaché définitivement et ne pourra pas être attaché à nouveau. Continuer "
-"le détachement ?"
+"Ce CD-ROM va être détaché définitivement et ne pourra pas être attaché à "
+"nouveau. Continuer le détachement ?"
msgid "Attaching..."
-msgstr ""
-"Attachement en cours..."
+msgstr "Attachement en cours..."
msgid "Replacing..."
-msgstr ""
-"Remplacement en cours..."
+msgstr "Remplacement en cours..."
msgid "Successfully attached!"
-msgstr ""
-"L'attachement a abouti."
+msgstr "L'attachement a abouti."
msgid "Successfully replaced!"
-msgstr ""
-"Le remplacement a abouti."
+msgstr "Le remplacement a abouti."
msgid "Successfully detached!"
-msgstr ""
-"Le détachement a abouti."
+msgstr "Le détachement a abouti."
msgid ""
"This disk will be detached permanently and you can re-attach it. Continue to "
"detach it?"
msgstr ""
-"Ce disque va être détaché définitivement et ne pourra pas être attaché à nouveau. Continuer "
-"le détachement ?"
+"Ce disque va être détaché définitivement et ne pourra pas être attaché à "
+"nouveau. Continuer le détachement ?"
msgid "interface:"
-msgstr ""
-"interface :"
+msgstr "interface :"
msgid "address:"
-msgstr ""
-"adresse :"
+msgstr "adresse :"
msgid "link_type:"
-msgstr ""
-"type_lien :"
+msgstr "type_lien :"
msgid "block:"
-msgstr ""
-"bloc :"
+msgstr "bloc :"
msgid "drive_type:"
-msgstr ""
-"type_lecteur :"
+msgstr "type_lecteur :"
msgid "model:"
-msgstr ""
-"modèle :"
+msgstr "modèle :"
msgid "Affected devices:"
-msgstr ""
-"Unités concernées :"
+msgstr "Unités concernées :"
msgid "The VLAN id must be between 1 and 4094."
-msgstr ""
-"L'ID réseau local virtuel doit être compris entre 1 et 4094."
+msgstr "L'ID réseau local virtuel doit être compris entre 1 et 4094."
msgid "unavailable"
-msgstr ""
-"non disponible"
+msgstr "non disponible"
msgid ""
"This action will interrupt network connectivity for any virtual machine that "
"depend on this network."
msgstr ""
-"Cette action va interrompre la connectivité réseau pour toute machine virtuelle "
-"dépendant de ce réseau."
+"Cette action va interrompre la connectivité réseau pour toute machine "
+"virtuelle dépendant de ce réseau."
msgid "Create a network"
-msgstr ""
-"Créer un réseau"
+msgstr "Créer un réseau"
msgid ""
"This network is not persistent. Instead of stop, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"Il ne s'agit pas d'un réseau permanent. Au lieu de l'arrêter, cette action va "
-"le supprimer de manière permanente. Voulez-vous continuer ?"
+"Il ne s'agit pas d'un réseau permanent. Au lieu de l'arrêter, cette action "
+"va le supprimer de manière permanente. Voulez-vous continuer ?"
msgid ""
"The bridged VLAN tag may not work well with NetworkManager enabled. You "
"should consider disabling it."
msgstr ""
-"Il se peut que l'étiquette Réseau local virtuel local routé ne fonctionne pas correctement lorsque NetworkManager est activé. Vous "
-"devez envisager de désactiver ce dernier."
+"Il se peut que l'étiquette Réseau local virtuel local routé ne fonctionne "
+"pas correctement lorsque NetworkManager est activé. Vous devez envisager de "
+"désactiver ce dernier."
msgid ""
"This will permanently delete the storage pool. Would you like to continue?"
@@ -2222,266 +2000,214 @@ msgstr ""
"Le pool de stockage va être supprimé définitivement. Voulez-vous continuer ?"
msgid "This storage pool is empty."
-msgstr ""
-"Ce pool de stockage est vide."
+msgstr "Ce pool de stockage est vide."
msgid ""
"It will format your disk and you will loose any data in there, are you sure "
"to continue? "
msgstr ""
-"Le disque va être formaté et vous perdrez toutes les données qu'il contient. Voulez-vous vraiment "
-"continuer ? "
+"Le disque va être formaté et vous perdrez toutes les données qu'il contient. "
+"Voulez-vous vraiment continuer ? "
msgid "SCSI Fibre Channel"
-msgstr ""
-"Fibre Channel SCSI"
+msgstr "Fibre Channel SCSI"
msgid "No SCSI adapters found."
-msgstr ""
-"Aucun adaptateur SCSI trouvé."
+msgstr "Aucun adaptateur SCSI trouvé."
msgid "Loading iSCSI targets..."
-msgstr ""
-"Chargement des cibles iSCSI..."
+msgstr "Chargement des cibles iSCSI..."
msgid "No iSCSI found. Please input one."
-msgstr ""
-"iSCSI introuvable. Spécifiez-le."
+msgstr "iSCSI introuvable. Spécifiez-le."
msgid "Failed to load iSCSI targets."
-msgstr ""
-"Echec du chargement des cibles iSCSI."
+msgstr "Echec du chargement des cibles iSCSI."
msgid "The storage pool name can not be blank."
-msgstr ""
-"Le nom du pool de stockage ne peut pas être vide."
+msgstr "Le nom du pool de stockage ne peut pas être vide."
msgid "The storage pool path can not be blank."
-msgstr ""
-"Le chemin du pool de stockage ne peut pas être vide."
+msgstr "Le chemin du pool de stockage ne peut pas être vide."
msgid "NFS server mount path can not be blank."
-msgstr ""
-"Le chemin de montage du serveur NFS ne peut pas être vide."
+msgstr "Le chemin de montage du serveur NFS ne peut pas être vide."
msgid "Invalid NFS mount path."
-msgstr ""
-"Chemin de montage NFS non valide."
+msgstr "Chemin de montage NFS non valide."
msgid "No logical device selected."
-msgstr ""
-"Aucune unité logique sélectionnée."
+msgstr "Aucune unité logique sélectionnée."
msgid "The iSCSI target can not be blank."
-msgstr ""
-"La cible iSCSI ne peut pas être vide."
+msgstr "La cible iSCSI ne peut pas être vide."
msgid "Server name can not be blank."
-msgstr ""
-"Le nom du serveur ne peut pas être vide."
+msgstr "Le nom du serveur ne peut pas être vide."
msgid "This is not a valid Server Name or IP. Please, modify it."
msgstr ""
-"Il ne s'agit pas d'un nom de serveur ou d'une adresse IP valide. Modifiez cet élément."
+"Il ne s'agit pas d'un nom de serveur ou d'une adresse IP valide. Modifiez "
+"cet élément."
msgid "Looking for available partitions ..."
-msgstr ""
-"Recherche des partitions disponibles..."
+msgstr "Recherche des partitions disponibles..."
msgid "No available partitions found."
-msgstr ""
-"Aucune partition disponible trouvée."
+msgstr "Aucune partition disponible trouvée."
msgid ""
"This storage pool is not persistent. Instead of deactivate, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"Il ne s'agit pas d'un pool de stockage permanent. Au lieu de le désactiver, cette action va "
-"le supprimer de manière permanente. Voulez-vous continuer ?"
+"Il ne s'agit pas d'un pool de stockage permanent. Au lieu de le désactiver, "
+"cette action va le supprimer de manière permanente. Voulez-vous continuer ?"
msgid "Unable to retrieve partitions information."
-msgstr ""
-"Impossible d'extraire les informations relatives aux partitions. "
+msgstr "Impossible d'extraire les informations relatives aux partitions. "
msgid "In progress..."
-msgstr ""
-"En cours..."
+msgstr "En cours..."
msgid "Failed!"
-msgstr ""
-"Echec !"
+msgstr "Echec !"
msgid "CDROM path needs to be a valid local/remote path and cannot be blank."
msgstr ""
-"Le chemin de CD-ROM doit être un chemin local/distant et ne peut pas être à blanc."
+"Le chemin de CD-ROM doit être un chemin local/distant et ne peut pas être à "
+"blanc."
msgid "Disk pool or volume cannot be blank."
-msgstr ""
-"Le pool de stockage sur disque ou le volume ne peut pas être à blanc."
+msgstr "Le pool de stockage sur disque ou le volume ne peut pas être à blanc."
msgid "Peers"
-msgstr ""
-"Homologues"
+msgstr "Homologues"
msgid "Searching"
-msgstr ""
-"Recherche"
+msgstr "Recherche"
msgid "No peers found."
-msgstr ""
-"Homologue introuvable."
+msgstr "Homologue introuvable."
msgid "Help"
-msgstr ""
-"Aide"
+msgstr "Aide"
msgid "About"
-msgstr ""
-"A propos de"
+msgstr "A propos de"
msgid "Log out"
-msgstr ""
-"Déconnexion"
+msgstr "Déconnexion"
msgid "Version:"
-msgstr ""
-"Version :"
+msgstr "Version :"
msgid "Session timeout, please re-login."
-msgstr ""
-"Délai d'attente de session dépassé, veuillez vous reconnecter."
+msgstr "Délai d'attente de session dépassé, veuillez vous reconnecter."
msgid "User Name"
-msgstr ""
-"Nom d'utilisateur"
+msgstr "Nom d'utilisateur"
msgid "Password"
-msgstr ""
-"Mot de passe"
+msgstr "Mot de passe"
msgid "Generate a New Debug Report"
-msgstr ""
-"Générer un nouveau rapport de débogage"
+msgstr "Générer un nouveau rapport de débogage"
msgid "Report Name"
-msgstr ""
-"Nom du rapport"
+msgstr "Nom du rapport"
msgid ""
"The name used to identify the report. If omitted, a name will be chosen "
"based on current time. Name can contain: letters, digits, underscore (\"_\") "
"and hyphen (\"-\")."
msgstr ""
-"Nom utilisé pour identifier le rapport. S'il est omis, un nom sera choisi "
-"en fonction de l'heure en cours. Le nom peut contenir : des lettres, chiffres, trait de soulignement (\"_\") "
-"et tiret (\"-\")."
+"Nom utilisé pour identifier le rapport. S'il est omis, un nom sera choisi en "
+"fonction de l'heure en cours. Le nom peut contenir : des lettres, chiffres, "
+"trait de soulignement (\"_\") et tiret (\"-\")."
msgid "Rename a Debug Report"
-msgstr ""
-"Renommer un rapport de débogage"
+msgstr "Renommer un rapport de débogage"
msgid ""
"The name used to identify the report. Name can contain: letters, digits and "
"hyphen (\"-\")."
msgstr ""
-"Nom utilisé pour identifier le rapport. Il peut contenir : des lettres, chiffres et "
-"tiret (\"-\")."
+"Nom utilisé pour identifier le rapport. Il peut contenir : des lettres, "
+"chiffres et tiret (\"-\")."
msgid "Submit"
-msgstr ""
-"Soumettre"
+msgstr "Soumettre"
msgid "Add a Repository"
-msgstr ""
-"Ajouter un référentiel"
+msgstr "Ajouter un référentiel"
msgid "Identifier"
-msgstr ""
-"Identificateur"
+msgstr "Identificateur"
msgid "Single word, unique identifier for the repository."
-msgstr ""
-"Mot unique, identificateur unique pour le référentiel."
+msgstr "Mot unique, identificateur unique pour le référentiel."
msgid "Textual name for the repository."
-msgstr ""
-"Nom textuel pour le référentiel."
+msgstr "Nom textuel pour le référentiel."
msgid "URL"
-msgstr ""
-"URL"
+msgstr "URL"
msgid "Required Field"
-msgstr ""
-"Zone obligatoire"
+msgstr "Zone obligatoire"
msgid "URL to the repository. Supported protocols are http, ftp, and file."
msgstr ""
-"Adresse URL pour le référentiel. Les protocoles pris en charge sont http, ftp, et file."
+"Adresse URL pour le référentiel. Les protocoles pris en charge sont http, "
+"ftp, et file."
msgid "Repository is a mirror"
-msgstr ""
-"Le référentiel est un miroir"
+msgstr "Le référentiel est un miroir"
msgid "Distribution"
-msgstr ""
-"Distribution"
+msgstr "Distribution"
msgid "Distribution of the DEB repository."
-msgstr ""
-"Distribution du référentiel DEB."
+msgstr "Distribution du référentiel DEB."
msgid "Components"
-msgstr ""
-"Composants"
+msgstr "Composants"
msgid "List of components in DEB repository."
-msgstr ""
-"Liste des composants dans le référentiel DEB."
+msgstr "Liste des composants dans le référentiel DEB."
msgid "Edit Repository"
-msgstr ""
-"Editer le référentiel"
+msgstr "Editer le référentiel"
msgid "Mirror List URL"
-msgstr ""
-"URL liste miroir"
+msgstr "URL liste miroir"
msgid "Yes"
-msgstr ""
-"Oui"
+msgstr "Oui"
msgid "No"
-msgstr ""
-"Non"
+msgstr "Non"
msgid "Add a Volume to Storage Pool"
-msgstr ""
-"Ajouter un volume au pool de stockage"
+msgstr "Ajouter un volume au pool de stockage"
msgid "Fetch from remote URL"
-msgstr ""
-"Extraire de l'URL distante"
+msgstr "Extraire de l'URL distante"
msgid "Enter the remote URL here."
-msgstr ""
-"Indiquez ici l'URL distante."
+msgstr "Indiquez ici l'URL distante."
msgid "Upload a file"
-msgstr ""
-"Télécharger un fichier"
+msgstr "Télécharger un fichier"
msgid "Choose the file you want to upload."
-msgstr ""
-"Sélectionnez le fichier à télécharger."
+msgstr "Sélectionnez le fichier à télécharger."
msgid "Define a New Storage Pool"
-msgstr ""
-"Définir un nouveau pool de stockage"
+msgstr "Définir un nouveau pool de stockage"
msgid "Storage Pool Name"
-msgstr ""
-"Nom du pool de stockage"
+msgstr "Nom du pool de stockage"
msgid ""
"The name used to identify the storage pools, and it should not be empty."
@@ -2489,353 +2215,268 @@ msgstr ""
"Nom utilisé pour identifier les pools de stockage. Ne doit pas être vide."
msgid "Storage Pool Type"
-msgstr ""
-"Type de pool de stockage"
+msgstr "Type de pool de stockage"
msgid "Storage Path"
-msgstr ""
-"Chemin de stockage"
+msgstr "Chemin de stockage"
msgid ""
"The path of the Storage Pool. Each Storage Pool must have a unique path."
msgstr ""
-"Chemin du pool de stockage. Chaque pool de stockage doit avoir un chemin unique."
+"Chemin du pool de stockage. Chaque pool de stockage doit avoir un chemin "
+"unique."
msgid ""
"Kimchi will try to create the directory when it does not already exist in "
"your system."
msgstr ""
-"Kimchi va tenter de créer le répertoire s'il n'en existe pas déjà un "
-"sur votre système."
+"Kimchi va tenter de créer le répertoire s'il n'en existe pas déjà un sur "
+"votre système."
msgid "NFS Server IP"
-msgstr ""
-"IP du serveur NFS"
+msgstr "IP du serveur NFS"
msgid "NFS server IP or hostname. It can be input or chosen from history."
msgstr ""
-"IP ou nom d'hôte du serveur NFS. Peut être entré ou sélectionné depuis l'historique."
+"IP ou nom d'hôte du serveur NFS. Peut être entré ou sélectionné depuis "
+"l'historique."
msgid "NFS Path"
-msgstr ""
-"Chemin NFS"
+msgstr "Chemin NFS"
msgid "The NFS exported path on NFS server."
-msgstr ""
-"Chemin NFS exporté ou serveur NFS."
+msgstr "Chemin NFS exporté ou serveur NFS."
msgid "Device path"
-msgstr ""
-"Chemin d'unité"
+msgstr "Chemin d'unité"
msgid "iSCSI Server"
-msgstr ""
-"Serveur iSCSI"
+msgstr "Serveur iSCSI"
msgid "iSCSI server IP or hostname. It should not be empty."
-msgstr ""
-"IP ou nom d'hôte du serveur iSCSI. Ne doit pas être vide."
+msgstr "IP ou nom d'hôte du serveur iSCSI. Ne doit pas être vide."
msgid "Server"
-msgstr ""
-"Serveur"
+msgstr "Serveur"
msgid "Port"
-msgstr ""
-"Port"
+msgstr "Port"
msgid "Target"
-msgstr ""
-"Cible"
+msgstr "Cible"
msgid "The iSCSI target on iSCSI server"
-msgstr ""
-"Cible iSCSI sur le serveur iSCSI"
+msgstr "Cible iSCSI sur le serveur iSCSI"
msgid "Add iSCSI Authentication"
-msgstr ""
-"Ajouter l'authentification iSCSI"
+msgstr "Ajouter l'authentification iSCSI"
msgid "iSCSI Authentication"
-msgstr ""
-"Authentification iSCSI"
+msgstr "Authentification iSCSI"
msgid "SCSI Adapter"
-msgstr ""
-"Adaptateur SCSI"
+msgstr "Adaptateur SCSI"
msgid "Please, wait..."
-msgstr ""
-"Veuillez patienter..."
+msgstr "Veuillez patienter..."
msgid "Add Template"
-msgstr ""
-"Ajouter un modèle"
+msgstr "Ajouter un modèle"
msgid "Where is the source media for this template? "
-msgstr ""
-"Où se trouve le support source pour ce modèle ? "
+msgstr "Où se trouve le support source pour ce modèle ? "
msgid "Local ISO Image"
-msgstr ""
-"Image ISO locale"
+msgstr "Image ISO locale"
msgid "Local Image File"
-msgstr ""
-"Fichier image local"
+msgstr "Fichier image local"
msgid "Remote ISO Image"
-msgstr ""
-"Image ISO distante"
+msgstr "Image ISO distante"
msgid "Search ISOs"
-msgstr ""
-"Recherche d'ISO"
+msgstr "Recherche d'ISO"
msgid "The following ISOs are available:"
-msgstr ""
-"Les images ISO suivantes sont disponibles :"
+msgstr "Les images ISO suivantes sont disponibles :"
msgid "OS: "
-msgstr ""
-"SE : "
+msgstr "SE : "
msgid "Version: "
-msgstr ""
-"Version : "
+msgstr "Version : "
msgid "Size: "
-msgstr ""
-"Taille : "
+msgstr "Taille : "
msgid "Search more ISOs"
-msgstr ""
-"Rechercher d'autres images ISO"
+msgstr "Rechercher d'autres images ISO"
msgid "Create Templates from Selected ISO"
-msgstr ""
-"Créer des modèles à partir de l'image ISO sélectionnée"
+msgstr "Créer des modèles à partir de l'image ISO sélectionnée"
msgid "I want to use a specific ISO file"
-msgstr ""
-"Je souhaite utiliser un fichier ISO spécifique"
+msgstr "Je souhaite utiliser un fichier ISO spécifique"
msgid "Loading default remote ISOs ..."
-msgstr ""
-"Chargement d'ISO distants par défaut..."
+msgstr "Chargement d'ISO distants par défaut..."
msgid "Arch: "
-msgstr ""
-"Arch : "
+msgstr "Arch : "
msgid "I want to use a custom URL"
-msgstr ""
-"Je souhaite utiliser une URL personnalisée"
+msgstr "Je souhaite utiliser une URL personnalisée"
msgid "Edit Template"
-msgstr ""
-"Editer le modèle"
+msgstr "Editer le modèle"
msgid "Processor"
-msgstr ""
-"Processeur"
+msgstr "Processeur"
msgid "CDROM"
-msgstr ""
-"CD-ROM"
+msgstr "CD-ROM"
msgid "Image File"
-msgstr ""
-"Fichier image"
+msgstr "Fichier image"
msgid "Graphics"
-msgstr ""
-"Graphiques"
+msgstr "Graphiques"
msgid "Disk(GB)"
-msgstr ""
-"Disque (Go)"
+msgstr "Disque (Go)"
msgid "Disk Format"
-msgstr ""
-"Format de disque"
+msgstr "Format de disque"
msgid "CPU Number"
-msgstr ""
-"Nombre d'UC"
+msgstr "Nombre d'UC"
msgid "Manually set CPU topology"
-msgstr ""
-"Définir manuellement la topologie d'UC"
+msgstr "Définir manuellement la topologie d'UC"
msgid "Cores"
-msgstr ""
-"Coeurs"
+msgstr "Coeurs"
msgid "Threads"
-msgstr ""
-"Unités d'exécution"
+msgstr "Unités d'exécution"
msgid "CPU"
-msgstr ""
-"UC"
+msgstr "UC"
msgid "Disk I/O"
-msgstr ""
-"E-S disque"
+msgstr "E-S disque"
msgid "Network I/O"
-msgstr ""
-"E-S réseau"
+msgstr "E-S réseau"
msgid "Livetile"
-msgstr ""
-"Livetile"
+msgstr "Livetile"
msgid "No guests found."
-msgstr ""
-"Aucun invité trouvé."
+msgstr "Aucun invité trouvé."
msgid "Shut down"
-msgstr ""
-"Arrêter"
+msgstr "Arrêter"
msgid "Restart"
-msgstr ""
-"Redémarrer"
+msgstr "Redémarrer"
msgid "Basic Information"
-msgstr ""
-"Informations de base"
+msgstr "Informations de base"
msgid "OS Distro"
-msgstr ""
-"SE distribution"
+msgstr "SE distribution"
msgid "OS Code Name"
-msgstr ""
-"Nom de code SE"
+msgstr "Nom de code SE"
msgid "CPU(s)"
-msgstr ""
-"UC"
+msgstr "UC"
msgid "System Statistics"
-msgstr ""
-"Statistiques système"
+msgstr "Statistiques système"
msgid "Update Progress"
-msgstr ""
-"Progression de la mise à jour"
+msgstr "Progression de la mise à jour"
msgid "Network Name"
-msgstr ""
-"Nom du réseau"
+msgstr "Nom du réseau"
msgid "State"
-msgstr ""
-"Etat"
+msgstr "Etat"
msgid "Network Type"
-msgstr ""
-"Type de réseau"
+msgstr "Type de réseau"
msgid "Address Space"
-msgstr ""
-"Espace adresse"
+msgstr "Espace adresse"
msgid "Name should not contain '/' and '\"'."
-msgstr ""
-"Le nom ne doit pas contenir '/' et '\"'."
+msgstr "Le nom ne doit pas contenir '/' et '\"'."
msgid "Isolated: no external network connection"
-msgstr ""
-"Isolé : aucune connexion réseau externe"
+msgstr "Isolé : aucune connexion réseau externe"
msgid "NAT: outbound physical network connection only"
-msgstr ""
-"NAT : connexion réseau physique sortante uniquement"
+msgstr "NAT : connexion réseau physique sortante uniquement"
msgid "Bridged: Virtual machines are connected to physical network directly"
-msgstr ""
-"Routé : machines virtuelles directement connectées au réseau physique"
+msgstr "Routé : machines virtuelles directement connectées au réseau physique"
msgid "(No interfaces found)"
-msgstr ""
-"(Interface introuvable)"
+msgstr "(Interface introuvable)"
msgid "Destination"
-msgstr ""
-"Destination"
+msgstr "Destination"
msgid "Enable VLAN"
-msgstr ""
-"Activer le réseau local virtuel"
+msgstr "Activer le réseau local virtuel"
msgid "VLAN ID"
-msgstr ""
-"ID réseau local virtuel"
+msgstr "ID réseau local virtuel"
msgid "Stop"
-msgstr ""
-"Arrêter"
+msgstr "Arrêter"
msgid "%Used"
-msgstr ""
-"%Util"
+msgstr "%Util"
msgid "Location"
-msgstr ""
-"Emplacement"
+msgstr "Emplacement"
msgid "Capacity"
-msgstr ""
-"Capacité"
+msgstr "Capacité"
msgid "Allocated"
-msgstr ""
-"Alloué"
+msgstr "Alloué"
msgid "active"
-msgstr ""
-"actif"
+msgstr "actif"
msgid "inactive"
-msgstr ""
-"inactif"
+msgstr "inactif"
msgid "Deactivate"
-msgstr ""
-"Désactiver"
+msgstr "Désactiver"
msgid "Activate"
-msgstr ""
-"Activer"
+msgstr "Activer"
msgid "Add Volume"
-msgstr ""
-"Ajouter un volume"
+msgstr "Ajouter un volume"
msgid "Extend"
-msgstr ""
-"Extension"
+msgstr "Extension"
msgid "Undefine"
-msgstr ""
-"Annuler définition"
+msgstr "Annuler définition"
msgid "Format"
-msgstr ""
-"Format"
+msgstr "Format"
msgid "Allocation"
-msgstr ""
-"Allocation"
+msgstr "Allocation"
msgid "No templates found."
-msgstr ""
-"Aucun modèle trouvé."
-
-# ENGL1SH_VERS10N 28617_40 DO NOT REMOVE OR CHANGE THIS LINE
-# T9N_SRC_ID 92
-# T9N_SH1P_STR1NG KV310AAP001 1
+msgstr "Aucun modèle trouvé."
diff --git a/po/it_IT.po b/po/it_IT.po
index 50dc7c8..5d0b407 100644
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -6,103 +6,91 @@ msgid ""
msgstr ""
"Project-Id-Version: kimchi 0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-24 09:39-0300\n"
+"POT-Creation-Date: 2015-08-21 09:52-0300\n"
"PO-Revision-Date: 2013-07-11 17:32-0400\n"
"Last-Translator: Crístian Viana <vianac(a)linux.vnet.ibm.com>\n"
"Language-Team: English\n"
-"Language: en_US\n"
+"Language: it_IT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
-"Plural-Forms: nplurals=2; plural=n != 1;"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
#, python-format
msgid "Unknown parameter %(value)s"
-msgstr ""
-"Parametro sconosciuto %(value)s"
+msgstr "Parametro sconosciuto %(value)s"
#, python-format
msgid "Delete is not allowed for %(resource)s"
-msgstr ""
-"Eliminazione non consentita per %(resource)s"
+msgstr "Eliminazione non consentita per %(resource)s"
#, python-format
msgid "%(resource)s does not implement update method"
-msgstr ""
-"%(resource)s non implementa il metodo di aggiornamento"
+msgstr "%(resource)s non implementa il metodo di aggiornamento"
#, python-format
msgid "Create is not allowed for %(resource)s"
-msgstr ""
-"Creazione non consentita per %(resource)s"
+msgstr "Creazione non consentita per %(resource)s"
msgid "Unable to parse JSON request"
-msgstr ""
-"Impossibile analizzare la richiesta JSON"
+msgstr "Impossibile analizzare la richiesta JSON"
msgid "This API only supports JSON"
-msgstr ""
-"L'API supporta solo JSON"
+msgstr "L'API supporta solo JSON"
#, python-format
msgid "Parameters does not match requirement in schema: %(err)s"
-msgstr ""
-"I parametri non corrispondono ai requisiti nello schema: %(err)s"
+msgstr "I parametri non corrispondono ai requisiti nello schema: %(err)s"
msgid "You don't have permission to perform this operation."
-msgstr ""
-"Non si dispone dell'autorizzazione per eseguire questa operazione. "
+msgstr "Non si dispone dell'autorizzazione per eseguire questa operazione. "
msgid "Datastore is not initiated in the model object."
-msgstr ""
-"Archivio dati non inizializzato nell'oggetto modello."
+msgstr "Archivio dati non inizializzato nell'oggetto modello."
#, python-format
msgid "Unable to start task due error: %(err)s"
-msgstr ""
-"Impossibile avviare l'attività a causa dell'errore: %(err)s"
+msgstr "Impossibile avviare l'attività a causa dell'errore: %(err)s"
#, python-format
msgid "Timeout of %(seconds)s seconds expired while running task '%(task)s."
msgstr ""
-"È stato raggiunto il timeout di %(seconds)s secondi durante l'esecuzione dell'attività '%(task)s."
+"È stato raggiunto il timeout di %(seconds)s secondi durante l'esecuzione "
+"dell'attività '%(task)s."
#, python-format
msgid "Authentication failed for user '%(username)s'. [Error code: %(code)s]"
msgstr ""
-"Autenticazione non riuscita per l'utente '%(username)s'. [Codice di errore: %(code)s]"
+"Autenticazione non riuscita per l'utente '%(username)s'. [Codice di errore: "
+"%(code)s]"
msgid "You are not authorized to access Kimchi"
-msgstr ""
-"Non si dispone dell'autorizzazione ad accedere a Kimchi"
+msgstr "Non si dispone dell'autorizzazione ad accedere a Kimchi"
#, python-format
msgid "Specify %(item)s to login into Kimchi"
-msgstr ""
-"Specificare %(item)s per accedere a Kimchi"
+msgstr "Specificare %(item)s per accedere a Kimchi"
#, python-format
msgid "User %(user_id)s not found with given LDAP settings."
-msgstr ""
-"Utente %(user_id)s non trovato con le impostazioni LDAP fornite. "
+msgstr "Utente %(user_id)s non trovato con le impostazioni LDAP fornite. "
#, python-format
msgid "Invalid LDAP configuration: %(item)s : %(value)s"
-msgstr ""
-"Configurazione LDAP non valida: %(item)s : %(value)s"
+msgstr "Configurazione LDAP non valida: %(item)s : %(value)s"
msgid "Unknown \"_cap\" specified"
-msgstr ""
-"Specificato \"_cap\" sconosciuto"
+msgstr "Specificato \"_cap\" sconosciuto"
msgid "\"_passthrough\" should be \"true\" or \"false\""
-msgstr ""
-"\"_passthrough\" deve essere \"true\" o \"false\""
+msgstr "\"_passthrough\" deve essere \"true\" o \"false\""
msgid "\"_passthrough_affected_by\" should be a device name string"
-msgstr ""
-"\"_passthrough_affected_by\" deve essere una stringa nome dispositivo"
+msgstr "\"_passthrough_affected_by\" deve essere una stringa nome dispositivo"
+
+msgid "\"_available_only\" should be \"true\" or \"false\""
+msgstr "\"_available_only\" deve essere \"true\" o \"false\""
#, python-format
msgid "Error while getting block devices. Details: %(err)s"
@@ -112,63 +100,59 @@ msgstr ""
#, python-format
msgid "Error while getting block device information for %(device)s."
msgstr ""
-"Errore durante il richiamo delle informazioni sul dispositivo del blocco per %(device)s."
+"Errore durante il richiamo delle informazioni sul dispositivo del blocco per "
+"%(device)s."
#, python-format
msgid "Unable to find distro file: %(filename)s"
-msgstr ""
-"Impossibile trovare il file distro: %(filename)s"
+msgstr "Impossibile trovare il file distro: %(filename)s"
#, python-format
msgid ""
"Unable to parse distro file: %(filename)s. Make sure, it is a JSON file."
msgstr ""
-"Impossibile analizzare il file distro: %(filename)s. Verificare che sia un file JSON."
+"Impossibile analizzare il file distro: %(filename)s. Verificare che sia un "
+"file JSON."
#, python-format
msgid "Unable to login to iSCSI host target %(portal)s. Details: %(err)s"
msgstr ""
-"Impossibile accedere alla destinazione host iSCSI %(portal)s. Dettagli: %(err)s"
+"Impossibile accedere alla destinazione host iSCSI %(portal)s. Dettagli: "
+"%(err)s"
#, python-format
msgid "Unable to login to iSCSI host %(host)s target %(target)s"
-msgstr ""
-"Impossibile accedere alla destinazione %(target)s host %(host)s iSCSI"
+msgstr "Impossibile accedere alla destinazione %(target)s host %(host)s iSCSI"
#, python-format
msgid "Unable to find ISO file %(filename)s"
-msgstr ""
-"Impossibile trovare il file ISO %(filename)s"
+msgstr "Impossibile trovare il file ISO %(filename)s"
#, python-format
msgid "The ISO file %(filename)s is not bootable"
-msgstr ""
-"Il file ISO %(filename)s non è avviabile"
+msgstr "Il file ISO %(filename)s non è avviabile"
#, python-format
msgid "The ISO file %(filename)s does not have a valid El Torito boot record"
-msgstr ""
-"Il file ISO %(filename)s non ha un record di avvio El Torito valido"
+msgstr "Il file ISO %(filename)s non ha un record di avvio El Torito valido"
#, python-format
msgid "Invalid El Torito validation entry in ISO %(filename)s"
-msgstr ""
-"Voce di convalida El Torito non valida in ISO %(filename)s"
+msgstr "Voce di convalida El Torito non valida in ISO %(filename)s"
#, python-format
msgid "Invalid El Torito boot indicator in ISO %(filename)s"
-msgstr ""
-"Indicatore di avvio El Torito non valido in ISO %(filename)s"
+msgstr "Indicatore di avvio El Torito non valido in ISO %(filename)s"
#, python-format
msgid "Unexpected volume type for primary volume in ISO %(filename)s"
-msgstr ""
-"Tipo di volume imprevisto per il volume primario in ISO %(filename)s"
+msgstr "Tipo di volume imprevisto per il volume primario in ISO %(filename)s"
#, python-format
msgid "Bad format while reading volume descriptor in ISO %(filename)s"
msgstr ""
-"Formato non corretto durante la lettura del descrittore volume in ISO %(filename)s"
+"Formato non corretto durante la lettura del descrittore volume in ISO "
+"%(filename)s"
#, python-format
msgid ""
@@ -178,50 +162,46 @@ msgid ""
"'%(user)s' to the ISO path group, or (not recommended) 'chmod -R o+x "
"'path_to_iso'.Details: %(err)s"
msgstr ""
-"L'hypervisor non dispone dell'autorizzazione per utilizzare questo ISO %(filename)s. "
-"Spostarlo in /var/lib/libvirt o impostare l'autorizzazione di ricerca "
-"sugli elenchi di controllo di accesso file per l'utente '%(user)s' se possibile, oppure aggiungere "
-"'%(user)s' al gruppo percorso ISO oppure (non consigliato) 'chmod -R o+x "
-"'path_to_iso'. Dettagli: %(err)s"
+"L'hypervisor non dispone dell'autorizzazione per utilizzare questo ISO "
+"%(filename)s. Spostarlo in /var/lib/libvirt o impostare l'autorizzazione di "
+"ricerca sugli elenchi di controllo di accesso file per l'utente '%(user)s' "
+"se possibile, oppure aggiungere '%(user)s' al gruppo percorso ISO oppure "
+"(non consigliato) 'chmod -R o+x 'path_to_iso'. Dettagli: %(err)s"
msgid "An error occurred when probing image OS information."
msgstr ""
"Si è verificato un errore durante l'analisi delle informazioni SO immagine."
msgid "No OS information found in given image."
-msgstr ""
-"Nessuna informazione SO trovata nell'immagine fornita."
+msgstr "Nessuna informazione SO trovata nell'immagine fornita."
#, python-format
msgid "Unable to read image file %(filename)s"
-msgstr ""
-"Impossibile leggere il file immagine %(filename)s"
+msgstr "Impossibile leggere il file immagine %(filename)s"
#, python-format
msgid ""
"Image file must be an existing file on system. %(filename)s is not a valid "
"input."
msgstr ""
-"Il file immagine deve essere un file esistente sul sistema. %(filename)s non è un valido "
-"input."
+"Il file immagine deve essere un file esistente sul sistema. %(filename)s non "
+"è un valido input."
#, python-format
msgid "Virtual machine %(name)s already exists"
-msgstr ""
-"Macchina virtuale %(name)s già esistente"
+msgstr "Macchina virtuale %(name)s già esistente"
#, python-format
msgid "Virtual machine %(name)s does not exist"
-msgstr ""
-"La macchina virtuale %(name)s non esiste"
+msgstr "La macchina virtuale %(name)s non esiste"
#, python-format
msgid ""
"Unable to rename virtual machine %(name)s. The name %(new_name)s is already "
"in use or the virtual machine is not powered off."
msgstr ""
-"Impossibile ridenominare la macchina virtuale %(name)s. Il nome %(new_name)s è già "
-"in uso o la macchina virtuale non è spenta."
+"Impossibile ridenominare la macchina virtuale %(name)s. Il nome %(new_name)s "
+"è già in uso o la macchina virtuale non è spenta."
#, python-format
msgid "Unable to retrieve screenshot for stopped virtual machine %(name)s"
@@ -229,8 +209,7 @@ msgstr ""
"Impossibile richiamare l'immagine per la macchina virtuale arrestata %(name)s"
msgid "Remote ISO image is not supported by this server."
-msgstr ""
-"L'immagine ISO remota non è supportata da questo server."
+msgstr "L'immagine ISO remota non è supportata da questo server."
#, python-format
msgid "Screenshot is not supported on virtual machine %(name)s"
@@ -239,8 +218,7 @@ msgstr ""
#, python-format
msgid "Unable to create virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Impossibile creare la macchina virtuale %(name)s. Dettagli: %(err)s"
+msgstr "Impossibile creare la macchina virtuale %(name)s. Dettagli: %(err)s"
#, python-format
msgid "Unable to update virtual machine %(name)s. Details: %(err)s"
@@ -254,8 +232,7 @@ msgstr ""
#, python-format
msgid "Unable to connect to powered off virtual machine %(name)s."
-msgstr ""
-"Impossibile connettere la macchina virtuale %(name)s."
+msgstr "Impossibile connettere la macchina virtuale %(name)s."
msgid "Virtual machine name must be a string without slashes (/)"
msgstr ""
@@ -263,8 +240,7 @@ msgstr ""
#, python-format
msgid "Invalid template URI %(value)s specified for virtual machine"
-msgstr ""
-"URI modello non valido %(value)s specificato per la macchina virtuale"
+msgstr "URI modello non valido %(value)s specificato per la macchina virtuale"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for virtual machine"
@@ -272,31 +248,26 @@ msgstr ""
"URI pool di memoria non valido %(value)s specificato per la macchina virtuale"
msgid "Supported virtual machine graphics are Spice or VNC"
-msgstr ""
-"I grafici macchina virtuale supportati sono Spice o VNC"
+msgstr "I grafici macchina virtuale supportati sono Spice o VNC"
msgid "Graphics address to listen on must be IPv4 or IPv6"
msgstr ""
"L'indirizzo dei grafici su cui rimanere in ascolto deve essere IPv4 o IPv6"
msgid "Specify a template to create a virtual machine from"
-msgstr ""
-"Specificare un modello da cui creare una macchina virtuale"
+msgstr "Specificare un modello da cui creare una macchina virtuale"
#, python-format
msgid "Unable to start virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Impossibile avviare la macchina virtuale %(name)s. Dettagli: %(err)s"
+msgstr "Impossibile avviare la macchina virtuale %(name)s. Dettagli: %(err)s"
#, python-format
msgid "Unable to power off virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Impossibile spegnere la macchina virtuale %(name)s. Dettagli: %(err)s"
+msgstr "Impossibile spegnere la macchina virtuale %(name)s. Dettagli: %(err)s"
#, python-format
msgid "Unable to delete virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Impossibile eliminare la macchina virtuale %(name)s. Dettagli: %(err)s"
+msgstr "Impossibile eliminare la macchina virtuale %(name)s. Dettagli: %(err)s"
#, python-format
msgid "Unable to reset virtual machine %(name)s. Details: %(err)s"
@@ -304,41 +275,35 @@ msgstr ""
"Impossibile reimpostare la macchina virtuale %(name)s. Dettagli: %(err)s"
msgid "User name list must be an array"
-msgstr ""
-"L'elenco di nomi utente deve essere un array"
+msgstr "L'elenco di nomi utente deve essere un array"
msgid "User name must be a string"
-msgstr ""
-"Il nome utente deve essere una stringa"
+msgstr "Il nome utente deve essere una stringa"
msgid "Group name list must be an array"
-msgstr ""
-"L'elenco di nomi gruppo deve essere un array"
+msgstr "L'elenco di nomi gruppo deve essere un array"
msgid "Group name must be a string"
-msgstr ""
-"Il nome gruppo deve essere una stringa"
+msgstr "Il nome gruppo deve essere una stringa"
#, python-format
msgid "User(s) '%(users)s' do not exist"
-msgstr ""
-"L'utente o gli utenti '%(users)s' non esistono"
+msgstr "L'utente o gli utenti '%(users)s' non esistono"
#, python-format
msgid "Group(s) '%(groups)s' do not exist"
-msgstr ""
-"Il gruppo o i gruppi '%(groups)s' non esistono"
+msgstr "Il gruppo o i gruppi '%(groups)s' non esistono"
#, python-format
msgid "Unable to shutdown virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Impossibile arrestare la macchina virtuale %(name)s. Dettagli: %(err)s"
+msgstr "Impossibile arrestare la macchina virtuale %(name)s. Dettagli: %(err)s"
#, python-format
msgid ""
"Unable to get access metadata of virtual machine %(name)s. Details: %(err)s"
msgstr ""
-"Impossibile ottenere i metadati di accesso della macchina virtuale %(name)s. Dettagli: %(err)s"
+"Impossibile ottenere i metadati di accesso della macchina virtuale %(name)s. "
+"Dettagli: %(err)s"
msgid "The guest console password must be a string."
msgstr ""
@@ -346,12 +311,14 @@ msgstr ""
msgid "The life time for the guest console password must be a number."
msgstr ""
-"La durata per la password della console della macchina guest deve essere un numero. "
+"La durata per la password della console della macchina guest deve essere un "
+"numero. "
#, python-format
msgid "Virtual machine '%(name)s' must be stopped before cloning it."
msgstr ""
-"La macchina virtuale '%(name)s' deve essere arrestata prima di poterla clonare. "
+"La macchina virtuale '%(name)s' deve essere arrestata prima di poterla "
+"clonare. "
#, python-format
msgid "Insufficient disk space to clone virtual machine '%(name)s'"
@@ -360,8 +327,7 @@ msgstr ""
#, python-format
msgid "Unable to clone VM '%(name)s'. Details: %(err)s"
-msgstr ""
-"Impossibile clonare la VM '%(name)s'. Dettagli: %(err)s"
+msgstr "Impossibile clonare la VM '%(name)s'. Dettagli: %(err)s"
#, python-format
msgid "Invalid operation for non-persistent virtual machine %(name)s"
@@ -370,46 +336,40 @@ msgstr ""
#, python-format
msgid "Cannot suspend VM '%(name)s' because it is not running."
-msgstr ""
-"Impossibile sospendere la VM '%(name)s' perché non è in esecuzione. "
+msgstr "Impossibile sospendere la VM '%(name)s' perché non è in esecuzione. "
#, python-format
msgid "Unable to suspend VM '%(name)s'. Details: %(err)s"
-msgstr ""
-"Impossibile sospendere la VM '%(name)s'. Dettagli: %(err)s"
+msgstr "Impossibile sospendere la VM '%(name)s'. Dettagli: %(err)s"
#, python-format
msgid "Cannot resume VM '%(name)s' because it is not paused."
-msgstr ""
-"Impossibile riprendere la VM '%(name)s' perché non è in pausa. "
+msgstr "Impossibile riprendere la VM '%(name)s' perché non è in pausa. "
#, python-format
msgid "Unable to resume VM '%(name)s'. Details: %(err)s"
-msgstr ""
-"Impossibile riprendere la VM '%(name)s'. Dettagli: %(err)s"
+msgstr "Impossibile riprendere la VM '%(name)s'. Dettagli: %(err)s"
msgid "Memory assigned is higher then the maximum allowed in the host."
-msgstr ""
-"La memoria assegnata è superiore al massimo consentito nell'host. "
+msgstr "La memoria assegnata è superiore al massimo consentito nell'host. "
#, python-format
msgid ""
"VM '%(name)s' does not support live memory update. Update the memory with "
"the machine offline to enable this feature."
msgstr ""
-"La VM '%(name)s' non supporta l'aggiornamento della memoria live. Aggiornare la memoria con"
-"la macchina fuori linea per abilitare questa funzione. "
+"La VM '%(name)s' non supporta l'aggiornamento della memoria live. Aggiornare "
+"la memoria conla macchina fuori linea per abilitare questa funzione. "
msgid "Only increase memory is allowed in active VMs"
-msgstr ""
-"Nelle VM attive è consentito solo aumentare la memoria. "
+msgstr "Nelle VM attive è consentito solo aumentare la memoria. "
msgid ""
"For live memory update, new memory value must be equal old memory value plus "
"multiples of 1024 Mib"
msgstr ""
-"Per l'aggiornamento della memoria live, il nuovo valore di memoria deve essere uguale al vecchio più"
-"multipli di 1024 Mib"
+"Per l'aggiornamento della memoria live, il nuovo valore di memoria deve "
+"essere uguale al vecchio piùmultipli di 1024 Mib"
msgid "There are not enough free slots of 1024 Mib in the guest."
msgstr ""
@@ -419,24 +379,27 @@ msgid ""
"Host's libvirt version does not support memory devices. Libvirt must be >= "
"1.2.14"
msgstr ""
-"La versione libvirt dell'host non supporta dispositivi di memoria. Libvirt deve essere >= "
-"1.2.14"
+"La versione libvirt dell'host non supporta dispositivi di memoria. Libvirt "
+"deve essere >= 1.2.14"
#, python-format
msgid "Error attaching memory device. Details: %(error)s"
msgstr ""
-"Errore durante il collegamento del dispositivo di memoria. Dettagli: %(error)s"
+"Errore durante il collegamento del dispositivo di memoria. Dettagli: "
+"%(error)s"
#, python-format
msgid ""
"VM %(vmid)s does not contain directly assigned host device %(dev_name)s."
msgstr ""
-"La VM %(vmid)s non contiene un dispositivo host assegnato direttamente %(dev_name)s."
+"La VM %(vmid)s non contiene un dispositivo host assegnato direttamente "
+"%(dev_name)s."
#, python-format
msgid "The host device %(dev_name)s is not allowed to directly assign to VM."
msgstr ""
-"Il dispositivo host %(dev_name)s non consente di assegnare direttamente al VM."
+"Il dispositivo host %(dev_name)s non consente di assegnare direttamente al "
+"VM."
msgid ""
"No IOMMU groups found. Host PCI pass through needs IOMMU group to function "
@@ -445,28 +408,26 @@ msgid ""
"to your Kernel parameter in /boot/grub2/grub.conf. For AMD CPU, add iommu=pt "
"iommu=1."
msgstr ""
-"Non è stato trovato alcun gruppo IOMMU. Per funzionare correttamente il pass-through PCI host "
-"ha bisogno del gruppo IOMMU. Abilitare Intel VT-d o AMD IOMMU nel BIOS e verificare quindi che "
-"il Kernel sia compilato con il supporto IOMMU. per la CPU Intel, aggiungere intel_iommu=on "
-"al parametro Kernel in /boot/grub2/grub.conf. Per la CPU AMD, aggiungere iommu=pt "
-"iommu=1."
+"Non è stato trovato alcun gruppo IOMMU. Per funzionare correttamente il pass-"
+"through PCI host ha bisogno del gruppo IOMMU. Abilitare Intel VT-d o AMD "
+"IOMMU nel BIOS e verificare quindi che il Kernel sia compilato con il "
+"supporto IOMMU. per la CPU Intel, aggiungere intel_iommu=on al parametro "
+"Kernel in /boot/grub2/grub.conf. Per la CPU AMD, aggiungere iommu=pt iommu=1."
msgid "\"name\" should be a device name string"
-msgstr ""
-"\"name\" deve essere una stringa nome dispositivo"
+msgstr "\"name\" deve essere una stringa nome dispositivo"
#, python-format
msgid ""
"The device %(name)s is probably in use by the host. Unable to attach it to "
"the guest."
msgstr ""
-"Il dispositivo %(name)s è probabilmente utilizzato dall'host. Impossibile collegarlo"
-"alla macchina guest."
+"Il dispositivo %(name)s è probabilmente utilizzato dall'host. Impossibile "
+"collegarloalla macchina guest."
#, python-format
msgid "Interface %(iface)s does not exist in virtual machine %(name)s"
-msgstr ""
-"L'interfaccia %(iface)s non esiste nella macchina virtuale %(name)s"
+msgstr "L'interfaccia %(iface)s non esiste nella macchina virtuale %(name)s"
#, python-format
msgid ""
@@ -480,7 +441,8 @@ msgstr ""
msgid "Network name for virtual machine interface must be a string"
msgstr ""
-"Il nome di rete per l'interfaccia della macchina virtuale deve essere una stringa"
+"Il nome di rete per l'interfaccia della macchina virtuale deve essere una "
+"stringa"
msgid "Invalid network model card specified for virtual machine interface"
msgstr ""
@@ -488,20 +450,18 @@ msgstr ""
msgid "Specify type and network to add a new virtual machine interface"
msgstr ""
-"Specificare il tipo e la rete per aggiungere una nuova interfaccia della macchina virtuale"
+"Specificare il tipo e la rete per aggiungere una nuova interfaccia della "
+"macchina virtuale"
msgid "MAC Address must respect this format FF:FF:FF:FF:FF:FF"
-msgstr ""
-"L'indirizzo MAC deve rispettare il formato FF:FF:FF:FF:FF:FF"
+msgstr "L'indirizzo MAC deve rispettare il formato FF:FF:FF:FF:FF:FF"
#, python-format
msgid "MAC Address %(mac)s already exists in virtual machine %(name)s"
-msgstr ""
-"L'indirizzo MAC %(mac)s esiste già nella macchina virtuale %(name)s"
+msgstr "L'indirizzo MAC %(mac)s esiste già nella macchina virtuale %(name)s"
msgid "Invalid MAC Address"
-msgstr ""
-"Indirizzo MAC non valido"
+msgstr "Indirizzo MAC non valido"
msgid "Cannot change MAC address of a running virtual machine"
msgstr ""
@@ -509,8 +469,7 @@ msgstr ""
#, python-format
msgid "Template %(name)s already exists"
-msgstr ""
-"Modello %(name)s già esistente"
+msgstr "Modello %(name)s già esistente"
#, python-format
msgid ""
@@ -522,17 +481,18 @@ msgstr ""
msgid ""
"Storage pool %(pool)s specified for template %(template)s does not exist"
msgstr ""
-"Il pool di memoria %(pool)s specificato per il modello %(template)s non esiste"
+"Il pool di memoria %(pool)s specificato per il modello %(template)s non "
+"esiste"
#, python-format
msgid "Storage pool %(pool)s specified for template %(template)s is not active"
msgstr ""
-"Il pool di memoria %(pool)s specificato per il modello %(template)s non è attivo"
+"Il pool di memoria %(pool)s specificato per il modello %(template)s non è "
+"attivo"
#, python-format
msgid "Invalid parameter '%(param)s' specified for CDROM."
-msgstr ""
-"Parametro non valido '%(param)s' specificato per CDROM."
+msgstr "Parametro non valido '%(param)s' specificato per CDROM."
#, python-format
msgid "Network %(network)s specified for template %(template)s is not active"
@@ -540,45 +500,38 @@ msgstr ""
"La rete %(network)s specificata per il modello %(template)s non è attiva"
msgid "Template name must be a string"
-msgstr ""
-"Il nome del modello deve essere una stringa"
+msgstr "Il nome del modello deve essere una stringa"
msgid "Template icon must be a path to the image"
-msgstr ""
-"L'icona del modello deve essere un percorso all'immagine"
+msgstr "L'icona del modello deve essere un percorso all'immagine"
msgid "Template distribution must be a string"
-msgstr ""
-"La distribuzione del modello deve essere una stringa"
+msgstr "La distribuzione del modello deve essere una stringa"
msgid "Template distribution version must be a string"
-msgstr ""
-"La versione della distribuzione del modello deve essere una stringa"
+msgstr "La versione della distribuzione del modello deve essere una stringa"
msgid "The number of CPUs must be an integer greater than 0"
-msgstr ""
-"Il numero di CPU deve essere un numero intero maggiore di 0"
+msgstr "Il numero di CPU deve essere un numero intero maggiore di 0"
msgid "Amount of memory (MB) must be an integer greater than 512"
msgstr ""
"La quantità di memoria (MB) deve essere un numero intero maggiore di 512"
msgid "Template CDROM must be a local or remote ISO file"
-msgstr ""
-"Il CDROM del modello deve essere un file ISO locale o remoto"
+msgstr "Il CDROM del modello deve essere un file ISO locale o remoto"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for template"
-msgstr ""
-"URI pool di memoria non valido %(value)s specificato per il modello"
+msgstr "URI pool di memoria non valido %(value)s specificato per il modello"
msgid "Specify an ISO image as CDROM or a base image to create a template"
msgstr ""
-"Specificare un'immagine ISO come CDROM o un'immagine di base per creare un modello"
+"Specificare un'immagine ISO come CDROM o un'immagine di base per creare un "
+"modello"
msgid "All networks for the template must be specified in a list."
-msgstr ""
-"Tutte le reti per il modello devono essere specificate in un elenco."
+msgstr "Tutte le reti per il modello devono essere specificate in un elenco."
msgid "Specify a volume to a template when storage pool is iSCSI or SCSI"
msgstr ""
@@ -586,22 +539,18 @@ msgstr ""
#, python-format
msgid "The volume %(volume)s is not in storage pool %(pool)s"
-msgstr ""
-"Il volume %(volume)s non è nel pool di memoria %(pool)s"
+msgstr "Il volume %(volume)s non è nel pool di memoria %(pool)s"
#, python-format
msgid "Unable to create template due error: %(err)s"
-msgstr ""
-"Impossibile creare il modello a causa dell'errore: %(err)s"
+msgstr "Impossibile creare il modello a causa dell'errore: %(err)s"
#, python-format
msgid "Unable to delete template due error: %(err)s"
-msgstr ""
-"Impossibile eliminare il modello a causa dell'errore: %(err)s"
+msgstr "Impossibile eliminare il modello a causa dell'errore: %(err)s"
msgid "Disk size must be an integer greater than 1GB."
-msgstr ""
-"La dimensione del disco deve essere un numero intero maggiore di 1GB."
+msgstr "La dimensione del disco deve essere un numero intero maggiore di 1GB."
msgid "Template base image must be a valid local image file"
msgstr ""
@@ -609,150 +558,134 @@ msgstr ""
#, python-format
msgid "Cannot identify base image %(path)s format"
-msgstr ""
-"Impossibile identificare il formato %(path)s dell'immagine di base"
+msgstr "Impossibile identificare il formato %(path)s dell'immagine di base"
msgid ""
"When specifying CPU topology, VCPUs must be a product of sockets, cores, and "
"threads."
msgstr ""
-"Quando si specifica la topologia CPU, le VCPU devono essere composte da socket, core e"
-"thread."
+"Quando si specifica la topologia CPU, le VCPU devono essere composte da "
+"socket, core ethread."
msgid ""
"When specifying CPU topology, each element must be an integer greater than "
"zero."
msgstr ""
-"Quando si specifica la topologia CPU, ogni elemento deve essere un numero intero maggiore di"
-"zero."
+"Quando si specifica la topologia CPU, ogni elemento deve essere un numero "
+"intero maggiore dizero."
msgid ""
"Invalid disk image format. Valid formats: bochs, cloop, cow, dmg, qcow, "
"qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"Formato immagine disco non valido. Formati validi: bochs, cloop, cow, dmg, qcow, "
-"qcow2, qed, raw, vmdk, vpc."
+"Formato immagine disco non valido. Formati validi: bochs, cloop, cow, dmg, "
+"qcow, qcow2, qed, raw, vmdk, vpc."
#, python-format
msgid "Storage pool %(name)s already exists"
-msgstr ""
-"Pool di memoria %(name)s già esistente"
+msgstr "Pool di memoria %(name)s già esistente"
#, python-format
msgid "Storage pool %(name)s does not exist"
-msgstr ""
-"Il pool di memoria %(name)s non esiste"
+msgstr "Il pool di memoria %(name)s non esiste"
#, python-format
msgid "Specify %(item)s in order to create the storage pool %(name)s"
-msgstr ""
-"Specificare %(item)s per poter creare il pool di memoria %(name)s"
+msgstr "Specificare %(item)s per poter creare il pool di memoria %(name)s"
#, python-format
msgid "Unable to delete active storage pool %(name)s"
-msgstr ""
-"Impossibile eliminare il pool di memoria attivo %(name)s"
+msgstr "Impossibile eliminare il pool di memoria attivo %(name)s"
#, python-format
msgid "Unable to list storage pools. Details: %(err)s"
-msgstr ""
-"Impossibile elencare i pool di memoria. Dettagli: %(err)s"
+msgstr "Impossibile elencare i pool di memoria. Dettagli: %(err)s"
#, python-format
msgid "Unable to create storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"Impossibile creare il pool di memoria %(name)s. Dettagli: %(err)s"
+msgstr "Impossibile creare il pool di memoria %(name)s. Dettagli: %(err)s"
#, python-format
msgid ""
"Unable to get number of storage volumes in storage pool %(name)s. Details: "
"%(err)s"
msgstr ""
-"Impossibile ottenere il numero di volumi di memoria nel pool di memoria %(name)s. Dettagli: "
-"%(err)s"
+"Impossibile ottenere il numero di volumi di memoria nel pool di memoria "
+"%(name)s. Dettagli: %(err)s"
#, python-format
msgid "Unable to activate storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"Impossibile attivare il pool di memoria %(name)s. Dettagli: %(err)s"
+msgstr "Impossibile attivare il pool di memoria %(name)s. Dettagli: %(err)s"
#, python-format
msgid "Unable to deactivate storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"Impossibile disattivare il pool di memoria %(name)s. Dettagli: %(err)s"
+msgstr "Impossibile disattivare il pool di memoria %(name)s. Dettagli: %(err)s"
#, python-format
msgid "Unable to delete storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"Impossibile eliminare il pool di memoria %(name)s. Dettagli: %(err)s"
+msgstr "Impossibile eliminare il pool di memoria %(name)s. Dettagli: %(err)s"
#, python-format
msgid ""
"Unable to create NFS Pool as export path %(path)s may block during mount"
msgstr ""
-"Impossibile creare il pool NFS poiché il percorso di esportazione %(path)s potrebbe bloccarsi durante il montaggio"
+"Impossibile creare il pool NFS poiché il percorso di esportazione %(path)s "
+"potrebbe bloccarsi durante il montaggio"
#, python-format
msgid "Unable to create NFS Pool as export path %(path)s mount failed"
msgstr ""
-"Impossibile creare il pool NFS poiché il montaggio del percorso di esportazione %(path)s ha avuto esito negativo"
+"Impossibile creare il pool NFS poiché il montaggio del percorso di "
+"esportazione %(path)s ha avuto esito negativo"
#, python-format
msgid "Unsupported storage pool type: %(type)s"
-msgstr ""
-"Tipo di pool di memoria non supportato: %(type)s"
+msgstr "Tipo di pool di memoria non supportato: %(type)s"
#, python-format
msgid "Error while retrieving storage pool XML to %(pool)s"
-msgstr ""
-"Errore durante il richiamo dell'XML del pool di memoria per %(pool)s"
+msgstr "Errore durante il richiamo dell'XML del pool di memoria per %(pool)s"
msgid "Storage pool name must be a string without slashes (/)"
-msgstr ""
-"Il nome del pool di memoria deve essere una stringa senza barre (/)"
+msgstr "Il nome del pool di memoria deve essere una stringa senza barre (/)"
msgid ""
"Supported storage pool types are dir, netfs, logical, iscsi, isci and kimchi-"
"iso"
msgstr ""
-"I tipi di pool di memoria supportati sono dir, netfs, logico, iscsi, isci e kimchi-"
-"iso"
+"I tipi di pool di memoria supportati sono dir, netfs, logico, iscsi, isci e "
+"kimchi-iso"
msgid "Storage pool path must be a string"
-msgstr ""
-"Il percorso del pool di memoria deve essere una stringa"
+msgstr "Il percorso del pool di memoria deve essere una stringa"
msgid "Storage pool host must be a IP or hostname"
-msgstr ""
-"L'host del pool di memoria deve essere un nome host o IP"
+msgstr "L'host del pool di memoria deve essere un nome host o IP"
msgid "Storage pool device must be the absolute path to the block device"
msgstr ""
-"Il dispositivo pool di memoria deve essere il percorso assoluto al dispositivo del blocco"
+"Il dispositivo pool di memoria deve essere il percorso assoluto al "
+"dispositivo del blocco"
msgid "Storage pool devices parameter must be a list"
-msgstr ""
-"Il parametro dispositivi pool di memoria deve essere un elenco"
+msgstr "Il parametro dispositivi pool di memoria deve essere un elenco"
msgid "Target IQN of an iSCSI pool must be a string"
-msgstr ""
-"L'IQN di destinazione di un pool iSCSI deve essere una stringa"
+msgstr "L'IQN di destinazione di un pool iSCSI deve essere una stringa"
msgid "Port of a remote storage server must be an integer between 1 and 65535"
msgstr ""
-"La porta di un server di memoria remoto deve essere un numero intero tra 1 e 65535"
+"La porta di un server di memoria remoto deve essere un numero intero tra 1 e "
+"65535"
msgid "iSCSI target username must be a string"
-msgstr ""
-"Il nome utente della destinazione iSCSI deve essere una stringa"
+msgstr "Il nome utente della destinazione iSCSI deve essere una stringa"
msgid "iSCSI target password must be a string"
-msgstr ""
-"La password della destinazione iSCSI deve essere una stringa"
+msgstr "La password della destinazione iSCSI deve essere una stringa"
msgid "Specify name and type to create a storage pool"
-msgstr ""
-"Specificare nome e tipo per creare un pool di memoria"
+msgstr "Specificare nome e tipo per creare un pool di memoria"
#, python-format
msgid ""
@@ -764,36 +697,33 @@ msgstr ""
#, python-format
msgid "Unable to extend logical pool %(pool)s. Details: %(err)s"
-msgstr ""
-"Impossibile estendere il pool logico %(pool)s. Dettagli: %(err)s"
+msgstr "Impossibile estendere il pool logico %(pool)s. Dettagli: %(err)s"
msgid "The parameter disks only can be updated for logical storage pool."
msgstr ""
"Solo il parametro dischi può essere aggiornato per il pool di memoria logico."
msgid "The SCSI host adapter name must be a string."
-msgstr ""
-"Il nome adattatore host SCSI deve essere una stringa."
+msgstr "Il nome adattatore host SCSI deve essere una stringa."
msgid "The storage pool kimchi_isos is reserved for internal use"
-msgstr ""
-"Il pool di memoria kimchi_isos è riservato per uso interno"
+msgstr "Il pool di memoria kimchi_isos è riservato per uso interno"
#, python-format
msgid ""
"Unable to activate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
msgstr ""
-"Impossibile attivare il pool di memoria NFS %(name)s. Il server NFS %(server)s è "
-"irraggiungibile."
+"Impossibile attivare il pool di memoria NFS %(name)s. Il server NFS "
+"%(server)s è irraggiungibile."
#, python-format
msgid ""
"Unable to deactivate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
msgstr ""
-"Impossibile disattivare il pool di memoria NFS %(name)s. Il server NFS %(server)s è "
-"irraggiungibile."
+"Impossibile disattivare il pool di memoria NFS %(name)s. Il server NFS "
+"%(server)s è irraggiungibile."
#, python-format
msgid ""
@@ -811,66 +741,64 @@ msgid ""
"A volume group named '%(name)s' already exists. Please, choose another name "
"to create the logical pool."
msgstr ""
-"Un gruppo di volumi denominato '%(name)s' esiste già. Scegliere un altro nome "
-"per creare il pool logico."
+"Un gruppo di volumi denominato '%(name)s' esiste già. Scegliere un altro "
+"nome per creare il pool logico."
#, python-format
msgid "Unable to update database with deep scan information due error: %(err)s"
msgstr ""
-"Impossibile aggiornare il database con informazioni approfondite sulla scansione a causa dell'errore: %(err)s"
+"Impossibile aggiornare il database con informazioni approfondite sulla "
+"scansione a causa dell'errore: %(err)s"
#, python-format
msgid "Storage volume %(name)s already exists"
-msgstr ""
-"Volume di memoria %(name)s già esistente"
+msgstr "Volume di memoria %(name)s già esistente"
#, python-format
msgid "Storage volume %(name)s does not exist in storage pool %(pool)s"
-msgstr ""
-"Il volume di memoria %(name)s non esiste nel pool di memoria %(pool)s"
+msgstr "Il volume di memoria %(name)s non esiste nel pool di memoria %(pool)s"
#, python-format
msgid ""
"Unable to create storage volume %(volume)s because storage pool %(pool)s is "
"not active"
msgstr ""
-"Impossibile creare il volume di memoria %(volume)s perché il pool di memoria %(pool)s "
-"non è attivo"
+"Impossibile creare il volume di memoria %(volume)s perché il pool di memoria "
+"%(pool)s non è attivo"
#, python-format
msgid "Specify %(item)s in order to create storage volume %(volume)s"
-msgstr ""
-"Specificare %(item)s per poter creare il volume di memoria %(volume)s"
+msgstr "Specificare %(item)s per poter creare il volume di memoria %(volume)s"
#, python-format
msgid ""
"Unable to list storage volumes because storage pool %(pool)s is not active"
msgstr ""
-"Impossibile elencare i volumi di memoria poiché il pool di memoria %(pool)s non è attivo"
+"Impossibile elencare i volumi di memoria poiché il pool di memoria %(pool)s "
+"non è attivo"
#, python-format
msgid ""
"Unable to create storage volume %(name)s in storage pool %(pool)s. Details: "
"%(err)s"
msgstr ""
-"Impossibile creare il volume di memoria %(name)s nel pool di memoria %(pool)s. Dettagli: "
-"%(err)s"
+"Impossibile creare il volume di memoria %(name)s nel pool di memoria "
+"%(pool)s. Dettagli: %(err)s"
#, python-format
msgid ""
"Unable to list storage volumes in storage pool %(pool)s. Details: %(err)s"
msgstr ""
-"Impossibile elencare i volumi di memoria nel pool di memoria %(pool)s. Dettagli: %(err)s"
+"Impossibile elencare i volumi di memoria nel pool di memoria %(pool)s. "
+"Dettagli: %(err)s"
#, python-format
msgid "Unable to wipe storage volumes %(name)s. Details: %(err)s"
-msgstr ""
-"Impossibile ripulire i volumi di memoria %(name)s. Dettagli: %(err)s"
+msgstr "Impossibile ripulire i volumi di memoria %(name)s. Dettagli: %(err)s"
#, python-format
msgid "Unable to delete storage volume %(name)s. Details: %(err)s"
-msgstr ""
-"Impossibile eliminare il volume di memoria %(name)s. Dettagli: %(err)s"
+msgstr "Impossibile eliminare il volume di memoria %(name)s. Dettagli: %(err)s"
#, python-format
msgid "Unable to resize storage volume %(name)s. Details: %(err)s"
@@ -880,46 +808,42 @@ msgstr ""
#, python-format
msgid "Storage type %(type)s does not support volume create and delete"
msgstr ""
-"Il tipo di memoria %(type)s non supporta la creazione ed eliminazione del volume"
+"Il tipo di memoria %(type)s non supporta la creazione ed eliminazione del "
+"volume"
msgid "Storage volume name must be a string"
-msgstr ""
-"Il nome del volume di memoria deve essere una stringa"
+msgstr "Il nome del volume di memoria deve essere una stringa"
msgid "Storage volume allocation must be an integer number"
-msgstr ""
-"L'assegnazione del volume di memoria deve essere un numero intero"
+msgstr "L'assegnazione del volume di memoria deve essere un numero intero"
msgid ""
"Storage volume format not supported. Valid formats: bochs, cloop, cow, dmg, "
"qcow, qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"Formato del volume di memoria non supportato. Formati validi: bochs, cloop, cow, dmg, "
-"qcow, qcow2, qed, raw, vmdk, vpc."
+"Formato del volume di memoria non supportato. Formati validi: bochs, cloop, "
+"cow, dmg, qcow, qcow2, qed, raw, vmdk, vpc."
msgid "Storage volume requires a volume name"
-msgstr ""
-"Il volume di memoria richiede un nome volume"
+msgstr "Il volume di memoria richiede un nome volume"
#, python-format
msgid ""
"Unable to update database with storage volume information due error: %(err)s"
msgstr ""
-"Impossibile aggiornare il database con informazioni sul volume di memoria a causa dell'errore: %(err)s"
+"Impossibile aggiornare il database con informazioni sul volume di memoria a "
+"causa dell'errore: %(err)s"
#, python-format
msgid "Only one of parameter %(param)s can be specified"
-msgstr ""
-"È possibile specificare solo un parametro %(param)s"
+msgstr "È possibile specificare solo un parametro %(param)s"
#, python-format
msgid "Create volume from %(param)s is not supported"
-msgstr ""
-"La creazione del volume da %(param)s non è supportata"
+msgstr "La creazione del volume da %(param)s non è supportata"
msgid "Storage volume capacity must be an integer number."
-msgstr ""
-"La capacità del volume di memoria deve essere un numero intero."
+msgstr "La capacità del volume di memoria deve essere un numero intero."
msgid "Storage volume URL must be http://, https://, ftp:// or ftps://."
msgstr ""
@@ -927,29 +851,27 @@ msgstr ""
#, python-format
msgid "Unable to access file %(url)s. Please, check it."
-msgstr ""
-"Impossibile accedere al file %(url)s. Verificare."
+msgstr "Impossibile accedere al file %(url)s. Verificare."
#, python-format
msgid ""
"Unable to clone storage volume '%(name)s' in pool '%(pool)s'. Details: "
"%(err)s"
msgstr ""
-"Impossibile clonare il volume di memoria '%(name)s' nel pool '%(pool)s'. Dettagli: "
-"%(err)s"
+"Impossibile clonare il volume di memoria '%(name)s' nel pool '%(pool)s'. "
+"Dettagli: %(err)s"
msgid "Specify chunk data and its size to upload a file."
-msgstr ""
-"Specificare dati sezione e dimensioni per caricare un file. "
+msgstr "Specificare dati sezione e dimensioni per caricare un file. "
msgid "In order to upload a storage volume, specify the 'upload' parameter."
-msgstr ""
-"Per caricare un volume di memoria, specificare il parametro 'upload'. "
+msgstr "Per caricare un volume di memoria, specificare il parametro 'upload'. "
msgid ""
"Unable to upload chunk data as it does not match with requested chunk size."
msgstr ""
-"Impossibile caricare i dati sezione perché non corrispondono con la dimensione sezione richiesta. "
+"Impossibile caricare i dati sezione perché non corrispondono con la "
+"dimensione sezione richiesta. "
#, python-format
msgid "The storage volume %(vol)s is not under an upload process."
@@ -963,22 +885,20 @@ msgstr ""
#, python-format
msgid "Unable to upload chunk data to storage volume. Details: %(err)s."
msgstr ""
-"Impossibile caricare i dati sezione nel volume di memoria. Dettagli: %(err)s. "
+"Impossibile caricare i dati sezione nel volume di memoria. Dettagli: "
+"%(err)s. "
#, python-format
msgid "Interface %(name)s does not exist"
-msgstr ""
-"L'interfaccia %(name)s non esiste"
+msgstr "L'interfaccia %(name)s non esiste"
#, python-format
msgid "Network %(name)s already exists"
-msgstr ""
-"Rete %(name)s già esistente"
+msgstr "Rete %(name)s già esistente"
#, python-format
msgid "Network %(name)s does not exist"
-msgstr ""
-"La rete %(name)s non esiste"
+msgstr "La rete %(name)s non esiste"
#, python-format
msgid "Subnet %(subnet)s specified for network %(network)s is not valid."
@@ -992,8 +912,7 @@ msgstr ""
#, python-format
msgid "Unable to delete active network %(name)s"
-msgstr ""
-"Impossibile eliminare la rete attiva %(name)s"
+msgstr "Impossibile eliminare la rete attiva %(name)s"
#, python-format
msgid "Interface %(iface)s specified for network %(network)s is already in use"
@@ -1002,54 +921,49 @@ msgstr ""
msgid "Interface should be bare NIC, bonding or bridge device."
msgstr ""
-"L'interfaccia deve essere un dispositivo bridge o di collegamento NIC bare-metal."
+"L'interfaccia deve essere un dispositivo bridge o di collegamento NIC bare-"
+"metal."
#, python-format
msgid "Unable to create network %(name)s. Details: %(err)s"
-msgstr ""
-"Impossibile creare la rete %(name)s. Dettagli: %(err)s"
+msgstr "Impossibile creare la rete %(name)s. Dettagli: %(err)s"
#, python-format
msgid "Unable to find a free IP address for network '%(name)s'"
-msgstr ""
-"Impossibile trovare un indirizzo IP libero per la rete '%(name)s'"
+msgstr "Impossibile trovare un indirizzo IP libero per la rete '%(name)s'"
#, python-format
msgid "The interface %(iface)s already exists."
-msgstr ""
-"Interfaccia %(iface)s già esistente."
+msgstr "Interfaccia %(iface)s già esistente."
msgid "Network name must be a string without slashes (/) or quotes (\")"
msgstr ""
"Il nome della rete deve essere una stringa senza barre (/) o virgolette (\")"
msgid "Supported network types are isolated, NAT and bridge"
-msgstr ""
-"I tipi di rete supportati sono isolata, NAT e bridge"
+msgstr "I tipi di rete supportati sono isolata, NAT e bridge"
msgid "Network subnet must be a string with IP address and prefix or netmask"
msgstr ""
-"La sottorete della rete deve essere una stringa con indirizzo IP e prefisso o maschera di rete"
+"La sottorete della rete deve essere una stringa con indirizzo IP e prefisso "
+"o maschera di rete"
msgid "Network interface must be a string"
-msgstr ""
-"L'interfaccia di rete deve essere una stringa"
+msgstr "L'interfaccia di rete deve essere una stringa"
msgid "Network VLAN ID must be an integer between 1 and 4094"
-msgstr ""
-"L'ID VLAN di rete deve essere un numero intero tra 1 e 4094"
+msgstr "L'ID VLAN di rete deve essere un numero intero tra 1 e 4094"
msgid "Specify name and type to create a Network"
-msgstr ""
-"Specificare nome e tipo per creare una rete"
+msgstr "Specificare nome e tipo per creare una rete"
#, python-format
msgid ""
"Unable to delete network %(name)s. There are some virtual machines %(vms)s "
"and/or templates linked to this network."
msgstr ""
-"Impossibile eliminare la rete %(name)s. Ci sono alcune macchine virtuali %(vms)s "
-"e/o modelli collegati a tale rete."
+"Impossibile eliminare la rete %(name)s. Ci sono alcune macchine virtuali "
+"%(vms)s e/o modelli collegati a tale rete."
#, python-format
msgid ""
@@ -1062,12 +976,12 @@ msgstr ""
#, python-format
msgid "Bridge device %(name)s can not be the trunk device of a VLAN."
msgstr ""
-"Il dispositivo bridge %(name)s non può essere il dispositivo trunk di una VLAN."
+"Il dispositivo bridge %(name)s non può essere il dispositivo trunk di una "
+"VLAN."
#, python-format
msgid "Failed to activate interface %(iface)s: %(err)s."
-msgstr ""
-"Impossibile attivare l'interfaccia %(iface)s: %(err)s."
+msgstr "Impossibile attivare l'interfaccia %(iface)s: %(err)s."
#, python-format
msgid ""
@@ -1079,111 +993,97 @@ msgstr ""
#, python-format
msgid "Failed to start network %(name)s. Details: %(err)s"
-msgstr ""
-"Impossibile avviare la rete %(name)s. Dettagli: %(err)s"
+msgstr "Impossibile avviare la rete %(name)s. Dettagli: %(err)s"
#, python-format
msgid "Debug report %(name)s does not exist"
-msgstr ""
-"Il report di debug %(name)s non esiste"
+msgstr "Il report di debug %(name)s non esiste"
msgid "Debug report tool not found in system"
-msgstr ""
-"Strumento report di debug non trovato nel sistema"
+msgstr "Strumento report di debug non trovato nel sistema"
#, python-format
msgid "Unable to create debug report %(name)s. Details: %(err)s."
-msgstr ""
-"Impossibile creare il report di debug %(name)s. Dettagli: %(err)s. "
+msgstr "Impossibile creare il report di debug %(name)s. Dettagli: %(err)s. "
#, python-format
msgid "Can not find any debug report with the given name %(name)s"
-msgstr ""
-"Impossibile trovare un report di debug con il nome fornito %(name)s"
+msgstr "Impossibile trovare un report di debug con il nome fornito %(name)s"
#, python-format
msgid "Unable to generate debug report %(name)s. Details: %(err)s"
-msgstr ""
-"Impossibile generare il report di debug %(name)s. Dettagli: %(err)s"
+msgstr "Impossibile generare il report di debug %(name)s. Dettagli: %(err)s"
msgid "You should give a name for the debug report file."
-msgstr ""
-"È necessario fornire un nome per il file report di debug. "
+msgstr "È necessario fornire un nome per il file report di debug. "
msgid ""
"Debug report name must be a string. Only letters, digits, underscore ('_') "
"and hyphen ('-') are allowed."
msgstr ""
-"Il nome report di debug deve essere una stringa. Sono consentiti solo lettere, cifre, sottolineature ('_') "
-"e trattini ('-')."
+"Il nome report di debug deve essere una stringa. Sono consentiti solo "
+"lettere, cifre, sottolineature ('_') e trattini ('-')."
#, python-format
msgid ""
"The debug report with specified name \"%(name)s\" already exists. Please use "
"another one."
msgstr ""
-"Il report di debug con il nome specificato \"%(name)s\" già esiste. Utilizzare "
-"un altro."
+"Il report di debug con il nome specificato \"%(name)s\" già esiste. "
+"Utilizzare un altro."
#, python-format
msgid "Storage server %(server)s was not used by Kimchi"
-msgstr ""
-"Il server di memoria %(server)s non è stato utilizzato da Kimchi"
+msgstr "Il server di memoria %(server)s non è stato utilizzato da Kimchi"
#, python-format
msgid "Distro '%(name)s' does not exist"
-msgstr ""
-"Distro '%(name)s' non esistente"
+msgstr "Distro '%(name)s' non esistente"
#, python-format
msgid "Partition %(name)s does not exist in the host"
-msgstr ""
-"La partizione %(name)s non esiste nell'host"
+msgstr "La partizione %(name)s non esiste nell'host"
msgid "Unable to shutdown host machine as there are running virtual machines"
msgstr ""
-"Impossibile arrestare la macchina host poiché sono presenti macchine virtuali in esecuzione"
+"Impossibile arrestare la macchina host poiché sono presenti macchine "
+"virtuali in esecuzione"
msgid "Unable to reboot host machine as there are running virtual machines"
msgstr ""
-"Impossibile riavviare la macchina host poiché sono presenti macchine virtuali in esecuzione"
+"Impossibile riavviare la macchina host poiché sono presenti macchine "
+"virtuali in esecuzione"
#, python-format
msgid "Node device '%(name)s' not found"
-msgstr ""
-"Dispositivo nodo '%(name)s' non trovato"
+msgstr "Dispositivo nodo '%(name)s' non trovato"
msgid "Conflicting flag filters specified."
-msgstr ""
-"Sono stati specificati dei filtri indicatore in conflitto."
+msgstr "Sono stati specificati dei filtri indicatore in conflitto."
msgid "No packages marked for update"
-msgstr ""
-"Nessun pacchetto contrassegnato per l'aggiornamento"
+msgstr "Nessun pacchetto contrassegnato per l'aggiornamento"
#, python-format
msgid "Package %(name)s is not marked to be updated."
-msgstr ""
-"Il pacchetto %(name)s non è contrassegnato per l'aggiornamento. "
+msgstr "Il pacchetto %(name)s non è contrassegnato per l'aggiornamento. "
#, python-format
msgid "Error while getting packages marked to be updated. Details: %(err)s"
msgstr ""
-"Errore durante il richiamo dei pacchetti contrassegnati per l'aggiornamento. Dettagli: %(err)s"
+"Errore durante il richiamo dei pacchetti contrassegnati per l'aggiornamento. "
+"Dettagli: %(err)s"
msgid "There is no compatible package manager for this system."
-msgstr ""
-"Non è presente un gestore pacchetti compatibile per questo sistema."
+msgstr "Non è presente un gestore pacchetti compatibile per questo sistema."
#, python-format
msgid "Unable to find %(item)s in datastore"
-msgstr ""
-"Impossibile trovare %(item)s nell'archivio dati"
+msgstr "Impossibile trovare %(item)s nell'archivio dati"
#, python-format
msgid "Invalid URI %(uri)s"
-msgstr ""
-"URI non valido %(uri)s"
+msgstr "URI non valido %(uri)s"
#, python-format
msgid "Timeout while running command '%(cmd)s' after %(seconds)s seconds"
@@ -1191,31 +1091,27 @@ msgstr ""
"Timeout durante l'esecuzione del comando '%(cmd)s' dopo %(seconds)s secondi"
msgid "Unable to choose a virtual machine name"
-msgstr ""
-"Impossibile scegliere un nome di macchina virtuale"
+msgstr "Impossibile scegliere un nome di macchina virtuale"
#, python-format
msgid "Invalid data value '%(value)s'"
-msgstr ""
-"Valore dati non valido '%(value)s'"
+msgstr "Valore dati non valido '%(value)s'"
#, python-format
msgid "Invalid data unit '%(unit)s'"
-msgstr ""
-"Unità dati non valida '%(unit)s'"
+msgstr "Unità dati non valida '%(unit)s'"
msgid "Invalid storage type. Types supported: 'cdrom', 'disk'"
-msgstr ""
-"Tipo di memoria non valido. Tipi supportati: 'cdrom', 'disk'"
+msgstr "Tipo di memoria non valido. Tipi supportati: 'cdrom', 'disk'"
#, python-format
msgid "The path '%(value)s' is not a valid local/remote path for the device"
msgstr ""
-"Il percorso '%(value)s' non è un percorso locale/remoto valido per il dispositivo"
+"Il percorso '%(value)s' non è un percorso locale/remoto valido per il "
+"dispositivo"
msgid "Only CDROM path can be update."
-msgstr ""
-"È possibile aggiornare solo il percorso CDROM."
+msgstr "È possibile aggiornare solo il percorso CDROM."
#, python-format
msgid ""
@@ -1232,24 +1128,21 @@ msgstr ""
#, python-format
msgid "Error while updating storage device: %(error)s"
-msgstr ""
-"Errore durante l'aggiornamento del dispositivo di memoria: %(error)s"
+msgstr "Errore durante l'aggiornamento del dispositivo di memoria: %(error)s"
#, python-format
msgid "Error while removing storage device: %(error)s"
-msgstr ""
-"Errore durante la rimozione del dispositivo di memoria: %(error)s"
+msgstr "Errore durante la rimozione del dispositivo di memoria: %(error)s"
msgid "Do not support IDE device hot plug"
-msgstr ""
-"Non supportare hot plug dispositivo IDE"
+msgstr "Non supportare hot plug dispositivo IDE"
msgid ""
"Specify type and path or type and pool/volume to add a new virtual machine "
"disk"
msgstr ""
-"Specificare il tipo e il percorso oppure il tipo e il pool/volume per aggiungere un nuovo disco di macchina "
-"virtuale"
+"Specificare il tipo e il percorso oppure il tipo e il pool/volume per "
+"aggiungere un nuovo disco di macchina virtuale"
msgid "Specify path to update virtual machine disk"
msgstr ""
@@ -1258,23 +1151,24 @@ msgstr ""
#, python-format
msgid "Controller type %(type)s limitation of %(limit)s devices reached"
msgstr ""
-"Il tipo di controller %(type)s ha raggiunto il limite di %(limit)s dispositivi"
+"Il tipo di controller %(type)s ha raggiunto il limite di %(limit)s "
+"dispositivi"
#, python-format
msgid "Cannot retrieve disk path information for given pool/volume: %(error)s"
msgstr ""
-"Impossibile richiamare le informazioni del percorso disco per il pool/volume fornito: %(error)s"
+"Impossibile richiamare le informazioni del percorso disco per il pool/volume "
+"fornito: %(error)s"
msgid "Volume already in use by other virtual machine."
-msgstr ""
-"Il volume è già utilizzato da un'altra macchina virtuale."
+msgstr "Il volume è già utilizzato da un'altra macchina virtuale."
msgid ""
"Only one of path or pool/volume can be specified to add a new virtual "
"machine disk"
msgstr ""
-"È possibile specificare solo uno tra percorso o pool/volume per aggiungere un nuovo"
-"disco di macchina virtuale"
+"È possibile specificare solo uno tra percorso o pool/volume per aggiungere "
+"un nuovodisco di macchina virtuale"
#, python-format
msgid ""
@@ -1285,83 +1179,71 @@ msgstr ""
"%(type)s"
msgid "YUM Repository ID must be one word only string."
-msgstr ""
-"L'ID repository YUM deve essere una stringa di una sola parola."
+msgstr "L'ID repository YUM deve essere una stringa di una sola parola."
msgid "Repository URL must be an http://, ftp:// or file:// URL."
-msgstr ""
-"L'URL del repository deve essere http://, ftp:// o file:// URL."
+msgstr "L'URL del repository deve essere http://, ftp:// o file:// URL."
msgid ""
"Repository configuration is a dictionary with specific values according to "
"repository type."
msgstr ""
-"La configurazione del repository è un dizionario con valori specifici in base al "
-"tipo di repository."
+"La configurazione del repository è un dizionario con valori specifici in "
+"base al tipo di repository."
msgid "Distribution to DEB repository must be a string"
-msgstr ""
-"La distribuzione al repository DEB deve essere una stringa"
+msgstr "La distribuzione al repository DEB deve essere una stringa"
msgid "Components to DEB repository must be listed in a array"
-msgstr ""
-"I componenti per il repository DEB devono essere elencati in un array"
+msgstr "I componenti per il repository DEB devono essere elencati in un array"
msgid "Components to DEB repository must be a string"
-msgstr ""
-"I componenti per il repository DEB devono essere una stringa"
+msgstr "I componenti per il repository DEB devono essere una stringa"
msgid "Mirror list to repository must be a string"
msgstr ""
"L'elenco di elementi speculari per il repository deve essere una stringa"
msgid "YUM Repository name must be string."
-msgstr ""
-"Il nome del repository YUM deve essere una stringa."
+msgstr "Il nome del repository YUM deve essere una stringa."
msgid "GPG check must be a boolean value."
-msgstr ""
-"Il controllo GPG deve essere un valore booleano."
+msgstr "Il controllo GPG deve essere un valore booleano."
msgid "GPG key must be a URL pointing to the ASCII-armored file."
-msgstr ""
-"La chiave GPG deve essere un URL che punta al file blindato ASCII."
+msgstr "La chiave GPG deve essere un URL che punta al file blindato ASCII."
#, python-format
msgid "Could not update repository %(repo_id)s."
-msgstr ""
-"Impossibile aggiornare il repository %(repo_id)s."
+msgstr "Impossibile aggiornare il repository %(repo_id)s."
#, python-format
msgid "Repository %(repo_id)s does not exist."
-msgstr ""
-"Il repository %(repo_id)s non esiste."
+msgstr "Il repository %(repo_id)s non esiste."
msgid ""
"Specify repository base URL, mirror list or metalink in order to create or "
"update a YUM repository."
msgstr ""
-"Specificare l'URL di base del repository, l'elenco di elementi speculari o metalink per poter creare o "
-"aggiornare un repository YUM."
+"Specificare l'URL di base del repository, l'elenco di elementi speculari o "
+"metalink per poter creare o aggiornare un repository YUM."
msgid "Repository management tool was not recognized for your system."
msgstr ""
-"Lo strumento di gestione del repository non è stato riconosciuto per il sistema."
+"Lo strumento di gestione del repository non è stato riconosciuto per il "
+"sistema."
#, python-format
msgid "Repository %(repo_id)s is already enabled."
-msgstr ""
-"Il repository %(repo_id)s è già abilitato."
+msgstr "Il repository %(repo_id)s è già abilitato."
#, python-format
msgid "Repository %(repo_id)s is already disabled."
-msgstr ""
-"Il repository %(repo_id)s è già disabilitato."
+msgstr "Il repository %(repo_id)s è già disabilitato."
#, python-format
msgid "Could not remove repository %(repo_id)s."
-msgstr ""
-"Impossibile rimuovere il repository %(repo_id)s."
+msgstr "Impossibile rimuovere il repository %(repo_id)s."
#, python-format
msgid "Could not write repository configuration file %(repo_file)s"
@@ -1370,30 +1252,26 @@ msgstr ""
msgid "Specify repository distribution in order to create a DEB repository."
msgstr ""
-"Specificare la distribuzione del repository per poter creare un repository DEB."
+"Specificare la distribuzione del repository per poter creare un repository "
+"DEB."
#, python-format
msgid "Could not enable repository %(repo_id)s."
-msgstr ""
-"Impossibile abilitare il repository %(repo_id)s."
+msgstr "Impossibile abilitare il repository %(repo_id)s."
#, python-format
msgid "Could not disable repository %(repo_id)s."
-msgstr ""
-"Impossibile disabilitare il repository %(repo_id)s."
+msgstr "Impossibile disabilitare il repository %(repo_id)s."
msgid "YUM Repository ID already exists"
-msgstr ""
-"ID repository YUM già esistente"
+msgstr "ID repository YUM già esistente"
msgid "YUM Repository name must be a string"
-msgstr ""
-"Il nome del repository YUM deve essere una stringa"
+msgstr "Il nome del repository YUM deve essere una stringa"
#, python-format
msgid "Unable to list repositories. Details: '%(err)s'"
-msgstr ""
-"Impossibile elencare i repository. Dettagli: '%(err)s'"
+msgstr "Impossibile elencare i repository. Dettagli: '%(err)s'"
#, python-format
msgid "Unable to retrieve repository information. Details: '%(err)s'"
@@ -1402,669 +1280,542 @@ msgstr ""
#, python-format
msgid "Unable to add repository. Details: '%(err)s'"
-msgstr ""
-"Impossibile aggiungere il repository. Dettagli: '%(err)s'"
+msgstr "Impossibile aggiungere il repository. Dettagli: '%(err)s'"
#, python-format
msgid "Unable to remove repository. Details: '%(err)s'"
-msgstr ""
-"Impossibile rimuovere il repository. Dettagli: '%(err)s'"
+msgstr "Impossibile rimuovere il repository. Dettagli: '%(err)s'"
#, python-format
msgid ""
"Configuration items: '%(items)s' are not supported by repository manager"
msgstr ""
-"Elementi di configurazione: '%(items)s' non supportati dal gestore repository "
+"Elementi di configurazione: '%(items)s' non supportati dal gestore "
+"repository "
msgid "Repository metalink must be an http://, ftp:// or file:// URL."
-msgstr ""
-"Il metalink del repository deve essere http://, ftp:// o file:// URL."
+msgstr "Il metalink del repository deve essere http://, ftp:// o file:// URL."
msgid "Cannot specify mirrorlist and metalink at the same time."
msgstr ""
-"Impossibile specificare contemporaneamente elenco di elementi speculari e metalink. "
+"Impossibile specificare contemporaneamente elenco di elementi speculari e "
+"metalink. "
#, python-format
msgid ""
"Virtual machine '%(vm)s' must be stopped before creating a snapshot of it."
msgstr ""
-"La macchina virtuale '%(vm)s' deve essere arrestata prima di poterne creare l'istantanea. "
+"La macchina virtuale '%(vm)s' deve essere arrestata prima di poterne creare "
+"l'istantanea. "
#, python-format
msgid ""
"Unable to create snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Impossibile creare l'istantanea '%(name)s' sulla macchina virtuale '%(vm)s'. Dettagli: "
-"%(err)s"
+"Impossibile creare l'istantanea '%(name)s' sulla macchina virtuale '%(vm)s'. "
+"Dettagli: %(err)s"
#, python-format
msgid "Snapshot '%(name)s' does not exist on virtual machine '%(vm)s'."
-msgstr ""
-"L'istantanea '%(name)s' non esiste sulla macchina virtuale '%(vm)s'."
+msgstr "L'istantanea '%(name)s' non esiste sulla macchina virtuale '%(vm)s'."
#, python-format
msgid ""
"Unable to retrieve snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Impossibile richiamare l'istantanea '%(name)s' sulla macchina virtuale '%(vm)s'. Dettagli: "
-"%(err)s"
+"Impossibile richiamare l'istantanea '%(name)s' sulla macchina virtuale "
+"'%(vm)s'. Dettagli: %(err)s"
#, python-format
msgid "Unable to list snapshots on virtual machine '%(vm)s'. Details: %(err)s"
msgstr ""
-"Impossibile elencare le istantanee sulla macchina virtuale '%(vm)s'. Dettagli: %(err)s"
+"Impossibile elencare le istantanee sulla macchina virtuale '%(vm)s'. "
+"Dettagli: %(err)s"
#, python-format
msgid ""
"Unable to delete snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Impossibile eliminare l'istantanea '%(name)s' sulla macchina virtuale '%(vm)s'. Dettagli: "
-"%(err)s"
+"Impossibile eliminare l'istantanea '%(name)s' sulla macchina virtuale "
+"'%(vm)s'. Dettagli: %(err)s"
#, python-format
msgid ""
"Unable to retrieve current snapshot of virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Impossibile richiamare l'istantanea corrente sulla macchina virtuale '%(vm)s'. Dettagli: "
-"%(err)s"
+"Impossibile richiamare l'istantanea corrente sulla macchina virtuale "
+"'%(vm)s'. Dettagli: %(err)s"
#, python-format
msgid ""
"Unable to revert virtual machine '%(vm)s' to snapshot '%(name)s'. Details: "
"%(err)s"
msgstr ""
-"Impossibile invertire la macchina virtuale '%(vm)s' alla istantanea '%(name)s'. Dettagli: "
-"%(err)s"
+"Impossibile invertire la macchina virtuale '%(vm)s' alla istantanea "
+"'%(name)s'. Dettagli: %(err)s"
#, python-format
msgid ""
"Unable to create snapshot of virtual machine '%(vm)s' because it contains a "
"disk with format '%(format)s'; only 'qcow2' is supported."
msgstr ""
-"Impossibile creare l'istantanea della macchina virtuale '%(vm)s' perché contiene un "
-"disco con formato '%(format)s'; solo 'qcow2' è supportato."
+"Impossibile creare l'istantanea della macchina virtuale '%(vm)s' perché "
+"contiene un disco con formato '%(format)s'; solo 'qcow2' è supportato."
msgid "The number of vCPUs is too large for this system."
-msgstr ""
-"Il numero di vCPU è troppo grande per questo sistema. "
+msgstr "Il numero di vCPU è troppo grande per questo sistema. "
msgid "Invalid vCPU/topology combination."
-msgstr ""
-"Combinazione vCPU/topologia non valida. "
+msgstr "Combinazione vCPU/topologia non valida. "
msgid "This host (or current configuration) does not allow CPU topology."
-msgstr ""
-"Questo host (o configurazione corrente) non consente la topologia CPU."
+msgstr "Questo host (o configurazione corrente) non consente la topologia CPU."
msgid "ERROR CODE"
-msgstr ""
-"CODICE DI ERRORE"
+msgstr "CODICE DI ERRORE"
msgid "REASON"
-msgstr ""
-"CAUSA"
+msgstr "CAUSA"
msgid "STACK"
-msgstr ""
-"STACK"
+msgstr "STACK"
msgid "Go to Homepage"
-msgstr ""
-"Vai alla home page"
+msgstr "Vai alla home page"
msgid "Create a New Virtual Machine"
-msgstr ""
-"Crea una nuova macchina virtuale"
+msgstr "Crea una nuova macchina virtuale"
msgid "Virtual Machine Name"
-msgstr ""
-"Nome macchina virtuale"
+msgstr "Nome macchina virtuale"
msgid ""
"The name used to identify the virtual machine. If omitted, a name will be "
"chosen based on the template used."
msgstr ""
-"Il nome utilizzato per identificare la macchina virtuale. Se il nome viene omesso "
-"ne verrà scelto uno in base al modello utilizzato."
+"Il nome utilizzato per identificare la macchina virtuale. Se il nome viene "
+"omesso ne verrà scelto uno in base al modello utilizzato."
msgid "Template"
-msgstr ""
-"Modello"
+msgstr "Modello"
msgid "Please create a template first."
-msgstr ""
-"Creare prima un modello."
+msgstr "Creare prima un modello."
msgid "Create a Template"
-msgstr ""
-"Crea un modello"
+msgstr "Crea un modello"
msgid "Please choose a template."
-msgstr ""
-"Scegliere un modello."
+msgstr "Scegliere un modello."
msgid "OS"
-msgstr ""
-"SO"
+msgstr "SO"
msgid "OS Version"
-msgstr ""
-"Versione SO"
+msgstr "Versione SO"
msgid "CPUS"
-msgstr ""
-"CPUS"
+msgstr "CPUS"
msgid "Memory"
-msgstr ""
-"Memoria"
+msgstr "Memoria"
msgid "Create"
-msgstr ""
-"Crea"
+msgstr "Crea"
msgid "Creating..."
-msgstr ""
-"Creazione..."
+msgstr "Creazione..."
msgid "Edit Guest"
-msgstr ""
-"Modifica macchina guest"
+msgstr "Modifica macchina guest"
msgid "General"
-msgstr ""
-"Generale"
+msgstr "Generale"
msgid "Storage"
-msgstr ""
-"Memoria"
+msgstr "Memoria"
msgid "Interface"
-msgstr ""
-"Interfaccia"
+msgstr "Interfaccia"
msgid "Permission"
-msgstr ""
-"Autorizzazione"
+msgstr "Autorizzazione"
msgid "Host PCI Device"
-msgstr ""
-"Dispositivo PCI host"
+msgstr "Dispositivo PCI host"
msgid "Snapshot"
-msgstr ""
-"Istantanea"
+msgstr "Istantanea"
msgid "Name"
-msgstr ""
-"Nome"
+msgstr "Nome"
msgid "CPUs"
-msgstr ""
-"CPU"
+msgstr "CPU"
msgid "Memory (MB)"
-msgstr ""
-"Memoria (MB)"
+msgstr "Memoria (MB)"
msgid "Icon"
-msgstr ""
-"Icona"
+msgstr "Icona"
msgid "Device"
-msgstr ""
-"Unità"
+msgstr "Unità"
msgid "Path"
-msgstr ""
-"Percorso"
+msgstr "Percorso"
msgid "Network"
-msgstr ""
-"Rete"
+msgstr "Rete"
msgid "Type"
-msgstr ""
-"Tipo"
+msgstr "Tipo"
msgid "MAC Address"
-msgstr ""
-"Indirizzo MAC"
+msgstr "Indirizzo MAC"
msgid "Available system users and groups"
-msgstr ""
-"Utenti e gruppi di sistema disponibili"
+msgstr "Utenti e gruppi di sistema disponibili"
msgid "Selected system users and groups"
-msgstr ""
-"Utenti e gruppi di sistema selezionati"
+msgstr "Utenti e gruppi di sistema selezionati"
msgid "User"
-msgstr ""
-"Utente "
+msgstr "Utente "
msgid "All"
-msgstr ""
-"Tutti"
+msgstr "Tutti"
msgid "To Add"
-msgstr ""
-"Da aggiungere"
+msgstr "Da aggiungere"
msgid "Added"
-msgstr ""
-"Aggiunto"
+msgstr "Aggiunto"
msgid "filter"
-msgstr ""
-"filtro"
+msgstr "filtro"
msgid "Product"
-msgstr ""
-"Prodotto"
+msgstr "Prodotto"
msgid "Vendor"
-msgstr ""
-"Fornitore"
+msgstr "Fornitore"
msgid "Created"
-msgstr ""
-"Creato"
+msgstr "Creato"
msgid "Save"
-msgstr ""
-"Salva"
+msgstr "Salva"
msgid "Replace"
-msgstr ""
-"Sostituisci"
+msgstr "Sostituisci"
msgid "Detach"
-msgstr ""
-"Scollega"
+msgstr "Scollega"
msgid "Cancel"
-msgstr ""
-"Annulla"
+msgstr "Annulla"
msgid "revert"
-msgstr ""
-"Inverti"
+msgstr "Inverti"
msgid "Add a Storage Device to VM"
-msgstr ""
-"Aggiungi un dispositivo di memoria alla VM"
+msgstr "Aggiungi un dispositivo di memoria alla VM"
msgid "Device Type"
-msgstr ""
-"Tipo dispositivo"
+msgstr "Tipo dispositivo"
msgid "The device type. Currently, \"cdrom\" and \"disk\" are supported."
msgstr ""
"Il tipo di dispositivo. Attualmente, sono supportati \"cdrom\" e \"disk\"."
msgid "Storage Pool"
-msgstr ""
-"Pool di memoria"
+msgstr "Pool di memoria"
msgid "Storage pool which volume located in"
-msgstr ""
-"Pool di memoria in cui si trova il volume"
+msgstr "Pool di memoria in cui si trova il volume"
msgid "Storage Volume"
-msgstr ""
-"Volume di memoria"
+msgstr "Volume di memoria"
msgid "Storage volume to be attached"
-msgstr ""
-"Volume di memoria oggetto del collegamento"
+msgstr "Volume di memoria oggetto del collegamento"
msgid "File Path"
-msgstr ""
-"Percorso file"
+msgstr "Percorso file"
msgid "The ISO file path in the server for CDROM."
-msgstr ""
-"Il percorso file ISO nel server per CDROM."
+msgstr "Il percorso file ISO nel server per CDROM."
msgid "Attach"
-msgstr ""
-"Allega"
+msgstr "Allega"
msgid "Start"
-msgstr ""
-"Avvia"
+msgstr "Avvia"
msgid "Reset"
-msgstr ""
-"Reimposta"
+msgstr "Reimposta"
msgid "Pause"
-msgstr ""
-"In pausa"
+msgstr "In pausa"
msgid "Resume"
-msgstr ""
-"Riprendi"
+msgstr "Riprendi"
msgid "Power Off"
-msgstr ""
-"Spegni"
+msgstr "Spegni"
msgid "Actions"
-msgstr ""
-"Azioni"
+msgstr "Azioni"
msgid "Connect"
-msgstr ""
-"Connetti"
+msgstr "Connetti"
msgid "Clone"
-msgstr ""
-"Clona"
+msgstr "Clona"
msgid "Edit"
-msgstr ""
-"Modifica"
+msgstr "Modifica"
msgid "Shut Down"
-msgstr ""
-"Arresta"
+msgstr "Arresta"
msgid "Delete"
-msgstr ""
-"Elimina"
+msgstr "Elimina"
msgid "The username or password you entered is incorrect. Please try again."
msgstr ""
-"Il nome utente o la password immessi non sono corretti. Ripetere l'operazione."
+"Il nome utente o la password immessi non sono corretti. Ripetere "
+"l'operazione."
msgid "This field is required."
-msgstr ""
-"Questo campo è obbligatorio."
+msgstr "Questo campo è obbligatorio."
msgid "Log in"
-msgstr ""
-"Accedi"
+msgstr "Accedi"
msgid "Logging in..."
-msgstr ""
-"Accesso in corso..."
+msgstr "Accesso in corso..."
msgid "Host"
-msgstr ""
-"Host"
+msgstr "Host"
msgid "Guests"
-msgstr ""
-"Guest"
+msgstr "Guest"
msgid "Templates"
-msgstr ""
-"Modelli"
+msgstr "Modelli"
msgid "Failed to get application configuration"
-msgstr ""
-"Richiamo della configurazione dell'applicazione non riuscito"
+msgstr "Richiamo della configurazione dell'applicazione non riuscito"
msgid "This is not a valid Linux path"
-msgstr ""
-"Non è un percorso Linux valido"
+msgstr "Non è un percorso Linux valido"
msgid "This is not a valid URL."
-msgstr ""
-"Non è un URL valido."
+msgstr "Non è un URL valido."
msgid "No such data available."
-msgstr ""
-"Dati indicati non disponibili."
+msgstr "Dati indicati non disponibili."
msgid ""
"Can not contact the host system. Verify the host system is up and that you "
"have network connectivity to it. HTTP request response %1. "
msgstr ""
-"Impossibile contattare il sistema host. Verificare che il sistema host sia attivo e che "
-"abbia la connettività di rete. Risposta alla richiesta HTTP %1. "
+"Impossibile contattare il sistema host. Verificare che il sistema host sia "
+"attivo e che abbia la connettività di rete. Risposta alla richiesta HTTP %1. "
msgid "Unable to read file."
-msgstr ""
-"Impossibile leggere il file."
+msgstr "Impossibile leggere il file."
msgid "Error while uploading file."
-msgstr ""
-"Errore durante il caricamento del file."
+msgstr "Errore durante il caricamento del file."
msgid "Delete Confirmation"
-msgstr ""
-"Conferma eliminazione"
+msgstr "Conferma eliminazione"
msgid "OK"
-msgstr ""
-"OK"
+msgstr "OK"
msgid "Confirm"
-msgstr ""
-"Conferma"
+msgstr "Conferma"
msgid "Warning"
-msgstr ""
-"Avvertenza"
+msgstr "Avvertenza"
msgid "Cloning..."
-msgstr ""
-"Clonazione..."
+msgstr "Clonazione..."
msgid "Loading..."
-msgstr ""
-"Caricamento in corso..."
+msgstr "Caricamento in corso..."
msgid "An error occurred while retrieving system information."
msgstr ""
"Si è verificato un errore durante il richiamo delle informazioni di sistema. "
msgid "Retry"
-msgstr ""
-"Riprova"
+msgstr "Riprova"
msgid "Detailed message:"
-msgstr ""
-"Messaggio dettagliato:"
+msgstr "Messaggio dettagliato:"
msgid "No ISO found"
-msgstr ""
-"Nessun file ISO trovato"
+msgstr "Nessun file ISO trovato"
msgid "This is not a valid ISO file."
-msgstr ""
-"Non è un file ISO valido."
+msgstr "Non è un file ISO valido."
msgid "This may take a long time. Do you want to continue?"
-msgstr ""
-"Questa operazione può richiedere del tempo. Si desidera continuare?"
+msgstr "Questa operazione può richiedere del tempo. Si desidera continuare?"
msgid "This will permanently delete the template. Would you like to continue?"
-msgstr ""
-"L'azione eliminerà permanentemente il modello. Si desidera continuare?"
+msgstr "L'azione eliminerà permanentemente il modello. Si desidera continuare?"
msgid "Unable to shut down system as there are some virtual machines running!"
msgstr ""
-"Impossibile arrestare il sistema poiché sono in esecuzione alcune macchine virtuali."
+"Impossibile arrestare il sistema poiché sono in esecuzione alcune macchine "
+"virtuali."
msgid "Max:"
-msgstr ""
-"Massimo:"
+msgstr "Massimo:"
msgid "Utilization"
-msgstr ""
-"Utilizzo"
+msgstr "Utilizzo"
msgid "Available"
-msgstr ""
-"Disponibile"
+msgstr "Disponibile"
msgid "Read Rate"
-msgstr ""
-"Velocità di lettura"
+msgstr "Velocità di lettura"
msgid "Write Rate"
-msgstr ""
-"Velocità di scrittura"
+msgstr "Velocità di scrittura"
msgid "Received"
-msgstr ""
-"Ricevuti"
+msgstr "Ricevuti"
msgid "Sent"
-msgstr ""
-"Inviati"
+msgstr "Inviati"
msgid ""
"Shutting down or restarting host will cause unsaved work lost. Continue to "
"shut down/restarting?"
msgstr ""
-"L'arresto o il riavvio dell'host provocherà la perdita del lavoro non salvato. Continuare con "
-"l'arresto o il riavvio?"
+"L'arresto o il riavvio dell'host provocherà la perdita del lavoro non "
+"salvato. Continuare con l'arresto o il riavvio?"
msgid ""
"Repository will be removed permanently and can't be recovered. Do you want "
"to continue?"
msgstr ""
-"Il repository verrà rimosso permanentemente e non potrà essere ripristinato. Si desidera "
-"continuare?"
+"Il repository verrà rimosso permanentemente e non potrà essere ripristinato. "
+"Si desidera continuare?"
msgid "Repositories"
-msgstr ""
-"Repository"
+msgstr "Repository"
msgid "ID"
-msgstr ""
-"ID"
+msgstr "ID"
msgid "Base URL"
-msgstr ""
-"URL di base"
+msgstr "URL di base"
msgid "Is Mirror"
-msgstr ""
-"È speculare"
+msgstr "È speculare"
msgid "URL Args"
-msgstr ""
-"Argomenti URL"
+msgstr "Argomenti URL"
msgid "Enabled"
-msgstr ""
-"Abilitato"
+msgstr "Abilitato"
msgid "GPG Check"
-msgstr ""
-"Controllo GPG"
+msgstr "Controllo GPG"
msgid "GPG Key"
-msgstr ""
-"Chiave GPG"
+msgstr "Chiave GPG"
msgid "Add"
-msgstr ""
-"Aggiungi"
+msgstr "Aggiungi"
msgid "Remove"
-msgstr ""
-"Rimuovi"
+msgstr "Rimuovi"
msgid "Enable"
-msgstr ""
-"Abilita"
+msgstr "Abilita"
msgid "Disable"
-msgstr ""
-"Disabilita"
+msgstr "Disabilita"
msgid "Software Updates"
-msgstr ""
-"Aggiornamenti del software"
+msgstr "Aggiornamenti del software"
msgid "Package Name"
-msgstr ""
-"Nome pacchetto"
+msgstr "Nome pacchetto"
msgid "Version"
-msgstr ""
-"Versione"
+msgstr "Versione"
msgid "Architecture"
-msgstr ""
-"Architettura"
+msgstr "Architettura"
msgid "Repository"
-msgstr ""
-"Repository"
+msgstr "Repository"
msgid "Update All"
-msgstr ""
-"Aggiorna tutto"
+msgstr "Aggiorna tutto"
msgid "Updating..."
-msgstr ""
-"Aggiornamento in corso..."
+msgstr "Aggiornamento in corso..."
msgid "Failed to retrieve packages update information."
msgstr ""
"Richiamo delle informazioni di aggiornamento dei pacchetti non riuscito."
msgid "Failed to update package(s)."
-msgstr ""
-"Aggiornamento dei pacchetti non riuscito."
+msgstr "Aggiornamento dei pacchetti non riuscito."
msgid ""
"Debug report will be removed permanently and can't be recovered. Do you want "
"to continue?"
msgstr ""
-"Il report del debug verrà rimosso permanentemente e non potrà essere ripristinato. Si desidera "
-"continuare?"
+"Il report del debug verrà rimosso permanentemente e non potrà essere "
+"ripristinato. Si desidera continuare?"
msgid "Debug Reports"
-msgstr ""
-"Report di debug"
+msgstr "Report di debug"
msgid "Generated Time"
-msgstr ""
-"Ora di creazione"
+msgstr "Ora di creazione"
msgid "Generate"
-msgstr ""
-"Crea"
+msgstr "Crea"
msgid "Generating..."
-msgstr ""
-"Creazione in corso..."
+msgstr "Creazione in corso..."
msgid "Rename"
-msgstr ""
-"Ridenomina"
+msgstr "Ridenomina"
msgid "Download"
-msgstr ""
-"Scarica"
+msgstr "Scarica"
msgid ""
"Report name should contain only letters, digits, underscore ('_') and/or "
"hyphen ('-')."
msgstr ""
-"Il nome del report può contenere solo lettere, cifre, sottolineature ('_') e/o "
-"trattini ('-')."
+"Il nome del report può contenere solo lettere, cifre, sottolineature ('_') e/"
+"o trattini ('-')."
msgid "Pending..."
-msgstr ""
-"In sospeso..."
+msgstr "In sospeso..."
msgid "Report name is the same as the original one."
-msgstr ""
-"Il nome report è uguale a quello originale. "
+msgstr "Il nome report è uguale a quello originale. "
msgid ""
"This will delete the virtual machine and its virtual disks. This operation "
@@ -2074,133 +1825,117 @@ msgstr ""
"non è reversibile. Si desidera continuare?"
msgid "Power off Confirmation"
-msgstr ""
-"Conferma spegnimento"
+msgstr "Conferma spegnimento"
msgid ""
"This action may produce undesirable results, for example unflushed disk "
"cache in the guest. Would you like to continue?"
msgstr ""
-"Questa azione può produrre dei risultati indesiderabili, ad esempio una cache di disco "
-"non ripulita nella macchina guest. Si desidera continuare?"
+"Questa azione può produrre dei risultati indesiderabili, ad esempio una "
+"cache di disco non ripulita nella macchina guest. Si desidera continuare?"
msgid "Reset Confirmation"
-msgstr ""
-"Conferma reimpostazione"
+msgstr "Conferma reimpostazione"
msgid ""
"There is a risk of data loss caused by reset without the guest OS shutdown. "
"Would you like to continue?"
msgstr ""
-"C'è un rischio di perdita di dati causato dalla reimpostazione senza l'arresto del sistema operativo della macchina guest. "
-"Si desidera continuare?"
+"C'è un rischio di perdita di dati causato dalla reimpostazione senza "
+"l'arresto del sistema operativo della macchina guest. Si desidera continuare?"
msgid "Shut Down Confirmation"
-msgstr ""
-"Conferma dell'arresto"
+msgstr "Conferma dell'arresto"
msgid "Note the guest OS may ignore this request. Would you like to continue?"
msgstr ""
-"Notare che il sistema operativo della macchina guest può ignorare questa richiesta. Si desidera continuare?"
+"Notare che il sistema operativo della macchina guest può ignorare questa "
+"richiesta. Si desidera continuare?"
msgid "Virtual Machine delete Confirmation"
-msgstr ""
-"Conferma di eliminazione della macchina virtuale"
+msgstr "Conferma di eliminazione della macchina virtuale"
msgid ""
"This virtual machine is not persistent. Power Off will delete it. Continue?"
msgstr ""
-"Questa macchina virtuale non è persistente. Lo spegnimento la eliminerà. Continuare?"
+"Questa macchina virtuale non è persistente. Lo spegnimento la eliminerà. "
+"Continuare?"
msgid ""
"When the target guest has SCSI or iSCSI volumes, they will be cloned on "
"default storage pool. The same will happen when the target pool does not "
"have enough space to clone the volumes. Do you want to continue?"
msgstr ""
-"Quando la macchina guest di destinazione ha volumi SCSI o iSCSI, essi verranno clonati sul"
-"pool di memoria predefinito. Lo stesso accadrà se il pool di destinazione non"
-"ha spazio sufficiente per clonare i volumi. Si desidera continuare?"
+"Quando la macchina guest di destinazione ha volumi SCSI o iSCSI, essi "
+"verranno clonati sulpool di memoria predefinito. Lo stesso accadrà se il "
+"pool di destinazione nonha spazio sufficiente per clonare i volumi. Si "
+"desidera continuare?"
msgid ""
"This CDROM will be detached permanently and you can re-attach it. Continue "
"to detach it?"
msgstr ""
-"Il CDROM verrà scollegato permanentemente e non sarà possibile ricollegarlo. Continuare con "
-"lo scollegamento?"
+"Il CDROM verrà scollegato permanentemente e non sarà possibile ricollegarlo. "
+"Continuare con lo scollegamento?"
msgid "Attaching..."
-msgstr ""
-"Collegamento in corso..."
+msgstr "Collegamento in corso..."
msgid "Replacing..."
-msgstr ""
-"Sostituzione in corso..."
+msgstr "Sostituzione in corso..."
msgid "Successfully attached!"
-msgstr ""
-"Collegamento riuscito."
+msgstr "Collegamento riuscito."
msgid "Successfully replaced!"
-msgstr ""
-"Sostituzione riuscita."
+msgstr "Sostituzione riuscita."
msgid "Successfully detached!"
-msgstr ""
-"Scollegamento riuscito."
+msgstr "Scollegamento riuscito."
msgid ""
"This disk will be detached permanently and you can re-attach it. Continue to "
"detach it?"
msgstr ""
-"Il disco verrà scollegato permanentemente e sarà possibile ricollegarlo. Continuare con "
-"lo scollegamento?"
+"Il disco verrà scollegato permanentemente e sarà possibile ricollegarlo. "
+"Continuare con lo scollegamento?"
msgid "interface:"
-msgstr ""
-"interfaccia:"
+msgstr "interfaccia:"
msgid "address:"
-msgstr ""
-"indirizzo:"
+msgstr "indirizzo:"
msgid "link_type:"
-msgstr ""
-"tipo_link:"
+msgstr "tipo_link:"
msgid "block:"
-msgstr ""
-"blocco:"
+msgstr "blocco:"
msgid "drive_type:"
-msgstr ""
-"tipo_drive:"
+msgstr "tipo_drive:"
msgid "model:"
-msgstr ""
-"modello:"
+msgstr "modello:"
msgid "Affected devices:"
-msgstr ""
-"Dispositivi influenzati:"
+msgstr "Dispositivi influenzati:"
msgid "The VLAN id must be between 1 and 4094."
-msgstr ""
-"L'ID VLAN deve essere compreso tra 1 e 4094."
+msgstr "L'ID VLAN deve essere compreso tra 1 e 4094."
msgid "unavailable"
-msgstr ""
-"non disponibile"
+msgstr "non disponibile"
msgid ""
"This action will interrupt network connectivity for any virtual machine that "
"depend on this network."
msgstr ""
-"L'azione interromperà la connettività di rete per qualsiasi macchina virtuale che "
-"dipende da questa rete."
+"L'azione interromperà la connettività di rete per qualsiasi macchina "
+"virtuale che dipende da questa rete."
msgid "Create a network"
-msgstr ""
-"Crea una rete"
+msgstr "Crea una rete"
msgid ""
"This network is not persistent. Instead of stop, this action will "
@@ -2213,84 +1948,70 @@ msgid ""
"The bridged VLAN tag may not work well with NetworkManager enabled. You "
"should consider disabling it."
msgstr ""
-"La tag VLAN con bridge potrebbe non funzionare bene con NetworkManager abilitato. Si "
-"dovrebbe prendere in considerazione la sua disabilitazione. "
+"La tag VLAN con bridge potrebbe non funzionare bene con NetworkManager "
+"abilitato. Si dovrebbe prendere in considerazione la sua disabilitazione. "
msgid ""
"This will permanently delete the storage pool. Would you like to continue?"
msgstr ""
-"L'azione eliminerà permanentemente il pool di memoria. Si desidera continuare?"
+"L'azione eliminerà permanentemente il pool di memoria. Si desidera "
+"continuare?"
msgid "This storage pool is empty."
-msgstr ""
-"Il pool di memoria è vuoto."
+msgstr "Il pool di memoria è vuoto."
msgid ""
"It will format your disk and you will loose any data in there, are you sure "
"to continue? "
msgstr ""
-"Il disco verrà formattato e tutti i dati su di esso andranno persi, sicuri di voler "
-"continuare? "
+"Il disco verrà formattato e tutti i dati su di esso andranno persi, sicuri "
+"di voler continuare? "
msgid "SCSI Fibre Channel"
-msgstr ""
-"Canale a fibre ottiche SCSI"
+msgstr "Canale a fibre ottiche SCSI"
msgid "No SCSI adapters found."
-msgstr ""
-"Nessun adattatore SCSI trovato."
+msgstr "Nessun adattatore SCSI trovato."
msgid "Loading iSCSI targets..."
-msgstr ""
-"Caricamento delle destinazioni iSCSI..."
+msgstr "Caricamento delle destinazioni iSCSI..."
msgid "No iSCSI found. Please input one."
-msgstr ""
-"iSCSI non trovato. Immetterne uno."
+msgstr "iSCSI non trovato. Immetterne uno."
msgid "Failed to load iSCSI targets."
-msgstr ""
-"Impossibile caricare le destinazioni iSCSI."
+msgstr "Impossibile caricare le destinazioni iSCSI."
msgid "The storage pool name can not be blank."
-msgstr ""
-"Il campo per il nome del pool di memoria non può essere vuoto."
+msgstr "Il campo per il nome del pool di memoria non può essere vuoto."
msgid "The storage pool path can not be blank."
-msgstr ""
-"Il campo per il percorso del pool di memoria non può essere vuoto."
+msgstr "Il campo per il percorso del pool di memoria non può essere vuoto."
msgid "NFS server mount path can not be blank."
msgstr ""
"Il campo per il percorso di montaggio del server NFS non può essere vuoto."
msgid "Invalid NFS mount path."
-msgstr ""
-"Percorso di montaggio NFS non valido."
+msgstr "Percorso di montaggio NFS non valido."
msgid "No logical device selected."
-msgstr ""
-"Nessun dispositivo logico selezionato."
+msgstr "Nessun dispositivo logico selezionato."
msgid "The iSCSI target can not be blank."
-msgstr ""
-"Il campo per la destinazione iSCSI non può essere vuoto."
+msgstr "Il campo per la destinazione iSCSI non può essere vuoto."
msgid "Server name can not be blank."
-msgstr ""
-"Il campo per il nome del server non può essere vuoto."
+msgstr "Il campo per il nome del server non può essere vuoto."
msgid "This is not a valid Server Name or IP. Please, modify it."
-msgstr ""
-"Nome server o IP non validi. Modificarli."
+msgstr "Nome server o IP non validi. Modificarli."
msgid "Looking for available partitions ..."
-msgstr ""
-"Ricerca di partizioni disponibili in corso..."
+msgstr "Ricerca di partizioni disponibili in corso..."
msgid "No available partitions found."
-msgstr ""
-"Nessuna partizione disponibile trovata."
+msgstr "Nessuna partizione disponibile trovata."
msgid ""
"This storage pool is not persistent. Instead of deactivate, this action will "
@@ -2300,542 +2021,420 @@ msgstr ""
"eliminerà permanentemente. Si desidera continuare?"
msgid "Unable to retrieve partitions information."
-msgstr ""
-"Impossibile caricare le informazioni sulla partizione. "
+msgstr "Impossibile caricare le informazioni sulla partizione. "
msgid "In progress..."
-msgstr ""
-"In corso..."
+msgstr "In corso..."
msgid "Failed!"
-msgstr ""
-"Non riuscito."
+msgstr "Non riuscito."
msgid "CDROM path needs to be a valid local/remote path and cannot be blank."
msgstr ""
-"Il percorso CDROM deve essere un percorso locale/remoto valido e non può essere vuoto."
+"Il percorso CDROM deve essere un percorso locale/remoto valido e non può "
+"essere vuoto."
msgid "Disk pool or volume cannot be blank."
-msgstr ""
-"Il volume o il pool di dischi non può essere vuoto."
+msgstr "Il volume o il pool di dischi non può essere vuoto."
msgid "Peers"
-msgstr ""
-"Peer"
+msgstr "Peer"
msgid "Searching"
-msgstr ""
-"Ricerca "
+msgstr "Ricerca "
msgid "No peers found."
-msgstr ""
-"Nessun peer trovato. "
+msgstr "Nessun peer trovato. "
msgid "Help"
-msgstr ""
-"Guida"
+msgstr "Guida"
msgid "About"
-msgstr ""
-"Info su"
+msgstr "Info su"
msgid "Log out"
-msgstr ""
-"Disconnetti"
+msgstr "Disconnetti"
msgid "Version:"
-msgstr ""
-"Versione:"
+msgstr "Versione:"
msgid "Session timeout, please re-login."
-msgstr ""
-"Timeout della sessione; rieseguire l'accesso."
+msgstr "Timeout della sessione; rieseguire l'accesso."
msgid "User Name"
-msgstr ""
-"Nome utente"
+msgstr "Nome utente"
msgid "Password"
-msgstr ""
-"Password"
+msgstr "Password"
msgid "Generate a New Debug Report"
-msgstr ""
-"Crea un nuovo report di debug"
+msgstr "Crea un nuovo report di debug"
msgid "Report Name"
-msgstr ""
-"Nome report"
+msgstr "Nome report"
msgid ""
"The name used to identify the report. If omitted, a name will be chosen "
"based on current time. Name can contain: letters, digits, underscore (\"_\") "
"and hyphen (\"-\")."
msgstr ""
-"Il nome utilizzato per identificare il report. Se il nome viene omesso, ne viene scelto uno "
-"in base all'ora corrente. Il nome può contenere lettere, cifre, sottolineature (\"_\") "
-"e trattini (\"-\")."
+"Il nome utilizzato per identificare il report. Se il nome viene omesso, ne "
+"viene scelto uno in base all'ora corrente. Il nome può contenere lettere, "
+"cifre, sottolineature (\"_\") e trattini (\"-\")."
msgid "Rename a Debug Report"
-msgstr ""
-"Ridenomina un report di debug"
+msgstr "Ridenomina un report di debug"
msgid ""
"The name used to identify the report. Name can contain: letters, digits and "
"hyphen (\"-\")."
msgstr ""
-"Il nome utilizzato per identificare il report. Il nome può contenere lettere, cifre e"
-"trattini (\"-\")."
+"Il nome utilizzato per identificare il report. Il nome può contenere "
+"lettere, cifre etrattini (\"-\")."
msgid "Submit"
-msgstr ""
-"Inoltra"
+msgstr "Inoltra"
msgid "Add a Repository"
-msgstr ""
-"Aggiungi un repository"
+msgstr "Aggiungi un repository"
msgid "Identifier"
-msgstr ""
-"Identificativo"
+msgstr "Identificativo"
msgid "Single word, unique identifier for the repository."
-msgstr ""
-"Identificativo univoco di una sola parola per il repository."
+msgstr "Identificativo univoco di una sola parola per il repository."
msgid "Textual name for the repository."
-msgstr ""
-"Nome in formato testo per il repository."
+msgstr "Nome in formato testo per il repository."
msgid "URL"
-msgstr ""
-"URL"
+msgstr "URL"
msgid "Required Field"
-msgstr ""
-"Campo obbligatorio"
+msgstr "Campo obbligatorio"
msgid "URL to the repository. Supported protocols are http, ftp, and file."
-msgstr ""
-"URL al repository. I protocolli supportati sono http, ftp e file."
+msgstr "URL al repository. I protocolli supportati sono http, ftp e file."
msgid "Repository is a mirror"
-msgstr ""
-"Il repository è un elemento speculare"
+msgstr "Il repository è un elemento speculare"
msgid "Distribution"
-msgstr ""
-"Distribuzione"
+msgstr "Distribuzione"
msgid "Distribution of the DEB repository."
-msgstr ""
-"Distribuzione del repository DEB."
+msgstr "Distribuzione del repository DEB."
msgid "Components"
-msgstr ""
-"Componenti"
+msgstr "Componenti"
msgid "List of components in DEB repository."
-msgstr ""
-"Elenco di componenti nel repository DEB."
+msgstr "Elenco di componenti nel repository DEB."
msgid "Edit Repository"
-msgstr ""
-"Modifica repository"
+msgstr "Modifica repository"
msgid "Mirror List URL"
-msgstr ""
-"URL elenco elementi speculari"
+msgstr "URL elenco elementi speculari"
msgid "Yes"
-msgstr ""
-"Sì"
+msgstr "Sì"
msgid "No"
-msgstr ""
-"No"
+msgstr "No"
msgid "Add a Volume to Storage Pool"
-msgstr ""
-"Aggiungi un volume al pool di memoria"
+msgstr "Aggiungi un volume al pool di memoria"
msgid "Fetch from remote URL"
-msgstr ""
-"Richiama da URL remoto"
+msgstr "Richiama da URL remoto"
msgid "Enter the remote URL here."
-msgstr ""
-"Immettere qui l'URL remoto. "
+msgstr "Immettere qui l'URL remoto. "
msgid "Upload a file"
-msgstr ""
-"Carica un file"
+msgstr "Carica un file"
msgid "Choose the file you want to upload."
-msgstr ""
-"Selezionare il file da caricare. "
+msgstr "Selezionare il file da caricare. "
msgid "Define a New Storage Pool"
-msgstr ""
-"Definisci un nuovo pool di memoria"
+msgstr "Definisci un nuovo pool di memoria"
msgid "Storage Pool Name"
-msgstr ""
-"Nome pool di memoria"
+msgstr "Nome pool di memoria"
msgid ""
"The name used to identify the storage pools, and it should not be empty."
msgstr ""
-"Il nome utilizzato per identificare i pool di memoria; il campo non deve essere vuoto."
+"Il nome utilizzato per identificare i pool di memoria; il campo non deve "
+"essere vuoto."
msgid "Storage Pool Type"
-msgstr ""
-"Tipo di pool di memoria"
+msgstr "Tipo di pool di memoria"
msgid "Storage Path"
-msgstr ""
-"Percorso di memoria"
+msgstr "Percorso di memoria"
msgid ""
"The path of the Storage Pool. Each Storage Pool must have a unique path."
msgstr ""
-"Il percorso del pool di memoria. Ogni pool di memoria deve avere un percorso univoco."
+"Il percorso del pool di memoria. Ogni pool di memoria deve avere un percorso "
+"univoco."
msgid ""
"Kimchi will try to create the directory when it does not already exist in "
"your system."
msgstr ""
-"Kimchi tenterà di creare la directory nel caso non esista ancora sul "
-"sistema."
+"Kimchi tenterà di creare la directory nel caso non esista ancora sul sistema."
msgid "NFS Server IP"
-msgstr ""
-"IP server NFS"
+msgstr "IP server NFS"
msgid "NFS server IP or hostname. It can be input or chosen from history."
msgstr ""
-"Il nome host o l'indirizzo IP del server NFS. È possibile immetterlo o sceglierlo dalla cronologia."
+"Il nome host o l'indirizzo IP del server NFS. È possibile immetterlo o "
+"sceglierlo dalla cronologia."
msgid "NFS Path"
-msgstr ""
-"Percorso NFS"
+msgstr "Percorso NFS"
msgid "The NFS exported path on NFS server."
-msgstr ""
-"Il percorso esportato NFS sul server NFS."
+msgstr "Il percorso esportato NFS sul server NFS."
msgid "Device path"
-msgstr ""
-"Percorso dispositivo"
+msgstr "Percorso dispositivo"
msgid "iSCSI Server"
-msgstr ""
-"Server iSCSI"
+msgstr "Server iSCSI"
msgid "iSCSI server IP or hostname. It should not be empty."
msgstr ""
-"Il nome host o l'indirizzo IP del server iSCSI. Il campo non deve essere vuoto."
+"Il nome host o l'indirizzo IP del server iSCSI. Il campo non deve essere "
+"vuoto."
msgid "Server"
-msgstr ""
-"Server"
+msgstr "Server"
msgid "Port"
-msgstr ""
-"Porta"
+msgstr "Porta"
msgid "Target"
-msgstr ""
-"Destinazione"
+msgstr "Destinazione"
msgid "The iSCSI target on iSCSI server"
-msgstr ""
-"La destinazione iSCSI sul server iSCSI"
+msgstr "La destinazione iSCSI sul server iSCSI"
msgid "Add iSCSI Authentication"
-msgstr ""
-"Aggiungi autenticazione iSCSI"
+msgstr "Aggiungi autenticazione iSCSI"
msgid "iSCSI Authentication"
-msgstr ""
-"Autenticazione iSCSI"
+msgstr "Autenticazione iSCSI"
msgid "SCSI Adapter"
-msgstr ""
-"Adattatore SCSI"
+msgstr "Adattatore SCSI"
msgid "Please, wait..."
-msgstr ""
-"Attendere..."
+msgstr "Attendere..."
msgid "Add Template"
-msgstr ""
-"Aggiungi modello"
+msgstr "Aggiungi modello"
msgid "Where is the source media for this template? "
-msgstr ""
-"Dov'è il supporto di origine per questo modello? "
+msgstr "Dov'è il supporto di origine per questo modello? "
msgid "Local ISO Image"
-msgstr ""
-"Immagine ISO locale"
+msgstr "Immagine ISO locale"
msgid "Local Image File"
-msgstr ""
-"File immagine locale"
+msgstr "File immagine locale"
msgid "Remote ISO Image"
-msgstr ""
-"Immagine ISO remota"
+msgstr "Immagine ISO remota"
msgid "Search ISOs"
-msgstr ""
-"Ricerca ISO"
+msgstr "Ricerca ISO"
msgid "The following ISOs are available:"
-msgstr ""
-"Sono disponibili i seguenti file ISO:"
+msgstr "Sono disponibili i seguenti file ISO:"
msgid "OS: "
-msgstr ""
-"SO: "
+msgstr "SO: "
msgid "Version: "
-msgstr ""
-"Versione: "
+msgstr "Versione: "
msgid "Size: "
-msgstr ""
-"Dimensione: "
+msgstr "Dimensione: "
msgid "Search more ISOs"
-msgstr ""
-"Ricerca più ISO"
+msgstr "Ricerca più ISO"
msgid "Create Templates from Selected ISO"
-msgstr ""
-"Crea modelli da ISO selezionato"
+msgstr "Crea modelli da ISO selezionato"
msgid "I want to use a specific ISO file"
-msgstr ""
-"Utilizzare un file ISO specifico"
+msgstr "Utilizzare un file ISO specifico"
msgid "Loading default remote ISOs ..."
-msgstr ""
-"Caricamento di ISO remoti predefiniti in corso..."
+msgstr "Caricamento di ISO remoti predefiniti in corso..."
msgid "Arch: "
-msgstr ""
-"Arch: "
+msgstr "Arch: "
msgid "I want to use a custom URL"
-msgstr ""
-"Utilizzare un URL personalizzato"
+msgstr "Utilizzare un URL personalizzato"
msgid "Edit Template"
-msgstr ""
-"Modifica modello"
+msgstr "Modifica modello"
msgid "Processor"
-msgstr ""
-"Processore"
+msgstr "Processore"
msgid "CDROM"
-msgstr ""
-"CDROM"
+msgstr "CDROM"
msgid "Image File"
-msgstr ""
-"File immagine "
+msgstr "File immagine "
msgid "Graphics"
-msgstr ""
-"Grafici"
+msgstr "Grafici"
msgid "Disk(GB)"
-msgstr ""
-"Disco (GB)"
+msgstr "Disco (GB)"
msgid "Disk Format"
-msgstr ""
-"Formato disco"
+msgstr "Formato disco"
msgid "CPU Number"
-msgstr ""
-"Numero CPU"
+msgstr "Numero CPU"
msgid "Manually set CPU topology"
-msgstr ""
-"Imposta manualmente la topologia CPU"
+msgstr "Imposta manualmente la topologia CPU"
msgid "Cores"
-msgstr ""
-"Core"
+msgstr "Core"
msgid "Threads"
-msgstr ""
-"Thread"
+msgstr "Thread"
msgid "CPU"
-msgstr ""
-"CPU"
+msgstr "CPU"
msgid "Disk I/O"
-msgstr ""
-"I/O disco"
+msgstr "I/O disco"
msgid "Network I/O"
-msgstr ""
-"I/O di rete"
+msgstr "I/O di rete"
msgid "Livetile"
-msgstr ""
-"Riquadro animato"
+msgstr "Riquadro animato"
msgid "No guests found."
-msgstr ""
-"Nessuna macchina guest trovata."
+msgstr "Nessuna macchina guest trovata."
msgid "Shut down"
-msgstr ""
-"Arresta"
+msgstr "Arresta"
msgid "Restart"
-msgstr ""
-"Riavvia"
+msgstr "Riavvia"
msgid "Basic Information"
-msgstr ""
-"Informazioni di base"
+msgstr "Informazioni di base"
msgid "OS Distro"
-msgstr ""
-"Distro SO"
+msgstr "Distro SO"
msgid "OS Code Name"
-msgstr ""
-"Nome codice SO"
+msgstr "Nome codice SO"
msgid "CPU(s)"
-msgstr ""
-"CPU"
+msgstr "CPU"
msgid "System Statistics"
-msgstr ""
-"Statistiche di sistema"
+msgstr "Statistiche di sistema"
msgid "Update Progress"
-msgstr ""
-"Avanzamento aggiornamento"
+msgstr "Avanzamento aggiornamento"
msgid "Network Name"
-msgstr ""
-"Nome rete"
+msgstr "Nome rete"
msgid "State"
-msgstr ""
-"Stato"
+msgstr "Stato"
msgid "Network Type"
-msgstr ""
-"Tipo di Rete"
+msgstr "Tipo di Rete"
msgid "Address Space"
-msgstr ""
-"Spazio indirizzo"
+msgstr "Spazio indirizzo"
msgid "Name should not contain '/' and '\"'."
-msgstr ""
-"Il nome non deve contenere '/' e '\"'."
+msgstr "Il nome non deve contenere '/' e '\"'."
msgid "Isolated: no external network connection"
-msgstr ""
-"Isolata: nessuna connessione di rete esterna"
+msgstr "Isolata: nessuna connessione di rete esterna"
msgid "NAT: outbound physical network connection only"
-msgstr ""
-"NAT: solo connessione di rete fisica in uscita"
+msgstr "NAT: solo connessione di rete fisica in uscita"
msgid "Bridged: Virtual machines are connected to physical network directly"
msgstr ""
"Con bridge: le macchine virtuali sono connesse direttamente alla rete fisica"
msgid "(No interfaces found)"
-msgstr ""
-"(Nessuna interfaccia trovata)"
+msgstr "(Nessuna interfaccia trovata)"
msgid "Destination"
-msgstr ""
-"Destinazione"
+msgstr "Destinazione"
msgid "Enable VLAN"
-msgstr ""
-"Abilita VLAN"
+msgstr "Abilita VLAN"
msgid "VLAN ID"
-msgstr ""
-"ID VLAN"
+msgstr "ID VLAN"
msgid "Stop"
-msgstr ""
-"Arresta"
+msgstr "Arresta"
msgid "%Used"
-msgstr ""
-"% utilizzata"
+msgstr "% utilizzata"
msgid "Location"
-msgstr ""
-"Ubicazione"
+msgstr "Ubicazione"
msgid "Capacity"
-msgstr ""
-"Capacità"
+msgstr "Capacità"
msgid "Allocated"
-msgstr ""
-"Assegnato"
+msgstr "Assegnato"
msgid "active"
-msgstr ""
-"attivo"
+msgstr "attivo"
msgid "inactive"
-msgstr ""
-"non attivo"
+msgstr "non attivo"
msgid "Deactivate"
-msgstr ""
-"Disattiva"
+msgstr "Disattiva"
msgid "Activate"
-msgstr ""
-"Attiva"
+msgstr "Attiva"
msgid "Add Volume"
-msgstr ""
-"Aggiungi volume"
+msgstr "Aggiungi volume"
msgid "Extend"
-msgstr ""
-"Estendi"
+msgstr "Estendi"
msgid "Undefine"
-msgstr ""
-"Rimuovi definizione"
+msgstr "Rimuovi definizione"
msgid "Format"
-msgstr ""
-"Formato"
+msgstr "Formato"
msgid "Allocation"
-msgstr ""
-"Assegnazione"
+msgstr "Assegnazione"
msgid "No templates found."
-msgstr ""
-"Nessun modello trovato."
-
-# ENGL1SH_VERS10N 28617_40 DO NOT REMOVE OR CHANGE THIS LINE
-# T9N_SRC_ID 92
-# T9N_SH1P_STR1NG KV310AAP001 1
+msgstr "Nessun modello trovato."
diff --git a/po/ja_JP.po b/po/ja_JP.po
index 52770fb..a95a210 100644
--- a/po/ja_JP.po
+++ b/po/ja_JP.po
@@ -1,11 +1,12 @@
# English translations for kimchi package.
# Copyright (C) 2013 ORGANIZATION
+# Adam Litke <agl(a)us.ibm.com>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: kimchi 0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-24 09:39-0300\n"
+"POT-Creation-Date: 2015-08-21 09:52-0300\n"
"PO-Revision-Date: 2013-07-11 17:32-0400\n"
"Last-Translator: Crístian Viana <vianac(a)linux.vnet.ibm.com>\n"
"Language-Team: English\n"
@@ -14,15 +15,15 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
#, python-format
msgid "Unknown parameter %(value)s"
-msgstr ""
+msgstr "パラメーター %(value)s が不明です"
#, python-format
msgid "Delete is not allowed for %(resource)s"
-msgstr "%(resource)s の削除は許可されません"
+msgstr "%(resource)s に対して削除は許可されません"
#, python-format
msgid "%(resource)s does not implement update method"
@@ -30,7 +31,7 @@ msgstr "%(resource)s は更新メソッドを実装していません"
#, python-format
msgid "Create is not allowed for %(resource)s"
-msgstr "%(resource)s の作成は許可されません"
+msgstr "%(resource)s に対して作成は許可されません"
msgid "Unable to parse JSON request"
msgstr "JSON 要求を解析できません"
@@ -40,10 +41,10 @@ msgstr "この API は JSON のみサポートします"
#, python-format
msgid "Parameters does not match requirement in schema: %(err)s"
-msgstr ""
+msgstr "パラメーターがスキーマでの要件に適合しません: %(err)s"
msgid "You don't have permission to perform this operation."
-msgstr ""
+msgstr "この操作を実行する権限がありません。"
msgid "Datastore is not initiated in the model object."
msgstr "データ・ストアは、モデル・オブジェクトで開始されていません。"
@@ -55,6 +56,7 @@ msgstr "次のエラーのため、タスクを開始できません: %(err)s"
#, python-format
msgid "Timeout of %(seconds)s seconds expired while running task '%(task)s."
msgstr ""
+"タスク %(task)s の実行中に %(seconds)s 秒のタイムアウトが満了しました。"
#, python-format
msgid "Authentication failed for user '%(username)s'. [Error code: %(code)s]"
@@ -70,41 +72,42 @@ msgstr "Kimchi にログインするには、%(item)s を指定します"
#, python-format
msgid "User %(user_id)s not found with given LDAP settings."
-msgstr ""
+msgstr "指定の LDAP 設定を持つユーザー %(user_id)s が見つかりません。"
#, python-format
msgid "Invalid LDAP configuration: %(item)s : %(value)s"
-msgstr ""
+msgstr "LDAP 構成が無効です: %(item)s : %(value)s"
msgid "Unknown \"_cap\" specified"
-msgstr ""
+msgstr "不明な「_cap」が指定されました"
msgid "\"_passthrough\" should be \"true\" or \"false\""
-msgstr ""
+msgstr "「_passthrough」は「true」または「false」でなければなりません"
msgid "\"_passthrough_affected_by\" should be a device name string"
-msgstr ""
+msgstr "「_passthrough_affected_by」はデバイス名ストリングでなければなりません"
+
+msgid "\"_available_only\" should be \"true\" or \"false\""
+msgstr "「_available_only」は「true」または「false」でなければなりません"
#, python-format
msgid "Error while getting block devices. Details: %(err)s"
-msgstr ""
-"ブロック・デバイスを取得しているときに、エラーがありました。詳細: %(err)s"
+msgstr "ブロック・デバイスの取得中にエラーが発生しました。詳細: %(err)s"
#, python-format
msgid "Error while getting block device information for %(device)s."
-msgstr ""
-"%(device)s のブロック・デバイス情報を取得しているときに、エラーがありました。"
+msgstr "%(device)s のブロック・デバイス情報の取得中にエラーが発生しました。"
#, python-format
msgid "Unable to find distro file: %(filename)s"
-msgstr "ディストリビューション・ファイル %(filename)s が見つかりません"
+msgstr "distro ファイル %(filename)s が見つかりません"
#, python-format
msgid ""
"Unable to parse distro file: %(filename)s. Make sure, it is a JSON file."
msgstr ""
-"ディストリビューション・ファイル %(filename)s を解析できません。JSON ファイル"
-"であることを確認してください。"
+"distro ファイル %(filename)s を解析できません。JSON ファイルであることを確認"
+"してください。"
#, python-format
msgid "Unable to login to iSCSI host target %(portal)s. Details: %(err)s"
@@ -117,35 +120,34 @@ msgstr "iSCSI ホスト %(host)s ターゲット %(target)s にログインで
#, python-format
msgid "Unable to find ISO file %(filename)s"
-msgstr ""
+msgstr "ISO ファイル %(filename)s が見つかりません"
#, python-format
msgid "The ISO file %(filename)s is not bootable"
-msgstr "ISO ファイル %(filename)s は、ブート可能ではありません"
+msgstr "ISO ファイル %(filename)s がブート可能ではありません"
#, python-format
msgid "The ISO file %(filename)s does not have a valid El Torito boot record"
msgstr ""
-"ISO ファイル %(filename)s には、有効な El Torito ブート・レコードがありません"
+"ISO ファイル %(filename)s に有効な El Torito ブート・レコードがありません"
#, python-format
msgid "Invalid El Torito validation entry in ISO %(filename)s"
-msgstr "無効な El Torito 検証エントリーが ISO %(filename)s にあります"
+msgstr "ISO %(filename)s に無効な El Torito 検証項目があります"
#, python-format
msgid "Invalid El Torito boot indicator in ISO %(filename)s"
-msgstr "無効な El Torito ブート・インジケーターが ISO %(filename)s にあります"
+msgstr "ISO %(filename)s に無効な El Torito ブート・インジケーターがあります"
#, python-format
msgid "Unexpected volume type for primary volume in ISO %(filename)s"
-msgstr ""
-"1 次ボリュームの予期しないボリューム・タイプが ISO %(filename)s にあります"
+msgstr "ISO %(filename)s 内の 1 次ボリュームが予期しないボリューム・タイプです"
#, python-format
msgid "Bad format while reading volume descriptor in ISO %(filename)s"
msgstr ""
-"ボリューム・ディスクリプターを ISO %(filename)s から読み取っていましたが、"
-"フォーマットが不正でした"
+"ISO %(filename)s 内のボリューム・ディスクリプターを読み取り中にフォーマットが"
+"正しくありませんでした"
#, python-format
msgid ""
@@ -156,26 +158,28 @@ msgid ""
"'path_to_iso'.Details: %(err)s"
msgstr ""
"ハイパーバイザーにこの ISO %(filename)s を使用する権限がありません。/var/lib/"
-"libvirt の下に移動するか、可能であれば検索許可を「%(user)s」ユーザーのファイ"
-"ル・アクセス制御リストに設定するか、「%(user)s」をISO パス・グループに追加す"
-"るか、または「chmod -R o+x path_to_iso」を実行 (推奨されません) してくださ"
-"い。詳細: %(err)s"
+"libvirt の下への移動を検討するか、可能であれば検索権限を「%(user)s」ユーザー"
+"のファイル・アクセス制御リストに設定するか、「%(user)s」を ISO パス・グループ"
+"に追加するか、または「chmod -R o+x path_to_iso」を実行 (推奨されません) して"
+"ください。詳細: %(err)s"
msgid "An error occurred when probing image OS information."
-msgstr ""
+msgstr "イメージ OS 情報のプローブ時にエラーが発生しました。"
msgid "No OS information found in given image."
-msgstr ""
+msgstr "OS 情報が指定のイメージに見つかりません。"
#, python-format
msgid "Unable to read image file %(filename)s"
-msgstr ""
+msgstr "イメージ・ファイル %(filename)s を読み取ることができません"
#, python-format
msgid ""
"Image file must be an existing file on system. %(filename)s is not a valid "
"input."
msgstr ""
+"イメージ・ファイルはシステム上の既存ファイルでなければなりませ"
+"ん。%(filename)s は有効な入力ではありません。"
#, python-format
msgid "Virtual machine %(name)s already exists"
@@ -190,6 +194,8 @@ msgid ""
"Unable to rename virtual machine %(name)s. The name %(new_name)s is already "
"in use or the virtual machine is not powered off."
msgstr ""
+"仮想マシン %(name)s を名前変更できません。名前 %(new_name)s が既に使用されて"
+"いるか、仮想マシンが電源オフされていません。"
#, python-format
msgid "Unable to retrieve screenshot for stopped virtual machine %(name)s"
@@ -201,6 +207,7 @@ msgstr "リモート ISO イメージは、このサーバーではサポート
#, python-format
msgid "Screenshot is not supported on virtual machine %(name)s"
msgstr ""
+"スクリーン・ショットはこの仮想マシン %(name)s ではサポートされていません"
#, python-format
msgid "Unable to create virtual machine %(name)s. Details: %(err)s"
@@ -208,7 +215,7 @@ msgstr "仮想マシン %(name)s を作成できません。詳細: %(err)s"
#, python-format
msgid "Unable to update virtual machine %(name)s. Details: %(err)s"
-msgstr "仮想マシン %(name)s を作成できません。詳細: %(err)s"
+msgstr "仮想マシン %(name)s を更新できません。詳細: %(err)s"
#, python-format
msgid "Unable to retrieve virtual machine %(name)s. Details: %(err)s"
@@ -216,37 +223,36 @@ msgstr "仮想マシン %(name)s を取得できません。詳細: %(err)s"
#, python-format
msgid "Unable to connect to powered off virtual machine %(name)s."
-msgstr ""
+msgstr "電源オフされた仮想マシン %(name)s に接続できません。"
msgid "Virtual machine name must be a string without slashes (/)"
-msgstr ""
+msgstr "仮想マシン名はスラッシュ (/) のないストリングでなければなりません"
#, python-format
msgid "Invalid template URI %(value)s specified for virtual machine"
-msgstr ""
+msgstr "無効なテンプレート URI %(value)s が仮想マシンに指定されています"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for virtual machine"
-msgstr ""
+msgstr "無効なストレージ・プール URI %(value)s が仮想マシンに指定されています"
msgid "Supported virtual machine graphics are Spice or VNC"
-msgstr ""
+msgstr "サポートされている仮想マシン・グラフィックスは Spice または VNC です"
msgid "Graphics address to listen on must be IPv4 or IPv6"
msgstr ""
-"listen を行うグラフィックス・アドレスは、IPv4 または IPv6 でなければなりませ"
-"ん"
+"listen を行うグラフィックス・アドレスは IPv4 または IPv6 でなければなりません"
msgid "Specify a template to create a virtual machine from"
msgstr "仮想マシンの作成元となるテンプレートを指定してください"
#, python-format
msgid "Unable to start virtual machine %(name)s. Details: %(err)s"
-msgstr "仮想マシン %(name)s を始動できません。詳細: %(err)s"
+msgstr "仮想マシン %(name)s を開始できません。詳細: %(err)s"
#, python-format
msgid "Unable to power off virtual machine %(name)s. Details: %(err)s"
-msgstr "仮想マシン %(name)s を停止できません。詳細: %(err)s"
+msgstr "仮想マシン %(name)s を電源オフできません。詳細: %(err)s"
#, python-format
msgid "Unable to delete virtual machine %(name)s. Details: %(err)s"
@@ -254,112 +260,124 @@ msgstr "仮想マシン %(name)s を削除できません。詳細: %(err)s"
#, python-format
msgid "Unable to reset virtual machine %(name)s. Details: %(err)s"
-msgstr "仮想マシン %(name)s を名前変更できません。詳細: %(err)s"
+msgstr "仮想マシン %(name)s をリセットできません。詳細: %(err)s"
msgid "User name list must be an array"
-msgstr ""
+msgstr "ユーザー名リストは配列でなければなりません"
msgid "User name must be a string"
-msgstr "ネットワーク名はストリングでなければなりません"
+msgstr "ユーザー名はストリングでなければなりません"
msgid "Group name list must be an array"
-msgstr ""
+msgstr "グループ名リストは配列でなければなりません"
msgid "Group name must be a string"
-msgstr "ネットワーク名はストリングでなければなりません"
+msgstr "グループ名はストリングでなければなりません"
#, python-format
msgid "User(s) '%(users)s' do not exist"
-msgstr "ユーザー「%(users)s」は存在しません。"
+msgstr "ユーザー「%(users)s」は存在しません"
#, python-format
msgid "Group(s) '%(groups)s' do not exist"
-msgstr "ユーザー「%(groups)s」は存在しません。"
+msgstr "グループ「%(groups)s」は存在しません"
#, python-format
msgid "Unable to shutdown virtual machine %(name)s. Details: %(err)s"
-msgstr "仮想マシン %(name)s を停止できません。詳細: %(err)s"
+msgstr "仮想マシン %(name)s をシャットダウンできません。詳細: %(err)s"
#, python-format
msgid ""
"Unable to get access metadata of virtual machine %(name)s. Details: %(err)s"
-msgstr "仮想マシン %(name)s を始動できません。詳細: %(err)s"
+msgstr ""
+"仮想マシン %(name)s のアクセス・メタデータを取得できません。詳細: %(err)s"
msgid "The guest console password must be a string."
-msgstr ""
+msgstr "ゲスト・コンソール・パスワードはストリングでなければなりません。"
msgid "The life time for the guest console password must be a number."
-msgstr ""
+msgstr "ゲスト・コンソール・パスワードの存続時間は数値でなければなりません。"
#, python-format
msgid "Virtual machine '%(name)s' must be stopped before cloning it."
-msgstr ""
+msgstr "仮想マシン「%(name)s」のクローンを作成する前に停止する必要があります。"
#, python-format
msgid "Insufficient disk space to clone virtual machine '%(name)s'"
msgstr ""
+"仮想マシン「%(name)s」のクローンを作成するためのディスク・スペースが不足して"
+"います"
#, python-format
msgid "Unable to clone VM '%(name)s'. Details: %(err)s"
-msgstr ""
+msgstr "VM「%(name)s」のクローンを作成できません。詳細: %(err)s"
#, python-format
msgid "Invalid operation for non-persistent virtual machine %(name)s"
-msgstr ""
+msgstr "非永続仮想マシン %(name)s の操作が無効です"
#, python-format
msgid "Cannot suspend VM '%(name)s' because it is not running."
-msgstr ""
+msgstr "VM「%(name)s」は実行されていないため、中断できません。"
#, python-format
msgid "Unable to suspend VM '%(name)s'. Details: %(err)s"
-msgstr ""
+msgstr "VM「%(name)s」を中断できません。詳細: %(err)s"
#, python-format
msgid "Cannot resume VM '%(name)s' because it is not paused."
-msgstr ""
+msgstr "VM「%(name)s」は一時停止されていないため、再開できません。"
#, python-format
msgid "Unable to resume VM '%(name)s'. Details: %(err)s"
-msgstr ""
+msgstr "VM「%(name)s」を再開できません。詳細: %(err)s"
msgid "Memory assigned is higher then the maximum allowed in the host."
-msgstr ""
+msgstr "割り当てられたメモリーはホストで許可された最大を超えています。"
#, python-format
msgid ""
"VM '%(name)s' does not support live memory update. Update the memory with "
"the machine offline to enable this feature."
msgstr ""
+"VM「%(name)s」ではライブ・メモリー・アップデートはサポートされていません。オ"
+"フライン状態のマシンでメモリーを更新して、この機能を使用可能にしてください。"
msgid "Only increase memory is allowed in active VMs"
-msgstr ""
+msgstr "アクティブ VM ではメモリーの増加のみが許可されています"
msgid ""
"For live memory update, new memory value must be equal old memory value plus "
"multiples of 1024 Mib"
msgstr ""
+"ライブ・メモリー・アップデートの場合、新規メモリー値は、旧メモリー値に1024 "
+"Mib の倍数を加算した値に等しくなければなりません"
msgid "There are not enough free slots of 1024 Mib in the guest."
-msgstr ""
+msgstr "1024 Mib のフリー・スロットがゲストで不足しています。"
msgid ""
"Host's libvirt version does not support memory devices. Libvirt must be >= "
"1.2.14"
msgstr ""
+"ホストの libvirt バージョンではメモリー・デバイスはサポートされていません。"
+"Libvirt は 1.2.14 以上でなければなりません"
#, python-format
msgid "Error attaching memory device. Details: %(error)s"
-msgstr ""
+msgstr "メモリー・デバイスの接続エラーです。詳細: %(error)s"
#, python-format
msgid ""
"VM %(vmid)s does not contain directly assigned host device %(dev_name)s."
msgstr ""
+"直接割り当てられたホスト・デバイス %(dev_name)s が VM %(vmid)s に含まれていま"
+"せん。"
#, python-format
msgid "The host device %(dev_name)s is not allowed to directly assign to VM."
msgstr ""
+"ホスト・デバイス %(dev_name)s は VM への直接割り当てを許可されていません。"
msgid ""
"No IOMMU groups found. Host PCI pass through needs IOMMU group to function "
@@ -368,30 +386,37 @@ msgid ""
"to your Kernel parameter in /boot/grub2/grub.conf. For AMD CPU, add iommu=pt "
"iommu=1."
msgstr ""
+"IOMMU グループが見つかりません。ホスト PCI パススルーは、IOMMU グループが正し"
+"く機能することを必要とします。BIOS で Intel VT-d または AMD IOMMU を使用可能"
+"にし、IOMMU サポートを使用してカーネルがコンパイルされていることを確認してく"
+"ださい。Intel CPU の場合は、/boot/grub2/grub.conf でカーネル・パラメーターに "
+"intel_iommu=on を追加します。AMD CPU の場合は、iommu=pt iommu=1 を追加しま"
+"す。"
msgid "\"name\" should be a device name string"
-msgstr ""
+msgstr "「name」はデバイス名ストリングでなければなりません"
#, python-format
msgid ""
"The device %(name)s is probably in use by the host. Unable to attach it to "
"the guest."
msgstr ""
+"デバイス %(name)s はホストで使用中である可能性があります。ゲストに接続するこ"
+"とはできません。"
#, python-format
msgid "Interface %(iface)s does not exist in virtual machine %(name)s"
-msgstr "インターフェース %(iface)s は仮想マシン %(name)s には存在しません"
+msgstr "インターフェース %(iface)s は仮想マシン %(name)s に存在しません"
#, python-format
msgid ""
"Network %(network)s specified for virtual machine %(name)s does not exist"
msgstr ""
-"仮想マシン %(name)s 用に指定されているネットワーク %(network)s は存在しません"
+"仮想マシン %(name)s に指定されたネットワーク %(network)s は存在しません"
msgid "Supported virtual machine interfaces type is only network"
msgstr ""
-"サポートされている仮想マシン・インターフェース・タイプは、ネットワークだけで"
-"す"
+"サポートされている仮想マシン・インターフェース・タイプはネットワークのみです"
msgid "Network name for virtual machine interface must be a string"
msgstr ""
@@ -405,20 +430,20 @@ msgstr ""
msgid "Specify type and network to add a new virtual machine interface"
msgstr ""
"新しい仮想マシン・インターフェースに追加するタイプおよびネットワークを指定し"
-"ます"
+"てください"
msgid "MAC Address must respect this format FF:FF:FF:FF:FF:FF"
-msgstr ""
+msgstr "MAC アドレスは FF:FF:FF:FF:FF:FF の形式に従っていなければなりません"
#, python-format
msgid "MAC Address %(mac)s already exists in virtual machine %(name)s"
-msgstr ""
+msgstr "MAC アドレス %(mac)s は既に仮想マシン %(name)s に存在します"
msgid "Invalid MAC Address"
-msgstr ""
+msgstr "MAC アドレスが無効です"
msgid "Cannot change MAC address of a running virtual machine"
-msgstr ""
+msgstr "実行中の仮想マシンの MAC アドレスは変更できません"
#, python-format
msgid "Template %(name)s already exists"
@@ -428,31 +453,31 @@ msgstr "テンプレート %(name)s は既に存在します"
msgid ""
"Network '%(network)s' specified for template %(template)s does not exist"
msgstr ""
-"テンプレート %(template)s 用に指定されているネットワーク「%(network)s」は存在"
-"しません"
+"テンプレート %(template)s に指定されたネットワーク「%(network)s」は存在しませ"
+"ん"
#, python-format
msgid ""
"Storage pool %(pool)s specified for template %(template)s does not exist"
msgstr ""
-"テンプレート %(template)s 用に指定されているストレージ・プール %(pool)s は存"
-"在しません"
+"テンプレート %(template)s に指定されたストレージ・プール %(pool)s は存在しま"
+"せん"
#, python-format
msgid "Storage pool %(pool)s specified for template %(template)s is not active"
msgstr ""
-"テンプレート %(template)s 用に指定されているストレージ・プール %(pool)s はア"
-"クティブではありません"
+"テンプレート %(template)s に指定されたストレージ・プール %(pool)s はアクティ"
+"ブではありません"
#, python-format
msgid "Invalid parameter '%(param)s' specified for CDROM."
-msgstr "CDROM に指定されているパラメーター「%(param)s」は無効です。"
+msgstr "無効なパラメーター「%(param)s」が CDROM に指定されました。"
#, python-format
msgid "Network %(network)s specified for template %(template)s is not active"
msgstr ""
-"テンプレート %(template)s 用に指定されているネットワーク %(network)s はアク"
-"ティブではありません"
+"テンプレート %(template)s に指定されたネットワーク %(network)s はアクティブで"
+"はありません"
msgid "Template name must be a string"
msgstr "テンプレート名はストリングでなければなりません"
@@ -469,14 +494,14 @@ msgstr ""
"せん"
msgid "The number of CPUs must be an integer greater than 0"
-msgstr "CPU 数は整数でなければなりません"
+msgstr "CPU の数は 0 より大きい整数でなければなりません"
msgid "Amount of memory (MB) must be an integer greater than 512"
msgstr "メモリーの量 (MB 単位) は、512 より大きい整数でなければなりません"
msgid "Template CDROM must be a local or remote ISO file"
msgstr ""
-"テンプレート CDROM は、ローカルまたはリモート ISO ファイルでなければなりませ"
+"テンプレート CDROM はローカルまたはリモートの ISO ファイルでなければなりませ"
"ん"
#, python-format
@@ -486,17 +511,20 @@ msgstr ""
msgid "Specify an ISO image as CDROM or a base image to create a template"
msgstr ""
-"CDROM として、テンプレートを作成するための ISO イメージを指定してください"
+"テンプレートを作成するには、CDROM として ISO イメージを指定するか、ベース・イ"
+"メージを指定してください"
msgid "All networks for the template must be specified in a list."
msgstr "テンプレート用のネットワークをすべてリストに指定する必要があります。"
msgid "Specify a volume to a template when storage pool is iSCSI or SCSI"
msgstr ""
+"ストレージ・プールが iSCSI または SCSI である場合はテンプレートに対してボ"
+"リュームを指定してください"
#, python-format
msgid "The volume %(volume)s is not in storage pool %(pool)s"
-msgstr ""
+msgstr "ボリューム %(volume)s がストレージ・プール %(pool)s にありません"
#, python-format
msgid "Unable to create template due error: %(err)s"
@@ -507,31 +535,37 @@ msgid "Unable to delete template due error: %(err)s"
msgstr "次のエラーのため、テンプレートを削除できません: %(err)s"
msgid "Disk size must be an integer greater than 1GB."
-msgstr ""
+msgstr "ディスク・サイズは 1GB より大きい整数でなければなりません。"
msgid "Template base image must be a valid local image file"
msgstr ""
-"テンプレート CDROM は、ローカルまたはリモート ISO ファイルでなければなりませ"
-"ん"
+"テンプレート・ベース・イメージは有効なローカル・イメージ・ファイルでなければ"
+"なりません"
#, python-format
msgid "Cannot identify base image %(path)s format"
-msgstr ""
+msgstr "ベース・イメージ %(path)s のフォーマットを識別できません"
msgid ""
"When specifying CPU topology, VCPUs must be a product of sockets, cores, and "
"threads."
msgstr ""
+"CPU トポロジーを指定する場合、VCPU はソケット、コア、およびスレッドの積でなけ"
+"ればなりません。"
msgid ""
"When specifying CPU topology, each element must be an integer greater than "
"zero."
msgstr ""
+"CPU トポロジーを指定する場合、各エレメントはゼロより大きい整数でなければなり"
+"ません。"
msgid ""
"Invalid disk image format. Valid formats: bochs, cloop, cow, dmg, qcow, "
"qcow2, qed, raw, vmdk, vpc."
msgstr ""
+"ディスク・イメージ・フォーマットが無効です。有効なフォーマットはbochs、"
+"cloop、cow、dmg、qcow、qcow2、qed、raw、vmdk、vpc です。"
#, python-format
msgid "Storage pool %(name)s already exists"
@@ -544,11 +578,11 @@ msgstr "ストレージ・プール %(name)s は存在しません"
#, python-format
msgid "Specify %(item)s in order to create the storage pool %(name)s"
msgstr ""
-"ストレージ・プール %(name)s を作成するためには、%(item)s を指定してください"
+"ストレージ・プール %(name)s を作成するには、%(item)s を指定してください"
#, python-format
msgid "Unable to delete active storage pool %(name)s"
-msgstr "アクティブ・ストレージ・プール %(name)s は削除できません"
+msgstr "アクティブ・ストレージ・プール %(name)s を削除できません"
#, python-format
msgid "Unable to list storage pools. Details: %(err)s"
@@ -563,8 +597,8 @@ msgid ""
"Unable to get number of storage volumes in storage pool %(name)s. Details: "
"%(err)s"
msgstr ""
-"ストレージ・プール %(name)s のストレージ・ボリュームの数を取得できません。詳"
-"細:%(err)s"
+"ストレージ・プール %(name)s 内のストレージ・ボリューム数を取得できません。詳"
+"細: %(err)s"
#, python-format
msgid "Unable to activate storage pool %(name)s. Details: %(err)s"
@@ -576,36 +610,39 @@ msgstr "ストレージ・プール %(name)s を非アクティブにできま
#, python-format
msgid "Unable to delete storage pool %(name)s. Details: %(err)s"
-msgstr "ストレージ・プール %(name)s を削除できません。詳細: %(err)s"
+msgstr "ストレージ・プール %(name)s を削除にできません。詳細: %(err)s"
#, python-format
msgid ""
"Unable to create NFS Pool as export path %(path)s may block during mount"
msgstr ""
-"マウント中にエクスポート・パス %(path)s がブロックされていた可能性があるた"
-"め、NFS プールを作成できません"
+"エクスポート・パス %(path)s がマウント中にブロックしている可能性があるため、"
+"NFS プールを作成できません"
#, python-format
msgid "Unable to create NFS Pool as export path %(path)s mount failed"
msgstr ""
-"エクスポート・パス %(path)s のマウントに失敗したため、NFS プールを作成できま"
-"せん"
+"エクスポート・パス %(path)s マウントが失敗したため、NFS プールを作成できませ"
+"ん"
#, python-format
msgid "Unsupported storage pool type: %(type)s"
-msgstr "サポートされていないストレージ・プール・タイプ: %(type)s"
+msgstr "ストレージ・プール・タイプ %(type)s はサポートされていません"
#, python-format
msgid "Error while retrieving storage pool XML to %(pool)s"
-msgstr ""
+msgstr "ストレージ・プール XML を %(pool)s に取得中にエラーが発生しました"
msgid "Storage pool name must be a string without slashes (/)"
msgstr ""
+"ストレージ・プール名はスラッシュ (/) のないストリングでなければなりません"
msgid ""
"Supported storage pool types are dir, netfs, logical, iscsi, isci and kimchi-"
"iso"
msgstr ""
+"サポートされているストレージ・プール・タイプは dir、netfs、logical、iscsi、"
+"isci、および kimchi-iso です"
msgid "Storage pool path must be a string"
msgstr "ストレージ・プール・パスはストリングでなければなりません"
@@ -615,6 +652,8 @@ msgstr "ストレージ・プール・ホストは、IP またはホスト名で
msgid "Storage pool device must be the absolute path to the block device"
msgstr ""
+"ストレージ・プール・デバイスはブロック・デバイスへの絶対パスでなければなりま"
+"せん"
msgid "Storage pool devices parameter must be a list"
msgstr "ストレージ・プール・デバイス・パラメーターはリストでなければなりません"
@@ -624,14 +663,14 @@ msgstr "iSCSI プールのターゲット IQN はストリングでなければ
msgid "Port of a remote storage server must be an integer between 1 and 65535"
msgstr ""
-"リモート・ストレージ・サーバーのポートは、1 から 65535 までの整数でなければな"
+"リモート・ストレージ・サーバーのポートは 1 から 65535 までの整数でなければな"
"りません"
msgid "iSCSI target username must be a string"
-msgstr ""
+msgstr "iSCSI ターゲット・ユーザー名はストリングでなければなりません"
msgid "iSCSI target password must be a string"
-msgstr ""
+msgstr "iSCSI ターゲット・パスワードはストリングでなければなりません"
msgid "Specify name and type to create a storage pool"
msgstr "ストレージ・プールを作成するには、名前とタイプを指定してください"
@@ -641,12 +680,12 @@ msgid ""
"%(disk)s is not a valid disk/partition. Could not add it to the pool "
"%(pool)s."
msgstr ""
-"%(disk)s は、有効なディスク/パーティションではないため、プール %(pool)s に追"
+"%(disk)s は有効なディスク/パーティションではありません。プール %(pool)s に追"
"加できませんでした。"
#, python-format
msgid "Unable to extend logical pool %(pool)s. Details: %(err)s"
-msgstr ""
+msgstr "論理プール %(pool)s を拡張できません。詳細: %(err)s"
msgid "The parameter disks only can be updated for logical storage pool."
msgstr ""
@@ -665,7 +704,7 @@ msgid ""
"unreachable."
msgstr ""
"NFS ストレージ・プール %(name)s をアクティブにできません。NFS サーバー "
-"%(server)s に到達できません。"
+"%(server)s は到達不能です。"
#, python-format
msgid ""
@@ -673,14 +712,14 @@ msgid ""
"unreachable."
msgstr ""
"NFS ストレージ・プール %(name)s を非アクティブにできません。NFS サーバー "
-"%(server)s に到達できません。"
+"%(server)s は到達不能です。"
#, python-format
msgid ""
"Unable to deactivate pool %(name)s as it is associated with some templates"
msgstr ""
"プール %(name)s はいくつかのテンプレートに関連付けられているため、非アクティ"
-"ブにできません"
+"ブにすることはできません"
#, python-format
msgid "Unable to delete pool %(name)s as it is associated with some templates"
@@ -693,13 +732,13 @@ msgid ""
"A volume group named '%(name)s' already exists. Please, choose another name "
"to create the logical pool."
msgstr ""
-"名前「%(name)s」のボリューム・グループは既に存在します。論理プールを作成する"
-"には、別の名前を選択してください。"
+"ボリューム・グループ「%(name)s」は既に存在します。論理プールを作成するには、"
+"別の名前を選択してください。"
#, python-format
msgid "Unable to update database with deep scan information due error: %(err)s"
msgstr ""
-"次のエラーのため、データベースをディープ・スキャン情報で更新できません: "
+"次のエラーのため、データベースをディープ・スキャン情報で更新できません:"
"%(err)s"
#, python-format
@@ -709,27 +748,27 @@ msgstr "ストレージ・ボリューム %(name)s は既に存在します"
#, python-format
msgid "Storage volume %(name)s does not exist in storage pool %(pool)s"
msgstr ""
-"ストレージ・ボリューム %(name)s は、ストレージ・プール %(pool)s に存在しませ"
-"ん"
+"ストレージ・ボリューム %(name)s がストレージ・プール %(pool)s に存在しません"
#, python-format
msgid ""
"Unable to create storage volume %(volume)s because storage pool %(pool)s is "
"not active"
msgstr ""
+"ストレージ・プール %(pool)s がアクティブでないため、ストレージ・ボリューム "
+"%(volume)s を作成できません"
#, python-format
msgid "Specify %(item)s in order to create storage volume %(volume)s"
msgstr ""
-"ストレージ・ボリューム %(volume)s を作成するためには、%(item)s を指定してくだ"
-"さい"
+"ストレージ・ボリューム %(volume)s を作成するには、%(item)s を指定してください"
#, python-format
msgid ""
"Unable to list storage volumes because storage pool %(pool)s is not active"
msgstr ""
-"ストレージ・プール %(pool)s がアクティブではないため、ストレージ・ボリューム"
-"をリストできません"
+"ストレージ・プール %(pool)s がアクティブでないため、ストレージ・ボリュームを"
+"リストできません"
#, python-format
msgid ""
@@ -743,12 +782,12 @@ msgstr ""
msgid ""
"Unable to list storage volumes in storage pool %(pool)s. Details: %(err)s"
msgstr ""
-"ストレージ・プール %(pool)s のストレージ・ボリュームをリストできません。詳"
+"ストレージ・プール %(pool)s 内のストレージ・ボリュームをリストできません。詳"
"細: %(err)s"
#, python-format
msgid "Unable to wipe storage volumes %(name)s. Details: %(err)s"
-msgstr "ストレージ・プール %(name)s をワイプできません。詳細: %(err)s"
+msgstr "ストレージ・ボリューム %(name)s をワイプできません。詳細: %(err)s"
#, python-format
msgid "Unable to delete storage volume %(name)s. Details: %(err)s"
@@ -761,7 +800,7 @@ msgstr "ストレージ・ボリューム %(name)s をサイズ変更できま
#, python-format
msgid "Storage type %(type)s does not support volume create and delete"
msgstr ""
-"ストレージ・タイプ %(type)s では、ボリューム作成および削除はサポートされてい"
+"ストレージ・タイプ %(type)s ではボリュームの作成および削除はサポートされてい"
"ません"
msgid "Storage volume name must be a string"
@@ -774,6 +813,9 @@ msgid ""
"Storage volume format not supported. Valid formats: bochs, cloop, cow, dmg, "
"qcow, qcow2, qed, raw, vmdk, vpc."
msgstr ""
+"ストレージ・ボリューム・フォーマットがサポートされていません。有効なフォー"
+"マットは bochs、cloop、cow、dmg、qcow、qcow2、qed、raw、vmdk、および vpc で"
+"す。"
msgid "Storage volume requires a volume name"
msgstr "ストレージ・ボリュームにはボリューム名が必要です"
@@ -782,53 +824,67 @@ msgstr "ストレージ・ボリュームにはボリューム名が必要です
msgid ""
"Unable to update database with storage volume information due error: %(err)s"
msgstr ""
-"次のエラーのため、データベースをストレージ・ボリューム情報で更新できません: "
+"次のエラーのため、データベースをストレージ・ボリューム情報で更新できません:"
"%(err)s"
#, python-format
msgid "Only one of parameter %(param)s can be specified"
-msgstr ""
+msgstr "1 つのパラメーター %(param)s のみを指定できます"
#, python-format
msgid "Create volume from %(param)s is not supported"
-msgstr ""
+msgstr "%(param)s からのボリュームの作成はサポートされていません"
msgid "Storage volume capacity must be an integer number."
-msgstr ""
+msgstr "ストレージ・ボリューム容量は整数値でなければなりません。"
msgid "Storage volume URL must be http://, https://, ftp:// or ftps://."
msgstr ""
+"ストレージ・ボリューム URL は http://、https://、ftp://、または ftps:// でな"
+"ければなりません。"
#, python-format
msgid "Unable to access file %(url)s. Please, check it."
-msgstr ""
+msgstr "ファイル %(url)s にアクセスできません。確認してください。"
#, python-format
msgid ""
"Unable to clone storage volume '%(name)s' in pool '%(pool)s'. Details: "
"%(err)s"
msgstr ""
+"ストレージ・ボリューム「%(name)s」のクローンをプール「%(pool)s」に作成できま"
+"せん。詳細: %(err)s"
msgid "Specify chunk data and its size to upload a file."
msgstr ""
+"ファイルをアップロードするには、チャンク・データとそのサイズを指定してくださ"
+"い。"
msgid "In order to upload a storage volume, specify the 'upload' parameter."
msgstr ""
+"ストレージ・ボリュームをアップロードするには、「upload」パラメーターを指定し"
+"てください。"
msgid ""
"Unable to upload chunk data as it does not match with requested chunk size."
msgstr ""
+"要求されたチャンク・サイズに一致しないため、チャンク・データをアップロードで"
+"きません。"
#, python-format
msgid "The storage volume %(vol)s is not under an upload process."
msgstr ""
+"ストレージ・ボリューム %(vol)s はアップロード・プロセス中ではありません。"
msgid "The upload chunk data will exceed the storage volume size."
msgstr ""
+"アップロード・チャンク・データはストレージ・ボリューム・サイズを超過します。"
#, python-format
msgid "Unable to upload chunk data to storage volume. Details: %(err)s."
msgstr ""
+"チャンク・データをストレージ・ボリュームにアップロードできません。詳細: "
+"%(err)s。"
#, python-format
msgid "Interface %(name)s does not exist"
@@ -845,23 +901,23 @@ msgstr "ネットワーク %(name)s は存在しません"
#, python-format
msgid "Subnet %(subnet)s specified for network %(network)s is not valid."
msgstr ""
-"ネットワーク %(network)s 用に指定されているサブネット %(subnet)s は無効です。"
+"ネットワーク %(network)s に指定されたサブネット %(subnet)s は無効です。"
#, python-format
msgid "Specify a network interface to create bridged network %(name)s"
msgstr ""
-"ブリッジ接続ネットワーク %(name)s を作成するには、ネットワーク・インター"
-"フェースを指定してください"
+"ブリッジ・ネットワーク %(name)s を作成するには、ネットワーク・インターフェー"
+"スを指定してください"
#, python-format
msgid "Unable to delete active network %(name)s"
-msgstr "アクティブ・ネットワーク %(name)s は削除できません"
+msgstr "アクティブ・ネットワーク %(name)s を削除できません"
#, python-format
msgid "Interface %(iface)s specified for network %(network)s is already in use"
msgstr ""
-"ネットワーク %(network)s 用に指定されているインターフェース %(iface)s は、既"
-"に使用されています"
+"ネットワーク %(network)s に指定されたインターフェース %(iface)s は既に使用中"
+"です"
msgid "Interface should be bare NIC, bonding or bridge device."
msgstr ""
@@ -874,22 +930,24 @@ msgstr "ネットワーク %(name)s を作成できません。詳細: %(err)s"
#, python-format
msgid "Unable to find a free IP address for network '%(name)s'"
-msgstr "ネットワーク「%(name)s」のフリー IP アドレスが見つかりません。"
+msgstr "ネットワーク「%(name)s」のフリー IP アドレスが見つかりません"
#, python-format
msgid "The interface %(iface)s already exists."
-msgstr ""
+msgstr "インターフェース %(iface)s は既に存在します。"
msgid "Network name must be a string without slashes (/) or quotes (\")"
msgstr ""
+"ネットワーク名はスラッシュ (/) または引用符 (\") のないストリングでなければな"
+"りません"
msgid "Supported network types are isolated, NAT and bridge"
msgstr "サポートされているネットワーク・タイプは隔離、NAT、およびブリッジです"
msgid "Network subnet must be a string with IP address and prefix or netmask"
msgstr ""
-"ネットワーク・サブネットは、IP アドレスとプレフィックスまたはネットマスクが"
-"入ったストリングでなければなりません"
+"ネットワーク・サブネットは、IP アドレスとプレフィックスまたはネットマスクのあ"
+"るストリングでなければなりません"
msgid "Network interface must be a string"
msgstr "ネットワーク・インターフェースはストリングでなければなりません"
@@ -905,82 +963,87 @@ msgid ""
"Unable to delete network %(name)s. There are some virtual machines %(vms)s "
"and/or templates linked to this network."
msgstr ""
+"ネットワーク %(name)s を削除できません。このネットワークにリンクしている仮想"
+"マシン %(vms)s とテンプレートのいずれかまたは両方がいくつかあります。"
#, python-format
msgid ""
"Unable to deactivate network %(name)s. There are some virtual machines "
"%(vms)s and/or templates linked to this network."
msgstr ""
+"ネットワーク %(name)s を非アクティブにできません。このネットワークにリンクし"
+"ている仮想マシン %(vms)s とテンプレートのいずれかまたは両方がいくつかありま"
+"す。"
#, python-format
msgid "Bridge device %(name)s can not be the trunk device of a VLAN."
msgstr ""
-"ブリッジ・デバイス %(name)s を、VLAN のトランク・デバイスにすることはできませ"
-"ん。"
+"ブリッジ・デバイス %(name)s は VLAN のトランク・デバイスにはできません。"
#, python-format
msgid "Failed to activate interface %(iface)s: %(err)s."
-msgstr "インターフェース %(iface)s の活動化に失敗しました: %(err)s。"
+msgstr "インターフェース %(iface)s のアクティブ化に失敗しました: %(err)s。"
#, python-format
msgid ""
"Failed to activate interface %(iface)s. Please check the physical link "
"status."
msgstr ""
-"インターフェース %(iface)s の活動化に失敗しました。物理リンク状況を確認してく"
-"ださい。"
+"インターフェース %(iface)s のアクティブ化に失敗しました。物理リンク状況を確認"
+"してください。"
#, python-format
msgid "Failed to start network %(name)s. Details: %(err)s"
-msgstr ""
+msgstr "ネットワーク %(name)s の開始に失敗しました。詳細: %(err)s"
#, python-format
msgid "Debug report %(name)s does not exist"
-msgstr "デバッグ・レポート %(name)s は存在しません。"
+msgstr "デバッグ・レポート %(name)s は存在しません"
msgid "Debug report tool not found in system"
msgstr "デバッグ・レポート・ツールがシステムに見つかりません"
#, python-format
msgid "Unable to create debug report %(name)s. Details: %(err)s."
-msgstr "デバッグ・レポート %(name)s を作成できません。詳細: %(err)s"
+msgstr "デバッグ・レポート %(name)s を作成できません。詳細: %(err)s。"
#, python-format
msgid "Can not find any debug report with the given name %(name)s"
-msgstr ""
+msgstr "指定された名前 %(name)s のデバッグ・レポートが見つかりません"
#, python-format
msgid "Unable to generate debug report %(name)s. Details: %(err)s"
msgstr "デバッグ・レポート %(name)s を生成できません。詳細: %(err)s"
msgid "You should give a name for the debug report file."
-msgstr ""
+msgstr "デバッグ・レポート・ファイルに名前を付ける必要があります。"
msgid ""
"Debug report name must be a string. Only letters, digits, underscore ('_') "
"and hyphen ('-') are allowed."
msgstr ""
+"デバッグ・レポート名はストリングでなければなりません。文字、数字、下線 "
+"(「_」)、およびハイフン (「-」) のみを使用できます。"
#, python-format
msgid ""
"The debug report with specified name \"%(name)s\" already exists. Please use "
"another one."
msgstr ""
-"名前「%(name)s」のボリューム・グループは既に存在します。論理プールを作成する"
-"には、別の名前を選択してください。"
+"指定の名前「%(name)s」を持つデバッグ・レポートは既に存在します。別の名前を使"
+"用してください。"
#, python-format
msgid "Storage server %(server)s was not used by Kimchi"
-msgstr ""
-"ストレージ・サーバー %(server)s は、Kimchi によって使用されていませんでした"
+msgstr "ストレージ・サーバー %(server)s は Kimchi で使用されていませんでした"
#, python-format
msgid "Distro '%(name)s' does not exist"
-msgstr "ディストリビューション「%(name)s」は存在しません"
+msgstr "Distro「%(name)s」は存在しません"
#, python-format
msgid "Partition %(name)s does not exist in the host"
-msgstr "パーティション %(name)s は、ホストに存在しません"
+msgstr "パーティション %(name)s はホストに存在しません"
msgid "Unable to shutdown host machine as there are running virtual machines"
msgstr "稼働中の仮想マシンがあるため、ホスト・マシンをシャットダウンできません"
@@ -993,88 +1056,88 @@ msgid "Node device '%(name)s' not found"
msgstr "ノード・デバイス「%(name)s」が見つかりません"
msgid "Conflicting flag filters specified."
-msgstr ""
+msgstr "競合するフラグ・フィルターが指定されました。"
msgid "No packages marked for update"
msgstr "更新の対象としてマークされているパッケージはありません"
#, python-format
msgid "Package %(name)s is not marked to be updated."
-msgstr "パッケージ %(name)s は、更新の対象としてマークされていません。"
+msgstr "パッケージ %(name)s には更新対象のマークが付けられていません。"
#, python-format
msgid "Error while getting packages marked to be updated. Details: %(err)s"
msgstr ""
-"更新の対象としてマークされたパッケージを取得しているときに、エラーがありまし"
-"た。詳細: %(err)s"
+"更新対象のマークが付けられたパッケージを取得中にエラーが発生しました。詳細: "
+"%(err)s"
msgid "There is no compatible package manager for this system."
msgstr "このシステム用の互換パッケージ・マネージャーがありません。"
#, python-format
msgid "Unable to find %(item)s in datastore"
-msgstr "%(item)s はデータ・ストアに見つかりません"
+msgstr "%(item)s がデータ・ストアに見つかりません"
#, python-format
msgid "Invalid URI %(uri)s"
-msgstr "無効な URI %(uri)s"
+msgstr "URI %(uri)s が無効です"
#, python-format
msgid "Timeout while running command '%(cmd)s' after %(seconds)s seconds"
-msgstr ""
-"コマンド「%(cmd)s」を実行していましたが、%(seconds)s 秒を経過してタイムアウト"
-"になりました"
+msgstr "「%(cmd)s」コマンドの実行中、%(seconds)s 秒後にタイムアウトになります"
msgid "Unable to choose a virtual machine name"
-msgstr ""
+msgstr "仮想マシン名を選択できません"
#, python-format
msgid "Invalid data value '%(value)s'"
-msgstr ""
+msgstr "データ値「%(value)s」が無効です"
#, python-format
msgid "Invalid data unit '%(unit)s'"
-msgstr ""
+msgstr "データ単位「%(unit)s」が無効です"
msgid "Invalid storage type. Types supported: 'cdrom', 'disk'"
msgstr ""
-"ストレージ・タイプが無効です。サポートされているタイプは「cdrom」です。"
+"ストレージ・タイプが無効です。サポートされているタイプは「cdrom」および"
+"「disk」です"
#, python-format
msgid "The path '%(value)s' is not a valid local/remote path for the device"
msgstr ""
+"パス「%(value)s」はデバイスに有効なローカルまたはリモートのパスではありません"
msgid "Only CDROM path can be update."
-msgstr ""
+msgstr "CDROM パスのみが更新可能です。"
#, python-format
msgid ""
"The storage device %(dev_name)s does not exist in the virtual machine "
"%(vm_name)s"
msgstr ""
+"ストレージ・デバイス %(dev_name)s が仮想マシン %(vm_name)s に存在しません"
#, python-format
msgid "Error while creating new storage device: %(error)s"
-msgstr ""
-"新しいストレージ・デバイスを作成しているときに、エラーがありました: %(error)s"
+msgstr "新しいストレージ・デバイスの作成中にエラーが発生しました: %(error)s"
#, python-format
msgid "Error while updating storage device: %(error)s"
-msgstr ""
-"ストレージ・デバイスを更新しているときに、エラーがありました: %(error)s"
+msgstr "ストレージ・デバイスの更新中にエラーが発生しました: %(error)s"
#, python-format
msgid "Error while removing storage device: %(error)s"
-msgstr ""
-"ストレージ・デバイスを削除しているときに、エラーがありました: %(error)s"
+msgstr "ストレージ・デバイスの除去中にエラーが発生しました: %(error)s"
msgid "Do not support IDE device hot plug"
-msgstr ""
+msgstr "IDE デバイス・ホット・プラグはサポートされていません"
msgid ""
"Specify type and path or type and pool/volume to add a new virtual machine "
"disk"
-msgstr "新しい仮想マシン・ディスクに追加するタイプおよびパスを指定します"
+msgstr ""
+"新規仮想マシン・ディスクを追加するには、タイプとパス、またはタイプとプール/ボ"
+"リュームを指定してください"
msgid "Specify path to update virtual machine disk"
msgstr "仮想マシン・ディスクを更新するには、パスを指定してください"
@@ -1082,24 +1145,30 @@ msgstr "仮想マシン・ディスクを更新するには、パスを指定し
#, python-format
msgid "Controller type %(type)s limitation of %(limit)s devices reached"
msgstr ""
+"コントローラー・タイプ %(type)s のデバイスの制限 %(limit)s に達しました"
#, python-format
msgid "Cannot retrieve disk path information for given pool/volume: %(error)s"
msgstr ""
+"指定のプールまたはボリュームのディスク・パス情報を取得できません: %(error)s"
msgid "Volume already in use by other virtual machine."
-msgstr ""
+msgstr "ボリュームは既に他の仮想マシンで使用中です。"
msgid ""
"Only one of path or pool/volume can be specified to add a new virtual "
"machine disk"
-msgstr "新しい仮想マシン・ディスクに追加するタイプおよびパスを指定します"
+msgstr ""
+"新規仮想マシン・ディスクを追加するために指定できるのはパスまたはプール/ボ"
+"リュームのうち 1 つだけです"
#, python-format
msgid ""
"Volume chosen with format %(format)s does not fit in the storage type "
"%(type)s"
msgstr ""
+"フォーマット %(format)s で選択されたボリュームがストレージ・タイプ%(type)s に"
+"適合しません"
msgid "YUM Repository ID must be one word only string."
msgstr "YUM リポジトリー ID は、1 ワードのみのストリングでなければなりません"
@@ -1129,7 +1198,7 @@ msgid "Components to DEB repository must be a string"
msgstr "DEB リポジトリーへのコンポーネントは、ストリングでなければなりません"
msgid "Mirror list to repository must be a string"
-msgstr ""
+msgstr "リポジトリーに対するミラー・リストはストリングでなければなりません"
msgid "YUM Repository name must be string."
msgstr "YUM リポジトリー名はストリングでなければなりません。"
@@ -1152,21 +1221,23 @@ msgid ""
"Specify repository base URL, mirror list or metalink in order to create or "
"update a YUM repository."
msgstr ""
+"YUM リポジトリーを作成または更新するには、リポジトリー・ベース URL、ミラー・"
+"リスト、またはメタリンクを指定してください。"
msgid "Repository management tool was not recognized for your system."
msgstr "システム用のリポジトリー管理ツールが認識されませんでした。"
#, python-format
msgid "Repository %(repo_id)s is already enabled."
-msgstr "リポジトリー %(repo_id)s は既に有効になっています。"
+msgstr "リポジトリー %(repo_id)s は既に使用可能になっています。"
#, python-format
msgid "Repository %(repo_id)s is already disabled."
-msgstr "リポジトリー %(repo_id)s は既に無効になっています。"
+msgstr "リポジトリー %(repo_id)s は既に使用不可になっています。"
#, python-format
msgid "Could not remove repository %(repo_id)s."
-msgstr "リポジトリー %(repo_id)s を削除できませんでした。"
+msgstr "リポジトリー %(repo_id)s を除去できませんでした。"
#, python-format
msgid "Could not write repository configuration file %(repo_file)s"
@@ -1175,16 +1246,16 @@ msgstr ""
msgid "Specify repository distribution in order to create a DEB repository."
msgstr ""
-"DEB リポジトリーを作成するためには、リポジトリー・ディストリビューションを指"
-"定してください。"
+"DEB リポジトリーを作成するには、リポジトリー・ディストリビューションを指定し"
+"てください。"
#, python-format
msgid "Could not enable repository %(repo_id)s."
-msgstr "リポジトリー %(repo_id)s を有効にできませんでした。"
+msgstr "リポジトリー %(repo_id)s を使用可能にできませんでした。"
#, python-format
msgid "Could not disable repository %(repo_id)s."
-msgstr "リポジトリー %(repo_id)s を無効にできませんでした。"
+msgstr "リポジトリー %(repo_id)s を使用不可にできませんでした。"
msgid "YUM Repository ID already exists"
msgstr "YUM リポジトリー ID は既に存在します"
@@ -1206,76 +1277,94 @@ msgstr "リポジトリーを追加できません。詳細: 「%(err)s」"
#, python-format
msgid "Unable to remove repository. Details: '%(err)s'"
-msgstr "リポジトリーを削除できません。詳細: 「%(err)s」"
+msgstr "リポジトリーを除去できません。詳細: 「%(err)s」"
#, python-format
msgid ""
"Configuration items: '%(items)s' are not supported by repository manager"
msgstr ""
+"構成アイテム「%(items)s」はリポジトリー・マネージャーでサポートされていません"
msgid "Repository metalink must be an http://, ftp:// or file:// URL."
msgstr ""
+"リポジトリー・メタリンクは http://、ftp://、または file:// URL でなければなり"
+"ません。"
msgid "Cannot specify mirrorlist and metalink at the same time."
-msgstr ""
+msgstr "ミラー・リストとメタリンクを同時に指定することはできません。"
#, python-format
msgid ""
"Virtual machine '%(vm)s' must be stopped before creating a snapshot of it."
msgstr ""
+"仮想マシン「%(vm)s」はそのスナップショットを作成する前に停止しなければなりま"
+"せん。"
#, python-format
msgid ""
"Unable to create snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
+"仮想マシン「%(vm)s」でスナップショット「%(name)s」を作成できません。詳細: "
+"%(err)s"
#, python-format
msgid "Snapshot '%(name)s' does not exist on virtual machine '%(vm)s'."
-msgstr ""
+msgstr "スナップショット「%(name)s」は仮想マシン「%(vm)s」に存在しません。"
#, python-format
msgid ""
"Unable to retrieve snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
+"仮想マシン「%(vm)s」でスナップショット「%(name)s」を取得できません。詳細: "
+"%(err)s"
#, python-format
msgid "Unable to list snapshots on virtual machine '%(vm)s'. Details: %(err)s"
msgstr ""
+"仮想マシン「%(vm)s」でスナップショットをリストできません。詳細: %(err)s"
#, python-format
msgid ""
"Unable to delete snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
+"仮想マシン「%(vm)s」でスナップショット「%(name)s」を削除できません。詳細: "
+"%(err)s"
#, python-format
msgid ""
"Unable to retrieve current snapshot of virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
+"仮想マシン「%(vm)s」の最新スナップショットを取得できません。詳細: %(err)s"
#, python-format
msgid ""
"Unable to revert virtual machine '%(vm)s' to snapshot '%(name)s'. Details: "
"%(err)s"
msgstr ""
+"仮想マシン「%(vm)s」をスナップショット「%(name)s」に戻すことができません。詳"
+"細: %(err)s"
#, python-format
msgid ""
"Unable to create snapshot of virtual machine '%(vm)s' because it contains a "
"disk with format '%(format)s'; only 'qcow2' is supported."
msgstr ""
+"仮想マシン「%(vm)s」にはフォーマット「%(format)s」のディスクが含まれているた"
+"め、この仮想マシンのスナップショットを作成できません。「qcow2」のみがサポート"
+"されています。"
msgid "The number of vCPUs is too large for this system."
-msgstr ""
+msgstr "vCPU がこのシステムには大きすぎます。"
msgid "Invalid vCPU/topology combination."
-msgstr ""
+msgstr "vCPU/トポロジーの組み合わせが無効です。"
msgid "This host (or current configuration) does not allow CPU topology."
-msgstr ""
+msgstr "このホスト (または現行構成) では CPU トポロジーは許可されていません。"
msgid "ERROR CODE"
msgstr "エラー・コード"
@@ -1330,7 +1419,7 @@ msgid "Create"
msgstr "作成"
msgid "Creating..."
-msgstr ""
+msgstr "作成中..."
msgid "Edit Guest"
msgstr "ゲストの編集"
@@ -1345,13 +1434,13 @@ msgid "Interface"
msgstr "インターフェース"
msgid "Permission"
-msgstr "バージョン"
+msgstr "許可"
msgid "Host PCI Device"
-msgstr ""
+msgstr "ホスト PCI デバイス"
msgid "Snapshot"
-msgstr ""
+msgstr "スナップショット"
msgid "Name"
msgstr "名前"
@@ -1360,16 +1449,16 @@ msgid "CPUs"
msgstr "CPU"
msgid "Memory (MB)"
-msgstr "メモリー"
+msgstr "メモリー (MB)"
msgid "Icon"
msgstr "アイコン"
msgid "Device"
-msgstr "デバイス名"
+msgstr "デバイス"
msgid "Path"
-msgstr "NFS パス"
+msgstr "パス"
msgid "Network"
msgstr " ネットワーク"
@@ -1378,37 +1467,37 @@ msgid "Type"
msgstr "タイプ"
msgid "MAC Address"
-msgstr ""
+msgstr "MAC アドレス"
msgid "Available system users and groups"
-msgstr ""
+msgstr "使用可能なシステム・ユーザーおよびグループ"
msgid "Selected system users and groups"
-msgstr ""
+msgstr "選択されたシステム・ユーザーおよびグループ"
msgid "User"
-msgstr ""
+msgstr "ユーザー"
msgid "All"
msgstr "すべて"
msgid "To Add"
-msgstr ""
+msgstr "追加予定"
msgid "Added"
-msgstr ""
+msgstr "追加済み"
msgid "filter"
-msgstr ""
+msgstr "フィルター"
msgid "Product"
-msgstr ""
+msgstr "製品"
msgid "Vendor"
msgstr "ベンダー"
msgid "Created"
-msgstr ""
+msgstr "作成日"
msgid "Save"
msgstr "保存"
@@ -1423,7 +1512,7 @@ msgid "Cancel"
msgstr "取消"
msgid "revert"
-msgstr ""
+msgstr "戻す"
msgid "Add a Storage Device to VM"
msgstr "VM にストレージ・デバイスを追加"
@@ -1432,19 +1521,19 @@ msgid "Device Type"
msgstr "デバイス・タイプ"
msgid "The device type. Currently, \"cdrom\" and \"disk\" are supported."
-msgstr "デバイス・タイプ。現在サポートされているのは \"cdrom\" のみです。"
+msgstr "デバイス・タイプ。現在、「cdrom」と「disk」がサポートされています。"
msgid "Storage Pool"
msgstr "ストレージ・プール"
msgid "Storage pool which volume located in"
-msgstr "ストレージ・プール・パスはストリングでなければなりません"
+msgstr "ボリュームが含まれているストレージ・プール"
msgid "Storage Volume"
-msgstr "ストレージ・プール名"
+msgstr "ストレージ・ボリューム"
msgid "Storage volume to be attached"
-msgstr "ストレージ・ボリューム名はストリングでなければなりません"
+msgstr "接続されるストレージ・ボリューム"
msgid "File Path"
msgstr "ファイル・パス"
@@ -1462,13 +1551,13 @@ msgid "Reset"
msgstr "リセット"
msgid "Pause"
-msgstr ""
+msgstr "一時停止"
msgid "Resume"
-msgstr ""
+msgstr "再開"
msgid "Power Off"
-msgstr ""
+msgstr "電源オフ"
msgid "Actions"
msgstr "アクション"
@@ -1477,7 +1566,7 @@ msgid "Connect"
msgstr "接続"
msgid "Clone"
-msgstr ""
+msgstr "クローン"
msgid "Edit"
msgstr "編集"
@@ -1498,7 +1587,7 @@ msgid "Log in"
msgstr "ログイン"
msgid "Logging in..."
-msgstr "ログインしています..."
+msgstr "ログイン中..."
msgid "Host"
msgstr "ホスト"
@@ -1525,14 +1614,14 @@ msgid ""
"Can not contact the host system. Verify the host system is up and that you "
"have network connectivity to it. HTTP request response %1. "
msgstr ""
-"ホスト・システムに接続できません。ホスト・システムが稼働していて、ネットワー"
-"ク接続が行われていることを確認してください。HTTP 要求応答 %1"
+"ホスト・システムに接続できません。ホスト・システムが稼働しており、ネットワー"
+"クに接続していることを確認してください。HTTP 要求応答 %1。"
msgid "Unable to read file."
-msgstr ""
+msgstr "ファイルを読み取ることができません。"
msgid "Error while uploading file."
-msgstr ""
+msgstr "ファイルのアップロード中にエラーが発生しました。"
msgid "Delete Confirmation"
msgstr "削除の確認"
@@ -1547,13 +1636,13 @@ msgid "Warning"
msgstr "警告"
msgid "Cloning..."
-msgstr ""
+msgstr "クローン作成中..."
msgid "Loading..."
-msgstr "ロードしています..."
+msgstr "ロード中..."
msgid "An error occurred while retrieving system information."
-msgstr ""
+msgstr "システム情報の取得中にエラーが発生しました。"
msgid "Retry"
msgstr "再試行"
@@ -1562,20 +1651,20 @@ msgid "Detailed message:"
msgstr "詳細メッセージ:"
msgid "No ISO found"
-msgstr ""
+msgstr "ISO が見つかりません"
msgid "This is not a valid ISO file."
msgstr "有効な ISO ファイルではありません。"
msgid "This may take a long time. Do you want to continue?"
-msgstr "しばらく時間がかかることがあります。続行しますか?"
+msgstr "これには時間がかかることがあります。続行しますか ?"
msgid "This will permanently delete the template. Would you like to continue?"
-msgstr "テンプレートは完全に削除されます。続行しますか?"
+msgstr "これにより、テンプレートが永続的に削除されます。続行しますか?"
msgid "Unable to shut down system as there are some virtual machines running!"
msgstr ""
-"いくつかの仮想マシンが稼働しているために、システムをシャットダウンできません!"
+"いくつかの仮想マシンが稼働しているため、システムをシャットダウンできません"
msgid "Max:"
msgstr "最大:"
@@ -1666,10 +1755,10 @@ msgid "Update All"
msgstr "すべて更新"
msgid "Updating..."
-msgstr "更新しています..."
+msgstr "更新中..."
msgid "Failed to retrieve packages update information."
-msgstr ""
+msgstr "パッケージ更新情報の取得に失敗しました。"
msgid "Failed to update package(s)."
msgstr "パッケージを更新できませんでした。"
@@ -1690,7 +1779,7 @@ msgid "Generate"
msgstr "生成"
msgid "Generating..."
-msgstr "生成しています..."
+msgstr "生成中..."
msgid "Rename"
msgstr "名前変更"
@@ -1701,102 +1790,118 @@ msgstr "ダウンロード"
msgid ""
"Report name should contain only letters, digits, underscore ('_') and/or "
"hyphen ('-')."
-msgstr "レポート名に使用できるのは、英字、数字、およびハイフン (-) のみです。"
+msgstr ""
+"レポート名には文字、数字、下線 (「_」)、およびハイフン (「-」) のみを使用でき"
+"ます。"
msgid "Pending..."
-msgstr "ロードしています..."
+msgstr "保留..."
msgid "Report name is the same as the original one."
-msgstr ""
+msgstr "レポート名はオリジナルの名前と同じです。"
msgid ""
"This will delete the virtual machine and its virtual disks. This operation "
"cannot be undone. Would you like to continue?"
msgstr ""
-"仮想マシンとその仮想ディスクが削除されます。この操作は元に戻すことができませ"
-"ん。続行しますか?"
+"これにより、仮想マシンとその仮想ディスクが削除されます。この操作は元に戻すこ"
+"とができません。続行しますか?"
msgid "Power off Confirmation"
-msgstr "削除の確認"
+msgstr "電源オフの確認"
msgid ""
"This action may produce undesirable results, for example unflushed disk "
"cache in the guest. Would you like to continue?"
msgstr ""
+"このアクションにより、フラッシュされていないディスク・キャッシュがゲストにあ"
+"るなどの、望ましくない結果がもたらされる可能性があります。続行しますか?"
msgid "Reset Confirmation"
-msgstr "削除の確認"
+msgstr "リセットの確認"
msgid ""
"There is a risk of data loss caused by reset without the guest OS shutdown. "
"Would you like to continue?"
msgstr ""
+"ゲスト OS をシャットダウンせずにリセットすると、データ損失の危険があります。"
+"続行しますか?"
msgid "Shut Down Confirmation"
-msgstr "削除の確認"
+msgstr "シャットダウンの確認"
msgid "Note the guest OS may ignore this request. Would you like to continue?"
-msgstr "テンプレートは完全に削除されます。続行しますか?"
+msgstr ""
+"ゲスト OS ではこの要求が無視される可能性があることに注意してください。続行し"
+"ますか?"
msgid "Virtual Machine delete Confirmation"
-msgstr ""
+msgstr "仮想マシンの削除確認"
msgid ""
"This virtual machine is not persistent. Power Off will delete it. Continue?"
msgstr ""
+"この仮想マシンは永続的ではありません。電源オフにより削除されます。続行します"
+"か?"
msgid ""
"When the target guest has SCSI or iSCSI volumes, they will be cloned on "
"default storage pool. The same will happen when the target pool does not "
"have enough space to clone the volumes. Do you want to continue?"
msgstr ""
+"ターゲット・ゲストに SCSI ボリュームまたは iSCSI ボリュームがある場合、これら"
+"はデフォルト・ストレージ・プールにクローン作成されます。ボリュームのクローン"
+"を作成するために十分なスペースがターゲット・プールにない場合も同様です。続行"
+"しますか ?"
msgid ""
"This CDROM will be detached permanently and you can re-attach it. Continue "
"to detach it?"
msgstr ""
-"この CDROM は完全に切り離されますが、再接続できます。切り離しを続行しますか?"
+"この CDROM は永続的に切り離されますが、再接続できます。切り離しを続行します"
+"か?"
msgid "Attaching..."
-msgstr "接続しています..."
+msgstr "接続中..."
msgid "Replacing..."
-msgstr "交換しています..."
+msgstr "交換中..."
msgid "Successfully attached!"
-msgstr "正常に接続しました!"
+msgstr "正常に接続しました"
msgid "Successfully replaced!"
-msgstr "正常に交換しました!"
+msgstr "正常に置換されました"
msgid "Successfully detached!"
-msgstr "正常に切り離しました!"
+msgstr "正常に切り離されました"
msgid ""
"This disk will be detached permanently and you can re-attach it. Continue to "
"detach it?"
msgstr ""
+"このディスクは完全に切り離されますが、再接続できます。切り離しを続行しますか?"
msgid "interface:"
-msgstr ""
+msgstr "インターフェース:"
msgid "address:"
-msgstr ""
+msgstr "アドレス:"
msgid "link_type:"
-msgstr ""
+msgstr "link_type:"
msgid "block:"
-msgstr ""
+msgstr "ブロック:"
msgid "drive_type:"
-msgstr ""
+msgstr "drive_type:"
msgid "model:"
-msgstr ""
+msgstr "モデル:"
msgid "Affected devices:"
-msgstr ""
+msgstr "影響を受けるデバイス:"
msgid "The VLAN id must be between 1 and 4094."
msgstr "VLAN ID は、1 から 4094 まででなければなりません。"
@@ -1818,17 +1923,19 @@ msgid ""
"This network is not persistent. Instead of stop, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"このストレージ・プールは永続的なものではありません。このアクションで、非アク"
-"ティブになるのではなく完全に削除されます。続行しますか?"
+"このネットワークは永続的なものではありません。停止ではなくこのアクションを行"
+"うと、ネットワークは永続的に削除されます。続行しますか?"
msgid ""
"The bridged VLAN tag may not work well with NetworkManager enabled. You "
"should consider disabling it."
msgstr ""
+"ブリッジ VLAN タグは NetworkManager が使用可能になっている場合は正しく機能し"
+"ない可能性があります。使用不可にすることを検討してください。"
msgid ""
"This will permanently delete the storage pool. Would you like to continue?"
-msgstr "ストレージ・プールは完全に削除されます。続行しますか?"
+msgstr "これにより、ストレージ・プールが永続的に削除されます。続行しますか?"
msgid "This storage pool is empty."
msgstr "このストレージ・プールは空です。"
@@ -1846,13 +1953,13 @@ msgid "No SCSI adapters found."
msgstr "SCSI アダプターが見つかりません。"
msgid "Loading iSCSI targets..."
-msgstr ""
+msgstr "iSCSI ターゲットをロード中..."
msgid "No iSCSI found. Please input one."
-msgstr ""
+msgstr "iSCSI が見つかりません。入力してください。"
msgid "Failed to load iSCSI targets."
-msgstr ""
+msgstr "iSCSI ターゲットのロードに失敗しました。"
msgid "The storage pool name can not be blank."
msgstr "ストレージ・プール名をブランクにすることはできません。"
@@ -1876,10 +1983,10 @@ msgid "Server name can not be blank."
msgstr "サーバー名をブランクにすることはできません。"
msgid "This is not a valid Server Name or IP. Please, modify it."
-msgstr ""
+msgstr "これは有効なサーバー名または IP ではありません。変更してください。"
msgid "Looking for available partitions ..."
-msgstr "愛用可能なパーティションを探しています..."
+msgstr "愛用可能なパーティションを検索中..."
msgid "No available partitions found."
msgstr "使用可能なパーティションが見つかりません。"
@@ -1888,32 +1995,34 @@ msgid ""
"This storage pool is not persistent. Instead of deactivate, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"このストレージ・プールは永続的なものではありません。このアクションで、非アク"
-"ティブになるのではなく完全に削除されます。続行しますか?"
+"このストレージ・プールは永続的ではありません。非アクティブ化ではなくこのアク"
+"ションを行うと、ストレージ・プールは永続的に削除されます。続行しますか?"
msgid "Unable to retrieve partitions information."
-msgstr "リポジトリー情報を取得できません。詳細: 「%(err)s」"
+msgstr "パーティション情報を取得できません。"
msgid "In progress..."
-msgstr ""
+msgstr "進行中..."
msgid "Failed!"
-msgstr ""
+msgstr "失敗しました"
msgid "CDROM path needs to be a valid local/remote path and cannot be blank."
msgstr ""
+"CDROM パスは有効なローカル/リモート・パスでなければならず、ブランクにはできま"
+"せん。"
msgid "Disk pool or volume cannot be blank."
-msgstr "ストレージ・プール名をブランクにすることはできません。"
+msgstr "ディスク・プールまたはボリュームはブランクにはできません。"
msgid "Peers"
-msgstr ""
+msgstr "ピア"
msgid "Searching"
-msgstr ""
+msgstr "検索"
msgid "No peers found."
-msgstr ""
+msgstr "ピアが見つかりません。"
msgid "Help"
msgstr "ヘルプ"
@@ -1928,7 +2037,7 @@ msgid "Version:"
msgstr "バージョン: "
msgid "Session timeout, please re-login."
-msgstr ""
+msgstr "セッションがタイムアウトになりました。再度ログインしてください。"
msgid "User Name"
msgstr "ユーザー名"
@@ -1947,21 +2056,22 @@ msgid ""
"based on current time. Name can contain: letters, digits, underscore (\"_\") "
"and hyphen (\"-\")."
msgstr ""
-"名前はレポートを識別するために使用されます。省略すると、現在時刻に基づいて選"
-"択されます。名前には英字、数字、およびハイフン (-) を使用できます。"
+"名前はレポートの識別に使用されます。省略すると、名前は現在時刻に基づいて選択"
+"されます。名前には文字、数字、下線 (「_」)、およびハイフン (「-」) を使用でき"
+"ます。"
msgid "Rename a Debug Report"
-msgstr "新規デバッグ・レポートの生成"
+msgstr "デバッグ・レポートの名前変更"
msgid ""
"The name used to identify the report. Name can contain: letters, digits and "
"hyphen (\"-\")."
msgstr ""
-"名前はレポートを識別するために使用されます。省略すると、現在時刻に基づいて選"
-"択されます。名前には英字、数字、およびハイフン (-) を使用できます。"
+"名前はレポートの識別に使用されます。名前には文字、数字、およびハイフン "
+"(「-」) を使用できます。"
msgid "Submit"
-msgstr ""
+msgstr "実行依頼"
msgid "Add a Repository"
msgstr "リポジトリーの追加"
@@ -1983,11 +2093,11 @@ msgstr "必須フィールド"
msgid "URL to the repository. Supported protocols are http, ftp, and file."
msgstr ""
-"リポジトリーの URL で、サポートされているプロトコルは http、ftp、および file "
+"リポジトリーの URL で、サポートされているプロトコルは http、ftp、およびfile "
"です。"
msgid "Repository is a mirror"
-msgstr "リポジトリーはミラーです。"
+msgstr "リポジトリーはミラーです"
msgid "Distribution"
msgstr "ディストリビューション"
@@ -2014,19 +2124,19 @@ msgid "No"
msgstr " いいえ"
msgid "Add a Volume to Storage Pool"
-msgstr ""
+msgstr "ボリュームをストレージ・プールに追加"
msgid "Fetch from remote URL"
-msgstr ""
+msgstr "リモート URL からフェッチ"
msgid "Enter the remote URL here."
-msgstr ""
+msgstr "ここにリモート URL を入力します。"
msgid "Upload a file"
-msgstr ""
+msgstr "ファイルのアップロード"
msgid "Choose the file you want to upload."
-msgstr ""
+msgstr "アップロードしたいファイルを選択してください。"
msgid "Define a New Storage Pool"
msgstr "新規ストレージ・プールの定義"
@@ -2049,8 +2159,7 @@ msgstr "ストレージ・パス"
msgid ""
"The path of the Storage Pool. Each Storage Pool must have a unique path."
msgstr ""
-"ストレージ・プールのパス。それぞれのストレージ・プールに固有のパスが必要で"
-"す。"
+"ストレージ・プールのパス。各ストレージ・プールには固有のパスが必要です。"
msgid ""
"Kimchi will try to create the directory when it does not already exist in "
@@ -2063,8 +2172,7 @@ msgstr "NFS サーバー IP"
msgid "NFS server IP or hostname. It can be input or chosen from history."
msgstr ""
-"NFS サーバー IP またはホスト名。入力することも、ヒストリーから選択することも"
-"できます。"
+"NFS サーバー IP またはホスト名。入力するか、ヒストリーから選択できます。"
msgid "NFS Path"
msgstr "NFS パス"
@@ -2115,7 +2223,7 @@ msgid "Local ISO Image"
msgstr "ローカル ISO イメージ"
msgid "Local Image File"
-msgstr ""
+msgstr "ローカル・イメージ・ファイル"
msgid "Remote ISO Image"
msgstr "リモート ISO イメージ"
@@ -2145,7 +2253,7 @@ msgid "I want to use a specific ISO file"
msgstr "特定の ISO ファイルを使用する"
msgid "Loading default remote ISOs ..."
-msgstr "デフォルトのリモート ISO をロードしています..."
+msgstr "デフォルトのリモート ISO をロード中..."
msgid "Arch: "
msgstr "アーキテクチャー: "
@@ -2163,28 +2271,28 @@ msgid "CDROM"
msgstr "CDROM"
msgid "Image File"
-msgstr ""
+msgstr "イメージ・ファイル"
msgid "Graphics"
msgstr "グラフィックス"
msgid "Disk(GB)"
-msgstr ""
+msgstr "ディスク (GB)"
msgid "Disk Format"
-msgstr ""
+msgstr "ディスク・フォーマット"
msgid "CPU Number"
msgstr "CPU 数"
msgid "Manually set CPU topology"
-msgstr ""
+msgstr "CPU トポロジーを手動で設定"
msgid "Cores"
-msgstr ""
+msgstr "コア"
msgid "Threads"
-msgstr ""
+msgstr "スレッド"
msgid "CPU"
msgstr "CPU"
@@ -2217,7 +2325,7 @@ msgid "OS Code Name"
msgstr "OS コード名"
msgid "CPU(s)"
-msgstr ""
+msgstr "CPU"
msgid "System Statistics"
msgstr "システム統計情報"
@@ -2238,10 +2346,10 @@ msgid "Address Space"
msgstr "アドレス・スペース"
msgid "Name should not contain '/' and '\"'."
-msgstr ""
+msgstr "「/」や「\"」は名前に使用しないでください。"
msgid "Isolated: no external network connection"
-msgstr "隔離: 物理ネットワーク接続なし"
+msgstr "隔離: 外部ネットワーク接続がありません"
msgid "NAT: outbound physical network connection only"
msgstr "NAT: アウトバウンド物理ネットワーク接続のみ"
@@ -2250,22 +2358,22 @@ msgid "Bridged: Virtual machines are connected to physical network directly"
msgstr "ブリッジ: 仮想マシンが直接物理ネットワークに接続される"
msgid "(No interfaces found)"
-msgstr ""
+msgstr "(インターフェースが見つかりません)"
msgid "Destination"
-msgstr "宛先:"
+msgstr "宛先"
msgid "Enable VLAN"
-msgstr "VLAN を使用可能にする:"
+msgstr "VLAN を使用可能にしてください"
msgid "VLAN ID"
-msgstr "VLAN ID:"
+msgstr "VLAN ID"
msgid "Stop"
msgstr "停止"
msgid "%Used"
-msgstr ""
+msgstr "使用率(%)"
msgid "Location"
msgstr "ロケーション"
@@ -2289,19 +2397,19 @@ msgid "Activate"
msgstr "アクティブにする"
msgid "Add Volume"
-msgstr ""
+msgstr "ボリュームの追加"
msgid "Extend"
-msgstr ""
+msgstr "拡張"
msgid "Undefine"
msgstr "定義を解除する"
msgid "Format"
-msgstr "フォーマット:"
+msgstr "フォーマット"
msgid "Allocation"
-msgstr "割り振り:"
+msgstr "割り振り"
msgid "No templates found."
msgstr "テンプレートが見つかりません。"
diff --git a/po/kimchi.pot b/po/kimchi.pot
index 81fac83..1179357 100755
--- a/po/kimchi.pot
+++ b/po/kimchi.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-24 09:39-0300\n"
+"POT-Creation-Date: 2015-08-21 09:52-0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL(a)li.org>\n"
@@ -85,6 +85,9 @@ msgstr ""
msgid "\"_passthrough_affected_by\" should be a device name string"
msgstr ""
+msgid "\"_available_only\" should be \"true\" or \"false\""
+msgstr ""
+
#, python-format
msgid "Error while getting block devices. Details: %(err)s"
msgstr ""
diff --git a/po/ko_KR.po b/po/ko_KR.po
index a6e5a80..4504a4b 100644
--- a/po/ko_KR.po
+++ b/po/ko_KR.po
@@ -6,118 +6,99 @@ msgid ""
msgstr ""
"Project-Id-Version: kimchi 0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-24 09:39-0300\n"
+"POT-Creation-Date: 2015-08-21 09:52-0300\n"
"PO-Revision-Date: 2013-07-11 17:32-0400\n"
"Last-Translator: Crístian Viana <vianac(a)linux.vnet.ibm.com>\n"
"Language-Team: English\n"
-"Language: en_US\n"
+"Language: ko_KR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
-"Plural-Forms: nplurals=1; plural=0;"
+"Plural-Forms: nplurals=1; plural=0;\n"
#, python-format
msgid "Unknown parameter %(value)s"
-msgstr ""
-"알 수 없는 매개변수 %(value)s"
+msgstr "알 수 없는 매개변수 %(value)s"
#, python-format
msgid "Delete is not allowed for %(resource)s"
-msgstr ""
-"%(resource)s의 삭제는 허용되지 않습니다."
+msgstr "%(resource)s의 삭제는 허용되지 않습니다."
#, python-format
msgid "%(resource)s does not implement update method"
-msgstr ""
-"%(resource)s에서는 업데이트 메소드를 구현하지 않습니다."
+msgstr "%(resource)s에서는 업데이트 메소드를 구현하지 않습니다."
#, python-format
msgid "Create is not allowed for %(resource)s"
-msgstr ""
-"%(resource)s의 작성은 허용되지 않습니다."
+msgstr "%(resource)s의 작성은 허용되지 않습니다."
msgid "Unable to parse JSON request"
-msgstr ""
-"JSON 요청을 구문 분석할 수 없습니다."
+msgstr "JSON 요청을 구문 분석할 수 없습니다."
msgid "This API only supports JSON"
-msgstr ""
-"이 API는 JSON만 지원합니다."
+msgstr "이 API는 JSON만 지원합니다."
#, python-format
msgid "Parameters does not match requirement in schema: %(err)s"
-msgstr ""
-"매개변수가 스키마의 요구사항과 일치하지 않음: %(err)s"
+msgstr "매개변수가 스키마의 요구사항과 일치하지 않음: %(err)s"
msgid "You don't have permission to perform this operation."
-msgstr ""
-"이 조작을 수행할 수 있는 권한이 없습니다."
+msgstr "이 조작을 수행할 수 있는 권한이 없습니다."
msgid "Datastore is not initiated in the model object."
-msgstr ""
-"데이터 저장소가 모델 오브젝트에서 시작되지 않았습니다."
+msgstr "데이터 저장소가 모델 오브젝트에서 시작되지 않았습니다."
#, python-format
msgid "Unable to start task due error: %(err)s"
-msgstr ""
-"오류 때문에 작업을 시작할 수 없음: %(err)s"
+msgstr "오류 때문에 작업을 시작할 수 없음: %(err)s"
#, python-format
msgid "Timeout of %(seconds)s seconds expired while running task '%(task)s."
-msgstr ""
-"'%(task)s 태스크 실행 중에 %(seconds)s초의 제한시간이 만료되었습니다."
+msgstr "'%(task)s 태스크 실행 중에 %(seconds)s초의 제한시간이 만료되었습니다."
#, python-format
msgid "Authentication failed for user '%(username)s'. [Error code: %(code)s]"
-msgstr ""
-"'%(username)s' 사용자 인증에 실패했습니다. [오류 코드: %(code)s]"
+msgstr "'%(username)s' 사용자 인증에 실패했습니다. [오류 코드: %(code)s]"
msgid "You are not authorized to access Kimchi"
-msgstr ""
-"Kimchi에 액세스할 권한이 없습니다."
+msgstr "Kimchi에 액세스할 권한이 없습니다."
#, python-format
msgid "Specify %(item)s to login into Kimchi"
-msgstr ""
-"Kimchi에 로그인하려면 %(item)s을(를) 지정하십시오."
+msgstr "Kimchi에 로그인하려면 %(item)s을(를) 지정하십시오."
#, python-format
msgid "User %(user_id)s not found with given LDAP settings."
-msgstr ""
-"지정한 LDAP 설정에서 %(user_id)s 사용자를 찾지 못했습니다."
+msgstr "지정한 LDAP 설정에서 %(user_id)s 사용자를 찾지 못했습니다."
#, python-format
msgid "Invalid LDAP configuration: %(item)s : %(value)s"
-msgstr ""
-"올바르지 않은 LDAP 구성: %(item)s : %(value)s"
+msgstr "올바르지 않은 LDAP 구성: %(item)s : %(value)s"
msgid "Unknown \"_cap\" specified"
-msgstr ""
-"알 수 없는 \"_cap\"이 지정되었습니다."
+msgstr "알 수 없는 \"_cap\"이 지정되었습니다."
msgid "\"_passthrough\" should be \"true\" or \"false\""
-msgstr ""
-"\"_passthrough\"는 \"true\" 또는 \"false\"여야 합니다."
+msgstr "\"_passthrough\"는 \"true\" 또는 \"false\"여야 합니다."
msgid "\"_passthrough_affected_by\" should be a device name string"
-msgstr ""
-"\"_passthrough_affected_by\"는 장치 이름 문자열이어야 합니다."
+msgstr "\"_passthrough_affected_by\"는 장치 이름 문자열이어야 합니다."
+
+msgid "\"_available_only\" should be \"true\" or \"false\""
+msgstr "\"_available_only\"는 \"true\" 또는 \"false\"여야 합니다."
#, python-format
msgid "Error while getting block devices. Details: %(err)s"
-msgstr ""
-"블록 장치를 가져오는 중에 오류가 발생했습니다. 세부사항: %(err)s"
+msgstr "블록 장치를 가져오는 중에 오류가 발생했습니다. 세부사항: %(err)s"
#, python-format
msgid "Error while getting block device information for %(device)s."
-msgstr ""
-"%(device)s에 대한 블록 장치 정보를 가져오는 중에 오류가 발생했습니다."
+msgstr "%(device)s에 대한 블록 장치 정보를 가져오는 중에 오류가 발생했습니다."
#, python-format
msgid "Unable to find distro file: %(filename)s"
-msgstr ""
-"distro 파일을 찾을 수 없음: %(filename)s"
+msgstr "distro 파일을 찾을 수 없음: %(filename)s"
#, python-format
msgid ""
@@ -127,28 +108,23 @@ msgstr ""
#, python-format
msgid "Unable to login to iSCSI host target %(portal)s. Details: %(err)s"
-msgstr ""
-"iSCSI 호스트 대상 %(portal)s에 로그인할 수 없습니다. 세부사항: %(err)s"
+msgstr "iSCSI 호스트 대상 %(portal)s에 로그인할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Unable to login to iSCSI host %(host)s target %(target)s"
-msgstr ""
-"iSCSI 호스트 %(host)s 대상 %(target)s에 로그인할 수 없습니다."
+msgstr "iSCSI 호스트 %(host)s 대상 %(target)s에 로그인할 수 없습니다."
#, python-format
msgid "Unable to find ISO file %(filename)s"
-msgstr ""
-"ISO 파일 %(filename)s을(를) 찾을 수 없습니다."
+msgstr "ISO 파일 %(filename)s을(를) 찾을 수 없습니다."
#, python-format
msgid "The ISO file %(filename)s is not bootable"
-msgstr ""
-"ISO 파일 %(filename)s은(는) 부트 가능하지 않습니다."
+msgstr "ISO 파일 %(filename)s은(는) 부트 가능하지 않습니다."
#, python-format
msgid "The ISO file %(filename)s does not have a valid El Torito boot record"
-msgstr ""
-"ISO 파일 %(filename)s에 유효한 El Torito 부트 레코드가 없습니다."
+msgstr "ISO 파일 %(filename)s에 유효한 El Torito 부트 레코드가 없습니다."
#, python-format
msgid "Invalid El Torito validation entry in ISO %(filename)s"
@@ -157,18 +133,17 @@ msgstr ""
#, python-format
msgid "Invalid El Torito boot indicator in ISO %(filename)s"
-msgstr ""
-"ISO %(filename)s에 올바르지 않은 El Torito 부트 표시기가 있습니다."
+msgstr "ISO %(filename)s에 올바르지 않은 El Torito 부트 표시기가 있습니다."
#, python-format
msgid "Unexpected volume type for primary volume in ISO %(filename)s"
-msgstr ""
-"ISO %(filename)s에서 기본 볼륨이 예상치 않은 볼륨 유형입니다."
+msgstr "ISO %(filename)s에서 기본 볼륨이 예상치 않은 볼륨 유형입니다."
#, python-format
msgid "Bad format while reading volume descriptor in ISO %(filename)s"
msgstr ""
-"ISO %(filename)s에서 볼륨 디스크립터를 읽는 중에 잘못된 형식이 발견되었습니다."
+"ISO %(filename)s에서 볼륨 디스크립터를 읽는 중에 잘못된 형식이 발견되었습니"
+"다."
#, python-format
msgid ""
@@ -178,88 +153,74 @@ msgid ""
"'%(user)s' to the ISO path group, or (not recommended) 'chmod -R o+x "
"'path_to_iso'.Details: %(err)s"
msgstr ""
-"하이퍼바이저가 이 ISO %(filename)s을(를) 사용할 권한이 없습니다. "
-"이를 /var/lib/libvirt 아래로 이동시키거나 (가능한 경우) 검색 권한을 "
-"'%(user)s' 사용자의 파일 액세스 제어 목록에 설정하거나 "
-"'%(user)s'을(를) ISO 경로 그룹 또는 (권장하지 않음) 'chmod -R o+x "
-"'path_to_iso'에 추가하십시오. 세부사항: %(err)s"
+"하이퍼바이저가 이 ISO %(filename)s을(를) 사용할 권한이 없습니다. 이를 /var/"
+"lib/libvirt 아래로 이동시키거나 (가능한 경우) 검색 권한을 '%(user)s' 사용자"
+"의 파일 액세스 제어 목록에 설정하거나 '%(user)s'을(를) ISO 경로 그룹 또는 (권"
+"장하지 않음) 'chmod -R o+x 'path_to_iso'에 추가하십시오. 세부사항: %(err)s"
msgid "An error occurred when probing image OS information."
-msgstr ""
-"이미지 OS 정보를 프로브하는 중에 오류가 발생했습니다."
+msgstr "이미지 OS 정보를 프로브하는 중에 오류가 발생했습니다."
msgid "No OS information found in given image."
-msgstr ""
-"지정된 이미지에 OS 정보가 없습니다."
+msgstr "지정된 이미지에 OS 정보가 없습니다."
#, python-format
msgid "Unable to read image file %(filename)s"
-msgstr ""
-"이미지 파일 %(filename)s을(를) 읽을 수 없습니다."
+msgstr "이미지 파일 %(filename)s을(를) 읽을 수 없습니다."
#, python-format
msgid ""
"Image file must be an existing file on system. %(filename)s is not a valid "
"input."
msgstr ""
-"이미지 파일은 시스템에 있는 기존 파일이여야 합니다. %(filename)s은(는) 유효하지 않은"
-"입력입니다."
+"이미지 파일은 시스템에 있는 기존 파일이여야 합니다. %(filename)s은(는) 유효하"
+"지 않은입력입니다."
#, python-format
msgid "Virtual machine %(name)s already exists"
-msgstr ""
-"가상 머신 %(name)s이(가) 이미 존재합니다."
+msgstr "가상 머신 %(name)s이(가) 이미 존재합니다."
#, python-format
msgid "Virtual machine %(name)s does not exist"
-msgstr ""
-"가상 머신 %(name)s이(가) 없습니다."
+msgstr "가상 머신 %(name)s이(가) 없습니다."
#, python-format
msgid ""
"Unable to rename virtual machine %(name)s. The name %(new_name)s is already "
"in use or the virtual machine is not powered off."
msgstr ""
-"가상 머신 %(name)s의 이름을 바꿀 수 없습니다. %(new_name)s 이름이 이미"
-"사용 중이거나 가상 머신의 전원이 꺼졌습니다."
+"가상 머신 %(name)s의 이름을 바꿀 수 없습니다. %(new_name)s 이름이 이미사용 중"
+"이거나 가상 머신의 전원이 꺼졌습니다."
#, python-format
msgid "Unable to retrieve screenshot for stopped virtual machine %(name)s"
-msgstr ""
-"중지된 가상 머신 %(name)s에 대한 스크린샷을 검색할 수 없습니다."
+msgstr "중지된 가상 머신 %(name)s에 대한 스크린샷을 검색할 수 없습니다."
msgid "Remote ISO image is not supported by this server."
-msgstr ""
-"원격 ISO 이미지는 이 서버에서 지원하지 않습니다."
+msgstr "원격 ISO 이미지는 이 서버에서 지원하지 않습니다."
#, python-format
msgid "Screenshot is not supported on virtual machine %(name)s"
-msgstr ""
-"스크린샷이 가상 머신 %(name)s에서 지원되지 않습니다."
+msgstr "스크린샷이 가상 머신 %(name)s에서 지원되지 않습니다."
#, python-format
msgid "Unable to create virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"가상 머신 %(name)s을(를) 작성할 수 없습니다. 세부사항: %(err)s"
+msgstr "가상 머신 %(name)s을(를) 작성할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Unable to update virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"가상 머신 %(name)s을(를) 업데이트할 수 없습니다. 세부사항: %(err)s"
+msgstr "가상 머신 %(name)s을(를) 업데이트할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Unable to retrieve virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"가상 머신 %(name)s을(를) 검색할 수 없습니다. 세부사항: %(err)s"
+msgstr "가상 머신 %(name)s을(를) 검색할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Unable to connect to powered off virtual machine %(name)s."
-msgstr ""
-"전원이 꺼진 가상 머신 %(name)s에 연결할 수 없습니다."
+msgstr "전원이 꺼진 가상 머신 %(name)s에 연결할 수 없습니다."
msgid "Virtual machine name must be a string without slashes (/)"
-msgstr ""
-"가상 머신 이름은 슬래시(/)를 포함하지 않는 문자열이어야 합니다."
+msgstr "가상 머신 이름은 슬래시(/)를 포함하지 않는 문자열이어야 합니다."
#, python-format
msgid "Invalid template URI %(value)s specified for virtual machine"
@@ -272,86 +233,70 @@ msgstr ""
"가상 머신에 대해 올바르지 않은 스토리지 URI %(value)s이(가) 지정되었습니다."
msgid "Supported virtual machine graphics are Spice or VNC"
-msgstr ""
-"지원되는 가상 머신 그래픽은 Spice 또는 VNC입니다."
+msgstr "지원되는 가상 머신 그래픽은 Spice 또는 VNC입니다."
msgid "Graphics address to listen on must be IPv4 or IPv6"
-msgstr ""
-"청취 대상 그래픽 주소는 IPv4 또는 IPv6여야 합니다."
+msgstr "청취 대상 그래픽 주소는 IPv4 또는 IPv6여야 합니다."
msgid "Specify a template to create a virtual machine from"
-msgstr ""
-"가상 머신을 작성하기 위한 템플리트를 지정하십시오."
+msgstr "가상 머신을 작성하기 위한 템플리트를 지정하십시오."
#, python-format
msgid "Unable to start virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"가상 머신 %(name)s을(를) 시작할 수 없습니다. 세부사항: %(err)s"
+msgstr "가상 머신 %(name)s을(를) 시작할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Unable to power off virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"가상 머신 %(name)s의 전원을 끌 수 없습니다. 세부사항: %(err)s"
+msgstr "가상 머신 %(name)s의 전원을 끌 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Unable to delete virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"가상 머신 %(name)s을(를) 삭제할 수 없습니다. 세부사항: %(err)s"
+msgstr "가상 머신 %(name)s을(를) 삭제할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Unable to reset virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"가상 머신 %(name)s을(를) 다시 설정할 수 없습니다. 세부사항: %(err)s"
+msgstr "가상 머신 %(name)s을(를) 다시 설정할 수 없습니다. 세부사항: %(err)s"
msgid "User name list must be an array"
-msgstr ""
-"사용자 이름 목록은 배열이어야 합니다."
+msgstr "사용자 이름 목록은 배열이어야 합니다."
msgid "User name must be a string"
-msgstr ""
-"사용자 이름은 문자열이어야 합니다."
+msgstr "사용자 이름은 문자열이어야 합니다."
msgid "Group name list must be an array"
-msgstr ""
-"그룹 이름 목록은 배열이어야 합니다."
+msgstr "그룹 이름 목록은 배열이어야 합니다."
msgid "Group name must be a string"
-msgstr ""
-"그룹 이름은 문자열이어야 합니다."
+msgstr "그룹 이름은 문자열이어야 합니다."
#, python-format
msgid "User(s) '%(users)s' do not exist"
-msgstr ""
-"사용자 '%(users)s'이(가) 없습니다."
+msgstr "사용자 '%(users)s'이(가) 없습니다."
#, python-format
msgid "Group(s) '%(groups)s' do not exist"
-msgstr ""
-"그룹 '%(groups)s'이(가) 없습니다."
+msgstr "그룹 '%(groups)s'이(가) 없습니다."
#, python-format
msgid "Unable to shutdown virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"가상 머신 %(name)s을(를) 종료할 수 없습니다. 세부사항: %(err)s"
+msgstr "가상 머신 %(name)s을(를) 종료할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid ""
"Unable to get access metadata of virtual machine %(name)s. Details: %(err)s"
msgstr ""
-"가상 머신 %(name)s의 액세스 권한 메타데이터를 가져올 수 없습니다. 세부사항: %(err)s"
+"가상 머신 %(name)s의 액세스 권한 메타데이터를 가져올 수 없습니다. 세부사항: "
+"%(err)s"
msgid "The guest console password must be a string."
-msgstr ""
-"게스트 콘솔 비밀번호는 문자열이어야 합니다."
+msgstr "게스트 콘솔 비밀번호는 문자열이어야 합니다."
msgid "The life time for the guest console password must be a number."
-msgstr ""
-"게스트 콘솔 비밀번호의 지속 시간은 숫자여야 합니다."
+msgstr "게스트 콘솔 비밀번호의 지속 시간은 숫자여야 합니다."
#, python-format
msgid "Virtual machine '%(name)s' must be stopped before cloning it."
-msgstr ""
-"가상 머신 '%(name)s'은(는) 복제하기 전에 중지해야 합니다."
+msgstr "가상 머신 '%(name)s'은(는) 복제하기 전에 중지해야 합니다."
#, python-format
msgid "Insufficient disk space to clone virtual machine '%(name)s'"
@@ -360,83 +305,73 @@ msgstr ""
#, python-format
msgid "Unable to clone VM '%(name)s'. Details: %(err)s"
-msgstr ""
-"VM '%(name)s'을(를) 복제할 수 없습니다. 세부사항: %(err)s"
+msgstr "VM '%(name)s'을(를) 복제할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Invalid operation for non-persistent virtual machine %(name)s"
-msgstr ""
-"비지속적 가상 머신 %(name)s에 대해 올바르지 않은 조작입니다."
+msgstr "비지속적 가상 머신 %(name)s에 대해 올바르지 않은 조작입니다."
#, python-format
msgid "Cannot suspend VM '%(name)s' because it is not running."
-msgstr ""
-"VM '%(name)s'이(가) 실행 중이 아니므로 일시중단할 수 없습니다."
+msgstr "VM '%(name)s'이(가) 실행 중이 아니므로 일시중단할 수 없습니다."
#, python-format
msgid "Unable to suspend VM '%(name)s'. Details: %(err)s"
-msgstr ""
-"VM %(name)s을(를) 일시중단할 수 없습니다. 세부사항: %(err)s"
+msgstr "VM %(name)s을(를) 일시중단할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Cannot resume VM '%(name)s' because it is not paused."
-msgstr ""
-"VM '%(name)s'이(가) 일시정지되지 않았기 때문에 재개할 수 없습니다."
+msgstr "VM '%(name)s'이(가) 일시정지되지 않았기 때문에 재개할 수 없습니다."
#, python-format
msgid "Unable to resume VM '%(name)s'. Details: %(err)s"
-msgstr ""
-"VM '%(name)s'을(를) 재개할 수 없습니다. 세부사항: %(err)s"
+msgstr "VM '%(name)s'을(를) 재개할 수 없습니다. 세부사항: %(err)s"
msgid "Memory assigned is higher then the maximum allowed in the host."
-msgstr ""
-"지정된 메모리가 호스트에서 허용되는 최대 크기보다 큽니다."
+msgstr "지정된 메모리가 호스트에서 허용되는 최대 크기보다 큽니다."
#, python-format
msgid ""
"VM '%(name)s' does not support live memory update. Update the memory with "
"the machine offline to enable this feature."
msgstr ""
-"VM '%(name)s'에서는 라이브 메모리 업데이트가 지원되지 않습니다. 머신 오프라인 상태로 메모리를 업데이트하여"
-"이 기능을 사용으로 설정하십시오."
+"VM '%(name)s'에서는 라이브 메모리 업데이트가 지원되지 않습니다. 머신 오프라"
+"인 상태로 메모리를 업데이트하여이 기능을 사용으로 설정하십시오."
msgid "Only increase memory is allowed in active VMs"
-msgstr ""
-"활성 VM에서는 메모리 늘리기만 허용됩니다."
+msgstr "활성 VM에서는 메모리 늘리기만 허용됩니다."
msgid ""
"For live memory update, new memory value must be equal old memory value plus "
"multiples of 1024 Mib"
msgstr ""
-"라이브 메모리 업데이트의 경우 새 메모리 값은 이전 메모리 값에 1024 Mib의 배수를 더한 값과"
-"같아야 합니다."
+"라이브 메모리 업데이트의 경우 새 메모리 값은 이전 메모리 값에 1024 Mib의 배수"
+"를 더한 값과같아야 합니다."
msgid "There are not enough free slots of 1024 Mib in the guest."
-msgstr ""
-"게스트에 1024Mib의 여유 슬롯이 없습니다."
+msgstr "게스트에 1024Mib의 여유 슬롯이 없습니다."
msgid ""
"Host's libvirt version does not support memory devices. Libvirt must be >= "
"1.2.14"
msgstr ""
-"호스트의 libvirt 버전에서는 메모리 장치를 지원하지 않습니다. Libvirt는"
-"1.2.14이상이어야 합니다."
+"호스트의 libvirt 버전에서는 메모리 장치를 지원하지 않습니다. Libvirt는1.2.14"
+"이상이어야 합니다."
#, python-format
msgid "Error attaching memory device. Details: %(error)s"
-msgstr ""
-"메모리 장치를 연결하는 중 오류가 발생했습니다. 세부사항: %(error)s"
+msgstr "메모리 장치를 연결하는 중 오류가 발생했습니다. 세부사항: %(error)s"
#, python-format
msgid ""
"VM %(vmid)s does not contain directly assigned host device %(dev_name)s."
msgstr ""
-"VM %(vmid)s이(가) 직접 지정된 호스트 장치 %(dev_name)s을(를) 포함하고 있지 않습니다."
+"VM %(vmid)s이(가) 직접 지정된 호스트 장치 %(dev_name)s을(를) 포함하고 있지 않"
+"습니다."
#, python-format
msgid "The host device %(dev_name)s is not allowed to directly assign to VM."
-msgstr ""
-"호스트 장치 %(dev_name)s을(를) 직접 VM에 지정할 수 없습니다."
+msgstr "호스트 장치 %(dev_name)s을(를) 직접 VM에 지정할 수 없습니다."
msgid ""
"No IOMMU groups found. Host PCI pass through needs IOMMU group to function "
@@ -446,83 +381,70 @@ msgid ""
"iommu=1."
msgstr ""
"IOMMU 그룹을 찾을 수 없습니다. 올바르게 기능하려면 호스트 PCI pass through에 "
-"IOMMU 그룹이 있어야 합니다. BIOS에서 Intel VT-d 또는 AMD IOMMU를 사용하도록 설정한 후 "
-"커널이 IOMMU 지원으로 컴파일되었는지 확인하십시오. Intel CPU의 경우, "
-"/boot/grub2/grub.conf에 있는 커널 매개변수에 intel_iommu=on을 추가하십시오. AMD CPU의 경우,"
-"iommu=pt iommu=1을 추가하십시오."
+"IOMMU 그룹이 있어야 합니다. BIOS에서 Intel VT-d 또는 AMD IOMMU를 사용하도록 "
+"설정한 후 커널이 IOMMU 지원으로 컴파일되었는지 확인하십시오. Intel CPU의 경"
+"우, /boot/grub2/grub.conf에 있는 커널 매개변수에 intel_iommu=on을 추가하십시"
+"오. AMD CPU의 경우,iommu=pt iommu=1을 추가하십시오."
msgid "\"name\" should be a device name string"
-msgstr ""
-"\"name\"은(는) 장치 이름 문자열이어야 합니다."
+msgstr "\"name\"은(는) 장치 이름 문자열이어야 합니다."
#, python-format
msgid ""
"The device %(name)s is probably in use by the host. Unable to attach it to "
"the guest."
msgstr ""
-"%(name)s 장치는 호스트에서 사용 중일 수 있습니다. 게스트에 연결할 수"
-"없습니다."
+"%(name)s 장치는 호스트에서 사용 중일 수 있습니다. 게스트에 연결할 수없습니다."
#, python-format
msgid "Interface %(iface)s does not exist in virtual machine %(name)s"
-msgstr ""
-"가상 머신 %(name)s에 %(iface)s 인터페이스가 없습니다."
+msgstr "가상 머신 %(name)s에 %(iface)s 인터페이스가 없습니다."
#, python-format
msgid ""
"Network %(network)s specified for virtual machine %(name)s does not exist"
-msgstr ""
-"가상 머신 %(name)s에 지정된 %(network)s 네트워크가 없습니다."
+msgstr "가상 머신 %(name)s에 지정된 %(network)s 네트워크가 없습니다."
msgid "Supported virtual machine interfaces type is only network"
-msgstr ""
-"지원되는 가상 머신 인터페이스 유형은 네트워크뿐입니다."
+msgstr "지원되는 가상 머신 인터페이스 유형은 네트워크뿐입니다."
msgid "Network name for virtual machine interface must be a string"
-msgstr ""
-"가상 머신 인터페이스의 네트워크 이름은 문자열이어야 합니다."
+msgstr "가상 머신 인터페이스의 네트워크 이름은 문자열이어야 합니다."
msgid "Invalid network model card specified for virtual machine interface"
msgstr ""
-"가상 머신 인터페이스에 대해 올바르지 않은 네트워크 모델 카드가 지정되었습니다."
+"가상 머신 인터페이스에 대해 올바르지 않은 네트워크 모델 카드가 지정되었습니"
+"다."
msgid "Specify type and network to add a new virtual machine interface"
-msgstr ""
-"새 가상 머신 인터페이스를 추가할 유형 및 네트워크를 지정하십시오."
+msgstr "새 가상 머신 인터페이스를 추가할 유형 및 네트워크를 지정하십시오."
msgid "MAC Address must respect this format FF:FF:FF:FF:FF:FF"
-msgstr ""
-"MAC 주소는 FF:FF:FF:FF:FF:FF 형식을 준수해야 합니다."
+msgstr "MAC 주소는 FF:FF:FF:FF:FF:FF 형식을 준수해야 합니다."
#, python-format
msgid "MAC Address %(mac)s already exists in virtual machine %(name)s"
-msgstr ""
-"가상 머신 %(name)s에 MAC 주소 %(mac)s이(가) 이미 존재합니다."
+msgstr "가상 머신 %(name)s에 MAC 주소 %(mac)s이(가) 이미 존재합니다."
msgid "Invalid MAC Address"
-msgstr ""
-"올바르지 않은 MAC 주소입니다."
+msgstr "올바르지 않은 MAC 주소입니다."
msgid "Cannot change MAC address of a running virtual machine"
-msgstr ""
-"실행 중인 가상 머신의 MAC 주소를 변경할 수 없습니다."
+msgstr "실행 중인 가상 머신의 MAC 주소를 변경할 수 없습니다."
#, python-format
msgid "Template %(name)s already exists"
-msgstr ""
-"템플리트 %(name)s이(가) 이미 존재합니다."
+msgstr "템플리트 %(name)s이(가) 이미 존재합니다."
#, python-format
msgid ""
"Network '%(network)s' specified for template %(template)s does not exist"
-msgstr ""
-"%(template)s 템플리트에 지정된 '%(network)s' 네트워크가 없습니다."
+msgstr "%(template)s 템플리트에 지정된 '%(network)s' 네트워크가 없습니다."
#, python-format
msgid ""
"Storage pool %(pool)s specified for template %(template)s does not exist"
-msgstr ""
-"%(template)s 템플리트에 지정된 스토리지 풀 %(pool)s이(가) 없습니다."
+msgstr "%(template)s 템플리트에 지정된 스토리지 풀 %(pool)s이(가) 없습니다."
#, python-format
msgid "Storage pool %(pool)s specified for template %(template)s is not active"
@@ -531,41 +453,32 @@ msgstr ""
#, python-format
msgid "Invalid parameter '%(param)s' specified for CDROM."
-msgstr ""
-"CDROM에 대해 올바르지 않은 매개변수 '%(param)s' 이(가) 지정되었습니다."
+msgstr "CDROM에 대해 올바르지 않은 매개변수 '%(param)s' 이(가) 지정되었습니다."
#, python-format
msgid "Network %(network)s specified for template %(template)s is not active"
-msgstr ""
-"%(template)s 템플리트에 지정된 %(network)s 네트워크가 활성이 아닙니다."
+msgstr "%(template)s 템플리트에 지정된 %(network)s 네트워크가 활성이 아닙니다."
msgid "Template name must be a string"
-msgstr ""
-"템플리트 이름은 문자열이어야 합니다."
+msgstr "템플리트 이름은 문자열이어야 합니다."
msgid "Template icon must be a path to the image"
-msgstr ""
-"템플리트 아이콘은 이미지의 경로여야 합니다."
+msgstr "템플리트 아이콘은 이미지의 경로여야 합니다."
msgid "Template distribution must be a string"
-msgstr ""
-"템플리트 배포는 문자열이어야 합니다."
+msgstr "템플리트 배포는 문자열이어야 합니다."
msgid "Template distribution version must be a string"
-msgstr ""
-"템플리트 배포 버전은 문자열이어야 합니다."
+msgstr "템플리트 배포 버전은 문자열이어야 합니다."
msgid "The number of CPUs must be an integer greater than 0"
-msgstr ""
-"CPU 수는 0보다 큰 정수여야 합니다."
+msgstr "CPU 수는 0보다 큰 정수여야 합니다."
msgid "Amount of memory (MB) must be an integer greater than 512"
-msgstr ""
-"메모리 용량(MB)은 512보다 큰 정수여야 합니다."
+msgstr "메모리 용량(MB)은 512보다 큰 정수여야 합니다."
msgid "Template CDROM must be a local or remote ISO file"
-msgstr ""
-"템플리트 CDROM은 로컬 또는 원격 ISO 파일이어야 합니다."
+msgstr "템플리트 CDROM은 로컬 또는 원격 ISO 파일이어야 합니다."
#, python-format
msgid "Invalid storage pool URI %(value)s specified for template"
@@ -577,120 +490,100 @@ msgstr ""
"템플리트를 작성하려면 ISO 이미지를 CDROM 또는 기본 이미지로 지정하십시오."
msgid "All networks for the template must be specified in a list."
-msgstr ""
-"템플리트의 모든 네트워크가 목록에 지정되어야 합니다."
+msgstr "템플리트의 모든 네트워크가 목록에 지정되어야 합니다."
msgid "Specify a volume to a template when storage pool is iSCSI or SCSI"
-msgstr ""
-"스토리지 풀이 iSCSI 또는 SCSI인 경우 볼륨을 템플리트에 지정하십시오."
+msgstr "스토리지 풀이 iSCSI 또는 SCSI인 경우 볼륨을 템플리트에 지정하십시오."
#, python-format
msgid "The volume %(volume)s is not in storage pool %(pool)s"
-msgstr ""
-"%(volume)s 볼륨이 스토리지 풀 %(pool)s에 없습니다."
+msgstr "%(volume)s 볼륨이 스토리지 풀 %(pool)s에 없습니다."
#, python-format
msgid "Unable to create template due error: %(err)s"
-msgstr ""
-"오류 때문에 템플리트를 작성할 수 없음: %(err)s"
+msgstr "오류 때문에 템플리트를 작성할 수 없음: %(err)s"
#, python-format
msgid "Unable to delete template due error: %(err)s"
-msgstr ""
-"오류 때문에 템플리트를 삭제할 수 없음: %(err)s"
+msgstr "오류 때문에 템플리트를 삭제할 수 없음: %(err)s"
msgid "Disk size must be an integer greater than 1GB."
-msgstr ""
-"디스크 크기는 1GB보다 큰 정수여야 합니다."
+msgstr "디스크 크기는 1GB보다 큰 정수여야 합니다."
msgid "Template base image must be a valid local image file"
-msgstr ""
-"템플리트 기본 이미지는 유효한 로컬 이미지 파일이어야 합니다."
+msgstr "템플리트 기본 이미지는 유효한 로컬 이미지 파일이어야 합니다."
#, python-format
msgid "Cannot identify base image %(path)s format"
-msgstr ""
-"기본 이미지 %(path)s 형식을 식별할 수 없습니다."
+msgstr "기본 이미지 %(path)s 형식을 식별할 수 없습니다."
msgid ""
"When specifying CPU topology, VCPUs must be a product of sockets, cores, and "
"threads."
-msgstr ""
-"CPU 토폴로지를 지정할 때 VCPU는 소켓, 코어 및 스레드 제품이어야"
-"합니다."
+msgstr "CPU 토폴로지를 지정할 때 VCPU는 소켓, 코어 및 스레드 제품이어야합니다."
msgid ""
"When specifying CPU topology, each element must be an integer greater than "
"zero."
-msgstr ""
-"CPU 토폴로지를 지정할 때 각 요소는 0보다 큰 정수여야"
-"합니다."
+msgstr "CPU 토폴로지를 지정할 때 각 요소는 0보다 큰 정수여야합니다."
msgid ""
"Invalid disk image format. Valid formats: bochs, cloop, cow, dmg, qcow, "
"qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"올바르지 않은 디스크 이미지 형식입니다. 올바른 형식은 bochs, cloop, cow, dmg, qcow, "
-"qcow2, qed, raw, vmdk, vpc입니다."
+"올바르지 않은 디스크 이미지 형식입니다. 올바른 형식은 bochs, cloop, cow, "
+"dmg, qcow, qcow2, qed, raw, vmdk, vpc입니다."
#, python-format
msgid "Storage pool %(name)s already exists"
-msgstr ""
-"스토리지 풀 %(name)s이(가) 이미 존재합니다."
+msgstr "스토리지 풀 %(name)s이(가) 이미 존재합니다."
#, python-format
msgid "Storage pool %(name)s does not exist"
-msgstr ""
-"스토리지 풀 %(name)s이(가) 없습니다."
+msgstr "스토리지 풀 %(name)s이(가) 없습니다."
#, python-format
msgid "Specify %(item)s in order to create the storage pool %(name)s"
-msgstr ""
-"스토리지 풀 %(name)s을(를) 작성하려면 %(item)s을(를) 지정하십시오."
+msgstr "스토리지 풀 %(name)s을(를) 작성하려면 %(item)s을(를) 지정하십시오."
#, python-format
msgid "Unable to delete active storage pool %(name)s"
-msgstr ""
-"활성 스토리지 풀 %(name)s을(를) 삭제할 수 없습니다."
+msgstr "활성 스토리지 풀 %(name)s을(를) 삭제할 수 없습니다."
#, python-format
msgid "Unable to list storage pools. Details: %(err)s"
-msgstr ""
-"스토리지 풀을 나열할 수 없습니다. 세부사항: %(err)s"
+msgstr "스토리지 풀을 나열할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Unable to create storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"스토리지 풀 %(name)s을(를) 작성할 수 없습니다. 세부사항: %(err)s"
+msgstr "스토리지 풀 %(name)s을(를) 작성할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid ""
"Unable to get number of storage volumes in storage pool %(name)s. Details: "
"%(err)s"
msgstr ""
-"스토리지 풀 %(name)s에 있는 스토리지 볼륨의 수를 가져올 수 없습니다. 세부사항: "
-"%(err)s"
+"스토리지 풀 %(name)s에 있는 스토리지 볼륨의 수를 가져올 수 없습니다. 세부사"
+"항: %(err)s"
#, python-format
msgid "Unable to activate storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"스토리지 풀 %(name)s을(를) 활성화할 수 없습니다. 세부사항: %(err)s"
+msgstr "스토리지 풀 %(name)s을(를) 활성화할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Unable to deactivate storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"스토리지 풀 %(name)s을(를) 비활성화할 수 없습니다. 세부사항: %(err)s"
+msgstr "스토리지 풀 %(name)s을(를) 비활성화할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Unable to delete storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"스토리지 풀 %(name)s을(를) 삭제할 수 없습니다. 세부사항: %(err)s"
+msgstr "스토리지 풀 %(name)s을(를) 삭제할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid ""
"Unable to create NFS Pool as export path %(path)s may block during mount"
msgstr ""
-"내보내기 경로 %(path)s이(가) 마운트 중에 차단될 수 있으므로 NFS 풀을 작성할 수 없습니다."
+"내보내기 경로 %(path)s이(가) 마운트 중에 차단될 수 있으므로 NFS 풀을 작성할 "
+"수 없습니다."
#, python-format
msgid "Unable to create NFS Pool as export path %(path)s mount failed"
@@ -699,101 +592,85 @@ msgstr ""
#, python-format
msgid "Unsupported storage pool type: %(type)s"
-msgstr ""
-"지원되지 않는 스토리지 풀 유형: %(type)s"
+msgstr "지원되지 않는 스토리지 풀 유형: %(type)s"
#, python-format
msgid "Error while retrieving storage pool XML to %(pool)s"
-msgstr ""
-"%(pool)s에 대해 스토리지 풀 XML을 검색하는 중에 오류가 발생했습니다."
+msgstr "%(pool)s에 대해 스토리지 풀 XML을 검색하는 중에 오류가 발생했습니다."
msgid "Storage pool name must be a string without slashes (/)"
-msgstr ""
-"스토리지 풀 이름은 슬래시(/)를 포함하지 않는 문자열이어야 합니다."
+msgstr "스토리지 풀 이름은 슬래시(/)를 포함하지 않는 문자열이어야 합니다."
msgid ""
"Supported storage pool types are dir, netfs, logical, iscsi, isci and kimchi-"
"iso"
msgstr ""
-"지원되는 스토리지 풀 유형은 dir, netfs, logical, iscsi, isci 및 kimchi-"
-"iso입니다."
+"지원되는 스토리지 풀 유형은 dir, netfs, logical, iscsi, isci 및 kimchi-iso입"
+"니다."
msgid "Storage pool path must be a string"
-msgstr ""
-"스토리지 풀 경로는 문자열이어야 합니다."
+msgstr "스토리지 풀 경로는 문자열이어야 합니다."
msgid "Storage pool host must be a IP or hostname"
-msgstr ""
-"스토리지 풀 호스트는 IP 또는 호스트 이름이어야 합니다."
+msgstr "스토리지 풀 호스트는 IP 또는 호스트 이름이어야 합니다."
msgid "Storage pool device must be the absolute path to the block device"
-msgstr ""
-"스토리지 풀 장치는 블록 장치에 대한 절대 경로여야 합니다."
+msgstr "스토리지 풀 장치는 블록 장치에 대한 절대 경로여야 합니다."
msgid "Storage pool devices parameter must be a list"
-msgstr ""
-"스토리지 풀 장치는 목록이어야 합니다."
+msgstr "스토리지 풀 장치는 목록이어야 합니다."
msgid "Target IQN of an iSCSI pool must be a string"
-msgstr ""
-"iSCSI 풀의 대상 IQN은 문자열이어야 합니다."
+msgstr "iSCSI 풀의 대상 IQN은 문자열이어야 합니다."
msgid "Port of a remote storage server must be an integer between 1 and 65535"
-msgstr ""
-"원격 스토리지 서버의 포트는 1과 65535 사이의 정수여야 합니다."
+msgstr "원격 스토리지 서버의 포트는 1과 65535 사이의 정수여야 합니다."
msgid "iSCSI target username must be a string"
-msgstr ""
-"iSCSI 대상 사용자 이름은 문자열이어야 합니다."
+msgstr "iSCSI 대상 사용자 이름은 문자열이어야 합니다."
msgid "iSCSI target password must be a string"
-msgstr ""
-"iSCSI 대상 비밀번호는 문자열이어야 합니다."
+msgstr "iSCSI 대상 비밀번호는 문자열이어야 합니다."
msgid "Specify name and type to create a storage pool"
-msgstr ""
-"스토리지 풀을 작성하려면 이름 및 유형을 지정하십시오."
+msgstr "스토리지 풀을 작성하려면 이름 및 유형을 지정하십시오."
#, python-format
msgid ""
"%(disk)s is not a valid disk/partition. Could not add it to the pool "
"%(pool)s."
msgstr ""
-"%(disk)s은(는) 유효한 디스크/파티션이 아닙니다. 이를 풀"
-"%(pool)s에 추가할 수 없습니다."
+"%(disk)s은(는) 유효한 디스크/파티션이 아닙니다. 이를 풀%(pool)s에 추가할 수 "
+"없습니다."
#, python-format
msgid "Unable to extend logical pool %(pool)s. Details: %(err)s"
-msgstr ""
-"논리 풀 %(pool)s을(를) 확장할 수 없습니다. 세부사항: %(err)s"
+msgstr "논리 풀 %(pool)s을(를) 확장할 수 없습니다. 세부사항: %(err)s"
msgid "The parameter disks only can be updated for logical storage pool."
-msgstr ""
-"논리 스토리지 풀의 매개변수 디스크만 업데이트할 수 있습니다."
+msgstr "논리 스토리지 풀의 매개변수 디스크만 업데이트할 수 있습니다."
msgid "The SCSI host adapter name must be a string."
-msgstr ""
-"SCSI 호스트 어댑터 이름은 문자열이어야 합니다."
+msgstr "SCSI 호스트 어댑터 이름은 문자열이어야 합니다."
msgid "The storage pool kimchi_isos is reserved for internal use"
-msgstr ""
-"스토리지 풀 kimchi_isos는 내부 용도로 예약되었습니다."
+msgstr "스토리지 풀 kimchi_isos는 내부 용도로 예약되었습니다."
#, python-format
msgid ""
"Unable to activate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
msgstr ""
-"NFS 스토리지 풀 %(name)s을(를) 활성화할 수 없습니다. NFS 서버 %(server)s은(는)"
-"연결할 수 없습니다."
+"NFS 스토리지 풀 %(name)s을(를) 활성화할 수 없습니다. NFS 서버 %(server)s은"
+"(는)연결할 수 없습니다."
#, python-format
msgid ""
"Unable to deactivate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
msgstr ""
-"NFS 스토리지 풀 %(name)s을(를) 비활성화할 수 없습니다. NFS 서버 %(server)s은(는)"
-"연결할 수 없습니다."
+"NFS 스토리지 풀 %(name)s을(를) 비활성화할 수 없습니다. NFS 서버 %(server)s은"
+"(는)연결할 수 없습니다."
#, python-format
msgid ""
@@ -803,16 +680,15 @@ msgstr ""
#, python-format
msgid "Unable to delete pool %(name)s as it is associated with some templates"
-msgstr ""
-"일부 템플리트와 연관되어 있으므로 %(name)s 풀을 삭제할 수 없습니다."
+msgstr "일부 템플리트와 연관되어 있으므로 %(name)s 풀을 삭제할 수 없습니다."
#, python-format
msgid ""
"A volume group named '%(name)s' already exists. Please, choose another name "
"to create the logical pool."
msgstr ""
-"이름이 '%(name)s'인 볼륨 그룹이 이미 존재합니다. 논리 풀을 작성하려면"
-"다른 이름을 선택하십시오."
+"이름이 '%(name)s'인 볼륨 그룹이 이미 존재합니다. 논리 풀을 작성하려면다른 이"
+"름을 선택하십시오."
#, python-format
msgid "Unable to update database with deep scan information due error: %(err)s"
@@ -821,85 +697,77 @@ msgstr ""
#, python-format
msgid "Storage volume %(name)s already exists"
-msgstr ""
-"스토리지 볼륨 %(name)s이(가) 이미 존재합니다."
+msgstr "스토리지 볼륨 %(name)s이(가) 이미 존재합니다."
#, python-format
msgid "Storage volume %(name)s does not exist in storage pool %(pool)s"
-msgstr ""
-"스토리지 볼륨 %(name)s이(가) 스토리지 풀 %(pool)s에 없습니다."
+msgstr "스토리지 볼륨 %(name)s이(가) 스토리지 풀 %(pool)s에 없습니다."
#, python-format
msgid ""
"Unable to create storage volume %(volume)s because storage pool %(pool)s is "
"not active"
msgstr ""
-"스토리지 풀 %(pool)s 이(가) 활성이 아니므로 스토리지 볼륨 %(volume)s 을(를)"
-"작성할 수 없습니다."
+"스토리지 풀 %(pool)s이(가) 활성이 아니므로 스토리지 볼륨 %(volume)s을(를)작성"
+"할 수 없습니다."
#, python-format
msgid "Specify %(item)s in order to create storage volume %(volume)s"
-msgstr ""
-"스토리지 볼륨 %(volume)s 을(를) 작성하려면 %(item)s을(를) 지정하십시오."
+msgstr "스토리지 볼륨 %(volume)s을(를) 작성하려면 %(item)s을(를) 지정하십시오."
#, python-format
msgid ""
"Unable to list storage volumes because storage pool %(pool)s is not active"
msgstr ""
-"스토리지 풀 %(pool)s이(가) 활성이 아니므로 스토리지 볼륨을 나열할 수 없습니다."
+"스토리지 풀 %(pool)s이(가) 활성이 아니므로 스토리지 볼륨을 나열할 수 없습니"
+"다."
#, python-format
msgid ""
"Unable to create storage volume %(name)s in storage pool %(pool)s. Details: "
"%(err)s"
msgstr ""
-"스토리지 볼륨 %(name)s을(를) 스토리지 풀 %(pool)s에 작성할 수 없습니다. 세부사항: "
-"%(err)s"
+"스토리지 볼륨 %(name)s을(를) 스토리지 풀 %(pool)s에 작성할 수 없습니다. 세부"
+"사항: %(err)s"
#, python-format
msgid ""
"Unable to list storage volumes in storage pool %(pool)s. Details: %(err)s"
msgstr ""
-"스토리지 풀 %(pool)s에 있는 스토리지 볼륨을 나열할 수 없습니다. 세부사항: %(err)s"
+"스토리지 풀 %(pool)s에 있는 스토리지 볼륨을 나열할 수 없습니다. 세부사항: "
+"%(err)s"
#, python-format
msgid "Unable to wipe storage volumes %(name)s. Details: %(err)s"
-msgstr ""
-"스토리지 볼륨 %(name)s을(를) 삭제할 수 없습니다. 세부사항: %(err)s"
+msgstr "스토리지 볼륨 %(name)s을(를) 삭제할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Unable to delete storage volume %(name)s. Details: %(err)s"
-msgstr ""
-"스토리지 볼륨 %(name)s을(를) 삭제할 수 없습니다. 세부사항: %(err)s"
+msgstr "스토리지 볼륨 %(name)s을(를) 삭제할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Unable to resize storage volume %(name)s. Details: %(err)s"
-msgstr ""
-"스토리지 볼륨 %(name)s의 크기를 조정할 수 없습니다. 세부사항: %(err)s"
+msgstr "스토리지 볼륨 %(name)s의 크기를 조정할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Storage type %(type)s does not support volume create and delete"
-msgstr ""
-"스토리지 유형 %(type)s은(는) 볼륨 작성 및 삭제를 지원하지 않습니다."
+msgstr "스토리지 유형 %(type)s은(는) 볼륨 작성 및 삭제를 지원하지 않습니다."
msgid "Storage volume name must be a string"
-msgstr ""
-"스토리지 볼륨 이름은 문자열이어야 합니다."
+msgstr "스토리지 볼륨 이름은 문자열이어야 합니다."
msgid "Storage volume allocation must be an integer number"
-msgstr ""
-"스토리지 볼륨 할당은 정수여야 합니다."
+msgstr "스토리지 볼륨 할당은 정수여야 합니다."
msgid ""
"Storage volume format not supported. Valid formats: bochs, cloop, cow, dmg, "
"qcow, qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"스토리지 볼륨 형식이 지원되지 않습니다. 올바른 형식은 bochs, cloop, cow, dmg, "
-"qcow, qcow2, qed, raw, vmdk, vpc입니다."
+"스토리지 볼륨 형식이 지원되지 않습니다. 올바른 형식은 bochs, cloop, cow, "
+"dmg, qcow, qcow2, qed, raw, vmdk, vpc입니다."
msgid "Storage volume requires a volume name"
-msgstr ""
-"스토리지 볼륨은 볼륨 이름이 필요합니다."
+msgstr "스토리지 볼륨은 볼륨 이름이 필요합니다."
#, python-format
msgid ""
@@ -909,26 +777,21 @@ msgstr ""
#, python-format
msgid "Only one of parameter %(param)s can be specified"
-msgstr ""
-"하나의 매개변수 %(param)s만 지정할 수 있습니다."
+msgstr "하나의 매개변수 %(param)s만 지정할 수 있습니다."
#, python-format
msgid "Create volume from %(param)s is not supported"
-msgstr ""
-"%(param)s에서의 볼륨 작성은 지원되지 않습니다."
+msgstr "%(param)s에서의 볼륨 작성은 지원되지 않습니다."
msgid "Storage volume capacity must be an integer number."
-msgstr ""
-"스토리지 볼륨 용량은 정수여야 합니다."
+msgstr "스토리지 볼륨 용량은 정수여야 합니다."
msgid "Storage volume URL must be http://, https://, ftp:// or ftps://."
-msgstr ""
-"스토리지 볼륨 URL은 http://, https://, ftp:// 또는 ftps://여야 합니다."
+msgstr "스토리지 볼륨 URL은 http://, https://, ftp:// 또는 ftps://여야 합니다."
#, python-format
msgid "Unable to access file %(url)s. Please, check it."
-msgstr ""
-"파일 %(url)s에 액세스할 수 없습니다. 확인하십시오."
+msgstr "파일 %(url)s에 액세스할 수 없습니다. 확인하십시오."
#, python-format
msgid ""
@@ -939,12 +802,10 @@ msgstr ""
"%(err)s"
msgid "Specify chunk data and its size to upload a file."
-msgstr ""
-"파일을 업로드하려면 청크 데이터 및 해당 크기를 지정하십시오."
+msgstr "파일을 업로드하려면 청크 데이터 및 해당 크기를 지정하십시오."
msgid "In order to upload a storage volume, specify the 'upload' parameter."
-msgstr ""
-"스토리지 볼륨을 업로드하기 위해 '업로드' 매개변수를 지정하십시오."
+msgstr "스토리지 볼륨을 업로드하기 위해 '업로드' 매개변수를 지정하십시오."
msgid ""
"Unable to upload chunk data as it does not match with requested chunk size."
@@ -953,37 +814,30 @@ msgstr ""
#, python-format
msgid "The storage volume %(vol)s is not under an upload process."
-msgstr ""
-"스토리지 볼륨 %(vol)s은(는) 업로드 프로세스의 영향을 받지 않습니다."
+msgstr "스토리지 볼륨 %(vol)s은(는) 업로드 프로세스의 영향을 받지 않습니다."
msgid "The upload chunk data will exceed the storage volume size."
-msgstr ""
-"업로드 청크 데이터는 스토리지 볼륨 크기를 초과합니다."
+msgstr "업로드 청크 데이터는 스토리지 볼륨 크기를 초과합니다."
#, python-format
msgid "Unable to upload chunk data to storage volume. Details: %(err)s."
-msgstr ""
-"스토리지 볼륨에 청크 데이터를 업로드할 수 없습니다. 세부사항: %(err)s."
+msgstr "스토리지 볼륨에 청크 데이터를 업로드할 수 없습니다. 세부사항: %(err)s."
#, python-format
msgid "Interface %(name)s does not exist"
-msgstr ""
-"%(name)s 인터페이스가 없습니다."
+msgstr "%(name)s 인터페이스가 없습니다."
#, python-format
msgid "Network %(name)s already exists"
-msgstr ""
-"%(name)s 네트워크가 이미 존재합니다."
+msgstr "%(name)s 네트워크가 이미 존재합니다."
#, python-format
msgid "Network %(name)s does not exist"
-msgstr ""
-"%(name)s 네트워크가 없습니다."
+msgstr "%(name)s 네트워크가 없습니다."
#, python-format
msgid "Subnet %(subnet)s specified for network %(network)s is not valid."
-msgstr ""
-"%(network)s 네트워크에 지정된 %(subnet)s 서브넷이 유효하지 않습니다."
+msgstr "%(network)s 네트워크에 지정된 %(subnet)s 서브넷이 유효하지 않습니다."
#, python-format
msgid "Specify a network interface to create bridged network %(name)s"
@@ -992,8 +846,7 @@ msgstr ""
#, python-format
msgid "Unable to delete active network %(name)s"
-msgstr ""
-"활성 네트워크 %(name)s을(를) 삭제할 수 없습니다."
+msgstr "활성 네트워크 %(name)s을(를) 삭제할 수 없습니다."
#, python-format
msgid "Interface %(iface)s specified for network %(network)s is already in use"
@@ -1001,189 +854,161 @@ msgstr ""
"%(network)s 네트워크에 지정된 %(iface)s 인터페이스가 이미 사용 중입니다."
msgid "Interface should be bare NIC, bonding or bridge device."
-msgstr ""
-"인터페이스는 순수 NIC, 본딩 또는 브릿지 장치여야 합니다."
+msgstr "인터페이스는 순수 NIC, 본딩 또는 브릿지 장치여야 합니다."
#, python-format
msgid "Unable to create network %(name)s. Details: %(err)s"
-msgstr ""
-"%(name)s 네트워크를 작성할 수 없습니다. 세부사항: %(err)s"
+msgstr "%(name)s 네트워크를 작성할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Unable to find a free IP address for network '%(name)s'"
-msgstr ""
-"네트워크 '%(name)s'에 대한 여유 IP 주소를 찾을 수 없습니다."
+msgstr "네트워크 '%(name)s'에 대한 여유 IP 주소를 찾을 수 없습니다."
#, python-format
msgid "The interface %(iface)s already exists."
-msgstr ""
-"%(iface)s 인터페이스가 이미 존재합니다."
+msgstr "%(iface)s 인터페이스가 이미 존재합니다."
msgid "Network name must be a string without slashes (/) or quotes (\")"
msgstr ""
-"네트워크 이름은 슬래시(/) 또는 따옴표(\")를 포함하지 않는 문자열이어야 합니다."
+"네트워크 이름은 슬래시(/) 또는 따옴표(\")를 포함하지 않는 문자열이어야 합니"
+"다."
msgid "Supported network types are isolated, NAT and bridge"
-msgstr ""
-"지원되는 네트워크 유형은 격리, NAT 및 브릿지입니다."
+msgstr "지원되는 네트워크 유형은 격리, NAT 및 브릿지입니다."
msgid "Network subnet must be a string with IP address and prefix or netmask"
msgstr ""
"네트워크 서브넷은 IP 주소 및 접두부 또는 넷마스크가 있는 문자열이어야 합니다."
msgid "Network interface must be a string"
-msgstr ""
-"네트워크 인터페이스는 문자열이어야 합니다."
+msgstr "네트워크 인터페이스는 문자열이어야 합니다."
msgid "Network VLAN ID must be an integer between 1 and 4094"
-msgstr ""
-"네트워크 VLAN ID는 1과 4094 사이의 정수여야 합니다."
+msgstr "네트워크 VLAN ID는 1과 4094 사이의 정수여야 합니다."
msgid "Specify name and type to create a Network"
-msgstr ""
-"네트워크를 작성하려면 이름 및 유형을 지정하십시오."
+msgstr "네트워크를 작성하려면 이름 및 유형을 지정하십시오."
#, python-format
msgid ""
"Unable to delete network %(name)s. There are some virtual machines %(vms)s "
"and/or templates linked to this network."
msgstr ""
-"%(name)s 네트워크를 삭제할 수 없습니다. 이 네트워크에 링크된 일부 가상 머신 %(vms)s "
-"및/또는 템플리트가 있습니다."
+"%(name)s 네트워크를 삭제할 수 없습니다. 이 네트워크에 링크된 일부 가상 머신 "
+"%(vms)s 및/또는 템플리트가 있습니다."
#, python-format
msgid ""
"Unable to deactivate network %(name)s. There are some virtual machines "
"%(vms)s and/or templates linked to this network."
msgstr ""
-"%(name)s 네트워크를 비활성화할 수 없습니다. 이 네트워크에 링크된 일부 가상 머신"
-"%(vms)s 및/또는 템플리트가 있습니다."
+"%(name)s 네트워크를 비활성화할 수 없습니다. 이 네트워크에 링크된 일부 가상 머"
+"신%(vms)s 및/또는 템플리트가 있습니다."
#, python-format
msgid "Bridge device %(name)s can not be the trunk device of a VLAN."
-msgstr ""
-"브릿지 장치 %(name)s은(는) VLAN의 트렁크 장치가 될 수 없습니다."
+msgstr "브릿지 장치 %(name)s은(는) VLAN의 트렁크 장치가 될 수 없습니다."
#, python-format
msgid "Failed to activate interface %(iface)s: %(err)s."
-msgstr ""
-"%(iface)s 인터페이스 활성화 실패: %(err)s."
+msgstr "%(iface)s 인터페이스 활성화 실패: %(err)s."
#, python-format
msgid ""
"Failed to activate interface %(iface)s. Please check the physical link "
"status."
msgstr ""
-"%(iface)s 인터페이스를 활성화할 수 없습니다. 물리적 링크 상태를"
-"확인하십시오."
+"%(iface)s 인터페이스를 활성화할 수 없습니다. 물리적 링크 상태를확인하십시오."
#, python-format
msgid "Failed to start network %(name)s. Details: %(err)s"
-msgstr ""
-"%(name)s 네트워크를 시작할 수 없습니다. 세부사항: %(err)s"
+msgstr "%(name)s 네트워크를 시작할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid "Debug report %(name)s does not exist"
-msgstr ""
-"디버그 보고서 %(name)s이(가) 없습니다."
+msgstr "디버그 보고서 %(name)s이(가) 없습니다."
msgid "Debug report tool not found in system"
-msgstr ""
-"디버그 보고서 도구가 시스템에 없습니다."
+msgstr "디버그 보고서 도구가 시스템에 없습니다."
#, python-format
msgid "Unable to create debug report %(name)s. Details: %(err)s."
-msgstr ""
-"디버그 보고서 %(name)s을(를) 작성할 수 없습니다. 세부사항: %(err)s."
+msgstr "디버그 보고서 %(name)s을(를) 작성할 수 없습니다. 세부사항: %(err)s."
#, python-format
msgid "Can not find any debug report with the given name %(name)s"
-msgstr ""
-"지정된 이름 %(name)s의 디버그 보고서를 찾을 수 없습니다."
+msgstr "지정된 이름 %(name)s의 디버그 보고서를 찾을 수 없습니다."
#, python-format
msgid "Unable to generate debug report %(name)s. Details: %(err)s"
-msgstr ""
-"디버그 보고서 %(name)s을(를) 생성할 수 없습니다. 세부사항: %(err)s"
+msgstr "디버그 보고서 %(name)s을(를) 생성할 수 없습니다. 세부사항: %(err)s"
msgid "You should give a name for the debug report file."
-msgstr ""
-"디버그 보고서 파일의 이름을 제공해야 합니다."
+msgstr "디버그 보고서 파일의 이름을 제공해야 합니다."
msgid ""
"Debug report name must be a string. Only letters, digits, underscore ('_') "
"and hyphen ('-') are allowed."
msgstr ""
-"디버그 보고서 이름은 문자열이어야 합니다. 문자, 숫자, 밑줄('_')"
-"및 하이픈('-')만 허용됩니다."
+"디버그 보고서 이름은 문자열이어야 합니다. 문자, 숫자, 밑줄('_')및 하이픈('-')"
+"만 허용됩니다."
#, python-format
msgid ""
"The debug report with specified name \"%(name)s\" already exists. Please use "
"another one."
msgstr ""
-"지정된 이름 \"%(name)s\"의 디버그 보고서가 이미 있습니다. 다른 이름을"
-"사용하십시오."
+"지정된 이름 \"%(name)s\"의 디버그 보고서가 이미 있습니다. 다른 이름을사용하십"
+"시오."
#, python-format
msgid "Storage server %(server)s was not used by Kimchi"
-msgstr ""
-"스토리지 서버 %(server)s은(는) Kimchi에서 사용되지 않았습니다."
+msgstr "스토리지 서버 %(server)s은(는) Kimchi에서 사용되지 않았습니다."
#, python-format
msgid "Distro '%(name)s' does not exist"
-msgstr ""
-"Distro '%(name)s'이(가) 없습니다."
+msgstr "Distro '%(name)s'이(가) 없습니다."
#, python-format
msgid "Partition %(name)s does not exist in the host"
-msgstr ""
-"파티션 %(name)s이(가) 호스트에 없습니다."
+msgstr "파티션 %(name)s이(가) 호스트에 없습니다."
msgid "Unable to shutdown host machine as there are running virtual machines"
-msgstr ""
-"가상 머신을 실행 중인 호스트 머신을 종료할 수 없습니다."
+msgstr "가상 머신을 실행 중인 호스트 머신을 종료할 수 없습니다."
msgid "Unable to reboot host machine as there are running virtual machines"
-msgstr ""
-"가상 머신을 실행 중인 호스트 머신을 다시 부팅할 수 없습니다."
+msgstr "가상 머신을 실행 중인 호스트 머신을 다시 부팅할 수 없습니다."
#, python-format
msgid "Node device '%(name)s' not found"
-msgstr ""
-"노드 장치 '%(name)s'이(가) 없습니다."
+msgstr "노드 장치 '%(name)s'이(가) 없습니다."
msgid "Conflicting flag filters specified."
-msgstr ""
-"충돌하는 플래그 필터를 지정했습니다."
+msgstr "충돌하는 플래그 필터를 지정했습니다."
msgid "No packages marked for update"
-msgstr ""
-"업데이트 표시된 패키지가 없습니다."
+msgstr "업데이트 표시된 패키지가 없습니다."
#, python-format
msgid "Package %(name)s is not marked to be updated."
-msgstr ""
-"패키지 %(name)s은(는) 업데이트되도록 표시되지 않았습니다."
+msgstr "패키지 %(name)s은(는) 업데이트되도록 표시되지 않았습니다."
#, python-format
msgid "Error while getting packages marked to be updated. Details: %(err)s"
msgstr ""
-"업데이트되도록 표시된 패키지를 가져오는 중에 오류가 발생했습니다. 세부사항: %(err)s"
+"업데이트되도록 표시된 패키지를 가져오는 중에 오류가 발생했습니다. 세부사항: "
+"%(err)s"
msgid "There is no compatible package manager for this system."
-msgstr ""
-"이 시스템에 대해 호환 가능한 패키지 관리자가 없습니다."
+msgstr "이 시스템에 대해 호환 가능한 패키지 관리자가 없습니다."
#, python-format
msgid "Unable to find %(item)s in datastore"
-msgstr ""
-"데이터 저장소에서 %(item)s을(를) 찾을 수 없습니다."
+msgstr "데이터 저장소에서 %(item)s을(를) 찾을 수 없습니다."
#, python-format
msgid "Invalid URI %(uri)s"
-msgstr ""
-"올바르지 않은 URI %(uri)s"
+msgstr "올바르지 않은 URI %(uri)s"
#, python-format
msgid "Timeout while running command '%(cmd)s' after %(seconds)s seconds"
@@ -1191,151 +1016,120 @@ msgstr ""
"%(seconds)s초 후 '%(cmd)s' 명령을 실행하는 중에 제한시간이 초과되었습니다."
msgid "Unable to choose a virtual machine name"
-msgstr ""
-"가상 머신 이름을 선택할 수 없습니다."
+msgstr "가상 머신 이름을 선택할 수 없습니다."
#, python-format
msgid "Invalid data value '%(value)s'"
-msgstr ""
-"올바르지 않은 데이터 값 '%(value)s'입니다."
+msgstr "올바르지 않은 데이터 값 '%(value)s'입니다."
#, python-format
msgid "Invalid data unit '%(unit)s'"
-msgstr ""
-"올바르지 않은 데이터 단위 '%(unit)s'입니다."
+msgstr "올바르지 않은 데이터 단위 '%(unit)s'입니다."
msgid "Invalid storage type. Types supported: 'cdrom', 'disk'"
-msgstr ""
-"올바르지 않은 스토리지 유형입니다. 지원되는 유형: 'cdrom', 'disk'"
+msgstr "올바르지 않은 스토리지 유형입니다. 지원되는 유형: 'cdrom', 'disk'"
#, python-format
msgid "The path '%(value)s' is not a valid local/remote path for the device"
-msgstr ""
-"'%(value)s' 경로는 장치의 유효한 로컬/원격 경로가 아닙니다."
+msgstr "'%(value)s' 경로는 장치의 유효한 로컬/원격 경로가 아닙니다."
msgid "Only CDROM path can be update."
-msgstr ""
-"CDROM 경로만 업데이트할 수 있습니다."
+msgstr "CDROM 경로만 업데이트할 수 있습니다."
#, python-format
msgid ""
"The storage device %(dev_name)s does not exist in the virtual machine "
"%(vm_name)s"
-msgstr ""
-"스토리지 장치 %(dev_name)s이(가) 가상 머신"
-"%(vm_name)s에 없습니다."
+msgstr "스토리지 장치 %(dev_name)s이(가) 가상 머신%(vm_name)s에 없습니다."
#, python-format
msgid "Error while creating new storage device: %(error)s"
-msgstr ""
-"새 스토리지 장치를 작성하는 중에 오류 발생: %(error)s"
+msgstr "새 스토리지 장치를 작성하는 중에 오류 발생: %(error)s"
#, python-format
msgid "Error while updating storage device: %(error)s"
-msgstr ""
-"스토리지 장치를 업데이트하는 중에 오류 발생: %(error)s"
+msgstr "스토리지 장치를 업데이트하는 중에 오류 발생: %(error)s"
#, python-format
msgid "Error while removing storage device: %(error)s"
-msgstr ""
-"스토리지 장치를 제거하는 중에 오류 발생: %(error)s"
+msgstr "스토리지 장치를 제거하는 중에 오류 발생: %(error)s"
msgid "Do not support IDE device hot plug"
-msgstr ""
-"IDE 장치 핫 플러그를 지원하지 않습니다."
+msgstr "IDE 장치 핫 플러그를 지원하지 않습니다."
msgid ""
"Specify type and path or type and pool/volume to add a new virtual machine "
"disk"
msgstr ""
-"새 가상 머신 디스크를 추가할 유형 및 경로 또는 유형 및 풀/볼륨을 "
-"지정하십시오."
+"새 가상 머신 디스크를 추가할 유형 및 경로 또는 유형 및 풀/볼륨을 지정하십시"
+"오."
msgid "Specify path to update virtual machine disk"
-msgstr ""
-"가상 머신 디스크를 업데이트할 경로를 지정하십시오."
+msgstr "가상 머신 디스크를 업데이트할 경로를 지정하십시오."
#, python-format
msgid "Controller type %(type)s limitation of %(limit)s devices reached"
-msgstr ""
-"장치의 제어기 유형 %(type)s 한계 %(limit)s에 도달했습니다."
+msgstr "장치의 제어기 유형 %(type)s 한계 %(limit)s에 도달했습니다."
#, python-format
msgid "Cannot retrieve disk path information for given pool/volume: %(error)s"
-msgstr ""
-"지정한 풀/볼륨에 대한 디스크 경로를 검색할 수 없음: %(error)s"
+msgstr "지정한 풀/볼륨에 대한 디스크 경로를 검색할 수 없음: %(error)s"
msgid "Volume already in use by other virtual machine."
-msgstr ""
-"볼륨이 이미 다른 가상 머신에서 사용 중입니다."
+msgstr "볼륨이 이미 다른 가상 머신에서 사용 중입니다."
msgid ""
"Only one of path or pool/volume can be specified to add a new virtual "
"machine disk"
msgstr ""
-"경로 또는 풀/볼륨 중 하나만 새로운 가상 머신 디스크에 "
-"지정할 수 있습니다."
+"경로 또는 풀/볼륨 중 하나만 새로운 가상 머신 디스크에 지정할 수 있습니다."
#, python-format
msgid ""
"Volume chosen with format %(format)s does not fit in the storage type "
"%(type)s"
msgstr ""
-"%(format)s 형식으로 선택한 볼륨이 스토리지 유형"
-"%(type)s에 적합하지 않습니다."
+"%(format)s 형식으로 선택한 볼륨이 스토리지 유형%(type)s에 적합하지 않습니다."
msgid "YUM Repository ID must be one word only string."
-msgstr ""
-"YUM 저장소 ID는 단일 단어의 문자열이어야 합니다."
+msgstr "YUM 저장소 ID는 단일 단어의 문자열이어야 합니다."
msgid "Repository URL must be an http://, ftp:// or file:// URL."
-msgstr ""
-"저장소 URL은 http://, ftp:// 또는 file:// URL이어야 합니다."
+msgstr "저장소 URL은 http://, ftp:// 또는 file:// URL이어야 합니다."
msgid ""
"Repository configuration is a dictionary with specific values according to "
"repository type."
-msgstr ""
-"저장소 구성은 저장소 유형에 따른 특정 값이 있는 "
-"사전입니다."
+msgstr "저장소 구성은 저장소 유형에 따른 특정 값이 있는 사전입니다."
msgid "Distribution to DEB repository must be a string"
-msgstr ""
-"DEB 저장소에 대한 배포는 문자열이어야 합니다."
+msgstr "DEB 저장소에 대한 배포는 문자열이어야 합니다."
msgid "Components to DEB repository must be listed in a array"
-msgstr ""
-"DEB 저장소에 대한 구성요소는 배열에 나열되어야 합니다."
+msgstr "DEB 저장소에 대한 구성요소는 배열에 나열되어야 합니다."
msgid "Components to DEB repository must be a string"
-msgstr ""
-"DEB 저장소에 대한 구성요소는 문자열이어야 합니다."
+msgstr "DEB 저장소에 대한 구성요소는 문자열이어야 합니다."
msgid "Mirror list to repository must be a string"
-msgstr ""
-"저장소에 대한 미러 목록은 문자열이어야 합니다."
+msgstr "저장소에 대한 미러 목록은 문자열이어야 합니다."
msgid "YUM Repository name must be string."
-msgstr ""
-"YUM 저장소 이름은 문자열이어야 합니다."
+msgstr "YUM 저장소 이름은 문자열이어야 합니다."
msgid "GPG check must be a boolean value."
-msgstr ""
-"GPG 검사는 부울 값이어야 합니다."
+msgstr "GPG 검사는 부울 값이어야 합니다."
msgid "GPG key must be a URL pointing to the ASCII-armored file."
-msgstr ""
-"GPG 키는 ASCII 보호 파일을 가리키는 URL이어야 합니다."
+msgstr "GPG 키는 ASCII 보호 파일을 가리키는 URL이어야 합니다."
#, python-format
msgid "Could not update repository %(repo_id)s."
-msgstr ""
-"'%(repo_id)s' 저장소를 업데이트하지 못했습니다."
+msgstr "'%(repo_id)s' 저장소를 업데이트하지 못했습니다."
#, python-format
msgid "Repository %(repo_id)s does not exist."
-msgstr ""
-"%(repo_id)s 저장소가 없습니다."
+msgstr "%(repo_id)s 저장소가 없습니다."
msgid ""
"Specify repository base URL, mirror list or metalink in order to create or "
@@ -1345,90 +1139,72 @@ msgstr ""
"metalink를 지정하십시오."
msgid "Repository management tool was not recognized for your system."
-msgstr ""
-"해당 시스템에 대한 저장소 관리 도구가 인식되지 않았습니다."
+msgstr "해당 시스템에 대한 저장소 관리 도구가 인식되지 않았습니다."
#, python-format
msgid "Repository %(repo_id)s is already enabled."
-msgstr ""
-"%(repo_id)s 저장소가 이미 사용으로 설정되어 있습니다."
+msgstr "%(repo_id)s 저장소가 이미 사용으로 설정되어 있습니다."
#, python-format
msgid "Repository %(repo_id)s is already disabled."
-msgstr ""
-"%(repo_id)s 저장소가 이미 사용 안함으로 설정되어 있습니다."
+msgstr "%(repo_id)s 저장소가 이미 사용 안함으로 설정되어 있습니다."
#, python-format
msgid "Could not remove repository %(repo_id)s."
-msgstr ""
-"%(repo_id)s 저장소를 제거하지 못했습니다."
+msgstr "%(repo_id)s 저장소를 제거하지 못했습니다."
#, python-format
msgid "Could not write repository configuration file %(repo_file)s"
-msgstr ""
-"저장소 구성 파일 %(repo_file)s을(를) 작성할 수 없습니다."
+msgstr "저장소 구성 파일 %(repo_file)s을(를) 작성할 수 없습니다."
msgid "Specify repository distribution in order to create a DEB repository."
-msgstr ""
-"DEB 저장소를 작성하려면 저장소 배포를 지정하십시오."
+msgstr "DEB 저장소를 작성하려면 저장소 배포를 지정하십시오."
#, python-format
msgid "Could not enable repository %(repo_id)s."
-msgstr ""
-"%(repo_id)s 저장소를 사용으로 설정하지 못했습니다."
+msgstr "%(repo_id)s 저장소를 사용으로 설정하지 못했습니다."
#, python-format
msgid "Could not disable repository %(repo_id)s."
-msgstr ""
-"%(repo_id)s 저장소를 사용 안함으로 설정하지 못했습니다."
+msgstr "%(repo_id)s 저장소를 사용 안함으로 설정하지 못했습니다."
msgid "YUM Repository ID already exists"
-msgstr ""
-"YUM 저장소 ID가 이미 존재합니다."
+msgstr "YUM 저장소 ID가 이미 존재합니다."
msgid "YUM Repository name must be a string"
-msgstr ""
-"YUM 저장소 이름은 문자열이어야 합니다."
+msgstr "YUM 저장소 이름은 문자열이어야 합니다."
#, python-format
msgid "Unable to list repositories. Details: '%(err)s'"
-msgstr ""
-"저장소를 나열할 수 없습니다. 세부사항: '%(err)s'"
+msgstr "저장소를 나열할 수 없습니다. 세부사항: '%(err)s'"
#, python-format
msgid "Unable to retrieve repository information. Details: '%(err)s'"
-msgstr ""
-"저장소 정보를 검색할 수 없습니다. 세부사항: '%(err)s'"
+msgstr "저장소 정보를 검색할 수 없습니다. 세부사항: '%(err)s'"
#, python-format
msgid "Unable to add repository. Details: '%(err)s'"
-msgstr ""
-"저장소를 추가할 수 없습니다. 세부사항: '%(err)s'"
+msgstr "저장소를 추가할 수 없습니다. 세부사항: '%(err)s'"
#, python-format
msgid "Unable to remove repository. Details: '%(err)s'"
-msgstr ""
-"저장소를 제거할 수 없습니다. 세부사항: '%(err)s'"
+msgstr "저장소를 제거할 수 없습니다. 세부사항: '%(err)s'"
#, python-format
msgid ""
"Configuration items: '%(items)s' are not supported by repository manager"
-msgstr ""
-"구성 항목: '%(items)s'은(는) 저장소 관리자에 의해 지원되지 않습니다."
+msgstr "구성 항목: '%(items)s'은(는) 저장소 관리자에 의해 지원되지 않습니다."
msgid "Repository metalink must be an http://, ftp:// or file:// URL."
-msgstr ""
-"저장소 metalink는 http://, ftp:// 또는 file:// URL이어야 합니다."
+msgstr "저장소 metalink는 http://, ftp:// 또는 file:// URL이어야 합니다."
msgid "Cannot specify mirrorlist and metalink at the same time."
-msgstr ""
-"mirrorlist 및 metalink를 동시에 지정할 수 없습니다."
+msgstr "mirrorlist 및 metalink를 동시에 지정할 수 없습니다."
#, python-format
msgid ""
"Virtual machine '%(vm)s' must be stopped before creating a snapshot of it."
-msgstr ""
-"가상 머신 '%(vm)s'은(는) 스냅샷을 작성하기 전에 중지해야 합니다."
+msgstr "가상 머신 '%(vm)s'은(는) 스냅샷을 작성하기 전에 중지해야 합니다."
#, python-format
msgid ""
@@ -1440,8 +1216,7 @@ msgstr ""
#, python-format
msgid "Snapshot '%(name)s' does not exist on virtual machine '%(vm)s'."
-msgstr ""
-"가상 머신 '%(vm)s'에 '%(name)s' 스냅샷이 없습니다."
+msgstr "가상 머신 '%(vm)s'에 '%(name)s' 스냅샷이 없습니다."
#, python-format
msgid ""
@@ -1453,8 +1228,7 @@ msgstr ""
#, python-format
msgid "Unable to list snapshots on virtual machine '%(vm)s'. Details: %(err)s"
-msgstr ""
-"가상 머신 '%(vm)s'에 스냅샷을 나열할 수 없습니다. 세부사항: %(err)s"
+msgstr "가상 머신 '%(vm)s'에 스냅샷을 나열할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid ""
@@ -1469,624 +1243,484 @@ msgid ""
"Unable to retrieve current snapshot of virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"가상 머신 '%(vm)s'의 현재 스냅샷을 검색할 수 없습니다. 세부사항: "
-"%(err)s"
+"가상 머신 '%(vm)s'의 현재 스냅샷을 검색할 수 없습니다. 세부사항: %(err)s"
#, python-format
msgid ""
"Unable to revert virtual machine '%(vm)s' to snapshot '%(name)s'. Details: "
"%(err)s"
msgstr ""
-"'%(name)s' 스냅샷에 대한 가상 머신 '%(vm)s'을(를) 검색할 수 없습니다. 세부사항: "
-"%(err)s"
+"'%(name)s' 스냅샷에 대한 가상 머신 '%(vm)s'을(를) 검색할 수 없습니다. 세부사"
+"항: %(err)s"
#, python-format
msgid ""
"Unable to create snapshot of virtual machine '%(vm)s' because it contains a "
"disk with format '%(format)s'; only 'qcow2' is supported."
msgstr ""
-"'%(format)s' 형식의 디스크가 포함되어 있기 때문에"
-"가상 머신 '%(vm)s'의 스냅샷을 작성할 수 없습니다. 'qcow2'만 지원됩니다."
+"'%(format)s' 형식의 디스크가 포함되어 있기 때문에가상 머신 '%(vm)s'의 스냅샷"
+"을 작성할 수 없습니다. 'qcow2'만 지원됩니다."
msgid "The number of vCPUs is too large for this system."
-msgstr ""
-"이 시스템의 vCPU 수가 너무 큽니다."
+msgstr "이 시스템의 vCPU 수가 너무 큽니다."
msgid "Invalid vCPU/topology combination."
-msgstr ""
-"올바르지 않은 vCPU/토폴로지 조합입니다."
+msgstr "올바르지 않은 vCPU/토폴로지 조합입니다."
msgid "This host (or current configuration) does not allow CPU topology."
-msgstr ""
-"이 호스트(또는 현재 구성)에서는 CPU 토폴로지가 허용되지 않습니다."
+msgstr "이 호스트(또는 현재 구성)에서는 CPU 토폴로지가 허용되지 않습니다."
msgid "ERROR CODE"
-msgstr ""
-"오류 코드"
+msgstr "오류 코드"
msgid "REASON"
-msgstr ""
-"이유"
+msgstr "이유"
msgid "STACK"
-msgstr ""
-"스택"
+msgstr "스택"
msgid "Go to Homepage"
-msgstr ""
-"홈 페이지로 이동"
+msgstr "홈 페이지로 이동"
msgid "Create a New Virtual Machine"
-msgstr ""
-"새 가상 머신 작성"
+msgstr "새 가상 머신 작성"
msgid "Virtual Machine Name"
-msgstr ""
-"가상 머신 이름"
+msgstr "가상 머신 이름"
msgid ""
"The name used to identify the virtual machine. If omitted, a name will be "
"chosen based on the template used."
msgstr ""
-"가상 머신을 식별하는 데 사용되는 이름입니다. 생략되면 이름은 "
-"사용된 템플리트를 기반으로 선택됩니다."
+"가상 머신을 식별하는 데 사용되는 이름입니다. 생략되면 이름은 사용된 템플리트"
+"를 기반으로 선택됩니다."
msgid "Template"
-msgstr ""
-"템플리트"
+msgstr "템플리트"
msgid "Please create a template first."
-msgstr ""
-"템플리트를 먼저 작성하십시오."
+msgstr "템플리트를 먼저 작성하십시오."
msgid "Create a Template"
-msgstr ""
-"템플리트 작성"
+msgstr "템플리트 작성"
msgid "Please choose a template."
-msgstr ""
-"템플리트를 선택하십시오."
+msgstr "템플리트를 선택하십시오."
msgid "OS"
-msgstr ""
-"OS"
+msgstr "OS"
msgid "OS Version"
-msgstr ""
-"OS 버전"
+msgstr "OS 버전"
msgid "CPUS"
-msgstr ""
-"CPUS"
+msgstr "CPUS"
msgid "Memory"
-msgstr ""
-"메모리"
+msgstr "메모리"
msgid "Create"
-msgstr ""
-"작성"
+msgstr "작성"
msgid "Creating..."
-msgstr ""
-"작성 중..."
+msgstr "작성 중..."
msgid "Edit Guest"
-msgstr ""
-"게스트 편집"
+msgstr "게스트 편집"
msgid "General"
-msgstr ""
-"일반"
+msgstr "일반"
msgid "Storage"
-msgstr ""
-"스토리지"
+msgstr "스토리지"
msgid "Interface"
-msgstr ""
-"인터페이스"
+msgstr "인터페이스"
msgid "Permission"
-msgstr ""
-"권한"
+msgstr "권한"
msgid "Host PCI Device"
-msgstr ""
-"호스트 PCI 장치"
+msgstr "호스트 PCI 장치"
msgid "Snapshot"
-msgstr ""
-"스냅샷"
+msgstr "스냅샷"
msgid "Name"
-msgstr ""
-"이름"
+msgstr "이름"
msgid "CPUs"
-msgstr ""
-"CPU"
+msgstr "CPU"
msgid "Memory (MB)"
-msgstr ""
-"메모리(MB)"
+msgstr "메모리(MB)"
msgid "Icon"
-msgstr ""
-"아이콘"
+msgstr "아이콘"
msgid "Device"
-msgstr ""
-"장치"
+msgstr "장치"
msgid "Path"
-msgstr ""
-"경로"
+msgstr "경로"
msgid "Network"
-msgstr ""
-"네트워크"
+msgstr "네트워크"
msgid "Type"
-msgstr ""
-"유형"
+msgstr "유형"
msgid "MAC Address"
-msgstr ""
-"MAC 주소"
+msgstr "MAC 주소"
msgid "Available system users and groups"
-msgstr ""
-"사용 가능한 시스템 사용자 및 그룹"
+msgstr "사용 가능한 시스템 사용자 및 그룹"
msgid "Selected system users and groups"
-msgstr ""
-"선택한 시스템 사용자 및 그룹"
+msgstr "선택한 시스템 사용자 및 그룹"
msgid "User"
-msgstr ""
-"사용자"
+msgstr "사용자"
msgid "All"
-msgstr ""
-"모두"
+msgstr "모두"
msgid "To Add"
-msgstr ""
-"추가 대상"
+msgstr "추가 대상"
msgid "Added"
-msgstr ""
-"추가됨"
+msgstr "추가됨"
msgid "filter"
-msgstr ""
-"필터"
+msgstr "필터"
msgid "Product"
-msgstr ""
-"제품"
+msgstr "제품"
msgid "Vendor"
-msgstr ""
-"공급업체"
+msgstr "공급업체"
msgid "Created"
-msgstr ""
-"작성됨"
+msgstr "작성됨"
msgid "Save"
-msgstr ""
-"저장"
+msgstr "저장"
msgid "Replace"
-msgstr ""
-"교체"
+msgstr "교체"
msgid "Detach"
-msgstr ""
-"분리"
+msgstr "분리"
msgid "Cancel"
-msgstr ""
-"취소"
+msgstr "취소"
msgid "revert"
-msgstr ""
-"되돌리기"
+msgstr "되돌리기"
msgid "Add a Storage Device to VM"
-msgstr ""
-"스토리지 장치를 VM에 추가"
+msgstr "스토리지 장치를 VM에 추가"
msgid "Device Type"
-msgstr ""
-"장치 유형"
+msgstr "장치 유형"
msgid "The device type. Currently, \"cdrom\" and \"disk\" are supported."
-msgstr ""
-"장치 유형. 현재 \"cdrom\" 및 \"disk\"가 지원됩니다."
+msgstr "장치 유형. 현재 \"cdrom\" 및 \"disk\"가 지원됩니다."
msgid "Storage Pool"
-msgstr ""
-"스토리지 풀"
+msgstr "스토리지 풀"
msgid "Storage pool which volume located in"
-msgstr ""
-"볼륨이 위치한 스토리지 풀"
+msgstr "볼륨이 위치한 스토리지 풀"
msgid "Storage Volume"
-msgstr ""
-"스토리지 볼륨"
+msgstr "스토리지 볼륨"
msgid "Storage volume to be attached"
-msgstr ""
-"연결될 스토리지 볼륨"
+msgstr "연결될 스토리지 볼륨"
msgid "File Path"
-msgstr ""
-"파일 경로"
+msgstr "파일 경로"
msgid "The ISO file path in the server for CDROM."
-msgstr ""
-"CDROM을 위한 서버의 ISO 파일 경로입니다."
+msgstr "CDROM을 위한 서버의 ISO 파일 경로입니다."
msgid "Attach"
-msgstr ""
-"연결"
+msgstr "연결"
msgid "Start"
-msgstr ""
-"시작"
+msgstr "시작"
msgid "Reset"
-msgstr ""
-"다시 설정"
+msgstr "다시 설정"
msgid "Pause"
-msgstr ""
-"일시정지"
+msgstr "일시정지"
msgid "Resume"
-msgstr ""
-"재개"
+msgstr "재개"
msgid "Power Off"
-msgstr ""
-"전원 끄기"
+msgstr "전원 끄기"
msgid "Actions"
-msgstr ""
-"조치"
+msgstr "조치"
msgid "Connect"
-msgstr ""
-"연결"
+msgstr "연결"
msgid "Clone"
-msgstr ""
-"복제"
+msgstr "복제"
msgid "Edit"
-msgstr ""
-"편집"
+msgstr "편집"
msgid "Shut Down"
-msgstr ""
-"종료"
+msgstr "종료"
msgid "Delete"
-msgstr ""
-"삭제"
+msgstr "삭제"
msgid "The username or password you entered is incorrect. Please try again."
msgstr ""
"입력한 사용자 이름 또는 비밀번호가 올바르지 않습니다. 다시 시도하십시오."
msgid "This field is required."
-msgstr ""
-"이 필드는 필수입니다."
+msgstr "이 필드는 필수입니다."
msgid "Log in"
-msgstr ""
-"로그인"
+msgstr "로그인"
msgid "Logging in..."
-msgstr ""
-"로그인 중..."
+msgstr "로그인 중..."
msgid "Host"
-msgstr ""
-"호스트"
+msgstr "호스트"
msgid "Guests"
-msgstr ""
-"게스트"
+msgstr "게스트"
msgid "Templates"
-msgstr ""
-"템플리트"
+msgstr "템플리트"
msgid "Failed to get application configuration"
-msgstr ""
-"애플리케이션 구성을 가져오지 못했습니다."
+msgstr "애플리케이션 구성을 가져오지 못했습니다."
msgid "This is not a valid Linux path"
-msgstr ""
-"올바른 Linux 경로가 아닙니다."
+msgstr "올바른 Linux 경로가 아닙니다."
msgid "This is not a valid URL."
-msgstr ""
-"올바른 URL이 아닙니다."
+msgstr "올바른 URL이 아닙니다."
msgid "No such data available."
-msgstr ""
-"해당 데이터가 없습니다."
+msgstr "해당 데이터가 없습니다."
msgid ""
"Can not contact the host system. Verify the host system is up and that you "
"have network connectivity to it. HTTP request response %1. "
msgstr ""
-"호스트 시스템에 접속할 수 없습니다. 호스트 시스템이 가동되었고 "
-"이에 대한 네트워크 연결이 있는지 확인하십시오. HTTP 요청 응답 %1입니다. "
+"호스트 시스템에 접속할 수 없습니다. 호스트 시스템이 가동되었고 이에 대한 네트"
+"워크 연결이 있는지 확인하십시오. HTTP 요청 응답 %1입니다. "
msgid "Unable to read file."
-msgstr ""
-"파일을 읽을 수 없습니다. "
+msgstr "파일을 읽을 수 없습니다. "
msgid "Error while uploading file."
-msgstr ""
-"파일을 업로드하는 중에 오류가 발생했습니다."
+msgstr "파일을 업로드하는 중에 오류가 발생했습니다."
msgid "Delete Confirmation"
-msgstr ""
-"삭제 확인"
+msgstr "삭제 확인"
msgid "OK"
-msgstr ""
-"확인"
+msgstr "확인"
msgid "Confirm"
-msgstr ""
-"확인"
+msgstr "확인"
msgid "Warning"
-msgstr ""
-"경고"
+msgstr "경고"
msgid "Cloning..."
-msgstr ""
-"복제 중..."
+msgstr "복제 중..."
msgid "Loading..."
-msgstr ""
-"로드 중..."
+msgstr "로드 중..."
msgid "An error occurred while retrieving system information."
-msgstr ""
-"시스템 정보를 검색하는 중에 오류가 발생했습니다."
+msgstr "시스템 정보를 검색하는 중에 오류가 발생했습니다."
msgid "Retry"
-msgstr ""
-"재시도"
+msgstr "재시도"
msgid "Detailed message:"
-msgstr ""
-"세부 메시지:"
+msgstr "세부 메시지:"
msgid "No ISO found"
-msgstr ""
-"ISO가 없습니다."
+msgstr "ISO가 없습니다."
msgid "This is not a valid ISO file."
-msgstr ""
-"올바른 ISO 파일이 아닙니다."
+msgstr "올바른 ISO 파일이 아닙니다."
msgid "This may take a long time. Do you want to continue?"
-msgstr ""
-"시간이 오래 걸릴 수 있습니다. 계속하시겠습니까?"
+msgstr "시간이 오래 걸릴 수 있습니다. 계속하시겠습니까?"
msgid "This will permanently delete the template. Would you like to continue?"
-msgstr ""
-"템플리트가 영구적으로 삭제됩니다. 계속하시겠습니까?"
+msgstr "템플리트가 영구적으로 삭제됩니다. 계속하시겠습니까?"
msgid "Unable to shut down system as there are some virtual machines running!"
-msgstr ""
-"일부 가상 머신이 실행 중이므로 시스템을 종료할 수 없습니다."
+msgstr "일부 가상 머신이 실행 중이므로 시스템을 종료할 수 없습니다."
msgid "Max:"
-msgstr ""
-"최대:"
+msgstr "최대:"
msgid "Utilization"
-msgstr ""
-"이용률"
+msgstr "이용률"
msgid "Available"
-msgstr ""
-"사용 가능"
+msgstr "사용 가능"
msgid "Read Rate"
-msgstr ""
-"읽기 속도"
+msgstr "읽기 속도"
msgid "Write Rate"
-msgstr ""
-"쓰기 속도"
+msgstr "쓰기 속도"
msgid "Received"
-msgstr ""
-"받음"
+msgstr "받음"
msgid "Sent"
-msgstr ""
-"보냄"
+msgstr "보냄"
msgid ""
"Shutting down or restarting host will cause unsaved work lost. Continue to "
"shut down/restarting?"
msgstr ""
-"호스트를 종료하거나 다시 시작하면 저장되지 않은 작업이 손실됩니다. 시스템 종료/다시 시작을 "
-"계속하시겠습니까?"
+"호스트를 종료하거나 다시 시작하면 저장되지 않은 작업이 손실됩니다. 시스템 종"
+"료/다시 시작을 계속하시겠습니까?"
msgid ""
"Repository will be removed permanently and can't be recovered. Do you want "
"to continue?"
-msgstr ""
-"저장소가 영구적으로 제거되어 복구할 수 없습니다. "
-"계속하시겠습니까?"
+msgstr "저장소가 영구적으로 제거되어 복구할 수 없습니다. 계속하시겠습니까?"
msgid "Repositories"
-msgstr ""
-"저장소"
+msgstr "저장소"
msgid "ID"
-msgstr ""
-"ID"
+msgstr "ID"
msgid "Base URL"
-msgstr ""
-"기본 URL"
+msgstr "기본 URL"
msgid "Is Mirror"
-msgstr ""
-"미러임"
+msgstr "미러임"
msgid "URL Args"
-msgstr ""
-"URL 인수"
+msgstr "URL 인수"
msgid "Enabled"
-msgstr ""
-"사용함"
+msgstr "사용함"
msgid "GPG Check"
-msgstr ""
-"GPG 검사"
+msgstr "GPG 검사"
msgid "GPG Key"
-msgstr ""
-"GPG 키"
+msgstr "GPG 키"
msgid "Add"
-msgstr ""
-"추가"
+msgstr "추가"
msgid "Remove"
-msgstr ""
-"제거"
+msgstr "제거"
msgid "Enable"
-msgstr ""
-"사용"
+msgstr "사용"
msgid "Disable"
-msgstr ""
-"사용 안함"
+msgstr "사용 안함"
msgid "Software Updates"
-msgstr ""
-"소프트웨어 업데이트"
+msgstr "소프트웨어 업데이트"
msgid "Package Name"
-msgstr ""
-"패키지 이름"
+msgstr "패키지 이름"
msgid "Version"
-msgstr ""
-"버전"
+msgstr "버전"
msgid "Architecture"
-msgstr ""
-"아키텍처"
+msgstr "아키텍처"
msgid "Repository"
-msgstr ""
-"저장소"
+msgstr "저장소"
msgid "Update All"
-msgstr ""
-"모두 업데이트"
+msgstr "모두 업데이트"
msgid "Updating..."
-msgstr ""
-"업데이트 중..."
+msgstr "업데이트 중..."
msgid "Failed to retrieve packages update information."
-msgstr ""
-"패키지 업데이트 정보가 검색되지 않았습니다."
+msgstr "패키지 업데이트 정보가 검색되지 않았습니다."
msgid "Failed to update package(s)."
-msgstr ""
-"패키지를 업데이트하지 못했습니다."
+msgstr "패키지를 업데이트하지 못했습니다."
msgid ""
"Debug report will be removed permanently and can't be recovered. Do you want "
"to continue?"
msgstr ""
-"디버그 보고서가 영구적으로 제거되어 복구할 수 없습니다. "
-"계속하시겠습니까?"
+"디버그 보고서가 영구적으로 제거되어 복구할 수 없습니다. 계속하시겠습니까?"
msgid "Debug Reports"
-msgstr ""
-"디버그 보고서"
+msgstr "디버그 보고서"
msgid "Generated Time"
-msgstr ""
-"생성 시간"
+msgstr "생성 시간"
msgid "Generate"
-msgstr ""
-"생성"
+msgstr "생성"
msgid "Generating..."
-msgstr ""
-"생성 중..."
+msgstr "생성 중..."
msgid "Rename"
-msgstr ""
-"이름 바꾸기"
+msgstr "이름 바꾸기"
msgid "Download"
-msgstr ""
-"다운로드"
+msgstr "다운로드"
msgid ""
"Report name should contain only letters, digits, underscore ('_') and/or "
"hyphen ('-')."
msgstr ""
-"보고서 이름에는 문자, 숫자, 밑줄('_') 및 또는"
-"하이픈('-')만 포함되어야 합니다."
+"보고서 이름에는 문자, 숫자, 밑줄('_') 및 또는하이픈('-')만 포함되어야 합니다."
msgid "Pending..."
-msgstr ""
-"보류 중..."
+msgstr "보류 중..."
msgid "Report name is the same as the original one."
-msgstr ""
-"보고서 이름은 원본과 동일합니다."
+msgstr "보고서 이름은 원본과 동일합니다."
msgid ""
"This will delete the virtual machine and its virtual disks. This operation "
"cannot be undone. Would you like to continue?"
msgstr ""
-"가상 머신 및 해당 가상 디스크가 삭제됩니다. 이 조작은 "
-"실행 취소할 수 없습니다. 계속하시겠습니까?"
+"가상 머신 및 해당 가상 디스크가 삭제됩니다. 이 조작은 실행 취소할 수 없습니"
+"다. 계속하시겠습니까?"
msgid "Power off Confirmation"
-msgstr ""
-"전원 끄기 확인"
+msgstr "전원 끄기 확인"
msgid ""
"This action may produce undesirable results, for example unflushed disk "
"cache in the guest. Would you like to continue?"
msgstr ""
-"이 조치는 원하지 않은 결과를 생성할 수 있습니다(예: 게스트에 비워지지 않은 "
-"디스크 캐시가 있음). 계속하시겠습니까?"
+"이 조치는 원하지 않은 결과를 생성할 수 있습니다(예: 게스트에 비워지지 않은 디"
+"스크 캐시가 있음). 계속하시겠습니까?"
msgid "Reset Confirmation"
-msgstr ""
-"다시 설정 확인"
+msgstr "다시 설정 확인"
msgid ""
"There is a risk of data loss caused by reset without the guest OS shutdown. "
@@ -2096,746 +1730,578 @@ msgstr ""
"계속하시겠습니까?"
msgid "Shut Down Confirmation"
-msgstr ""
-"종료 확인"
+msgstr "종료 확인"
msgid "Note the guest OS may ignore this request. Would you like to continue?"
-msgstr ""
-"게스트 OS가 이 요청을 무시할 수 있음을 참고하십시오. 계속하시겠습니까?"
+msgstr "게스트 OS가 이 요청을 무시할 수 있음을 참고하십시오. 계속하시겠습니까?"
msgid "Virtual Machine delete Confirmation"
-msgstr ""
-"가상 머신 삭제 확인"
+msgstr "가상 머신 삭제 확인"
msgid ""
"This virtual machine is not persistent. Power Off will delete it. Continue?"
msgstr ""
-"이 가상 머신은 지속적이지 않습니다. 전원을 끄면 삭제됩니다. 계속하시겠습니까?"
+"이 가상 머신은 지속적이지 않습니다. 전원을 끄면 삭제됩니다. 계속하시겠습니"
+"까?"
msgid ""
"When the target guest has SCSI or iSCSI volumes, they will be cloned on "
"default storage pool. The same will happen when the target pool does not "
"have enough space to clone the volumes. Do you want to continue?"
msgstr ""
-"대상 게스트에 SCSI 또는 iSCSI 볼륨이 있으면 기본 스토리지 풀에"
-"복제됩니다. 대상 풀에 볼륨을 복제할 수 있는 공간이 충분하지 않은 경우에도"
-"마찬가지입니다. 계속하시겠습니까?"
+"대상 게스트에 SCSI 또는 iSCSI 볼륨이 있으면 기본 스토리지 풀에복제됩니다. 대"
+"상 풀에 볼륨을 복제할 수 있는 공간이 충분하지 않은 경우에도마찬가지입니다. 계"
+"속하시겠습니까?"
msgid ""
"This CDROM will be detached permanently and you can re-attach it. Continue "
"to detach it?"
msgstr ""
-"이 CDROM은 영구적으로 분리되며 다시 연결할 수 있습니다. 분리를 "
-"계속하시겠습니까?"
+"이 CDROM은 영구적으로 분리되며 다시 연결할 수 있습니다. 분리를 계속하시겠습니"
+"까?"
msgid "Attaching..."
-msgstr ""
-"연결 중..."
+msgstr "연결 중..."
msgid "Replacing..."
-msgstr ""
-"교체 중..."
+msgstr "교체 중..."
msgid "Successfully attached!"
-msgstr ""
-"연결되었습니다."
+msgstr "연결되었습니다."
msgid "Successfully replaced!"
-msgstr ""
-"교체되었습니다."
+msgstr "교체되었습니다."
msgid "Successfully detached!"
-msgstr ""
-"분리되었습니다."
+msgstr "분리되었습니다."
msgid ""
"This disk will be detached permanently and you can re-attach it. Continue to "
"detach it?"
msgstr ""
-"이 디스크는 영구적으로 분리되고 다시 연결할 수 있습니다. 분리를 "
-"계속하시겠습니까?"
+"이 디스크는 영구적으로 분리되고 다시 연결할 수 있습니다. 분리를 계속하시겠습"
+"니까?"
msgid "interface:"
-msgstr ""
-"인터페이스:"
+msgstr "인터페이스:"
msgid "address:"
-msgstr ""
-"주소:"
+msgstr "주소:"
msgid "link_type:"
-msgstr ""
-"link_type:"
+msgstr "link_type:"
msgid "block:"
-msgstr ""
-"블록:"
+msgstr "블록:"
msgid "drive_type:"
-msgstr ""
-"drive_type:"
+msgstr "drive_type:"
msgid "model:"
-msgstr ""
-"모델:"
+msgstr "모델:"
msgid "Affected devices:"
-msgstr ""
-"관련 장치:"
+msgstr "관련 장치:"
msgid "The VLAN id must be between 1 and 4094."
-msgstr ""
-"VLAN ID는 1과 4094 사이여야 합니다."
+msgstr "VLAN ID는 1과 4094 사이여야 합니다."
msgid "unavailable"
-msgstr ""
-"사용 불가능"
+msgstr "사용 불가능"
msgid ""
"This action will interrupt network connectivity for any virtual machine that "
"depend on this network."
msgstr ""
-"이 조치는 이 네트워크에 의존하는 가상 머신의 네트워크 연결을 "
-"인터럽트합니다."
+"이 조치는 이 네트워크에 의존하는 가상 머신의 네트워크 연결을 인터럽트합니다."
msgid "Create a network"
-msgstr ""
-"네트워크 작성"
+msgstr "네트워크 작성"
msgid ""
"This network is not persistent. Instead of stop, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"이 네트워크는 지속적이지 않습니다. 이 조치는 중지하는 대신 "
-"영구적으로 삭제합니다. 계속하시겠습니까?"
+"이 네트워크는 지속적이지 않습니다. 이 조치는 중지하는 대신 영구적으로 삭제합"
+"니다. 계속하시겠습니까?"
msgid ""
"The bridged VLAN tag may not work well with NetworkManager enabled. You "
"should consider disabling it."
msgstr ""
-"NetworkManager를 사용으로 설정하여 브릿지된 VLAN 태그가 잘 작동하지 않을 수 있습니다. 사용 안함으로"
-"설정하는 것이 좋습니다."
+"NetworkManager를 사용으로 설정하여 브릿지된 VLAN 태그가 잘 작동하지 않을 수 "
+"있습니다. 사용 안함으로설정하는 것이 좋습니다."
msgid ""
"This will permanently delete the storage pool. Would you like to continue?"
-msgstr ""
-"스토리지 풀이 영구적으로 삭제됩니다. 계속하시겠습니까?"
+msgstr "스토리지 풀이 영구적으로 삭제됩니다. 계속하시겠습니까?"
msgid "This storage pool is empty."
-msgstr ""
-"이 스토리지 풀은 비어 있습니다."
+msgstr "이 스토리지 풀은 비어 있습니다."
msgid ""
"It will format your disk and you will loose any data in there, are you sure "
"to continue? "
-msgstr ""
-"디스크가 포맷되고 데이터가 손실됩니다. "
-"계속하시겠습니까? "
+msgstr "디스크가 포맷되고 데이터가 손실됩니다. 계속하시겠습니까? "
msgid "SCSI Fibre Channel"
-msgstr ""
-"SCSI 파이버 채널"
+msgstr "SCSI 파이버 채널"
msgid "No SCSI adapters found."
-msgstr ""
-"SCSI 어댑터가 없습니다."
+msgstr "SCSI 어댑터가 없습니다."
msgid "Loading iSCSI targets..."
-msgstr ""
-"iSCSI 대상 로드 중..."
+msgstr "iSCSI 대상 로드 중..."
msgid "No iSCSI found. Please input one."
-msgstr ""
-"iSCSI가 없습니다. 입력하십시오."
+msgstr "iSCSI가 없습니다. 입력하십시오."
msgid "Failed to load iSCSI targets."
-msgstr ""
-"iSCSI 대상을 로드하지 못했습니다."
+msgstr "iSCSI 대상을 로드하지 못했습니다."
msgid "The storage pool name can not be blank."
-msgstr ""
-"스토리지 풀 이름은 비워둘 수 없습니다."
+msgstr "스토리지 풀 이름은 비워둘 수 없습니다."
msgid "The storage pool path can not be blank."
-msgstr ""
-"스토리지 풀 경로는 비워둘 수 없습니다."
+msgstr "스토리지 풀 경로는 비워둘 수 없습니다."
msgid "NFS server mount path can not be blank."
-msgstr ""
-"NFS 서버 마운트 경로는 비워둘 수 없습니다."
+msgstr "NFS 서버 마운트 경로는 비워둘 수 없습니다."
msgid "Invalid NFS mount path."
-msgstr ""
-"올바르지 않은 NFS 마운트 경로입니다."
+msgstr "올바르지 않은 NFS 마운트 경로입니다."
msgid "No logical device selected."
-msgstr ""
-"논리 장치가 선택되지 않았습니다."
+msgstr "논리 장치가 선택되지 않았습니다."
msgid "The iSCSI target can not be blank."
-msgstr ""
-"iSCSI 대상은 비워둘 수 없습니다."
+msgstr "iSCSI 대상은 비워둘 수 없습니다."
msgid "Server name can not be blank."
-msgstr ""
-"서버 이름은 비워둘 수 없습니다."
+msgstr "서버 이름은 비워둘 수 없습니다."
msgid "This is not a valid Server Name or IP. Please, modify it."
-msgstr ""
-"유효한 서버 이름 또는 IP가 아닙니다. 수정하십시오."
+msgstr "유효한 서버 이름 또는 IP가 아닙니다. 수정하십시오."
msgid "Looking for available partitions ..."
-msgstr ""
-"사용 가능한 파티션을 찾는 중..."
+msgstr "사용 가능한 파티션을 찾는 중..."
msgid "No available partitions found."
-msgstr ""
-"사용 가능한 파티션이 없습니다."
+msgstr "사용 가능한 파티션이 없습니다."
msgid ""
"This storage pool is not persistent. Instead of deactivate, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"이 스토리지 풀은 지속적이지 않습니다. 이 조치는 풀을 비활성화하지 않고 "
-"영구적으로 삭제합니다. 계속하시겠습니까?"
+"이 스토리지 풀은 지속적이지 않습니다. 이 조치는 풀을 비활성화하지 않고 영구적"
+"으로 삭제합니다. 계속하시겠습니까?"
msgid "Unable to retrieve partitions information."
-msgstr ""
-"파티션 정보를 검색할 수 없습니다. "
+msgstr "파티션 정보를 검색할 수 없습니다. "
msgid "In progress..."
-msgstr ""
-"처리 중..."
+msgstr "처리 중..."
msgid "Failed!"
-msgstr ""
-"실패함!"
+msgstr "실패함!"
msgid "CDROM path needs to be a valid local/remote path and cannot be blank."
-msgstr ""
-"CDROM 경로는 올바른 로컬/원격 경로여야 하며 비워둘 수 없습니다."
+msgstr "CDROM 경로는 올바른 로컬/원격 경로여야 하며 비워둘 수 없습니다."
msgid "Disk pool or volume cannot be blank."
-msgstr ""
-"디스크 풀 또는 볼륨은 비워둘 수 없습니다."
+msgstr "디스크 풀 또는 볼륨은 비워둘 수 없습니다."
msgid "Peers"
-msgstr ""
-"피어"
+msgstr "피어"
msgid "Searching"
-msgstr ""
-"검색 중"
+msgstr "검색 중"
msgid "No peers found."
-msgstr ""
-"피어가 없습니다."
+msgstr "피어가 없습니다."
msgid "Help"
-msgstr ""
-"도움말"
+msgstr "도움말"
msgid "About"
-msgstr ""
-"정보"
+msgstr "정보"
msgid "Log out"
-msgstr ""
-"로그아웃"
+msgstr "로그아웃"
msgid "Version:"
-msgstr ""
-"버전: "
+msgstr "버전: "
msgid "Session timeout, please re-login."
-msgstr ""
-"세션 제한시간이 초과되었습니다. 다시 로그인하십시오."
+msgstr "세션 제한시간이 초과되었습니다. 다시 로그인하십시오."
msgid "User Name"
-msgstr ""
-"사용자 이름"
+msgstr "사용자 이름"
msgid "Password"
-msgstr ""
-"비밀번호"
+msgstr "비밀번호"
msgid "Generate a New Debug Report"
-msgstr ""
-"새 디버그 보고서 생성"
+msgstr "새 디버그 보고서 생성"
msgid "Report Name"
-msgstr ""
-"보고서 이름"
+msgstr "보고서 이름"
msgid ""
"The name used to identify the report. If omitted, a name will be chosen "
"based on current time. Name can contain: letters, digits, underscore (\"_\") "
"and hyphen (\"-\")."
msgstr ""
-"보고서를 식별하는 데 사용되는 이름입니다. 생략되면 이름은 "
-"현재 시간을 기반으로 선택됩니다. 이름에는 문자, 숫자, 밑줄(\"_\")"
-"및 하이픈(\"-\")을 포함할 수 있습니다."
+"보고서를 식별하는 데 사용되는 이름입니다. 생략되면 이름은 현재 시간을 기반으"
+"로 선택됩니다. 이름에는 문자, 숫자, 밑줄(\"_\")및 하이픈(\"-\")을 포함할 수 "
+"있습니다."
msgid "Rename a Debug Report"
-msgstr ""
-"디버그 보고서 이름 바꾸기"
+msgstr "디버그 보고서 이름 바꾸기"
msgid ""
"The name used to identify the report. Name can contain: letters, digits and "
"hyphen (\"-\")."
msgstr ""
-"보고서를 식별하는 데 사용하는 이름입니다. 이름에는 문자, 숫자 및"
-"하이픈(\"-\")을 포함할 수 있습니다."
+"보고서를 식별하는 데 사용하는 이름입니다. 이름에는 문자, 숫자 및하이픈(\"-\")"
+"을 포함할 수 있습니다."
msgid "Submit"
-msgstr ""
-"제출"
+msgstr "제출"
msgid "Add a Repository"
-msgstr ""
-"저장소 추가"
+msgstr "저장소 추가"
msgid "Identifier"
-msgstr ""
-"ID"
+msgstr "ID"
msgid "Single word, unique identifier for the repository."
-msgstr ""
-"저장소에 대한 단일 단어의 고유 ID입니다."
+msgstr "저장소에 대한 단일 단어의 고유 ID입니다."
msgid "Textual name for the repository."
-msgstr ""
-"저장소에 대한 텍스트 이름입니다."
+msgstr "저장소에 대한 텍스트 이름입니다."
msgid "URL"
-msgstr ""
-"URL"
+msgstr "URL"
msgid "Required Field"
-msgstr ""
-"필수 필드"
+msgstr "필수 필드"
msgid "URL to the repository. Supported protocols are http, ftp, and file."
-msgstr ""
-"저장소에 대한 URL입니다. 지원되는 프로토콜은 http, ftp 및 file입니다."
+msgstr "저장소에 대한 URL입니다. 지원되는 프로토콜은 http, ftp 및 file입니다."
msgid "Repository is a mirror"
-msgstr ""
-"저장소가 미러입니다."
+msgstr "저장소가 미러입니다."
msgid "Distribution"
-msgstr ""
-"배포"
+msgstr "배포"
msgid "Distribution of the DEB repository."
-msgstr ""
-"DEB 저장소의 배포입니다."
+msgstr "DEB 저장소의 배포입니다."
msgid "Components"
-msgstr ""
-"구성요소"
+msgstr "구성요소"
msgid "List of components in DEB repository."
-msgstr ""
-"DEB 저장소의 구성요소 목록입니다."
+msgstr "DEB 저장소의 구성요소 목록입니다."
msgid "Edit Repository"
-msgstr ""
-"저장소 편집"
+msgstr "저장소 편집"
msgid "Mirror List URL"
-msgstr ""
-"미러 목록 URL"
+msgstr "미러 목록 URL"
msgid "Yes"
-msgstr ""
-"예"
+msgstr "예"
msgid "No"
-msgstr ""
-"아니오"
+msgstr "아니오"
msgid "Add a Volume to Storage Pool"
-msgstr ""
-"스토리지 풀에 볼륨 추가"
+msgstr "스토리지 풀에 볼륨 추가"
msgid "Fetch from remote URL"
-msgstr ""
-"원격 URL에서 페치"
+msgstr "원격 URL에서 페치"
msgid "Enter the remote URL here."
-msgstr ""
-"여기에 원격 URL을 입력하십시오."
+msgstr "여기에 원격 URL을 입력하십시오."
msgid "Upload a file"
-msgstr ""
-"파일 업로드"
+msgstr "파일 업로드"
msgid "Choose the file you want to upload."
-msgstr ""
-"업로드할 파일을 선택하십시오."
+msgstr "업로드할 파일을 선택하십시오."
msgid "Define a New Storage Pool"
-msgstr ""
-"새 스토리지 풀 정의"
+msgstr "새 스토리지 풀 정의"
msgid "Storage Pool Name"
-msgstr ""
-"스토리지 풀 이름"
+msgstr "스토리지 풀 이름"
msgid ""
"The name used to identify the storage pools, and it should not be empty."
-msgstr ""
-"스토리지 풀을 식별하는 데 사용되는 이름이며 비어 있지 않아야 합니다."
+msgstr "스토리지 풀을 식별하는 데 사용되는 이름이며 비어 있지 않아야 합니다."
msgid "Storage Pool Type"
-msgstr ""
-"스토리지 풀 유형"
+msgstr "스토리지 풀 유형"
msgid "Storage Path"
-msgstr ""
-"스토리지 경로"
+msgstr "스토리지 경로"
msgid ""
"The path of the Storage Pool. Each Storage Pool must have a unique path."
-msgstr ""
-"스토리지 풀의 경로입니다. 각 스토리지 풀은 고유 경로를 가져야 합니다."
+msgstr "스토리지 풀의 경로입니다. 각 스토리지 풀은 고유 경로를 가져야 합니다."
msgid ""
"Kimchi will try to create the directory when it does not already exist in "
"your system."
msgstr ""
-"디렉토리가 시스템에 이미 존재하지 않으면 Kimchi가 디렉토리 작성을 "
-"시도합니다."
+"디렉토리가 시스템에 이미 존재하지 않으면 Kimchi가 디렉토리 작성을 시도합니다."
msgid "NFS Server IP"
-msgstr ""
-"NFS 서버 IP"
+msgstr "NFS 서버 IP"
msgid "NFS server IP or hostname. It can be input or chosen from history."
msgstr ""
-"NFS 서버 IP 또는 호스트 이름입니다. 이것은 입력하거나 히스토리에서 선택할 수 있습니다."
+"NFS 서버 IP 또는 호스트 이름입니다. 이것은 입력하거나 히스토리에서 선택할 수 "
+"있습니다."
msgid "NFS Path"
-msgstr ""
-"NFS 경로"
+msgstr "NFS 경로"
msgid "The NFS exported path on NFS server."
-msgstr ""
-"NFS 서버에서 NFS의 내보낸 경로입니다."
+msgstr "NFS 서버에서 NFS의 내보낸 경로입니다."
msgid "Device path"
-msgstr ""
-"장치 경로"
+msgstr "장치 경로"
msgid "iSCSI Server"
-msgstr ""
-"iSCSI 서버"
+msgstr "iSCSI 서버"
msgid "iSCSI server IP or hostname. It should not be empty."
-msgstr ""
-"iSCSI 서버 IP 또는 호스트 이름입니다. 비어 있지 않아야 합니다."
+msgstr "iSCSI 서버 IP 또는 호스트 이름입니다. 비어 있지 않아야 합니다."
msgid "Server"
-msgstr ""
-"서버"
+msgstr "서버"
msgid "Port"
-msgstr ""
-"포트"
+msgstr "포트"
msgid "Target"
-msgstr ""
-"대상"
+msgstr "대상"
msgid "The iSCSI target on iSCSI server"
-msgstr ""
-"iSCSI 서버의 iSCSI 대상"
+msgstr "iSCSI 서버의 iSCSI 대상"
msgid "Add iSCSI Authentication"
-msgstr ""
-"iSCSI 인증 추가"
+msgstr "iSCSI 인증 추가"
msgid "iSCSI Authentication"
-msgstr ""
-"iSCSI 인증"
+msgstr "iSCSI 인증"
msgid "SCSI Adapter"
-msgstr ""
-"SCSI 어댑터"
+msgstr "SCSI 어댑터"
msgid "Please, wait..."
-msgstr ""
-"잠시 기다려 주십시오."
+msgstr "잠시 기다려 주십시오."
msgid "Add Template"
-msgstr ""
-"템플리트 추가"
+msgstr "템플리트 추가"
msgid "Where is the source media for this template? "
-msgstr ""
-"이 템플리트의 소스 매체는 어디에 있습니까?"
+msgstr "이 템플리트의 소스 매체는 어디에 있습니까?"
msgid "Local ISO Image"
-msgstr ""
-"로컬 ISO 이미지"
+msgstr "로컬 ISO 이미지"
msgid "Local Image File"
-msgstr ""
-"로컬 이미지 파일"
+msgstr "로컬 이미지 파일"
msgid "Remote ISO Image"
-msgstr ""
-"원격 ISO 이미지"
+msgstr "원격 ISO 이미지"
msgid "Search ISOs"
-msgstr ""
-"ISO 검색"
+msgstr "ISO 검색"
msgid "The following ISOs are available:"
-msgstr ""
-"다음 ISO가 사용 가능합니다."
+msgstr "다음 ISO가 사용 가능합니다."
msgid "OS: "
-msgstr ""
-"OS: "
+msgstr "OS: "
msgid "Version: "
-msgstr ""
-"버전: "
+msgstr "버전: "
msgid "Size: "
-msgstr ""
-"크기: "
+msgstr "크기: "
msgid "Search more ISOs"
-msgstr ""
-"추가 ISO 검색"
+msgstr "추가 ISO 검색"
msgid "Create Templates from Selected ISO"
-msgstr ""
-"선택한 ISO로부터 템플리트 작성"
+msgstr "선택한 ISO로부터 템플리트 작성"
msgid "I want to use a specific ISO file"
-msgstr ""
-"특정 ISO 파일을 사용하려고 합니다."
+msgstr "특정 ISO 파일을 사용하려고 합니다."
msgid "Loading default remote ISOs ..."
-msgstr ""
-"기본 원격 ISO 로드 중..."
+msgstr "기본 원격 ISO 로드 중..."
msgid "Arch: "
-msgstr ""
-"Arch: "
+msgstr "Arch: "
msgid "I want to use a custom URL"
-msgstr ""
-"사용자 정의 URL을 사용하려고 합니다."
+msgstr "사용자 정의 URL을 사용하려고 합니다."
msgid "Edit Template"
-msgstr ""
-"템플리트 편집"
+msgstr "템플리트 편집"
msgid "Processor"
-msgstr ""
-"프로세서"
+msgstr "프로세서"
msgid "CDROM"
-msgstr ""
-"CDROM"
+msgstr "CDROM"
msgid "Image File"
-msgstr ""
-"이미지 파일"
+msgstr "이미지 파일"
msgid "Graphics"
-msgstr ""
-"그래픽"
+msgstr "그래픽"
msgid "Disk(GB)"
-msgstr ""
-"디스크(GB)"
+msgstr "디스크(GB)"
msgid "Disk Format"
-msgstr ""
-"디스크 형식"
+msgstr "디스크 형식"
msgid "CPU Number"
-msgstr ""
-"CPU 번호"
+msgstr "CPU 번호"
msgid "Manually set CPU topology"
-msgstr ""
-"CPU 토폴로지 수동 설정"
+msgstr "CPU 토폴로지 수동 설정"
msgid "Cores"
-msgstr ""
-"코어"
+msgstr "코어"
msgid "Threads"
-msgstr ""
-"스레드"
+msgstr "스레드"
msgid "CPU"
-msgstr ""
-"CPU"
+msgstr "CPU"
msgid "Disk I/O"
-msgstr ""
-"디스크 I/O"
+msgstr "디스크 I/O"
msgid "Network I/O"
-msgstr ""
-"네트워크 I/O"
+msgstr "네트워크 I/O"
msgid "Livetile"
-msgstr ""
-"라이브타일"
+msgstr "라이브타일"
msgid "No guests found."
-msgstr ""
-"게스트가 없습니다."
+msgstr "게스트가 없습니다."
msgid "Shut down"
-msgstr ""
-"시스템 종료"
+msgstr "시스템 종료"
msgid "Restart"
-msgstr ""
-"다시 시작"
+msgstr "다시 시작"
msgid "Basic Information"
-msgstr ""
-"기본 정보"
+msgstr "기본 정보"
msgid "OS Distro"
-msgstr ""
-"OS Distro"
+msgstr "OS Distro"
msgid "OS Code Name"
-msgstr ""
-"OS 코드 이름"
+msgstr "OS 코드 이름"
msgid "CPU(s)"
-msgstr ""
-"CPU"
+msgstr "CPU"
msgid "System Statistics"
-msgstr ""
-"시스템 통계"
+msgstr "시스템 통계"
msgid "Update Progress"
-msgstr ""
-"진행상태 업데이트"
+msgstr "진행상태 업데이트"
msgid "Network Name"
-msgstr ""
-"네트워크 이름"
+msgstr "네트워크 이름"
msgid "State"
-msgstr ""
-"상태"
+msgstr "상태"
msgid "Network Type"
-msgstr ""
-"네트워크 유형"
+msgstr "네트워크 유형"
msgid "Address Space"
-msgstr ""
-"주소 공간"
+msgstr "주소 공간"
msgid "Name should not contain '/' and '\"'."
-msgstr ""
-"이름에는 '/' 및 '\"'를 포함하지 않아야 합니다."
+msgstr "이름에는 '/' 및 '\"'를 포함하지 않아야 합니다."
msgid "Isolated: no external network connection"
-msgstr ""
-"격리됨: 외부 네트워크 연결 없음"
+msgstr "격리됨: 외부 네트워크 연결 없음"
msgid "NAT: outbound physical network connection only"
-msgstr ""
-"NAT: 아웃바운드 물리적 네트워크 연결만"
+msgstr "NAT: 아웃바운드 물리적 네트워크 연결만"
msgid "Bridged: Virtual machines are connected to physical network directly"
-msgstr ""
-"브릿지됨: 가상 머신이 물리적 네트워크에 직접 연결됨"
+msgstr "브릿지됨: 가상 머신이 물리적 네트워크에 직접 연결됨"
msgid "(No interfaces found)"
-msgstr ""
-"(인터페이스를 찾을 수 없음)"
+msgstr "(인터페이스를 찾을 수 없음)"
msgid "Destination"
-msgstr ""
-"목적지"
+msgstr "목적지"
msgid "Enable VLAN"
-msgstr ""
-"VLAN 사용"
+msgstr "VLAN 사용"
msgid "VLAN ID"
-msgstr ""
-"VLAN ID"
+msgstr "VLAN ID"
msgid "Stop"
-msgstr ""
-"중지"
+msgstr "중지"
msgid "%Used"
-msgstr ""
-"%Used"
+msgstr "%Used"
msgid "Location"
-msgstr ""
-"위치"
+msgstr "위치"
msgid "Capacity"
-msgstr ""
-"용량"
+msgstr "용량"
msgid "Allocated"
-msgstr ""
-"할당됨"
+msgstr "할당됨"
msgid "active"
-msgstr ""
-"활성"
+msgstr "활성"
msgid "inactive"
-msgstr ""
-"비활성"
+msgstr "비활성"
msgid "Deactivate"
-msgstr ""
-"비활성화"
+msgstr "비활성화"
msgid "Activate"
-msgstr ""
-"활성화"
+msgstr "활성화"
msgid "Add Volume"
-msgstr ""
-"볼륨 추가"
+msgstr "볼륨 추가"
msgid "Extend"
-msgstr ""
-"확장"
+msgstr "확장"
msgid "Undefine"
-msgstr ""
-"정의 취소"
+msgstr "정의 취소"
msgid "Format"
-msgstr ""
-"형식"
+msgstr "형식"
msgid "Allocation"
-msgstr ""
-"할당"
+msgstr "할당"
msgid "No templates found."
-msgstr ""
-"템플리트가 없습니다."
-
-# ENGL1SH_VERS10N 28617_40 DO NOT REMOVE OR CHANGE THIS LINE
-# T9N_SRC_ID 92
-# T9N_SH1P_STR1NG KV310AAP001 1
+msgstr "템플리트가 없습니다."
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 5f44740..61ffe9e 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,77 +1,62 @@
-# i18n portable object for kimchi.
-# Copyright (C) IBM, Corp. 2013-2014
-# ShaoHe Feng <shaohef(a)linux.vnet.ibm.com>, 2013-04-18.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# English translations for kimchi package.
+# Copyright (C) 2013 ORGANIZATION
+# Adam Litke <agl(a)us.ibm.com>, 2013.
#
msgid ""
msgstr ""
-"Project-Id-Version: kimchi 1.0\n"
+"Project-Id-Version: kimchi 0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-24 09:39-0300\n"
-"PO-Revision-Date: 2015-03-23 12:57+0000\n"
-"Last-Translator: Crístian Deives dos Santos Viana <cristiandeives@gmail."
-"com>\n"
-"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"
-"kimchi/language/pt_BR/)\n"
+"POT-Creation-Date: 2015-08-21 09:52-0300\n"
+"PO-Revision-Date: 2013-07-11 17:32-0400\n"
+"Last-Translator: Crístian Viana <vianac(a)linux.vnet.ibm.com>\n"
+"Language-Team: English\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Generated-By: pygettext.py 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#, python-format
msgid "Unknown parameter %(value)s"
-msgstr "Parâmetro desconhecido: %(value)s"
+msgstr "Parâmetro desconhecido %(value)s "
#, python-format
msgid "Delete is not allowed for %(resource)s"
-msgstr "Método de remoção não é permitido em %(resource)s"
+msgstr "A exclusão não é permitida para %(resource)s "
#, python-format
msgid "%(resource)s does not implement update method"
-msgstr "%(resource)s não implementa método de atualização"
+msgstr "%(resource)s não implementa o método de atualização"
#, python-format
msgid "Create is not allowed for %(resource)s"
-msgstr "Método de criação não é permitido em %(resource)s"
+msgstr "A criação não é permitida para %(resource)s "
msgid "Unable to parse JSON request"
-msgstr "Não é possível realizar a leitura da requisição do JSON"
+msgstr "Não é possível analisar a solicitação JSON"
msgid "This API only supports JSON"
-msgstr "Essa API suporta apenas JSON"
+msgstr "Esta API suporta somente JSON"
#, python-format
msgid "Parameters does not match requirement in schema: %(err)s"
-msgstr "Parâmetros não correspondem à especificação do esquema: %(err)s"
+msgstr "Os parâmetros não correspondem ao requisito no esquema: %(err)s"
msgid "You don't have permission to perform this operation."
-msgstr "Você não tem permissão para executar esta operação."
+msgstr "Você não tem permissão para executar essa operação."
msgid "Datastore is not initiated in the model object."
-msgstr "Datastore não está inicializado no objeto modelo."
+msgstr "O armazenamento de dados não é iniciado no objeto modelo."
#, python-format
msgid "Unable to start task due error: %(err)s"
-msgstr "Não foi possível iniciar a tarefa devido a um erro: %(err)s"
+msgstr "Não é possível iniciar a tarefa devido ao erro: %(err)s "
#, python-format
msgid "Timeout of %(seconds)s seconds expired while running task '%(task)s."
msgstr ""
-"Limite de tempo de %(seconds)s segundos expirado ao executar a tarefa "
+"Tempo limite de %(seconds)s segundos expirou durante a execução da tarefa "
"'%(task)s'."
#, python-format
@@ -80,19 +65,20 @@ msgstr ""
"Autenticação falhou para o usuário '%(username)s'. [Código de erro: %(code)s]"
msgid "You are not authorized to access Kimchi"
-msgstr "Você não está autorizado para acessar o Kimchi"
+msgstr "Você não está autorizado a acessar o Kimchi"
#, python-format
msgid "Specify %(item)s to login into Kimchi"
-msgstr "Especifique %(item)s para autenticar no Kimchi"
+msgstr "Especifique %(item)s para efetuar login no Kimchi"
#, python-format
msgid "User %(user_id)s not found with given LDAP settings."
-msgstr "Usuário %(user_id)s não encontrado com as configurações LDAP dadas."
+msgstr ""
+"Usuário %(user_id)s não localizado com as configurações de LDAP fornecidas."
#, python-format
msgid "Invalid LDAP configuration: %(item)s : %(value)s"
-msgstr "Configurações LDAP inválidas: %(item)s : %(value)s"
+msgstr "Configuração de LDAP inválida: %(item)s: %(value)s "
msgid "Unknown \"_cap\" specified"
msgstr "\"_cap\" desconhecido especificado"
@@ -101,64 +87,72 @@ msgid "\"_passthrough\" should be \"true\" or \"false\""
msgstr "\"_passthrough\" deve ser \"true\" ou \"false\""
msgid "\"_passthrough_affected_by\" should be a device name string"
-msgstr "\"_passthrough_affected_by\" deve ser um texto do nome do dispositivo"
+msgstr ""
+"\"_passthrough_affected_by\" deve ser uma sequência de nome do dispositivo"
+
+msgid "\"_available_only\" should be \"true\" or \"false\""
+msgstr "\"_available_only\" deve ser \"true\" ou \"false\""
#, python-format
msgid "Error while getting block devices. Details: %(err)s"
-msgstr "Erro ao consultar block devices. Detalhes %(err)s"
+msgstr "Erro ao obter dispositivos de bloco. Detalhes: %(err)s "
#, python-format
msgid "Error while getting block device information for %(device)s."
-msgstr "Erro ao consultar informações de block devices para %(device)s."
+msgstr ""
+"Erro ao obter informações sobre o dispositivo de bloco para %(device)s."
#, python-format
msgid "Unable to find distro file: %(filename)s"
-msgstr "Não foi possível encontrar o arquivo da distribuição: %(filename)s"
+msgstr "Não é possível localizar o arquivo distro: %(filename)s "
#, python-format
msgid ""
"Unable to parse distro file: %(filename)s. Make sure, it is a JSON file."
msgstr ""
-"Não foi possível ler o arquivo da distribuição: %(filename)s. Confirme se é "
-"um arquivo JSON."
+"Não é possível analisar o arquivo distro: %(filename)s. Certifique-se de que "
+"seja um arquivo JSON."
#, python-format
msgid "Unable to login to iSCSI host target %(portal)s. Details: %(err)s"
msgstr ""
-"Não foi possível logar na máquina alvo do iSCSI %(portal)s. Detalhes: %(err)s"
+"Não é possível efetuar login no destino do host iSCSI %(portal)s. Detalhes: "
+"%(err)s "
#, python-format
msgid "Unable to login to iSCSI host %(host)s target %(target)s"
-msgstr "Não foi possível logar na máquina %(host)s alvo %(target)s do iSCSI"
+msgstr ""
+"Não é possível efetuar login no destino %(target)s do host %(host)s iSCSI"
#, python-format
msgid "Unable to find ISO file %(filename)s"
-msgstr "Não foi possível encontrar a ISO %(filename)s"
+msgstr "Não é possível localizar o arquivo ISO %(filename)s "
#, python-format
msgid "The ISO file %(filename)s is not bootable"
-msgstr "A ISO %(filename)s não é bootável"
+msgstr "O arquivo ISO %(filename)s não é inicializável"
#, python-format
msgid "The ISO file %(filename)s does not have a valid El Torito boot record"
-msgstr "A ISO %(filename)s não possui uma gravação válida de boot El Torito"
+msgstr ""
+"O arquivo ISO %(filename)s não possui um registro de inicialização El Torito "
+"válido"
#, python-format
msgid "Invalid El Torito validation entry in ISO %(filename)s"
-msgstr "Validação El Torito inválida na ISO %(filename)s"
+msgstr "Entrada de validação El Torito inválida no ISO %(filename)s "
#, python-format
msgid "Invalid El Torito boot indicator in ISO %(filename)s"
-msgstr "Indicador de boot El Torito inválido na ISO %(filename)s"
+msgstr "Indicador de inicialização El Torito inválido no ISO %(filename)s "
#, python-format
msgid "Unexpected volume type for primary volume in ISO %(filename)s"
-msgstr ""
-"Tipo de volume não esperado para um volume primário na ISO %(filename)s"
+msgstr "Tipo de volume inesperado para o volume primário no ISO %(filename)s "
#, python-format
msgid "Bad format while reading volume descriptor in ISO %(filename)s"
-msgstr "Formato errado na leitura do descritor de volume na ISO %(filename)s"
+msgstr "Formato inválido ao ler o descritor de volume no ISO %(filename)s "
#, python-format
msgid ""
@@ -168,228 +162,234 @@ msgid ""
"'%(user)s' to the ISO path group, or (not recommended) 'chmod -R o+x "
"'path_to_iso'.Details: %(err)s"
msgstr ""
-"O servidor não tem permissão para acessar a ISO %(filename)s. Considere mudá-"
-"la para o diretório /var/lib/libvirt, ou mude as permissões para que o "
-"usuário '%(user)s' tenha acesso, ou, adicione o usuário '%(user)s' no grupo "
-"do caminho da ISO, ou (não recomendado) 'chmod -R o+x 'caminho_para_iso'. "
-"Detalhes: %(err)s"
+"O hypervisor não possui permissão para usar este ISO %(filename)s. Considere "
+"movê-lo sob /var/lib/libvirt ou configure a permissão de procura para listas "
+"de controle de acesso de arquivo para o usuário '%(user)s', se possível, ou "
+"inclua o '%(user)s' no grupo de caminhos ISO ou (não recomendado) 'chmod -R o"
+"+x 'path_to_iso'.Detalhes: %(err)s "
msgid "An error occurred when probing image OS information."
-msgstr "Ocorreu um erro ao identificar o sistema operacional da imagem."
+msgstr "Ocorreu um erro com a imagem de análise das informações de S.O."
msgid "No OS information found in given image."
-msgstr ""
-"Nenhuma informação de sistema operacional encontrada na imagem fornecida."
+msgstr "Nenhuma informação de S.O. localizada na imagem fornecida."
#, python-format
msgid "Unable to read image file %(filename)s"
-msgstr "Não foi possível ler o arquivo de imagem %(filename)s."
+msgstr "Não é possível ler o arquivo de imagem %(filename)s "
#, python-format
msgid ""
"Image file must be an existing file on system. %(filename)s is not a valid "
"input."
msgstr ""
-"Arquivo de imagem deve ser um arquivo existente no sistema. %(filename)s não "
-"é uma entrada válida."
+"O arquivo de imagem deve ser um arquivo existente no sistema. %(filename)s "
+"não é uma entrada válida."
#, python-format
msgid "Virtual machine %(name)s already exists"
-msgstr "Máquina virtual %(name)s já existe"
+msgstr "A máquina virtual %(name)s já existe"
#, python-format
msgid "Virtual machine %(name)s does not exist"
-msgstr "Máquina virtual %(name)s não existe"
+msgstr "A máquina virtual %(name)s não existe"
#, python-format
msgid ""
"Unable to rename virtual machine %(name)s. The name %(new_name)s is already "
"in use or the virtual machine is not powered off."
msgstr ""
-"Não foi possível renomear a máquina virtual %(name)s. O nome %(new_name)s já "
-"está em uso ou a máquina virtual não está ligada."
+"Não é possível renomear a máquina virtual %(name)s. O nome %(new_name)s já "
+"existeem uso ou a máquina virtual não está desligada."
#, python-format
msgid "Unable to retrieve screenshot for stopped virtual machine %(name)s"
msgstr ""
-"Não foi possível tirar uma foto da tela para a máquina virtual %(name)s que "
-"está desligada"
+"Não é possível recuperar a captura de tela para a máquina virtual "
+"interrompida %(name)s "
msgid "Remote ISO image is not supported by this server."
-msgstr "Imagem de ISO remota não é suportada por esse servidor."
+msgstr "A imagem ISO remota não é suportada por este servidor."
#, python-format
msgid "Screenshot is not supported on virtual machine %(name)s"
-msgstr "Foto da tela não é suportado na máquina virtual %(name)s"
+msgstr "A captura de tela não é suportada em máquina virtual %(name)s "
#, python-format
msgid "Unable to create virtual machine %(name)s. Details: %(err)s"
-msgstr "Não foi possível criar a máquina virtual %(name)s. Detalhes: %(err)s"
+msgstr "Não é possível criar a máquina virtual %(name)s. Detalhes: %(err)s"
#, python-format
msgid "Unable to update virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Não foi possível atualizar a máquina virtual %(name)s. Detalhes: %(err)s"
+msgstr "Não é possível atualizar a máquina virtual %(name)s. Detalhes: %(err)s"
#, python-format
msgid "Unable to retrieve virtual machine %(name)s. Details: %(err)s"
msgstr ""
-"Não foi possível encontrar a máquina virtual %(name)s. Detalhes: %(err)s"
+"Não é possível recuperar a máquina virtual %(name)s. Detalhes: %(err)s "
#, python-format
msgid "Unable to connect to powered off virtual machine %(name)s."
-msgstr "Não foi possível conectar à máquina virtual desligada %(name)s."
+msgstr "Não é possível se conectar à máquina virtual desligada %(name)s. "
msgid "Virtual machine name must be a string without slashes (/)"
-msgstr ""
+msgstr "O nome da máquina virtual deve ser uma sequência sem barras (/)"
#, python-format
msgid "Invalid template URI %(value)s specified for virtual machine"
-msgstr "URI do Modelo inválida %(value)s especificada para máquina virtual"
+msgstr "URI do modelo %(value)s inválido especificado para máquina virtual"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for virtual machine"
msgstr ""
-"URI do Storage pool URI inválida %(value)s especificada para máquina virtual"
+"URI do conjunto de armazenamentos %(value)s inválido especificado para "
+"máquina virtual"
msgid "Supported virtual machine graphics are Spice or VNC"
-msgstr "Gráficos suportados para a máquina virtual são Spice ou VNC"
+msgstr "Os gráficos de máquina virtual suportados são Spice ou VNC"
msgid "Graphics address to listen on must be IPv4 or IPv6"
-msgstr "Endereço para receber eventos gráficos deve ser IPv4 ou IPv6"
+msgstr "O endereço do gráfico para atendimento deve ser IPv4 ou IPv6"
msgid "Specify a template to create a virtual machine from"
-msgstr "Especifique um modelo para ser base da criação da máquina virtual"
+msgstr "Especifique um modelo para criar uma máquina virtual a partir dele"
#, python-format
msgid "Unable to start virtual machine %(name)s. Details: %(err)s"
-msgstr "Não foi possível iniciar a máquina virtual %(name)s. Detalhes: %(err)s"
+msgstr "Não é possível iniciar a máquina virtual %(name)s. Detalhes: %(err)s "
#, python-format
msgid "Unable to power off virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Não foi possível forçar o desligamento da máquina virtual %(name)s. "
-"Detalhes: %(err)s"
+msgstr "Não é possível desligar a máquina virtual %(name)s. Detalhes: %(err)s "
#, python-format
msgid "Unable to delete virtual machine %(name)s. Details: %(err)s"
-msgstr "Não foi possível remover a máquina virtual %(name)s. Detalhes: %(err)s"
+msgstr "Não é possível excluir a máquina virtual %(name)s. Detalhes: %(err)s "
#, python-format
msgid "Unable to reset virtual machine %(name)s. Details: %(err)s"
msgstr ""
-"Não foi possível reiniciar a máquina virtual %(name)s. Detalhes: %(err)s"
+"Não é possível reconfigurar a máquina virtual %(name)s. Detalhes: %(err)s "
msgid "User name list must be an array"
-msgstr "Lista de nomes de usuário deve ser um array"
+msgstr "A lista de nomes de usuário deve ser uma matriz"
msgid "User name must be a string"
-msgstr "Nome de usuário deve ser um texto"
+msgstr "O nome de usuário deve ser uma sequência"
msgid "Group name list must be an array"
-msgstr "Lista de nomes de grupo deve ser um array"
+msgstr "A lista de nomes grupo deve ser uma matriz"
msgid "Group name must be a string"
-msgstr "Nome de grupo deve ser um texto"
+msgstr "O nome do grupo deve ser uma sequência"
#, python-format
msgid "User(s) '%(users)s' do not exist"
-msgstr "Usuário(s) '%(users)s' não existe(m)"
+msgstr "O(s) usuário(s) '%(users)s' não existem"
#, python-format
msgid "Group(s) '%(groups)s' do not exist"
-msgstr "Grupo(s) '%(groups)s' não existe(m)"
+msgstr "O(s) grupo(s) '%(groups)s' não existem"
#, python-format
msgid "Unable to shutdown virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Não foi possível desligar a máquina virtual %(name)s. Detalhes: %(err)s"
+msgstr "Não é possível encerrar a máquina virtual %(name)s. Detalhes: %(err)s "
#, python-format
msgid ""
"Unable to get access metadata of virtual machine %(name)s. Details: %(err)s"
msgstr ""
-"Não foi possível acessar os metadados da máquina virtual %(name)s. Detalhes: "
-"%(err)s"
+"Não é possível obter metadados de acesso da máquina virtual %(name)s. "
+"Detalhes: %(err)s "
msgid "The guest console password must be a string."
-msgstr "A senha para o console do guest deve ser um texto."
+msgstr "A senha do console do convidado deve ser uma sequência."
msgid "The life time for the guest console password must be a number."
-msgstr "O tempo de vida da senha do console do guest deve ser um número."
+msgstr ""
+"O tempo de vida para a senha do console do convidado deve ser um número."
#, python-format
msgid "Virtual machine '%(name)s' must be stopped before cloning it."
-msgstr "A máquina virtual '%(name)s' deve estar parada antes de cloná-la."
+msgstr ""
+"A máquina virtual '%(name)s' deve ser interrompida antes que seja clonada."
#, python-format
msgid "Insufficient disk space to clone virtual machine '%(name)s'"
-msgstr "Espaço em disco insuficiente para clonar a máquina virtual '%(name)s'"
+msgstr "Espaço em disco insuficiente para clonar a máquina virtual '%(name)s'."
#, python-format
msgid "Unable to clone VM '%(name)s'. Details: %(err)s"
-msgstr "Não foi possível clonar a VM '%(name)s'. Detalhes: %(err)s"
+msgstr "Não é possível clonar a VM '%(name)s'. Detalhes: %(err)s "
#, python-format
msgid "Invalid operation for non-persistent virtual machine %(name)s"
-msgstr "Operação inválida para máquina virtual não-persistente %(name)s"
+msgstr "Operação inválida para máquina virtual não persistente %(name)s "
#, python-format
msgid "Cannot suspend VM '%(name)s' because it is not running."
msgstr ""
+"Não é possível suspender a VM '%(name)s' porque ela não está em execução."
#, python-format
msgid "Unable to suspend VM '%(name)s'. Details: %(err)s"
-msgstr ""
+msgstr "Não é possível suspender a VM '%(name)s'. Detalhes: %(err)s "
#, python-format
msgid "Cannot resume VM '%(name)s' because it is not paused."
-msgstr ""
+msgstr "Não é possível continuar a VM '%(name)s' porque ela não está pausada."
#, python-format
msgid "Unable to resume VM '%(name)s'. Details: %(err)s"
-msgstr ""
+msgstr "Não é possível continuar a VM %(name)s. Detalhes: %(err)s "
msgid "Memory assigned is higher then the maximum allowed in the host."
-msgstr ""
+msgstr "Memória designada é mais alta do que o máximo permitido no host."
#, python-format
msgid ""
"VM '%(name)s' does not support live memory update. Update the memory with "
"the machine offline to enable this feature."
msgstr ""
+"A VM '%(name)s' não suporta atualização de memória em tempo real. Atualize a "
+"memória com a máquina off-line para ativar esse recurso."
msgid "Only increase memory is allowed in active VMs"
-msgstr ""
+msgstr "Somente aumentar memória é permitido em VMs ativas"
msgid ""
"For live memory update, new memory value must be equal old memory value plus "
"multiples of 1024 Mib"
msgstr ""
+"Para atualização de memória em tempo real, o novo valor de memória deve ser "
+"igual ao valor de memória antigo mais múltiplos de 1024 Mib"
msgid "There are not enough free slots of 1024 Mib in the guest."
-msgstr ""
+msgstr "Não há slots livres de 1024 Mib suficientes no convidado."
msgid ""
"Host's libvirt version does not support memory devices. Libvirt must be >= "
"1.2.14"
msgstr ""
+"A versão libvirt do host não suporta dispositivos de memória. Libvirt deve "
+"ser >= 1.2.14"
#, python-format
msgid "Error attaching memory device. Details: %(error)s"
-msgstr ""
+msgstr "Erro ao anexar dispositivo de memória. Detalhes: %(error)s "
#, python-format
msgid ""
"VM %(vmid)s does not contain directly assigned host device %(dev_name)s."
msgstr ""
-"A VM %(vmid)s não contém o dispositivo de host atribuído diretamente "
+"A VM %(vmid)s não contém o dispositivo host diretamente designado "
"%(dev_name)s."
#, python-format
msgid "The host device %(dev_name)s is not allowed to directly assign to VM."
msgstr ""
-"Não é permitido atribuir diretamente o dispositivo de host %(dev_name)s."
+"O dispositivo host %(dev_name)s não tem permissão para designar diretamente "
+"para a VM."
msgid ""
"No IOMMU groups found. Host PCI pass through needs IOMMU group to function "
@@ -398,110 +398,122 @@ msgid ""
"to your Kernel parameter in /boot/grub2/grub.conf. For AMD CPU, add iommu=pt "
"iommu=1."
msgstr ""
-"Nenhum grupo IOMMU encontrado. Passthrough de host PCI necessita do grupo "
-"IOMMU para funcionar corretamente. Por favor, habilite o suporte ao Intel VT-"
-"d ou AMD IOMMU. Para uma CPU Intel, adicione \"intel_iommu=on\" nos seus "
-"parâmetros de kernel em \"/boot/grub2/grub.conf\". Para uma CPU AMD, "
-"adicione \"iommu=pt iommu=1\"."
+"Nenhum grupo IOMMU localizado. A passagem do PCI (Peripheral Component "
+"Interconnect) host precisa do grupo IOMMU para funcionar corretamente. Ative "
+"Intel VT-d ou AMD IOMMU em seu BIOS, e verifique se o Kernel está compilado "
+"com suporte a IOMMU. Para a CPU (unidade central de processamento) Intel, "
+"inclua intel_iommu=on em seu parâmetro do Kernel em /boot/grub2/grub.conf. "
+"Para a CPU (unidade central de processamento) AMD, inclua iommu=pt iommu=1."
msgid "\"name\" should be a device name string"
-msgstr "\"nome\" deve ser um texto do nome do dispositivo."
+msgstr "\"name\" deve ser uma sequência de nome do dispositivo"
#, python-format
msgid ""
"The device %(name)s is probably in use by the host. Unable to attach it to "
"the guest."
msgstr ""
+"O dispositivo %(name)s provavelmente está em uso pelo host. Não é possível "
+"conectá-lo ao convidado."
#, python-format
msgid "Interface %(iface)s does not exist in virtual machine %(name)s"
-msgstr "Interface %(iface)s não existe na máquina virtual %(name)s"
+msgstr "A interface %(iface)s não existe na máquina virtual %(name)s"
#, python-format
msgid ""
"Network %(network)s specified for virtual machine %(name)s does not exist"
msgstr ""
-"Rede %(network)s especificada para a máquina virtual %(name)s não existe"
+"A rede %(network)s especificada para máquina virtual %(name)s não existe"
msgid "Supported virtual machine interfaces type is only network"
-msgstr "Tipo de interface suportado das máquinas virtuais é somente rede"
+msgstr "O tipo de interface de máquina virtual suportado é somente rede"
msgid "Network name for virtual machine interface must be a string"
-msgstr "Nome da rede para a interface da máquina virtual deve ser texto"
+msgstr "O nome da rede para a interface de máquina virtual deve ser um texto"
msgid "Invalid network model card specified for virtual machine interface"
-msgstr "Modelo de placa de rede inválido para a interface da máquina virtual"
+msgstr ""
+"Placa do modelo de rede inválida especificada para a interface de máquina "
+"virtual"
msgid "Specify type and network to add a new virtual machine interface"
msgstr ""
-"Especifique o tipo e a rede para adicionar uma nova interface da máquina "
+"Especifique o tipo e a rede para incluir uma nova interface de máquina "
"virtual"
msgid "MAC Address must respect this format FF:FF:FF:FF:FF:FF"
-msgstr ""
+msgstr "O Endereço MAC deve respeitar esse formato FF:FF:FF:FF:FF:FF"
#, python-format
msgid "MAC Address %(mac)s already exists in virtual machine %(name)s"
-msgstr ""
+msgstr "O Endereço MAC %(mac)s já existe na máquina virtual %(name)s "
msgid "Invalid MAC Address"
-msgstr ""
+msgstr "Endereço MAC inválido"
msgid "Cannot change MAC address of a running virtual machine"
-msgstr ""
+msgstr "Não é possível mudar o endereço MAC de uma máquina virtual em execução"
#, python-format
msgid "Template %(name)s already exists"
-msgstr "Modelo %(name)s já existe"
+msgstr "O modelo %(name)s já existe"
#, python-format
msgid ""
"Network '%(network)s' specified for template %(template)s does not exist"
-msgstr "Rede '%(network)s' especificada para o modelo %(template)s não existe"
+msgstr ""
+"A rede '%(network)s' especificada para o modelo %(template)s não existe"
#, python-format
msgid ""
"Storage pool %(pool)s specified for template %(template)s does not exist"
msgstr ""
-"Storage pool %(pool)s especificado para o modelo %(template)s não existe"
+"O conjunto de armazenamentos %(pool)s especificado para o modelo "
+"%(template)s não existe"
#, python-format
msgid "Storage pool %(pool)s specified for template %(template)s is not active"
msgstr ""
-"Storage pool %(pool)s especificado para o modelo %(template)s não está ativo"
+"O conjunto de armazenamentos %(pool)s especificado para o modelo "
+"%(template)s não está ativo"
#, python-format
msgid "Invalid parameter '%(param)s' specified for CDROM."
-msgstr "Parâmetro inválido '%(param)s' especificado para CDROM"
+msgstr "Parâmetro inválido '%(param)s' especificado para CDROM."
#, python-format
msgid "Network %(network)s specified for template %(template)s is not active"
-msgstr "Rede %(network)s especificada para modelo %(template)s não está ativa"
+msgstr ""
+"Rede %(network)s especificada para o modelo %(template)s não está ativa"
msgid "Template name must be a string"
-msgstr "Nome do modelo deve ser um texto"
+msgstr "O nome de modelo deve ser um texto"
msgid "Template icon must be a path to the image"
-msgstr "Ícone do modelo deve ser um caminho para uma imagem"
+msgstr "O ícone de modelo deve ser um caminho para a imagem"
msgid "Template distribution must be a string"
-msgstr "Distribuição do modelo deve ser um texto"
+msgstr "A distribuição do modelo deve ser um texto"
msgid "Template distribution version must be a string"
-msgstr "Versão da distribuição do modelo deve ser um texto"
+msgstr "A versão de distribuição do modelo deve ser um texto"
msgid "The number of CPUs must be an integer greater than 0"
-msgstr "O número de CPUs deve ser um inteiro maior do que 0"
+msgstr ""
+"O número de CPUs (unidades centrais de processamento) deve ser um número "
+"inteiro maior que 0"
msgid "Amount of memory (MB) must be an integer greater than 512"
-msgstr "Quantidade de memória (MB) deve ser um inteiro maior que 512"
+msgstr "A quantia de memória (MB) deve ser um número inteiro maior que 512"
msgid "Template CDROM must be a local or remote ISO file"
-msgstr "Modelo do CDROM deve ser um arquivo ISO local ou remoto"
+msgstr "O modelo CD-ROM deve ser um arquivo ISO local ou remoto"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for template"
-msgstr "URI de storage pool inválido %(value)s especificado para modelo"
+msgstr ""
+"URI do conjunto de armazenamentos %(value)s inválido especificado para modelo"
msgid "Specify an ISO image as CDROM or a base image to create a template"
msgstr ""
@@ -509,155 +521,168 @@ msgstr ""
"modelo"
msgid "All networks for the template must be specified in a list."
-msgstr "Todas redes para o modelo devem ser especificadas em uma lista"
+msgstr "Todas as redes para o modelo devem ser especificadas em uma lista."
msgid "Specify a volume to a template when storage pool is iSCSI or SCSI"
msgstr ""
-"Especifique um volume para o template quando o storage pool for iSCSI or SCSI"
+"Especifique um volume para um modelo quando o conjunto de armazenamentos for "
+"iSCSI ou SCSI"
#, python-format
msgid "The volume %(volume)s is not in storage pool %(pool)s"
-msgstr "O volume %(volume)s não está no storage pool %(pool)s"
+msgstr "O volume %(volume)s não está no conjunto de armazenamentos %(pool)s "
#, python-format
msgid "Unable to create template due error: %(err)s"
-msgstr "Não foi possível criar o modelo devido a um erro: %(err)s"
+msgstr "Não é possível criar o modelo devido ao erro: %(err)s "
#, python-format
msgid "Unable to delete template due error: %(err)s"
-msgstr "Não foi possível remover o modelo devido a um erro: %(err)s"
+msgstr "Não é possível excluir o modelo devido ao erro: %(err)s "
msgid "Disk size must be an integer greater than 1GB."
-msgstr "O tamanho do disco deve ser um número inteiro maior que 1GB."
+msgstr "O tamanho do disco deve ser um número inteiro maior que 1 GB."
msgid "Template base image must be a valid local image file"
-msgstr "Imagem base do modelo deve ser um arquivo de imagem local válido"
+msgstr "A imagem base do modelo deve ser um arquivo de imagem local válido"
#, python-format
msgid "Cannot identify base image %(path)s format"
-msgstr "Não foi possível identificar o formato da imagem base %(path)s"
+msgstr "Não é possível identificar o formato da imagem base %(path)s "
msgid ""
"When specifying CPU topology, VCPUs must be a product of sockets, cores, and "
"threads."
msgstr ""
-"Ao especificar a topologia de CPU, VCPUs deve ser um produto de sockets, "
-"cores e threads."
+"Ao especificar a topologia da CPU, as VCPUs devem ser um produto de "
+"soquetes, núcleos e encadeamentos."
msgid ""
"When specifying CPU topology, each element must be an integer greater than "
"zero."
msgstr ""
-"Ao especificar a topologia de CPU, cada elemento deve ser um número inteiro "
-"maior do que zero."
+"Ao especificar a topologia da CPU, cada elemento deve ser um número inteiro "
+"maior quezero."
msgid ""
"Invalid disk image format. Valid formats: bochs, cloop, cow, dmg, qcow, "
"qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"Formato de imagem de disco inválido. Formatos válidos: bochs, cloop, cow, "
+"Formato da imagem do disco inválido.Formatos válidos: bochs, cloop, cow, "
"dmg, qcow, qcow2, qed, raw, vmdk, vpc."
#, python-format
msgid "Storage pool %(name)s already exists"
-msgstr "Storage pool %(name)s já existe"
+msgstr "O conjunto de armazenamentos %(name)s já existe"
#, python-format
msgid "Storage pool %(name)s does not exist"
-msgstr "Storage pool %(name)s não existe"
+msgstr "O conjunto de armazenamentos %(name)s não existe"
#, python-format
msgid "Specify %(item)s in order to create the storage pool %(name)s"
-msgstr "Especifique %(item)s para criar o storage pool %(name)s"
+msgstr "Especifique %(item)s para criar o conjunto de armazenamentos %(name)s "
#, python-format
msgid "Unable to delete active storage pool %(name)s"
-msgstr "Não foi possível remover o storage pool ativo %(name)s"
+msgstr "Não é possível excluir o conjunto de armazenamentos ativo %(name)s "
#, python-format
msgid "Unable to list storage pools. Details: %(err)s"
-msgstr "Não foi possível listar os storage pools. Detalhes: %(err)s"
+msgstr ""
+"Não é possível listar os conjuntos de armazenamentos. Detalhes: %(err)s "
#, python-format
msgid "Unable to create storage pool %(name)s. Details: %(err)s"
-msgstr "Não foi possível criar o storage pool %(name)s. Detalhes: %(err)s"
+msgstr ""
+"Não é possível criar o conjunto de armazenamentos %(name)s. Detalhes: "
+"%(err)s "
#, python-format
msgid ""
"Unable to get number of storage volumes in storage pool %(name)s. Details: "
"%(err)s"
msgstr ""
-"Não foi possível saber o número de volumes no storage pool %(name)s. "
-"Detalhes: %(err)s"
+"Não é possível obter o número de volumes de armazenamento no conjunto de "
+"armazenamentos %(name)s. Detalhes: %(err)s"
#, python-format
msgid "Unable to activate storage pool %(name)s. Details: %(err)s"
-msgstr "Não foi possivel ativar o storage pool %(name)s. Detalhes: %(err)s"
+msgstr ""
+"Não é possível ativar o conjunto de armazenamentos %(name)s. Detalhes: "
+"%(err)s "
#, python-format
msgid "Unable to deactivate storage pool %(name)s. Details: %(err)s"
-msgstr "Não foi possivel desativar o storage pool %(name)s. Detalhes: %(err)s"
+msgstr ""
+"Não é possível desativar o conjunto de armazenamentos %(name)s. Detalhes: "
+"%(err)s "
#, python-format
msgid "Unable to delete storage pool %(name)s. Details: %(err)s"
-msgstr "Não foi possivel remover o storage pool %(name)s. Detalhes: %(err)s"
+msgstr ""
+"Não é possível excluir o conjunto de armazenamentos %(name)s. Detalhes: "
+"%(err)s "
#, python-format
msgid ""
"Unable to create NFS Pool as export path %(path)s may block during mount"
msgstr ""
-"Não foi possível criar Pool NFS uma vez que o caminho de exportação %(path)s "
+"Não é possível criar o Conjunto NFS porque o caminho de exportação %(path)s "
"pode bloquear durante a montagem"
#, python-format
msgid "Unable to create NFS Pool as export path %(path)s mount failed"
msgstr ""
-"Não foi possível criar NFS Pool uma vez que a montagem do caminho de "
+"Não é possível criar o Conjunto NFS porque a montagem do caminho de "
"exportação %(path)s falhou"
#, python-format
msgid "Unsupported storage pool type: %(type)s"
-msgstr "Tipo de storage pool não suportado: %(type)s"
+msgstr "Tipo de conjunto de armazenamentos não suportado: %(type)s "
#, python-format
msgid "Error while retrieving storage pool XML to %(pool)s"
-msgstr "Erro durante a leitura do XML do storage pool %(pool)s"
+msgstr "Erro ao recuperar o conjunto de armazenamentos XML para %(pool)s "
msgid "Storage pool name must be a string without slashes (/)"
msgstr ""
+"O nome do conjunto de armazenamentos deve ser uma sequência sem barras (/)"
msgid ""
"Supported storage pool types are dir, netfs, logical, iscsi, isci and kimchi-"
"iso"
msgstr ""
-"Tipos de storage pool supportados são dir, netfs, logical, iscsi, scsi e "
-"kimchi-iso"
+"Os tipos de conjunto de armazenamentos suportados são dir, netfs, lógico, "
+"iscsi, isci e kimchiiso"
msgid "Storage pool path must be a string"
-msgstr "Caminho para storage pool deve ser um texto"
+msgstr "O caminho do storage pool deve ser um texto"
msgid "Storage pool host must be a IP or hostname"
-msgstr "Host do storage pool deve ser um IP ou um hostname"
+msgstr "O host do storage pool deve ser um IP ou nome do host"
msgid "Storage pool device must be the absolute path to the block device"
msgstr ""
-"Dispositivo do storage pool deve ser o caminho absoluto para o block device"
+"O dispositivo do conjunto de armazenamentos deve ser o caminho absoluto para "
+"o dispositivo de bloco"
msgid "Storage pool devices parameter must be a list"
-msgstr "Parâmetro dos dispositivos do storage pool devem ser uma lista"
+msgstr "O parâmetro de dispositivos do storage pool deve ser uma lista"
msgid "Target IQN of an iSCSI pool must be a string"
-msgstr "Alvo IQN de um pool iSCSI deve ser um texto"
+msgstr "O IQN de destino de um conjunto iSCSI deve ser um texto"
msgid "Port of a remote storage server must be an integer between 1 and 65535"
msgstr ""
-"Porta de um servidor remoto de storage deve ser um inteiro entre 1 e 65535"
+"A porta de um servidor de armazenamento remoto deve ser um número inteiro "
+"entre 1 e 65535"
msgid "iSCSI target username must be a string"
-msgstr "Usuário do iSCSI target deve ser um texto"
+msgstr "O nome do usuário de destino iSCSI deve ser uma sequência"
msgid "iSCSI target password must be a string"
-msgstr "Senha do iSCSI target deve ser um texto"
+msgstr "A senha de destino iSCSI deve ser uma sequência"
msgid "Specify name and type to create a storage pool"
msgstr "Especifique o nome e o tipo para criar um storage pool"
@@ -667,507 +692,530 @@ msgid ""
"%(disk)s is not a valid disk/partition. Could not add it to the pool "
"%(pool)s."
msgstr ""
-"%(disk)s não é um disco/partição válido. Não foi possível adicioná-lo ao "
-"pool %(pool)s."
+"%(disk)s não é um disco/partição válido. Não foi possível incluí-lo no "
+"conjunto %(pool)s."
#, python-format
msgid "Unable to extend logical pool %(pool)s. Details: %(err)s"
-msgstr "Não foi possível extender o pool lógico %(pool)s. Detalhes: %(err)s"
+msgstr "Não é possível estender o conjunto lógico %(pool)s. Detalhes: %(err)s "
msgid "The parameter disks only can be updated for logical storage pool."
-msgstr ""
-"O parâmetro discos somente pode ser atualizado para storage pool lógicos."
+msgstr "O parâmetro disks só pode ser atualizado para o storage pool lógico."
msgid "The SCSI host adapter name must be a string."
-msgstr "O nome do adaptador SCSI host deve ser um texto"
+msgstr "O nome do adaptador de host SCSI deve ser um texto."
msgid "The storage pool kimchi_isos is reserved for internal use"
-msgstr "O storage pool kimchi_isos é reservado para uso interno"
+msgstr "O storage pool kimchi_isos está reservado para uso interno"
#, python-format
msgid ""
"Unable to activate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
msgstr ""
-"Não foi possível ativar o storage pool NFS %(name)s. Servidor NFS %(server)s "
-"está inacessível."
+"Não é possível ativar o conjunto de armazenamentos NFS %(name)s. O servidor "
+"NFS %(server)s é inacessível."
#, python-format
msgid ""
"Unable to deactivate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
msgstr ""
-"Não foi possível desativar o storage pool NFS %(name)s. Servidor NFS "
-"%(server)s está inacessível."
+"Não é possível desativar o conjunto de armazenamentos NFS %(name)s. O "
+"servidor NFS %(server)s é inacessível."
#, python-format
msgid ""
"Unable to deactivate pool %(name)s as it is associated with some templates"
msgstr ""
-"Não foi possível desativar o pool %(name)s uma vez que ele está associado "
-"com algum dos modelos"
+"Não é possível desativar o conjunto %(name)s porque ele está associado com "
+"alguns modelos"
#, python-format
msgid "Unable to delete pool %(name)s as it is associated with some templates"
msgstr ""
-"Não foi possível remover o pool %(name)s uma vez que ele está associado com "
-"algum dos modelos"
+"Não é possível excluir o conjunto %(name)s porque ele está associado com "
+"alguns modelos"
#, python-format
msgid ""
"A volume group named '%(name)s' already exists. Please, choose another name "
"to create the logical pool."
msgstr ""
-"Um grupo de volume chamado '%(name)s' já existe. Por favor, escolha outro "
-"nome para criar o pool lógico."
+"Um grupo de volumes nomeado '%(name)s' já existe. Escolha outro nomepara "
+"criar o conjunto lógico."
#, python-format
msgid "Unable to update database with deep scan information due error: %(err)s"
msgstr ""
-"Não foi possível atualizar a base de dados com informações de mais ISOs "
-"devido a um erro: %(err)s"
+"Não é possível atualizar o banco de dados com informações de varredura "
+"completas devido ao erro: %(err)s "
#, python-format
msgid "Storage volume %(name)s already exists"
-msgstr "Volume de storage %(name)s já existe"
+msgstr "O volume de armazenamento %(name)s já existe"
#, python-format
msgid "Storage volume %(name)s does not exist in storage pool %(pool)s"
-msgstr "Volume de storage %(name)s não existe no storage pool %(pool)s"
+msgstr ""
+"O volume de armazenamento %(name)s não existe no conjunto de armazenamentos "
+"%(pool)s "
#, python-format
msgid ""
"Unable to create storage volume %(volume)s because storage pool %(pool)s is "
"not active"
msgstr ""
-"Não foi possível criar o storaget volume %(volume)s pois o storage pool "
-"%(pool)s não está ativo"
+"Não é possível criar o volume de armazenamento %(volume)s porque o conjunto "
+"de armazenamentos %(pool)s não está ativo"
#, python-format
msgid "Specify %(item)s in order to create storage volume %(volume)s"
-msgstr "Especifique %(item)s para poder criar o volume %(volume)s"
+msgstr "Especifique %(item)s para criar o volume de armazenamentos %(volume)s"
#, python-format
msgid ""
"Unable to list storage volumes because storage pool %(pool)s is not active"
msgstr ""
-"Não foi possível listar volumes pois o storage pool %(pool)s não está ativo"
+"Não é possível listar os volumes de armazenamento porque o conjunto de "
+"armazenamentos %(pool)s não está ativo"
#, python-format
msgid ""
"Unable to create storage volume %(name)s in storage pool %(pool)s. Details: "
"%(err)s"
msgstr ""
-"Não foi possível criar o volume %(name)s no storage pool %(pool)s. Detalhes: "
-"%(err)s"
+"Não é possível criar o volume de armazenamento %(name)s no conjunto de "
+"armazenamentos %(pool)s. Detalhes: %(err)s"
#, python-format
msgid ""
"Unable to list storage volumes in storage pool %(pool)s. Details: %(err)s"
msgstr ""
-"Não foi possível listar os volumes do storage pool %(pool)s. Detalhes: "
-"%(err)s"
+"Não é possível listar volumes de armazenamento no conjunto de armazenamentos "
+"%(pool)s. Detalhes: %(err)s "
#, python-format
msgid "Unable to wipe storage volumes %(name)s. Details: %(err)s"
-msgstr "Não foi possível limpar o volume %(name)s. Detalhes: %(err)s"
+msgstr ""
+"Não é possível limpar volumes de armazenamento %(name)s. Detalhes: %(err)s "
#, python-format
msgid "Unable to delete storage volume %(name)s. Details: %(err)s"
-msgstr "Não foi possível remover o volume %(name)s. Detalhes: %(err)s"
+msgstr ""
+"Não é possível excluir o volume de armazenamento %(name)s. Detalhes: %(err)s "
#, python-format
msgid "Unable to resize storage volume %(name)s. Details: %(err)s"
-msgstr "Não foi possível redimensionar o volume %(name)s. Detalhes: %(err)s"
+msgstr ""
+"Não é possível redimensionar o volume de armazenamento %(name)s. Detalhes: "
+"%(err)s "
#, python-format
msgid "Storage type %(type)s does not support volume create and delete"
-msgstr "Storage do tipo %(type)s não suporta criação ou remoção de volume"
+msgstr ""
+"O tipo de armazenamento %(type)s não suporta a criação e a exclusão de volume"
msgid "Storage volume name must be a string"
-msgstr "Nome do volume deve ser um texto"
+msgstr "O nome do volume de armazenamento deve ser um texto"
msgid "Storage volume allocation must be an integer number"
-msgstr "Alocação do volume de storage deve ser um número inteiro"
+msgstr "A alocação do volume de armazenamento deve ser um número inteiro"
msgid ""
"Storage volume format not supported. Valid formats: bochs, cloop, cow, dmg, "
"qcow, qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"Formato de volume de storage inválido. Formatos válidos: bochs, cloop, cow, "
-"dmg, qcow, qcow2, qed, raw, vmdk, vpc."
+"Formato do volume de armazenamento não suportado. Formatos válidos: bochs, "
+"cloop, cow, dmg, qcow, qcow2, qed, raw, vmdk, vpc."
msgid "Storage volume requires a volume name"
-msgstr "Volume de storage requer um nome"
+msgstr "O volume de armazenamento requer um nome de volume"
#, python-format
msgid ""
"Unable to update database with storage volume information due error: %(err)s"
msgstr ""
-"Não foi possível atualizar a base de dados com informações de volume de "
-"storage devido a um erro: %(err)s"
+"Não é possível atualizar o banco de dados com informações de volume de "
+"armazenamento devido ao erro: %(err)s "
#, python-format
msgid "Only one of parameter %(param)s can be specified"
-msgstr "Somente um parâmetro %(param)s pode ser especificado"
+msgstr "Somente um dos parâmetros %(param)s pode ser especificado"
#, python-format
msgid "Create volume from %(param)s is not supported"
-msgstr "Criar um volume a partir de %(param)s não é suportado"
+msgstr "Criação de volume a partir de %(param)s não é suportada"
msgid "Storage volume capacity must be an integer number."
-msgstr "A capacidade do storage volume deve ser um número inteiro."
+msgstr "A capacidade do volume de armazenamento deve ser um número inteiro."
msgid "Storage volume URL must be http://, https://, ftp:// or ftps://."
msgstr ""
-"URL para o storage volume deve ser http://, https://, ftp:// ou ftps://."
+"A URL do volume de armazenamento deve ser http://, https://, ftp:// ou "
+"ftps://."
#, python-format
msgid "Unable to access file %(url)s. Please, check it."
-msgstr "Erro ao acessar arquivo %(url)s. Por favor, verifique isso."
+msgstr "Não é possível acessar o arquivo %(url)s. Verifique."
#, python-format
msgid ""
"Unable to clone storage volume '%(name)s' in pool '%(pool)s'. Details: "
"%(err)s"
msgstr ""
-"Não foi possível clonar o volume de storage '%(name)s' no pool '%(pool)s'. "
-"Detalhes: %(err)s"
+"Não é possível clonar o volume de armazenamento '%(name)s' no conjunto "
+"'%(pool)s'. Detalhes: %(err)s"
msgid "Specify chunk data and its size to upload a file."
msgstr ""
+"Especifique os dados de chunk e seu tamanho para fazer o upload de um "
+"arquivo."
msgid "In order to upload a storage volume, specify the 'upload' parameter."
msgstr ""
+"Para fazer o upload de um volume de armazenamento, especifique o parâmetro "
+"'upload'."
msgid ""
"Unable to upload chunk data as it does not match with requested chunk size."
msgstr ""
+"Não é possível fazer upload dos dados de chunk porque eles não correspondem "
+"ao tamanho de chunk solicitado."
#, python-format
msgid "The storage volume %(vol)s is not under an upload process."
-msgstr ""
+msgstr "O volume de armazenamento %(vol)s não está sob um processo de upload."
msgid "The upload chunk data will exceed the storage volume size."
msgstr ""
+"Os dados de chunk de upload irão exceder o tamanho do volume de "
+"armazenamento."
#, python-format
msgid "Unable to upload chunk data to storage volume. Details: %(err)s."
msgstr ""
+"Não é possível fazer upload dos dados de chunk para o volume de "
+"armazenamento. Detalhes: %(err)s."
#, python-format
msgid "Interface %(name)s does not exist"
-msgstr "Interface %(name)s não existe"
+msgstr "A interface %(name)s não existe"
#, python-format
msgid "Network %(name)s already exists"
-msgstr "Rede %(name)s já existe"
+msgstr "A rede %(name)s já existe"
#, python-format
msgid "Network %(name)s does not exist"
-msgstr "Rede %(name)s não existe"
+msgstr "A rede %(name)s não existe"
#, python-format
msgid "Subnet %(subnet)s specified for network %(network)s is not valid."
msgstr ""
-"A subrede %(subnet)s especificada para a rede %(network)s não é válida."
+"A sub-rede %(subnet)s especificada para a rede %(network)s não é válida."
#, python-format
msgid "Specify a network interface to create bridged network %(name)s"
-msgstr "Especifique uma interface de rede para criar a rede de bridge %(name)s"
+msgstr ""
+"Especifique uma interface de rede para criar uma rede em bridge %(name)s "
#, python-format
msgid "Unable to delete active network %(name)s"
-msgstr "Não foi possível remover a rede ativa %(name)s"
+msgstr "Não é possível excluir a rede ativa %(name)s "
#, python-format
msgid "Interface %(iface)s specified for network %(network)s is already in use"
msgstr ""
-"A interface %(iface)s especificada para a rede %(network)s já está em uso"
+"A interface %(iface)s especificada para a rede %(network)s já está em uso."
msgid "Interface should be bare NIC, bonding or bridge device."
-msgstr "Interface deve ser 'bare NIC', 'bonding' ou 'dispositivo de bridge'."
+msgstr "A interface deve ser um dispositivo bare NIC, de ligação ou bridge."
#, python-format
msgid "Unable to create network %(name)s. Details: %(err)s"
-msgstr "Não foi possível criar a rede %(name)s. Detalhes: %(err)s"
+msgstr "Não é possível criar a rede %(name)s. Detalhes: %(err)s "
#, python-format
msgid "Unable to find a free IP address for network '%(name)s'"
-msgstr "Não foi possível encontrar um endereço IP livre para a rede '%(name)s'"
+msgstr "Não é possível localizar um endereço IP livre para a rede '%(name)s'"
#, python-format
msgid "The interface %(iface)s already exists."
-msgstr "A interface %(iface)s já existe"
+msgstr "A interface %(iface)s já existe."
msgid "Network name must be a string without slashes (/) or quotes (\")"
-msgstr ""
+msgstr "O nome da rede deve ser uma sequência sem barras (/) ou aspas (\")"
msgid "Supported network types are isolated, NAT and bridge"
-msgstr "Tipos de rede suportados são isolada, NAT e bridge"
+msgstr "Os tipos de rede suportados são isolado, NAT e ponte"
msgid "Network subnet must be a string with IP address and prefix or netmask"
msgstr ""
-"Subrede deve ser um texto com endereço IP e prefixo, ou máscara de rede"
+"A sub-rede da rede deve ser um texto com endereço IP e prefixo ou máscara de "
+"rede"
msgid "Network interface must be a string"
-msgstr "Interface de rede deve ser um texto"
+msgstr "A interface de rede deve ser um texto"
msgid "Network VLAN ID must be an integer between 1 and 4094"
-msgstr "ID da rede VLAN deve ser um inteiro entre 1 e 4094"
+msgstr "O ID de VLAN da rede deve ser um número inteiro entre 1 e 4094"
msgid "Specify name and type to create a Network"
-msgstr "Especifique o nome e o tipo para criar uma rede"
+msgstr "Especifique o nome e o tipo para criar uma Rede"
#, python-format
msgid ""
"Unable to delete network %(name)s. There are some virtual machines %(vms)s "
"and/or templates linked to this network."
msgstr ""
-"Não foi possível desativar a rede %(name)s. Há alguma máquina virtual "
-"%(vms)s e/ou modelo associados a esta rede."
+"Não é possível excluir a rede %(name)s. Existem algumas máquinas virtuais "
+"%(vms)s e/ou modelos vinculados a essa rede."
#, python-format
msgid ""
"Unable to deactivate network %(name)s. There are some virtual machines "
"%(vms)s and/or templates linked to this network."
msgstr ""
-"Não foi possível desativar a rede %(name)s. Há alguma máquina virtual "
-"%(vms)s e/ou modelo associados a esta rede."
+"Não é possível desativar a rede %(name)s. Existem algumas máquinas virtuais "
+"%(vms)s e/ou modelos vinculados a essa rede."
#, python-format
msgid "Bridge device %(name)s can not be the trunk device of a VLAN."
msgstr ""
-"Dispositivo da bridge %(name)s não pode ser um dispositivo vinculado a uma "
+"O dispositivo de ponte %(name)s não pode ser o dispositivo de tronco de uma "
"VLAN."
#, python-format
msgid "Failed to activate interface %(iface)s: %(err)s."
-msgstr "Não foi possível ativar a interface %(iface)s: %(err)s."
+msgstr "Falha ao ativar a interface %(iface)s: %(err)s."
#, python-format
msgid ""
"Failed to activate interface %(iface)s. Please check the physical link "
"status."
-msgstr ""
-"Não foi possível ativar a interface %(iface)s. Por favor, verifique o status "
-"da conexão física."
+msgstr "Falha ao ativar a interface %(iface)s. Verifique o link físico físico."
#, python-format
msgid "Failed to start network %(name)s. Details: %(err)s"
-msgstr "Não foi possível iniciar a rede %(name)s. Detalhes: %(err)s"
+msgstr "Falha ao iniciar a rede %(name)s. Detalhes: %(err)s "
#, python-format
msgid "Debug report %(name)s does not exist"
-msgstr "Relatório de debug %(name)s não existe"
+msgstr "O relatório de depuração %(name)s não existe"
msgid "Debug report tool not found in system"
-msgstr "Ferramenta de relatório de debug não encontrada no sistema"
+msgstr "Ferramenta de relatório de depuração não localizada no sistema"
#, python-format
msgid "Unable to create debug report %(name)s. Details: %(err)s."
msgstr ""
-"Não foi possível criar o relatório de debug %(name)s. Detalhes: %(err)s."
+"Não é possível criar o relatório de depuração %(name)s. Detalhes: %(err)s."
#, python-format
msgid "Can not find any debug report with the given name %(name)s"
-msgstr "Não foi possível encontrar nenhum relatório com o nome %(name)s"
+msgstr ""
+"Não é possível localizar nenhum relatório de depuração com o nome fornecido "
+"%(name)s "
#, python-format
msgid "Unable to generate debug report %(name)s. Details: %(err)s"
msgstr ""
-"Não foi possível gerar o relatório de debug %(name)s. Detalhes: %(err)s"
+"Não é possível gerar o relatório de depuração %(name)s. Detalhes: %(err)s "
msgid "You should give a name for the debug report file."
-msgstr "Você deve dar um nome para o arquivo do relatório de debug."
+msgstr ""
+"É necessário fornecer um nome para o relatório de arquivo de depuração."
msgid ""
"Debug report name must be a string. Only letters, digits, underscore ('_') "
"and hyphen ('-') are allowed."
msgstr ""
-"Nome do relatório deve ser um texto. Somente letras, digitos, underscore "
-"('_') e hífem ('-') são permitidos."
+"O nome do relatório de depuração deve ser uma sequência. Somente letras, "
+"dígitos, sublinhado ('_') e hífen ('-') são permitidos."
#, python-format
msgid ""
"The debug report with specified name \"%(name)s\" already exists. Please use "
"another one."
msgstr ""
-"O relatório de debug com o nome especificado \"%(name)s\" já existe. Por "
-"favor, use outro nome."
+"O relatório de depuração com o nome especificado \"%(name)s\" já existe. "
+"Utilize outro relatório."
#, python-format
msgid "Storage server %(server)s was not used by Kimchi"
-msgstr "Servidor de storage %(server)s não foi usado pelo Kimchi"
+msgstr "O servidor de armazenamento %(server)s não foi usado pelo Kimchi"
#, python-format
msgid "Distro '%(name)s' does not exist"
-msgstr "Distribuição '%(name)s' não existe"
+msgstr "Distro '%(name)s' não existe"
#, python-format
msgid "Partition %(name)s does not exist in the host"
-msgstr "Partição %(name)s não existe no host"
+msgstr "A partição %(name)s não existe no host"
msgid "Unable to shutdown host machine as there are running virtual machines"
msgstr ""
-"Não foi possível desligar o host uma vez que há máquinas virtuais ligadas"
+"Não é possível encerrar a máquina host porque há máquinas virtuais em "
+"execução"
msgid "Unable to reboot host machine as there are running virtual machines"
msgstr ""
-"Não foi possível resetar o host uma vez que há máquinas virtuais ligadas"
+"Não é possível reinicializar a máquina host porque há máquinas virtuais em "
+"execução"
#, python-format
msgid "Node device '%(name)s' not found"
-msgstr "Dispositivo de nó '%(name)s' não encontrado"
+msgstr "Dispositivo de nó '%(name)s' não localizado"
msgid "Conflicting flag filters specified."
-msgstr "Foram especificados filtros de flag com conflito."
+msgstr "Filtros de sinalização conflitantes especificados."
msgid "No packages marked for update"
msgstr "Nenhum pacote marcado para atualização"
#, python-format
msgid "Package %(name)s is not marked to be updated."
-msgstr "Pacote %(name)s não está marcado para atualização."
+msgstr "O pacote %(name)s não está marcado para ser atualizado."
#, python-format
msgid "Error while getting packages marked to be updated. Details: %(err)s"
-msgstr "Erro ao buscar pacotes marcados para atualização. Detalhes: %(err)s"
+msgstr "Erro ao obter pacotes marcados para atualização. Detalhes: %(err)s "
msgid "There is no compatible package manager for this system."
-msgstr "Não há gerenciador de pacotes compatível para este sistema."
+msgstr "Não há nenhum gerenciador de pacotes compatível para este sistema."
#, python-format
msgid "Unable to find %(item)s in datastore"
-msgstr "Não foi possível encontrar %(item)s no datastore"
+msgstr "Não é possível localizar %(item)s no armazenamento de dados"
#, python-format
msgid "Invalid URI %(uri)s"
-msgstr "URI %(uri)s inválida"
+msgstr "URI inválida %(uri)s"
#, python-format
msgid "Timeout while running command '%(cmd)s' after %(seconds)s seconds"
msgstr ""
-"Fim do limite de tempo ao rodar comando '%(cmd)s' após %(seconds)s segundos"
+"Tempo limite durante execução do comando '%(cmd)s' após %(seconds)s segundos"
msgid "Unable to choose a virtual machine name"
-msgstr "Não foi possível escolher um nome para a máquina virtual"
+msgstr "Não é possível escolher um nome de máquina virtual"
#, python-format
msgid "Invalid data value '%(value)s'"
-msgstr "Valor inválido '%(value)s'"
+msgstr "Valor dos dados inválido '%(value)s'"
#, python-format
msgid "Invalid data unit '%(unit)s'"
-msgstr "Unidade inválida '%(unit)s'"
+msgstr "Unidade de dados inválida '%(unit)s'"
msgid "Invalid storage type. Types supported: 'cdrom', 'disk'"
-msgstr "Tipo de storage inválido. Tipos suportados: 'cdrom', 'disco'"
+msgstr "Tipo de armazenamento inválido. Tipos suportados: 'cdrom', 'disk'"
#, python-format
msgid "The path '%(value)s' is not a valid local/remote path for the device"
msgstr ""
-"O caminho '%(value)s' não é um caminho local/remoto válido para este "
-"dispositivo"
+"O caminho '%(value)s' não é um caminho local/remoto válido para o dispositivo"
msgid "Only CDROM path can be update."
-msgstr "Apenas o caminho do CD-ROM pode ser atualizado."
+msgstr "Somente o caminho CDROM pode ser atualizado."
#, python-format
msgid ""
"The storage device %(dev_name)s does not exist in the virtual machine "
"%(vm_name)s"
-msgstr "O disco %(dev_name)s não existe na máquina virtual %(vm_name)s"
+msgstr ""
+"O dispositivo de armazenamento %(dev_name)s não existe na máquina virtual"
+"%(vm_name)s"
#, python-format
msgid "Error while creating new storage device: %(error)s"
-msgstr "Erro ao criar novo dispositivo de storage: %(error)s"
+msgstr "Erro ao criar o novo dispositivo de armazenamento: %(error)s "
#, python-format
msgid "Error while updating storage device: %(error)s"
-msgstr "Erro ao atualizar dispositivo de storage: %(error)s"
+msgstr "Erro ao atualizar o dispositivo de armazenamento: %(error)s "
#, python-format
msgid "Error while removing storage device: %(error)s"
-msgstr "Erro ao remover dispositivo de storage: %(error)s"
+msgstr "Erro ao remover o dispositivo de armazenamento: %(error)s "
msgid "Do not support IDE device hot plug"
-msgstr "Dispositivo IDE hot plug não é suportado"
+msgstr "Não suportar hot plug de dispositivo IDE"
msgid ""
"Specify type and path or type and pool/volume to add a new virtual machine "
"disk"
msgstr ""
-"Especifique o tipo e o caminho, ou o tipo e o pool/volume, para adicionar um "
-"novo disco da máquina virtual"
+"Especificar tipo e caminho ou tipo e conjunto/volume para incluir um novo "
+"disco de máquina virtual"
msgid "Specify path to update virtual machine disk"
-msgstr "Especifique o caminho para atualizar o disco da máquina virtual"
+msgstr "Especifique o caminho para atualizar o disco de máquina virtual"
#, python-format
msgid "Controller type %(type)s limitation of %(limit)s devices reached"
msgstr ""
-"Limitação do tipo do controlador %(type)s de %(limit)s dispositivos foi "
-"alcançada"
+"Limitação de tipo de controlador %(type)s de %(limit)s dispositivos atingidos"
#, python-format
msgid "Cannot retrieve disk path information for given pool/volume: %(error)s"
msgstr ""
-"Não foi possível buscar informações do caminho do disco para o pool/volume "
-"dado: %(error)s"
+"Não é possível recuperar informações de caminho do disco para o conjunto/"
+"volume fornecido: %(error)s "
msgid "Volume already in use by other virtual machine."
-msgstr "Volume já em uso por outra máquina virtual."
+msgstr "O volume já está sendo usado por outra máquina virtual."
msgid ""
"Only one of path or pool/volume can be specified to add a new virtual "
"machine disk"
msgstr ""
-"Somente um caminho ou pool/volume pode ser especificado para adicionar um "
-"novo disco da máquina virtual."
+"Apenas um caminho ou conjunto/volume podem ser especificados para inclusão "
+"de um novo disco de máquina virtual"
#, python-format
msgid ""
"Volume chosen with format %(format)s does not fit in the storage type "
"%(type)s"
msgstr ""
-"Volume escolhido com formato %(format)s não se enquadra no tipo de storage "
-"%(type)s"
+"O volume escolhido com o formato %(format)s não se ajusta no tipo de "
+"armazenamento%(type)s"
msgid "YUM Repository ID must be one word only string."
-msgstr "ID do repositório YUM deve ser apenas uma palavra."
+msgstr "O ID do Repositório YUM deve ser um texto de apenas uma palavra."
msgid "Repository URL must be an http://, ftp:// or file:// URL."
-msgstr "URL do repositório deve ser uma URL http://, ftp:// ou file://."
+msgstr "A URL do repositório deve ser uma URL http://, ftp:// ou file://."
msgid ""
"Repository configuration is a dictionary with specific values according to "
"repository type."
msgstr ""
-"Configuração do repositório é um dicionário com valores específicos de "
-"acordo com o tipo do repositório."
+"A configuração de repositório é um dicionário com valores específicos de "
+"acordo com o tipo de repositório."
msgid "Distribution to DEB repository must be a string"
-msgstr "Distribuição para o repositório DEB deve ser um texto"
+msgstr "A distribuição para o repositório DEB deve ser um texto"
msgid "Components to DEB repository must be listed in a array"
-msgstr "Componentes para o repositório DEB deve ser um array"
+msgstr "Os componentes para o repositório DEB devem ser listados em uma matriz"
msgid "Components to DEB repository must be a string"
-msgstr "Componentes para o repositório DEB deve ser um texto"
+msgstr "Os componentes para o repositório DEB devem ser um texto"
msgid "Mirror list to repository must be a string"
-msgstr ""
+msgstr "A lista de espelhos para o repositório deve ser uma sequência"
msgid "YUM Repository name must be string."
-msgstr "Nome do repositório YUM deve ser um texto."
+msgstr "O nome do Repositório YUM deve ser um texto."
msgid "GPG check must be a boolean value."
-msgstr "Verificação de GPG deve ser um valor booleano."
+msgstr "A verificação de GPG deve ser um valor booleano."
msgid "GPG key must be a URL pointing to the ASCII-armored file."
msgstr ""
-"Chave GPG deve ser uma URL apontando para o arquivo no formato ASCII-armor."
+"A chave de GPG deve ser uma URL apontando para o arquivo em ASCII-armor."
#, python-format
msgid "Could not update repository %(repo_id)s."
@@ -1175,25 +1223,27 @@ msgstr "Não foi possível atualizar o repositório %(repo_id)s."
#, python-format
msgid "Repository %(repo_id)s does not exist."
-msgstr "Repositório %(repo_id)s não existe."
+msgstr "O repositório %(repo_id)s não existe."
msgid ""
"Specify repository base URL, mirror list or metalink in order to create or "
"update a YUM repository."
msgstr ""
+"Especifique a URL base do repositório, lista de espelhos ou metalink para "
+"criar ou atualizar um repositório YUM."
msgid "Repository management tool was not recognized for your system."
msgstr ""
-"Ferramenta de gerenciamento de repositório não foi reconhecida no seu "
+"A ferramenta de gerenciamento de repositório não foi reconhecida por seu "
"sistema."
#, python-format
msgid "Repository %(repo_id)s is already enabled."
-msgstr "Repositório %(repo_id)s já está habilitado."
+msgstr "O repositório %(repo_id)s já está ativado."
#, python-format
msgid "Repository %(repo_id)s is already disabled."
-msgstr "Repositório %(repo_id)s já está desabilitado."
+msgstr "O repositório %(repo_id)s já está desativado."
#, python-format
msgid "Could not remove repository %(repo_id)s."
@@ -1202,26 +1252,26 @@ msgstr "Não foi possível remover o repositório %(repo_id)s."
#, python-format
msgid "Could not write repository configuration file %(repo_file)s"
msgstr ""
-"Não foi possível gravar o arquivo de configuração do repositório "
+"Não foi possível gravar o arquivo de configuração de repositório "
"%(repo_file)s"
msgid "Specify repository distribution in order to create a DEB repository."
msgstr ""
-"Especificar o repositório de distribuição para poder criar o repositório DEB."
+"Especifique a distribuição de repositório para criar um repositório DEB."
#, python-format
msgid "Could not enable repository %(repo_id)s."
-msgstr "Não foi possível habilitar o repositório %(repo_id)s."
+msgstr "Não foi possível ativar o repositório %(repo_id)s."
#, python-format
msgid "Could not disable repository %(repo_id)s."
-msgstr "Não foi possível desabilitar o repositório %(repo_id)s."
+msgstr "Não foi possível desativar o repositório %(repo_id)s."
msgid "YUM Repository ID already exists"
-msgstr "ID do repositório YUM já existe"
+msgstr "O ID do Repositório YUM já existe"
msgid "YUM Repository name must be a string"
-msgstr "Nome do repositório YUM deve ser um texto"
+msgstr "O nome do Repositório YUM deve ser um texto"
#, python-format
msgid "Unable to list repositories. Details: '%(err)s'"
@@ -1230,101 +1280,106 @@ msgstr "Não é possível listar os repositórios. Detalhes: '%(err)s'"
#, python-format
msgid "Unable to retrieve repository information. Details: '%(err)s'"
msgstr ""
-"Não foi possível carregar as informações do repositório. Detalhes: '%(err)s'"
+"Não é possível recuperar as informações do repositório. Detalhes: '%(err)s'"
#, python-format
msgid "Unable to add repository. Details: '%(err)s'"
-msgstr "Não foi possível adicionar o repositório. Detalhes: '%(err)s'"
+msgstr "Não é possível incluir repositório. Detalhes: '%(err)s'"
#, python-format
msgid "Unable to remove repository. Details: '%(err)s'"
-msgstr "Não foi possível remover o repositório. Detalhes: '%(err)s'"
+msgstr "Não é possível remover repositório. Detalhes: '%(err)s'"
#, python-format
msgid ""
"Configuration items: '%(items)s' are not supported by repository manager"
msgstr ""
-"Itens de configuração '%(items)s' não são suportados pelo gerenciador de "
-"repositórios."
+"Itens de configuração: '%(items)s' não são suportados pelo gerenciador de "
+"repositório"
msgid "Repository metalink must be an http://, ftp:// or file:// URL."
msgstr ""
+"O metalink do repositório deve ser uma URL de http://, ftp:// ou file://."
msgid "Cannot specify mirrorlist and metalink at the same time."
msgstr ""
+"Não é possível especificar lista de espelhos e metalink ao mesmo tempo."
#, python-format
msgid ""
"Virtual machine '%(vm)s' must be stopped before creating a snapshot of it."
msgstr ""
-"A máquina virtual '%(vm)s' deve estar parada antes de criar um snapshot dela"
+"A máquina virtual '%(vm)s' deve ser interrompida antes da criação de uma "
+"captura instantânea nela."
#, python-format
msgid ""
"Unable to create snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Não foi possível criar o snapshot '%(name)s' na máquina virtual '%(vm)s'. "
-"Detalhes: %(err)s"
+"Não é possível criar captura instantânea '%(name)s' na máquina virtual "
+"'%(vm)s'. Detalhes: %(err)s"
#, python-format
msgid "Snapshot '%(name)s' does not exist on virtual machine '%(vm)s'."
-msgstr "O snapshot '%(name)s' não existe na máquina virtual '%(vm)s'."
+msgstr ""
+"A captura instantânea '%(name)s' não existe na máquina virtual '%(vm)s'."
#, python-format
msgid ""
"Unable to retrieve snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Não foi possível recuperar o snapshot '%(name)s' da máquina virtual "
+"Não é possível recuperar a captura instantânea '%(name)s' na máquina virtual "
"'%(vm)s'. Detalhes: %(err)s"
#, python-format
msgid "Unable to list snapshots on virtual machine '%(vm)s'. Details: %(err)s"
msgstr ""
-"Não foi possível listar os snapshots da máquina virtual '%(vm)s'. Detalhes: "
-"%(err)s"
+"Não é possível listar capturas instantâneas na máquina virtual '%(vm)s'. "
+"Detalhes: %(err)s "
#, python-format
msgid ""
"Unable to delete snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Não foi possível remover o snapshot '%(name)s' da máquina virtual '%(vm)s'. "
-"Detalhes: %(err)s"
+"Não é possível excluir a captura instantânea '%(name)s' na máquina virtual "
+"'%(vm)s'. Detalhes: %(err)s"
#, python-format
msgid ""
"Unable to retrieve current snapshot of virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Não foi possível recuperar o snapshot atual da máquina virtual '%(vm)s'. "
-"Detalhes: %(err)s."
+"Não é possível recuperar a captura instantânea atual da máquina virtual "
+"'%(vm)s'. Detalhes: %(err)s"
#, python-format
msgid ""
"Unable to revert virtual machine '%(vm)s' to snapshot '%(name)s'. Details: "
"%(err)s"
msgstr ""
-"Não foi possível reverter a máquina virtual '%(vm)s' para o snapshot "
-"'%(name)s'. Detalhes: %(err)s"
+"Não é possível reverter a máquina virtual '%(vm)s' para a captura "
+"instantânea '%(name)s'. Detalhes: %(err)s"
#, python-format
msgid ""
"Unable to create snapshot of virtual machine '%(vm)s' because it contains a "
"disk with format '%(format)s'; only 'qcow2' is supported."
msgstr ""
-"Não foi possível criar o snapshot para a máquina virtual '%(vm)s' porque ela "
-"contém discos no formato '%(format)s'; somente 'qcow2' é suportado."
+"Não é possível criar a captura instantânea da máquina virtual '%(vm)s' "
+"porque ela contém um disco com o formato '%(format)s'; somente 'qcow2' é "
+"suportado."
msgid "The number of vCPUs is too large for this system."
-msgstr "O número de VCPUs é grande demais para esse sistema."
+msgstr "O número de vCPUs é muito grande para esse sistema."
msgid "Invalid vCPU/topology combination."
-msgstr "Combinação inválida de VCPU/topologia."
+msgstr "Combinação inválida de vCPU/topologia."
msgid "This host (or current configuration) does not allow CPU topology."
-msgstr "Este host (ou configuração atual) não permite topologia de CPU."
+msgstr "Esse host (ou configuração atual) não permite topologia de CPU."
msgid "ERROR CODE"
msgstr "CÓDIGO DE ERRO"
@@ -1336,38 +1391,38 @@ msgid "STACK"
msgstr "PILHA"
msgid "Go to Homepage"
-msgstr "Ir para a Página Inicial"
+msgstr "Acessar Página Inicial"
msgid "Create a New Virtual Machine"
-msgstr "Criar nova Máquina Virtual"
+msgstr "Criar uma nova máquina virtual"
msgid "Virtual Machine Name"
-msgstr "Nome da Máquina Virtual"
+msgstr "Nome da máquina virtual"
msgid ""
"The name used to identify the virtual machine. If omitted, a name will be "
"chosen based on the template used."
msgstr ""
-"O nome usado para identificar a máquina virtual. Se ele for omitido, a "
-"escolha será baseada no modelo selecionado."
+"O nome usado para identificar a máquina virtual. Se omitido, um nome será "
+"escolhido com base no modelo usado."
msgid "Template"
msgstr "Modelo"
msgid "Please create a template first."
-msgstr "Por favor, crie um modelo primeiro."
+msgstr "Crie um modelo primeiro."
msgid "Create a Template"
-msgstr "Criar um Modelo"
+msgstr "Criar um modelo"
msgid "Please choose a template."
-msgstr "Por favor, escolha um modelo."
+msgstr "Escolha um modelo."
msgid "OS"
-msgstr "Sistema Operacional"
+msgstr "S.O."
msgid "OS Version"
-msgstr "Versão do Sistema Speracional"
+msgstr "Versão do S.O."
msgid "CPUS"
msgstr "CPUS"
@@ -1382,13 +1437,13 @@ msgid "Creating..."
msgstr "Criando..."
msgid "Edit Guest"
-msgstr "Editar Guest"
+msgstr "Editar convidado"
msgid "General"
msgstr "Geral"
msgid "Storage"
-msgstr "Storage"
+msgstr "Armazenamento"
msgid "Interface"
msgstr "Interface"
@@ -1397,10 +1452,10 @@ msgid "Permission"
msgstr "Permissão"
msgid "Host PCI Device"
-msgstr "Dispositivo de host PCI"
+msgstr "Dispositivo PCI do host"
msgid "Snapshot"
-msgstr "Snapshot"
+msgstr "Captura instantânea"
msgid "Name"
msgstr "Nome"
@@ -1409,7 +1464,7 @@ msgid "CPUs"
msgstr "CPUs"
msgid "Memory (MB)"
-msgstr "Memória (MB)"
+msgstr "Memória (megabyte)"
msgid "Icon"
msgstr "Ícone"
@@ -1427,13 +1482,13 @@ msgid "Type"
msgstr "Tipo"
msgid "MAC Address"
-msgstr ""
+msgstr "Endereço MAC"
msgid "Available system users and groups"
-msgstr "Usuários e grupos de sistema disponíveis"
+msgstr "Usuários e grupos do sistema disponível"
msgid "Selected system users and groups"
-msgstr "Usuários e grupos de sistema selecionados"
+msgstr "Usuários e grupos do sistema selecionado"
msgid "User"
msgstr "Usuário"
@@ -1442,10 +1497,10 @@ msgid "All"
msgstr "Todos"
msgid "To Add"
-msgstr "Para adicionar"
+msgstr "Para Incluir"
msgid "Added"
-msgstr "Adicionado"
+msgstr "Incluído(a)"
msgid "filter"
msgstr "filtro"
@@ -1454,7 +1509,7 @@ msgid "Product"
msgstr "Produto"
msgid "Vendor"
-msgstr "Vendor"
+msgstr "Fornecedor"
msgid "Created"
msgstr "Criado"
@@ -1466,44 +1521,44 @@ msgid "Replace"
msgstr "Substituir"
msgid "Detach"
-msgstr "Remover"
+msgstr "Desanexar"
msgid "Cancel"
msgstr "Cancelar"
msgid "revert"
-msgstr "Reverter"
+msgstr "reverter"
msgid "Add a Storage Device to VM"
-msgstr "Adicionar um dispositivo de storage à VM"
+msgstr "Incluir um Dispositivo de Armazenamento na VM"
msgid "Device Type"
-msgstr "Tipo do Dispositivo"
+msgstr "Tipo de Dispositivo"
msgid "The device type. Currently, \"cdrom\" and \"disk\" are supported."
msgstr ""
-"O tipo do dispositivo. Atualmente, \"cdrom\" e \"disco\" são suportados."
+"O tipo de dispositivo. Atualmente, \"cdrom\" e \"disk\" são suportados."
msgid "Storage Pool"
-msgstr "Storage Pool"
+msgstr "storage pool"
msgid "Storage pool which volume located in"
-msgstr "Storage pool no qual o volume está localizado"
+msgstr "Conjunto de armazenamentos no qual o volume está localizado"
msgid "Storage Volume"
-msgstr "Volume de storage"
+msgstr "Volume de Armazenamento"
msgid "Storage volume to be attached"
-msgstr "Volume de storage a ser adicionado"
+msgstr "Volume de armazenamento a ser conectado"
msgid "File Path"
-msgstr "Caminho do Arquivo"
+msgstr "Caminho do arquivo"
msgid "The ISO file path in the server for CDROM."
-msgstr "O caminho do arquivo ISO para o CDROM no servidor."
+msgstr "O caminho do arquivo ISO no servidor para o CDROM."
msgid "Attach"
-msgstr "Adicionar"
+msgstr "Anexar"
msgid "Start"
msgstr "Iniciar"
@@ -1512,13 +1567,13 @@ msgid "Reset"
msgstr "Reiniciar"
msgid "Pause"
-msgstr ""
+msgstr "Pausar"
msgid "Resume"
-msgstr ""
+msgstr "Continuar"
msgid "Power Off"
-msgstr "Forçar desligamento"
+msgstr "Desligar"
msgid "Actions"
msgstr "Ações"
@@ -1533,61 +1588,60 @@ msgid "Edit"
msgstr "Editar"
msgid "Shut Down"
-msgstr "Desligar"
+msgstr "Encerrar"
msgid "Delete"
-msgstr "Remover"
+msgstr "Excluir"
msgid "The username or password you entered is incorrect. Please try again."
-msgstr ""
-"O usuário ou senha inseridos estão incorretos. Por favor, tente novamente."
+msgstr "O nome de usuário ou senha inserido está incorreto. Tente novamente."
msgid "This field is required."
-msgstr "Esse campo é obrigatório."
+msgstr "Este campo é obrigatório."
msgid "Log in"
-msgstr "Entrar"
+msgstr "Efetuar login"
msgid "Logging in..."
-msgstr "Entrando..."
+msgstr "Efetuando login..."
msgid "Host"
msgstr "Host"
msgid "Guests"
-msgstr "Guests"
+msgstr "Máquinas Virtuais"
msgid "Templates"
msgstr "Modelos"
msgid "Failed to get application configuration"
-msgstr "Não foi possível carregar as configurações da aplicação"
+msgstr "Falha ao obter a configuração do aplicativo"
msgid "This is not a valid Linux path"
-msgstr "Este não é um caminho válido no Linux"
+msgstr "Este não é um caminho do Linux válido"
msgid "This is not a valid URL."
-msgstr "Essa não é uma URL válida."
+msgstr "Esta não é uma URL válida."
msgid "No such data available."
-msgstr "Não há dados disponíveis."
+msgstr "Nenhum dado desse tipo disponível."
msgid ""
"Can not contact the host system. Verify the host system is up and that you "
"have network connectivity to it. HTTP request response %1. "
msgstr ""
-"Não foi possível contactar o sistema host. Verique se o sistema do host está "
-"ligado e se você possui conectividade de rede com ele. Resposta da "
-"requisição HTTP %1. "
+"Não é possível entrar em contato com o sistema host. Verifique se o sistema "
+"host está ativo e se você tem conectividade de rede com ele. Resposta da "
+"solicitação de HTTP %1. "
msgid "Unable to read file."
-msgstr ""
+msgstr "Não é possível ler o arquivo."
msgid "Error while uploading file."
-msgstr ""
+msgstr "Erro ao fazer upload do arquivo."
msgid "Delete Confirmation"
-msgstr "Confirmação de remoção"
+msgstr "Confirmação de exclusão"
msgid "OK"
msgstr "OK"
@@ -1599,7 +1653,7 @@ msgid "Warning"
msgstr "Aviso"
msgid "Cloning..."
-msgstr ""
+msgstr "Clonando..."
msgid "Loading..."
msgstr "Carregando..."
@@ -1614,24 +1668,24 @@ msgid "Detailed message:"
msgstr "Mensagem detalhada:"
msgid "No ISO found"
-msgstr "Nenhuma ISO encontrada"
+msgstr "Nenhum ISO localizado"
msgid "This is not a valid ISO file."
-msgstr "Esse não é um arquivo ISO válido."
+msgstr "Este não é um arquivo ISO válido."
msgid "This may take a long time. Do you want to continue?"
-msgstr "Isso vai levar um longo tempo. Deseja continuar?"
+msgstr "Isso pode demorar. Deseja continuar?"
msgid "This will permanently delete the template. Would you like to continue?"
-msgstr "O modelo vai ser permanentemente removido. Deseja continuar?"
+msgstr "Isso excluirá permanentemente o modelo. Deseja continuar?"
msgid "Unable to shut down system as there are some virtual machines running!"
msgstr ""
-"Não foi possível desligar o sistema porque algumas máquinas virtuais estão "
-"ligadas!"
+"Não é possível encerrar o sistema porque há algumas máquinas virtuais em "
+"execução!"
msgid "Max:"
-msgstr "Máximo:"
+msgstr "Máx.:"
msgid "Utilization"
msgstr "Utilização"
@@ -1643,7 +1697,7 @@ msgid "Read Rate"
msgstr "Taxa de leitura"
msgid "Write Rate"
-msgstr "Taxa de escrita"
+msgstr "Taxa de gravação"
msgid "Received"
msgstr "Recebido"
@@ -1655,14 +1709,14 @@ msgid ""
"Shutting down or restarting host will cause unsaved work lost. Continue to "
"shut down/restarting?"
msgstr ""
-"Desligar ou reiniciar o host causará perda de trabalho que não foi salvo. "
-"Continuar o processo de desligar/reiniciar?"
+"Encerrar ou reiniciar o host causará a perda de trabalho não salvo. "
+"Continuar a encerrar/reiniciar?"
msgid ""
"Repository will be removed permanently and can't be recovered. Do you want "
"to continue?"
msgstr ""
-"Repositório será removido permanentemente e não poderá ser recuperado. "
+"O repositório será removido permanentemente e não pode ser recuperado. "
"Deseja continuar?"
msgid "Repositories"
@@ -1672,25 +1726,25 @@ msgid "ID"
msgstr "ID"
msgid "Base URL"
-msgstr "URL Base"
+msgstr "URL base"
msgid "Is Mirror"
-msgstr "É mirror"
+msgstr "É espelho"
msgid "URL Args"
-msgstr "Argumentos da URL"
+msgstr "Argumentos de URL"
msgid "Enabled"
msgstr "Ativado"
msgid "GPG Check"
-msgstr "Verificação GPG"
+msgstr "Verificação de GPG"
msgid "GPG Key"
-msgstr "Chave GPG"
+msgstr "Chave de GPG"
msgid "Add"
-msgstr "Adicionar"
+msgstr "Incluir"
msgid "Remove"
msgstr "Remover"
@@ -1723,23 +1777,23 @@ msgid "Updating..."
msgstr "Atualizando..."
msgid "Failed to retrieve packages update information."
-msgstr "Não foi possível recuperar as informações de atualização de pacoates."
+msgstr "Falha ao recuperar informações de atualização dos pacotes."
msgid "Failed to update package(s)."
-msgstr "Erro ao atualizar pacote(s)."
+msgstr "Falha ao atualizar pacote(s)."
msgid ""
"Debug report will be removed permanently and can't be recovered. Do you want "
"to continue?"
msgstr ""
-"Relatório de debug será permanentemente removido e não poderá ser "
+"O relatório de depuração será removido permanentemente e não pode ser "
"recuperado. Deseja continuar?"
msgid "Debug Reports"
-msgstr "Relatórios de Debug"
+msgstr "Relatórios de depuração"
msgid "Generated Time"
-msgstr "Tempo gerado"
+msgstr "Tempo de geração"
msgid "Generate"
msgstr "Gerar"
@@ -1751,89 +1805,89 @@ msgid "Rename"
msgstr "Renomear"
msgid "Download"
-msgstr "Baixar"
+msgstr "Fazer o download"
msgid ""
"Report name should contain only letters, digits, underscore ('_') and/or "
"hyphen ('-')."
msgstr ""
-"Nome do relatório deve apenas conter letras, números, underscore ('_') e/ou "
-"hífen ('-')."
+"O nome do relatório deve conter somente letras, dígitos, sublinhado ('_') e/"
+"ouhífen ('-')."
msgid "Pending..."
msgstr "Pendente..."
msgid "Report name is the same as the original one."
-msgstr "Nome do relatório é o mesmo que o original."
+msgstr "O nome do relatório é o mesmo do original."
msgid ""
"This will delete the virtual machine and its virtual disks. This operation "
"cannot be undone. Would you like to continue?"
msgstr ""
-"A máquina virtual vai ser removida com todos seus discos. Essa operação é "
-"irreversível. Deseja continuar?"
+"Isso excluirá a máquina virtual e seus discos virtuais. Esta operação não é "
+"possível desfazer. Deseja continuar?"
msgid "Power off Confirmation"
-msgstr "Confirmação de desligamento forçado"
+msgstr "Confirmação de Desligamento"
msgid ""
"This action may produce undesirable results, for example unflushed disk "
"cache in the guest. Would you like to continue?"
msgstr ""
-"Essa ação pode produzir resultados não desejáveis, como por exemplo cache de "
-"disco não-atualizado no guest. Deseja continuar?"
+"Essa ação pode produzir resultados indesejáveis, por exemplo, cache de disco "
+"não alinhado armazenar em cache no convidado.Deseja continuar?"
msgid "Reset Confirmation"
-msgstr "Confirmação de reinicialização"
+msgstr "Confirmação de Reconfiguração"
msgid ""
"There is a risk of data loss caused by reset without the guest OS shutdown. "
"Would you like to continue?"
msgstr ""
-"Existe um risco de perda de dados causado pela reinicialização sem o "
-"desligamento do sistema operacional do guest. Deseja continuar?"
+"Há um risco de perda de dados causado por reconfigurar sem o encerramento do "
+"sistema operacional guest. Deseja continuar?"
msgid "Shut Down Confirmation"
-msgstr "Confirmação de desligamento"
+msgstr "Confirmação de Encerramento"
msgid "Note the guest OS may ignore this request. Would you like to continue?"
msgstr ""
-"O sistema operacional do guest pode ignorar essa requisição. Deseja "
-"continuar?"
+"Note que o S.O. convidado pode ignorar essa solicitação. Deseja continuar?"
msgid "Virtual Machine delete Confirmation"
-msgstr "Confirmação de Remoção da Máquina Virtual"
+msgstr "Confirmação de exclusão de máquina virtual"
msgid ""
"This virtual machine is not persistent. Power Off will delete it. Continue?"
msgstr ""
-"Essa máquina virtual não é persistente. O desligamento irá removê-la. Deseja "
-"continuar?"
+"Essa máquina virtual não é persistente. O desligamento irá excluí-lo. "
+"Continuar?"
msgid ""
"When the target guest has SCSI or iSCSI volumes, they will be cloned on "
"default storage pool. The same will happen when the target pool does not "
"have enough space to clone the volumes. Do you want to continue?"
msgstr ""
-"Quando o guest de destino tiver volumes SCSI ou iSCSI, eles serão clonados "
-"no storage pool padrão. O mesmo vai acontecer quando o pool de destino não "
-"tiver espaço suficiente para clonar os volumes. Você deseja continuar?"
+"Quando o convidado de destino tiver volumes SCSI ou iSCSI, eles serão "
+"clonados no conjunto de armazenamentos padrão.O mesmo ocorrerá quando o "
+"conjunto de destino nãotiver espaço suficiente para clonar os volumes. "
+"Deseja continuar?"
msgid ""
"This CDROM will be detached permanently and you can re-attach it. Continue "
"to detach it?"
msgstr ""
-"Esse CDROM será desconectado permanentemente e você pode reconectá-lo. "
-"Deseja continuar a remoção? "
+"Este CD-ROM será removido permanentemente e é possível reconectá-lo. "
+"Continuar a removê-lo?"
msgid "Attaching..."
-msgstr "Adicionando..."
+msgstr "Conectando..."
msgid "Replacing..."
msgstr "Substituindo..."
msgid "Successfully attached!"
-msgstr "Adicionado com sucesso!"
+msgstr "Conectado com sucesso!"
msgid "Successfully replaced!"
msgstr "Substituído com sucesso!"
@@ -1845,23 +1899,23 @@ msgid ""
"This disk will be detached permanently and you can re-attach it. Continue to "
"detach it?"
msgstr ""
-"Esse disco será desconectado permanentemente e você pode reconectá-lo. "
-"Deseja continuar a remoção? "
+"Este disco será removido permanentemente e é possível reconectá-lo. "
+"Continuar a remoção?"
msgid "interface:"
msgstr "interface:"
msgid "address:"
-msgstr "endereço:"
+msgstr "endereço: "
msgid "link_type:"
-msgstr "tipo do link:"
+msgstr "link_type:"
msgid "block:"
msgstr "bloco:"
msgid "drive_type:"
-msgstr "tipo do drive:"
+msgstr "drive_type:"
msgid "model:"
msgstr "modelo:"
@@ -1870,7 +1924,7 @@ msgid "Affected devices:"
msgstr "Dispositivos afetados:"
msgid "The VLAN id must be between 1 and 4094."
-msgstr "ID da VLAN deve ser um número entre 1 e 4094."
+msgstr "O ID de VLAN deve ser entre 1 e 4094."
msgid "unavailable"
msgstr "indisponível"
@@ -1879,8 +1933,8 @@ msgid ""
"This action will interrupt network connectivity for any virtual machine that "
"depend on this network."
msgstr ""
-"Esta ação irá interromper a conectividade da rede para qualquer máquina "
-"virtual que depende dessa rede."
+"Esta ação interromperá a conectividade de rede para qualquer máquina virtual "
+"que depender desta rede."
msgid "Create a network"
msgstr "Criar uma rede"
@@ -1889,51 +1943,54 @@ msgid ""
"This network is not persistent. Instead of stop, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"Essa rede não é persistente. Ao invés de parar, essa ação irá removê-la "
-"permantemente. Deseja continuar?"
+"Essa rede não é persistente. Em vez de parar, essa ação o excluirá "
+"permanentemente. Deseja continuar?"
msgid ""
"The bridged VLAN tag may not work well with NetworkManager enabled. You "
"should consider disabling it."
msgstr ""
+"A identificação de VLAN em ponte pode não funcionar bem com o NetworkManager "
+"ativado. Você deve considerar desativá-lo."
msgid ""
"This will permanently delete the storage pool. Would you like to continue?"
-msgstr "O storage pool vai ser permanentemente removido. Deseja continuar?"
+msgstr ""
+"Isso excluirá permanentemente o conjunto de armazenamentos. Deseja continuar?"
msgid "This storage pool is empty."
-msgstr "Esse storage pool está vazio."
+msgstr "Este storage pool está vazio."
msgid ""
"It will format your disk and you will loose any data in there, are you sure "
"to continue? "
msgstr ""
-"Isso formatará seu disco e você perderá toda informação, você tem certeza "
-"que quer continuar?"
+"Isso formatará seu disco e você perderá quaisquer dados contidos nele, tem "
+"certeza de que deseja continuar? "
msgid "SCSI Fibre Channel"
-msgstr "SCSI Fibre Channel"
+msgstr "Fibre Channel SCSI"
msgid "No SCSI adapters found."
-msgstr "Nenhum adaptador SCSI encontrado."
+msgstr "Nenhum adaptador SCSI localizado."
msgid "Loading iSCSI targets..."
-msgstr "Carregando iSCSI targets..."
+msgstr "Carregando destinos iSCSI..."
msgid "No iSCSI found. Please input one."
-msgstr "Nenhum iSCSI encontrado. Por favor, forneça um."
+msgstr "Nenhum iSCSI localizado. Insira um."
msgid "Failed to load iSCSI targets."
-msgstr "Erro ao carregar iSCSI targets."
+msgstr "Falha ao carregar destinos iSCSI."
msgid "The storage pool name can not be blank."
-msgstr "O nome do storage pool não pode ser vazio."
+msgstr "O nome do storage pool não pode ser em branco."
msgid "The storage pool path can not be blank."
-msgstr "O caminho do storage pool não pode ser vazio."
+msgstr "O caminho do storage pool não pode ser em branco."
msgid "NFS server mount path can not be blank."
-msgstr "Caminho de montagem do servidor de NFS não pode ser vazio."
+msgstr "O caminho de montagem do servidor NFS não pode ser em branco."
msgid "Invalid NFS mount path."
msgstr "Caminho de montagem do NFS inválido."
@@ -1942,42 +1999,43 @@ msgid "No logical device selected."
msgstr "Nenhum dispositivo lógico selecionado."
msgid "The iSCSI target can not be blank."
-msgstr "O alvo iSCSI não pode ser vazio."
+msgstr "O destino iSCSI não pode ser em branco."
msgid "Server name can not be blank."
-msgstr "Nome do servidor não pode ser vazio."
+msgstr "O nome do servidor não pode ser em branco."
msgid "This is not a valid Server Name or IP. Please, modify it."
-msgstr "Este não é um nome ou IP de servidor válido. Por favor, modifique-o."
+msgstr "Este não é um Nome de Servidor ou IP válido. Modifique-o."
msgid "Looking for available partitions ..."
-msgstr "Procurando por partições disponíveis ..."
+msgstr "Procurando partições disponíveis..."
msgid "No available partitions found."
-msgstr "Nenhuma partição disponível encontrada."
+msgstr "Nenhuma partição disponível localizada."
msgid ""
"This storage pool is not persistent. Instead of deactivate, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"O storage pool não é persistente. Ao invés de desativar, essa ação vai "
-"removê-lo permanentemente. Deseja continuar?"
+"Este storage pool não é persistente. Em vez de desativar, esta ação o "
+"excluirá permanentemente. Deseja continuar?"
msgid "Unable to retrieve partitions information."
-msgstr "Não foi possível recuperar as informações das partições."
+msgstr "Não é possível recuperar as informações da partição. "
msgid "In progress..."
-msgstr "Em progresso..."
+msgstr "Em andamento..."
msgid "Failed!"
msgstr "Falhou!"
msgid "CDROM path needs to be a valid local/remote path and cannot be blank."
msgstr ""
-"Caminho do CDROM precisa ser um caminho local válido e não pode ser vazio."
+"O caminho CDROM precisa ser um caminho local/remote válido e não pode estar "
+"em branco."
msgid "Disk pool or volume cannot be blank."
-msgstr "Pool ou volume do disco não pode ser vazio."
+msgstr "O volume ou conjunto de discos não pode estar em branco."
msgid "Peers"
msgstr "Peers"
@@ -1986,7 +2044,7 @@ msgid "Searching"
msgstr "Procurando"
msgid "No peers found."
-msgstr "Nenhum peer encontrado."
+msgstr "Nenhum peer localizado."
msgid "Help"
msgstr "Ajuda"
@@ -1995,25 +2053,25 @@ msgid "About"
msgstr "Sobre"
msgid "Log out"
-msgstr "Sair"
+msgstr "Efetuar logout"
msgid "Version:"
msgstr "Versão:"
msgid "Session timeout, please re-login."
-msgstr "Fim do limite do tempo da sessão, por favor se autentique novamente."
+msgstr "A sessão atingiu o tempo limite, efetue login novamente."
msgid "User Name"
-msgstr "Usuário"
+msgstr "Nome de usuário"
msgid "Password"
msgstr "Senha"
msgid "Generate a New Debug Report"
-msgstr "Gerar um novo Relatório de Debug"
+msgstr "Gerar um novo relatório de depuração"
msgid "Report Name"
-msgstr "Nome do Relatório"
+msgstr "Nome do relatório"
msgid ""
"The name used to identify the report. If omitted, a name will be chosen "
@@ -2021,11 +2079,11 @@ msgid ""
"and hyphen (\"-\")."
msgstr ""
"O nome usado para identificar o relatório. Se omitido, um nome será "
-"escolhido baseado no horário atual. O nome pode conter: letras, números, "
-"underscore ('_') e hífen ('-')."
+"escolhido com base no tempo atual. O nome pode conter: letras, dígitos, "
+"sublinhado (\"_\") e hífen (\"-\")."
msgid "Rename a Debug Report"
-msgstr "Renomear um Relatório de Debug"
+msgstr "Renomeie um relatório de depuração"
msgid ""
"The name used to identify the report. Name can contain: letters, digits and "
@@ -2038,13 +2096,13 @@ msgid "Submit"
msgstr "Enviar"
msgid "Add a Repository"
-msgstr "Adicionar um Repositório"
+msgstr "Incluir um repositório"
msgid "Identifier"
msgstr "Identificador"
msgid "Single word, unique identifier for the repository."
-msgstr "Uma única palavra, identificador único para o repositório."
+msgstr "Identificador exclusivo com uma única palavra para o repositório."
msgid "Textual name for the repository."
msgstr "Nome textual para o repositório."
@@ -2053,31 +2111,32 @@ msgid "URL"
msgstr "URL"
msgid "Required Field"
-msgstr "Campo Obrigatório"
+msgstr "Campo obrigatório"
msgid "URL to the repository. Supported protocols are http, ftp, and file."
-msgstr "URL para o repositório. Protocolos suportados são http, ftp e file."
+msgstr ""
+"URL para o repositório. Os protocolos suportados são http, ftp e arquivo."
msgid "Repository is a mirror"
-msgstr "Repositório é um mirror"
+msgstr "O repositório é um espelho"
msgid "Distribution"
msgstr "Distribuição"
msgid "Distribution of the DEB repository."
-msgstr "Distribuição para o repositório DEB."
+msgstr "Distribuição do repositório DEB."
msgid "Components"
msgstr "Componentes"
msgid "List of components in DEB repository."
-msgstr "Lista de componentes para o repositório DEB."
+msgstr "Lista de componentes no repositório DEB."
msgid "Edit Repository"
-msgstr "Editar Repositório"
+msgstr "Editar repositório"
msgid "Mirror List URL"
-msgstr "URL para a lista de mirror"
+msgstr "URL da lista de espelho"
msgid "Yes"
msgstr "Sim"
@@ -2086,59 +2145,62 @@ msgid "No"
msgstr "Não"
msgid "Add a Volume to Storage Pool"
-msgstr "Adicionar um volume ao Storage Pool"
+msgstr "Incluir um volume no conjunto de armazenamentos"
msgid "Fetch from remote URL"
-msgstr "Fazer download de uma URL remota"
+msgstr "Buscar a partir da URL remota"
msgid "Enter the remote URL here."
-msgstr "Digite a URL remota aqui."
+msgstr "Inserir a URL remota aqui."
msgid "Upload a file"
msgstr "Fazer upload de um arquivo"
msgid "Choose the file you want to upload."
-msgstr "Escolha o arquivo que você quer fazer upload."
+msgstr "Escolher o arquivo do qual você deseja fazer upload."
msgid "Define a New Storage Pool"
-msgstr "Definir novo Storage Pool"
+msgstr "Definir um novo storage pool"
msgid "Storage Pool Name"
-msgstr "Nome do Storage Pool"
+msgstr "Nome do storage pool"
msgid ""
"The name used to identify the storage pools, and it should not be empty."
-msgstr "O nome usado para identificar o storage pool e não deve ser vazio."
+msgstr ""
+"O nome usado para identificar os conjuntos de armazenamentos e não deve ser "
+"vazio."
msgid "Storage Pool Type"
-msgstr "Tipo do Storage Pool"
+msgstr "Tipo do storage pool"
msgid "Storage Path"
-msgstr "Caminho do storage"
+msgstr "Caminho do armazenamento"
msgid ""
"The path of the Storage Pool. Each Storage Pool must have a unique path."
msgstr ""
-"O caminho do Storage Pool. Cada Storage Pool deve ter um caminho único."
+"O caminho do storage pool. Cada storage pool deve ter um caminho exclusivo."
msgid ""
"Kimchi will try to create the directory when it does not already exist in "
"your system."
msgstr ""
-"O Kimchi vai tentar criar o diretório se ainda não existir no seu sistema."
+"Kimchi tentará criar o diretório quando ele não existir em seu sistema."
msgid "NFS Server IP"
msgstr "IP do servidor NFS"
msgid "NFS server IP or hostname. It can be input or chosen from history."
msgstr ""
-"IP ou hostname do servidor NFS. Pode ser inserido ou escolhido do histórico."
+"IP ou nome do servidor NFS. Ele pode ser inserido ou escolhido a partir do "
+"histórico."
msgid "NFS Path"
-msgstr "Caminho do NFS"
+msgstr "Caminho de NFS"
msgid "The NFS exported path on NFS server."
-msgstr "O caminho exportado do servidor NFS."
+msgstr "O caminho exportado de NFS no servidor NFS."
msgid "Device path"
msgstr "Caminho do dispositivo"
@@ -2147,7 +2209,7 @@ msgid "iSCSI Server"
msgstr "Servidor iSCSI"
msgid "iSCSI server IP or hostname. It should not be empty."
-msgstr "IP ou hostname do servidor iSCSI. Não deve ser vazio."
+msgstr "IP ou nome do servidor iSCSI. Ele não deve ser vazio."
msgid "Server"
msgstr "Servidor"
@@ -2156,46 +2218,46 @@ msgid "Port"
msgstr "Porta"
msgid "Target"
-msgstr "Alvo"
+msgstr "Destino"
msgid "The iSCSI target on iSCSI server"
-msgstr "O alvo iSCSI no servidor iSCSI"
+msgstr "O destino iSCSI no servidor iSCSI"
msgid "Add iSCSI Authentication"
-msgstr "Adicionar as credenciais do iSCSI"
+msgstr "Incluir autenticação de iSCSI"
msgid "iSCSI Authentication"
-msgstr "Credenciais do iSCSI"
+msgstr "Autenticação de iSCSI"
msgid "SCSI Adapter"
msgstr "Adaptador SCSI"
msgid "Please, wait..."
-msgstr "Por favor, aguarde..."
+msgstr "Aguarde..."
msgid "Add Template"
-msgstr "Adicionar Modelo"
+msgstr "Incluir modelo"
msgid "Where is the source media for this template? "
-msgstr "Onde está a mídia de origem desse modelo? "
+msgstr "Onde está a mídia de origem para este modelo? "
msgid "Local ISO Image"
-msgstr "Imagem ISO Local"
+msgstr "Imagem ISO local"
msgid "Local Image File"
-msgstr "Arquivo de Imagem Local"
+msgstr "Arquivo da imagem local"
msgid "Remote ISO Image"
-msgstr "Imagem ISO Remota"
+msgstr "Imagem ISO remota"
msgid "Search ISOs"
msgstr "Procurar ISOs"
msgid "The following ISOs are available:"
-msgstr "As seguintes ISOs estão disponíveis:"
+msgstr "Os ISOs a seguir estão disponíveis:"
msgid "OS: "
-msgstr "Sistema Operacional: "
+msgstr "S.O.: "
msgid "Version: "
msgstr "Versão: "
@@ -2204,25 +2266,25 @@ msgid "Size: "
msgstr "Tamanho: "
msgid "Search more ISOs"
-msgstr "Procurar por mais ISOs"
+msgstr "Procurar mais ISOs"
msgid "Create Templates from Selected ISO"
-msgstr "Criar Modelos a partir das ISOs selecionadas"
+msgstr "Criar modelos a partir do ISO selecionado"
msgid "I want to use a specific ISO file"
-msgstr "Eu quero usar um arquivo ISO específico"
+msgstr "Eu desejo usar um arquivo ISO específico"
msgid "Loading default remote ISOs ..."
-msgstr "Carregando ISOs remotas ..."
+msgstr "Carregando ISOs remotos padrão..."
msgid "Arch: "
-msgstr "Arquitetura: "
+msgstr "Arq.: "
msgid "I want to use a custom URL"
-msgstr "Eu quero usar uma URL personalizada"
+msgstr "Eu desejo usar uma URL customizada"
msgid "Edit Template"
-msgstr "Editar Modelo"
+msgstr "Editar modelo"
msgid "Processor"
msgstr "Processador"
@@ -2231,7 +2293,7 @@ msgid "CDROM"
msgstr "CD-ROM"
msgid "Image File"
-msgstr "Arquivo de imagem"
+msgstr "Arquivo de imagem "
msgid "Graphics"
msgstr "Gráficos"
@@ -2240,37 +2302,37 @@ msgid "Disk(GB)"
msgstr "Disco (GB)"
msgid "Disk Format"
-msgstr ""
+msgstr "Formato do disco"
msgid "CPU Number"
-msgstr "Quantidade de CPUs"
+msgstr "Número de CPU"
msgid "Manually set CPU topology"
-msgstr "Configurar manualmente a topologia de CPU"
+msgstr "Configurar manualmente a topologia da CPU"
msgid "Cores"
-msgstr "Cores"
+msgstr "Núcleos"
msgid "Threads"
-msgstr "Threads"
+msgstr "Encadeamentos"
msgid "CPU"
msgstr "CPU"
msgid "Disk I/O"
-msgstr "Disco E/S"
+msgstr "E/S de disco"
msgid "Network I/O"
-msgstr "Rede E/S"
+msgstr "E/S de Rede"
msgid "Livetile"
-msgstr "Tela ao vivo"
+msgstr "Livetile"
msgid "No guests found."
-msgstr "Nenhum guest encontrado."
+msgstr "Nenhum convidado localizado."
msgid "Shut down"
-msgstr "Desligar"
+msgstr "Encerrar"
msgid "Restart"
msgstr "Reiniciar"
@@ -2279,10 +2341,10 @@ msgid "Basic Information"
msgstr "Informações básicas"
msgid "OS Distro"
-msgstr "Distribuição"
+msgstr "Distribuição do S.O."
msgid "OS Code Name"
-msgstr "Nome-código do sistema operacional"
+msgstr "Nome-código do S.O."
msgid "CPU(s)"
msgstr "CPU(s)"
@@ -2300,44 +2362,43 @@ msgid "State"
msgstr "Estado"
msgid "Network Type"
-msgstr "Tipo da rede"
+msgstr "Tipo de rede"
msgid "Address Space"
msgstr "Espaço de endereço"
msgid "Name should not contain '/' and '\"'."
-msgstr "O nome não deve conter '/' and '\"'."
+msgstr "O nome não deve conter '/' e '\"'."
msgid "Isolated: no external network connection"
-msgstr "Isolada: nenhuma conexão externa"
+msgstr "Isolado: nenhuma conexão de rede externa"
msgid "NAT: outbound physical network connection only"
msgstr "NAT: somente conexão de rede física de saída"
msgid "Bridged: Virtual machines are connected to physical network directly"
-msgstr ""
-"Bridged: Máquinas virtuais estão conectadas diretamente com a rede física"
+msgstr "bridged: As máquinas virtuais são conectadas à rede física diretamente"
msgid "(No interfaces found)"
-msgstr "(Nenhuma interface encontrada)"
+msgstr "(Nenhuma interface localizada)"
msgid "Destination"
msgstr "Destino"
msgid "Enable VLAN"
-msgstr "Habilitar VLAN"
+msgstr "Ativar VLAN"
msgid "VLAN ID"
-msgstr "ID da VLAN"
+msgstr "ID de VLAN"
msgid "Stop"
msgstr "Parar"
msgid "%Used"
-msgstr ""
+msgstr "%Usado"
msgid "Location"
-msgstr "Localização"
+msgstr "Local"
msgid "Capacity"
msgstr "Capacidade"
@@ -2358,10 +2419,10 @@ msgid "Activate"
msgstr "Ativar"
msgid "Add Volume"
-msgstr "Adicionar volume"
+msgstr "Incluir volume"
msgid "Extend"
-msgstr "Aumentar"
+msgstr "Estender"
msgid "Undefine"
msgstr "Indefinir"
@@ -2373,4 +2434,4 @@ msgid "Allocation"
msgstr "Alocação"
msgid "No templates found."
-msgstr "Nenhum modelo encontrado."
+msgstr "Nenhum modelo localizado."
diff --git a/po/ru_RU.po b/po/ru_RU.po
index b2d4586..804ff61 100644
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -6,67 +6,57 @@ msgid ""
msgstr ""
"Project-Id-Version: kimchi 0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-24 09:39-0300\n"
+"POT-Creation-Date: 2015-08-21 09:52-0300\n"
"PO-Revision-Date: 2013-07-11 17:32-0400\n"
"Last-Translator: Crístian Viana <vianac(a)linux.vnet.ibm.com>\n"
"Language-Team: English\n"
-"Language: en_US\n"
+"Language: ru_RU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#, python-format
msgid "Unknown parameter %(value)s"
-msgstr ""
-"Неизвестный параметр %(value)s"
+msgstr "Неизвестный параметр %(value)s"
#, python-format
msgid "Delete is not allowed for %(resource)s"
-msgstr ""
-"Удаление запрещено для %(resource)s"
+msgstr "Удаление запрещено для %(resource)s"
#, python-format
msgid "%(resource)s does not implement update method"
-msgstr ""
-"%(resource)s не имеет реализации метода обновления"
+msgstr "%(resource)s не имеет реализации метода обновления"
#, python-format
msgid "Create is not allowed for %(resource)s"
-msgstr ""
-"Создание запрещено для %(resource)s"
+msgstr "Создание запрещено для %(resource)s"
msgid "Unable to parse JSON request"
-msgstr ""
-"Ошибка анализа запроса JSON"
+msgstr "Ошибка анализа запроса JSON"
msgid "This API only supports JSON"
-msgstr ""
-"Эта функция API поддерживает только JSON"
+msgstr "Эта функция API поддерживает только JSON"
#, python-format
msgid "Parameters does not match requirement in schema: %(err)s"
-msgstr ""
-"Параметры не соответствуют требованиям схемы: %(err)s"
+msgstr "Параметры не соответствуют требованиям схемы: %(err)s"
msgid "You don't have permission to perform this operation."
-msgstr ""
-"Недостаточно прав доступа для выполнения этой операции."
+msgstr "Недостаточно прав доступа для выполнения этой операции."
msgid "Datastore is not initiated in the model object."
-msgstr ""
-"Хранилище данных в объекте модели не инициализировано."
+msgstr "Хранилище данных в объекте модели не инициализировано."
#, python-format
msgid "Unable to start task due error: %(err)s"
-msgstr ""
-"Не удалось запустить задачу из-за ошибки: %(err)s"
+msgstr "Не удалось запустить задачу из-за ошибки: %(err)s"
#, python-format
msgid "Timeout of %(seconds)s seconds expired while running task '%(task)s."
-msgstr ""
-"Во время выполнения задачи %(task)s истек тайм-аут (%(seconds)s с)."
+msgstr "Во время выполнения задачи %(task)s истек тайм-аут (%(seconds)s с)."
#, python-format
msgid "Authentication failed for user '%(username)s'. [Error code: %(code)s]"
@@ -74,50 +64,44 @@ msgstr ""
"Сбой идентификации для пользователя %(username)s. [Код ошибки: %(code)s]"
msgid "You are not authorized to access Kimchi"
-msgstr ""
-"Нет прав доступа к Kimchi"
+msgstr "Нет прав доступа к Kimchi"
#, python-format
msgid "Specify %(item)s to login into Kimchi"
-msgstr ""
-"Укажите %(item)s для входа в Kimchi"
+msgstr "Укажите %(item)s для входа в Kimchi"
#, python-format
msgid "User %(user_id)s not found with given LDAP settings."
-msgstr ""
-"Пользователь %(user_id)s не найден с указанными параметрами LDAP."
+msgstr "Пользователь %(user_id)s не найден с указанными параметрами LDAP."
#, python-format
msgid "Invalid LDAP configuration: %(item)s : %(value)s"
-msgstr ""
-"Недопустимая конфигурация LDAP: %(item)s : %(value)s"
+msgstr "Недопустимая конфигурация LDAP: %(item)s : %(value)s"
msgid "Unknown \"_cap\" specified"
-msgstr ""
-"Указано неизвестное значение \"_cap\""
+msgstr "Указано неизвестное значение \"_cap\""
msgid "\"_passthrough\" should be \"true\" or \"false\""
-msgstr ""
-"Значение \"_passthrough\" должно быть \"true\" или \"false\""
+msgstr "Значение \"_passthrough\" должно быть \"true\" или \"false\""
msgid "\"_passthrough_affected_by\" should be a device name string"
msgstr ""
"Значение \"_passthrough_affected_by\" должно быть строкой с именем устройства"
+msgid "\"_available_only\" should be \"true\" or \"false\""
+msgstr "Значение \"_available_only\" должно быть \"true\" или \"false\""
+
#, python-format
msgid "Error while getting block devices. Details: %(err)s"
-msgstr ""
-"Ошибка получения блочных устройств. Сведения: %(err)s"
+msgstr "Ошибка получения блочных устройств. Сведения: %(err)s"
#, python-format
msgid "Error while getting block device information for %(device)s."
-msgstr ""
-"Ошибка получения информации о блочных устройствах для %(device)s."
+msgstr "Ошибка получения информации о блочных устройствах для %(device)s."
#, python-format
msgid "Unable to find distro file: %(filename)s"
-msgstr ""
-"Не найден файл варианта ОС: %(filename)s"
+msgstr "Не найден файл варианта ОС: %(filename)s"
#, python-format
msgid ""
@@ -127,23 +111,19 @@ msgstr ""
#, python-format
msgid "Unable to login to iSCSI host target %(portal)s. Details: %(err)s"
-msgstr ""
-"Не удалось войти в целевой %(portal)s хоста iSCSI. Сведения: %(err)s"
+msgstr "Не удалось войти в целевой %(portal)s хоста iSCSI. Сведения: %(err)s"
#, python-format
msgid "Unable to login to iSCSI host %(host)s target %(target)s"
-msgstr ""
-"Не удалось войти в целевой %(target)s хоста %(host)s iSCSI"
+msgstr "Не удалось войти в целевой %(target)s хоста %(host)s iSCSI"
#, python-format
msgid "Unable to find ISO file %(filename)s"
-msgstr ""
-"Не найден файл ISO %(filename)s"
+msgstr "Не найден файл ISO %(filename)s"
#, python-format
msgid "The ISO file %(filename)s is not bootable"
-msgstr ""
-"Файл ISO %(filename)s не загрузочный"
+msgstr "Файл ISO %(filename)s не загрузочный"
#, python-format
msgid "The ISO file %(filename)s does not have a valid El Torito boot record"
@@ -152,23 +132,19 @@ msgstr ""
#, python-format
msgid "Invalid El Torito validation entry in ISO %(filename)s"
-msgstr ""
-"Недопустимая запись проверки El Torito в образе ISO %(filename)s"
+msgstr "Недопустимая запись проверки El Torito в образе ISO %(filename)s"
#, python-format
msgid "Invalid El Torito boot indicator in ISO %(filename)s"
-msgstr ""
-"Недопустимый индикатор загрузки El Torito в образе ISO %(filename)s"
+msgstr "Недопустимый индикатор загрузки El Torito в образе ISO %(filename)s"
#, python-format
msgid "Unexpected volume type for primary volume in ISO %(filename)s"
-msgstr ""
-"Неожиданный тип главного тома в образе ISO %(filename)s"
+msgstr "Неожиданный тип главного тома в образе ISO %(filename)s"
#, python-format
msgid "Bad format while reading volume descriptor in ISO %(filename)s"
-msgstr ""
-"Неверный формат дескриптора тома в образе ISO %(filename)s"
+msgstr "Неверный формат дескриптора тома в образе ISO %(filename)s"
#, python-format
msgid ""
@@ -178,42 +154,37 @@ msgid ""
"'%(user)s' to the ISO path group, or (not recommended) 'chmod -R o+x "
"'path_to_iso'.Details: %(err)s"
msgstr ""
-"У гипервизора нет прав доступа для использования этого образа ISO %(filename)s."
-"Переместите его в каталог /var/lib/libvirt, добавьте разрешение на поиск "
-"в списки контроля доступа для пользователя %(user)s, если это возможно, добавьте "
-"%(user)s в группу пути к образу ISO или (не рекомендуется) выполните команду 'chmod -R o+x"
-"путь-к-iso'. Сведения: %(err)s"
+"У гипервизора нет прав доступа для использования этого образа ISO "
+"%(filename)s.Переместите его в каталог /var/lib/libvirt, добавьте разрешение "
+"на поиск в списки контроля доступа для пользователя %(user)s, если это "
+"возможно, добавьте %(user)s в группу пути к образу ISO или (не "
+"рекомендуется) выполните команду 'chmod -R o+xпуть-к-iso'. Сведения: %(err)s"
msgid "An error occurred when probing image OS information."
-msgstr ""
-"Ошибка проверки информации об ОС образа."
+msgstr "Ошибка проверки информации об ОС образа."
msgid "No OS information found in given image."
-msgstr ""
-"В данном образе не найдена информация об ОС."
+msgstr "В данном образе не найдена информация об ОС."
#, python-format
msgid "Unable to read image file %(filename)s"
-msgstr ""
-"Не удалось прочитать файл образа %(filename)s"
+msgstr "Не удалось прочитать файл образа %(filename)s"
#, python-format
msgid ""
"Image file must be an existing file on system. %(filename)s is not a valid "
"input."
msgstr ""
-"Файл образа должен существовать в системе. Имя файла %(filename)s не является допустимым "
-"вводом."
+"Файл образа должен существовать в системе. Имя файла %(filename)s не "
+"является допустимым вводом."
#, python-format
msgid "Virtual machine %(name)s already exists"
-msgstr ""
-"Виртуальная машина %(name)s уже существует"
+msgstr "Виртуальная машина %(name)s уже существует"
#, python-format
msgid "Virtual machine %(name)s does not exist"
-msgstr ""
-"Виртуальная машина %(name)s не существует"
+msgstr "Виртуальная машина %(name)s не существует"
#, python-format
msgid ""
@@ -226,36 +197,31 @@ msgstr ""
#, python-format
msgid "Unable to retrieve screenshot for stopped virtual machine %(name)s"
msgstr ""
-"Не удалось получить снимок экрана для остановленной виртуальной машины %(name)s"
+"Не удалось получить снимок экрана для остановленной виртуальной машины "
+"%(name)s"
msgid "Remote ISO image is not supported by this server."
-msgstr ""
-"Удаленный образ ISO не поддерживается этим сервером."
+msgstr "Удаленный образ ISO не поддерживается этим сервером."
#, python-format
msgid "Screenshot is not supported on virtual machine %(name)s"
-msgstr ""
-"Снимки экрана не поддерживаются в виртуальной машине %(name)s"
+msgstr "Снимки экрана не поддерживаются в виртуальной машине %(name)s"
#, python-format
msgid "Unable to create virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось создать виртуальную машину %(name)s. Сведения: %(err)s"
+msgstr "Не удалось создать виртуальную машину %(name)s. Сведения: %(err)s"
#, python-format
msgid "Unable to update virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось обновить виртуальную машину %(name)s. Сведения: %(err)s"
+msgstr "Не удалось обновить виртуальную машину %(name)s. Сведения: %(err)s"
#, python-format
msgid "Unable to retrieve virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось получить виртуальную машину %(name)s. Сведения: %(err)s"
+msgstr "Не удалось получить виртуальную машину %(name)s. Сведения: %(err)s"
#, python-format
msgid "Unable to connect to powered off virtual machine %(name)s."
-msgstr ""
-"Не удалось подключиться к выключенной виртуальной машине %(name)s."
+msgstr "Не удалось подключиться к выключенной виртуальной машине %(name)s."
msgid "Virtual machine name must be a string without slashes (/)"
msgstr ""
@@ -263,71 +229,57 @@ msgstr ""
#, python-format
msgid "Invalid template URI %(value)s specified for virtual machine"
-msgstr ""
-"Для виртуальной машины указан недопустимый URI шаблона %(value)s"
+msgstr "Для виртуальной машины указан недопустимый URI шаблона %(value)s"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for virtual machine"
-msgstr ""
-"Для виртуальной машины указан недопустимый URI пула памяти %(value)s"
+msgstr "Для виртуальной машины указан недопустимый URI пула памяти %(value)s"
msgid "Supported virtual machine graphics are Spice or VNC"
-msgstr ""
-"Поддерживаемые графические подсистемы виртуальной машины: Spice, VNC"
+msgstr "Поддерживаемые графические подсистемы виртуальной машины: Spice, VNC"
msgid "Graphics address to listen on must be IPv4 or IPv6"
msgstr ""
"Адрес приема запросов для графической подсистемы должен быть IPv4 или IPv6"
msgid "Specify a template to create a virtual machine from"
-msgstr ""
-"Укажите шаблон для создания виртуальной машины"
+msgstr "Укажите шаблон для создания виртуальной машины"
#, python-format
msgid "Unable to start virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось запустить виртуальную машину %(name)s. Сведения: %(err)s"
+msgstr "Не удалось запустить виртуальную машину %(name)s. Сведения: %(err)s"
#, python-format
msgid "Unable to power off virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось выключить виртуальную машину %(name)s. Сведения: %(err)s"
+msgstr "Не удалось выключить виртуальную машину %(name)s. Сведения: %(err)s"
#, python-format
msgid "Unable to delete virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось удалить виртуальную машину %(name)s. Сведения: %(err)s"
+msgstr "Не удалось удалить виртуальную машину %(name)s. Сведения: %(err)s"
#, python-format
msgid "Unable to reset virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось сбросить виртуальную машину %(name)s. Сведения: %(err)s"
+msgstr "Не удалось сбросить виртуальную машину %(name)s. Сведения: %(err)s"
msgid "User name list must be an array"
-msgstr ""
-"Список имен пользователей должен быть массивом"
+msgstr "Список имен пользователей должен быть массивом"
msgid "User name must be a string"
-msgstr ""
-"Имя пользователя должно быть строкой"
+msgstr "Имя пользователя должно быть строкой"
msgid "Group name list must be an array"
-msgstr ""
-"Список имен групп должен быть массивом"
+msgstr "Список имен групп должен быть массивом"
msgid "Group name must be a string"
-msgstr ""
-"Имя группы должно быть строкой"
+msgstr "Имя группы должно быть строкой"
#, python-format
msgid "User(s) '%(users)s' do not exist"
-msgstr ""
-"Следующие пользователи не существуют: %(users)s"
+msgstr "Следующие пользователи не существуют: %(users)s"
#, python-format
msgid "Group(s) '%(groups)s' do not exist"
-msgstr ""
-"Следующие группы не существуют: %(groups)s"
+msgstr "Следующие группы не существуют: %(groups)s"
#, python-format
msgid "Unable to shutdown virtual machine %(name)s. Details: %(err)s"
@@ -338,15 +290,14 @@ msgstr ""
msgid ""
"Unable to get access metadata of virtual machine %(name)s. Details: %(err)s"
msgstr ""
-"Не удалось получить доступ к метаданным виртуальной машины %(name)s. Сведения: %(err)s"
+"Не удалось получить доступ к метаданным виртуальной машины %(name)s. "
+"Сведения: %(err)s"
msgid "The guest console password must be a string."
-msgstr ""
-"Пароль консоли гостевой системы должен быть строкой."
+msgstr "Пароль консоли гостевой системы должен быть строкой."
msgid "The life time for the guest console password must be a number."
-msgstr ""
-"Срок действия пароля консоли гостевой системы должен быть числом."
+msgstr "Срок действия пароля консоли гостевой системы должен быть числом."
#, python-format
msgid "Virtual machine '%(name)s' must be stopped before cloning it."
@@ -365,13 +316,13 @@ msgstr ""
#, python-format
msgid "Invalid operation for non-persistent virtual machine %(name)s"
-msgstr ""
-"Недопустимая операция для непостоянной виртуальной машины %(name)s"
+msgstr "Недопустимая операция для непостоянной виртуальной машины %(name)s"
#, python-format
msgid "Cannot suspend VM '%(name)s' because it is not running."
msgstr ""
-"Невозможно приостановить виртуальную машину '%(name)s', поскольку она не работает."
+"Невозможно приостановить виртуальную машину '%(name)s', поскольку она не "
+"работает."
#, python-format
msgid "Unable to suspend VM '%(name)s'. Details: %(err)s"
@@ -381,12 +332,14 @@ msgstr ""
#, python-format
msgid "Cannot resume VM '%(name)s' because it is not paused."
msgstr ""
-"Невозможно возобновить выполнение виртуальной машины '%(name)s', поскольку она не приостановлена."
+"Невозможно возобновить выполнение виртуальной машины '%(name)s', поскольку "
+"она не приостановлена."
#, python-format
msgid "Unable to resume VM '%(name)s'. Details: %(err)s"
msgstr ""
-"Не удалось возобновить выполнение виртуальной машины '%(name)s'. Сведения: %(err)s"
+"Не удалось возобновить выполнение виртуальной машины '%(name)s'. Сведения: "
+"%(err)s"
msgid "Memory assigned is higher then the maximum allowed in the host."
msgstr ""
@@ -397,41 +350,40 @@ msgid ""
"VM '%(name)s' does not support live memory update. Update the memory with "
"the machine offline to enable this feature."
msgstr ""
-"Виртуальная машина '%(name)s' не поддерживает оперативное изменение объема памяти. Измените объем памяти, "
-"когда машина отключена, чтобы включить эту функцию."
+"Виртуальная машина '%(name)s' не поддерживает оперативное изменение объема "
+"памяти. Измените объем памяти, когда машина отключена, чтобы включить эту "
+"функцию."
msgid "Only increase memory is allowed in active VMs"
-msgstr ""
-"В активных виртуальных машинах объем памяти можно только увеличивать"
+msgstr "В активных виртуальных машинах объем памяти можно только увеличивать"
msgid ""
"For live memory update, new memory value must be equal old memory value plus "
"multiples of 1024 Mib"
msgstr ""
-"Для оперативного изменения объема памяти новое значение объема памяти должно быть равно текущему объему памяти плюс "
-"величина, кратная 1024 МиБ"
+"Для оперативного изменения объема памяти новое значение объема памяти должно "
+"быть равно текущему объему памяти плюс величина, кратная 1024 МиБ"
msgid "There are not enough free slots of 1024 Mib in the guest."
-msgstr ""
-"Недостаточно свободных разъемов размером 1024 МиБ в гостевой системе."
+msgstr "Недостаточно свободных разъемов размером 1024 МиБ в гостевой системе."
msgid ""
"Host's libvirt version does not support memory devices. Libvirt must be >= "
"1.2.14"
msgstr ""
-"Версия библиотеки libvirt хоста не поддерживает устройства памяти. Версия библиотеки libvirt должна быть >= "
-"1.2.14"
+"Версия библиотеки libvirt хоста не поддерживает устройства памяти. Версия "
+"библиотеки libvirt должна быть >= 1.2.14"
#, python-format
msgid "Error attaching memory device. Details: %(error)s"
-msgstr ""
-"Ошибка подключения устройства памяти. Сведения: %(error)s"
+msgstr "Ошибка подключения устройства памяти. Сведения: %(error)s"
#, python-format
msgid ""
"VM %(vmid)s does not contain directly assigned host device %(dev_name)s."
msgstr ""
-"Виртуальная машина %(vmid)s не содержит непосредственно присвоенного устройства хоста %(dev_name)s."
+"Виртуальная машина %(vmid)s не содержит непосредственно присвоенного "
+"устройства хоста %(dev_name)s."
#, python-format
msgid "The host device %(dev_name)s is not allowed to directly assign to VM."
@@ -445,28 +397,26 @@ msgid ""
"to your Kernel parameter in /boot/grub2/grub.conf. For AMD CPU, add iommu=pt "
"iommu=1."
msgstr ""
-"Не найдены группы IOMMU. Для правильного функционирования сквозной передачи PCI хоста требуется группа IOMMU. "
-"В BIOS включите поддержку Intel VT-d или AMD IOMMU и проверьте, "
-"скомпилировано ли ядро ОС с поддержкой IOMMU. Для процессора Intel добавьте intel_iommu=on "
-"в параметры ядра в файле /boot/grub2/grub.conf. Для процессора AMD добавьте iommu=pt "
-"iommu=1."
+"Не найдены группы IOMMU. Для правильного функционирования сквозной передачи "
+"PCI хоста требуется группа IOMMU. В BIOS включите поддержку Intel VT-d или "
+"AMD IOMMU и проверьте, скомпилировано ли ядро ОС с поддержкой IOMMU. Для "
+"процессора Intel добавьте intel_iommu=on в параметры ядра в файле /boot/"
+"grub2/grub.conf. Для процессора AMD добавьте iommu=pt iommu=1."
msgid "\"name\" should be a device name string"
-msgstr ""
-"Значение \"name\" должно быть строкой с именем устройства"
+msgstr "Значение \"name\" должно быть строкой с именем устройства"
#, python-format
msgid ""
"The device %(name)s is probably in use by the host. Unable to attach it to "
"the guest."
msgstr ""
-"Возможно, устройство %(name)s используется хостом. Его невозможно подключить к "
-"гостевой системе."
+"Возможно, устройство %(name)s используется хостом. Его невозможно подключить "
+"к гостевой системе."
#, python-format
msgid "Interface %(iface)s does not exist in virtual machine %(name)s"
-msgstr ""
-"Интерфейс %(iface)s не существует в виртуальной машине %(name)s"
+msgstr "Интерфейс %(iface)s не существует в виртуальной машине %(name)s"
#, python-format
msgid ""
@@ -475,241 +425,201 @@ msgstr ""
"Сеть %(network)s, указанная для виртуальной машины %(name)s, не существует"
msgid "Supported virtual machine interfaces type is only network"
-msgstr ""
-"Поддерживается только один тип интерфейсов виртуальной машины - сеть"
+msgstr "Поддерживается только один тип интерфейсов виртуальной машины - сеть"
msgid "Network name for virtual machine interface must be a string"
-msgstr ""
-"Имя сети для интерфейса виртуальной машины должно быть строкой"
+msgstr "Имя сети для интерфейса виртуальной машины должно быть строкой"
msgid "Invalid network model card specified for virtual machine interface"
msgstr ""
"Указана недопустимая карта модели сети для интерфейса виртуальной машины"
msgid "Specify type and network to add a new virtual machine interface"
-msgstr ""
-"Укажите тип и сеть для добавления нового интерфейса виртуальной машины"
+msgstr "Укажите тип и сеть для добавления нового интерфейса виртуальной машины"
msgid "MAC Address must respect this format FF:FF:FF:FF:FF:FF"
-msgstr ""
-"MAC-адрес должен иметь формат FF:FF:FF:FF:FF:FF"
+msgstr "MAC-адрес должен иметь формат FF:FF:FF:FF:FF:FF"
#, python-format
msgid "MAC Address %(mac)s already exists in virtual machine %(name)s"
-msgstr ""
-"MAC-адрес %(mac)s уже существует в виртуальной машине %(name)s"
+msgstr "MAC-адрес %(mac)s уже существует в виртуальной машине %(name)s"
msgid "Invalid MAC Address"
-msgstr ""
-"Недопустимый MAC-адрес"
+msgstr "Недопустимый MAC-адрес"
msgid "Cannot change MAC address of a running virtual machine"
-msgstr ""
-"Нельзя изменить MAC-адрес работающей виртуальной машины"
+msgstr "Нельзя изменить MAC-адрес работающей виртуальной машины"
#, python-format
msgid "Template %(name)s already exists"
-msgstr ""
-"Шаблон %(name)s уже существует"
+msgstr "Шаблон %(name)s уже существует"
#, python-format
msgid ""
"Network '%(network)s' specified for template %(template)s does not exist"
-msgstr ""
-"Сеть '%(network)s', указанная для шаблона %(template)s, не существует"
+msgstr "Сеть '%(network)s', указанная для шаблона %(template)s, не существует"
#, python-format
msgid ""
"Storage pool %(pool)s specified for template %(template)s does not exist"
-msgstr ""
-"Пул памяти %(pool)s, указанный для шаблона %(template)s, не существует"
+msgstr "Пул памяти %(pool)s, указанный для шаблона %(template)s, не существует"
#, python-format
msgid "Storage pool %(pool)s specified for template %(template)s is not active"
-msgstr ""
-"Пул памяти %(pool)s, указанный для шаблона %(template)s, неактивен"
+msgstr "Пул памяти %(pool)s, указанный для шаблона %(template)s, неактивен"
#, python-format
msgid "Invalid parameter '%(param)s' specified for CDROM."
-msgstr ""
-"Указан недопустимый параметр %(param)s для CDROM."
+msgstr "Указан недопустимый параметр %(param)s для CDROM."
#, python-format
msgid "Network %(network)s specified for template %(template)s is not active"
-msgstr ""
-"Сеть %(network)s, указанная для шаблона %(template)s, неактивна"
+msgstr "Сеть %(network)s, указанная для шаблона %(template)s, неактивна"
msgid "Template name must be a string"
-msgstr ""
-"Имя шаблона должно быть строкой"
+msgstr "Имя шаблона должно быть строкой"
msgid "Template icon must be a path to the image"
-msgstr ""
-"Значок шаблона должен быть путем к образу"
+msgstr "Значок шаблона должен быть путем к образу"
msgid "Template distribution must be a string"
-msgstr ""
-"Вариант шаблона должен быть строкой"
+msgstr "Вариант шаблона должен быть строкой"
msgid "Template distribution version must be a string"
-msgstr ""
-"Версия варианта шаблона должна быть строкой"
+msgstr "Версия варианта шаблона должна быть строкой"
msgid "The number of CPUs must be an integer greater than 0"
-msgstr ""
-"Число процессоров должно быть целым числом, большим 0"
+msgstr "Число процессоров должно быть целым числом, большим 0"
msgid "Amount of memory (MB) must be an integer greater than 512"
-msgstr ""
-"Объем памяти (МБ) должен быть целым числом больше 512"
+msgstr "Объем памяти (МБ) должен быть целым числом больше 512"
msgid "Template CDROM must be a local or remote ISO file"
-msgstr ""
-"CDROM шаблона должен быть локальным или удаленным файлом ISO"
+msgstr "CDROM шаблона должен быть локальным или удаленным файлом ISO"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for template"
-msgstr ""
-"Для шаблона указан недопустимый URI пула памяти %(value)s"
+msgstr "Для шаблона указан недопустимый URI пула памяти %(value)s"
msgid "Specify an ISO image as CDROM or a base image to create a template"
msgstr ""
"Укажите образ ISO в качестве CDROM или базового образа для создания шаблона"
msgid "All networks for the template must be specified in a list."
-msgstr ""
-"Все сети для шаблона должны быть указаны в списке."
+msgstr "Все сети для шаблона должны быть указаны в списке."
msgid "Specify a volume to a template when storage pool is iSCSI or SCSI"
-msgstr ""
-"Укажите том для шаблона, когда пул памяти - iSCSI или SCSI"
+msgstr "Укажите том для шаблона, когда пул памяти - iSCSI или SCSI"
#, python-format
msgid "The volume %(volume)s is not in storage pool %(pool)s"
-msgstr ""
-"Том %(volume)s отсутствует в пуле памяти %(pool)s"
+msgstr "Том %(volume)s отсутствует в пуле памяти %(pool)s"
#, python-format
msgid "Unable to create template due error: %(err)s"
-msgstr ""
-"Не удалось создать шаблон из-за следующей ошибки: %(err)s"
+msgstr "Не удалось создать шаблон из-за следующей ошибки: %(err)s"
#, python-format
msgid "Unable to delete template due error: %(err)s"
-msgstr ""
-"Не удалось удалить шаблон из-за следующей ошибки: %(err)s"
+msgstr "Не удалось удалить шаблон из-за следующей ошибки: %(err)s"
msgid "Disk size must be an integer greater than 1GB."
-msgstr ""
-"Размер диска должен быть целым числом больше 1 ГБ."
+msgstr "Размер диска должен быть целым числом больше 1 ГБ."
msgid "Template base image must be a valid local image file"
-msgstr ""
-"Базовый образ шаблона должен быть правильным локальным файлом образа"
+msgstr "Базовый образ шаблона должен быть правильным локальным файлом образа"
#, python-format
msgid "Cannot identify base image %(path)s format"
-msgstr ""
-"Не удалось идентифицировать формат %(path)s базового образа"
+msgstr "Не удалось идентифицировать формат %(path)s базового образа"
msgid ""
"When specifying CPU topology, VCPUs must be a product of sockets, cores, and "
"threads."
msgstr ""
-"При указании топологии процессоров количество виртуальных процессоров должно быть произведением числа сокетов, ядер и "
-"нитей."
+"При указании топологии процессоров количество виртуальных процессоров должно "
+"быть произведением числа сокетов, ядер и нитей."
msgid ""
"When specifying CPU topology, each element must be an integer greater than "
"zero."
msgstr ""
-"При указании топологии процессоров каждый элемент должен быть целым числом больше "
-"нуля."
+"При указании топологии процессоров каждый элемент должен быть целым числом "
+"больше нуля."
msgid ""
"Invalid disk image format. Valid formats: bochs, cloop, cow, dmg, qcow, "
"qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"Недопустимый формат образа диска. Допустимые форматы: bochs, cloop, cow, dmg, qcow, "
-"qcow2, qed, raw, vmdk, vpc."
+"Недопустимый формат образа диска. Допустимые форматы: bochs, cloop, cow, "
+"dmg, qcow, qcow2, qed, raw, vmdk, vpc."
#, python-format
msgid "Storage pool %(name)s already exists"
-msgstr ""
-"Пул памяти %(name)s уже существует"
+msgstr "Пул памяти %(name)s уже существует"
#, python-format
msgid "Storage pool %(name)s does not exist"
-msgstr ""
-"Пул памяти %(name)s не существует"
+msgstr "Пул памяти %(name)s не существует"
#, python-format
msgid "Specify %(item)s in order to create the storage pool %(name)s"
-msgstr ""
-"Укажите %(item)s, чтобы создать пул памяти %(name)s"
+msgstr "Укажите %(item)s, чтобы создать пул памяти %(name)s"
#, python-format
msgid "Unable to delete active storage pool %(name)s"
-msgstr ""
-"Не удалось удалить пул памяти %(name)s"
+msgstr "Не удалось удалить пул памяти %(name)s"
#, python-format
msgid "Unable to list storage pools. Details: %(err)s"
-msgstr ""
-"Не удалось вывести список пулов памяти. Сведения: %(err)s"
+msgstr "Не удалось вывести список пулов памяти. Сведения: %(err)s"
#, python-format
msgid "Unable to create storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось создать пул памяти %(name)s. Сведения: %(err)s"
+msgstr "Не удалось создать пул памяти %(name)s. Сведения: %(err)s"
#, python-format
msgid ""
"Unable to get number of storage volumes in storage pool %(name)s. Details: "
"%(err)s"
msgstr ""
-"Не удалось получить число томов в пуле памяти %(name)s. Сведения: "
-"%(err)s"
+"Не удалось получить число томов в пуле памяти %(name)s. Сведения: %(err)s"
#, python-format
msgid "Unable to activate storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось активировать пул памяти %(name)s. Сведения: %(err)s"
+msgstr "Не удалось активировать пул памяти %(name)s. Сведения: %(err)s"
#, python-format
msgid "Unable to deactivate storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось деактивировать пул памяти %(name)s. Сведения: %(err)s"
+msgstr "Не удалось деактивировать пул памяти %(name)s. Сведения: %(err)s"
#, python-format
msgid "Unable to delete storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось удалить пул памяти %(name)s. Сведения: %(err)s"
+msgstr "Не удалось удалить пул памяти %(name)s. Сведения: %(err)s"
#, python-format
msgid ""
"Unable to create NFS Pool as export path %(path)s may block during mount"
msgstr ""
-"Не удалось создать пул NFS: экспортированный путь %(path)s мог быть заблокирован во время монтирования"
+"Не удалось создать пул NFS: экспортированный путь %(path)s мог быть "
+"заблокирован во время монтирования"
#, python-format
msgid "Unable to create NFS Pool as export path %(path)s mount failed"
msgstr ""
-"Не удалось создать пул NFS: не удалось смонтировать экспортированный путь %(path)s"
+"Не удалось создать пул NFS: не удалось смонтировать экспортированный путь "
+"%(path)s"
#, python-format
msgid "Unsupported storage pool type: %(type)s"
-msgstr ""
-"Неподдерживаемый тип пула памяти: %(type)s"
+msgstr "Неподдерживаемый тип пула памяти: %(type)s"
#, python-format
msgid "Error while retrieving storage pool XML to %(pool)s"
-msgstr ""
-"Ошибка получения XML пула памяти для %(pool)s"
+msgstr "Ошибка получения XML пула памяти для %(pool)s"
msgid "Storage pool name must be a string without slashes (/)"
-msgstr ""
-"Имя пула памяти должно быть строкой без символов косой черты (/)"
+msgstr "Имя пула памяти должно быть строкой без символов косой черты (/)"
msgid ""
"Supported storage pool types are dir, netfs, logical, iscsi, isci and kimchi-"
@@ -719,65 +629,53 @@ msgstr ""
"iso"
msgid "Storage pool path must be a string"
-msgstr ""
-"Путь к пулу памяти должен быть строкой"
+msgstr "Путь к пулу памяти должен быть строкой"
msgid "Storage pool host must be a IP or hostname"
-msgstr ""
-"Хост пула памяти должен быть IP-адресом или именем хоста"
+msgstr "Хост пула памяти должен быть IP-адресом или именем хоста"
msgid "Storage pool device must be the absolute path to the block device"
msgstr ""
"Устройство пула памяти должно быть абсолютным путем к блочному устройству"
msgid "Storage pool devices parameter must be a list"
-msgstr ""
-"Параметр устройств пула памяти должен быть списком"
+msgstr "Параметр устройств пула памяти должен быть списком"
msgid "Target IQN of an iSCSI pool must be a string"
-msgstr ""
-"Целевой IQN пула iSCSI должен быть строкой"
+msgstr "Целевой IQN пула iSCSI должен быть строкой"
msgid "Port of a remote storage server must be an integer between 1 and 65535"
-msgstr ""
-"Порт удаленного сервера памяти должен быть целым числом от 1 до 65535"
+msgstr "Порт удаленного сервера памяти должен быть целым числом от 1 до 65535"
msgid "iSCSI target username must be a string"
-msgstr ""
-"Имя пользователя целевого объекта iSCSI должно быть строкой"
+msgstr "Имя пользователя целевого объекта iSCSI должно быть строкой"
msgid "iSCSI target password must be a string"
-msgstr ""
-"Пароль целевого объекта iSCSI должен быть строкой"
+msgstr "Пароль целевого объекта iSCSI должен быть строкой"
msgid "Specify name and type to create a storage pool"
-msgstr ""
-"Укажите имя и тип для создания пула памяти"
+msgstr "Укажите имя и тип для создания пула памяти"
#, python-format
msgid ""
"%(disk)s is not a valid disk/partition. Could not add it to the pool "
"%(pool)s."
msgstr ""
-"%(disk)s не является допустимым диском/разделом. Его не удалось добавить в пул "
-"%(pool)s."
+"%(disk)s не является допустимым диском/разделом. Его не удалось добавить в "
+"пул %(pool)s."
#, python-format
msgid "Unable to extend logical pool %(pool)s. Details: %(err)s"
-msgstr ""
-"Не удалось расширить логический пул %(pool)s. Сведения: %(err)s"
+msgstr "Не удалось расширить логический пул %(pool)s. Сведения: %(err)s"
msgid "The parameter disks only can be updated for logical storage pool."
-msgstr ""
-"Диски параметров можно обновлять только для логического пула памяти."
+msgstr "Диски параметров можно обновлять только для логического пула памяти."
msgid "The SCSI host adapter name must be a string."
-msgstr ""
-"Имя адаптера хоста SCSI должно быть строкой."
+msgstr "Имя адаптера хоста SCSI должно быть строкой."
msgid "The storage pool kimchi_isos is reserved for internal use"
-msgstr ""
-"kimchi_isos пула памяти зарезервирован для внутреннего использования"
+msgstr "kimchi_isos пула памяти зарезервирован для внутреннего использования"
#, python-format
msgid ""
@@ -798,36 +696,33 @@ msgstr ""
#, python-format
msgid ""
"Unable to deactivate pool %(name)s as it is associated with some templates"
-msgstr ""
-"Не удалось деактивировать пул %(name)s: пул связан с шаблонами"
+msgstr "Не удалось деактивировать пул %(name)s: пул связан с шаблонами"
#, python-format
msgid "Unable to delete pool %(name)s as it is associated with some templates"
-msgstr ""
-"Не удалось удалить пул %(name)s: пул связан с шаблонами"
+msgstr "Не удалось удалить пул %(name)s: пул связан с шаблонами"
#, python-format
msgid ""
"A volume group named '%(name)s' already exists. Please, choose another name "
"to create the logical pool."
msgstr ""
-"Группа томов с именем '%(name)s' уже существует. Выберите другое имя "
-"для создания логического пула."
+"Группа томов с именем '%(name)s' уже существует. Выберите другое имя для "
+"создания логического пула."
#, python-format
msgid "Unable to update database with deep scan information due error: %(err)s"
msgstr ""
-"Не удалось обновить базу данных информацией глубокого сканирования из-за следующей ошибки: %(err)s"
+"Не удалось обновить базу данных информацией глубокого сканирования из-за "
+"следующей ошибки: %(err)s"
#, python-format
msgid "Storage volume %(name)s already exists"
-msgstr ""
-"Том памяти %(name)s уже существует"
+msgstr "Том памяти %(name)s уже существует"
#, python-format
msgid "Storage volume %(name)s does not exist in storage pool %(pool)s"
-msgstr ""
-"Том памяти %(name)s не существует в пуле памяти %(pool)s"
+msgstr "Том памяти %(name)s не существует в пуле памяти %(pool)s"
#, python-format
msgid ""
@@ -839,14 +734,12 @@ msgstr ""
#, python-format
msgid "Specify %(item)s in order to create storage volume %(volume)s"
-msgstr ""
-"Укажите %(item)s, чтобы создать том памяти %(volume)s"
+msgstr "Укажите %(item)s, чтобы создать том памяти %(volume)s"
#, python-format
msgid ""
"Unable to list storage volumes because storage pool %(pool)s is not active"
-msgstr ""
-"Не удалось вывести список томов: пул памяти %(pool)s неактивен"
+msgstr "Не удалось вывести список томов: пул памяти %(pool)s неактивен"
#, python-format
msgid ""
@@ -860,75 +753,65 @@ msgstr ""
msgid ""
"Unable to list storage volumes in storage pool %(pool)s. Details: %(err)s"
msgstr ""
-"Не удалось вывести список томов памяти в пуле памяти %(pool)s. Сведения: %(err)s"
+"Не удалось вывести список томов памяти в пуле памяти %(pool)s. Сведения: "
+"%(err)s"
#, python-format
msgid "Unable to wipe storage volumes %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось стереть тома памяти %(name)s. Сведения: %(err)s"
+msgstr "Не удалось стереть тома памяти %(name)s. Сведения: %(err)s"
#, python-format
msgid "Unable to delete storage volume %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось удалить том памяти %(name)s. Сведения: %(err)s"
+msgstr "Не удалось удалить том памяти %(name)s. Сведения: %(err)s"
#, python-format
msgid "Unable to resize storage volume %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось изменить размер тома памяти %(name)s. Сведения: %(err)s"
+msgstr "Не удалось изменить размер тома памяти %(name)s. Сведения: %(err)s"
#, python-format
msgid "Storage type %(type)s does not support volume create and delete"
-msgstr ""
-"Тип памяти %(type)s не поддерживает создание и удаление томов"
+msgstr "Тип памяти %(type)s не поддерживает создание и удаление томов"
msgid "Storage volume name must be a string"
-msgstr ""
-"Имя тома должно быть строкой"
+msgstr "Имя тома должно быть строкой"
msgid "Storage volume allocation must be an integer number"
-msgstr ""
-"Выделение тома должно быть целым числом"
+msgstr "Выделение тома должно быть целым числом"
msgid ""
"Storage volume format not supported. Valid formats: bochs, cloop, cow, dmg, "
"qcow, qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"Формат тома памяти не поддерживается. Допустимые форматы: bochs, cloop, cow, dmg, "
-"qcow, qcow2, qed, raw, vmdk, vpc."
+"Формат тома памяти не поддерживается. Допустимые форматы: bochs, cloop, cow, "
+"dmg, qcow, qcow2, qed, raw, vmdk, vpc."
msgid "Storage volume requires a volume name"
-msgstr ""
-"Тому требуется имя"
+msgstr "Тому требуется имя"
#, python-format
msgid ""
"Unable to update database with storage volume information due error: %(err)s"
msgstr ""
-"Не удалось обновить базу данных информацией о томах памяти из-за следующей ошибки: %(err)s"
+"Не удалось обновить базу данных информацией о томах памяти из-за следующей "
+"ошибки: %(err)s"
#, python-format
msgid "Only one of parameter %(param)s can be specified"
-msgstr ""
-"Можно указать только один параметр %(param)s"
+msgstr "Можно указать только один параметр %(param)s"
#, python-format
msgid "Create volume from %(param)s is not supported"
-msgstr ""
-"Создание тома из %(param)s не поддерживается"
+msgstr "Создание тома из %(param)s не поддерживается"
msgid "Storage volume capacity must be an integer number."
-msgstr ""
-"Емкость тома памяти должна быть целым числом."
+msgstr "Емкость тома памяти должна быть целым числом."
msgid "Storage volume URL must be http://, https://, ftp:// or ftps://."
-msgstr ""
-"URL тома памяти должен быть http://, https://, ftp:// или ftps://."
+msgstr "URL тома памяти должен быть http://, https://, ftp:// или ftps://."
#, python-format
msgid "Unable to access file %(url)s. Please, check it."
-msgstr ""
-"Нет доступа к файлу %(url)s. Проверьте его."
+msgstr "Нет доступа к файлу %(url)s. Проверьте его."
#, python-format
msgid ""
@@ -939,26 +822,23 @@ msgstr ""
"%(err)s"
msgid "Specify chunk data and its size to upload a file."
-msgstr ""
-"Укажите данные блока и его размер для передачи файла."
+msgstr "Укажите данные блока и его размер для передачи файла."
msgid "In order to upload a storage volume, specify the 'upload' parameter."
-msgstr ""
-"Для передачи тома памяти укажите параметр upload."
+msgstr "Для передачи тома памяти укажите параметр upload."
msgid ""
"Unable to upload chunk data as it does not match with requested chunk size."
msgstr ""
-"Не удалось передать данные блока, поскольку они не соответствуют запрошенному размеру блока."
+"Не удалось передать данные блока, поскольку они не соответствуют "
+"запрошенному размеру блока."
#, python-format
msgid "The storage volume %(vol)s is not under an upload process."
-msgstr ""
-"Том памяти %(vol)s не находится в процессе передачи."
+msgstr "Том памяти %(vol)s не находится в процессе передачи."
msgid "The upload chunk data will exceed the storage volume size."
-msgstr ""
-"Данные блока передачи превысят размер тома памяти."
+msgstr "Данные блока передачи превысят размер тома памяти."
#, python-format
msgid "Unable to upload chunk data to storage volume. Details: %(err)s."
@@ -967,23 +847,19 @@ msgstr ""
#, python-format
msgid "Interface %(name)s does not exist"
-msgstr ""
-"Интерфейс %(name)s не существует"
+msgstr "Интерфейс %(name)s не существует"
#, python-format
msgid "Network %(name)s already exists"
-msgstr ""
-"Сеть %(name)s уже существует"
+msgstr "Сеть %(name)s уже существует"
#, python-format
msgid "Network %(name)s does not exist"
-msgstr ""
-"Сеть %(name)s не существует"
+msgstr "Сеть %(name)s не существует"
#, python-format
msgid "Subnet %(subnet)s specified for network %(network)s is not valid."
-msgstr ""
-"Подсеть %(subnet)s, указанная для сети %(network)s, недопустима."
+msgstr "Подсеть %(subnet)s, указанная для сети %(network)s, недопустима."
#, python-format
msgid "Specify a network interface to create bridged network %(name)s"
@@ -992,72 +868,64 @@ msgstr ""
#, python-format
msgid "Unable to delete active network %(name)s"
-msgstr ""
-"Не удалось удалить активную сеть %(name)s"
+msgstr "Не удалось удалить активную сеть %(name)s"
#, python-format
msgid "Interface %(iface)s specified for network %(network)s is already in use"
-msgstr ""
-"Интерфейс %(iface)s, указанный для сети %(network)s, уже используется"
+msgstr "Интерфейс %(iface)s, указанный для сети %(network)s, уже используется"
msgid "Interface should be bare NIC, bonding or bridge device."
msgstr ""
-"Интерфейс должен быть сетевой картой, устройством моста или связующим устройством."
+"Интерфейс должен быть сетевой картой, устройством моста или связующим "
+"устройством."
#, python-format
msgid "Unable to create network %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось создать сеть %(name)s. Сведения: %(err)s"
+msgstr "Не удалось создать сеть %(name)s. Сведения: %(err)s"
#, python-format
msgid "Unable to find a free IP address for network '%(name)s'"
-msgstr ""
-"Не найден свободный IP-адрес для сети %(name)s"
+msgstr "Не найден свободный IP-адрес для сети %(name)s"
#, python-format
msgid "The interface %(iface)s already exists."
-msgstr ""
-"Интерфейс %(iface)s уже существует."
+msgstr "Интерфейс %(iface)s уже существует."
msgid "Network name must be a string without slashes (/) or quotes (\")"
msgstr ""
"Имя сети должно быть строкой без символов косой черты (/) и кавычек (\")"
msgid "Supported network types are isolated, NAT and bridge"
-msgstr ""
-"Поддерживаемые типы сетей: isolated, NAT и bridge"
+msgstr "Поддерживаемые типы сетей: isolated, NAT и bridge"
msgid "Network subnet must be a string with IP address and prefix or netmask"
msgstr ""
"Подсеть сети должна быть строкой, содержащей IP-адрес, префикс или маску сети"
msgid "Network interface must be a string"
-msgstr ""
-"Сетевой интерфейс должен быть строкой"
+msgstr "Сетевой интерфейс должен быть строкой"
msgid "Network VLAN ID must be an integer between 1 and 4094"
-msgstr ""
-"Сетевой ИД VLAN должен быть целым числом от 1 до 4094"
+msgstr "Сетевой ИД VLAN должен быть целым числом от 1 до 4094"
msgid "Specify name and type to create a Network"
-msgstr ""
-"Укажите имя и тип для создания сети"
+msgstr "Укажите имя и тип для создания сети"
#, python-format
msgid ""
"Unable to delete network %(name)s. There are some virtual machines %(vms)s "
"and/or templates linked to this network."
msgstr ""
-"Не удалось удалить сеть %(name)s. Есть виртуальные машины %(vms)s "
-"или шаблоны, связанные с данной сетью."
+"Не удалось удалить сеть %(name)s. Есть виртуальные машины %(vms)s или "
+"шаблоны, связанные с данной сетью."
#, python-format
msgid ""
"Unable to deactivate network %(name)s. There are some virtual machines "
"%(vms)s and/or templates linked to this network."
msgstr ""
-"Не удалось деактивировать сеть %(name)s. Есть виртуальные машины "
-"%(vms)s или шаблоны, связанные с данной сетью."
+"Не удалось деактивировать сеть %(name)s. Есть виртуальные машины %(vms)s или "
+"шаблоны, связанные с данной сетью."
#, python-format
msgid "Bridge device %(name)s can not be the trunk device of a VLAN."
@@ -1066,124 +934,103 @@ msgstr ""
#, python-format
msgid "Failed to activate interface %(iface)s: %(err)s."
-msgstr ""
-"Не удалось активировать интерфейс %(iface)s: %(err)s."
+msgstr "Не удалось активировать интерфейс %(iface)s: %(err)s."
#, python-format
msgid ""
"Failed to activate interface %(iface)s. Please check the physical link "
"status."
msgstr ""
-"Не удалось активировать интерфейс %(iface)s. Проверьте физическую линию связи "
-""
+"Не удалось активировать интерфейс %(iface)s. Проверьте физическую линию "
+"связи "
#, python-format
msgid "Failed to start network %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось запустить сеть %(name)s. Сведения: %(err)s"
+msgstr "Не удалось запустить сеть %(name)s. Сведения: %(err)s"
#, python-format
msgid "Debug report %(name)s does not exist"
-msgstr ""
-"Отладочный отчет %(name)s не существует"
+msgstr "Отладочный отчет %(name)s не существует"
msgid "Debug report tool not found in system"
-msgstr ""
-"Инструмент отладочного отчета не найден в системе"
+msgstr "Инструмент отладочного отчета не найден в системе"
#, python-format
msgid "Unable to create debug report %(name)s. Details: %(err)s."
-msgstr ""
-"Не удалось создать отладочный отчет %(name)s. Сведения: %(err)s."
+msgstr "Не удалось создать отладочный отчет %(name)s. Сведения: %(err)s."
#, python-format
msgid "Can not find any debug report with the given name %(name)s"
-msgstr ""
-"Не найден отладочный отчет с именем %(name)s"
+msgstr "Не найден отладочный отчет с именем %(name)s"
#, python-format
msgid "Unable to generate debug report %(name)s. Details: %(err)s"
-msgstr ""
-"Не удалось создать отладочный отчет %(name)s. Сведения: %(err)s"
+msgstr "Не удалось создать отладочный отчет %(name)s. Сведения: %(err)s"
msgid "You should give a name for the debug report file."
-msgstr ""
-"Необходимо присвоить имя файлу отладочного отчета."
+msgstr "Необходимо присвоить имя файлу отладочного отчета."
msgid ""
"Debug report name must be a string. Only letters, digits, underscore ('_') "
"and hyphen ('-') are allowed."
msgstr ""
-"Имя отладочного отчета должно быть строкой. Только буквы, цифры, подчеркивание ('_') "
-"и дефис ('-') допустимы."
+"Имя отладочного отчета должно быть строкой. Только буквы, цифры, "
+"подчеркивание ('_') и дефис ('-') допустимы."
#, python-format
msgid ""
"The debug report with specified name \"%(name)s\" already exists. Please use "
"another one."
msgstr ""
-"Отладочный отчет с именем \"%(name)s\" уже существует. Укажите "
-"другое имя."
+"Отладочный отчет с именем \"%(name)s\" уже существует. Укажите другое имя."
#, python-format
msgid "Storage server %(server)s was not used by Kimchi"
-msgstr ""
-"Сервер памяти %(server)s не использовался Kimchi"
+msgstr "Сервер памяти %(server)s не использовался Kimchi"
#, python-format
msgid "Distro '%(name)s' does not exist"
-msgstr ""
-"Вариант ОС '%(name)s' не существует"
+msgstr "Вариант ОС '%(name)s' не существует"
#, python-format
msgid "Partition %(name)s does not exist in the host"
-msgstr ""
-"Раздел %(name)s не существует на хосте"
+msgstr "Раздел %(name)s не существует на хосте"
msgid "Unable to shutdown host machine as there are running virtual machines"
msgstr ""
"Не удалось завершить работу системы хоста: выполняются виртуальные машины"
msgid "Unable to reboot host machine as there are running virtual machines"
-msgstr ""
-"Не удалось перезагрузить систему хоста: выполняются виртуальные машины"
+msgstr "Не удалось перезагрузить систему хоста: выполняются виртуальные машины"
#, python-format
msgid "Node device '%(name)s' not found"
-msgstr ""
-"Устройство узла '%(name)s' не найдено"
+msgstr "Устройство узла '%(name)s' не найдено"
msgid "Conflicting flag filters specified."
-msgstr ""
-"Фильтры конфликтующих меток указаны."
+msgstr "Фильтры конфликтующих меток указаны."
msgid "No packages marked for update"
-msgstr ""
-"Нет пакетов, помеченных для обновления"
+msgstr "Нет пакетов, помеченных для обновления"
#, python-format
msgid "Package %(name)s is not marked to be updated."
-msgstr ""
-"Пакет %(name)s не помечен для обновления."
+msgstr "Пакет %(name)s не помечен для обновления."
#, python-format
msgid "Error while getting packages marked to be updated. Details: %(err)s"
-msgstr ""
-"Ошибка получения пакетов, помеченных для обновления. Сведения: %(err)s"
+msgstr "Ошибка получения пакетов, помеченных для обновления. Сведения: %(err)s"
msgid "There is no compatible package manager for this system."
-msgstr ""
-"Нет совместимого администратора пакетов для этой системы."
+msgstr "Нет совместимого администратора пакетов для этой системы."
#, python-format
msgid "Unable to find %(item)s in datastore"
-msgstr ""
-"Не найден %(item)s в хранилище данных"
+msgstr "Не найден %(item)s в хранилище данных"
#, python-format
msgid "Invalid URI %(uri)s"
-msgstr ""
-"Недопустимый URI %(uri)s"
+msgstr "Недопустимый URI %(uri)s"
#, python-format
msgid "Timeout while running command '%(cmd)s' after %(seconds)s seconds"
@@ -1191,31 +1038,27 @@ msgstr ""
"Истек тайм-аут во время выполнения команды '%(cmd)s' через %(seconds)s с"
msgid "Unable to choose a virtual machine name"
-msgstr ""
-"Не удалось выбрать имя виртуальной машины"
+msgstr "Не удалось выбрать имя виртуальной машины"
#, python-format
msgid "Invalid data value '%(value)s'"
-msgstr ""
-"Недопустимое значение данных '%(value)s'"
+msgstr "Недопустимое значение данных '%(value)s'"
#, python-format
msgid "Invalid data unit '%(unit)s'"
-msgstr ""
-"Недопустимая единица измерения данных '%(unit)s'"
+msgstr "Недопустимая единица измерения данных '%(unit)s'"
msgid "Invalid storage type. Types supported: 'cdrom', 'disk'"
-msgstr ""
-"Недопустимый тип памяти. Поддерживаемые типы: 'cdrom', 'disk'"
+msgstr "Недопустимый тип памяти. Поддерживаемые типы: 'cdrom', 'disk'"
#, python-format
msgid "The path '%(value)s' is not a valid local/remote path for the device"
msgstr ""
-"Путь '%(value)s' не является допустимым локальным/удаленным путем для устройства"
+"Путь '%(value)s' не является допустимым локальным/удаленным путем для "
+"устройства"
msgid "Only CDROM path can be update."
-msgstr ""
-"Можно изменить только путь к CDROM."
+msgstr "Можно изменить только путь к CDROM."
#, python-format
msgid ""
@@ -1227,70 +1070,64 @@ msgstr ""
#, python-format
msgid "Error while creating new storage device: %(error)s"
-msgstr ""
-"Ошибка создания устройства хранения: %(error)s"
+msgstr "Ошибка создания устройства хранения: %(error)s"
#, python-format
msgid "Error while updating storage device: %(error)s"
-msgstr ""
-"Ошибка обновления устройства хранения: %(error)s"
+msgstr "Ошибка обновления устройства хранения: %(error)s"
#, python-format
msgid "Error while removing storage device: %(error)s"
-msgstr ""
-"Ошибка удаления устройства хранения: %(error)s"
+msgstr "Ошибка удаления устройства хранения: %(error)s"
msgid "Do not support IDE device hot plug"
-msgstr ""
-"Не поддерживается оперативное подключение устройств IDE"
+msgstr "Не поддерживается оперативное подключение устройств IDE"
msgid ""
"Specify type and path or type and pool/volume to add a new virtual machine "
"disk"
msgstr ""
-"Укажите тип и путь, либо тип и пул/том для добавления нового диска виртуальной "
-"машины"
+"Укажите тип и путь, либо тип и пул/том для добавления нового диска "
+"виртуальной машины"
msgid "Specify path to update virtual machine disk"
-msgstr ""
-"Укажите путь для обновления диска виртуальной машины"
+msgstr "Укажите путь для обновления диска виртуальной машины"
#, python-format
msgid "Controller type %(type)s limitation of %(limit)s devices reached"
msgstr ""
-"Достигнуто ограничение на число устройств (%(limit)s) для типа контроллера %(type)s"
+"Достигнуто ограничение на число устройств (%(limit)s) для типа контроллера "
+"%(type)s"
#, python-format
msgid "Cannot retrieve disk path information for given pool/volume: %(error)s"
msgstr ""
-"Не удалось получить информацию о пути к диску для данного пула/тома: %(error)s"
+"Не удалось получить информацию о пути к диску для данного пула/тома: "
+"%(error)s"
msgid "Volume already in use by other virtual machine."
-msgstr ""
-"Том уже используется другой виртуальной машиной."
+msgstr "Том уже используется другой виртуальной машиной."
msgid ""
"Only one of path or pool/volume can be specified to add a new virtual "
"machine disk"
msgstr ""
-"При добавлении нового диска виртуальной машины укажите либо путь, "
-"либо пул и том"
+"При добавлении нового диска виртуальной машины укажите либо путь, либо пул и "
+"том"
#, python-format
msgid ""
"Volume chosen with format %(format)s does not fit in the storage type "
"%(type)s"
msgstr ""
-"Выбранный том с форматом %(format)s не подходит для типа памяти "
-"%(type)s"
+"Выбранный том с форматом %(format)s не подходит для типа памяти %(type)s"
msgid "YUM Repository ID must be one word only string."
msgstr ""
"ИД хранилища YUM должен быть строкой, состоящей только из одного слова."
msgid "Repository URL must be an http://, ftp:// or file:// URL."
-msgstr ""
-"URL хранилища должен быть http://, ftp:// или file:// ."
+msgstr "URL хранилища должен быть http://, ftp:// или file:// ."
msgid ""
"Repository configuration is a dictionary with specific values according to "
@@ -1300,42 +1137,35 @@ msgstr ""
"типом хранилища."
msgid "Distribution to DEB repository must be a string"
-msgstr ""
-"Вариант для хранилища DEB должен быть строкой"
+msgstr "Вариант для хранилища DEB должен быть строкой"
msgid "Components to DEB repository must be listed in a array"
-msgstr ""
-"Компоненты для хранилища DEB должны быть перечислены в массиве"
+msgstr "Компоненты для хранилища DEB должны быть перечислены в массиве"
msgid "Components to DEB repository must be a string"
-msgstr ""
-"Компоненты для хранилища DEB должны быть строкой"
+msgstr "Компоненты для хранилища DEB должны быть строкой"
msgid "Mirror list to repository must be a string"
-msgstr ""
-"Список зеркальных копий для хранилища должен быть строкой"
+msgstr "Список зеркальных копий для хранилища должен быть строкой"
msgid "YUM Repository name must be string."
-msgstr ""
-"Имя хранилища YUM должно быть строкой."
+msgstr "Имя хранилища YUM должно быть строкой."
msgid "GPG check must be a boolean value."
-msgstr ""
-"Проверка GPG должна быть булевским значением."
+msgstr "Проверка GPG должна быть булевским значением."
msgid "GPG key must be a URL pointing to the ASCII-armored file."
msgstr ""
-"Ключ GPG должен быть URL, указывающим на защищенный файл с кодированием ASCII."
+"Ключ GPG должен быть URL, указывающим на защищенный файл с кодированием "
+"ASCII."
#, python-format
msgid "Could not update repository %(repo_id)s."
-msgstr ""
-"Не удалось обновить хранилище %(repo_id)s."
+msgstr "Не удалось обновить хранилище %(repo_id)s."
#, python-format
msgid "Repository %(repo_id)s does not exist."
-msgstr ""
-"Хранилище %(repo_id)s не существует."
+msgstr "Хранилище %(repo_id)s не существует."
msgid ""
"Specify repository base URL, mirror list or metalink in order to create or "
@@ -1345,70 +1175,56 @@ msgstr ""
"изменения хранилища YUM."
msgid "Repository management tool was not recognized for your system."
-msgstr ""
-"Не распознан инструмент управления хранилищем для системы."
+msgstr "Не распознан инструмент управления хранилищем для системы."
#, python-format
msgid "Repository %(repo_id)s is already enabled."
-msgstr ""
-"Хранилище %(repo_id)s уже включено."
+msgstr "Хранилище %(repo_id)s уже включено."
#, python-format
msgid "Repository %(repo_id)s is already disabled."
-msgstr ""
-"Хранилище %(repo_id)s уже выключено."
+msgstr "Хранилище %(repo_id)s уже выключено."
#, python-format
msgid "Could not remove repository %(repo_id)s."
-msgstr ""
-"Не удалось удалить хранилище %(repo_id)s."
+msgstr "Не удалось удалить хранилище %(repo_id)s."
#, python-format
msgid "Could not write repository configuration file %(repo_file)s"
-msgstr ""
-"Не удалось записать в файл конфигурации хранилища %(repo_file)s"
+msgstr "Не удалось записать в файл конфигурации хранилища %(repo_file)s"
msgid "Specify repository distribution in order to create a DEB repository."
-msgstr ""
-"Укажите вариант хранилища для создания хранилища DEB."
+msgstr "Укажите вариант хранилища для создания хранилища DEB."
#, python-format
msgid "Could not enable repository %(repo_id)s."
-msgstr ""
-"Не удалось включить хранилище %(repo_id)s."
+msgstr "Не удалось включить хранилище %(repo_id)s."
#, python-format
msgid "Could not disable repository %(repo_id)s."
-msgstr ""
-"Не удалось выключить хранилище %(repo_id)s."
+msgstr "Не удалось выключить хранилище %(repo_id)s."
msgid "YUM Repository ID already exists"
-msgstr ""
-"ИД хранилища YUM уже существует"
+msgstr "ИД хранилища YUM уже существует"
msgid "YUM Repository name must be a string"
-msgstr ""
-"Имя хранилища YUM должно быть строкой"
+msgstr "Имя хранилища YUM должно быть строкой"
#, python-format
msgid "Unable to list repositories. Details: '%(err)s'"
-msgstr ""
-"Не удалось вывести список хранилищ. Сведения: %(err)s"
+msgstr "Не удалось вывести список хранилищ. Сведения: %(err)s"
#, python-format
msgid "Unable to retrieve repository information. Details: '%(err)s'"
-msgstr ""
-"Не удалось получить информацию хранилища. Сведения: %(err)s"
+msgstr "Не удалось получить информацию хранилища. Сведения: %(err)s"
#, python-format
msgid "Unable to add repository. Details: '%(err)s'"
-msgstr ""
-"Не удалось добавить хранилище. Сведения: %(err)s"
+msgstr "Не удалось добавить хранилище. Сведения: %(err)s"
#, python-format
msgid "Unable to remove repository. Details: '%(err)s'"
-msgstr ""
-"Не удалось удалить хранилище. Сведения: %(err)s"
+msgstr "Не удалось удалить хранилище. Сведения: %(err)s"
#, python-format
msgid ""
@@ -1417,26 +1233,25 @@ msgstr ""
"Элементы конфигурации '%(items)s' не поддерживаются администратором хранилища"
msgid "Repository metalink must be an http://, ftp:// or file:// URL."
-msgstr ""
-"Метассылка хранилища должна быть URL http://, ftp:// или file://."
+msgstr "Метассылка хранилища должна быть URL http://, ftp:// или file://."
msgid "Cannot specify mirrorlist and metalink at the same time."
-msgstr ""
-"Список зеркал и метассылку нельзя указывать одновременно."
+msgstr "Список зеркал и метассылку нельзя указывать одновременно."
#, python-format
msgid ""
"Virtual machine '%(vm)s' must be stopped before creating a snapshot of it."
msgstr ""
-"Виртуальная машина '%(vm)s' должна быть остановлена перед созданием ее моментальной копии."
+"Виртуальная машина '%(vm)s' должна быть остановлена перед созданием ее "
+"моментальной копии."
#, python-format
msgid ""
"Unable to create snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Не удалось создать моментальную копию '%(name)s' виртуальной машины '%(vm)s'. Сведения: "
-"%(err)s"
+"Не удалось создать моментальную копию '%(name)s' виртуальной машины "
+"'%(vm)s'. Сведения: %(err)s"
#, python-format
msgid "Snapshot '%(name)s' does not exist on virtual machine '%(vm)s'."
@@ -1448,608 +1263,478 @@ msgid ""
"Unable to retrieve snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Не удалось получить моментальную копию '%(name)s' виртуальной машины '%(vm)s'. Сведения: "
-"%(err)s"
+"Не удалось получить моментальную копию '%(name)s' виртуальной машины "
+"'%(vm)s'. Сведения: %(err)s"
#, python-format
msgid "Unable to list snapshots on virtual machine '%(vm)s'. Details: %(err)s"
msgstr ""
-"Не удалось вывести список моментальных копий виртуальной машины '%(vm)s'. Сведения: %(err)s"
+"Не удалось вывести список моментальных копий виртуальной машины '%(vm)s'. "
+"Сведения: %(err)s"
#, python-format
msgid ""
"Unable to delete snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Не удалось удалить моментальную копию '%(name)s' виртуальной машины '%(vm)s'. Сведения: "
-"%(err)s"
+"Не удалось удалить моментальную копию '%(name)s' виртуальной машины "
+"'%(vm)s'. Сведения: %(err)s"
#, python-format
msgid ""
"Unable to retrieve current snapshot of virtual machine '%(vm)s'. Details: "
"%(err)s"
msgstr ""
-"Не удалось получить текущую моментальную копию виртуальной машины '%(vm)s'. Сведения: "
-"%(err)s"
+"Не удалось получить текущую моментальную копию виртуальной машины '%(vm)s'. "
+"Сведения: %(err)s"
#, python-format
msgid ""
"Unable to revert virtual machine '%(vm)s' to snapshot '%(name)s'. Details: "
"%(err)s"
msgstr ""
-"Не удалось восстановить состояние виртуальной машины '%(vm)s' из моментальной копии '%(name)s'. Сведения: "
-"%(err)s"
+"Не удалось восстановить состояние виртуальной машины '%(vm)s' из "
+"моментальной копии '%(name)s'. Сведения: %(err)s"
#, python-format
msgid ""
"Unable to create snapshot of virtual machine '%(vm)s' because it contains a "
"disk with format '%(format)s'; only 'qcow2' is supported."
msgstr ""
-"Не удалось создать моментальную копию виртуальной машины '%(vm)s', поскольку она содержит "
-"диск в формате %(format)s. Поддерживается только формат qcow2."
+"Не удалось создать моментальную копию виртуальной машины '%(vm)s', поскольку "
+"она содержит диск в формате %(format)s. Поддерживается только формат qcow2."
msgid "The number of vCPUs is too large for this system."
-msgstr ""
-"Число виртуальных процессоров слишком велико для этой системы."
+msgstr "Число виртуальных процессоров слишком велико для этой системы."
msgid "Invalid vCPU/topology combination."
-msgstr ""
-"Недопустимое сочетание виртуальных процессоров и топологии."
+msgstr "Недопустимое сочетание виртуальных процессоров и топологии."
msgid "This host (or current configuration) does not allow CPU topology."
msgstr ""
-"На этом хосте (или в текущей конфигурации) не разрешена топология процессоров."
+"На этом хосте (или в текущей конфигурации) не разрешена топология "
+"процессоров."
msgid "ERROR CODE"
-msgstr ""
-"Код ошибки"
+msgstr "Код ошибки"
msgid "REASON"
-msgstr ""
-"ПРИЧИНА"
+msgstr "ПРИЧИНА"
msgid "STACK"
-msgstr ""
-"Стек"
+msgstr "Стек"
msgid "Go to Homepage"
-msgstr ""
-"Перейти на домашнюю страницу"
+msgstr "Перейти на домашнюю страницу"
msgid "Create a New Virtual Machine"
-msgstr ""
-"Создать новую виртуальную машину"
+msgstr "Создать новую виртуальную машину"
msgid "Virtual Machine Name"
-msgstr ""
-"Имя виртуальной машины"
+msgstr "Имя виртуальной машины"
msgid ""
"The name used to identify the virtual machine. If omitted, a name will be "
"chosen based on the template used."
msgstr ""
-"Имя для идентификации виртуальной машины. Если не указано, имя будет "
-"выбрано в зависимости от используемого шаблона."
+"Имя для идентификации виртуальной машины. Если не указано, имя будет выбрано "
+"в зависимости от используемого шаблона."
msgid "Template"
-msgstr ""
-"Шаблон"
+msgstr "Шаблон"
msgid "Please create a template first."
-msgstr ""
-"Сначала создайте шаблон."
+msgstr "Сначала создайте шаблон."
msgid "Create a Template"
-msgstr ""
-"Создать шаблон"
+msgstr "Создать шаблон"
msgid "Please choose a template."
-msgstr ""
-"Выберите шаблон."
+msgstr "Выберите шаблон."
msgid "OS"
-msgstr ""
-"ОС"
+msgstr "ОС"
msgid "OS Version"
-msgstr ""
-"Версия ОС"
+msgstr "Версия ОС"
msgid "CPUS"
-msgstr ""
-"Процессоры"
+msgstr "Процессоры"
msgid "Memory"
-msgstr ""
-"Память"
+msgstr "Память"
msgid "Create"
-msgstr ""
-"Создать"
+msgstr "Создать"
msgid "Creating..."
-msgstr ""
-"Создание..."
+msgstr "Создание..."
msgid "Edit Guest"
-msgstr ""
-"Изменить гостевую систему"
+msgstr "Изменить гостевую систему"
msgid "General"
-msgstr ""
-"Общие"
+msgstr "Общие"
msgid "Storage"
-msgstr ""
-"Дисковая память"
+msgstr "Дисковая память"
msgid "Interface"
-msgstr ""
-"Интерфейс"
+msgstr "Интерфейс"
msgid "Permission"
-msgstr ""
-"Права доступа"
+msgstr "Права доступа"
msgid "Host PCI Device"
-msgstr ""
-"Устройство PCI хоста"
+msgstr "Устройство PCI хоста"
msgid "Snapshot"
-msgstr ""
-"Моментальная копия"
+msgstr "Моментальная копия"
msgid "Name"
-msgstr ""
-"Имя"
+msgstr "Имя"
msgid "CPUs"
-msgstr ""
-"Процессоры"
+msgstr "Процессоры"
msgid "Memory (MB)"
-msgstr ""
-"Объем памяти (МБ)"
+msgstr "Объем памяти (МБ)"
msgid "Icon"
-msgstr ""
-"Значок"
+msgstr "Значок"
msgid "Device"
-msgstr ""
-"Устройство"
+msgstr "Устройство"
msgid "Path"
-msgstr ""
-"Путь"
+msgstr "Путь"
msgid "Network"
-msgstr ""
-"Сеть"
+msgstr "Сеть"
msgid "Type"
-msgstr ""
-"Тип"
+msgstr "Тип"
msgid "MAC Address"
-msgstr ""
-"MAC-адрес"
+msgstr "MAC-адрес"
msgid "Available system users and groups"
-msgstr ""
-"Доступные системные пользователи и группы"
+msgstr "Доступные системные пользователи и группы"
msgid "Selected system users and groups"
-msgstr ""
-"Выбранные системные пользователи и группы"
+msgstr "Выбранные системные пользователи и группы"
msgid "User"
-msgstr ""
-"Пользователь"
+msgstr "Пользователь"
msgid "All"
-msgstr ""
-"Все"
+msgstr "Все"
msgid "To Add"
-msgstr ""
-"Добавить"
+msgstr "Добавить"
msgid "Added"
-msgstr ""
-"Добавлено"
+msgstr "Добавлено"
msgid "filter"
-msgstr ""
-"фильтр"
+msgstr "фильтр"
msgid "Product"
-msgstr ""
-"Продукт"
+msgstr "Продукт"
msgid "Vendor"
-msgstr ""
-"Вендор"
+msgstr "Вендор"
msgid "Created"
-msgstr ""
-"Дата создания"
+msgstr "Дата создания"
msgid "Save"
-msgstr ""
-"Сохранить"
+msgstr "Сохранить"
msgid "Replace"
-msgstr ""
-"Заменить"
+msgstr "Заменить"
msgid "Detach"
-msgstr ""
-"Отключить"
+msgstr "Отключить"
msgid "Cancel"
-msgstr ""
-"Отмена"
+msgstr "Отмена"
msgid "revert"
-msgstr ""
-"восстановить"
+msgstr "восстановить"
msgid "Add a Storage Device to VM"
-msgstr ""
-"Добавить устройство хранения в VM"
+msgstr "Добавить устройство хранения в VM"
msgid "Device Type"
-msgstr ""
-"Тип устройства"
+msgstr "Тип устройства"
msgid "The device type. Currently, \"cdrom\" and \"disk\" are supported."
-msgstr ""
-"Тип устройства. В данный момент поддерживается \"cdrom\" и \"disk\"."
+msgstr "Тип устройства. В данный момент поддерживается \"cdrom\" и \"disk\"."
msgid "Storage Pool"
-msgstr ""
-"Пул памяти"
+msgstr "Пул памяти"
msgid "Storage pool which volume located in"
-msgstr ""
-"Том пула памяти находится в"
+msgstr "Том пула памяти находится в"
msgid "Storage Volume"
-msgstr ""
-"Том памяти"
+msgstr "Том памяти"
msgid "Storage volume to be attached"
-msgstr ""
-"Том подключен"
+msgstr "Том подключен"
msgid "File Path"
-msgstr ""
-"Путь к файлу"
+msgstr "Путь к файлу"
msgid "The ISO file path in the server for CDROM."
-msgstr ""
-"Путь к файлу ISO для CDROM на сервере."
+msgstr "Путь к файлу ISO для CDROM на сервере."
msgid "Attach"
-msgstr ""
-"Подключить"
+msgstr "Подключить"
msgid "Start"
-msgstr ""
-"Запустить"
+msgstr "Запустить"
msgid "Reset"
-msgstr ""
-"Сброс"
+msgstr "Сброс"
msgid "Pause"
-msgstr ""
-"Приостановить"
+msgstr "Приостановить"
msgid "Resume"
-msgstr ""
-"Возобновить"
+msgstr "Возобновить"
msgid "Power Off"
-msgstr ""
-"Выключить питание"
+msgstr "Выключить питание"
msgid "Actions"
-msgstr ""
-"Действия"
+msgstr "Действия"
msgid "Connect"
-msgstr ""
-"Подключить"
+msgstr "Подключить"
msgid "Clone"
-msgstr ""
-"Дублировать"
+msgstr "Дублировать"
msgid "Edit"
-msgstr ""
-"Изменить"
+msgstr "Изменить"
msgid "Shut Down"
-msgstr ""
-"Завершить работу"
+msgstr "Завершить работу"
msgid "Delete"
-msgstr ""
-"Удалить"
+msgstr "Удалить"
msgid "The username or password you entered is incorrect. Please try again."
-msgstr ""
-"Указано неверное имя пользователя или пароль. Введите еще раз."
+msgstr "Указано неверное имя пользователя или пароль. Введите еще раз."
msgid "This field is required."
-msgstr ""
-"Это обязательное поле."
+msgstr "Это обязательное поле."
msgid "Log in"
-msgstr ""
-"Вход в систему"
+msgstr "Вход в систему"
msgid "Logging in..."
-msgstr ""
-"Вход..."
+msgstr "Вход..."
msgid "Host"
-msgstr ""
-"Хост"
+msgstr "Хост"
msgid "Guests"
-msgstr ""
-"Гостевые системы"
+msgstr "Гостевые системы"
msgid "Templates"
-msgstr ""
-"Шаблоны"
+msgstr "Шаблоны"
msgid "Failed to get application configuration"
-msgstr ""
-"Не удалось получить конфигурацию приложения"
+msgstr "Не удалось получить конфигурацию приложения"
msgid "This is not a valid Linux path"
-msgstr ""
-"Этот недопустимый путь в Linux"
+msgstr "Этот недопустимый путь в Linux"
msgid "This is not a valid URL."
-msgstr ""
-"Это недопустимый URL."
+msgstr "Это недопустимый URL."
msgid "No such data available."
-msgstr ""
-"Нет таких данных."
+msgstr "Нет таких данных."
msgid ""
"Can not contact the host system. Verify the host system is up and that you "
"have network connectivity to it. HTTP request response %1. "
msgstr ""
-"Нет связи с системой хоста. Убедитесь, что система хоста работает и "
-"доступна для подключения. Ответ на запрос HTTP: %1. "
+"Нет связи с системой хоста. Убедитесь, что система хоста работает и доступна "
+"для подключения. Ответ на запрос HTTP: %1. "
msgid "Unable to read file."
-msgstr ""
-"Не удалось прочитать файл."
+msgstr "Не удалось прочитать файл."
msgid "Error while uploading file."
-msgstr ""
-"Ошибка передачи файла."
+msgstr "Ошибка передачи файла."
msgid "Delete Confirmation"
-msgstr ""
-"Подтверждение удаления"
+msgstr "Подтверждение удаления"
msgid "OK"
-msgstr ""
-"OK"
+msgstr "OK"
msgid "Confirm"
-msgstr ""
-"Подтвердить"
+msgstr "Подтвердить"
msgid "Warning"
-msgstr ""
-"Предупреждение"
+msgstr "Предупреждение"
msgid "Cloning..."
-msgstr ""
-"Дублирование..."
+msgstr "Дублирование..."
msgid "Loading..."
-msgstr ""
-"Загружается..."
+msgstr "Загружается..."
msgid "An error occurred while retrieving system information."
-msgstr ""
-"Ошибка получения системной информации."
+msgstr "Ошибка получения системной информации."
msgid "Retry"
-msgstr ""
-"Повторить"
+msgstr "Повторить"
msgid "Detailed message:"
-msgstr ""
-"Подробное сообщение:"
+msgstr "Подробное сообщение:"
msgid "No ISO found"
-msgstr ""
-"Не найден образ ISO"
+msgstr "Не найден образ ISO"
msgid "This is not a valid ISO file."
-msgstr ""
-"Этот файл не является допустимым образом ISO."
+msgstr "Этот файл не является допустимым образом ISO."
msgid "This may take a long time. Do you want to continue?"
-msgstr ""
-"Это может занять много времени. Продолжить?"
+msgstr "Это может занять много времени. Продолжить?"
msgid "This will permanently delete the template. Would you like to continue?"
-msgstr ""
-"Шаблон будет безвозвратно удален. Продолжить?"
+msgstr "Шаблон будет безвозвратно удален. Продолжить?"
msgid "Unable to shut down system as there are some virtual machines running!"
msgstr ""
-"Невозможно завершить работу системы, поскольку в ней работают виртуальные машины!"
+"Невозможно завершить работу системы, поскольку в ней работают виртуальные "
+"машины!"
msgid "Max:"
-msgstr ""
-"Макс.:"
+msgstr "Макс.:"
msgid "Utilization"
-msgstr ""
-"Использование"
+msgstr "Использование"
msgid "Available"
-msgstr ""
-"Доступно"
+msgstr "Доступно"
msgid "Read Rate"
-msgstr ""
-"Скорость чтения"
+msgstr "Скорость чтения"
msgid "Write Rate"
-msgstr ""
-"Скорость записи"
+msgstr "Скорость записи"
msgid "Received"
-msgstr ""
-"Получено"
+msgstr "Получено"
msgid "Sent"
-msgstr ""
-"Отправлено"
+msgstr "Отправлено"
msgid ""
"Shutting down or restarting host will cause unsaved work lost. Continue to "
"shut down/restarting?"
msgstr ""
-"Завершение работы и перезапуск хоста приведут к потере несохраненной работы. Продолжить "
-"завершение работы/перезапуск?"
+"Завершение работы и перезапуск хоста приведут к потере несохраненной работы. "
+"Продолжить завершение работы/перезапуск?"
msgid ""
"Repository will be removed permanently and can't be recovered. Do you want "
"to continue?"
-msgstr ""
-"Хранилище будет удалено без возможности восстановления. "
-"Продолжить?"
+msgstr "Хранилище будет удалено без возможности восстановления. Продолжить?"
msgid "Repositories"
-msgstr ""
-"Хранилища"
+msgstr "Хранилища"
msgid "ID"
-msgstr ""
-"ИД"
+msgstr "ИД"
msgid "Base URL"
-msgstr ""
-"Базовый URL"
+msgstr "Базовый URL"
msgid "Is Mirror"
-msgstr ""
-"Зеркальная копия"
+msgstr "Зеркальная копия"
msgid "URL Args"
-msgstr ""
-"Аргументы URL"
+msgstr "Аргументы URL"
msgid "Enabled"
-msgstr ""
-"Включено"
+msgstr "Включено"
msgid "GPG Check"
-msgstr ""
-"Проверка GPG"
+msgstr "Проверка GPG"
msgid "GPG Key"
-msgstr ""
-"Ключ GPG"
+msgstr "Ключ GPG"
msgid "Add"
-msgstr ""
-"Добавить"
+msgstr "Добавить"
msgid "Remove"
-msgstr ""
-"Удалить"
+msgstr "Удалить"
msgid "Enable"
-msgstr ""
-"Включить"
+msgstr "Включить"
msgid "Disable"
-msgstr ""
-"Выключить"
+msgstr "Выключить"
msgid "Software Updates"
-msgstr ""
-"Обновления программного обеспечения"
+msgstr "Обновления программного обеспечения"
msgid "Package Name"
-msgstr ""
-"Имя пакета"
+msgstr "Имя пакета"
msgid "Version"
-msgstr ""
-"Версия"
+msgstr "Версия"
msgid "Architecture"
-msgstr ""
-"Архитектура"
+msgstr "Архитектура"
msgid "Repository"
-msgstr ""
-"Хранилище"
+msgstr "Хранилище"
msgid "Update All"
-msgstr ""
-"Обновить все"
+msgstr "Обновить все"
msgid "Updating..."
-msgstr ""
-"Обновление..."
+msgstr "Обновление..."
msgid "Failed to retrieve packages update information."
-msgstr ""
-"Ошибка получения информации для обновления пакетов."
+msgstr "Ошибка получения информации для обновления пакетов."
msgid "Failed to update package(s)."
-msgstr ""
-"Не удалось обновить пакеты."
+msgstr "Не удалось обновить пакеты."
msgid ""
"Debug report will be removed permanently and can't be recovered. Do you want "
"to continue?"
msgstr ""
-"Отладочный отчет будет удален без возможности восстановления. "
-"Продолжить?"
+"Отладочный отчет будет удален без возможности восстановления. Продолжить?"
msgid "Debug Reports"
-msgstr ""
-"Отладочные отчеты"
+msgstr "Отладочные отчеты"
msgid "Generated Time"
-msgstr ""
-"Время создания"
+msgstr "Время создания"
msgid "Generate"
-msgstr ""
-"Создать"
+msgstr "Создать"
msgid "Generating..."
-msgstr ""
-"Создание..."
+msgstr "Создание..."
msgid "Rename"
-msgstr ""
-"Переименовать"
+msgstr "Переименовать"
msgid "Download"
-msgstr ""
-"Загрузить"
+msgstr "Загрузить"
msgid ""
"Report name should contain only letters, digits, underscore ('_') and/or "
@@ -2059,34 +1744,30 @@ msgstr ""
"дефисы ('-')."
msgid "Pending..."
-msgstr ""
-"Ожидание..."
+msgstr "Ожидание..."
msgid "Report name is the same as the original one."
-msgstr ""
-"Имя отчета совпадает с исходным."
+msgstr "Имя отчета совпадает с исходным."
msgid ""
"This will delete the virtual machine and its virtual disks. This operation "
"cannot be undone. Would you like to continue?"
msgstr ""
-"Виртуальная машина будет удалена вместе со своими виртуальными дисками. Эта операция "
-"необратима. Продолжить?"
+"Виртуальная машина будет удалена вместе со своими виртуальными дисками. Эта "
+"операция необратима. Продолжить?"
msgid "Power off Confirmation"
-msgstr ""
-"Подтверждение отключения питания"
+msgstr "Подтверждение отключения питания"
msgid ""
"This action may produce undesirable results, for example unflushed disk "
"cache in the guest. Would you like to continue?"
msgstr ""
-"Это действие может привести к нежелательным последствиям. Например, несброшенный дисковый "
-"кэш в гостевой системе. Продолжить?"
+"Это действие может привести к нежелательным последствиям. Например, "
+"несброшенный дисковый кэш в гостевой системе. Продолжить?"
msgid "Reset Confirmation"
-msgstr ""
-"Подтверждение сброса"
+msgstr "Подтверждение сброса"
msgid ""
"There is a risk of data loss caused by reset without the guest OS shutdown. "
@@ -2096,100 +1777,84 @@ msgstr ""
"Продолжить?"
msgid "Shut Down Confirmation"
-msgstr ""
-"Подтверждение завершения работы"
+msgstr "Подтверждение завершения работы"
msgid "Note the guest OS may ignore this request. Would you like to continue?"
msgstr ""
-"Обратите внимание, что гостевая ОС может проигнорировать этот запрос. Продолжить?"
+"Обратите внимание, что гостевая ОС может проигнорировать этот запрос. "
+"Продолжить?"
msgid "Virtual Machine delete Confirmation"
-msgstr ""
-"Подтверждение удаления виртуальной машины"
+msgstr "Подтверждение удаления виртуальной машины"
msgid ""
"This virtual machine is not persistent. Power Off will delete it. Continue?"
msgstr ""
-"Эта виртуальная машина не постоянная. Выключение приведет к ее удалению. Продолжить?"
+"Эта виртуальная машина не постоянная. Выключение приведет к ее удалению. "
+"Продолжить?"
msgid ""
"When the target guest has SCSI or iSCSI volumes, they will be cloned on "
"default storage pool. The same will happen when the target pool does not "
"have enough space to clone the volumes. Do you want to continue?"
msgstr ""
-"Если у целевой гостевой системы есть тома SCSI или iSCSI, они будут скопированы "
-"в пул памяти по умолчанию. То же самое произойдет, если в целевом пуле "
-"недостаточно свободного места для дублирования томов. Продолжить?"
+"Если у целевой гостевой системы есть тома SCSI или iSCSI, они будут "
+"скопированы в пул памяти по умолчанию. То же самое произойдет, если в "
+"целевом пуле недостаточно свободного места для дублирования томов. "
+"Продолжить?"
msgid ""
"This CDROM will be detached permanently and you can re-attach it. Continue "
"to detach it?"
msgstr ""
-"Этот CDROM будет отключен. Его можно будет снова подключить. "
-"Отключить?"
+"Этот CDROM будет отключен. Его можно будет снова подключить. Отключить?"
msgid "Attaching..."
-msgstr ""
-"Подключение..."
+msgstr "Подключение..."
msgid "Replacing..."
-msgstr ""
-"Замена..."
+msgstr "Замена..."
msgid "Successfully attached!"
-msgstr ""
-"Успешно подключен!"
+msgstr "Успешно подключен!"
msgid "Successfully replaced!"
-msgstr ""
-"Успешно заменен!"
+msgstr "Успешно заменен!"
msgid "Successfully detached!"
-msgstr ""
-"Успешно отключен!"
+msgstr "Успешно отключен!"
msgid ""
"This disk will be detached permanently and you can re-attach it. Continue to "
"detach it?"
-msgstr ""
-"Этот диск будет отключен. Его можно будет снова подключить. "
-"Отключить?"
+msgstr "Этот диск будет отключен. Его можно будет снова подключить. Отключить?"
msgid "interface:"
-msgstr ""
-"интерфейс:"
+msgstr "интерфейс:"
msgid "address:"
-msgstr ""
-"адрес:"
+msgstr "адрес:"
msgid "link_type:"
-msgstr ""
-"тип линии связи:"
+msgstr "тип линии связи:"
msgid "block:"
-msgstr ""
-"блок:"
+msgstr "блок:"
msgid "drive_type:"
-msgstr ""
-"тип накопителя:"
+msgstr "тип накопителя:"
msgid "model:"
-msgstr ""
-"модель:"
+msgstr "модель:"
msgid "Affected devices:"
-msgstr ""
-"Затронутые устройства:"
+msgstr "Затронутые устройства:"
msgid "The VLAN id must be between 1 and 4094."
-msgstr ""
-"ИД VLAN должен быть от 1 до 4094."
+msgstr "ИД VLAN должен быть от 1 до 4094."
msgid "unavailable"
-msgstr ""
-"недоступно"
+msgstr "недоступно"
msgid ""
"This action will interrupt network connectivity for any virtual machine that "
@@ -2199,643 +1864,495 @@ msgstr ""
"зависят от этой сети."
msgid "Create a network"
-msgstr ""
-"Создать сеть"
+msgstr "Создать сеть"
msgid ""
"This network is not persistent. Instead of stop, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"Эта сеть не постоянная. Вместо остановки, это действие "
-"безвозвратно удалит ее. Продолжить?"
+"Эта сеть не постоянная. Вместо остановки, это действие безвозвратно удалит "
+"ее. Продолжить?"
msgid ""
"The bridged VLAN tag may not work well with NetworkManager enabled. You "
"should consider disabling it."
msgstr ""
-"Тег комплексной VLAN может работать неправильно с включенным NetworkManager. "
-"Его рекомендуется выключить."
+"Тег комплексной VLAN может работать неправильно с включенным "
+"NetworkManager. Его рекомендуется выключить."
msgid ""
"This will permanently delete the storage pool. Would you like to continue?"
-msgstr ""
-"Пул памяти будет безвозвратно удален. Продолжить?"
+msgstr "Пул памяти будет безвозвратно удален. Продолжить?"
msgid "This storage pool is empty."
-msgstr ""
-"Этот пул памяти пустой."
+msgstr "Этот пул памяти пустой."
msgid ""
"It will format your disk and you will loose any data in there, are you sure "
"to continue? "
msgstr ""
-"Диск будет отформатирован, и все данные на нем будут потеряны. Вы действительно хотите "
-"продолжить? "
+"Диск будет отформатирован, и все данные на нем будут потеряны. Вы "
+"действительно хотите продолжить? "
msgid "SCSI Fibre Channel"
-msgstr ""
-"SCSI Fibre Channel"
+msgstr "SCSI Fibre Channel"
msgid "No SCSI adapters found."
-msgstr ""
-"Не найдены адаптеры SCSI."
+msgstr "Не найдены адаптеры SCSI."
msgid "Loading iSCSI targets..."
-msgstr ""
-"Загрузка целевых объектов iSCSI..."
+msgstr "Загрузка целевых объектов iSCSI..."
msgid "No iSCSI found. Please input one."
-msgstr ""
-"Не найден iSCSI. Введите."
+msgstr "Не найден iSCSI. Введите."
msgid "Failed to load iSCSI targets."
-msgstr ""
-"Не удалось загрузить целевые объекты iSCSI."
+msgstr "Не удалось загрузить целевые объекты iSCSI."
msgid "The storage pool name can not be blank."
-msgstr ""
-"Не указано имя пула памяти."
+msgstr "Не указано имя пула памяти."
msgid "The storage pool path can not be blank."
-msgstr ""
-"Не указан путь к пулу памяти."
+msgstr "Не указан путь к пулу памяти."
msgid "NFS server mount path can not be blank."
-msgstr ""
-"Не указан путь монтирования сервера NFS."
+msgstr "Не указан путь монтирования сервера NFS."
msgid "Invalid NFS mount path."
-msgstr ""
-"Недопустимый путь монтирования NFS."
+msgstr "Недопустимый путь монтирования NFS."
msgid "No logical device selected."
-msgstr ""
-"Не выбрано логическое устройство."
+msgstr "Не выбрано логическое устройство."
msgid "The iSCSI target can not be blank."
-msgstr ""
-"Не указан целевой объект iSCSI."
+msgstr "Не указан целевой объект iSCSI."
msgid "Server name can not be blank."
-msgstr ""
-"Не указано имя сервера."
+msgstr "Не указано имя сервера."
msgid "This is not a valid Server Name or IP. Please, modify it."
-msgstr ""
-"Это не допустимое имя или IP-адрес сервера. Измените его."
+msgstr "Это не допустимое имя или IP-адрес сервера. Измените его."
msgid "Looking for available partitions ..."
-msgstr ""
-"Поиск доступных разделов..."
+msgstr "Поиск доступных разделов..."
msgid "No available partitions found."
-msgstr ""
-"Не найдены доступные разделы."
+msgstr "Не найдены доступные разделы."
msgid ""
"This storage pool is not persistent. Instead of deactivate, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"Этот пул памяти не постоянный. Вместо деактивации, это действие "
-"безвозвратно удалит его. Продолжить?"
+"Этот пул памяти не постоянный. Вместо деактивации, это действие безвозвратно "
+"удалит его. Продолжить?"
msgid "Unable to retrieve partitions information."
-msgstr ""
-"Не удалось получить информацию о разделах."
+msgstr "Не удалось получить информацию о разделах."
msgid "In progress..."
-msgstr ""
-"Выполнение..."
+msgstr "Выполнение..."
msgid "Failed!"
-msgstr ""
-"Сбой!"
+msgstr "Сбой!"
msgid "CDROM path needs to be a valid local/remote path and cannot be blank."
msgstr ""
-"Путь к CDROM должен быть правильным локальным или удаленным путем и не может быть пустым."
+"Путь к CDROM должен быть правильным локальным или удаленным путем и не может "
+"быть пустым."
msgid "Disk pool or volume cannot be blank."
-msgstr ""
-"Не указан пул или том диска."
+msgstr "Не указан пул или том диска."
msgid "Peers"
-msgstr ""
-"Равноправные узлы"
+msgstr "Равноправные узлы"
msgid "Searching"
-msgstr ""
-"Поиск"
+msgstr "Поиск"
msgid "No peers found."
-msgstr ""
-"Не найдены равноправные узлы."
+msgstr "Не найдены равноправные узлы."
msgid "Help"
-msgstr ""
-"Справка"
+msgstr "Справка"
msgid "About"
-msgstr ""
-"О программе"
+msgstr "О программе"
msgid "Log out"
-msgstr ""
-"Закрыть сеанс"
+msgstr "Закрыть сеанс"
msgid "Version:"
-msgstr ""
-"Версия:"
+msgstr "Версия:"
msgid "Session timeout, please re-login."
-msgstr ""
-"Тайм-аут сеанса. Пожалуйста, войдите заново."
+msgstr "Тайм-аут сеанса. Пожалуйста, войдите заново."
msgid "User Name"
-msgstr ""
-"Имя пользователя"
+msgstr "Имя пользователя"
msgid "Password"
-msgstr ""
-"Пароль"
+msgstr "Пароль"
msgid "Generate a New Debug Report"
-msgstr ""
-"Создать новый отладочный отчет"
+msgstr "Создать новый отладочный отчет"
msgid "Report Name"
-msgstr ""
-"Имя отчета"
+msgstr "Имя отчета"
msgid ""
"The name used to identify the report. If omitted, a name will be chosen "
"based on current time. Name can contain: letters, digits, underscore (\"_\") "
"and hyphen (\"-\")."
msgstr ""
-"Имя для идентификации отчета. Если не указано, имя будет "
-"сформировано на основе текущего времени. Имя может включать буквы, цифры, подчеркивания (\"_\") "
-"и дефисы (\"-\")."
+"Имя для идентификации отчета. Если не указано, имя будет сформировано на "
+"основе текущего времени. Имя может включать буквы, цифры, подчеркивания (\"_"
+"\") и дефисы (\"-\")."
msgid "Rename a Debug Report"
-msgstr ""
-"Переименовать отладочный отчет"
+msgstr "Переименовать отладочный отчет"
msgid ""
"The name used to identify the report. Name can contain: letters, digits and "
"hyphen (\"-\")."
msgstr ""
-"Имя, используемое для идентификации отчета. Имя может включать буквы, цифры и "
-"подчеркивания (\"-\")."
+"Имя, используемое для идентификации отчета. Имя может включать буквы, цифры "
+"и подчеркивания (\"-\")."
msgid "Submit"
-msgstr ""
-"Отправить"
+msgstr "Отправить"
msgid "Add a Repository"
-msgstr ""
-"Добавить хранилище"
+msgstr "Добавить хранилище"
msgid "Identifier"
-msgstr ""
-"Идентификатор"
+msgstr "Идентификатор"
msgid "Single word, unique identifier for the repository."
-msgstr ""
-"Одиночное слово - уникальный идентификатор хранилища."
+msgstr "Одиночное слово - уникальный идентификатор хранилища."
msgid "Textual name for the repository."
-msgstr ""
-"Текстовое имя хранилища."
+msgstr "Текстовое имя хранилища."
msgid "URL"
-msgstr ""
-"URL"
+msgstr "URL"
msgid "Required Field"
-msgstr ""
-"Обязательное поле"
+msgstr "Обязательное поле"
msgid "URL to the repository. Supported protocols are http, ftp, and file."
-msgstr ""
-"URL хранилища. Поддерживаемые протоколы: http, ftp, file."
+msgstr "URL хранилища. Поддерживаемые протоколы: http, ftp, file."
msgid "Repository is a mirror"
-msgstr ""
-"Хранилище является зеркальной копией"
+msgstr "Хранилище является зеркальной копией"
msgid "Distribution"
-msgstr ""
-"Вариант"
+msgstr "Вариант"
msgid "Distribution of the DEB repository."
-msgstr ""
-"Вариант хранилища DEB."
+msgstr "Вариант хранилища DEB."
msgid "Components"
-msgstr ""
-"Компоненты"
+msgstr "Компоненты"
msgid "List of components in DEB repository."
-msgstr ""
-"Список компонентов в хранилище DEB."
+msgstr "Список компонентов в хранилище DEB."
msgid "Edit Repository"
-msgstr ""
-"Изменить хранилище"
+msgstr "Изменить хранилище"
msgid "Mirror List URL"
-msgstr ""
-"URL списка зеркальных копий"
+msgstr "URL списка зеркальных копий"
msgid "Yes"
-msgstr ""
-"Да"
+msgstr "Да"
msgid "No"
-msgstr ""
-"Нет"
+msgstr "Нет"
msgid "Add a Volume to Storage Pool"
-msgstr ""
-"Добавить том в пул памяти"
+msgstr "Добавить том в пул памяти"
msgid "Fetch from remote URL"
-msgstr ""
-"Загрузить с удаленного URL"
+msgstr "Загрузить с удаленного URL"
msgid "Enter the remote URL here."
-msgstr ""
-"Введите сюда удаленный URL."
+msgstr "Введите сюда удаленный URL."
msgid "Upload a file"
-msgstr ""
-"Передать файл"
+msgstr "Передать файл"
msgid "Choose the file you want to upload."
-msgstr ""
-"Выберите файл для передачи."
+msgstr "Выберите файл для передачи."
msgid "Define a New Storage Pool"
-msgstr ""
-"Создать пул памяти"
+msgstr "Создать пул памяти"
msgid "Storage Pool Name"
-msgstr ""
-"Имя пула памяти"
+msgstr "Имя пула памяти"
msgid ""
"The name used to identify the storage pools, and it should not be empty."
-msgstr ""
-"Имя для идентификации пулов памяти. Не может быть пустым."
+msgstr "Имя для идентификации пулов памяти. Не может быть пустым."
msgid "Storage Pool Type"
-msgstr ""
-"Тип пула памяти"
+msgstr "Тип пула памяти"
msgid "Storage Path"
-msgstr ""
-"Путь к диску"
+msgstr "Путь к диску"
msgid ""
"The path of the Storage Pool. Each Storage Pool must have a unique path."
-msgstr ""
-"Путь к пулу памяти. Каждый пул памяти должен иметь уникальный путь."
+msgstr "Путь к пулу памяти. Каждый пул памяти должен иметь уникальный путь."
msgid ""
"Kimchi will try to create the directory when it does not already exist in "
"your system."
-msgstr ""
-"Kimchi попытается создать каталог, если он не существует "
-"в системе."
+msgstr "Kimchi попытается создать каталог, если он не существует в системе."
msgid "NFS Server IP"
-msgstr ""
-"IP-адрес сервера NFS"
+msgstr "IP-адрес сервера NFS"
msgid "NFS server IP or hostname. It can be input or chosen from history."
msgstr ""
-"IP-адрес или имя хоста сервера NFS. Его можно ввести или выбрать в хронологии."
+"IP-адрес или имя хоста сервера NFS. Его можно ввести или выбрать в "
+"хронологии."
msgid "NFS Path"
-msgstr ""
-"Путь NFS"
+msgstr "Путь NFS"
msgid "The NFS exported path on NFS server."
-msgstr ""
-"Экспортированный путь NFS на сервере NFS."
+msgstr "Экспортированный путь NFS на сервере NFS."
msgid "Device path"
-msgstr ""
-"Путь к устройству"
+msgstr "Путь к устройству"
msgid "iSCSI Server"
-msgstr ""
-"Сервер iSCSI"
+msgstr "Сервер iSCSI"
msgid "iSCSI server IP or hostname. It should not be empty."
-msgstr ""
-"IP-адрес или имя хоста сервера iSCSI. Не может быть пустым."
+msgstr "IP-адрес или имя хоста сервера iSCSI. Не может быть пустым."
msgid "Server"
-msgstr ""
-"Сервер"
+msgstr "Сервер"
msgid "Port"
-msgstr ""
-"Порт"
+msgstr "Порт"
msgid "Target"
-msgstr ""
-"Целевой объект"
+msgstr "Целевой объект"
msgid "The iSCSI target on iSCSI server"
-msgstr ""
-"Целевой объект iSCSI на сервере iSCSI"
+msgstr "Целевой объект iSCSI на сервере iSCSI"
msgid "Add iSCSI Authentication"
-msgstr ""
-"Добавить идентификацию iSCSI"
+msgstr "Добавить идентификацию iSCSI"
msgid "iSCSI Authentication"
-msgstr ""
-"Идентификация iSCSI"
+msgstr "Идентификация iSCSI"
msgid "SCSI Adapter"
-msgstr ""
-"Адаптер SCSI"
+msgstr "Адаптер SCSI"
msgid "Please, wait..."
-msgstr ""
-"Подождите..."
+msgstr "Подождите..."
msgid "Add Template"
-msgstr ""
-"Добавить шаблон"
+msgstr "Добавить шаблон"
msgid "Where is the source media for this template? "
-msgstr ""
-"Где находится исходный носитель для этого шаблона? "
+msgstr "Где находится исходный носитель для этого шаблона? "
msgid "Local ISO Image"
-msgstr ""
-"Локальный образ ISO"
+msgstr "Локальный образ ISO"
msgid "Local Image File"
-msgstr ""
-"Локальный файл образа"
+msgstr "Локальный файл образа"
msgid "Remote ISO Image"
-msgstr ""
-"Удаленный образ ISO"
+msgstr "Удаленный образ ISO"
msgid "Search ISOs"
-msgstr ""
-"Поиск образов ISO"
+msgstr "Поиск образов ISO"
msgid "The following ISOs are available:"
-msgstr ""
-"Доступные образы ISO:"
+msgstr "Доступные образы ISO:"
msgid "OS: "
-msgstr ""
-"ОС: "
+msgstr "ОС: "
msgid "Version: "
-msgstr ""
-"Версия: "
+msgstr "Версия: "
msgid "Size: "
-msgstr ""
-"Размер: "
+msgstr "Размер: "
msgid "Search more ISOs"
-msgstr ""
-"Поиск дополнительных образов ISO"
+msgstr "Поиск дополнительных образов ISO"
msgid "Create Templates from Selected ISO"
-msgstr ""
-"Создать шаблоны из выбранных образов ISO"
+msgstr "Создать шаблоны из выбранных образов ISO"
msgid "I want to use a specific ISO file"
-msgstr ""
-"Использовать конкретный файл ISO"
+msgstr "Использовать конкретный файл ISO"
msgid "Loading default remote ISOs ..."
-msgstr ""
-"Загрузка удаленных ISO по умолчанию..."
+msgstr "Загрузка удаленных ISO по умолчанию..."
msgid "Arch: "
-msgstr ""
-"Архитектура: "
+msgstr "Архитектура: "
msgid "I want to use a custom URL"
-msgstr ""
-"Использовать другой URL"
+msgstr "Использовать другой URL"
msgid "Edit Template"
-msgstr ""
-"Изменить шаблон"
+msgstr "Изменить шаблон"
msgid "Processor"
-msgstr ""
-"Процессор"
+msgstr "Процессор"
msgid "CDROM"
-msgstr ""
-"CDROM"
+msgstr "CDROM"
msgid "Image File"
-msgstr ""
-"Файл образа"
+msgstr "Файл образа"
msgid "Graphics"
-msgstr ""
-"Графика"
+msgstr "Графика"
msgid "Disk(GB)"
-msgstr ""
-"Диск (ГБ)"
+msgstr "Диск (ГБ)"
msgid "Disk Format"
-msgstr ""
-"Формат диска"
+msgstr "Формат диска"
msgid "CPU Number"
-msgstr ""
-"Количество процессоров"
+msgstr "Количество процессоров"
msgid "Manually set CPU topology"
-msgstr ""
-"Вручную настроить топологию процессоров"
+msgstr "Вручную настроить топологию процессоров"
msgid "Cores"
-msgstr ""
-"Ядра"
+msgstr "Ядра"
msgid "Threads"
-msgstr ""
-"Нити"
+msgstr "Нити"
msgid "CPU"
-msgstr ""
-"Процессор"
+msgstr "Процессор"
msgid "Disk I/O"
-msgstr ""
-"Дисковый ввод-вывод"
+msgstr "Дисковый ввод-вывод"
msgid "Network I/O"
-msgstr ""
-"Сетевой ввод-вывод"
+msgstr "Сетевой ввод-вывод"
msgid "Livetile"
-msgstr ""
-"Livetile"
+msgstr "Livetile"
msgid "No guests found."
-msgstr ""
-"Не найдены гостевые системы."
+msgstr "Не найдены гостевые системы."
msgid "Shut down"
-msgstr ""
-"Выключен"
+msgstr "Выключен"
msgid "Restart"
-msgstr ""
-"Перезапуск"
+msgstr "Перезапуск"
msgid "Basic Information"
-msgstr ""
-"Базовая информация"
+msgstr "Базовая информация"
msgid "OS Distro"
-msgstr ""
-"Вариант ОС"
+msgstr "Вариант ОС"
msgid "OS Code Name"
-msgstr ""
-"Кодовое имя ОС"
+msgstr "Кодовое имя ОС"
msgid "CPU(s)"
-msgstr ""
-"Процессоры"
+msgstr "Процессоры"
msgid "System Statistics"
-msgstr ""
-"Системная статистика"
+msgstr "Системная статистика"
msgid "Update Progress"
-msgstr ""
-"Ход обновления"
+msgstr "Ход обновления"
msgid "Network Name"
-msgstr ""
-"Имя сети"
+msgstr "Имя сети"
msgid "State"
-msgstr ""
-"Состояние"
+msgstr "Состояние"
msgid "Network Type"
-msgstr ""
-"Тип сети"
+msgstr "Тип сети"
msgid "Address Space"
-msgstr ""
-"Адресное пространство"
+msgstr "Адресное пространство"
msgid "Name should not contain '/' and '\"'."
-msgstr ""
-"Имя не должно содержать '/' и '\"'."
+msgstr "Имя не должно содержать '/' и '\"'."
msgid "Isolated: no external network connection"
-msgstr ""
-"Изолированный: без внешних сетевых соединений"
+msgstr "Изолированный: без внешних сетевых соединений"
msgid "NAT: outbound physical network connection only"
-msgstr ""
-"NAT (только исходящее физическое сетевое соединение)"
+msgstr "NAT (только исходящее физическое сетевое соединение)"
msgid "Bridged: Virtual machines are connected to physical network directly"
-msgstr ""
-"Через мост (прямое подключение виртуальных машин к физической сети)"
+msgstr "Через мост (прямое подключение виртуальных машин к физической сети)"
msgid "(No interfaces found)"
-msgstr ""
-"(Интерфейсы не найдены)"
+msgstr "(Интерфейсы не найдены)"
msgid "Destination"
-msgstr ""
-"Целевое расположение"
+msgstr "Целевое расположение"
msgid "Enable VLAN"
-msgstr ""
-"Включить VLAN"
+msgstr "Включить VLAN"
msgid "VLAN ID"
-msgstr ""
-"Идентификатор VLAN"
+msgstr "Идентификатор VLAN"
msgid "Stop"
-msgstr ""
-"Завершить"
+msgstr "Завершить"
msgid "%Used"
-msgstr ""
-"%Используется"
+msgstr "%Используется"
msgid "Location"
-msgstr ""
-"Расположение"
+msgstr "Расположение"
msgid "Capacity"
-msgstr ""
-"Емкость"
+msgstr "Емкость"
msgid "Allocated"
-msgstr ""
-"Выделено"
+msgstr "Выделено"
msgid "active"
-msgstr ""
-"активен"
+msgstr "активен"
msgid "inactive"
-msgstr ""
-"неактивен"
+msgstr "неактивен"
msgid "Deactivate"
-msgstr ""
-"Выключить"
+msgstr "Выключить"
msgid "Activate"
-msgstr ""
-"Активировать"
+msgstr "Активировать"
msgid "Add Volume"
-msgstr ""
-"Добавить том"
+msgstr "Добавить том"
msgid "Extend"
-msgstr ""
-"Расширить"
+msgstr "Расширить"
msgid "Undefine"
-msgstr ""
-"Удалить"
+msgstr "Удалить"
msgid "Format"
-msgstr ""
-"Формат"
+msgstr "Формат"
msgid "Allocation"
-msgstr ""
-"Выделение"
+msgstr "Выделение"
msgid "No templates found."
-msgstr ""
-"Не найдены шаблоны."
-
-# ENGL1SH_VERS10N 28617_40 DO NOT REMOVE OR CHANGE THIS LINE
-# T9N_SRC_ID 92
-# T9N_SH1P_STR1NG KV310AAP001 1
+msgstr "Не найдены шаблоны."
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 718036e..7d3723b 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -6,169 +6,140 @@ msgid ""
msgstr ""
"Project-Id-Version: kimchi 0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-24 09:39-0300\n"
+"POT-Creation-Date: 2015-08-21 09:52-0300\n"
"PO-Revision-Date: 2013-07-11 17:32-0400\n"
"Last-Translator: Crístian Viana <vianac(a)linux.vnet.ibm.com>\n"
"Language-Team: English\n"
-"Language: en_US\n"
+"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
-"Plural-Forms: nplurals=1; plural=0;"
+"Plural-Forms: nplurals=1; plural=0;\n"
#, python-format
msgid "Unknown parameter %(value)s"
-msgstr ""
-"未知参数 %(value)s"
+msgstr "未知参数 %(value)s"
#, python-format
msgid "Delete is not allowed for %(resource)s"
-msgstr ""
-"不允许删除 %(resource)s"
+msgstr "不允许删除 %(resource)s"
#, python-format
msgid "%(resource)s does not implement update method"
-msgstr ""
-"%(resource)s 未实现更新方法"
+msgstr "%(resource)s 未实现更新方法"
#, python-format
msgid "Create is not allowed for %(resource)s"
-msgstr ""
-"不允许创建 %(resource)s"
+msgstr "不允许创建 %(resource)s"
msgid "Unable to parse JSON request"
-msgstr ""
-"无法解析 JSON 请求"
+msgstr "无法解析 JSON 请求"
msgid "This API only supports JSON"
-msgstr ""
-"此 API 仅支持 JSON"
+msgstr "此 API 仅支持 JSON"
#, python-format
msgid "Parameters does not match requirement in schema: %(err)s"
-msgstr ""
-"参数与模式中的需求不匹配:%(err)s"
+msgstr "参数与模式中的需求不匹配:%(err)s"
msgid "You don't have permission to perform this operation."
-msgstr ""
-"您不具有执行此操作的许可权。"
+msgstr "您不具有执行此操作的许可权。"
msgid "Datastore is not initiated in the model object."
-msgstr ""
-"未在模型对象中启动数据存储器。"
+msgstr "未在模型对象中启动数据存储器。"
#, python-format
msgid "Unable to start task due error: %(err)s"
-msgstr ""
-"无法启动任务,因为发生了错误:%(err)s"
+msgstr "无法启动任务,因为发生了错误:%(err)s"
#, python-format
msgid "Timeout of %(seconds)s seconds expired while running task '%(task)s."
-msgstr ""
-"运行以下任务时,%(seconds)s 秒的超时已到期:%(task)s。"
+msgstr "运行以下任务时,%(seconds)s 秒的超时已到期:%(task)s。"
#, python-format
msgid "Authentication failed for user '%(username)s'. [Error code: %(code)s]"
-msgstr ""
-"对用户“%(username)s”的认证失败。[错误代码:%(code)s]"
+msgstr "对用户“%(username)s”的认证失败。[错误代码:%(code)s]"
msgid "You are not authorized to access Kimchi"
-msgstr ""
-"您无权访问 Kimchi"
+msgstr "您无权访问 Kimchi"
#, python-format
msgid "Specify %(item)s to login into Kimchi"
-msgstr ""
-"指定 %(item)s 以登录 Kimchi"
+msgstr "指定 %(item)s 以登录 Kimchi"
#, python-format
msgid "User %(user_id)s not found with given LDAP settings."
-msgstr ""
-"找不到具有给定 LDAP 设置的用户 %(user_id)s。"
+msgstr "找不到具有给定 LDAP 设置的用户 %(user_id)s。"
#, python-format
msgid "Invalid LDAP configuration: %(item)s : %(value)s"
-msgstr ""
-"无效 LDAP 配置:%(item)s : %(value)s"
+msgstr "无效 LDAP 配置:%(item)s : %(value)s"
msgid "Unknown \"_cap\" specified"
-msgstr ""
-"指定了未知“_cap”"
+msgstr "指定了未知“_cap”"
msgid "\"_passthrough\" should be \"true\" or \"false\""
-msgstr ""
-"“_passthrough”应该为“true”或“false”"
+msgstr "“_passthrough”应该为“true”或“false”"
msgid "\"_passthrough_affected_by\" should be a device name string"
-msgstr ""
-"“_passthrough_affected_by”应该为设备名字符串"
+msgstr "“_passthrough_affected_by”应该为设备名字符串"
+
+msgid "\"_available_only\" should be \"true\" or \"false\""
+msgstr "“_available_only”应该为“true”或“false”"
#, python-format
msgid "Error while getting block devices. Details: %(err)s"
-msgstr ""
-"获取块设备时出错。详细信息:%(err)s"
+msgstr "获取块设备时出错。详细信息:%(err)s"
#, python-format
msgid "Error while getting block device information for %(device)s."
-msgstr ""
-"获取 %(device)s 的块设备信息时出错。"
+msgstr "获取 %(device)s 的块设备信息时出错。"
#, python-format
msgid "Unable to find distro file: %(filename)s"
-msgstr ""
-"找不到 Distro 文件:%(filename)s"
+msgstr "找不到 Distro 文件:%(filename)s"
#, python-format
msgid ""
"Unable to parse distro file: %(filename)s. Make sure, it is a JSON file."
-msgstr ""
-"无法解析 Distro 文件:%(filename)s。请确保该文件是 JSON 文件。"
+msgstr "无法解析 Distro 文件:%(filename)s。请确保该文件是 JSON 文件。"
#, python-format
msgid "Unable to login to iSCSI host target %(portal)s. Details: %(err)s"
-msgstr ""
-"无法登录 iSCSI 主机目标 %(portal)s。详细信息:%(err)s"
+msgstr "无法登录 iSCSI 主机目标 %(portal)s。详细信息:%(err)s"
#, python-format
msgid "Unable to login to iSCSI host %(host)s target %(target)s"
-msgstr ""
-"无法登录 iSCSI 主机 %(host)s 目标 %(target)s"
+msgstr "无法登录 iSCSI 主机 %(host)s 目标 %(target)s"
#, python-format
msgid "Unable to find ISO file %(filename)s"
-msgstr ""
-"找不到 ISO 文件 %(filename)s"
+msgstr "找不到 ISO 文件 %(filename)s"
#, python-format
msgid "The ISO file %(filename)s is not bootable"
-msgstr ""
-"ISO 文件 %(filename)s 不可引导"
+msgstr "ISO 文件 %(filename)s 不可引导"
#, python-format
msgid "The ISO file %(filename)s does not have a valid El Torito boot record"
-msgstr ""
-"ISO 文件 %(filename)s 没有有效的 EI Torito 引导记录"
+msgstr "ISO 文件 %(filename)s 没有有效的 EI Torito 引导记录"
#, python-format
msgid "Invalid El Torito validation entry in ISO %(filename)s"
-msgstr ""
-"ISO %(filename)s 中的 El Torito 验证条目无效"
+msgstr "ISO %(filename)s 中的 El Torito 验证条目无效"
#, python-format
msgid "Invalid El Torito boot indicator in ISO %(filename)s"
-msgstr ""
-"ISO %(filename)s 中的 El Torito 引导指示符无效"
+msgstr "ISO %(filename)s 中的 El Torito 引导指示符无效"
#, python-format
msgid "Unexpected volume type for primary volume in ISO %(filename)s"
-msgstr ""
-"ISO %(filename)s 中的主卷具有意外的卷类型"
+msgstr "ISO %(filename)s 中的主卷具有意外的卷类型"
#, python-format
msgid "Bad format while reading volume descriptor in ISO %(filename)s"
-msgstr ""
-"在 ISO %(filename)s 中读取卷描述符时格式不正确"
+msgstr "在 ISO %(filename)s 中读取卷描述符时格式不正确"
#, python-format
msgid ""
@@ -178,265 +149,211 @@ msgid ""
"'%(user)s' to the ISO path group, or (not recommended) 'chmod -R o+x "
"'path_to_iso'.Details: %(err)s"
msgstr ""
-"管理程序不具使用此 ISO %(filename)s 的许可权。"
-"请考虑将其移至 /var/lib/libvirt 下,或者"
-"为“%(user)s”用户设置对文件访问控制表的搜索许可权(如果可以设置),"
-"或者将“%(user)s”添加至 ISO 路径组,或者(不建议)执行“chmod -R o+x "
+"管理程序不具使用此 ISO %(filename)s 的许可权。请考虑将其移至 /var/lib/"
+"libvirt 下,或者为“%(user)s”用户设置对文件访问控制表的搜索许可权(如果可以设"
+"置),或者将“%(user)s”添加至 ISO 路径组,或者(不建议)执行“chmod -R o+x "
"path_to_iso”。详细信息:%(err)s"
msgid "An error occurred when probing image OS information."
-msgstr ""
-"探测映像操作系统信息时发生错误。"
+msgstr "探测映像操作系统信息时发生错误。"
msgid "No OS information found in given image."
-msgstr ""
-"在给定映像中找不到操作系统信息。"
+msgstr "在给定映像中找不到操作系统信息。"
#, python-format
msgid "Unable to read image file %(filename)s"
-msgstr ""
-"无法读取映像文件 %(filename)s"
+msgstr "无法读取映像文件 %(filename)s"
#, python-format
msgid ""
"Image file must be an existing file on system. %(filename)s is not a valid "
"input."
-msgstr ""
-"映像文件必须是系统上的现有文件。%(filename)s 不是有效"
-"输入。"
+msgstr "映像文件必须是系统上的现有文件。%(filename)s 不是有效输入。"
#, python-format
msgid "Virtual machine %(name)s already exists"
-msgstr ""
-"虚拟机 %(name)s 已存在"
+msgstr "虚拟机 %(name)s 已存在"
#, python-format
msgid "Virtual machine %(name)s does not exist"
-msgstr ""
-"虚拟机 %(name)s 不存在"
+msgstr "虚拟机 %(name)s 不存在"
#, python-format
msgid ""
"Unable to rename virtual machine %(name)s. The name %(new_name)s is already "
"in use or the virtual machine is not powered off."
msgstr ""
-"无法对虚拟机 %(name)s 进行重命名。名称 %(new_name)s 已"
-"在使用中,或者该虚拟机未关闭电源。"
+"无法对虚拟机 %(name)s 进行重命名。名称 %(new_name)s 已在使用中,或者该虚拟机"
+"未关闭电源。"
#, python-format
msgid "Unable to retrieve screenshot for stopped virtual machine %(name)s"
-msgstr ""
-"无法检索已停止虚拟机 %(name)s 的屏幕快照"
+msgstr "无法检索已停止虚拟机 %(name)s 的屏幕快照"
msgid "Remote ISO image is not supported by this server."
-msgstr ""
-"远程 ISO 映像不受此服务器支持。"
+msgstr "远程 ISO 映像不受此服务器支持。"
#, python-format
msgid "Screenshot is not supported on virtual machine %(name)s"
-msgstr ""
-"屏幕快照在虚拟机 %(name)s 上不受支持"
+msgstr "屏幕快照在虚拟机 %(name)s 上不受支持"
#, python-format
msgid "Unable to create virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"无法创建虚拟机 %(name)s。详细信息:%(err)s"
+msgstr "无法创建虚拟机 %(name)s。详细信息:%(err)s"
#, python-format
msgid "Unable to update virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"无法更新虚拟机 %(name)s。详细信息:%(err)s"
+msgstr "无法更新虚拟机 %(name)s。详细信息:%(err)s"
#, python-format
msgid "Unable to retrieve virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"无法检索虚拟机 %(name)s。详细信息:%(err)s"
+msgstr "无法检索虚拟机 %(name)s。详细信息:%(err)s"
#, python-format
msgid "Unable to connect to powered off virtual machine %(name)s."
-msgstr ""
-"无法连接到已关闭电源的虚拟机 %(name)s。"
+msgstr "无法连接到已关闭电源的虚拟机 %(name)s。"
msgid "Virtual machine name must be a string without slashes (/)"
-msgstr ""
-"虚拟机名称必须是不带斜杠 (/) 的字符串"
+msgstr "虚拟机名称必须是不带斜杠 (/) 的字符串"
#, python-format
msgid "Invalid template URI %(value)s specified for virtual machine"
-msgstr ""
-"为虚拟机指定的模板 URI %(value)s 无效"
+msgstr "为虚拟机指定的模板 URI %(value)s 无效"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for virtual machine"
-msgstr ""
-"为虚拟机指定的存储池 URI %(value)s 无效"
+msgstr "为虚拟机指定的存储池 URI %(value)s 无效"
msgid "Supported virtual machine graphics are Spice or VNC"
-msgstr ""
-"受支持的虚拟机图形为 Spice 或 VNC"
+msgstr "受支持的虚拟机图形为 Spice 或 VNC"
msgid "Graphics address to listen on must be IPv4 or IPv6"
-msgstr ""
-"要侦听的图形地址必须是 IPv4 或 IPv6"
+msgstr "要侦听的图形地址必须是 IPv4 或 IPv6"
msgid "Specify a template to create a virtual machine from"
-msgstr ""
-"指定要从其创建虚拟机的模板"
+msgstr "指定要从其创建虚拟机的模板"
#, python-format
msgid "Unable to start virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"无法启动虚拟机 %(name)s。详细信息:%(err)s"
+msgstr "无法启动虚拟机 %(name)s。详细信息:%(err)s"
#, python-format
msgid "Unable to power off virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"无法关闭虚拟机 %(name)s 的电源。详细信息:%(err)s"
+msgstr "无法关闭虚拟机 %(name)s 的电源。详细信息:%(err)s"
#, python-format
msgid "Unable to delete virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"无法删除虚拟机 %(name)s。详细信息:%(err)s"
+msgstr "无法删除虚拟机 %(name)s。详细信息:%(err)s"
#, python-format
msgid "Unable to reset virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"无法重置虚拟机 %(name)s。详细信息:%(err)s"
+msgstr "无法重置虚拟机 %(name)s。详细信息:%(err)s"
msgid "User name list must be an array"
-msgstr ""
-"用户名列表必须是数组"
+msgstr "用户名列表必须是数组"
msgid "User name must be a string"
-msgstr ""
-"用户名必须是字符串"
+msgstr "用户名必须是字符串"
msgid "Group name list must be an array"
-msgstr ""
-"组名列表必须是数组"
+msgstr "组名列表必须是数组"
msgid "Group name must be a string"
-msgstr ""
-"组名必须是字符串"
+msgstr "组名必须是字符串"
#, python-format
msgid "User(s) '%(users)s' do not exist"
-msgstr ""
-"用户“%(users)s”不存在"
+msgstr "用户“%(users)s”不存在"
#, python-format
msgid "Group(s) '%(groups)s' do not exist"
-msgstr ""
-"组“%(groups)s”不存在"
+msgstr "组“%(groups)s”不存在"
#, python-format
msgid "Unable to shutdown virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"无法关闭虚拟机 %(name)s。详细信息:%(err)s"
+msgstr "无法关闭虚拟机 %(name)s。详细信息:%(err)s"
#, python-format
msgid ""
"Unable to get access metadata of virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"无法访问虚拟机 %(name)s 的元数据。详细信息:%(err)s"
+msgstr "无法访问虚拟机 %(name)s 的元数据。详细信息:%(err)s"
msgid "The guest console password must be a string."
-msgstr ""
-"访客控制台密码必须是字符串。"
+msgstr "访客控制台密码必须是字符串。"
msgid "The life time for the guest console password must be a number."
-msgstr ""
-"访客控制台密码的有效期必须是数字。"
+msgstr "访客控制台密码的有效期必须是数字。"
#, python-format
msgid "Virtual machine '%(name)s' must be stopped before cloning it."
-msgstr ""
-"在对虚拟机“%(name)s”进行克隆之前,必须将其停止。"
+msgstr "在对虚拟机“%(name)s”进行克隆之前,必须将其停止。"
#, python-format
msgid "Insufficient disk space to clone virtual machine '%(name)s'"
-msgstr ""
-"没有足够的磁盘空间,无法对虚拟机“%(name)s”进行克隆"
+msgstr "没有足够的磁盘空间,无法对虚拟机“%(name)s”进行克隆"
#, python-format
msgid "Unable to clone VM '%(name)s'. Details: %(err)s"
-msgstr ""
-"无法对 VM“%(name)s”进行克隆。详细信息:%(err)s"
+msgstr "无法对 VM“%(name)s”进行克隆。详细信息:%(err)s"
#, python-format
msgid "Invalid operation for non-persistent virtual machine %(name)s"
-msgstr ""
-"对非持久性虚拟机 %(name)s 的操作无效"
+msgstr "对非持久性虚拟机 %(name)s 的操作无效"
#, python-format
msgid "Cannot suspend VM '%(name)s' because it is not running."
-msgstr ""
-"无法暂挂 VM“%(name)s”,因为它未在运行。"
+msgstr "无法暂挂 VM“%(name)s”,因为它未在运行。"
#, python-format
msgid "Unable to suspend VM '%(name)s'. Details: %(err)s"
-msgstr ""
-"无法暂挂 VM“%(name)s”。详细信息:%(err)s"
+msgstr "无法暂挂 VM“%(name)s”。详细信息:%(err)s"
#, python-format
msgid "Cannot resume VM '%(name)s' because it is not paused."
-msgstr ""
-"无法恢复 VM“%(name)s”,因为它未暂停。"
+msgstr "无法恢复 VM“%(name)s”,因为它未暂停。"
#, python-format
msgid "Unable to resume VM '%(name)s'. Details: %(err)s"
-msgstr ""
-"无法恢复 VM“%(name)s”。详细信息:%(err)s"
+msgstr "无法恢复 VM“%(name)s”。详细信息:%(err)s"
msgid "Memory assigned is higher then the maximum allowed in the host."
-msgstr ""
-"分配的内存超过了主机中允许的最大内存。"
+msgstr "分配的内存超过了主机中允许的最大内存。"
#, python-format
msgid ""
"VM '%(name)s' does not support live memory update. Update the memory with "
"the machine offline to enable this feature."
msgstr ""
-"VM“%(name)s”不支持实时内存更新。请在机器脱机的情况下"
-"更新内存以启用此功能。"
+"VM“%(name)s”不支持实时内存更新。请在机器脱机的情况下更新内存以启用此功能。"
msgid "Only increase memory is allowed in active VMs"
-msgstr ""
-"仅允许在活动 VM 中增加内存"
+msgstr "仅允许在活动 VM 中增加内存"
msgid ""
"For live memory update, new memory value must be equal old memory value plus "
"multiples of 1024 Mib"
-msgstr ""
-"对于实时内存更新,新内存值必须等于旧内存值加上 "
-"1024 Mib 的倍数"
+msgstr "对于实时内存更新,新内存值必须等于旧内存值加上 1024 Mib 的倍数"
msgid "There are not enough free slots of 1024 Mib in the guest."
-msgstr ""
-"访客中没有足够的可用插槽(大小为 1024 Mib)。"
+msgstr "访客中没有足够的可用插槽(大小为 1024 Mib)。"
msgid ""
"Host's libvirt version does not support memory devices. Libvirt must be >= "
"1.2.14"
-msgstr ""
-"主机的 Libvirt 版本不支持内存设备。Libvirt 必须 >= "
-"1.2.14"
+msgstr "主机的 Libvirt 版本不支持内存设备。Libvirt 必须 >= 1.2.14"
#, python-format
msgid "Error attaching memory device. Details: %(error)s"
-msgstr ""
-"连接内存设备时出错。详细信息:%(error)s"
+msgstr "连接内存设备时出错。详细信息:%(error)s"
#, python-format
msgid ""
"VM %(vmid)s does not contain directly assigned host device %(dev_name)s."
-msgstr ""
-"VM %(vmid)s 不包含直接分配的主机设备 %(dev_name)s。"
+msgstr "VM %(vmid)s 不包含直接分配的主机设备 %(dev_name)s。"
#, python-format
msgid "The host device %(dev_name)s is not allowed to directly assign to VM."
-msgstr ""
-"不允许将主机设备 %(dev_name)s 直接分配给 VM。"
+msgstr "不允许将主机设备 %(dev_name)s 直接分配给 VM。"
msgid ""
"No IOMMU groups found. Host PCI pass through needs IOMMU group to function "
@@ -445,2397 +362,1835 @@ msgid ""
"to your Kernel parameter in /boot/grub2/grub.conf. For AMD CPU, add iommu=pt "
"iommu=1."
msgstr ""
-"找不到任何 IOMMU 组。主机 PCI 联通需要 IOMMU 组才能"
-"正常工作。请在 BIOS 中启用 Intel VT-d 或 AMD IOMMU,"
-"然后验证“内核”是否已使用 IOMMU 支持编译。对于 Intel CPU,请将 intel_iommu=on "
-"添加至 /boot/grub2/grub.conf 中的内核参数。对于 AMD CPU,请添加 iommu=pt "
-"iommu=1。"
+"找不到任何 IOMMU 组。主机 PCI 联通需要 IOMMU 组才能正常工作。请在 BIOS 中启"
+"用 Intel VT-d 或 AMD IOMMU,然后验证“内核”是否已使用 IOMMU 支持编译。对于 "
+"Intel CPU,请将 intel_iommu=on 添加至 /boot/grub2/grub.conf 中的内核参数。对"
+"于 AMD CPU,请添加 iommu=pt iommu=1。"
msgid "\"name\" should be a device name string"
-msgstr ""
-"“name”应该为设备名字符串"
+msgstr "“name”应该为设备名字符串"
#, python-format
msgid ""
"The device %(name)s is probably in use by the host. Unable to attach it to "
"the guest."
-msgstr ""
-"主机可能正在使用设备 %(name)s。无法将该设备连接到"
-"访客。"
+msgstr "主机可能正在使用设备 %(name)s。无法将该设备连接到访客。"
#, python-format
msgid "Interface %(iface)s does not exist in virtual machine %(name)s"
-msgstr ""
-"接口 %(iface)s 在虚拟机 %(name)s 中不存在"
+msgstr "接口 %(iface)s 在虚拟机 %(name)s 中不存在"
#, python-format
msgid ""
"Network %(network)s specified for virtual machine %(name)s does not exist"
-msgstr ""
-"为以下虚拟机指定的网络 %(network)s 不存在:%(name)s"
+msgstr "为以下虚拟机指定的网络 %(network)s 不存在:%(name)s"
msgid "Supported virtual machine interfaces type is only network"
-msgstr ""
-"受支持的虚拟机接口类型只有网络"
+msgstr "受支持的虚拟机接口类型只有网络"
msgid "Network name for virtual machine interface must be a string"
-msgstr ""
-"虚拟机接口的网络名必须是字符串"
+msgstr "虚拟机接口的网络名必须是字符串"
msgid "Invalid network model card specified for virtual machine interface"
-msgstr ""
-"为虚拟机接口所指定的网络模型卡无效"
+msgstr "为虚拟机接口所指定的网络模型卡无效"
msgid "Specify type and network to add a new virtual machine interface"
-msgstr ""
-"指定类型和网络以添加新虚拟机接口"
+msgstr "指定类型和网络以添加新虚拟机接口"
msgid "MAC Address must respect this format FF:FF:FF:FF:FF:FF"
-msgstr ""
-"MAC 地址必须遵循格式 FF:FF:FF:FF:FF:FF"
+msgstr "MAC 地址必须遵循格式 FF:FF:FF:FF:FF:FF"
#, python-format
msgid "MAC Address %(mac)s already exists in virtual machine %(name)s"
-msgstr ""
-"MAC 地址 %(mac)s 已在虚拟机 %(name)s 中存在"
+msgstr "MAC 地址 %(mac)s 已在虚拟机 %(name)s 中存在"
msgid "Invalid MAC Address"
-msgstr ""
-"无效 MAC 地址"
+msgstr "无效 MAC 地址"
msgid "Cannot change MAC address of a running virtual machine"
-msgstr ""
-"无法更改正在运行的虚拟机的 MAC 地址"
+msgstr "无法更改正在运行的虚拟机的 MAC 地址"
#, python-format
msgid "Template %(name)s already exists"
-msgstr ""
-"模板 %(name)s 已存在"
+msgstr "模板 %(name)s 已存在"
#, python-format
msgid ""
"Network '%(network)s' specified for template %(template)s does not exist"
-msgstr ""
-"为以下模板指定的网络“%(network)s”不存在:%(template)s"
+msgstr "为以下模板指定的网络“%(network)s”不存在:%(template)s"
#, python-format
msgid ""
"Storage pool %(pool)s specified for template %(template)s does not exist"
-msgstr ""
-"为以下模板指定的存储池 %(pool)s 不存在:%(template)s"
+msgstr "为以下模板指定的存储池 %(pool)s 不存在:%(template)s"
#, python-format
msgid "Storage pool %(pool)s specified for template %(template)s is not active"
-msgstr ""
-"为以下模板指定的存储池 %(pool)s 未处于活动状态:%(template)s"
+msgstr "为以下模板指定的存储池 %(pool)s 未处于活动状态:%(template)s"
#, python-format
msgid "Invalid parameter '%(param)s' specified for CDROM."
-msgstr ""
-"为 CDROM 指定的参数“%(param)s”无效。"
+msgstr "为 CDROM 指定的参数“%(param)s”无效。"
#, python-format
msgid "Network %(network)s specified for template %(template)s is not active"
-msgstr ""
-"为以下模板指定的网络 %(network)s 未处于活动状态:%(template)s"
+msgstr "为以下模板指定的网络 %(network)s 未处于活动状态:%(template)s"
msgid "Template name must be a string"
-msgstr ""
-"模板名称必须是字符串"
+msgstr "模板名称必须是字符串"
msgid "Template icon must be a path to the image"
-msgstr ""
-"模板图标必须是映像的路径"
+msgstr "模板图标必须是映像的路径"
msgid "Template distribution must be a string"
-msgstr ""
-"模板分发版必须是字符串"
+msgstr "模板分发版必须是字符串"
msgid "Template distribution version must be a string"
-msgstr ""
-"模板分发版版本必须是字符串"
+msgstr "模板分发版版本必须是字符串"
msgid "The number of CPUs must be an integer greater than 0"
-msgstr ""
-"CPU 的数目必须是一个大于 0 的整数"
+msgstr "CPU 的数目必须是一个大于 0 的整数"
msgid "Amount of memory (MB) must be an integer greater than 512"
-msgstr ""
-"内存量 (MB) 必须是一个大于 512 的整数"
+msgstr "内存量 (MB) 必须是一个大于 512 的整数"
msgid "Template CDROM must be a local or remote ISO file"
-msgstr ""
-"模板 CDROM 必须是一个本地或远程 ISO 文件"
+msgstr "模板 CDROM 必须是一个本地或远程 ISO 文件"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for template"
-msgstr ""
-"为模板指定的存储池 URI %(value)s 无效"
+msgstr "为模板指定的存储池 URI %(value)s 无效"
msgid "Specify an ISO image as CDROM or a base image to create a template"
-msgstr ""
-"指定 ISO 映像作为 CDROM 或基本映像以创建模板"
+msgstr "指定 ISO 映像作为 CDROM 或基本映像以创建模板"
msgid "All networks for the template must be specified in a list."
-msgstr ""
-"必须指定列表中模板的所有网络。"
+msgstr "必须指定列表中模板的所有网络。"
msgid "Specify a volume to a template when storage pool is iSCSI or SCSI"
-msgstr ""
-"当存储池为 iSCSI 或 SCSI 时,请对模板指定卷。"
+msgstr "当存储池为 iSCSI 或 SCSI 时,请对模板指定卷。"
#, python-format
msgid "The volume %(volume)s is not in storage pool %(pool)s"
-msgstr ""
-"卷 %(volume)s 不在存储池 %(pool)s 中"
+msgstr "卷 %(volume)s 不在存储池 %(pool)s 中"
#, python-format
msgid "Unable to create template due error: %(err)s"
-msgstr ""
-"无法创建模板,因为发生了错误:%(err)s"
+msgstr "无法创建模板,因为发生了错误:%(err)s"
#, python-format
msgid "Unable to delete template due error: %(err)s"
-msgstr ""
-"无法删除模板,因为发生了错误:%(err)s"
+msgstr "无法删除模板,因为发生了错误:%(err)s"
msgid "Disk size must be an integer greater than 1GB."
-msgstr ""
-"磁盘大小必须是大于 1 GB 的整数。"
+msgstr "磁盘大小必须是大于 1 GB 的整数。"
msgid "Template base image must be a valid local image file"
-msgstr ""
-"模板基本映像必须是有效的本地映像文件"
+msgstr "模板基本映像必须是有效的本地映像文件"
#, python-format
msgid "Cannot identify base image %(path)s format"
-msgstr ""
-"无法识别基本映像 %(path)s 格式"
+msgstr "无法识别基本映像 %(path)s 格式"
msgid ""
"When specifying CPU topology, VCPUs must be a product of sockets, cores, and "
"threads."
-msgstr ""
-"指定 CPU 拓扑时,vCPU 数必须是套接字数、核心数和"
-"线程数的乘积。"
+msgstr "指定 CPU 拓扑时,vCPU 数必须是套接字数、核心数和线程数的乘积。"
msgid ""
"When specifying CPU topology, each element must be an integer greater than "
"zero."
-msgstr ""
-"指定 CPU 拓扑时,每个元素都必须是大于"
-"零的整数。"
+msgstr "指定 CPU 拓扑时,每个元素都必须是大于零的整数。"
msgid ""
"Invalid disk image format. Valid formats: bochs, cloop, cow, dmg, qcow, "
"qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"无效磁盘映像格式。有效格式:bochs、cloop、cow、dmg、qcow、"
-"qcow2、qed、raw、vmdk 和 vpc。"
+"无效磁盘映像格式。有效格式:bochs、cloop、cow、dmg、qcow、qcow2、qed、raw、"
+"vmdk 和 vpc。"
#, python-format
msgid "Storage pool %(name)s already exists"
-msgstr ""
-"存储池 %(name)s 已存在"
+msgstr "存储池 %(name)s 已存在"
#, python-format
msgid "Storage pool %(name)s does not exist"
-msgstr ""
-"存储池 %(name)s 不存在"
+msgstr "存储池 %(name)s 不存在"
#, python-format
msgid "Specify %(item)s in order to create the storage pool %(name)s"
-msgstr ""
-"指定 %(item)s 以创建存储池 %(name)s"
+msgstr "指定 %(item)s 以创建存储池 %(name)s"
#, python-format
msgid "Unable to delete active storage pool %(name)s"
-msgstr ""
-"无法删除活动存储池 %(name)s"
+msgstr "无法删除活动存储池 %(name)s"
#, python-format
msgid "Unable to list storage pools. Details: %(err)s"
-msgstr ""
-"无法列示存储池。详细信息:%(err)s"
+msgstr "无法列示存储池。详细信息:%(err)s"
#, python-format
msgid "Unable to create storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"无法创建存储池 %(name)s。详细信息:%(err)s"
+msgstr "无法创建存储池 %(name)s。详细信息:%(err)s"
#, python-format
msgid ""
"Unable to get number of storage volumes in storage pool %(name)s. Details: "
"%(err)s"
-msgstr ""
-"无法获取存储池 %(name)s 中存储卷的数目。详细信息:"
-"%(err)s"
+msgstr "无法获取存储池 %(name)s 中存储卷的数目。详细信息:%(err)s"
#, python-format
msgid "Unable to activate storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"无法激活存储池 %(name)s。详细信息:%(err)s"
+msgstr "无法激活存储池 %(name)s。详细信息:%(err)s"
#, python-format
msgid "Unable to deactivate storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"无法取消激活存储池 %(name)s。详细信息:%(err)s"
+msgstr "无法取消激活存储池 %(name)s。详细信息:%(err)s"
#, python-format
msgid "Unable to delete storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"无法删除存储池 %(name)s。详细信息:%(err)s"
+msgstr "无法删除存储池 %(name)s。详细信息:%(err)s"
#, python-format
msgid ""
"Unable to create NFS Pool as export path %(path)s may block during mount"
-msgstr ""
-"无法创建 NFS 池,因为导出路径 %(path)s 可能在安装期间被阻塞"
+msgstr "无法创建 NFS 池,因为导出路径 %(path)s 可能在安装期间被阻塞"
#, python-format
msgid "Unable to create NFS Pool as export path %(path)s mount failed"
-msgstr ""
-"无法创建 NFS 池,因为安装导出路径 %(path)s 失败"
+msgstr "无法创建 NFS 池,因为安装导出路径 %(path)s 失败"
#, python-format
msgid "Unsupported storage pool type: %(type)s"
-msgstr ""
-"不受支持的存储池类型:%(type)s"
+msgstr "不受支持的存储池类型:%(type)s"
#, python-format
msgid "Error while retrieving storage pool XML to %(pool)s"
-msgstr ""
-"将存储池 XML 检索至 %(pool)s 时出错"
+msgstr "将存储池 XML 检索至 %(pool)s 时出错"
msgid "Storage pool name must be a string without slashes (/)"
-msgstr ""
-"存储池名称必须是不带斜杠 (/) 的字符串"
+msgstr "存储池名称必须是不带斜杠 (/) 的字符串"
msgid ""
"Supported storage pool types are dir, netfs, logical, iscsi, isci and kimchi-"
"iso"
-msgstr ""
-"受支持的存储池类型为 dir、netfs、logical、iscsi、isci 和 kimchi-"
-"iso"
+msgstr "受支持的存储池类型为 dir、netfs、logical、iscsi、isci 和 kimchi-iso"
msgid "Storage pool path must be a string"
-msgstr ""
-"存储池路径必须是字符串"
+msgstr "存储池路径必须是字符串"
msgid "Storage pool host must be a IP or hostname"
-msgstr ""
-"存储池主机必须是一个 IP 或主机名"
+msgstr "存储池主机必须是一个 IP 或主机名"
msgid "Storage pool device must be the absolute path to the block device"
-msgstr ""
-"存储池设备必须是块设备的绝对路径"
+msgstr "存储池设备必须是块设备的绝对路径"
msgid "Storage pool devices parameter must be a list"
-msgstr ""
-"存储池设备参数必须是一个列表"
+msgstr "存储池设备参数必须是一个列表"
msgid "Target IQN of an iSCSI pool must be a string"
-msgstr ""
-"iSCSI 池的目标 IQN 必须是字符串"
+msgstr "iSCSI 池的目标 IQN 必须是字符串"
msgid "Port of a remote storage server must be an integer between 1 and 65535"
-msgstr ""
-"远程存储服务器的端口必须是一个介于 1 到 65535 之间的整数"
+msgstr "远程存储服务器的端口必须是一个介于 1 到 65535 之间的整数"
msgid "iSCSI target username must be a string"
-msgstr ""
-"iSCSI 目标用户名必须是字符串"
+msgstr "iSCSI 目标用户名必须是字符串"
msgid "iSCSI target password must be a string"
-msgstr ""
-"iSCSI 目标密码必须是字符串"
+msgstr "iSCSI 目标密码必须是字符串"
msgid "Specify name and type to create a storage pool"
-msgstr ""
-"指定名称和类型以创建存储池"
+msgstr "指定名称和类型以创建存储池"
#, python-format
msgid ""
"%(disk)s is not a valid disk/partition. Could not add it to the pool "
"%(pool)s."
-msgstr ""
-"%(disk)s 不是有效磁盘/分区。无法将其添加至池"
-"%(pool)s。"
+msgstr "%(disk)s 不是有效磁盘/分区。无法将其添加至池%(pool)s。"
#, python-format
msgid "Unable to extend logical pool %(pool)s. Details: %(err)s"
-msgstr ""
-"无法扩展逻辑池 %(pool)s。详细信息:%(err)s"
+msgstr "无法扩展逻辑池 %(pool)s。详细信息:%(err)s"
msgid "The parameter disks only can be updated for logical storage pool."
-msgstr ""
-"只能更新逻辑存储池的参数磁盘。"
+msgstr "只能更新逻辑存储池的参数磁盘。"
msgid "The SCSI host adapter name must be a string."
-msgstr ""
-"SCSI 主机适配器名称必须是字符串。"
+msgstr "SCSI 主机适配器名称必须是字符串。"
msgid "The storage pool kimchi_isos is reserved for internal use"
-msgstr ""
-"存储池 kimchi_isos 已保留供内部使用"
+msgstr "存储池 kimchi_isos 已保留供内部使用"
#, python-format
msgid ""
"Unable to activate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
-msgstr ""
-"无法激活 NFS 存储池 %(name)s。NFS 服务器 %(server)s"
-"不可访问。"
+msgstr "无法激活 NFS 存储池 %(name)s。NFS 服务器 %(server)s不可访问。"
#, python-format
msgid ""
"Unable to deactivate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
-msgstr ""
-"无法取消激活 NFS 存储池 %(name)s。NFS 服务器 %(server)s"
-"不可访问。"
+msgstr "无法取消激活 NFS 存储池 %(name)s。NFS 服务器 %(server)s不可访问。"
#, python-format
msgid ""
"Unable to deactivate pool %(name)s as it is associated with some templates"
-msgstr ""
-"无法取消激活池 %(name)s,因为它与某些模板相关联"
+msgstr "无法取消激活池 %(name)s,因为它与某些模板相关联"
#, python-format
msgid "Unable to delete pool %(name)s as it is associated with some templates"
-msgstr ""
-"无法删除池 %(name)s,因为它与某些模板相关联"
+msgstr "无法删除池 %(name)s,因为它与某些模板相关联"
#, python-format
msgid ""
"A volume group named '%(name)s' already exists. Please, choose another name "
"to create the logical pool."
-msgstr ""
-"名为“%(name)s”的卷组已存在。请选择其他名称"
-"以创建逻辑池。"
+msgstr "名为“%(name)s”的卷组已存在。请选择其他名称以创建逻辑池。"
#, python-format
msgid "Unable to update database with deep scan information due error: %(err)s"
-msgstr ""
-"无法使用深度扫描信息更新数据库,因为发生了错误:%(err)s"
+msgstr "无法使用深度扫描信息更新数据库,因为发生了错误:%(err)s"
#, python-format
msgid "Storage volume %(name)s already exists"
-msgstr ""
-"存储卷 %(name)s 已存在"
+msgstr "存储卷 %(name)s 已存在"
#, python-format
msgid "Storage volume %(name)s does not exist in storage pool %(pool)s"
-msgstr ""
-"存储卷 %(name)s 在存储池 %(pool)s 中不存在"
+msgstr "存储卷 %(name)s 在存储池 %(pool)s 中不存在"
#, python-format
msgid ""
"Unable to create storage volume %(volume)s because storage pool %(pool)s is "
"not active"
-msgstr ""
-"无法创建存储卷 %(volume)s,因为存储池 %(pool)s"
-"未处于活动状态"
+msgstr "无法创建存储卷 %(volume)s,因为存储池 %(pool)s未处于活动状态"
#, python-format
msgid "Specify %(item)s in order to create storage volume %(volume)s"
-msgstr ""
-"指定 %(item)s 以创建存储卷 %(volume)s"
+msgstr "指定 %(item)s 以创建存储卷 %(volume)s"
#, python-format
msgid ""
"Unable to list storage volumes because storage pool %(pool)s is not active"
-msgstr ""
-"无法列示存储卷,因为存储池 %(pool)s 未处于活动状态"
+msgstr "无法列示存储卷,因为存储池 %(pool)s 未处于活动状态"
#, python-format
msgid ""
"Unable to create storage volume %(name)s in storage pool %(pool)s. Details: "
"%(err)s"
-msgstr ""
-"无法在以下存储池中创建存储卷 %(name)s:%(pool)s。详细信息:"
-"%(err)s"
+msgstr "无法在以下存储池中创建存储卷 %(name)s:%(pool)s。详细信息:%(err)s"
#, python-format
msgid ""
"Unable to list storage volumes in storage pool %(pool)s. Details: %(err)s"
-msgstr ""
-"无法列示存储池 %(pool)s 中的存储卷。详细信息:%(err)s"
+msgstr "无法列示存储池 %(pool)s 中的存储卷。详细信息:%(err)s"
#, python-format
msgid "Unable to wipe storage volumes %(name)s. Details: %(err)s"
-msgstr ""
-"无法清除存储卷 %(name)s。详细信息:%(err)s"
+msgstr "无法清除存储卷 %(name)s。详细信息:%(err)s"
#, python-format
msgid "Unable to delete storage volume %(name)s. Details: %(err)s"
-msgstr ""
-"无法删除存储卷 %(name)s。详细信息:%(err)s"
+msgstr "无法删除存储卷 %(name)s。详细信息:%(err)s"
#, python-format
msgid "Unable to resize storage volume %(name)s. Details: %(err)s"
-msgstr ""
-"无法调整存储卷 %(name)s 的大小。详细信息:%(err)s"
+msgstr "无法调整存储卷 %(name)s 的大小。详细信息:%(err)s"
#, python-format
msgid "Storage type %(type)s does not support volume create and delete"
-msgstr ""
-"存储类型 %(type)s 不支持创建和删除卷"
+msgstr "存储类型 %(type)s 不支持创建和删除卷"
msgid "Storage volume name must be a string"
-msgstr ""
-"存储卷名称必须是字符串"
+msgstr "存储卷名称必须是字符串"
msgid "Storage volume allocation must be an integer number"
-msgstr ""
-"存储卷分配必须是一个整数数字"
+msgstr "存储卷分配必须是一个整数数字"
msgid ""
"Storage volume format not supported. Valid formats: bochs, cloop, cow, dmg, "
"qcow, qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"存储卷格式不受支持。有效格式:bochs、cloop、cow、dmg、"
-"qcow‘qcow2、qed、raw、vmdk 和 vpc。"
+"存储卷格式不受支持。有效格式:bochs、cloop、cow、dmg、qcow‘qcow2、qed、raw、"
+"vmdk 和 vpc。"
msgid "Storage volume requires a volume name"
-msgstr ""
-"存储卷需要一个卷名"
+msgstr "存储卷需要一个卷名"
#, python-format
msgid ""
"Unable to update database with storage volume information due error: %(err)s"
-msgstr ""
-"无法使用存储卷信息更新数据库,因为发生了错误:%(err)s"
+msgstr "无法使用存储卷信息更新数据库,因为发生了错误:%(err)s"
#, python-format
msgid "Only one of parameter %(param)s can be specified"
-msgstr ""
-"只能指定一个 %(param)s 参数"
+msgstr "只能指定一个 %(param)s 参数"
#, python-format
msgid "Create volume from %(param)s is not supported"
-msgstr ""
-"不支持根据 %(param)s 创建卷"
+msgstr "不支持根据 %(param)s 创建卷"
msgid "Storage volume capacity must be an integer number."
-msgstr ""
-"存储卷容量必须是整数数字。"
+msgstr "存储卷容量必须是整数数字。"
msgid "Storage volume URL must be http://, https://, ftp:// or ftps://."
-msgstr ""
-"存储卷 URL 必须是 http://、https://、ftp:// 或 ftps://。"
+msgstr "存储卷 URL 必须是 http://、https://、ftp:// 或 ftps://。"
#, python-format
msgid "Unable to access file %(url)s. Please, check it."
-msgstr ""
-"无法访问文件 %(url)s。请检查该文件。"
+msgstr "无法访问文件 %(url)s。请检查该文件。"
#, python-format
msgid ""
"Unable to clone storage volume '%(name)s' in pool '%(pool)s'. Details: "
"%(err)s"
msgstr ""
-"无法对以下池中的存储卷“%(name)s”进行克隆:“%(pool)s”。详细信息:"
-"%(err)s"
+"无法对以下池中的存储卷“%(name)s”进行克隆:“%(pool)s”。详细信息:%(err)s"
msgid "Specify chunk data and its size to upload a file."
-msgstr ""
-"指定区块数据及其大小以上载文件。"
+msgstr "指定区块数据及其大小以上载文件。"
msgid "In order to upload a storage volume, specify the 'upload' parameter."
-msgstr ""
-"要上载存储卷,请指定“upload”参数。"
+msgstr "要上载存储卷,请指定“upload”参数。"
msgid ""
"Unable to upload chunk data as it does not match with requested chunk size."
-msgstr ""
-"无法上载区块数据,因为它与所请求的区块大小不匹配。"
+msgstr "无法上载区块数据,因为它与所请求的区块大小不匹配。"
#, python-format
msgid "The storage volume %(vol)s is not under an upload process."
-msgstr ""
-"存储卷 %(vol)s 未包括在上载过程中。"
+msgstr "存储卷 %(vol)s 未包括在上载过程中。"
msgid "The upload chunk data will exceed the storage volume size."
-msgstr ""
-"上载区块数据将超过存储卷大小。"
+msgstr "上载区块数据将超过存储卷大小。"
#, python-format
msgid "Unable to upload chunk data to storage volume. Details: %(err)s."
-msgstr ""
-"无法将区块数据上载至存储卷。详细信息:%(err)s。"
+msgstr "无法将区块数据上载至存储卷。详细信息:%(err)s。"
#, python-format
msgid "Interface %(name)s does not exist"
-msgstr ""
-"接口 %(name)s 不存在"
+msgstr "接口 %(name)s 不存在"
#, python-format
msgid "Network %(name)s already exists"
-msgstr ""
-"网络 %(name)s 已存在"
+msgstr "网络 %(name)s 已存在"
#, python-format
msgid "Network %(name)s does not exist"
-msgstr ""
-"网络 %(name)s 不存在"
+msgstr "网络 %(name)s 不存在"
#, python-format
msgid "Subnet %(subnet)s specified for network %(network)s is not valid."
-msgstr ""
-"为以下网络指定的子网 %(subnet)s 无效:%(network)s。"
+msgstr "为以下网络指定的子网 %(subnet)s 无效:%(network)s。"
#, python-format
msgid "Specify a network interface to create bridged network %(name)s"
-msgstr ""
-"指定网络接口以创建桥接网络 %(name)s"
+msgstr "指定网络接口以创建桥接网络 %(name)s"
#, python-format
msgid "Unable to delete active network %(name)s"
-msgstr ""
-"无法删除活动网络 %(name)s"
+msgstr "无法删除活动网络 %(name)s"
#, python-format
msgid "Interface %(iface)s specified for network %(network)s is already in use"
-msgstr ""
-"为以下网络指定的接口 %(iface)s 已在使用中:%(network)s"
+msgstr "为以下网络指定的接口 %(iface)s 已在使用中:%(network)s"
msgid "Interface should be bare NIC, bonding or bridge device."
-msgstr ""
-"接口应该是空的 NIC、绑定或网桥设备。"
+msgstr "接口应该是空的 NIC、绑定或网桥设备。"
#, python-format
msgid "Unable to create network %(name)s. Details: %(err)s"
-msgstr ""
-"无法创建网络 %(name)s。详细信息:%(err)s"
+msgstr "无法创建网络 %(name)s。详细信息:%(err)s"
#, python-format
msgid "Unable to find a free IP address for network '%(name)s'"
-msgstr ""
-"找不到网络“%(name)s”的可用 IP 地址"
+msgstr "找不到网络“%(name)s”的可用 IP 地址"
#, python-format
msgid "The interface %(iface)s already exists."
-msgstr ""
-"接口 %(iface)s 已存在。"
+msgstr "接口 %(iface)s 已存在。"
msgid "Network name must be a string without slashes (/) or quotes (\")"
-msgstr ""
-"网络名必须是不带斜杠 (/) 或引号 (\") 的字符串"
+msgstr "网络名必须是不带斜杠 (/) 或引号 (\") 的字符串"
msgid "Supported network types are isolated, NAT and bridge"
-msgstr ""
-"受支持的网络类型为隔离、NAT 和桥接"
+msgstr "受支持的网络类型为隔离、NAT 和桥接"
msgid "Network subnet must be a string with IP address and prefix or netmask"
-msgstr ""
-"网络子网是一个具有 IP 地址以及前缀或网络掩码的字符串"
+msgstr "网络子网是一个具有 IP 地址以及前缀或网络掩码的字符串"
msgid "Network interface must be a string"
-msgstr ""
-"网络接口必须是字符串"
+msgstr "网络接口必须是字符串"
msgid "Network VLAN ID must be an integer between 1 and 4094"
-msgstr ""
-"网络 VLAN 标识必须是一个介于 1 到 4094 之间的整数"
+msgstr "网络 VLAN 标识必须是一个介于 1 到 4094 之间的整数"
msgid "Specify name and type to create a Network"
-msgstr ""
-"指定名称和类型以创建网络"
+msgstr "指定名称和类型以创建网络"
#, python-format
msgid ""
"Unable to delete network %(name)s. There are some virtual machines %(vms)s "
"and/or templates linked to this network."
-msgstr ""
-"无法删除网络 %(name)s。一些虚拟机 %(vms)s "
-"和/或模板已链接至此网络。"
+msgstr "无法删除网络 %(name)s。一些虚拟机 %(vms)s 和/或模板已链接至此网络。"
#, python-format
msgid ""
"Unable to deactivate network %(name)s. There are some virtual machines "
"%(vms)s and/or templates linked to this network."
msgstr ""
-"无法取消激活网络 %(name)s。一些虚拟机 "
-"%(vms)s 和/或模板已链接至此网络。"
+"无法取消激活网络 %(name)s。一些虚拟机 %(vms)s 和/或模板已链接至此网络。"
#, python-format
msgid "Bridge device %(name)s can not be the trunk device of a VLAN."
-msgstr ""
-"网桥设备 %(name)s 不能是 VLAN 的主要设备。"
+msgstr "网桥设备 %(name)s 不能是 VLAN 的主要设备。"
#, python-format
msgid "Failed to activate interface %(iface)s: %(err)s."
-msgstr ""
-"未能激活接口 %(iface)s:%(err)s。"
+msgstr "未能激活接口 %(iface)s:%(err)s。"
#, python-format
msgid ""
"Failed to activate interface %(iface)s. Please check the physical link "
"status."
-msgstr ""
-"未能激活接口 %(iface)s。请检查物理链路"
-"状态。"
+msgstr "未能激活接口 %(iface)s。请检查物理链路状态。"
#, python-format
msgid "Failed to start network %(name)s. Details: %(err)s"
-msgstr ""
-"未能启动网络 %(name)s。详细信息:%(err)s"
+msgstr "未能启动网络 %(name)s。详细信息:%(err)s"
#, python-format
msgid "Debug report %(name)s does not exist"
-msgstr ""
-"调试报告 %(name)s 不存在"
+msgstr "调试报告 %(name)s 不存在"
msgid "Debug report tool not found in system"
-msgstr ""
-"系统中找不到调试报告工具"
+msgstr "系统中找不到调试报告工具"
#, python-format
msgid "Unable to create debug report %(name)s. Details: %(err)s."
-msgstr ""
-"无法创建调试报告 %(name)s。详细信息:%(err)s。"
+msgstr "无法创建调试报告 %(name)s。详细信息:%(err)s。"
#, python-format
msgid "Can not find any debug report with the given name %(name)s"
-msgstr ""
-"找不到具有给定名称 %(name)s 的任何调试报告"
+msgstr "找不到具有给定名称 %(name)s 的任何调试报告"
#, python-format
msgid "Unable to generate debug report %(name)s. Details: %(err)s"
-msgstr ""
-"无法生成调试报告 %(name)s。详细信息:%(err)s"
+msgstr "无法生成调试报告 %(name)s。详细信息:%(err)s"
msgid "You should give a name for the debug report file."
-msgstr ""
-"您应该为调试报告文件指定名称。"
+msgstr "您应该为调试报告文件指定名称。"
msgid ""
"Debug report name must be a string. Only letters, digits, underscore ('_') "
"and hyphen ('-') are allowed."
msgstr ""
-"调试报告名称必须是字符串。只允许包含字母、数字、下划线(“_”)"
-"和连字符(“-”)。"
+"调试报告名称必须是字符串。只允许包含字母、数字、下划线(“_”)和连字符"
+"(“-”)。"
#, python-format
msgid ""
"The debug report with specified name \"%(name)s\" already exists. Please use "
"another one."
-msgstr ""
-"具有指定名称“%(name)s”的调试报告已存在。请使用"
-"另一个名称。"
+msgstr "具有指定名称“%(name)s”的调试报告已存在。请使用另一个名称。"
#, python-format
msgid "Storage server %(server)s was not used by Kimchi"
-msgstr ""
-"Kimchi 未使用存储服务器 %(server)s"
+msgstr "Kimchi 未使用存储服务器 %(server)s"
#, python-format
msgid "Distro '%(name)s' does not exist"
-msgstr ""
-"Distro“%(name)s”不存在"
+msgstr "Distro“%(name)s”不存在"
#, python-format
msgid "Partition %(name)s does not exist in the host"
-msgstr ""
-"分区 %(name)s 在主机中不存在"
+msgstr "分区 %(name)s 在主机中不存在"
msgid "Unable to shutdown host machine as there are running virtual machines"
-msgstr ""
-"由于存在正在运行的虚拟机而无法关闭主机"
+msgstr "由于存在正在运行的虚拟机而无法关闭主机"
msgid "Unable to reboot host machine as there are running virtual machines"
-msgstr ""
-"由于存在正在运行的虚拟机而无法重新引导主机"
+msgstr "由于存在正在运行的虚拟机而无法重新引导主机"
#, python-format
msgid "Node device '%(name)s' not found"
-msgstr ""
-"找不到节点设备“%(name)s”"
+msgstr "找不到节点设备“%(name)s”"
msgid "Conflicting flag filters specified."
-msgstr ""
-"指定的标志过滤器有冲突。"
+msgstr "指定的标志过滤器有冲突。"
msgid "No packages marked for update"
-msgstr ""
-"未标记要更新的任何软件包"
+msgstr "未标记要更新的任何软件包"
#, python-format
msgid "Package %(name)s is not marked to be updated."
-msgstr ""
-"软件包 %(name)s 未标记为要进行更新。"
+msgstr "软件包 %(name)s 未标记为要进行更新。"
#, python-format
msgid "Error while getting packages marked to be updated. Details: %(err)s"
-msgstr ""
-"获取已标记为要进行更新的软件包时出错。详细信息:%(err)s"
+msgstr "获取已标记为要进行更新的软件包时出错。详细信息:%(err)s"
msgid "There is no compatible package manager for this system."
-msgstr ""
-"此系统不存在任何兼容的软件包管理器。"
+msgstr "此系统不存在任何兼容的软件包管理器。"
#, python-format
msgid "Unable to find %(item)s in datastore"
-msgstr ""
-"在数据存储器中找不到 %(item)s"
+msgstr "在数据存储器中找不到 %(item)s"
#, python-format
msgid "Invalid URI %(uri)s"
-msgstr ""
-"无效 URI %(uri)s"
+msgstr "无效 URI %(uri)s"
#, python-format
msgid "Timeout while running command '%(cmd)s' after %(seconds)s seconds"
-msgstr ""
-"运行命令“%(cmd)s”时,在 %(seconds)s 秒后超时"
+msgstr "运行命令“%(cmd)s”时,在 %(seconds)s 秒后超时"
msgid "Unable to choose a virtual machine name"
-msgstr ""
-"无法选择虚拟机名称"
+msgstr "无法选择虚拟机名称"
#, python-format
msgid "Invalid data value '%(value)s'"
-msgstr ""
-"无效数据值“%(value)s”"
+msgstr "无效数据值“%(value)s”"
#, python-format
msgid "Invalid data unit '%(unit)s'"
-msgstr ""
-"无效数据单元“%(unit)s”"
+msgstr "无效数据单元“%(unit)s”"
msgid "Invalid storage type. Types supported: 'cdrom', 'disk'"
-msgstr ""
-"存储类型无效。受支持的类型:“cdrom”和“disk”"
+msgstr "存储类型无效。受支持的类型:“cdrom”和“disk”"
#, python-format
msgid "The path '%(value)s' is not a valid local/remote path for the device"
-msgstr ""
-"路径“%(value)s”不是设备的有效本地/远程路径"
+msgstr "路径“%(value)s”不是设备的有效本地/远程路径"
msgid "Only CDROM path can be update."
-msgstr ""
-"只能更新 CDROM 路径。"
+msgstr "只能更新 CDROM 路径。"
#, python-format
msgid ""
"The storage device %(dev_name)s does not exist in the virtual machine "
"%(vm_name)s"
-msgstr ""
-"存储设备 %(dev_name)s 在虚拟机 "
-"%(vm_name)s 中不存在"
+msgstr "存储设备 %(dev_name)s 在虚拟机 %(vm_name)s 中不存在"
#, python-format
msgid "Error while creating new storage device: %(error)s"
-msgstr ""
-"创建新存储设备时出错:%(error)s"
+msgstr "创建新存储设备时出错:%(error)s"
#, python-format
msgid "Error while updating storage device: %(error)s"
-msgstr ""
-"更新存储设备时出错:%(error)s"
+msgstr "更新存储设备时出错:%(error)s"
#, python-format
msgid "Error while removing storage device: %(error)s"
-msgstr ""
-"移除存储设备时出错:%(error)s"
+msgstr "移除存储设备时出错:%(error)s"
msgid "Do not support IDE device hot plug"
-msgstr ""
-"不支持 IDE 设备热插拔"
+msgstr "不支持 IDE 设备热插拔"
msgid ""
"Specify type and path or type and pool/volume to add a new virtual machine "
"disk"
-msgstr ""
-"指定类型和路径或输入池/卷以以添加新虚拟机"
-"磁盘"
+msgstr "指定类型和路径或输入池/卷以以添加新虚拟机磁盘"
msgid "Specify path to update virtual machine disk"
-msgstr ""
-"指定路径以更新虚拟机磁盘"
+msgstr "指定路径以更新虚拟机磁盘"
#, python-format
msgid "Controller type %(type)s limitation of %(limit)s devices reached"
-msgstr ""
-"已达到控制器类型 %(type)s 限制 %(limit)s"
+msgstr "已达到控制器类型 %(type)s 限制 %(limit)s"
#, python-format
msgid "Cannot retrieve disk path information for given pool/volume: %(error)s"
-msgstr ""
-"无法检索给定池/卷的磁盘路径信息:%(error)s"
+msgstr "无法检索给定池/卷的磁盘路径信息:%(error)s"
msgid "Volume already in use by other virtual machine."
-msgstr ""
-"其他虚拟机已在使用该卷。"
+msgstr "其他虚拟机已在使用该卷。"
msgid ""
"Only one of path or pool/volume can be specified to add a new virtual "
"machine disk"
-msgstr ""
-"仅能指定一个路径或池/卷以添加至 "
-"虚拟机磁盘"
+msgstr "仅能指定一个路径或池/卷以添加至 虚拟机磁盘"
#, python-format
msgid ""
"Volume chosen with format %(format)s does not fit in the storage type "
"%(type)s"
-msgstr ""
-"选择的格式为 %(format)s 的卷不适合于存储类型 "
-"%(type)s"
+msgstr "选择的格式为 %(format)s 的卷不适合于存储类型 %(type)s"
msgid "YUM Repository ID must be one word only string."
-msgstr ""
-"Yum 存储库标识必须是一个单词的唯一字符串。"
+msgstr "Yum 存储库标识必须是一个单词的唯一字符串。"
msgid "Repository URL must be an http://, ftp:// or file:// URL."
-msgstr ""
-"存储库 URL 必须是 http://、ftp:// 或 file:// URL。"
+msgstr "存储库 URL 必须是 http://、ftp:// 或 file:// URL。"
msgid ""
"Repository configuration is a dictionary with specific values according to "
"repository type."
-msgstr ""
-"存储库配置是具有针对存储库类型的特定值的"
-"字典。"
+msgstr "存储库配置是具有针对存储库类型的特定值的字典。"
msgid "Distribution to DEB repository must be a string"
-msgstr ""
-"DEB 存储库的分发版必须是字符串"
+msgstr "DEB 存储库的分发版必须是字符串"
msgid "Components to DEB repository must be listed in a array"
-msgstr ""
-"DEB 存储库的组件必须列示在数组中"
+msgstr "DEB 存储库的组件必须列示在数组中"
msgid "Components to DEB repository must be a string"
-msgstr ""
-"DEB 存储库的组件必须是字符串"
+msgstr "DEB 存储库的组件必须是字符串"
msgid "Mirror list to repository must be a string"
-msgstr ""
-"存储库的镜像列表必须是字符串"
+msgstr "存储库的镜像列表必须是字符串"
msgid "YUM Repository name must be string."
-msgstr ""
-"Yum 存储库名称必须是字符串。"
+msgstr "Yum 存储库名称必须是字符串。"
msgid "GPG check must be a boolean value."
-msgstr ""
-"GPG 检查必须是一个布尔值。"
+msgstr "GPG 检查必须是一个布尔值。"
msgid "GPG key must be a URL pointing to the ASCII-armored file."
-msgstr ""
-"GPG 密钥必须是指向 ASCII 编码文件的 URL。"
+msgstr "GPG 密钥必须是指向 ASCII 编码文件的 URL。"
#, python-format
msgid "Could not update repository %(repo_id)s."
-msgstr ""
-"无法更新存储库 %(repo_id)s。"
+msgstr "无法更新存储库 %(repo_id)s。"
#, python-format
msgid "Repository %(repo_id)s does not exist."
-msgstr ""
-"存储库 %(repo_id)s 不存在。"
+msgstr "存储库 %(repo_id)s 不存在。"
msgid ""
"Specify repository base URL, mirror list or metalink in order to create or "
"update a YUM repository."
-msgstr ""
-"指定存储库基本 URL、镜像列表或元链接以创建或"
-"更新 Yum 存储库。"
+msgstr "指定存储库基本 URL、镜像列表或元链接以创建或更新 Yum 存储库。"
msgid "Repository management tool was not recognized for your system."
-msgstr ""
-"未识别您的系统的存储库管理工具。"
+msgstr "未识别您的系统的存储库管理工具。"
#, python-format
msgid "Repository %(repo_id)s is already enabled."
-msgstr ""
-"已启用存储库 %(repo_id)s。"
+msgstr "已启用存储库 %(repo_id)s。"
#, python-format
msgid "Repository %(repo_id)s is already disabled."
-msgstr ""
-"已禁用存储库 %(repo_id)s。"
+msgstr "已禁用存储库 %(repo_id)s。"
#, python-format
msgid "Could not remove repository %(repo_id)s."
-msgstr ""
-"无法移除存储库 %(repo_id)s。"
+msgstr "无法移除存储库 %(repo_id)s。"
#, python-format
msgid "Could not write repository configuration file %(repo_file)s"
-msgstr ""
-"无法写入存储库配置文件 %(repo_file)s"
+msgstr "无法写入存储库配置文件 %(repo_file)s"
msgid "Specify repository distribution in order to create a DEB repository."
-msgstr ""
-"指定存储库分发版以创建 DEB 存储库。"
+msgstr "指定存储库分发版以创建 DEB 存储库。"
#, python-format
msgid "Could not enable repository %(repo_id)s."
-msgstr ""
-"无法启用存储库 %(repo_id)s。"
+msgstr "无法启用存储库 %(repo_id)s。"
#, python-format
msgid "Could not disable repository %(repo_id)s."
-msgstr ""
-"无法禁用存储库 %(repo_id)s。"
+msgstr "无法禁用存储库 %(repo_id)s。"
msgid "YUM Repository ID already exists"
-msgstr ""
-"Yum 存储库标识已存在"
+msgstr "Yum 存储库标识已存在"
msgid "YUM Repository name must be a string"
-msgstr ""
-"Yum 存储库名称必须是字符串"
+msgstr "Yum 存储库名称必须是字符串"
#, python-format
msgid "Unable to list repositories. Details: '%(err)s'"
-msgstr ""
-"无法列示存储库。详细信息:“%(err)s”"
+msgstr "无法列示存储库。详细信息:“%(err)s”"
#, python-format
msgid "Unable to retrieve repository information. Details: '%(err)s'"
-msgstr ""
-"无法检索存储库信息。详细信息:“%(err)s”"
+msgstr "无法检索存储库信息。详细信息:“%(err)s”"
#, python-format
msgid "Unable to add repository. Details: '%(err)s'"
-msgstr ""
-"无法添加存储库。详细信息:“%(err)s”"
+msgstr "无法添加存储库。详细信息:“%(err)s”"
#, python-format
msgid "Unable to remove repository. Details: '%(err)s'"
-msgstr ""
-"无法移除存储库。详细信息:“%(err)s”"
+msgstr "无法移除存储库。详细信息:“%(err)s”"
#, python-format
msgid ""
"Configuration items: '%(items)s' are not supported by repository manager"
-msgstr ""
-"配置项:“%(items)s”不受存储库管理器支持"
+msgstr "配置项:“%(items)s”不受存储库管理器支持"
msgid "Repository metalink must be an http://, ftp:// or file:// URL."
-msgstr ""
-"存储库元链接必须是 http://、ftp:// 或 file:// URL。"
+msgstr "存储库元链接必须是 http://、ftp:// 或 file:// URL。"
msgid "Cannot specify mirrorlist and metalink at the same time."
-msgstr ""
-"不能同时指定镜像列表和元链接。"
+msgstr "不能同时指定镜像列表和元链接。"
#, python-format
msgid ""
"Virtual machine '%(vm)s' must be stopped before creating a snapshot of it."
-msgstr ""
-"在创建虚拟机“%(vm)s”的快照之前,必须将其停止。"
+msgstr "在创建虚拟机“%(vm)s”的快照之前,必须将其停止。"
#, python-format
msgid ""
"Unable to create snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
-msgstr ""
-"无法在以下虚拟机上创建快照“%(name)s”:“%(vm)s”。详细信息:"
-"%(err)s"
+msgstr "无法在以下虚拟机上创建快照“%(name)s”:“%(vm)s”。详细信息:%(err)s"
#, python-format
msgid "Snapshot '%(name)s' does not exist on virtual machine '%(vm)s'."
-msgstr ""
-"快照“%(name)s”在虚拟机“%(vm)s”上不存在。"
+msgstr "快照“%(name)s”在虚拟机“%(vm)s”上不存在。"
#, python-format
msgid ""
"Unable to retrieve snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
-msgstr ""
-"无法在以下虚拟机上检索快照“%(name)s”:“%(vm)s”。详细信息:"
-"%(err)s"
+msgstr "无法在以下虚拟机上检索快照“%(name)s”:“%(vm)s”。详细信息:%(err)s"
#, python-format
msgid "Unable to list snapshots on virtual machine '%(vm)s'. Details: %(err)s"
-msgstr ""
-"无法列示虚拟机“%(vm)s”上的快照。详细信息:%(err)s"
+msgstr "无法列示虚拟机“%(vm)s”上的快照。详细信息:%(err)s"
#, python-format
msgid ""
"Unable to delete snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
-msgstr ""
-"无法删除以下虚拟机上的快照“%(name)s”:“%(vm)s”。详细信息:"
-"%(err)s"
+msgstr "无法删除以下虚拟机上的快照“%(name)s”:“%(vm)s”。详细信息:%(err)s"
#, python-format
msgid ""
"Unable to retrieve current snapshot of virtual machine '%(vm)s'. Details: "
"%(err)s"
-msgstr ""
-"无法检索虚拟机“%(vm)s”的当前快照。详细信息:"
-"%(err)s"
+msgstr "无法检索虚拟机“%(vm)s”的当前快照。详细信息:%(err)s"
#, python-format
msgid ""
"Unable to revert virtual machine '%(vm)s' to snapshot '%(name)s'. Details: "
"%(err)s"
-msgstr ""
-"无法将虚拟机“%(vm)s”还原到快照“%(name)s”。详细信息:"
-"%(err)s"
+msgstr "无法将虚拟机“%(vm)s”还原到快照“%(name)s”。详细信息:%(err)s"
#, python-format
msgid ""
"Unable to create snapshot of virtual machine '%(vm)s' because it contains a "
"disk with format '%(format)s'; only 'qcow2' is supported."
msgstr ""
-"无法创建虚拟机“%(vm)s”的快照,因为它包含"
-"格式为“%(format)s”的磁盘;仅“qcow2”受支持。"
+"无法创建虚拟机“%(vm)s”的快照,因为它包含格式为“%(format)s”的磁盘;仅“qcow2”受"
+"支持。"
msgid "The number of vCPUs is too large for this system."
-msgstr ""
-"vCPU 数对于此系统太大。"
+msgstr "vCPU 数对于此系统太大。"
msgid "Invalid vCPU/topology combination."
-msgstr ""
-"无效 vCPU/拓扑组合。"
+msgstr "无效 vCPU/拓扑组合。"
msgid "This host (or current configuration) does not allow CPU topology."
-msgstr ""
-"此主机(或当前配置)不允许使用 CPU 拓扑。"
+msgstr "此主机(或当前配置)不允许使用 CPU 拓扑。"
msgid "ERROR CODE"
-msgstr ""
-"错误代码"
+msgstr "错误代码"
msgid "REASON"
-msgstr ""
-"原因"
+msgstr "原因"
msgid "STACK"
-msgstr ""
-"堆栈"
+msgstr "堆栈"
msgid "Go to Homepage"
-msgstr ""
-"转至主页"
+msgstr "转至主页"
msgid "Create a New Virtual Machine"
-msgstr ""
-"创建新虚拟机"
+msgstr "创建新虚拟机"
msgid "Virtual Machine Name"
-msgstr ""
-"虚拟机名称"
+msgstr "虚拟机名称"
msgid ""
"The name used to identify the virtual machine. If omitted, a name will be "
"chosen based on the template used."
-msgstr ""
-"用于标识虚拟机的名称。如果省略,那么将根据所使用的模板选择"
-"一个名称。"
+msgstr "用于标识虚拟机的名称。如果省略,那么将根据所使用的模板选择一个名称。"
msgid "Template"
-msgstr ""
-"模板"
+msgstr "模板"
msgid "Please create a template first."
-msgstr ""
-"请先创建模板。"
+msgstr "请先创建模板。"
msgid "Create a Template"
-msgstr ""
-"创建模板"
+msgstr "创建模板"
msgid "Please choose a template."
-msgstr ""
-"请选择一个模板。"
+msgstr "请选择一个模板。"
msgid "OS"
-msgstr ""
-"操作系统"
+msgstr "操作系统"
msgid "OS Version"
-msgstr ""
-"操作系统版本"
+msgstr "操作系统版本"
msgid "CPUS"
-msgstr ""
-"CPUS"
+msgstr "CPUS"
msgid "Memory"
-msgstr ""
-"内存"
+msgstr "内存"
msgid "Create"
-msgstr ""
-"创建"
+msgstr "创建"
msgid "Creating..."
-msgstr ""
-"正在创建..."
+msgstr "正在创建..."
msgid "Edit Guest"
-msgstr ""
-"编辑访客"
+msgstr "编辑访客"
msgid "General"
-msgstr ""
-"常规"
+msgstr "常规"
msgid "Storage"
-msgstr ""
-"存储器"
+msgstr "存储器"
msgid "Interface"
-msgstr ""
-"接口"
+msgstr "接口"
msgid "Permission"
-msgstr ""
-"许可权"
+msgstr "许可权"
msgid "Host PCI Device"
-msgstr ""
-"主机 PCI 设备"
+msgstr "主机 PCI 设备"
msgid "Snapshot"
-msgstr ""
-"快照"
+msgstr "快照"
msgid "Name"
-msgstr ""
-"名称"
+msgstr "名称"
msgid "CPUs"
-msgstr ""
-"CPU 数"
+msgstr "CPU 数"
msgid "Memory (MB)"
-msgstr ""
-"内存(MB)"
+msgstr "内存(MB)"
msgid "Icon"
-msgstr ""
-"图标"
+msgstr "图标"
msgid "Device"
-msgstr ""
-"设备"
+msgstr "设备"
msgid "Path"
-msgstr ""
-"路径"
+msgstr "路径"
msgid "Network"
-msgstr ""
-"网络"
+msgstr "网络"
msgid "Type"
-msgstr ""
-"类型"
+msgstr "类型"
msgid "MAC Address"
-msgstr ""
-"MAC 地址"
+msgstr "MAC 地址"
msgid "Available system users and groups"
-msgstr ""
-"可用系统用户和组"
+msgstr "可用系统用户和组"
msgid "Selected system users and groups"
-msgstr ""
-"所选系统用户和组"
+msgstr "所选系统用户和组"
msgid "User"
-msgstr ""
-"用户"
+msgstr "用户"
msgid "All"
-msgstr ""
-"全部"
+msgstr "全部"
msgid "To Add"
-msgstr ""
-"待添加"
+msgstr "待添加"
msgid "Added"
-msgstr ""
-"已添加"
+msgstr "已添加"
msgid "filter"
-msgstr ""
-"过滤器"
+msgstr "过滤器"
msgid "Product"
-msgstr ""
-"产品"
+msgstr "产品"
msgid "Vendor"
-msgstr ""
-"供应商"
+msgstr "供应商"
msgid "Created"
-msgstr ""
-"已创建"
+msgstr "已创建"
msgid "Save"
-msgstr ""
-"保存"
+msgstr "保存"
msgid "Replace"
-msgstr ""
-"替换"
+msgstr "替换"
msgid "Detach"
-msgstr ""
-"拆离"
+msgstr "拆离"
msgid "Cancel"
-msgstr ""
-"取消"
+msgstr "取消"
msgid "revert"
-msgstr ""
-"还原"
+msgstr "还原"
msgid "Add a Storage Device to VM"
-msgstr ""
-"将存储设备添加至 VM"
+msgstr "将存储设备添加至 VM"
msgid "Device Type"
-msgstr ""
-"设备类型"
+msgstr "设备类型"
msgid "The device type. Currently, \"cdrom\" and \"disk\" are supported."
-msgstr ""
-"设备类型。当前支持“cdrom”和“disk”。"
+msgstr "设备类型。当前支持“cdrom”和“disk”。"
msgid "Storage Pool"
-msgstr ""
-"存储池"
+msgstr "存储池"
msgid "Storage pool which volume located in"
-msgstr ""
-"卷位于以下位置的存储池"
+msgstr "卷位于以下位置的存储池"
msgid "Storage Volume"
-msgstr ""
-"存储卷"
+msgstr "存储卷"
msgid "Storage volume to be attached"
-msgstr ""
-"要连接的存储卷"
+msgstr "要连接的存储卷"
msgid "File Path"
-msgstr ""
-"文件路径"
+msgstr "文件路径"
msgid "The ISO file path in the server for CDROM."
-msgstr ""
-"CDROM 服务器中的 ISO 文件。"
+msgstr "CDROM 服务器中的 ISO 文件。"
msgid "Attach"
-msgstr ""
-"连接"
+msgstr "连接"
msgid "Start"
-msgstr ""
-"启动"
+msgstr "启动"
msgid "Reset"
-msgstr ""
-"重置"
+msgstr "重置"
msgid "Pause"
-msgstr ""
-"暂停"
+msgstr "暂停"
msgid "Resume"
-msgstr ""
-"恢复"
+msgstr "恢复"
msgid "Power Off"
-msgstr ""
-"关闭电源"
+msgstr "关闭电源"
msgid "Actions"
-msgstr ""
-"操作"
+msgstr "操作"
msgid "Connect"
-msgstr ""
-"连接"
+msgstr "连接"
msgid "Clone"
-msgstr ""
-"克隆"
+msgstr "克隆"
msgid "Edit"
-msgstr ""
-"编辑"
+msgstr "编辑"
msgid "Shut Down"
-msgstr ""
-"关闭"
+msgstr "关闭"
msgid "Delete"
-msgstr ""
-"删除"
+msgstr "删除"
msgid "The username or password you entered is incorrect. Please try again."
-msgstr ""
-"您所输入的用户名或密码不正确。请重试。"
+msgstr "您所输入的用户名或密码不正确。请重试。"
msgid "This field is required."
-msgstr ""
-"此字段是必填字段。"
+msgstr "此字段是必填字段。"
msgid "Log in"
-msgstr ""
-"登录名"
+msgstr "登录名"
msgid "Logging in..."
-msgstr ""
-"正在登录..."
+msgstr "正在登录..."
msgid "Host"
-msgstr ""
-"主机"
+msgstr "主机"
msgid "Guests"
-msgstr ""
-"访客"
+msgstr "访客"
msgid "Templates"
-msgstr ""
-"模板"
+msgstr "模板"
msgid "Failed to get application configuration"
-msgstr ""
-"未能获取应用程序配置"
+msgstr "未能获取应用程序配置"
msgid "This is not a valid Linux path"
-msgstr ""
-"这不是有效的 Linux 路径"
+msgstr "这不是有效的 Linux 路径"
msgid "This is not a valid URL."
-msgstr ""
-"这不是有效的 URL。"
+msgstr "这不是有效的 URL。"
msgid "No such data available."
-msgstr ""
-"没有此类数据可用。"
+msgstr "没有此类数据可用。"
msgid ""
"Can not contact the host system. Verify the host system is up and that you "
"have network connectivity to it. HTTP request response %1. "
msgstr ""
-"无法连接主机系统。请验证主机系统是否已启动以及"
-"您是否与其具有网络连接。HTTP 请求响应 %1。"
+"无法连接主机系统。请验证主机系统是否已启动以及您是否与其具有网络连接。HTTP 请"
+"求响应 %1。"
msgid "Unable to read file."
-msgstr ""
-"无法读取文件。"
+msgstr "无法读取文件。"
msgid "Error while uploading file."
-msgstr ""
-"上载文件时出错。"
+msgstr "上载文件时出错。"
msgid "Delete Confirmation"
-msgstr ""
-"删除确认"
+msgstr "删除确认"
msgid "OK"
-msgstr ""
-"确定"
+msgstr "确定"
msgid "Confirm"
-msgstr ""
-"确认"
+msgstr "确认"
msgid "Warning"
-msgstr ""
-"警告"
+msgstr "警告"
msgid "Cloning..."
-msgstr ""
-"正在克隆..."
+msgstr "正在克隆..."
msgid "Loading..."
-msgstr ""
-"正在装入..."
+msgstr "正在装入..."
msgid "An error occurred while retrieving system information."
-msgstr ""
-"检索系统信息时发生错误。"
+msgstr "检索系统信息时发生错误。"
msgid "Retry"
-msgstr ""
-"重试"
+msgstr "重试"
msgid "Detailed message:"
-msgstr ""
-"详细消息:"
+msgstr "详细消息:"
msgid "No ISO found"
-msgstr ""
-"找不到 ISO"
+msgstr "找不到 ISO"
msgid "This is not a valid ISO file."
-msgstr ""
-"这不是有效的 ISO 文件。"
+msgstr "这不是有效的 ISO 文件。"
msgid "This may take a long time. Do you want to continue?"
-msgstr ""
-"这可能需要较长时间。要继续吗?"
+msgstr "这可能需要较长时间。要继续吗?"
msgid "This will permanently delete the template. Would you like to continue?"
-msgstr ""
-"这将永久删除该模板。要继续吗?"
+msgstr "这将永久删除该模板。要继续吗?"
msgid "Unable to shut down system as there are some virtual machines running!"
-msgstr ""
-"由于存在一些正在运行的虚拟机而无法关闭系统!"
+msgstr "由于存在一些正在运行的虚拟机而无法关闭系统!"
msgid "Max:"
-msgstr ""
-"最大值:"
+msgstr "最大值:"
msgid "Utilization"
-msgstr ""
-"利用率"
+msgstr "利用率"
msgid "Available"
-msgstr ""
-"可用"
+msgstr "可用"
msgid "Read Rate"
-msgstr ""
-"读速率"
+msgstr "读速率"
msgid "Write Rate"
-msgstr ""
-"写速率"
+msgstr "写速率"
msgid "Received"
-msgstr ""
-"已接收"
+msgstr "已接收"
msgid "Sent"
-msgstr ""
-"已发送"
+msgstr "已发送"
msgid ""
"Shutting down or restarting host will cause unsaved work lost. Continue to "
"shut down/restarting?"
-msgstr ""
-"关闭或重新启动主机将导致未保存的工作丢失。要继续"
-"关闭/重新启动吗?"
+msgstr "关闭或重新启动主机将导致未保存的工作丢失。要继续关闭/重新启动吗?"
msgid ""
"Repository will be removed permanently and can't be recovered. Do you want "
"to continue?"
-msgstr ""
-"存储库将被永久除去并且无法恢复。要"
-"继续吗?"
+msgstr "存储库将被永久除去并且无法恢复。要继续吗?"
msgid "Repositories"
-msgstr ""
-"存储库"
+msgstr "存储库"
msgid "ID"
-msgstr ""
-"标识"
+msgstr "标识"
msgid "Base URL"
-msgstr ""
-"基本 URL"
+msgstr "基本 URL"
msgid "Is Mirror"
-msgstr ""
-"是镜像"
+msgstr "是镜像"
msgid "URL Args"
-msgstr ""
-"URL 参数"
+msgstr "URL 参数"
msgid "Enabled"
-msgstr ""
-"已启用"
+msgstr "已启用"
msgid "GPG Check"
-msgstr ""
-"GPG 检查"
+msgstr "GPG 检查"
msgid "GPG Key"
-msgstr ""
-"GPG 密钥"
+msgstr "GPG 密钥"
msgid "Add"
-msgstr ""
-"添加"
+msgstr "添加"
msgid "Remove"
-msgstr ""
-"除去"
+msgstr "除去"
msgid "Enable"
-msgstr ""
-"启用"
+msgstr "启用"
msgid "Disable"
-msgstr ""
-"禁用"
+msgstr "禁用"
msgid "Software Updates"
-msgstr ""
-"软件更新"
+msgstr "软件更新"
msgid "Package Name"
-msgstr ""
-"软件包名称"
+msgstr "软件包名称"
msgid "Version"
-msgstr ""
-"版本"
+msgstr "版本"
msgid "Architecture"
-msgstr ""
-"体系结构"
+msgstr "体系结构"
msgid "Repository"
-msgstr ""
-"存储库"
+msgstr "存储库"
msgid "Update All"
-msgstr ""
-"全部更新"
+msgstr "全部更新"
msgid "Updating..."
-msgstr ""
-"正在更新..."
+msgstr "正在更新..."
msgid "Failed to retrieve packages update information."
-msgstr ""
-"未能检索软件包更新信息。"
+msgstr "未能检索软件包更新信息。"
msgid "Failed to update package(s)."
-msgstr ""
-"未能更新软件包。"
+msgstr "未能更新软件包。"
msgid ""
"Debug report will be removed permanently and can't be recovered. Do you want "
"to continue?"
-msgstr ""
-"调试报告将被永久除去并且无法恢复。要"
-"继续吗?"
+msgstr "调试报告将被永久除去并且无法恢复。要继续吗?"
msgid "Debug Reports"
-msgstr ""
-"调试报告"
+msgstr "调试报告"
msgid "Generated Time"
-msgstr ""
-"生成时间"
+msgstr "生成时间"
msgid "Generate"
-msgstr ""
-"生成"
+msgstr "生成"
msgid "Generating..."
-msgstr ""
-"正在生成..."
+msgstr "正在生成..."
msgid "Rename"
-msgstr ""
-"重命名"
+msgstr "重命名"
msgid "Download"
-msgstr ""
-"下载"
+msgstr "下载"
msgid ""
"Report name should contain only letters, digits, underscore ('_') and/or "
"hyphen ('-')."
-msgstr ""
-"报告名称应该只包含字母、数字、下划线(“_”)和/或"
-"连字符(“-”)。"
+msgstr "报告名称应该只包含字母、数字、下划线(“_”)和/或连字符(“-”)。"
msgid "Pending..."
-msgstr ""
-"正在暂挂..."
+msgstr "正在暂挂..."
msgid "Report name is the same as the original one."
-msgstr ""
-"报告名称与原始报告名称相同。"
+msgstr "报告名称与原始报告名称相同。"
msgid ""
"This will delete the virtual machine and its virtual disks. This operation "
"cannot be undone. Would you like to continue?"
-msgstr ""
-"这将删除虚拟机及其虚拟盘。此操作"
-"无法撤销。要继续吗?"
+msgstr "这将删除虚拟机及其虚拟盘。此操作无法撤销。要继续吗?"
msgid "Power off Confirmation"
-msgstr ""
-"关闭电源确认"
+msgstr "关闭电源确认"
msgid ""
"This action may produce undesirable results, for example unflushed disk "
"cache in the guest. Would you like to continue?"
msgstr ""
-"此操作可能会产生不需要的结果,例如,"
-"在访客中留下未清空的高速缓存。要继续吗?"
+"此操作可能会产生不需要的结果,例如,在访客中留下未清空的高速缓存。要继续吗?"
msgid "Reset Confirmation"
-msgstr ""
-"重置确认"
+msgstr "重置确认"
msgid ""
"There is a risk of data loss caused by reset without the guest OS shutdown. "
"Would you like to continue?"
-msgstr ""
-"如果不关闭访客操作系统,那么会有数据丢失的风险。"
-"要继续吗?"
+msgstr "如果不关闭访客操作系统,那么会有数据丢失的风险。要继续吗?"
msgid "Shut Down Confirmation"
-msgstr ""
-"关闭确认"
+msgstr "关闭确认"
msgid "Note the guest OS may ignore this request. Would you like to continue?"
-msgstr ""
-"注意,访客操作系统可能会忽略此请求。要继续吗?"
+msgstr "注意,访客操作系统可能会忽略此请求。要继续吗?"
msgid "Virtual Machine delete Confirmation"
-msgstr ""
-"虚拟机删除确认"
+msgstr "虚拟机删除确认"
msgid ""
"This virtual machine is not persistent. Power Off will delete it. Continue?"
-msgstr ""
-"此虚拟机不是持久虚拟机。关闭电源会将其删除。是否继续?"
+msgstr "此虚拟机不是持久虚拟机。关闭电源会将其删除。是否继续?"
msgid ""
"When the target guest has SCSI or iSCSI volumes, they will be cloned on "
"default storage pool. The same will happen when the target pool does not "
"have enough space to clone the volumes. Do you want to continue?"
msgstr ""
-"当目标访客具有 SCSI 或 iSCSI 卷时,将在缺省存储池中"
-"对这些卷进行克隆。当目标池不具有对这些卷进行克隆的"
-"足够空间时,将发生同样的情况。要继续吗?"
+"当目标访客具有 SCSI 或 iSCSI 卷时,将在缺省存储池中对这些卷进行克隆。当目标池"
+"不具有对这些卷进行克隆的足够空间时,将发生同样的情况。要继续吗?"
msgid ""
"This CDROM will be detached permanently and you can re-attach it. Continue "
"to detach it?"
-msgstr ""
-"此 CDROM 将被永久拆离但您可以对其进行重新连接。要"
-"继续拆离吗?"
+msgstr "此 CDROM 将被永久拆离但您可以对其进行重新连接。要继续拆离吗?"
msgid "Attaching..."
-msgstr ""
-"正在连接..."
+msgstr "正在连接..."
msgid "Replacing..."
-msgstr ""
-"正在替换..."
+msgstr "正在替换..."
msgid "Successfully attached!"
-msgstr ""
-"已成功连接!"
+msgstr "已成功连接!"
msgid "Successfully replaced!"
-msgstr ""
-"已成功替换!"
+msgstr "已成功替换!"
msgid "Successfully detached!"
-msgstr ""
-"已成功拆离!"
+msgstr "已成功拆离!"
msgid ""
"This disk will be detached permanently and you can re-attach it. Continue to "
"detach it?"
-msgstr ""
-"此磁盘将被永久拆离但您可以对其进行重新连接。"
-"要继续拆离吗?"
+msgstr "此磁盘将被永久拆离但您可以对其进行重新连接。要继续拆离吗?"
msgid "interface:"
-msgstr ""
-"接口:"
+msgstr "接口:"
msgid "address:"
-msgstr ""
-"地址:"
+msgstr "地址:"
msgid "link_type:"
-msgstr ""
-"链接类型:"
+msgstr "链接类型:"
msgid "block:"
-msgstr ""
-"块:"
+msgstr "块:"
msgid "drive_type:"
-msgstr ""
-"驱动类型:"
+msgstr "驱动类型:"
msgid "model:"
-msgstr ""
-"模型:"
+msgstr "模型:"
msgid "Affected devices:"
-msgstr ""
-"受影响的设备:"
+msgstr "受影响的设备:"
msgid "The VLAN id must be between 1 and 4094."
-msgstr ""
-"VLAN 标识必须介于 1 到 4094 之间。"
+msgstr "VLAN 标识必须介于 1 到 4094 之间。"
msgid "unavailable"
-msgstr ""
-"不可用"
+msgstr "不可用"
msgid ""
"This action will interrupt network connectivity for any virtual machine that "
"depend on this network."
-msgstr ""
-"此操作将中断依赖于此网络的任何虚拟机"
-"的网络连接。"
+msgstr "此操作将中断依赖于此网络的任何虚拟机的网络连接。"
msgid "Create a network"
-msgstr ""
-"创建网络"
+msgstr "创建网络"
msgid ""
"This network is not persistent. Instead of stop, this action will "
"permanently delete it. Would you like to continue?"
-msgstr ""
-"此网络不是持久的。此操作会将其永久"
-"删除,而不是将其停止。要继续吗?"
+msgstr "此网络不是持久的。此操作会将其永久删除,而不是将其停止。要继续吗?"
msgid ""
"The bridged VLAN tag may not work well with NetworkManager enabled. You "
"should consider disabling it."
msgstr ""
-"在启用了网络管理器的情况下,桥接 VLAN 标记的工作情况可能不良。您"
-"应该考虑禁用网络管理器。"
+"在启用了网络管理器的情况下,桥接 VLAN 标记的工作情况可能不良。您应该考虑禁用"
+"网络管理器。"
msgid ""
"This will permanently delete the storage pool. Would you like to continue?"
-msgstr ""
-"这将永久删除该存储池。要继续吗?"
+msgstr "这将永久删除该存储池。要继续吗?"
msgid "This storage pool is empty."
-msgstr ""
-"此存储池为空。"
+msgstr "此存储池为空。"
msgid ""
"It will format your disk and you will loose any data in there, are you sure "
"to continue? "
-msgstr ""
-"这将对磁盘进行格式化并且您将丢失其中的任何数据,确定要"
-"继续吗?"
+msgstr "这将对磁盘进行格式化并且您将丢失其中的任何数据,确定要继续吗?"
msgid "SCSI Fibre Channel"
-msgstr ""
-"SCSI 光纤通道"
+msgstr "SCSI 光纤通道"
msgid "No SCSI adapters found."
-msgstr ""
-"找不到任何 SCSI 适配器。"
+msgstr "找不到任何 SCSI 适配器。"
msgid "Loading iSCSI targets..."
-msgstr ""
-"正在装入 iSCSI 目标..."
+msgstr "正在装入 iSCSI 目标..."
msgid "No iSCSI found. Please input one."
-msgstr ""
-"找不到 iSCSI。请输入一个 iSCSI。"
+msgstr "找不到 iSCSI。请输入一个 iSCSI。"
msgid "Failed to load iSCSI targets."
-msgstr ""
-"未能装入 iSCSI 目标。"
+msgstr "未能装入 iSCSI 目标。"
msgid "The storage pool name can not be blank."
-msgstr ""
-"存储池名称不能为空白。"
+msgstr "存储池名称不能为空白。"
msgid "The storage pool path can not be blank."
-msgstr ""
-"存储池路径不能为空白。"
+msgstr "存储池路径不能为空白。"
msgid "NFS server mount path can not be blank."
-msgstr ""
-"NFS 服务器安装路径不能为空白。"
+msgstr "NFS 服务器安装路径不能为空白。"
msgid "Invalid NFS mount path."
-msgstr ""
-"NFS 安装路径无效。"
+msgstr "NFS 安装路径无效。"
msgid "No logical device selected."
-msgstr ""
-"未选择任何逻辑设备。"
+msgstr "未选择任何逻辑设备。"
msgid "The iSCSI target can not be blank."
-msgstr ""
-"此 iscsi 目标不能为空白。"
+msgstr "此 iscsi 目标不能为空白。"
msgid "Server name can not be blank."
-msgstr ""
-"服务器名称不能为空白。"
+msgstr "服务器名称不能为空白。"
msgid "This is not a valid Server Name or IP. Please, modify it."
-msgstr ""
-"这不是有效的服务器名称或 IP。请对其进行修改。"
+msgstr "这不是有效的服务器名称或 IP。请对其进行修改。"
msgid "Looking for available partitions ..."
-msgstr ""
-"正在查找可用分区..."
+msgstr "正在查找可用分区..."
msgid "No available partitions found."
-msgstr ""
-"找不到任何可用分区。"
+msgstr "找不到任何可用分区。"
msgid ""
"This storage pool is not persistent. Instead of deactivate, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"此存储池不是持久存储池。此操作会将其永久删除,"
-"而不是将其取消激活。要继续吗?"
+"此存储池不是持久存储池。此操作会将其永久删除,而不是将其取消激活。要继续吗?"
msgid "Unable to retrieve partitions information."
-msgstr ""
-"无法检索分区信息。"
+msgstr "无法检索分区信息。"
msgid "In progress..."
-msgstr ""
-"正在进行中..."
+msgstr "正在进行中..."
msgid "Failed!"
-msgstr ""
-"失败!"
+msgstr "失败!"
msgid "CDROM path needs to be a valid local/remote path and cannot be blank."
-msgstr ""
-"CDROM 路径必须是有效的本地/远程路径,并且不能为空白。"
+msgstr "CDROM 路径必须是有效的本地/远程路径,并且不能为空白。"
msgid "Disk pool or volume cannot be blank."
-msgstr ""
-"磁盘池或卷不能为空白。"
+msgstr "磁盘池或卷不能为空白。"
msgid "Peers"
-msgstr ""
-"同级"
+msgstr "同级"
msgid "Searching"
-msgstr ""
-"正在搜索"
+msgstr "正在搜索"
msgid "No peers found."
-msgstr ""
-"找不到同级。"
+msgstr "找不到同级。"
msgid "Help"
-msgstr ""
-"帮助"
+msgstr "帮助"
msgid "About"
-msgstr ""
-"关于"
+msgstr "关于"
msgid "Log out"
-msgstr ""
-"注销"
+msgstr "注销"
msgid "Version:"
-msgstr ""
-"版本:"
+msgstr "版本:"
msgid "Session timeout, please re-login."
-msgstr ""
-"会话超时,请重新登录。"
+msgstr "会话超时,请重新登录。"
msgid "User Name"
-msgstr ""
-"用户名"
+msgstr "用户名"
msgid "Password"
-msgstr ""
-"密码"
+msgstr "密码"
msgid "Generate a New Debug Report"
-msgstr ""
-"生成新调试报告"
+msgstr "生成新调试报告"
msgid "Report Name"
-msgstr ""
-"报告名称"
+msgstr "报告名称"
msgid ""
"The name used to identify the report. If omitted, a name will be chosen "
"based on current time. Name can contain: letters, digits, underscore (\"_\") "
"and hyphen (\"-\")."
msgstr ""
-"用于标识报告的名称。如果省略,那么将根据当前时间"
-"选择名称。名称可以包含:字母、数字、下划线(“_”)"
-"和连字符(“-”)。"
+"用于标识报告的名称。如果省略,那么将根据当前时间选择名称。名称可以包含:字"
+"母、数字、下划线(“_”)和连字符(“-”)。"
msgid "Rename a Debug Report"
-msgstr ""
-"重命名调试报告"
+msgstr "重命名调试报告"
msgid ""
"The name used to identify the report. Name can contain: letters, digits and "
"hyphen (\"-\")."
-msgstr ""
-"用于标识报告的名称。名称可以包含:字母、数字和"
-"连字符(“-”)。"
+msgstr "用于标识报告的名称。名称可以包含:字母、数字和连字符(“-”)。"
msgid "Submit"
-msgstr ""
-"提交"
+msgstr "提交"
msgid "Add a Repository"
-msgstr ""
-"添加存储库"
+msgstr "添加存储库"
msgid "Identifier"
-msgstr ""
-"标识"
+msgstr "标识"
msgid "Single word, unique identifier for the repository."
-msgstr ""
-"一个字,存储库的唯一标识。"
+msgstr "一个字,存储库的唯一标识。"
msgid "Textual name for the repository."
-msgstr ""
-"存储库的文本名称。"
+msgstr "存储库的文本名称。"
msgid "URL"
-msgstr ""
-"URL"
+msgstr "URL"
msgid "Required Field"
-msgstr ""
-"必填字段"
+msgstr "必填字段"
msgid "URL to the repository. Supported protocols are http, ftp, and file."
-msgstr ""
-"存储库的 URL。受支持的协议为 http、ftp 和 file。"
+msgstr "存储库的 URL。受支持的协议为 http、ftp 和 file。"
msgid "Repository is a mirror"
-msgstr ""
-"存储库是一个镜像"
+msgstr "存储库是一个镜像"
msgid "Distribution"
-msgstr ""
-"分发"
+msgstr "分发"
msgid "Distribution of the DEB repository."
-msgstr ""
-"DEB 存储库的分发版。"
+msgstr "DEB 存储库的分发版。"
msgid "Components"
-msgstr ""
-"组件"
+msgstr "组件"
msgid "List of components in DEB repository."
-msgstr ""
-"DEB 存储库中组件的列表。"
+msgstr "DEB 存储库中组件的列表。"
msgid "Edit Repository"
-msgstr ""
-"编辑存储库"
+msgstr "编辑存储库"
msgid "Mirror List URL"
-msgstr ""
-"镜像列表 URL"
+msgstr "镜像列表 URL"
msgid "Yes"
-msgstr ""
-"是"
+msgstr "是"
msgid "No"
-msgstr ""
-"否"
+msgstr "否"
msgid "Add a Volume to Storage Pool"
-msgstr ""
-"将卷添加至存储池"
+msgstr "将卷添加至存储池"
msgid "Fetch from remote URL"
-msgstr ""
-"从远程 URL 中访存"
+msgstr "从远程 URL 中访存"
msgid "Enter the remote URL here."
-msgstr ""
-"在此处输入远程 URL。"
+msgstr "在此处输入远程 URL。"
msgid "Upload a file"
-msgstr ""
-"上载文件"
+msgstr "上载文件"
msgid "Choose the file you want to upload."
-msgstr ""
-"选择要上载的文件。"
+msgstr "选择要上载的文件。"
msgid "Define a New Storage Pool"
-msgstr ""
-"定义新存储池"
+msgstr "定义新存储池"
msgid "Storage Pool Name"
-msgstr ""
-"存储池名称"
+msgstr "存储池名称"
msgid ""
"The name used to identify the storage pools, and it should not be empty."
-msgstr ""
-"用于标识存储池的名称,且该名称不能为空。"
+msgstr "用于标识存储池的名称,且该名称不能为空。"
msgid "Storage Pool Type"
-msgstr ""
-"存储池类型"
+msgstr "存储池类型"
msgid "Storage Path"
-msgstr ""
-"存储路径"
+msgstr "存储路径"
msgid ""
"The path of the Storage Pool. Each Storage Pool must have a unique path."
-msgstr ""
-"存储池的路径。每个存储池都必须具有唯一路径。"
+msgstr "存储池的路径。每个存储池都必须具有唯一路径。"
msgid ""
"Kimchi will try to create the directory when it does not already exist in "
"your system."
-msgstr ""
-"Kimchi 将尝试在目录在系统中尚不存在时"
-"对其进行创建。"
+msgstr "Kimchi 将尝试在目录在系统中尚不存在时对其进行创建。"
msgid "NFS Server IP"
-msgstr ""
-"NFS 服务器 IP"
+msgstr "NFS 服务器 IP"
msgid "NFS server IP or hostname. It can be input or chosen from history."
-msgstr ""
-"NFS 服务器 IP 或主机名。可以输入该值,也可以从历史记录中选择。"
+msgstr "NFS 服务器 IP 或主机名。可以输入该值,也可以从历史记录中选择。"
msgid "NFS Path"
-msgstr ""
-"NFS 路径"
+msgstr "NFS 路径"
msgid "The NFS exported path on NFS server."
-msgstr ""
-"NFS 服务器中 NFS 已导出路径。"
+msgstr "NFS 服务器中 NFS 已导出路径。"
msgid "Device path"
-msgstr ""
-"设备路径"
+msgstr "设备路径"
msgid "iSCSI Server"
-msgstr ""
-"iSCSI 服务器"
+msgstr "iSCSI 服务器"
msgid "iSCSI server IP or hostname. It should not be empty."
-msgstr ""
-"iSCSI 服务器 IP 或主机名。它不应为空。"
+msgstr "iSCSI 服务器 IP 或主机名。它不应为空。"
msgid "Server"
-msgstr ""
-"服务器"
+msgstr "服务器"
msgid "Port"
-msgstr ""
-"端口"
+msgstr "端口"
msgid "Target"
-msgstr ""
-"目标"
+msgstr "目标"
msgid "The iSCSI target on iSCSI server"
-msgstr ""
-"iSCSI 服务器上的 iSCSI 目标"
+msgstr "iSCSI 服务器上的 iSCSI 目标"
msgid "Add iSCSI Authentication"
-msgstr ""
-"添加 iSCSI 认证"
+msgstr "添加 iSCSI 认证"
msgid "iSCSI Authentication"
-msgstr ""
-"iSCSI 认证"
+msgstr "iSCSI 认证"
msgid "SCSI Adapter"
-msgstr ""
-"SCSI 适配器"
+msgstr "SCSI 适配器"
msgid "Please, wait..."
-msgstr ""
-"请稍等..."
+msgstr "请稍等..."
msgid "Add Template"
-msgstr ""
-"添加模板"
+msgstr "添加模板"
msgid "Where is the source media for this template? "
-msgstr ""
-"此模板的源介质在哪里?"
+msgstr "此模板的源介质在哪里?"
msgid "Local ISO Image"
-msgstr ""
-"本地 ISO 映像"
+msgstr "本地 ISO 映像"
msgid "Local Image File"
-msgstr ""
-"本地映像文件"
+msgstr "本地映像文件"
msgid "Remote ISO Image"
-msgstr ""
-"远程 ISO 映像"
+msgstr "远程 ISO 映像"
msgid "Search ISOs"
-msgstr ""
-"搜索 ISO"
+msgstr "搜索 ISO"
msgid "The following ISOs are available:"
-msgstr ""
-"以下 ISO 可用:"
+msgstr "以下 ISO 可用:"
msgid "OS: "
-msgstr ""
-"操作系统:"
+msgstr "操作系统:"
msgid "Version: "
-msgstr ""
-"版本:"
+msgstr "版本:"
msgid "Size: "
-msgstr ""
-"大小:"
+msgstr "大小:"
msgid "Search more ISOs"
-msgstr ""
-"搜索更多 ISO"
+msgstr "搜索更多 ISO"
msgid "Create Templates from Selected ISO"
-msgstr ""
-"从所选 ISO 创建模板"
+msgstr "从所选 ISO 创建模板"
msgid "I want to use a specific ISO file"
-msgstr ""
-"我要使用特定 ISO 文件"
+msgstr "我要使用特定 ISO 文件"
msgid "Loading default remote ISOs ..."
-msgstr ""
-"正在装入缺省远程 ISO..."
+msgstr "正在装入缺省远程 ISO..."
msgid "Arch: "
-msgstr ""
-"归档:"
+msgstr "归档:"
msgid "I want to use a custom URL"
-msgstr ""
-"我要使用定制 URL"
+msgstr "我要使用定制 URL"
msgid "Edit Template"
-msgstr ""
-"编辑模板"
+msgstr "编辑模板"
msgid "Processor"
-msgstr ""
-"处理器"
+msgstr "处理器"
msgid "CDROM"
-msgstr ""
-"CDROM"
+msgstr "CDROM"
msgid "Image File"
-msgstr ""
-"映象文件"
+msgstr "映象文件"
msgid "Graphics"
-msgstr ""
-"图形"
+msgstr "图形"
msgid "Disk(GB)"
-msgstr ""
-"磁盘 (GB)"
+msgstr "磁盘 (GB)"
msgid "Disk Format"
-msgstr ""
-"磁盘格式"
+msgstr "磁盘格式"
msgid "CPU Number"
-msgstr ""
-"CPU 数"
+msgstr "CPU 数"
msgid "Manually set CPU topology"
-msgstr ""
-"手动设置 CPU 拓扑"
+msgstr "手动设置 CPU 拓扑"
msgid "Cores"
-msgstr ""
-"核心"
+msgstr "核心"
msgid "Threads"
-msgstr ""
-"线程"
+msgstr "线程"
msgid "CPU"
-msgstr ""
-"CPU"
+msgstr "CPU"
msgid "Disk I/O"
-msgstr ""
-"磁盘 I/O"
+msgstr "磁盘 I/O"
msgid "Network I/O"
-msgstr ""
-"网络 I/O"
+msgstr "网络 I/O"
msgid "Livetile"
-msgstr ""
-"Livetile"
+msgstr "Livetile"
msgid "No guests found."
-msgstr ""
-"找不到访客。"
+msgstr "找不到访客。"
msgid "Shut down"
-msgstr ""
-"关闭"
+msgstr "关闭"
msgid "Restart"
-msgstr ""
-"重新启动"
+msgstr "重新启动"
msgid "Basic Information"
-msgstr ""
-"基本信息"
+msgstr "基本信息"
msgid "OS Distro"
-msgstr ""
-"操作系统 Distro"
+msgstr "操作系统 Distro"
msgid "OS Code Name"
-msgstr ""
-"操作系统代码名称"
+msgstr "操作系统代码名称"
msgid "CPU(s)"
-msgstr ""
-"CPU"
+msgstr "CPU"
msgid "System Statistics"
-msgstr ""
-"系统统计信息"
+msgstr "系统统计信息"
msgid "Update Progress"
-msgstr ""
-"更新进度"
+msgstr "更新进度"
msgid "Network Name"
-msgstr ""
-"网络名"
+msgstr "网络名"
msgid "State"
-msgstr ""
-"状态"
+msgstr "状态"
msgid "Network Type"
-msgstr ""
-"网络类型"
+msgstr "网络类型"
msgid "Address Space"
-msgstr ""
-"地址空间"
+msgstr "地址空间"
msgid "Name should not contain '/' and '\"'."
-msgstr ""
-"名称不应包含“/”和“\"”。"
+msgstr "名称不应包含“/”和“\"”。"
msgid "Isolated: no external network connection"
-msgstr ""
-"隔离:没有外部网络连接"
+msgstr "隔离:没有外部网络连接"
msgid "NAT: outbound physical network connection only"
-msgstr ""
-"NAT:仅适用于出站物理网络连接"
+msgstr "NAT:仅适用于出站物理网络连接"
msgid "Bridged: Virtual machines are connected to physical network directly"
-msgstr ""
-"桥接:虚拟机将直接连接到物理网络"
+msgstr "桥接:虚拟机将直接连接到物理网络"
msgid "(No interfaces found)"
-msgstr ""
-"(找不到任何接口)"
+msgstr "(找不到任何接口)"
msgid "Destination"
-msgstr ""
-"目的地"
+msgstr "目的地"
msgid "Enable VLAN"
-msgstr ""
-"启用 VLAN"
+msgstr "启用 VLAN"
msgid "VLAN ID"
-msgstr ""
-"VLAN 标识"
+msgstr "VLAN 标识"
msgid "Stop"
-msgstr ""
-"停止"
+msgstr "停止"
msgid "%Used"
-msgstr ""
-"已用百分比"
+msgstr "已用百分比"
msgid "Location"
-msgstr ""
-"位置 "
+msgstr "位置 "
msgid "Capacity"
-msgstr ""
-"容量"
+msgstr "容量"
msgid "Allocated"
-msgstr ""
-"已分配"
+msgstr "已分配"
msgid "active"
-msgstr ""
-"活动"
+msgstr "活动"
msgid "inactive"
-msgstr ""
-"非活动"
+msgstr "非活动"
msgid "Deactivate"
-msgstr ""
-"取消激活"
+msgstr "取消激活"
msgid "Activate"
-msgstr ""
-"激活"
+msgstr "激活"
msgid "Add Volume"
-msgstr ""
-"添加卷"
+msgstr "添加卷"
msgid "Extend"
-msgstr ""
-"扩展"
+msgstr "扩展"
msgid "Undefine"
-msgstr ""
-"取消定义"
+msgstr "取消定义"
msgid "Format"
-msgstr ""
-"格式"
+msgstr "格式"
msgid "Allocation"
-msgstr ""
-"分配"
+msgstr "分配"
msgid "No templates found."
-msgstr ""
-"找不到任何模板。"
-
-# ENGL1SH_VERS10N 28617_40 DO NOT REMOVE OR CHANGE THIS LINE
-# T9N_SRC_ID 92
-# T9N_SH1P_STR1NG KV310AAP001 1
+msgstr "找不到任何模板。"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 33755d7..c772f99 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -6,169 +6,141 @@ msgid ""
msgstr ""
"Project-Id-Version: kimchi 0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-24 09:39-0300\n"
+"POT-Creation-Date: 2015-08-21 09:52-0300\n"
"PO-Revision-Date: 2013-07-11 17:32-0400\n"
"Last-Translator: Crístian Viana <vianac(a)linux.vnet.ibm.com>\n"
"Language-Team: English\n"
-"Language: en_US\n"
+"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
-"Plural-Forms: nplurals=1; plural=0;"
+"Plural-Forms: nplurals=1; plural=0;\n"
#, python-format
msgid "Unknown parameter %(value)s"
-msgstr ""
-"不明參數 %(value)s"
+msgstr "不明參數 %(value)s"
#, python-format
msgid "Delete is not allowed for %(resource)s"
-msgstr ""
-"不容許針對 %(resource)s 執行刪除作業"
+msgstr "不容許針對 %(resource)s 執行刪除作業"
#, python-format
msgid "%(resource)s does not implement update method"
-msgstr ""
-"%(resource)s 未實作更新方法"
+msgstr "%(resource)s 未實作更新方法"
#, python-format
msgid "Create is not allowed for %(resource)s"
-msgstr ""
-"不容許針對 %(resource)s 執行建立作業"
+msgstr "不容許針對 %(resource)s 執行建立作業"
msgid "Unable to parse JSON request"
-msgstr ""
-"無法剖析 JSON 要求"
+msgstr "無法剖析 JSON 要求"
msgid "This API only supports JSON"
-msgstr ""
-"此 API 僅支援 JSON"
+msgstr "此 API 僅支援 JSON"
#, python-format
msgid "Parameters does not match requirement in schema: %(err)s"
-msgstr ""
-"參數與綱目中的需求不符:%(err)s"
+msgstr "參數與綱目中的需求不符:%(err)s"
msgid "You don't have permission to perform this operation."
-msgstr ""
-"您無權執行這項作業。"
+msgstr "您無權執行這項作業。"
msgid "Datastore is not initiated in the model object."
-msgstr ""
-"未在模型物件中起始資料儲存庫。"
+msgstr "未在模型物件中起始資料儲存庫。"
#, python-format
msgid "Unable to start task due error: %(err)s"
-msgstr ""
-"由於發生錯誤,無法開始工作:%(err)s"
+msgstr "由於發生錯誤,無法開始工作:%(err)s"
#, python-format
msgid "Timeout of %(seconds)s seconds expired while running task '%(task)s."
-msgstr ""
-"執行作業 '%(task)s' 時,超過逾時值 %(seconds)s 秒。"
+msgstr "執行作業 '%(task)s' 時,超過逾時值 %(seconds)s 秒。"
#, python-format
msgid "Authentication failed for user '%(username)s'. [Error code: %(code)s]"
-msgstr ""
-"針對使用者 '%(username)s' 的鑑別失敗。[錯誤碼:%(code)s]"
+msgstr "針對使用者 '%(username)s' 的鑑別失敗。[錯誤碼:%(code)s]"
msgid "You are not authorized to access Kimchi"
-msgstr ""
-"您未獲授權來存取 Kimchi"
+msgstr "您未獲授權來存取 Kimchi"
#, python-format
msgid "Specify %(item)s to login into Kimchi"
-msgstr ""
-"指定 %(item)s 以登入 Kimchi"
+msgstr "指定 %(item)s 以登入 Kimchi"
#, python-format
msgid "User %(user_id)s not found with given LDAP settings."
-msgstr ""
-"找不到具有給定 LDAP 設定的使用者 %(user_id)s。"
+msgstr "找不到具有給定 LDAP 設定的使用者 %(user_id)s。"
#, python-format
msgid "Invalid LDAP configuration: %(item)s : %(value)s"
-msgstr ""
-"LDAP 配置無效:%(item)s:%(value)s"
+msgstr "LDAP 配置無效:%(item)s:%(value)s"
msgid "Unknown \"_cap\" specified"
-msgstr ""
-"指定的 \"_cap\" 不明"
+msgstr "指定的 \"_cap\" 不明"
msgid "\"_passthrough\" should be \"true\" or \"false\""
-msgstr ""
-"\"_passthrough\" 應該是 \"true\" 或 \"false\""
+msgstr "\"_passthrough\" 應該是 \"true\" 或 \"false\""
msgid "\"_passthrough_affected_by\" should be a device name string"
-msgstr ""
-"\"_passthrough_affected_by\" 應該是裝置名稱字串"
+msgstr "\"_passthrough_affected_by\" 應該是裝置名稱字串"
+
+#, fuzzy
+msgid "\"_available_only\" should be \"true\" or \"false\""
+msgstr "\"_passthrough\" 應該是 \"true\" 或 \"false\""
#, python-format
msgid "Error while getting block devices. Details: %(err)s"
-msgstr ""
-"取得區塊裝置時發生錯誤。詳細資料:%(err)s"
+msgstr "取得區塊裝置時發生錯誤。詳細資料:%(err)s"
#, python-format
msgid "Error while getting block device information for %(device)s."
-msgstr ""
-"取得 %(device)s 的區塊裝置資訊時發生錯誤。"
+msgstr "取得 %(device)s 的區塊裝置資訊時發生錯誤。"
#, python-format
msgid "Unable to find distro file: %(filename)s"
-msgstr ""
-"找不到 distro 檔:%(filename)s"
+msgstr "找不到 distro 檔:%(filename)s"
#, python-format
msgid ""
"Unable to parse distro file: %(filename)s. Make sure, it is a JSON file."
-msgstr ""
-"無法剖析 distro 檔:%(filename)s。請確保該檔案是 JSON 檔。"
+msgstr "無法剖析 distro 檔:%(filename)s。請確保該檔案是 JSON 檔。"
#, python-format
msgid "Unable to login to iSCSI host target %(portal)s. Details: %(err)s"
-msgstr ""
-"無法登入 iSCSI 主機目標 %(portal)s。詳細資料:%(err)s"
+msgstr "無法登入 iSCSI 主機目標 %(portal)s。詳細資料:%(err)s"
#, python-format
msgid "Unable to login to iSCSI host %(host)s target %(target)s"
-msgstr ""
-"無法登入 iSCSI 主機 %(host)s 目標 %(target)s"
+msgstr "無法登入 iSCSI 主機 %(host)s 目標 %(target)s"
#, python-format
msgid "Unable to find ISO file %(filename)s"
-msgstr ""
-"找不到 ISO 檔 %(filename)s"
+msgstr "找不到 ISO 檔 %(filename)s"
#, python-format
msgid "The ISO file %(filename)s is not bootable"
-msgstr ""
-"ISO 檔 %(filename)s 不可啟動"
+msgstr "ISO 檔 %(filename)s 不可啟動"
#, python-format
msgid "The ISO file %(filename)s does not have a valid El Torito boot record"
-msgstr ""
-"ISO 檔 %(filename)s 沒有有效的 El Torito 啟動記錄"
+msgstr "ISO 檔 %(filename)s 沒有有效的 El Torito 啟動記錄"
#, python-format
msgid "Invalid El Torito validation entry in ISO %(filename)s"
-msgstr ""
-"ISO %(filename)s 中有無效的 El Torito 驗證項目"
+msgstr "ISO %(filename)s 中有無效的 El Torito 驗證項目"
#, python-format
msgid "Invalid El Torito boot indicator in ISO %(filename)s"
-msgstr ""
-"ISO %(filename)s 中有無效的 El Torito 啟動指示器"
+msgstr "ISO %(filename)s 中有無效的 El Torito 啟動指示器"
#, python-format
msgid "Unexpected volume type for primary volume in ISO %(filename)s"
-msgstr ""
-"ISO %(filename)s 中有主要磁碟區的非預期磁區類型"
+msgstr "ISO %(filename)s 中有主要磁碟區的非預期磁區類型"
#, python-format
msgid "Bad format while reading volume descriptor in ISO %(filename)s"
-msgstr ""
-"讀取 ISO %(filename)s 中的磁區描述子時遇到不當的格式"
+msgstr "讀取 ISO %(filename)s 中的磁區描述子時遇到不當的格式"
#, python-format
msgid ""
@@ -178,265 +150,212 @@ msgid ""
"'%(user)s' to the ISO path group, or (not recommended) 'chmod -R o+x "
"'path_to_iso'.Details: %(err)s"
msgstr ""
-"Hypervisor 無權使用此 ISO %(filename)s。"
-"請考量將其移動至 /var/lib/libvirt 下、將搜尋許可權設為"
-"'%(user)s' 使用者的檔案存取控制清單(若有可能)、"
-"將 '%(user)s' 新增至 ISO 路徑群組或(建議不要執行此動作)"
-"'chmod -R o+x 'path_to_iso'。詳細資料:%(err)s"
+"Hypervisor 無權使用此 ISO %(filename)s。請考量將其移動至 /var/lib/libvirt "
+"下、將搜尋許可權設為'%(user)s' 使用者的檔案存取控制清單(若有可能)、將 "
+"'%(user)s' 新增至 ISO 路徑群組或(建議不要執行此動作)'chmod -R o+x "
+"'path_to_iso'。詳細資料:%(err)s"
msgid "An error occurred when probing image OS information."
-msgstr ""
-"探測映像檔 OS 資訊時發生錯誤。"
+msgstr "探測映像檔 OS 資訊時發生錯誤。"
msgid "No OS information found in given image."
-msgstr ""
-"在給定的映像檔中,找不到 OS 資訊。"
+msgstr "在給定的映像檔中,找不到 OS 資訊。"
#, python-format
msgid "Unable to read image file %(filename)s"
-msgstr ""
-"無法讀取映像檔 %(filename)s"
+msgstr "無法讀取映像檔 %(filename)s"
#, python-format
msgid ""
"Image file must be an existing file on system. %(filename)s is not a valid "
"input."
-msgstr ""
-"映像檔必須是系統上的現有檔案。%(filename)s 不是有效的"
-"輸入。"
+msgstr "映像檔必須是系統上的現有檔案。%(filename)s 不是有效的輸入。"
#, python-format
msgid "Virtual machine %(name)s already exists"
-msgstr ""
-"虛擬機器 %(name)s 已經存在"
+msgstr "虛擬機器 %(name)s 已經存在"
#, python-format
msgid "Virtual machine %(name)s does not exist"
-msgstr ""
-"虛擬機器 %(name)s 不存在"
+msgstr "虛擬機器 %(name)s 不存在"
#, python-format
msgid ""
"Unable to rename virtual machine %(name)s. The name %(new_name)s is already "
"in use or the virtual machine is not powered off."
msgstr ""
-"無法重新命名虛擬機器 %(name)s。名稱 %(new_name)s 已經"
-"在使用中,或者未關閉該虛擬機器的電源。"
+"無法重新命名虛擬機器 %(name)s。名稱 %(new_name)s 已經在使用中,或者未關閉該虛"
+"擬機器的電源。"
#, python-format
msgid "Unable to retrieve screenshot for stopped virtual machine %(name)s"
-msgstr ""
-"無法擷取已停止虛擬機器 %(name)s 的畫面"
+msgstr "無法擷取已停止虛擬機器 %(name)s 的畫面"
msgid "Remote ISO image is not supported by this server."
-msgstr ""
-"此伺服器不支援遠端 ISO 映像檔。"
+msgstr "此伺服器不支援遠端 ISO 映像檔。"
#, python-format
msgid "Screenshot is not supported on virtual machine %(name)s"
-msgstr ""
-"擷取畫面在虛擬機器 %(name)s 上不受支援"
+msgstr "擷取畫面在虛擬機器 %(name)s 上不受支援"
#, python-format
msgid "Unable to create virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"無法建立虛擬機器 %(name)s。詳細資料:%(err)s"
+msgstr "無法建立虛擬機器 %(name)s。詳細資料:%(err)s"
#, python-format
msgid "Unable to update virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"無法更新虛擬機器 %(name)s。詳細資料:%(err)s"
+msgstr "無法更新虛擬機器 %(name)s。詳細資料:%(err)s"
#, python-format
msgid "Unable to retrieve virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"無法擷取虛擬機器 %(name)s。詳細資料:%(err)s"
+msgstr "無法擷取虛擬機器 %(name)s。詳細資料:%(err)s"
#, python-format
msgid "Unable to connect to powered off virtual machine %(name)s."
-msgstr ""
-"無法連接至已關閉電源的虛擬機器 %(name)s。"
+msgstr "無法連接至已關閉電源的虛擬機器 %(name)s。"
msgid "Virtual machine name must be a string without slashes (/)"
-msgstr ""
-"虛擬機器名稱必須是不含斜線 (/) 的字串"
+msgstr "虛擬機器名稱必須是不含斜線 (/) 的字串"
#, python-format
msgid "Invalid template URI %(value)s specified for virtual machine"
-msgstr ""
-"為虛擬機器指定的範本 URI %(value)s 無效"
+msgstr "為虛擬機器指定的範本 URI %(value)s 無效"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for virtual machine"
-msgstr ""
-"為虛擬機器指定的儲存區 URI %(value)s 無效"
+msgstr "為虛擬機器指定的儲存區 URI %(value)s 無效"
msgid "Supported virtual machine graphics are Spice or VNC"
-msgstr ""
-"受支援的虛擬機器圖形是 Spice 或 VNC"
+msgstr "受支援的虛擬機器圖形是 Spice 或 VNC"
msgid "Graphics address to listen on must be IPv4 or IPv6"
-msgstr ""
-"要接聽的圖形卡位址必須是 IPv4 或 IPv6"
+msgstr "要接聽的圖形卡位址必須是 IPv4 或 IPv6"
msgid "Specify a template to create a virtual machine from"
-msgstr ""
-"指定用於建立虛擬機器的範本"
+msgstr "指定用於建立虛擬機器的範本"
#, python-format
msgid "Unable to start virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"無法啟動虛擬機器 %(name)s。詳細資料:%(err)s"
+msgstr "無法啟動虛擬機器 %(name)s。詳細資料:%(err)s"
#, python-format
msgid "Unable to power off virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"無法關閉虛擬機器 %(name)s 的電源。詳細資料:%(err)s"
+msgstr "無法關閉虛擬機器 %(name)s 的電源。詳細資料:%(err)s"
#, python-format
msgid "Unable to delete virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"無法刪除虛擬機器 %(name)s。詳細資料:%(err)s"
+msgstr "無法刪除虛擬機器 %(name)s。詳細資料:%(err)s"
#, python-format
msgid "Unable to reset virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"無法重設虛擬機器 %(name)s。詳細資料:%(err)s"
+msgstr "無法重設虛擬機器 %(name)s。詳細資料:%(err)s"
msgid "User name list must be an array"
-msgstr ""
-"使用者名稱清單必須是陣列"
+msgstr "使用者名稱清單必須是陣列"
msgid "User name must be a string"
-msgstr ""
-"使用者名稱必須是字串"
+msgstr "使用者名稱必須是字串"
msgid "Group name list must be an array"
-msgstr ""
-"群組名稱清單必須是陣列"
+msgstr "群組名稱清單必須是陣列"
msgid "Group name must be a string"
-msgstr ""
-"群組名稱必須是字串"
+msgstr "群組名稱必須是字串"
#, python-format
msgid "User(s) '%(users)s' do not exist"
-msgstr ""
-"使用者 '%(users)s' 不存在"
+msgstr "使用者 '%(users)s' 不存在"
#, python-format
msgid "Group(s) '%(groups)s' do not exist"
-msgstr ""
-"群組 '%(groups)s' 不存在"
+msgstr "群組 '%(groups)s' 不存在"
#, python-format
msgid "Unable to shutdown virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"無法關閉虛擬機器 %(name)s。詳細資料:%(err)s"
+msgstr "無法關閉虛擬機器 %(name)s。詳細資料:%(err)s"
#, python-format
msgid ""
"Unable to get access metadata of virtual machine %(name)s. Details: %(err)s"
-msgstr ""
-"無法取得虛擬機器 %(name)s 的存取 meta 資料。詳細資料:%(err)s"
+msgstr "無法取得虛擬機器 %(name)s 的存取 meta 資料。詳細資料:%(err)s"
msgid "The guest console password must be a string."
-msgstr ""
-"客體主控台密碼必須是字串。"
+msgstr "客體主控台密碼必須是字串。"
msgid "The life time for the guest console password must be a number."
-msgstr ""
-"客體主控台密碼的生命期限必須是數字。"
+msgstr "客體主控台密碼的生命期限必須是數字。"
#, python-format
msgid "Virtual machine '%(name)s' must be stopped before cloning it."
-msgstr ""
-"必須先停止虛擬機器 '%(name)s',然後再複製該虛擬機器。"
+msgstr "必須先停止虛擬機器 '%(name)s',然後再複製該虛擬機器。"
#, python-format
msgid "Insufficient disk space to clone virtual machine '%(name)s'"
-msgstr ""
-"磁碟空間不足,無法複製虛擬機器 '%(name)s'"
+msgstr "磁碟空間不足,無法複製虛擬機器 '%(name)s'"
#, python-format
msgid "Unable to clone VM '%(name)s'. Details: %(err)s"
-msgstr ""
-"無法複製 VM '%(name)s'。詳細資料:%(err)s"
+msgstr "無法複製 VM '%(name)s'。詳細資料:%(err)s"
#, python-format
msgid "Invalid operation for non-persistent virtual machine %(name)s"
-msgstr ""
-"針對非持續性虛擬機器 %(name)s 的作業無效"
+msgstr "針對非持續性虛擬機器 %(name)s 的作業無效"
#, python-format
msgid "Cannot suspend VM '%(name)s' because it is not running."
-msgstr ""
-"無法暫停 VM '%(name)s',因為該 VM 未處於執行中狀態。"
+msgstr "無法暫停 VM '%(name)s',因為該 VM 未處於執行中狀態。"
#, python-format
msgid "Unable to suspend VM '%(name)s'. Details: %(err)s"
-msgstr ""
-"無法暫停 VM '%(name)s'。詳細資料:%(err)s"
+msgstr "無法暫停 VM '%(name)s'。詳細資料:%(err)s"
#, python-format
msgid "Cannot resume VM '%(name)s' because it is not paused."
-msgstr ""
-"無法回復 VM '%(name)s',因為該 VM 未處於暫停狀態。"
+msgstr "無法回復 VM '%(name)s',因為該 VM 未處於暫停狀態。"
#, python-format
msgid "Unable to resume VM '%(name)s'. Details: %(err)s"
-msgstr ""
-"無法回復 VM '%(name)s'。詳細資料:%(err)s"
+msgstr "無法回復 VM '%(name)s'。詳細資料:%(err)s"
msgid "Memory assigned is higher then the maximum allowed in the host."
-msgstr ""
-"所指派的記憶體高於主機中所容許使用的上限。"
+msgstr "所指派的記憶體高於主機中所容許使用的上限。"
#, python-format
msgid ""
"VM '%(name)s' does not support live memory update. Update the memory with "
"the machine offline to enable this feature."
msgstr ""
-"VM '%(name)s' 不支援即時記憶體更新。請在機器處於離線狀態時"
-"更新記憶體,以啟用此功能。"
+"VM '%(name)s' 不支援即時記憶體更新。請在機器處於離線狀態時更新記憶體,以啟用"
+"此功能。"
msgid "Only increase memory is allowed in active VMs"
-msgstr ""
-"作用中的 VM 只容許增加記憶體"
+msgstr "作用中的 VM 只容許增加記憶體"
msgid ""
"For live memory update, new memory value must be equal old memory value plus "
"multiples of 1024 Mib"
-msgstr ""
-"對於即時記憶體更新,新的記憶體值必須等於舊記憶體值加上"
-"1024 Mib 的倍數"
+msgstr "對於即時記憶體更新,新的記憶體值必須等於舊記憶體值加上1024 Mib 的倍數"
msgid "There are not enough free slots of 1024 Mib in the guest."
-msgstr ""
-"客體中可用的 1024 Mib 插槽不足。"
+msgstr "客體中可用的 1024 Mib 插槽不足。"
msgid ""
"Host's libvirt version does not support memory devices. Libvirt must be >= "
"1.2.14"
-msgstr ""
-"主機的 libvirt 版本不支援記憶體裝置。Libvirt 必須大於等於"
-"1.2.14"
+msgstr "主機的 libvirt 版本不支援記憶體裝置。Libvirt 必須大於等於1.2.14"
#, python-format
msgid "Error attaching memory device. Details: %(error)s"
-msgstr ""
-"連接記憶體裝置時發生錯誤。詳細資料:%(error)s"
+msgstr "連接記憶體裝置時發生錯誤。詳細資料:%(error)s"
#, python-format
msgid ""
"VM %(vmid)s does not contain directly assigned host device %(dev_name)s."
-msgstr ""
-"VM %(vmid)s 不包含直接指派的主機裝置 %(dev_name)s。"
+msgstr "VM %(vmid)s 不包含直接指派的主機裝置 %(dev_name)s。"
#, python-format
msgid "The host device %(dev_name)s is not allowed to directly assign to VM."
-msgstr ""
-"不容許將主機裝置 %(dev_name)s 直接指派給 VM。"
+msgstr "不容許將主機裝置 %(dev_name)s 直接指派給 VM。"
msgid ""
"No IOMMU groups found. Host PCI pass through needs IOMMU group to function "
@@ -445,2397 +364,1835 @@ msgid ""
"to your Kernel parameter in /boot/grub2/grub.conf. For AMD CPU, add iommu=pt "
"iommu=1."
msgstr ""
-"找不到 IOMMU 群組。主機 PCI 透通需要 IOMMU 群組才能"
-"正常運作。請在 BIOS 中啟用 Intel VT-d 或 AMD IOMMU,然後驗證"
-"是否使用 IOMMU 支援編譯了核心。若為 Intel CPU,請將 intel_iommu=on "
-"新增至 /boot/grub2/grub.conf 中的核心參數。若為 AMD CPU,請新增 iommu=pt "
-"iommu=1。"
+"找不到 IOMMU 群組。主機 PCI 透通需要 IOMMU 群組才能正常運作。請在 BIOS 中啟"
+"用 Intel VT-d 或 AMD IOMMU,然後驗證是否使用 IOMMU 支援編譯了核心。若為 "
+"Intel CPU,請將 intel_iommu=on 新增至 /boot/grub2/grub.conf 中的核心參數。若"
+"為 AMD CPU,請新增 iommu=pt iommu=1。"
msgid "\"name\" should be a device name string"
-msgstr ""
-"\"name\" 應該是裝置名稱字串"
+msgstr "\"name\" 應該是裝置名稱字串"
#, python-format
msgid ""
"The device %(name)s is probably in use by the host. Unable to attach it to "
"the guest."
-msgstr ""
-"主機可能正在使用裝置 %(name)s。無法將該裝置連接至"
-"客體。"
+msgstr "主機可能正在使用裝置 %(name)s。無法將該裝置連接至客體。"
#, python-format
msgid "Interface %(iface)s does not exist in virtual machine %(name)s"
-msgstr ""
-"介面 %(iface)s 不在虛擬機器 %(name)s 中"
+msgstr "介面 %(iface)s 不在虛擬機器 %(name)s 中"
#, python-format
msgid ""
"Network %(network)s specified for virtual machine %(name)s does not exist"
-msgstr ""
-"為虛擬機器 %(name)s 指定的網路 %(network)s 不存在"
+msgstr "為虛擬機器 %(name)s 指定的網路 %(network)s 不存在"
msgid "Supported virtual machine interfaces type is only network"
-msgstr ""
-"唯一受支援的虛擬機器介面類型是網路"
+msgstr "唯一受支援的虛擬機器介面類型是網路"
msgid "Network name for virtual machine interface must be a string"
-msgstr ""
-"虛擬機器介面的網路名稱必須是字串"
+msgstr "虛擬機器介面的網路名稱必須是字串"
msgid "Invalid network model card specified for virtual machine interface"
-msgstr ""
-"為虛擬機器介面指定的網路模型卡無效"
+msgstr "為虛擬機器介面指定的網路模型卡無效"
msgid "Specify type and network to add a new virtual machine interface"
-msgstr ""
-"指定類型和網路以新增虛擬機器介面"
+msgstr "指定類型和網路以新增虛擬機器介面"
msgid "MAC Address must respect this format FF:FF:FF:FF:FF:FF"
-msgstr ""
-"「MAC 位址」必須遵循下列格式:FF:FF:FF:FF:FF:FF"
+msgstr "「MAC 位址」必須遵循下列格式:FF:FF:FF:FF:FF:FF"
#, python-format
msgid "MAC Address %(mac)s already exists in virtual machine %(name)s"
-msgstr ""
-"「MAC 位址」%(mac)s 已經存在於虛擬機器 %(name)s 中"
+msgstr "「MAC 位址」%(mac)s 已經存在於虛擬機器 %(name)s 中"
msgid "Invalid MAC Address"
-msgstr ""
-"MAC 位址無效"
+msgstr "MAC 位址無效"
msgid "Cannot change MAC address of a running virtual machine"
-msgstr ""
-"無法變更執行中虛擬機器的 MAC 位址"
+msgstr "無法變更執行中虛擬機器的 MAC 位址"
#, python-format
msgid "Template %(name)s already exists"
-msgstr ""
-"範本 %(name)s 已經存在"
+msgstr "範本 %(name)s 已經存在"
#, python-format
msgid ""
"Network '%(network)s' specified for template %(template)s does not exist"
-msgstr ""
-"為範本 %(template)s 指定的網路 '%(network)s' 不存在"
+msgstr "為範本 %(template)s 指定的網路 '%(network)s' 不存在"
#, python-format
msgid ""
"Storage pool %(pool)s specified for template %(template)s does not exist"
-msgstr ""
-"為範本 %(template)s 指定的儲存區 %(pool)s 不存在"
+msgstr "為範本 %(template)s 指定的儲存區 %(pool)s 不存在"
#, python-format
msgid "Storage pool %(pool)s specified for template %(template)s is not active"
-msgstr ""
-"為範本 %(template)s 指定的儲存區 %(pool)s 處於非作用中狀態"
+msgstr "為範本 %(template)s 指定的儲存區 %(pool)s 處於非作用中狀態"
#, python-format
msgid "Invalid parameter '%(param)s' specified for CDROM."
-msgstr ""
-"為 CDROM 指定的參數 '%(param)s' 無效。"
+msgstr "為 CDROM 指定的參數 '%(param)s' 無效。"
#, python-format
msgid "Network %(network)s specified for template %(template)s is not active"
-msgstr ""
-"為範本 %(template)s 指定的網路 %(network)s 處於非作用中狀態"
+msgstr "為範本 %(template)s 指定的網路 %(network)s 處於非作用中狀態"
msgid "Template name must be a string"
-msgstr ""
-"範本名稱必須是字串"
+msgstr "範本名稱必須是字串"
msgid "Template icon must be a path to the image"
-msgstr ""
-"範本圖示必須是影像的路徑"
+msgstr "範本圖示必須是影像的路徑"
msgid "Template distribution must be a string"
-msgstr ""
-"範本發行套件必須是字串"
+msgstr "範本發行套件必須是字串"
msgid "Template distribution version must be a string"
-msgstr ""
-"範本發行版本必須是字串"
+msgstr "範本發行版本必須是字串"
msgid "The number of CPUs must be an integer greater than 0"
-msgstr ""
-"CPU 數目必須是大於 0 的整數"
+msgstr "CPU 數目必須是大於 0 的整數"
msgid "Amount of memory (MB) must be an integer greater than 512"
-msgstr ""
-"記憶體數量 (MB) 必須是大於 512 的整數"
+msgstr "記憶體數量 (MB) 必須是大於 512 的整數"
msgid "Template CDROM must be a local or remote ISO file"
-msgstr ""
-"範本 CDROM 必須是本端或遠端 ISO 檔案"
+msgstr "範本 CDROM 必須是本端或遠端 ISO 檔案"
#, python-format
msgid "Invalid storage pool URI %(value)s specified for template"
-msgstr ""
-"為範本指定的儲存區 URI %(value)s 無效"
+msgstr "為範本指定的儲存區 URI %(value)s 無效"
msgid "Specify an ISO image as CDROM or a base image to create a template"
-msgstr ""
-"指定 ISO 映像檔作為 CDROM 或基本映像檔,以建立範本"
+msgstr "指定 ISO 映像檔作為 CDROM 或基本映像檔,以建立範本"
msgid "All networks for the template must be specified in a list."
-msgstr ""
-"範本的所有網路都必須在清單中指定。"
+msgstr "範本的所有網路都必須在清單中指定。"
msgid "Specify a volume to a template when storage pool is iSCSI or SCSI"
-msgstr ""
-"當儲存區是 iSCSI 或 SCSI 時,請將磁區指定給範本"
+msgstr "當儲存區是 iSCSI 或 SCSI 時,請將磁區指定給範本"
#, python-format
msgid "The volume %(volume)s is not in storage pool %(pool)s"
-msgstr ""
-"磁區 %(volume)s 不在儲存區 %(pool)s 中"
+msgstr "磁區 %(volume)s 不在儲存區 %(pool)s 中"
#, python-format
msgid "Unable to create template due error: %(err)s"
-msgstr ""
-"由於發生錯誤,無法建立範本:%(err)s"
+msgstr "由於發生錯誤,無法建立範本:%(err)s"
#, python-format
msgid "Unable to delete template due error: %(err)s"
-msgstr ""
-"由於發生錯誤,無法刪除範本:%(err)s"
+msgstr "由於發生錯誤,無法刪除範本:%(err)s"
msgid "Disk size must be an integer greater than 1GB."
-msgstr ""
-"磁碟大小必須是大於 1 GB 的整數。"
+msgstr "磁碟大小必須是大於 1 GB 的整數。"
msgid "Template base image must be a valid local image file"
-msgstr ""
-"範本基本映像檔必須是有效的本端映像檔"
+msgstr "範本基本映像檔必須是有效的本端映像檔"
#, python-format
msgid "Cannot identify base image %(path)s format"
-msgstr ""
-"無法識別基本映像檔 %(path)s 格式"
+msgstr "無法識別基本映像檔 %(path)s 格式"
msgid ""
"When specifying CPU topology, VCPUs must be a product of sockets, cores, and "
"threads."
-msgstr ""
-"指定 CPU 拓蹼時,VCPU 必須是 Socket、核心及"
-"執行緒的產品。"
+msgstr "指定 CPU 拓蹼時,VCPU 必須是 Socket、核心及執行緒的產品。"
msgid ""
"When specifying CPU topology, each element must be an integer greater than "
"zero."
-msgstr ""
-"指定 CPU 拓蹼時,每一個元素都必須是大於 0 的"
-"整數。"
+msgstr "指定 CPU 拓蹼時,每一個元素都必須是大於 0 的整數。"
msgid ""
"Invalid disk image format. Valid formats: bochs, cloop, cow, dmg, qcow, "
"qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"磁碟映像檔格式無效。有效的格式:bochs、cloop、cow、dmg、qcow、"
-"qcow2、qed、raw、vmdk 和 vpc。"
+"磁碟映像檔格式無效。有效的格式:bochs、cloop、cow、dmg、qcow、qcow2、qed、"
+"raw、vmdk 和 vpc。"
#, python-format
msgid "Storage pool %(name)s already exists"
-msgstr ""
-"儲存區 %(name)s 已經存在"
+msgstr "儲存區 %(name)s 已經存在"
#, python-format
msgid "Storage pool %(name)s does not exist"
-msgstr ""
-"儲存區 %(name)s 不存在"
+msgstr "儲存區 %(name)s 不存在"
#, python-format
msgid "Specify %(item)s in order to create the storage pool %(name)s"
-msgstr ""
-"指定 %(item)s 以建立儲存區 %(name)s"
+msgstr "指定 %(item)s 以建立儲存區 %(name)s"
#, python-format
msgid "Unable to delete active storage pool %(name)s"
-msgstr ""
-"無法刪除作用中的儲存區 %(name)s"
+msgstr "無法刪除作用中的儲存區 %(name)s"
#, python-format
msgid "Unable to list storage pools. Details: %(err)s"
-msgstr ""
-"無法列出儲存區。詳細資料:%(err)s"
+msgstr "無法列出儲存區。詳細資料:%(err)s"
#, python-format
msgid "Unable to create storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"無法建立儲存區 %(name)s。詳細資料:%(err)s"
+msgstr "無法建立儲存區 %(name)s。詳細資料:%(err)s"
#, python-format
msgid ""
"Unable to get number of storage volumes in storage pool %(name)s. Details: "
"%(err)s"
-msgstr ""
-"無法取得儲存區 %(name)s 中的儲存磁區數目。詳細資料:"
-"%(err)s"
+msgstr "無法取得儲存區 %(name)s 中的儲存磁區數目。詳細資料:%(err)s"
#, python-format
msgid "Unable to activate storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"無法啟動儲存區 %(name)s。詳細資料:%(err)s"
+msgstr "無法啟動儲存區 %(name)s。詳細資料:%(err)s"
#, python-format
msgid "Unable to deactivate storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"無法取消啟動儲存區 %(name)s。詳細資料:%(err)s"
+msgstr "無法取消啟動儲存區 %(name)s。詳細資料:%(err)s"
#, python-format
msgid "Unable to delete storage pool %(name)s. Details: %(err)s"
-msgstr ""
-"無法刪除儲存區 %(name)s。詳細資料:%(err)s"
+msgstr "無法刪除儲存區 %(name)s。詳細資料:%(err)s"
#, python-format
msgid ""
"Unable to create NFS Pool as export path %(path)s may block during mount"
-msgstr ""
-"無法建立 NFS 儲存區,因為在裝載期間,匯出路徑 %(path)s 可能會封鎖"
+msgstr "無法建立 NFS 儲存區,因為在裝載期間,匯出路徑 %(path)s 可能會封鎖"
#, python-format
msgid "Unable to create NFS Pool as export path %(path)s mount failed"
-msgstr ""
-"無法建立 NFS 儲存區,因為匯出路徑 %(path)s 裝載失敗"
+msgstr "無法建立 NFS 儲存區,因為匯出路徑 %(path)s 裝載失敗"
#, python-format
msgid "Unsupported storage pool type: %(type)s"
-msgstr ""
-"不受支援的儲存區類型:%(type)s"
+msgstr "不受支援的儲存區類型:%(type)s"
#, python-format
msgid "Error while retrieving storage pool XML to %(pool)s"
-msgstr ""
-"擷取儲存區 XML 至 %(pool)s 時發生錯誤"
+msgstr "擷取儲存區 XML 至 %(pool)s 時發生錯誤"
msgid "Storage pool name must be a string without slashes (/)"
-msgstr ""
-"儲存區名稱必須是不含斜線 (/) 的字串"
+msgstr "儲存區名稱必須是不含斜線 (/) 的字串"
msgid ""
"Supported storage pool types are dir, netfs, logical, iscsi, isci and kimchi-"
"iso"
-msgstr ""
-"受支援的儲存區類型是 dir、netfs、邏輯、iscsi、isci 和 kimchi-"
-"iso"
+msgstr "受支援的儲存區類型是 dir、netfs、邏輯、iscsi、isci 和 kimchi-iso"
msgid "Storage pool path must be a string"
-msgstr ""
-"儲存區路徑必須是字串"
+msgstr "儲存區路徑必須是字串"
msgid "Storage pool host must be a IP or hostname"
-msgstr ""
-"儲存區主機必須是 IP 或主機名稱"
+msgstr "儲存區主機必須是 IP 或主機名稱"
msgid "Storage pool device must be the absolute path to the block device"
-msgstr ""
-"儲存區裝置必須是區塊裝置的絕對路徑"
+msgstr "儲存區裝置必須是區塊裝置的絕對路徑"
msgid "Storage pool devices parameter must be a list"
-msgstr ""
-"儲存區裝置參數必須是清單"
+msgstr "儲存區裝置參數必須是清單"
msgid "Target IQN of an iSCSI pool must be a string"
-msgstr ""
-"iSCSI 儲存區的目標 IQN 必須是字串"
+msgstr "iSCSI 儲存區的目標 IQN 必須是字串"
msgid "Port of a remote storage server must be an integer between 1 and 65535"
-msgstr ""
-"遠端儲存體伺服器的埠必須是介於 1 和 65535 之間的整數"
+msgstr "遠端儲存體伺服器的埠必須是介於 1 和 65535 之間的整數"
msgid "iSCSI target username must be a string"
-msgstr ""
-"iSCSI 目標使用者名稱必須是字串"
+msgstr "iSCSI 目標使用者名稱必須是字串"
msgid "iSCSI target password must be a string"
-msgstr ""
-"iSCSI 目標密碼必須是字串"
+msgstr "iSCSI 目標密碼必須是字串"
msgid "Specify name and type to create a storage pool"
-msgstr ""
-"指定名稱和類型以建立儲存區"
+msgstr "指定名稱和類型以建立儲存區"
#, python-format
msgid ""
"%(disk)s is not a valid disk/partition. Could not add it to the pool "
"%(pool)s."
-msgstr ""
-"%(disk)s 不是有效的磁碟/分割區。無法將其新增至儲存區"
-"%(pool)s。"
+msgstr "%(disk)s 不是有效的磁碟/分割區。無法將其新增至儲存區%(pool)s。"
#, python-format
msgid "Unable to extend logical pool %(pool)s. Details: %(err)s"
-msgstr ""
-"無法延伸邏輯儲存區 %(pool)s。詳細資料:%(err)s"
+msgstr "無法延伸邏輯儲存區 %(pool)s。詳細資料:%(err)s"
msgid "The parameter disks only can be updated for logical storage pool."
-msgstr ""
-"只能針對邏輯儲存區更新「僅限磁碟」參數。"
+msgstr "只能針對邏輯儲存區更新「僅限磁碟」參數。"
msgid "The SCSI host adapter name must be a string."
-msgstr ""
-"SCSI 主機配接卡名稱必須是字串。"
+msgstr "SCSI 主機配接卡名稱必須是字串。"
msgid "The storage pool kimchi_isos is reserved for internal use"
-msgstr ""
-"儲存區 kimchi_isos 保留供內部使用"
+msgstr "儲存區 kimchi_isos 保留供內部使用"
#, python-format
msgid ""
"Unable to activate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
-msgstr ""
-"無法啟動 NFS 儲存區 %(name)s。NFS 伺服器 %(server)s"
-"無法連線。"
+msgstr "無法啟動 NFS 儲存區 %(name)s。NFS 伺服器 %(server)s無法連線。"
#, python-format
msgid ""
"Unable to deactivate NFS storage pool %(name)s. NFS server %(server)s is "
"unreachable."
-msgstr ""
-"無法取消啟動 NFS 儲存區 %(name)s。NFS 伺服器 %(server)s"
-"無法連線。"
+msgstr "無法取消啟動 NFS 儲存區 %(name)s。NFS 伺服器 %(server)s無法連線。"
#, python-format
msgid ""
"Unable to deactivate pool %(name)s as it is associated with some templates"
-msgstr ""
-"無法取消啟動儲存區 %(name)s,因為它與部分範本相關聯"
+msgstr "無法取消啟動儲存區 %(name)s,因為它與部分範本相關聯"
#, python-format
msgid "Unable to delete pool %(name)s as it is associated with some templates"
-msgstr ""
-"無法刪除儲存區 %(name)s,因為它與部分範本相關聯"
+msgstr "無法刪除儲存區 %(name)s,因為它與部分範本相關聯"
#, python-format
msgid ""
"A volume group named '%(name)s' already exists. Please, choose another name "
"to create the logical pool."
-msgstr ""
-"名為 '%(name)s' 的磁區群組已存在。請選擇另一個名稱"
-"以建立邏輯儲存區。"
+msgstr "名為 '%(name)s' 的磁區群組已存在。請選擇另一個名稱以建立邏輯儲存區。"
#, python-format
msgid "Unable to update database with deep scan information due error: %(err)s"
-msgstr ""
-"由於下列錯誤,無法使用深層掃描資訊來更新資料庫:%(err)s"
+msgstr "由於下列錯誤,無法使用深層掃描資訊來更新資料庫:%(err)s"
#, python-format
msgid "Storage volume %(name)s already exists"
-msgstr ""
-"儲存磁區 %(name)s 已經存在"
+msgstr "儲存磁區 %(name)s 已經存在"
#, python-format
msgid "Storage volume %(name)s does not exist in storage pool %(pool)s"
-msgstr ""
-"儲存磁區 %(name)s 不在儲存區 %(pool)s 中"
+msgstr "儲存磁區 %(name)s 不在儲存區 %(pool)s 中"
#, python-format
msgid ""
"Unable to create storage volume %(volume)s because storage pool %(pool)s is "
"not active"
-msgstr ""
-"無法建立儲存磁區 %(volume)s,因為儲存區 %(pool)s"
-"未處於作用中狀態"
+msgstr "無法建立儲存磁區 %(volume)s,因為儲存區 %(pool)s未處於作用中狀態"
#, python-format
msgid "Specify %(item)s in order to create storage volume %(volume)s"
-msgstr ""
-"指定 %(item)s 以建立儲存磁區 %(volume)s"
+msgstr "指定 %(item)s 以建立儲存磁區 %(volume)s"
#, python-format
msgid ""
"Unable to list storage volumes because storage pool %(pool)s is not active"
-msgstr ""
-"無法列出儲存磁區,因為儲存區 %(pool)s 未處於作用中狀態"
+msgstr "無法列出儲存磁區,因為儲存區 %(pool)s 未處於作用中狀態"
#, python-format
msgid ""
"Unable to create storage volume %(name)s in storage pool %(pool)s. Details: "
"%(err)s"
-msgstr ""
-"無法在儲存區 %(pool)s 中建立儲存磁區 %(name)s。詳細資料:"
-"%(err)s"
+msgstr "無法在儲存區 %(pool)s 中建立儲存磁區 %(name)s。詳細資料:%(err)s"
#, python-format
msgid ""
"Unable to list storage volumes in storage pool %(pool)s. Details: %(err)s"
-msgstr ""
-"無法列出儲存區 %(pool)s 中的儲存磁區。詳細資料:%(err)s"
+msgstr "無法列出儲存區 %(pool)s 中的儲存磁區。詳細資料:%(err)s"
#, python-format
msgid "Unable to wipe storage volumes %(name)s. Details: %(err)s"
-msgstr ""
-"無法清除儲存磁區 %(name)s。詳細資料:%(err)s"
+msgstr "無法清除儲存磁區 %(name)s。詳細資料:%(err)s"
#, python-format
msgid "Unable to delete storage volume %(name)s. Details: %(err)s"
-msgstr ""
-"無法刪除儲存磁區 %(name)s。詳細資料:%(err)s"
+msgstr "無法刪除儲存磁區 %(name)s。詳細資料:%(err)s"
#, python-format
msgid "Unable to resize storage volume %(name)s. Details: %(err)s"
-msgstr ""
-"無法調整儲存磁區 %(name)s 的大小。詳細資料:%(err)s"
+msgstr "無法調整儲存磁區 %(name)s 的大小。詳細資料:%(err)s"
#, python-format
msgid "Storage type %(type)s does not support volume create and delete"
-msgstr ""
-"儲存體類型 %(type)s 不支援磁區建立和刪除"
+msgstr "儲存體類型 %(type)s 不支援磁區建立和刪除"
msgid "Storage volume name must be a string"
-msgstr ""
-"儲存磁區名稱必須是字串"
+msgstr "儲存磁區名稱必須是字串"
msgid "Storage volume allocation must be an integer number"
-msgstr ""
-"儲存磁區配置必須是整數"
+msgstr "儲存磁區配置必須是整數"
msgid ""
"Storage volume format not supported. Valid formats: bochs, cloop, cow, dmg, "
"qcow, qcow2, qed, raw, vmdk, vpc."
msgstr ""
-"儲存磁區格式不受支援。有效的格式:bochs、cloop、cow、dmg、"
-"qcow、qcow2、qed、raw、vmdk 和 vpc。"
+"儲存磁區格式不受支援。有效的格式:bochs、cloop、cow、dmg、qcow、qcow2、qed、"
+"raw、vmdk 和 vpc。"
msgid "Storage volume requires a volume name"
-msgstr ""
-"儲存磁區需要磁區名稱"
+msgstr "儲存磁區需要磁區名稱"
#, python-format
msgid ""
"Unable to update database with storage volume information due error: %(err)s"
-msgstr ""
-"由於下列錯誤,無法使用儲存磁區資訊來更新資料庫:%(err)s"
+msgstr "由於下列錯誤,無法使用儲存磁區資訊來更新資料庫:%(err)s"
#, python-format
msgid "Only one of parameter %(param)s can be specified"
-msgstr ""
-"只能指定其中一個參數 %(param)s"
+msgstr "只能指定其中一個參數 %(param)s"
#, python-format
msgid "Create volume from %(param)s is not supported"
-msgstr ""
-"不支援從 %(param)s 建立磁區"
+msgstr "不支援從 %(param)s 建立磁區"
msgid "Storage volume capacity must be an integer number."
-msgstr ""
-"儲存磁區容量必須是整數。"
+msgstr "儲存磁區容量必須是整數。"
msgid "Storage volume URL must be http://, https://, ftp:// or ftps://."
-msgstr ""
-"儲存磁區 URL 必須是 http://、https://、ftp:// 或 ftps://。"
+msgstr "儲存磁區 URL 必須是 http://、https://、ftp:// 或 ftps://。"
#, python-format
msgid "Unable to access file %(url)s. Please, check it."
-msgstr ""
-"無法存取檔案 %(url)s。請檢查該檔案。"
+msgstr "無法存取檔案 %(url)s。請檢查該檔案。"
#, python-format
msgid ""
"Unable to clone storage volume '%(name)s' in pool '%(pool)s'. Details: "
"%(err)s"
-msgstr ""
-"無法複製儲存區 '%(pool)s' 中的儲存磁區 '%(name)s'。詳細資料:"
-"%(err)s"
+msgstr "無法複製儲存區 '%(pool)s' 中的儲存磁區 '%(name)s'。詳細資料:%(err)s"
msgid "Specify chunk data and its size to upload a file."
-msgstr ""
-"指定區塊資料及其大小以上傳檔案。"
+msgstr "指定區塊資料及其大小以上傳檔案。"
msgid "In order to upload a storage volume, specify the 'upload' parameter."
-msgstr ""
-"若要上傳儲存磁區,請指定 'upload' 參數。"
+msgstr "若要上傳儲存磁區,請指定 'upload' 參數。"
msgid ""
"Unable to upload chunk data as it does not match with requested chunk size."
-msgstr ""
-"無法上傳區塊資料,因為該區塊資料與所要求的區塊大小不符。"
+msgstr "無法上傳區塊資料,因為該區塊資料與所要求的區塊大小不符。"
#, python-format
msgid "The storage volume %(vol)s is not under an upload process."
-msgstr ""
-"儲存磁區 %(vol)s 未在上傳過程中。"
+msgstr "儲存磁區 %(vol)s 未在上傳過程中。"
msgid "The upload chunk data will exceed the storage volume size."
-msgstr ""
-"上傳區塊資料將超過儲存磁區大小。"
+msgstr "上傳區塊資料將超過儲存磁區大小。"
#, python-format
msgid "Unable to upload chunk data to storage volume. Details: %(err)s."
-msgstr ""
-"無法將區塊資料上傳至儲存磁區。詳細資料:%(err)s。"
+msgstr "無法將區塊資料上傳至儲存磁區。詳細資料:%(err)s。"
#, python-format
msgid "Interface %(name)s does not exist"
-msgstr ""
-"介面 %(name)s 不存在"
+msgstr "介面 %(name)s 不存在"
#, python-format
msgid "Network %(name)s already exists"
-msgstr ""
-"網路 %(name)s 已經存在"
+msgstr "網路 %(name)s 已經存在"
#, python-format
msgid "Network %(name)s does not exist"
-msgstr ""
-"網路 %(name)s 不存在"
+msgstr "網路 %(name)s 不存在"
#, python-format
msgid "Subnet %(subnet)s specified for network %(network)s is not valid."
-msgstr ""
-"為網路 %(network)s 指定的子網路 %(subnet)s 無效。"
+msgstr "為網路 %(network)s 指定的子網路 %(subnet)s 無效。"
#, python-format
msgid "Specify a network interface to create bridged network %(name)s"
-msgstr ""
-"指定網路介面,以建立橋接網路 %(name)s"
+msgstr "指定網路介面,以建立橋接網路 %(name)s"
#, python-format
msgid "Unable to delete active network %(name)s"
-msgstr ""
-"無法刪除作用中的網路 %(name)s"
+msgstr "無法刪除作用中的網路 %(name)s"
#, python-format
msgid "Interface %(iface)s specified for network %(network)s is already in use"
-msgstr ""
-"為網路 %(network)s 指定的介面 %(iface)s 已在使用中。"
+msgstr "為網路 %(network)s 指定的介面 %(iface)s 已在使用中。"
msgid "Interface should be bare NIC, bonding or bridge device."
-msgstr ""
-"介面應該是裸露 NIC、接合裝置或橋接器裝置。"
+msgstr "介面應該是裸露 NIC、接合裝置或橋接器裝置。"
#, python-format
msgid "Unable to create network %(name)s. Details: %(err)s"
-msgstr ""
-"無法建立網路 %(name)s。詳細資料:%(err)s"
+msgstr "無法建立網路 %(name)s。詳細資料:%(err)s"
#, python-format
msgid "Unable to find a free IP address for network '%(name)s'"
-msgstr ""
-"找不到網路 '%(name)s' 的可用 IP 位址"
+msgstr "找不到網路 '%(name)s' 的可用 IP 位址"
#, python-format
msgid "The interface %(iface)s already exists."
-msgstr ""
-"介面 %(iface)s 已經存在。"
+msgstr "介面 %(iface)s 已經存在。"
msgid "Network name must be a string without slashes (/) or quotes (\")"
-msgstr ""
-"網路名稱必須是不含斜線 (/) 或引號 (\") 的字串"
+msgstr "網路名稱必須是不含斜線 (/) 或引號 (\") 的字串"
msgid "Supported network types are isolated, NAT and bridge"
-msgstr ""
-"受支援的網路類型是隔離式、NAT 和橋接器"
+msgstr "受支援的網路類型是隔離式、NAT 和橋接器"
msgid "Network subnet must be a string with IP address and prefix or netmask"
-msgstr ""
-"網路的子網路必須是含有 IP 位址、字首或網路遮罩的字串"
+msgstr "網路的子網路必須是含有 IP 位址、字首或網路遮罩的字串"
msgid "Network interface must be a string"
-msgstr ""
-"網路介面必須是字串"
+msgstr "網路介面必須是字串"
msgid "Network VLAN ID must be an integer between 1 and 4094"
-msgstr ""
-"網路 VLAN ID 必須是介於 1 和 4094 之間的整數"
+msgstr "網路 VLAN ID 必須是介於 1 和 4094 之間的整數"
msgid "Specify name and type to create a Network"
-msgstr ""
-"指定名稱和類型以建立網路"
+msgstr "指定名稱和類型以建立網路"
#, python-format
msgid ""
"Unable to delete network %(name)s. There are some virtual machines %(vms)s "
"and/or templates linked to this network."
msgstr ""
-"無法刪除網路 %(name)s。有一些虛擬機器 %(vms)s "
-"及/或範本已鏈結至此網路。"
+"無法刪除網路 %(name)s。有一些虛擬機器 %(vms)s 及/或範本已鏈結至此網路。"
#, python-format
msgid ""
"Unable to deactivate network %(name)s. There are some virtual machines "
"%(vms)s and/or templates linked to this network."
msgstr ""
-"無法取消啟動網路 %(name)s。有一些虛擬機器"
-"%(vms)s 及/或範本已鏈結至此網路。"
+"無法取消啟動網路 %(name)s。有一些虛擬機器%(vms)s 及/或範本已鏈結至此網路。"
#, python-format
msgid "Bridge device %(name)s can not be the trunk device of a VLAN."
-msgstr ""
-"橋接器裝置 %(name)s 不能是 VLAN 的幹線裝置。"
+msgstr "橋接器裝置 %(name)s 不能是 VLAN 的幹線裝置。"
#, python-format
msgid "Failed to activate interface %(iface)s: %(err)s."
-msgstr ""
-"無法啟動介面 %(iface)s:%(err)s。"
+msgstr "無法啟動介面 %(iface)s:%(err)s。"
#, python-format
msgid ""
"Failed to activate interface %(iface)s. Please check the physical link "
"status."
-msgstr ""
-"無法啟動介面 %(iface)s。請檢查實際鏈結"
-"狀態。"
+msgstr "無法啟動介面 %(iface)s。請檢查實際鏈結狀態。"
#, python-format
msgid "Failed to start network %(name)s. Details: %(err)s"
-msgstr ""
-"無法啟動網路 %(name)s。詳細資料:%(err)s"
+msgstr "無法啟動網路 %(name)s。詳細資料:%(err)s"
#, python-format
msgid "Debug report %(name)s does not exist"
-msgstr ""
-"除錯報告 %(name)s 不存在"
+msgstr "除錯報告 %(name)s 不存在"
msgid "Debug report tool not found in system"
-msgstr ""
-"在系統中找不到除錯報告工具"
+msgstr "在系統中找不到除錯報告工具"
#, python-format
msgid "Unable to create debug report %(name)s. Details: %(err)s."
-msgstr ""
-"無法建立除錯報告 %(name)s。詳細資料:%(err)s。"
+msgstr "無法建立除錯報告 %(name)s。詳細資料:%(err)s。"
#, python-format
msgid "Can not find any debug report with the given name %(name)s"
-msgstr ""
-"找不到具有給定名稱 %(name)s 的任何除錯報告"
+msgstr "找不到具有給定名稱 %(name)s 的任何除錯報告"
#, python-format
msgid "Unable to generate debug report %(name)s. Details: %(err)s"
-msgstr ""
-"無法產生除錯報告 %(name)s。詳細資料:%(err)s"
+msgstr "無法產生除錯報告 %(name)s。詳細資料:%(err)s"
msgid "You should give a name for the debug report file."
-msgstr ""
-"應該命名除錯報告檔。"
+msgstr "應該命名除錯報告檔。"
msgid ""
"Debug report name must be a string. Only letters, digits, underscore ('_') "
"and hyphen ('-') are allowed."
msgstr ""
-"除錯報告名稱必須是字串。只容許使用字母、數字、底線 ('_') "
-"及連字號 ('-')。"
+"除錯報告名稱必須是字串。只容許使用字母、數字、底線 ('_') 及連字號 ('-')。"
#, python-format
msgid ""
"The debug report with specified name \"%(name)s\" already exists. Please use "
"another one."
-msgstr ""
-"具有指定名稱 \"%(name)s\" 的除錯報告已經存在。請使用"
-"另一個名稱。"
+msgstr "具有指定名稱 \"%(name)s\" 的除錯報告已經存在。請使用另一個名稱。"
#, python-format
msgid "Storage server %(server)s was not used by Kimchi"
-msgstr ""
-"Kimchi 未使用儲存體伺服器 %(server)s"
+msgstr "Kimchi 未使用儲存體伺服器 %(server)s"
#, python-format
msgid "Distro '%(name)s' does not exist"
-msgstr ""
-"Distro '%(name)s' 不存在"
+msgstr "Distro '%(name)s' 不存在"
#, python-format
msgid "Partition %(name)s does not exist in the host"
-msgstr ""
-"分割區 %(name)s 不在主機中"
+msgstr "分割區 %(name)s 不在主機中"
msgid "Unable to shutdown host machine as there are running virtual machines"
-msgstr ""
-"無法關閉主機,因為有一些虛擬機器正在執行中"
+msgstr "無法關閉主機,因為有一些虛擬機器正在執行中"
msgid "Unable to reboot host machine as there are running virtual machines"
-msgstr ""
-"無法將主機重新開機,因為有一些虛擬機器正在執行中"
+msgstr "無法將主機重新開機,因為有一些虛擬機器正在執行中"
#, python-format
msgid "Node device '%(name)s' not found"
-msgstr ""
-"找不到節點裝置 '%(name)s'"
+msgstr "找不到節點裝置 '%(name)s'"
msgid "Conflicting flag filters specified."
-msgstr ""
-"指定的旗標過濾器有衝突。"
+msgstr "指定的旗標過濾器有衝突。"
msgid "No packages marked for update"
-msgstr ""
-"沒有套件標示為要進行更新"
+msgstr "沒有套件標示為要進行更新"
#, python-format
msgid "Package %(name)s is not marked to be updated."
-msgstr ""
-"套件 %(name)s 未標示為要進行更新。"
+msgstr "套件 %(name)s 未標示為要進行更新。"
#, python-format
msgid "Error while getting packages marked to be updated. Details: %(err)s"
-msgstr ""
-"取得標示為要進行更新的套件時發生錯誤。詳細資料:%(err)s"
+msgstr "取得標示為要進行更新的套件時發生錯誤。詳細資料:%(err)s"
msgid "There is no compatible package manager for this system."
-msgstr ""
-"沒有此系統的相容套件管理程式。"
+msgstr "沒有此系統的相容套件管理程式。"
#, python-format
msgid "Unable to find %(item)s in datastore"
-msgstr ""
-"在資料儲存庫中找不到 %(item)s"
+msgstr "在資料儲存庫中找不到 %(item)s"
#, python-format
msgid "Invalid URI %(uri)s"
-msgstr ""
-"無效的 URI %(uri)s"
+msgstr "無效的 URI %(uri)s"
#, python-format
msgid "Timeout while running command '%(cmd)s' after %(seconds)s seconds"
-msgstr ""
-"執行指令 '%(cmd)s' 時,在 %(seconds)s 秒之後逾時"
+msgstr "執行指令 '%(cmd)s' 時,在 %(seconds)s 秒之後逾時"
msgid "Unable to choose a virtual machine name"
-msgstr ""
-"無法選擇虛擬機器名稱"
+msgstr "無法選擇虛擬機器名稱"
#, python-format
msgid "Invalid data value '%(value)s'"
-msgstr ""
-"無效的資料值 '%(value)s'"
+msgstr "無效的資料值 '%(value)s'"
#, python-format
msgid "Invalid data unit '%(unit)s'"
-msgstr ""
-"無效的資料單元 '%(unit)s'"
+msgstr "無效的資料單元 '%(unit)s'"
msgid "Invalid storage type. Types supported: 'cdrom', 'disk'"
-msgstr ""
-"儲存體類型無效。支援的類型:'cdrom' 和 'disk'"
+msgstr "儲存體類型無效。支援的類型:'cdrom' 和 'disk'"
#, python-format
msgid "The path '%(value)s' is not a valid local/remote path for the device"
-msgstr ""
-"路徑 '%(value)s' 不是該裝置的有效本端/遠端路徑"
+msgstr "路徑 '%(value)s' 不是該裝置的有效本端/遠端路徑"
msgid "Only CDROM path can be update."
-msgstr ""
-"只能更新 CDROM 路徑。"
+msgstr "只能更新 CDROM 路徑。"
#, python-format
msgid ""
"The storage device %(dev_name)s does not exist in the virtual machine "
"%(vm_name)s"
-msgstr ""
-"儲存裝置 %(dev_name)s 不在下列虛擬機器中:"
-"%(vm_name)s"
+msgstr "儲存裝置 %(dev_name)s 不在下列虛擬機器中:%(vm_name)s"
#, python-format
msgid "Error while creating new storage device: %(error)s"
-msgstr ""
-"建立新的儲存裝置時發生錯誤:%(error)s"
+msgstr "建立新的儲存裝置時發生錯誤:%(error)s"
#, python-format
msgid "Error while updating storage device: %(error)s"
-msgstr ""
-"更新儲存裝置時發生錯誤:%(error)s"
+msgstr "更新儲存裝置時發生錯誤:%(error)s"
#, python-format
msgid "Error while removing storage device: %(error)s"
-msgstr ""
-"移除儲存裝置時發生錯誤:%(error)s"
+msgstr "移除儲存裝置時發生錯誤:%(error)s"
msgid "Do not support IDE device hot plug"
-msgstr ""
-"請勿支援 IDE 裝置熱插拔"
+msgstr "請勿支援 IDE 裝置熱插拔"
msgid ""
"Specify type and path or type and pool/volume to add a new virtual machine "
"disk"
-msgstr ""
-"指定類型和路徑,或者鍵入儲存區/磁區,以新增虛擬機器"
-"磁碟"
+msgstr "指定類型和路徑,或者鍵入儲存區/磁區,以新增虛擬機器磁碟"
msgid "Specify path to update virtual machine disk"
-msgstr ""
-"指定路徑以更新虛擬機器磁碟"
+msgstr "指定路徑以更新虛擬機器磁碟"
#, python-format
msgid "Controller type %(type)s limitation of %(limit)s devices reached"
-msgstr ""
-"已達到控制器類型 %(type)s 限制:%(limit)s 個裝置"
+msgstr "已達到控制器類型 %(type)s 限制:%(limit)s 個裝置"
#, python-format
msgid "Cannot retrieve disk path information for given pool/volume: %(error)s"
-msgstr ""
-"無法擷取給定儲存區/磁區的磁碟路徑資訊:%(error)s"
+msgstr "無法擷取給定儲存區/磁區的磁碟路徑資訊:%(error)s"
msgid "Volume already in use by other virtual machine."
-msgstr ""
-"其他虛擬機器已在使用該磁區。"
+msgstr "其他虛擬機器已在使用該磁區。"
msgid ""
"Only one of path or pool/volume can be specified to add a new virtual "
"machine disk"
-msgstr ""
-"僅可以指定一個路徑或集區/磁區以新增到"
-"虛擬機器磁碟"
+msgstr "僅可以指定一個路徑或集區/磁區以新增到虛擬機器磁碟"
#, python-format
msgid ""
"Volume chosen with format %(format)s does not fit in the storage type "
"%(type)s"
-msgstr ""
-"所選格式為 %(format)s 的磁區不適合儲存體類型"
-"%(type)s"
+msgstr "所選格式為 %(format)s 的磁區不適合儲存體類型%(type)s"
msgid "YUM Repository ID must be one word only string."
-msgstr ""
-"YUM 儲存庫 ID 必須是僅限一個單字的字串。"
+msgstr "YUM 儲存庫 ID 必須是僅限一個單字的字串。"
msgid "Repository URL must be an http://, ftp:// or file:// URL."
-msgstr ""
-"儲存庫 URL 必須是 http://、ftp:// 或 file:// URL。"
+msgstr "儲存庫 URL 必須是 http://、ftp:// 或 file:// URL。"
msgid ""
"Repository configuration is a dictionary with specific values according to "
"repository type."
-msgstr ""
-"儲存庫配置是字典,其中包含於"
-"儲存庫類型對應的特定值。"
+msgstr "儲存庫配置是字典,其中包含於儲存庫類型對應的特定值。"
msgid "Distribution to DEB repository must be a string"
-msgstr ""
-"DEB 儲存庫的發行套件必須是字串"
+msgstr "DEB 儲存庫的發行套件必須是字串"
msgid "Components to DEB repository must be listed in a array"
-msgstr ""
-"DEB 儲存庫的元件必須以陣列的形式列出"
+msgstr "DEB 儲存庫的元件必須以陣列的形式列出"
msgid "Components to DEB repository must be a string"
-msgstr ""
-"DEB 儲存庫的元件必須是字串"
+msgstr "DEB 儲存庫的元件必須是字串"
msgid "Mirror list to repository must be a string"
-msgstr ""
-"儲存庫的鏡映清單必須是字串"
+msgstr "儲存庫的鏡映清單必須是字串"
msgid "YUM Repository name must be string."
-msgstr ""
-"YUM 儲存庫名稱必須是字串。"
+msgstr "YUM 儲存庫名稱必須是字串。"
msgid "GPG check must be a boolean value."
-msgstr ""
-"GPG 檢查必須是布林值。"
+msgstr "GPG 檢查必須是布林值。"
msgid "GPG key must be a URL pointing to the ASCII-armored file."
-msgstr ""
-"GPG 金鑰必須是指向 ASCII 裝甲檔案的 URL。"
+msgstr "GPG 金鑰必須是指向 ASCII 裝甲檔案的 URL。"
#, python-format
msgid "Could not update repository %(repo_id)s."
-msgstr ""
-"無法更新儲存庫 %(repo_id)s。"
+msgstr "無法更新儲存庫 %(repo_id)s。"
#, python-format
msgid "Repository %(repo_id)s does not exist."
-msgstr ""
-"儲存庫 %(repo_id)s 不存在。"
+msgstr "儲存庫 %(repo_id)s 不存在。"
msgid ""
"Specify repository base URL, mirror list or metalink in order to create or "
"update a YUM repository."
-msgstr ""
-"指定儲存庫基本 URL、鏡映清單或 meta 鏈結以建立或"
-"更新 Yum 儲存庫。"
+msgstr "指定儲存庫基本 URL、鏡映清單或 meta 鏈結以建立或更新 Yum 儲存庫。"
msgid "Repository management tool was not recognized for your system."
-msgstr ""
-"未能辨識系統的儲存庫管理工具。"
+msgstr "未能辨識系統的儲存庫管理工具。"
#, python-format
msgid "Repository %(repo_id)s is already enabled."
-msgstr ""
-"已啟用儲存庫 %(repo_id)s。"
+msgstr "已啟用儲存庫 %(repo_id)s。"
#, python-format
msgid "Repository %(repo_id)s is already disabled."
-msgstr ""
-"已停用儲存庫 %(repo_id)s。"
+msgstr "已停用儲存庫 %(repo_id)s。"
#, python-format
msgid "Could not remove repository %(repo_id)s."
-msgstr ""
-"無法移除儲存庫 %(repo_id)s。"
+msgstr "無法移除儲存庫 %(repo_id)s。"
#, python-format
msgid "Could not write repository configuration file %(repo_file)s"
-msgstr ""
-"無法寫入儲存庫配置檔 %(repo_file)s"
+msgstr "無法寫入儲存庫配置檔 %(repo_file)s"
msgid "Specify repository distribution in order to create a DEB repository."
-msgstr ""
-"指定儲存庫發行套件以建立 DEB 儲存庫。"
+msgstr "指定儲存庫發行套件以建立 DEB 儲存庫。"
#, python-format
msgid "Could not enable repository %(repo_id)s."
-msgstr ""
-"無法啟用儲存庫 %(repo_id)s。"
+msgstr "無法啟用儲存庫 %(repo_id)s。"
#, python-format
msgid "Could not disable repository %(repo_id)s."
-msgstr ""
-"無法停用儲存庫 %(repo_id)s。"
+msgstr "無法停用儲存庫 %(repo_id)s。"
msgid "YUM Repository ID already exists"
-msgstr ""
-"YUM 儲存庫 ID 已存在"
+msgstr "YUM 儲存庫 ID 已存在"
msgid "YUM Repository name must be a string"
-msgstr ""
-"YUM 儲存庫名稱必須是字串"
+msgstr "YUM 儲存庫名稱必須是字串"
#, python-format
msgid "Unable to list repositories. Details: '%(err)s'"
-msgstr ""
-"無法列出儲存庫。詳細資料:'%(err)s'"
+msgstr "無法列出儲存庫。詳細資料:'%(err)s'"
#, python-format
msgid "Unable to retrieve repository information. Details: '%(err)s'"
-msgstr ""
-"無法擷取儲存庫資訊。詳細資料:'%(err)s'"
+msgstr "無法擷取儲存庫資訊。詳細資料:'%(err)s'"
#, python-format
msgid "Unable to add repository. Details: '%(err)s'"
-msgstr ""
-"無法新增儲存庫。詳細資料:'%(err)s'"
+msgstr "無法新增儲存庫。詳細資料:'%(err)s'"
#, python-format
msgid "Unable to remove repository. Details: '%(err)s'"
-msgstr ""
-"無法移除儲存庫。詳細資料:'%(err)s'"
+msgstr "無法移除儲存庫。詳細資料:'%(err)s'"
#, python-format
msgid ""
"Configuration items: '%(items)s' are not supported by repository manager"
-msgstr ""
-"儲存庫管理程式不支援配置項目:'%(items)s'"
+msgstr "儲存庫管理程式不支援配置項目:'%(items)s'"
msgid "Repository metalink must be an http://, ftp:// or file:// URL."
-msgstr ""
-"儲存庫 meta 鏈結必須是 http://、ftp:// 或 file:// URL。"
+msgstr "儲存庫 meta 鏈結必須是 http://、ftp:// 或 file:// URL。"
msgid "Cannot specify mirrorlist and metalink at the same time."
-msgstr ""
-"無法同時指定鏡映清單及 meta 鏈結。"
+msgstr "無法同時指定鏡映清單及 meta 鏈結。"
#, python-format
msgid ""
"Virtual machine '%(vm)s' must be stopped before creating a snapshot of it."
-msgstr ""
-"必須先停止虛擬機器 '%(vm)s',然後再建立該虛擬機器的 Snapshot。"
+msgstr "必須先停止虛擬機器 '%(vm)s',然後再建立該虛擬機器的 Snapshot。"
#, python-format
msgid ""
"Unable to create snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
-msgstr ""
-"無法在虛擬機器 '%(vm)s' 上建立 Snapshot '%(name)s'。詳細資料:"
-"%(err)s"
+msgstr "無法在虛擬機器 '%(vm)s' 上建立 Snapshot '%(name)s'。詳細資料:%(err)s"
#, python-format
msgid "Snapshot '%(name)s' does not exist on virtual machine '%(vm)s'."
-msgstr ""
-"Snapshot '%(name)s' 不在虛擬機器 '%(vm)s' 上。"
+msgstr "Snapshot '%(name)s' 不在虛擬機器 '%(vm)s' 上。"
#, python-format
msgid ""
"Unable to retrieve snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
-msgstr ""
-"無法擷取虛擬機器 '%(vm)s' 上的 Snapshot '%(name)s'。詳細資料:"
-"%(err)s"
+msgstr "無法擷取虛擬機器 '%(vm)s' 上的 Snapshot '%(name)s'。詳細資料:%(err)s"
#, python-format
msgid "Unable to list snapshots on virtual machine '%(vm)s'. Details: %(err)s"
-msgstr ""
-"無法列出虛擬機器 '%(vm)s' 上的 Snapshot。詳細資料:%(err)s"
+msgstr "無法列出虛擬機器 '%(vm)s' 上的 Snapshot。詳細資料:%(err)s"
#, python-format
msgid ""
"Unable to delete snapshot '%(name)s' on virtual machine '%(vm)s'. Details: "
"%(err)s"
-msgstr ""
-"無法刪除虛擬機器 '%(vm)s' 上的 Snapshot '%(name)s'。詳細資料:"
-"%(err)s"
+msgstr "無法刪除虛擬機器 '%(vm)s' 上的 Snapshot '%(name)s'。詳細資料:%(err)s"
#, python-format
msgid ""
"Unable to retrieve current snapshot of virtual machine '%(vm)s'. Details: "
"%(err)s"
-msgstr ""
-"無法擷取虛擬機器 '%(vm)s' 的現行 Snapshot。詳細資料:"
-"%(err)s"
+msgstr "無法擷取虛擬機器 '%(vm)s' 的現行 Snapshot。詳細資料:%(err)s"
#, python-format
msgid ""
"Unable to revert virtual machine '%(vm)s' to snapshot '%(name)s'. Details: "
"%(err)s"
-msgstr ""
-"無法將虛擬機器 '%(vm)s' 回復至 Snapshot '%(name)s'。詳細資料:"
-"%(err)s"
+msgstr "無法將虛擬機器 '%(vm)s' 回復至 Snapshot '%(name)s'。詳細資料:%(err)s"
#, python-format
msgid ""
"Unable to create snapshot of virtual machine '%(vm)s' because it contains a "
"disk with format '%(format)s'; only 'qcow2' is supported."
msgstr ""
-"無法建立虛擬機器 '%(vm)s' 的 Snapshot,因為該虛擬機器包含"
-"格式為 '%(format)s' 的磁碟;僅支援 'qcow2'。"
+"無法建立虛擬機器 '%(vm)s' 的 Snapshot,因為該虛擬機器包含格式為 '%(format)s' "
+"的磁碟;僅支援 'qcow2'。"
msgid "The number of vCPUs is too large for this system."
-msgstr ""
-"這個系統的 vCPU 數目太大。"
+msgstr "這個系統的 vCPU 數目太大。"
msgid "Invalid vCPU/topology combination."
-msgstr ""
-"vCPU/拓蹼組合無效。"
+msgstr "vCPU/拓蹼組合無效。"
msgid "This host (or current configuration) does not allow CPU topology."
-msgstr ""
-"此主機(或現行配置)不容許使用 CPU 拓蹼。"
+msgstr "此主機(或現行配置)不容許使用 CPU 拓蹼。"
msgid "ERROR CODE"
-msgstr ""
-"錯誤碼"
+msgstr "錯誤碼"
msgid "REASON"
-msgstr ""
-"原因"
+msgstr "原因"
msgid "STACK"
-msgstr ""
-"堆疊"
+msgstr "堆疊"
msgid "Go to Homepage"
-msgstr ""
-"跳至首頁"
+msgstr "跳至首頁"
msgid "Create a New Virtual Machine"
-msgstr ""
-"建立新的虛擬機器"
+msgstr "建立新的虛擬機器"
msgid "Virtual Machine Name"
-msgstr ""
-"虛擬機器名稱"
+msgstr "虛擬機器名稱"
msgid ""
"The name used to identify the virtual machine. If omitted, a name will be "
"chosen based on the template used."
-msgstr ""
-"用來識別虛擬機器的名稱。如果省略,則會"
-"根據所用的範本選擇名稱。"
+msgstr "用來識別虛擬機器的名稱。如果省略,則會根據所用的範本選擇名稱。"
msgid "Template"
-msgstr ""
-"範本"
+msgstr "範本"
msgid "Please create a template first."
-msgstr ""
-"請先建立範本。"
+msgstr "請先建立範本。"
msgid "Create a Template"
-msgstr ""
-"建立範本"
+msgstr "建立範本"
msgid "Please choose a template."
-msgstr ""
-"請選擇範本。"
+msgstr "請選擇範本。"
msgid "OS"
-msgstr ""
-"OS"
+msgstr "OS"
msgid "OS Version"
-msgstr ""
-"OS 版本"
+msgstr "OS 版本"
msgid "CPUS"
-msgstr ""
-"CPUS"
+msgstr "CPUS"
msgid "Memory"
-msgstr ""
-"記憶體"
+msgstr "記憶體"
msgid "Create"
-msgstr ""
-"建立"
+msgstr "建立"
msgid "Creating..."
-msgstr ""
-"正在建立..."
+msgstr "正在建立..."
msgid "Edit Guest"
-msgstr ""
-"編輯客體"
+msgstr "編輯客體"
msgid "General"
-msgstr ""
-"一般"
+msgstr "一般"
msgid "Storage"
-msgstr ""
-"儲存體"
+msgstr "儲存體"
msgid "Interface"
-msgstr ""
-"介面"
+msgstr "介面"
msgid "Permission"
-msgstr ""
-"許可權"
+msgstr "許可權"
msgid "Host PCI Device"
-msgstr ""
-"主機 PCI 裝置"
+msgstr "主機 PCI 裝置"
msgid "Snapshot"
-msgstr ""
-"Snapshot"
+msgstr "Snapshot"
msgid "Name"
-msgstr ""
-"名稱"
+msgstr "名稱"
msgid "CPUs"
-msgstr ""
-"CPU"
+msgstr "CPU"
msgid "Memory (MB)"
-msgstr ""
-"記憶體 (MB)"
+msgstr "記憶體 (MB)"
msgid "Icon"
-msgstr ""
-"圖示"
+msgstr "圖示"
msgid "Device"
-msgstr ""
-"裝置"
+msgstr "裝置"
msgid "Path"
-msgstr ""
-"路徑"
+msgstr "路徑"
msgid "Network"
-msgstr ""
-"網路"
+msgstr "網路"
msgid "Type"
-msgstr ""
-"類型"
+msgstr "類型"
msgid "MAC Address"
-msgstr ""
-"MAC 位址"
+msgstr "MAC 位址"
msgid "Available system users and groups"
-msgstr ""
-"可用的系統使用者及群組"
+msgstr "可用的系統使用者及群組"
msgid "Selected system users and groups"
-msgstr ""
-"選定的系統使用者及群組"
+msgstr "選定的系統使用者及群組"
msgid "User"
-msgstr ""
-"使用者"
+msgstr "使用者"
msgid "All"
-msgstr ""
-"全部"
+msgstr "全部"
msgid "To Add"
-msgstr ""
-"要新增"
+msgstr "要新增"
msgid "Added"
-msgstr ""
-"已新增"
+msgstr "已新增"
msgid "filter"
-msgstr ""
-"過濾器"
+msgstr "過濾器"
msgid "Product"
-msgstr ""
-"產品"
+msgstr "產品"
msgid "Vendor"
-msgstr ""
-"供應商"
+msgstr "供應商"
msgid "Created"
-msgstr ""
-"已建立"
+msgstr "已建立"
msgid "Save"
-msgstr ""
-"儲存"
+msgstr "儲存"
msgid "Replace"
-msgstr ""
-"取代"
+msgstr "取代"
msgid "Detach"
-msgstr ""
-"分離"
+msgstr "分離"
msgid "Cancel"
-msgstr ""
-"取消 "
+msgstr "取消 "
msgid "revert"
-msgstr ""
-"回復"
+msgstr "回復"
msgid "Add a Storage Device to VM"
-msgstr ""
-"將儲存裝置新增至 VM"
+msgstr "將儲存裝置新增至 VM"
msgid "Device Type"
-msgstr ""
-"裝置類型"
+msgstr "裝置類型"
msgid "The device type. Currently, \"cdrom\" and \"disk\" are supported."
-msgstr ""
-"裝置類型。目前支援 \"cdrom\" 和 \"disk\"。"
+msgstr "裝置類型。目前支援 \"cdrom\" 和 \"disk\"。"
msgid "Storage Pool"
-msgstr ""
-"儲存區"
+msgstr "儲存區"
msgid "Storage pool which volume located in"
-msgstr ""
-"磁區所在的儲存區"
+msgstr "磁區所在的儲存區"
msgid "Storage Volume"
-msgstr ""
-"儲存磁區"
+msgstr "儲存磁區"
msgid "Storage volume to be attached"
-msgstr ""
-"要連接的儲存磁區"
+msgstr "要連接的儲存磁區"
msgid "File Path"
-msgstr ""
-"檔案路徑"
+msgstr "檔案路徑"
msgid "The ISO file path in the server for CDROM."
-msgstr ""
-"CDROM 的 ISO 檔案路徑在伺服器中。"
+msgstr "CDROM 的 ISO 檔案路徑在伺服器中。"
msgid "Attach"
-msgstr ""
-"連接"
+msgstr "連接"
msgid "Start"
-msgstr ""
-"開始"
+msgstr "開始"
msgid "Reset"
-msgstr ""
-"重設"
+msgstr "重設"
msgid "Pause"
-msgstr ""
-"暫停"
+msgstr "暫停"
msgid "Resume"
-msgstr ""
-"回復"
+msgstr "回復"
msgid "Power Off"
-msgstr ""
-"關閉電源"
+msgstr "關閉電源"
msgid "Actions"
-msgstr ""
-"動作"
+msgstr "動作"
msgid "Connect"
-msgstr ""
-"連接"
+msgstr "連接"
msgid "Clone"
-msgstr ""
-"複製"
+msgstr "複製"
msgid "Edit"
-msgstr ""
-"編輯"
+msgstr "編輯"
msgid "Shut Down"
-msgstr ""
-"關閉"
+msgstr "關閉"
msgid "Delete"
-msgstr ""
-"刪除"
+msgstr "刪除"
msgid "The username or password you entered is incorrect. Please try again."
-msgstr ""
-"您輸入的使用者名稱或密碼不正確。請重試。"
+msgstr "您輸入的使用者名稱或密碼不正確。請重試。"
msgid "This field is required."
-msgstr ""
-"此欄位是必要的。"
+msgstr "此欄位是必要的。"
msgid "Log in"
-msgstr ""
-"登入"
+msgstr "登入"
msgid "Logging in..."
-msgstr ""
-"正在登入..."
+msgstr "正在登入..."
msgid "Host"
-msgstr ""
-"主機"
+msgstr "主機"
msgid "Guests"
-msgstr ""
-"客體"
+msgstr "客體"
msgid "Templates"
-msgstr ""
-"範本"
+msgstr "範本"
msgid "Failed to get application configuration"
-msgstr ""
-"無法取得應用程式配置"
+msgstr "無法取得應用程式配置"
msgid "This is not a valid Linux path"
-msgstr ""
-"這是無效的 Linux 路徑"
+msgstr "這是無效的 Linux 路徑"
msgid "This is not a valid URL."
-msgstr ""
-"這是無效的 URL。"
+msgstr "這是無效的 URL。"
msgid "No such data available."
-msgstr ""
-"沒有此類可用資料。"
+msgstr "沒有此類可用資料。"
msgid ""
"Can not contact the host system. Verify the host system is up and that you "
"have network connectivity to it. HTTP request response %1. "
msgstr ""
-"無法連接至主機系統。請驗證主機系統是否已啟動,以及"
-"您是否具有與它的連線。HTTP 要求回應為 %1。 "
+"無法連接至主機系統。請驗證主機系統是否已啟動,以及您是否具有與它的連線。HTTP "
+"要求回應為 %1。 "
msgid "Unable to read file."
-msgstr ""
-"無法讀取檔案。"
+msgstr "無法讀取檔案。"
msgid "Error while uploading file."
-msgstr ""
-"上傳檔案時發生錯誤。"
+msgstr "上傳檔案時發生錯誤。"
msgid "Delete Confirmation"
-msgstr ""
-"刪除確認"
+msgstr "刪除確認"
msgid "OK"
-msgstr ""
-"確定"
+msgstr "確定"
msgid "Confirm"
-msgstr ""
-"確認"
+msgstr "確認"
msgid "Warning"
-msgstr ""
-"警告"
+msgstr "警告"
msgid "Cloning..."
-msgstr ""
-"正在複製..."
+msgstr "正在複製..."
msgid "Loading..."
-msgstr ""
-"正在載入..."
+msgstr "正在載入..."
msgid "An error occurred while retrieving system information."
-msgstr ""
-"擷取系統資訊時發生錯誤。"
+msgstr "擷取系統資訊時發生錯誤。"
msgid "Retry"
-msgstr ""
-"重試"
+msgstr "重試"
msgid "Detailed message:"
-msgstr ""
-"詳細的訊息:"
+msgstr "詳細的訊息:"
msgid "No ISO found"
-msgstr ""
-"找不到 ISO"
+msgstr "找不到 ISO"
msgid "This is not a valid ISO file."
-msgstr ""
-"這是無效的 ISO 檔案。"
+msgstr "這是無效的 ISO 檔案。"
msgid "This may take a long time. Do you want to continue?"
-msgstr ""
-"這可能花費較長時間。您要繼續嗎?"
+msgstr "這可能花費較長時間。您要繼續嗎?"
msgid "This will permanently delete the template. Would you like to continue?"
-msgstr ""
-"這將永久刪除範本。您要繼續嗎?"
+msgstr "這將永久刪除範本。您要繼續嗎?"
msgid "Unable to shut down system as there are some virtual machines running!"
-msgstr ""
-"無法關閉系統,因為有幾個虛擬機器正在執行中!"
+msgstr "無法關閉系統,因為有幾個虛擬機器正在執行中!"
msgid "Max:"
-msgstr ""
-"上限:"
+msgstr "上限:"
msgid "Utilization"
-msgstr ""
-"使用率"
+msgstr "使用率"
msgid "Available"
-msgstr ""
-"可用"
+msgstr "可用"
msgid "Read Rate"
-msgstr ""
-"讀取速率"
+msgstr "讀取速率"
msgid "Write Rate"
-msgstr ""
-"寫入速率"
+msgstr "寫入速率"
msgid "Received"
-msgstr ""
-"已接收"
+msgstr "已接收"
msgid "Sent"
-msgstr ""
-"已傳送"
+msgstr "已傳送"
msgid ""
"Shutting down or restarting host will cause unsaved work lost. Continue to "
"shut down/restarting?"
-msgstr ""
-"關閉或重新啟動主機將導致未儲存的工作遺失。要繼續"
-"關閉/重新啟動嗎?"
+msgstr "關閉或重新啟動主機將導致未儲存的工作遺失。要繼續關閉/重新啟動嗎?"
msgid ""
"Repository will be removed permanently and can't be recovered. Do you want "
"to continue?"
-msgstr ""
-"將會永久地移除儲存庫並且無法回復。"
-"要繼續嗎?"
+msgstr "將會永久地移除儲存庫並且無法回復。要繼續嗎?"
msgid "Repositories"
-msgstr ""
-"儲存庫"
+msgstr "儲存庫"
msgid "ID"
-msgstr ""
-"ID"
+msgstr "ID"
msgid "Base URL"
-msgstr ""
-"基本 URL"
+msgstr "基本 URL"
msgid "Is Mirror"
-msgstr ""
-"是鏡映"
+msgstr "是鏡映"
msgid "URL Args"
-msgstr ""
-"URL 引數"
+msgstr "URL 引數"
msgid "Enabled"
-msgstr ""
-"已啟用"
+msgstr "已啟用"
msgid "GPG Check"
-msgstr ""
-"GPG 檢查"
+msgstr "GPG 檢查"
msgid "GPG Key"
-msgstr ""
-"GPG 金鑰"
+msgstr "GPG 金鑰"
msgid "Add"
-msgstr ""
-"新增"
+msgstr "新增"
msgid "Remove"
-msgstr ""
-"移除"
+msgstr "移除"
msgid "Enable"
-msgstr ""
-"啟用"
+msgstr "啟用"
msgid "Disable"
-msgstr ""
-"停用"
+msgstr "停用"
msgid "Software Updates"
-msgstr ""
-"軟體更新"
+msgstr "軟體更新"
msgid "Package Name"
-msgstr ""
-"套件名稱"
+msgstr "套件名稱"
msgid "Version"
-msgstr ""
-"版本"
+msgstr "版本"
msgid "Architecture"
-msgstr ""
-"架構"
+msgstr "架構"
msgid "Repository"
-msgstr ""
-"儲存庫"
+msgstr "儲存庫"
msgid "Update All"
-msgstr ""
-"全部更新"
+msgstr "全部更新"
msgid "Updating..."
-msgstr ""
-"正在更新..."
+msgstr "正在更新..."
msgid "Failed to retrieve packages update information."
-msgstr ""
-"無法擷取套件更新資訊。"
+msgstr "無法擷取套件更新資訊。"
msgid "Failed to update package(s)."
-msgstr ""
-"無法更新套件。"
+msgstr "無法更新套件。"
msgid ""
"Debug report will be removed permanently and can't be recovered. Do you want "
"to continue?"
-msgstr ""
-"將會永久地移除除錯報告並且無法回復。"
-"要繼續嗎?"
+msgstr "將會永久地移除除錯報告並且無法回復。要繼續嗎?"
msgid "Debug Reports"
-msgstr ""
-"除錯報告"
+msgstr "除錯報告"
msgid "Generated Time"
-msgstr ""
-"產生時間"
+msgstr "產生時間"
msgid "Generate"
-msgstr ""
-"產生"
+msgstr "產生"
msgid "Generating..."
-msgstr ""
-"正在產生..."
+msgstr "正在產生..."
msgid "Rename"
-msgstr ""
-"重新命名"
+msgstr "重新命名"
msgid "Download"
-msgstr ""
-"下載"
+msgstr "下載"
msgid ""
"Report name should contain only letters, digits, underscore ('_') and/or "
"hyphen ('-')."
-msgstr ""
-"報告名稱只應該包含字母、數字、底線 ('_') 及/或"
-"連字號 ('-')。"
+msgstr "報告名稱只應該包含字母、數字、底線 ('_') 及/或連字號 ('-')。"
msgid "Pending..."
-msgstr ""
-"擱置中..."
+msgstr "擱置中..."
msgid "Report name is the same as the original one."
-msgstr ""
-"報告名稱與原始名稱相同。"
+msgstr "報告名稱與原始名稱相同。"
msgid ""
"This will delete the virtual machine and its virtual disks. This operation "
"cannot be undone. Would you like to continue?"
-msgstr ""
-"此動作將會刪除虛擬機器及其虛擬磁碟。此作業"
-"無法復原。您要繼續嗎?"
+msgstr "此動作將會刪除虛擬機器及其虛擬磁碟。此作業無法復原。您要繼續嗎?"
msgid "Power off Confirmation"
-msgstr ""
-"確認關閉電源"
+msgstr "確認關閉電源"
msgid ""
"This action may produce undesirable results, for example unflushed disk "
"cache in the guest. Would you like to continue?"
-msgstr ""
-"這個動作可能會產生非預期結果,例如客體中未清除的磁碟"
-"快取。您要繼續嗎?"
+msgstr "這個動作可能會產生非預期結果,例如客體中未清除的磁碟快取。您要繼續嗎?"
msgid "Reset Confirmation"
-msgstr ""
-"確認重設"
+msgstr "確認重設"
msgid ""
"There is a risk of data loss caused by reset without the guest OS shutdown. "
"Would you like to continue?"
msgstr ""
-"如果在不關閉客體 OS 的情況下進行重設,則可能會導致資料流失。"
-"您要繼續嗎?"
+"如果在不關閉客體 OS 的情況下進行重設,則可能會導致資料流失。您要繼續嗎?"
msgid "Shut Down Confirmation"
-msgstr ""
-"確認關閉"
+msgstr "確認關閉"
msgid "Note the guest OS may ignore this request. Would you like to continue?"
-msgstr ""
-"請注意,客體 OS 可能會忽略此要求。您要繼續嗎?"
+msgstr "請注意,客體 OS 可能會忽略此要求。您要繼續嗎?"
msgid "Virtual Machine delete Confirmation"
-msgstr ""
-"虛擬機器刪除確認"
+msgstr "虛擬機器刪除確認"
msgid ""
"This virtual machine is not persistent. Power Off will delete it. Continue?"
-msgstr ""
-"此虛擬機器不是持續性的。「關閉電源」會將其刪除。您要繼續嗎?"
+msgstr "此虛擬機器不是持續性的。「關閉電源」會將其刪除。您要繼續嗎?"
msgid ""
"When the target guest has SCSI or iSCSI volumes, they will be cloned on "
"default storage pool. The same will happen when the target pool does not "
"have enough space to clone the volumes. Do you want to continue?"
msgstr ""
-"當目標客體具有 SCSI 或 iSCSI 磁區時,將在預設儲存區上"
-"複製這些磁區。當目標儲存區沒有足夠的空間來複製磁區時,"
-"也會發生相同的情況。您要繼續嗎?"
+"當目標客體具有 SCSI 或 iSCSI 磁區時,將在預設儲存區上複製這些磁區。當目標儲存"
+"區沒有足夠的空間來複製磁區時,也會發生相同的情況。您要繼續嗎?"
msgid ""
"This CDROM will be detached permanently and you can re-attach it. Continue "
"to detach it?"
msgstr ""
-"將會永久地分離此 CDROM,但是您可以將其重新連接。要繼續"
-"分離此 CDROM 嗎?"
+"將會永久地分離此 CDROM,但是您可以將其重新連接。要繼續分離此 CDROM 嗎?"
msgid "Attaching..."
-msgstr ""
-"正在連接..."
+msgstr "正在連接..."
msgid "Replacing..."
-msgstr ""
-"正在取代..."
+msgstr "正在取代..."
msgid "Successfully attached!"
-msgstr ""
-"已順利連接!"
+msgstr "已順利連接!"
msgid "Successfully replaced!"
-msgstr ""
-"已順利取代!"
+msgstr "已順利取代!"
msgid "Successfully detached!"
-msgstr ""
-"已順利分離!"
+msgstr "已順利分離!"
msgid ""
"This disk will be detached permanently and you can re-attach it. Continue to "
"detach it?"
-msgstr ""
-"將會永久地分離此磁碟,但是您可以將其重新連接。要繼續"
-"分離操作嗎?"
+msgstr "將會永久地分離此磁碟,但是您可以將其重新連接。要繼續分離操作嗎?"
msgid "interface:"
-msgstr ""
-"介面:"
+msgstr "介面:"
msgid "address:"
-msgstr ""
-"位址:"
+msgstr "位址:"
msgid "link_type:"
-msgstr ""
-"鏈結類型:"
+msgstr "鏈結類型:"
msgid "block:"
-msgstr ""
-"區塊:"
+msgstr "區塊:"
msgid "drive_type:"
-msgstr ""
-"磁碟機類型:"
+msgstr "磁碟機類型:"
msgid "model:"
-msgstr ""
-"模型:"
+msgstr "模型:"
msgid "Affected devices:"
-msgstr ""
-"受影響的裝置:"
+msgstr "受影響的裝置:"
msgid "The VLAN id must be between 1 and 4094."
-msgstr ""
-"VLAN ID 必須介於 1 和 4094 之間。"
+msgstr "VLAN ID 必須介於 1 和 4094 之間。"
msgid "unavailable"
-msgstr ""
-"無法使用"
+msgstr "無法使用"
msgid ""
"This action will interrupt network connectivity for any virtual machine that "
"depend on this network."
-msgstr ""
-"此動作將會岔斷依賴於此網路之所有虛擬機器的"
-"網路連線功能。"
+msgstr "此動作將會岔斷依賴於此網路之所有虛擬機器的網路連線功能。"
msgid "Create a network"
-msgstr ""
-"建立網路"
+msgstr "建立網路"
msgid ""
"This network is not persistent. Instead of stop, this action will "
"permanently delete it. Would you like to continue?"
-msgstr ""
-"此網路不是持續性的。此動作不會將其停止,而會"
-"永久將其刪除。您要繼續嗎?"
+msgstr "此網路不是持續性的。此動作不會將其停止,而會永久將其刪除。您要繼續嗎?"
msgid ""
"The bridged VLAN tag may not work well with NetworkManager enabled. You "
"should consider disabling it."
msgstr ""
-"啟用 NetworkManager 時,橋接 VLAN 標籤可能不正常工作。您"
-"應該考量將其停用。"
+"啟用 NetworkManager 時,橋接 VLAN 標籤可能不正常工作。您應該考量將其停用。"
msgid ""
"This will permanently delete the storage pool. Would you like to continue?"
-msgstr ""
-"這將永久刪除儲存區。您要繼續嗎?"
+msgstr "這將永久刪除儲存區。您要繼續嗎?"
msgid "This storage pool is empty."
-msgstr ""
-"此儲存區是空的。"
+msgstr "此儲存區是空的。"
msgid ""
"It will format your disk and you will loose any data in there, are you sure "
"to continue? "
-msgstr ""
-"此動作會格式化您的磁碟,而您將會遺失磁碟中的所有資料。確定"
-"要繼續嗎?"
+msgstr "此動作會格式化您的磁碟,而您將會遺失磁碟中的所有資料。確定要繼續嗎?"
msgid "SCSI Fibre Channel"
-msgstr ""
-"SCSI 光纖通道"
+msgstr "SCSI 光纖通道"
msgid "No SCSI adapters found."
-msgstr ""
-"找不到 SCSI 配接卡。"
+msgstr "找不到 SCSI 配接卡。"
msgid "Loading iSCSI targets..."
-msgstr ""
-"正在載入 iSCSI 目標..."
+msgstr "正在載入 iSCSI 目標..."
msgid "No iSCSI found. Please input one."
-msgstr ""
-"找不到 iSCSI。請輸入一個。"
+msgstr "找不到 iSCSI。請輸入一個。"
msgid "Failed to load iSCSI targets."
-msgstr ""
-"無法載入 iSCSI 目標。"
+msgstr "無法載入 iSCSI 目標。"
msgid "The storage pool name can not be blank."
-msgstr ""
-"儲存區名稱不能空白。"
+msgstr "儲存區名稱不能空白。"
msgid "The storage pool path can not be blank."
-msgstr ""
-"儲存區路徑不能空白。"
+msgstr "儲存區路徑不能空白。"
msgid "NFS server mount path can not be blank."
-msgstr ""
-"NFS 伺服器裝載路徑不能空白。"
+msgstr "NFS 伺服器裝載路徑不能空白。"
msgid "Invalid NFS mount path."
-msgstr ""
-"NFS 裝載路徑無效。"
+msgstr "NFS 裝載路徑無效。"
msgid "No logical device selected."
-msgstr ""
-"未選取邏輯裝置。"
+msgstr "未選取邏輯裝置。"
msgid "The iSCSI target can not be blank."
-msgstr ""
-"iSCSI 目標不能空白。"
+msgstr "iSCSI 目標不能空白。"
msgid "Server name can not be blank."
-msgstr ""
-"伺服器名稱不能空白。"
+msgstr "伺服器名稱不能空白。"
msgid "This is not a valid Server Name or IP. Please, modify it."
-msgstr ""
-"這不是有效的「伺服器名稱」或 IP。請進行修改。"
+msgstr "這不是有效的「伺服器名稱」或 IP。請進行修改。"
msgid "Looking for available partitions ..."
-msgstr ""
-"正在尋找可用的分割區 ..."
+msgstr "正在尋找可用的分割區 ..."
msgid "No available partitions found."
-msgstr ""
-"找不到可用的分割區。"
+msgstr "找不到可用的分割區。"
msgid ""
"This storage pool is not persistent. Instead of deactivate, this action will "
"permanently delete it. Would you like to continue?"
msgstr ""
-"此儲存區不是持續性的。此動作不是會將其取消啟動,而是會"
-"永久將其刪除。您要繼續嗎?"
+"此儲存區不是持續性的。此動作不是會將其取消啟動,而是會永久將其刪除。您要繼續"
+"嗎?"
msgid "Unable to retrieve partitions information."
-msgstr ""
-"無法擷取分割區資訊。"
+msgstr "無法擷取分割區資訊。"
msgid "In progress..."
-msgstr ""
-"進行中..."
+msgstr "進行中..."
msgid "Failed!"
-msgstr ""
-"失敗!"
+msgstr "失敗!"
msgid "CDROM path needs to be a valid local/remote path and cannot be blank."
-msgstr ""
-"CDROM 路徑需要是有效的本端/遠端路徑,並且不能空白。"
+msgstr "CDROM 路徑需要是有效的本端/遠端路徑,並且不能空白。"
msgid "Disk pool or volume cannot be blank."
-msgstr ""
-"磁碟儲存區或磁區不能空白。"
+msgstr "磁碟儲存區或磁區不能空白。"
msgid "Peers"
-msgstr ""
-"同層級"
+msgstr "同層級"
msgid "Searching"
-msgstr ""
-"正在搜尋"
+msgstr "正在搜尋"
msgid "No peers found."
-msgstr ""
-"找不到同層級。"
+msgstr "找不到同層級。"
msgid "Help"
-msgstr ""
-"說明"
+msgstr "說明"
msgid "About"
-msgstr ""
-"相關"
+msgstr "相關"
msgid "Log out"
-msgstr ""
-"登出"
+msgstr "登出"
msgid "Version:"
-msgstr ""
-"版本:"
+msgstr "版本:"
msgid "Session timeout, please re-login."
-msgstr ""
-"階段作業逾時,請重新登入。"
+msgstr "階段作業逾時,請重新登入。"
msgid "User Name"
-msgstr ""
-"使用者名稱"
+msgstr "使用者名稱"
msgid "Password"
-msgstr ""
-"密碼"
+msgstr "密碼"
msgid "Generate a New Debug Report"
-msgstr ""
-"產生新的除錯報告"
+msgstr "產生新的除錯報告"
msgid "Report Name"
-msgstr ""
-"報告名稱"
+msgstr "報告名稱"
msgid ""
"The name used to identify the report. If omitted, a name will be chosen "
"based on current time. Name can contain: letters, digits, underscore (\"_\") "
"and hyphen (\"-\")."
msgstr ""
-"用來識別報告的名稱。如果省略,則會"
-"基於現行時間來選擇名稱。名稱可以包含:字母、數字、底線 (\"_\")"
-"及連字號 (\"-\")。"
+"用來識別報告的名稱。如果省略,則會基於現行時間來選擇名稱。名稱可以包含:字"
+"母、數字、底線 (\"_\")及連字號 (\"-\")。"
msgid "Rename a Debug Report"
-msgstr ""
-"重新命名除錯報告"
+msgstr "重新命名除錯報告"
msgid ""
"The name used to identify the report. Name can contain: letters, digits and "
"hyphen (\"-\")."
-msgstr ""
-"用於識別報告的名稱。名稱可以包含:字母、數字及"
-"連字號 (\"-\")。"
+msgstr "用於識別報告的名稱。名稱可以包含:字母、數字及連字號 (\"-\")。"
msgid "Submit"
-msgstr ""
-"提交"
+msgstr "提交"
msgid "Add a Repository"
-msgstr ""
-"新增儲存庫"
+msgstr "新增儲存庫"
msgid "Identifier"
-msgstr ""
-"ID"
+msgstr "ID"
msgid "Single word, unique identifier for the repository."
-msgstr ""
-"單字,儲存庫的唯一 ID。"
+msgstr "單字,儲存庫的唯一 ID。"
msgid "Textual name for the repository."
-msgstr ""
-"儲存庫的文字名稱。"
+msgstr "儲存庫的文字名稱。"
msgid "URL"
-msgstr ""
-"URL"
+msgstr "URL"
msgid "Required Field"
-msgstr ""
-"必要欄位"
+msgstr "必要欄位"
msgid "URL to the repository. Supported protocols are http, ftp, and file."
-msgstr ""
-"儲存庫的 URL。受支援的通訊協定包括 http、ftp 和 file。"
+msgstr "儲存庫的 URL。受支援的通訊協定包括 http、ftp 和 file。"
msgid "Repository is a mirror"
-msgstr ""
-"儲存庫是鏡映"
+msgstr "儲存庫是鏡映"
msgid "Distribution"
-msgstr ""
-"發行套件"
+msgstr "發行套件"
msgid "Distribution of the DEB repository."
-msgstr ""
-"DEB 儲存庫的發行套件。"
+msgstr "DEB 儲存庫的發行套件。"
msgid "Components"
-msgstr ""
-"元件"
+msgstr "元件"
msgid "List of components in DEB repository."
-msgstr ""
-"DEB 儲存庫中的元件清單。"
+msgstr "DEB 儲存庫中的元件清單。"
msgid "Edit Repository"
-msgstr ""
-"編輯儲存庫"
+msgstr "編輯儲存庫"
msgid "Mirror List URL"
-msgstr ""
-"鏡映清單 URL"
+msgstr "鏡映清單 URL"
msgid "Yes"
-msgstr ""
-"是"
+msgstr "是"
msgid "No"
-msgstr ""
-"否"
+msgstr "否"
msgid "Add a Volume to Storage Pool"
-msgstr ""
-"將磁區新增至儲存區"
+msgstr "將磁區新增至儲存區"
msgid "Fetch from remote URL"
-msgstr ""
-"從遠端 URL 提取"
+msgstr "從遠端 URL 提取"
msgid "Enter the remote URL here."
-msgstr ""
-"在這裡輸入遠端 URL。"
+msgstr "在這裡輸入遠端 URL。"
msgid "Upload a file"
-msgstr ""
-"上傳檔案"
+msgstr "上傳檔案"
msgid "Choose the file you want to upload."
-msgstr ""
-"選擇要上傳的檔案。"
+msgstr "選擇要上傳的檔案。"
msgid "Define a New Storage Pool"
-msgstr ""
-"定義新的儲存區"
+msgstr "定義新的儲存區"
msgid "Storage Pool Name"
-msgstr ""
-"儲存區名稱"
+msgstr "儲存區名稱"
msgid ""
"The name used to identify the storage pools, and it should not be empty."
-msgstr ""
-"用來識別儲存區的名稱,不應該是空的。"
+msgstr "用來識別儲存區的名稱,不應該是空的。"
msgid "Storage Pool Type"
-msgstr ""
-"儲存區類型"
+msgstr "儲存區類型"
msgid "Storage Path"
-msgstr ""
-"儲存體路徑"
+msgstr "儲存體路徑"
msgid ""
"The path of the Storage Pool. Each Storage Pool must have a unique path."
-msgstr ""
-"儲存區的路徑。每一個儲存區都必須有一個唯一的路徑。"
+msgstr "儲存區的路徑。每一個儲存區都必須有一個唯一的路徑。"
msgid ""
"Kimchi will try to create the directory when it does not already exist in "
"your system."
-msgstr ""
-"Kimchi 將嘗試建立該目錄(當該目錄尚不存在"
-"於系統中時)。"
+msgstr "Kimchi 將嘗試建立該目錄(當該目錄尚不存在於系統中時)。"
msgid "NFS Server IP"
-msgstr ""
-"NFS 伺服器 IP"
+msgstr "NFS 伺服器 IP"
msgid "NFS server IP or hostname. It can be input or chosen from history."
-msgstr ""
-"NFS 伺服器 IP 或主機名稱。可以直接輸入,也可以從歷程中選擇。"
+msgstr "NFS 伺服器 IP 或主機名稱。可以直接輸入,也可以從歷程中選擇。"
msgid "NFS Path"
-msgstr ""
-"NFS 路徑"
+msgstr "NFS 路徑"
msgid "The NFS exported path on NFS server."
-msgstr ""
-"NFS 伺服器上 NFS 匯出的路徑。"
+msgstr "NFS 伺服器上 NFS 匯出的路徑。"
msgid "Device path"
-msgstr ""
-"裝置路徑"
+msgstr "裝置路徑"
msgid "iSCSI Server"
-msgstr ""
-"iSCSI 伺服器"
+msgstr "iSCSI 伺服器"
msgid "iSCSI server IP or hostname. It should not be empty."
-msgstr ""
-"iSCSI 伺服器 IP 或主機名稱。它不應該是空的。"
+msgstr "iSCSI 伺服器 IP 或主機名稱。它不應該是空的。"
msgid "Server"
-msgstr ""
-"伺服器"
+msgstr "伺服器"
msgid "Port"
-msgstr ""
-"埠"
+msgstr "埠"
msgid "Target"
-msgstr ""
-"目標"
+msgstr "目標"
msgid "The iSCSI target on iSCSI server"
-msgstr ""
-"iSCSI 伺服器上的 iSCSI 目標"
+msgstr "iSCSI 伺服器上的 iSCSI 目標"
msgid "Add iSCSI Authentication"
-msgstr ""
-"新增 iSCSI 鑑別"
+msgstr "新增 iSCSI 鑑別"
msgid "iSCSI Authentication"
-msgstr ""
-"iSCSI 鑑別"
+msgstr "iSCSI 鑑別"
msgid "SCSI Adapter"
-msgstr ""
-"SCSI 配接卡"
+msgstr "SCSI 配接卡"
msgid "Please, wait..."
-msgstr ""
-"請稍候..."
+msgstr "請稍候..."
msgid "Add Template"
-msgstr ""
-"新增範本"
+msgstr "新增範本"
msgid "Where is the source media for this template? "
-msgstr ""
-"此範本的來源媒體位於何處?"
+msgstr "此範本的來源媒體位於何處?"
msgid "Local ISO Image"
-msgstr ""
-"本端 ISO 映像檔"
+msgstr "本端 ISO 映像檔"
msgid "Local Image File"
-msgstr ""
-"本端映像檔"
+msgstr "本端映像檔"
msgid "Remote ISO Image"
-msgstr ""
-"遠端 ISO 映像檔"
+msgstr "遠端 ISO 映像檔"
msgid "Search ISOs"
-msgstr ""
-"搜尋 ISO"
+msgstr "搜尋 ISO"
msgid "The following ISOs are available:"
-msgstr ""
-"下列 ISO 可用:"
+msgstr "下列 ISO 可用:"
msgid "OS: "
-msgstr ""
-"OS:"
+msgstr "OS:"
msgid "Version: "
-msgstr ""
-"版本:"
+msgstr "版本:"
msgid "Size: "
-msgstr ""
-"大小:"
+msgstr "大小:"
msgid "Search more ISOs"
-msgstr ""
-"搜尋更多 ISO"
+msgstr "搜尋更多 ISO"
msgid "Create Templates from Selected ISO"
-msgstr ""
-"從所選 ISO 建立範本"
+msgstr "從所選 ISO 建立範本"
msgid "I want to use a specific ISO file"
-msgstr ""
-"我想使用特定的 ISO 檔案"
+msgstr "我想使用特定的 ISO 檔案"
msgid "Loading default remote ISOs ..."
-msgstr ""
-"正在載入預設遠端 ISO ..."
+msgstr "正在載入預設遠端 ISO ..."
msgid "Arch: "
-msgstr ""
-"架構:"
+msgstr "架構:"
msgid "I want to use a custom URL"
-msgstr ""
-"我想使用自訂 URL"
+msgstr "我想使用自訂 URL"
msgid "Edit Template"
-msgstr ""
-"編輯範本"
+msgstr "編輯範本"
msgid "Processor"
-msgstr ""
-"處理器"
+msgstr "處理器"
msgid "CDROM"
-msgstr ""
-"CDROM"
+msgstr "CDROM"
msgid "Image File"
-msgstr ""
-"映像檔"
+msgstr "映像檔"
msgid "Graphics"
-msgstr ""
-"圖形卡"
+msgstr "圖形卡"
msgid "Disk(GB)"
-msgstr ""
-"磁碟 (GB)"
+msgstr "磁碟 (GB)"
msgid "Disk Format"
-msgstr ""
-"磁碟格式"
+msgstr "磁碟格式"
msgid "CPU Number"
-msgstr ""
-"CPU 數目"
+msgstr "CPU 數目"
msgid "Manually set CPU topology"
-msgstr ""
-"手動設定 CPU 拓蹼"
+msgstr "手動設定 CPU 拓蹼"
msgid "Cores"
-msgstr ""
-"核心"
+msgstr "核心"
msgid "Threads"
-msgstr ""
-"執行緒"
+msgstr "執行緒"
msgid "CPU"
-msgstr ""
-"CPU"
+msgstr "CPU"
msgid "Disk I/O"
-msgstr ""
-"磁碟 I/O"
+msgstr "磁碟 I/O"
msgid "Network I/O"
-msgstr ""
-"網路 I/O"
+msgstr "網路 I/O"
msgid "Livetile"
-msgstr ""
-"Livetile"
+msgstr "Livetile"
msgid "No guests found."
-msgstr ""
-"找不到客體。"
+msgstr "找不到客體。"
msgid "Shut down"
-msgstr ""
-"關閉"
+msgstr "關閉"
msgid "Restart"
-msgstr ""
-"重新啟動"
+msgstr "重新啟動"
msgid "Basic Information"
-msgstr ""
-"基本資訊"
+msgstr "基本資訊"
msgid "OS Distro"
-msgstr ""
-"OS Distro"
+msgstr "OS Distro"
msgid "OS Code Name"
-msgstr ""
-"OS 程式碼名稱"
+msgstr "OS 程式碼名稱"
msgid "CPU(s)"
-msgstr ""
-"CPU"
+msgstr "CPU"
msgid "System Statistics"
-msgstr ""
-"系統統計資料"
+msgstr "系統統計資料"
msgid "Update Progress"
-msgstr ""
-"更新進度"
+msgstr "更新進度"
msgid "Network Name"
-msgstr ""
-"網路名稱"
+msgstr "網路名稱"
msgid "State"
-msgstr ""
-"狀態"
+msgstr "狀態"
msgid "Network Type"
-msgstr ""
-"網路類型"
+msgstr "網路類型"
msgid "Address Space"
-msgstr ""
-"位址空間"
+msgstr "位址空間"
msgid "Name should not contain '/' and '\"'."
-msgstr ""
-"名稱不應包含 '/' 及 '\"'。"
+msgstr "名稱不應包含 '/' 及 '\"'。"
msgid "Isolated: no external network connection"
-msgstr ""
-"已隔離:沒有外部網路連線"
+msgstr "已隔離:沒有外部網路連線"
msgid "NAT: outbound physical network connection only"
-msgstr ""
-"NAT:僅限出埠實體網路連線"
+msgstr "NAT:僅限出埠實體網路連線"
msgid "Bridged: Virtual machines are connected to physical network directly"
-msgstr ""
-"已橋接:虛擬機器直接已連接至實體網路"
+msgstr "已橋接:虛擬機器直接已連接至實體網路"
msgid "(No interfaces found)"
-msgstr ""
-"(找不到介面)"
+msgstr "(找不到介面)"
msgid "Destination"
-msgstr ""
-"目的地"
+msgstr "目的地"
msgid "Enable VLAN"
-msgstr ""
-"啟用 VLAN"
+msgstr "啟用 VLAN"
msgid "VLAN ID"
-msgstr ""
-"VLAN ID"
+msgstr "VLAN ID"
msgid "Stop"
-msgstr ""
-"停止"
+msgstr "停止"
msgid "%Used"
-msgstr ""
-"已使用的百分比"
+msgstr "已使用的百分比"
msgid "Location"
-msgstr ""
-"位置"
+msgstr "位置"
msgid "Capacity"
-msgstr ""
-"容量"
+msgstr "容量"
msgid "Allocated"
-msgstr ""
-"已配置"
+msgstr "已配置"
msgid "active"
-msgstr ""
-"作用中"
+msgstr "作用中"
msgid "inactive"
-msgstr ""
-"非作用中"
+msgstr "非作用中"
msgid "Deactivate"
-msgstr ""
-"取消啟動"
+msgstr "取消啟動"
msgid "Activate"
-msgstr ""
-"啟動"
+msgstr "啟動"
msgid "Add Volume"
-msgstr ""
-"新增磁區"
+msgstr "新增磁區"
msgid "Extend"
-msgstr ""
-"延伸"
+msgstr "延伸"
msgid "Undefine"
-msgstr ""
-"取消定義"
+msgstr "取消定義"
msgid "Format"
-msgstr ""
-"格式"
+msgstr "格式"
msgid "Allocation"
-msgstr ""
-"配置"
+msgstr "配置"
msgid "No templates found."
-msgstr ""
-"找不到範本。"
-
-# ENGL1SH_VERS10N 28617_40 DO NOT REMOVE OR CHANGE THIS LINE
-# T9N_SRC_ID 92
-# T9N_SH1P_STR1NG KV310AAP001 1
+msgstr "找不到範本。"
--
2.1.0
9 years, 4 months
[RFC] The new ginger-basic plugin
by Aline Manera
Hi all,
As we have agreed on moving the Kimchi Host tab to Ginger community and
creating a new plugin (ginger-basic), I want to list step-by-step what
we need to do *on Kimchi side*.
1) Will we call this new plugin as ginger-basic? Any other suggestion?
2) Create the new plugin structure into wok branch, ie, create a
directory named ginger-basic (?) and all it is needed to launch it as a
wok plugin, including building and packaging details.
In this first moment, the entire Host tab will be part of the
ginger-basic - just to move the discussion as soon as possible to Ginger
community.
3) Add ginger-basic plugin as a Kimchi dependency.
Once we have those items done, I will create a new repository for
ginger-basic under kimchi-project organization in Github.
After that, the discussion *will be moved to Ginger community*, ie, all
patches and discussion must be sent to the Ginger mailing list
(https://lists.nongnu.org/mailman/listinfo/ginger-dev-list)
I have sent to Ginger community the next steps to be done there. Please,
check: "[Ginger-dev-list] [RFC] Inheriting Kimchi's Host tab"
Let me know what you think about that.
Regards,
Aline Manera
9 years, 4 months
Re: [Kimchi-devel] New-UI Helvetica Font
by Jan Schneider
Hello team,
I had some discussions on the fonts and am interested in the current
status.
*Some background for non-UI persons:*
First we need to distinguish between the server and the client.
The server contains the Kimchi/Ginger-webserver and the
Kimchi/Ginger-installation with functional and UI code.
The client contains a browser instance connected to the
Kimchi/Ginger-webserver and displays the UI.
Per default the browser uses fonts which are installed on the client.
Five generic fonts are available on each client operating system and are
used as a default.
In CSS/HTML you specify a list of fonts starting with the most preferred
one and ending with a generic one (default).
You can also provide fonts via the server. This ensures that your
preferred font is available at the client. Such fonts are part of the
Kimchi/Ginger-installation on the server (no additional rpm).
*My opinion on the font discussion:*
1) Icon Font Awesome
This font is very useful as it provides a lot of scalable icons. We
should use/package this font
2) Fonts like "Open Sans" and/or TeXGyreHeros as open source replacement
for "Helvetica Neue"
The sizes of graphical elements vary much more depending on the
language than on the font. Our layout must be flexible enough to support
this.
My recommendation is to use fonts which are already installed on the
client.
Kind regards
Jan
From: Samuel Henrique De Oliveira Guimaraes
<samuel.guimaraes(a)eldorado.org.br>
To: Kevin Zander <klzander(a)linux.vnet.ibm.com>, Aline Manera
<alinefm(a)linux.vnet.ibm.com>, "kimchi-devel(a)ovirt.org"
<kimchi-devel(a)ovirt.org>, "donspang(a)us.ibm.com" <donspang(a)us.ibm.com>
Date: 08/11/2015 07:13 PM
Subject: Re: [Kimchi-devel] New-UI Helvetica Font
Sent by: kimchi-devel-bounces(a)ovirt.org
------------------------------------------------------------------------
I thought that since we are packaging Font-Awesome, Elusive and other
font files as icons it was ok to distribute Open Sans with Kimchi. I
proposed moving to an open source and redistributable font family
instead of a font stack because a text with Arial Unicode on Windows
doesn’t fill the same space in pixels as a text with Helvetica Neue on
OS X and iOS. Open Sans was an alternative because it has the same
variations as Helvetica Neue and almost the same size (I mean letter
spacing / tracking, kerning, body width, leading and height), we
wouldn’t have “condensed” styles in one system and plain and regular
bold and normal text in other systems.
Samuel
*From:* Kevin Zander [mailto:klzander@linux.vnet.ibm.com] *
Sent:* terça-feira, 11 de agosto de 2015 13:31*
To:* Aline Manera <alinefm(a)linux.vnet.ibm.com>; Samuel Henrique De
Oliveira Guimaraes <samuel.guimaraes(a)eldorado.org.br>;
kimchi-devel(a)ovirt.org; donspang(a)us.ibm.com*
Subject:* Re: [Kimchi-devel] New-UI Helvetica Font
On Tue, 2015-08-11 at 12:01 -0300, Aline Manera wrote:
On 10/08/2015 09:58, Samuel Henrique De Oliveira Guimaraes wrote:
Hi team,
I’m sending some screenshots to compare different fonts so we can decide
if we are going to replace Helvetica Neue for Open Sans and/or
TeXGyreHeros.
I also found out that Open Sans doesn’t have all the character glyphs
for simplified and traditional Chinese, Japanese and Korean languages
(wok_current.png file, you can see that these texts have jagged edges).
The equivalent font for these languages is called Noto Sans CJK which is
licensed under SIL Open Font License (OFL). The downside is that Noto
Sans is very heavy (~88MB each language set) so we would have to figure
a way to load these font files only when the user has changed the locale
in the front-end.
OH! Wait... The idea is to use an open source and wide used font, which
means, Kimchi will not package any font file.
Isn’t there an open source and wide used font which works with all
languages?
_http://www.cssfontstack.com/_
Which of these has the best unicode support though, I cannot answer.
_https://en.wikipedia.org/wiki/Unicode_font#List_of_Unicode_fonts_
Thanks,
Samuel Guimaraes
*From:* Aline Manera [_mailto:alinefm@linux.vnet.ibm.com_] *
Sent:* quarta-feira, 5 de agosto de 2015 15:24*
To:* Samuel Henrique De Oliveira Guimaraes
_<samuel.guimaraes(a)eldorado.org.br>_
<mailto:samuel.guimaraes@eldorado.org.br>; _kimchi-devel(a)ovirt.org_
<mailto:kimchi-devel@ovirt.org>; _donspang(a)us.ibm.com_
<mailto:donspang@us.ibm.com>*
Subject:* Re: [Kimchi-devel] New-UI Helvetica Font
On 16/07/2015 13:09, Samuel Henrique De Oliveira Guimaraes wrote:
Hi team,
I noticed that the new-ui design pattern for typography specifies
Helvetica Neue family in four different styles. This font family is
shipped with the latest versions of Mac OS X and iOS but it is not
available for free on Windows and Linux distributions.
I believe this might conflict with Kimchi license. Even if we buy or
rent a webfont license we can’t distribute the TTF, EOT, WOFF and SVG
files in our repositories. I think that we can’t even use a webfont
license in this case (pointing to a remote location or service like
Adobe Typekit or MyFonts) because most font-licensing services are
charging based on pre-paid pageviews.
Usually for web apps, mobile web apps and cloud based services we have
to buy a server license to store the webfont files within our servers,
but since Kimchi is an open-source project that anyone can check out and
run, every kimchi instance would have to buy their own font license.
We can set Helvetica as the default font-family in the CSS and if the
user doesn’t have this font installed the browser will load the next
available font (Arial or any other Sans-Serif) but since each font has
different sizes, some elements may not fit in the screen exactly like
they were seen in the mockups.
Hrm... we should build the new UI with responsive web design in mind
which means changing the font, font size, resizing the browser or
whatever will not impact in the final layout.
Also, the UI specs recommends Helvetica Neue in 5 different styles
(Light, Roman, Regular, Medium and Bold), most system fonts only have 3.
We don’t have something like “Arial Light” for instance.
My suggestion is that we replace Helvetica Neue for Open Sans because it
covers all the style specifications and it is licensed under Apache 2.0.
Any thoughts?
Could you provide a screenshot with the Open Sans font so we can see how
it will look like?
In first hand, I am OK to change to Open Sans.
I am copying Don who originally designed the new UI with the Helvetica
Neue font to check if he has any advice to do.
Thanks,
Samuel Guimarães
_______________________________________________
Kimchi-devel mailing list
_Kimchi-devel(a)ovirt.org_ <mailto:Kimchi-devel@ovirt.org>
_http://lists.ovirt.org/mailman/listinfo/kimchi-devel_
_______________________________________________
Kimchi-devel mailing list
_Kimchi-devel(a)ovirt.org_ <mailto:Kimchi-devel@ovirt.org>
_http://lists.ovirt.org/mailman/listinfo/kimchi-devel____________________...
Kimchi-devel mailing list
Kimchi-devel(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/kimchi-devel
9 years, 4 months
Re: [Kimchi-devel] New-UI Helvetica Font
by Jan Schneider
Hello team,
I had some discussions on the fonts and am interested in the current
status.
*Some background for non-UI persons:*
First we need to distinguish between the server and the client.
The server contains the Kimchi/Ginger-webserver and the
Kimchi/Ginger-installation with functional and UI code.
The client contains a browser instance connected to the
Kimchi/Ginger-webserver and displays the UI.
Per default the browser uses fonts which are installed on the client.
Five generic fonts are available on each client operating system and are
used as a default.
In CSS/HTML you specify a list of fonts starting with the most preferred
one and ending with a generic one (default).
You can also provide fonts via the server. This ensures that your
preferred font is available at the client. Such fonts are part of the
Kimchi/Ginger-installation on the server (no additional rpm).
*My opinion on the font discussion:*
1) Icon Font Awesome
This font is very useful as it provides a lot of scalable icons. We
should use/package this font
2) Fonts like "Open Sans" and/or TeXGyreHeros as open source replacement
for "Helvetica Neue"
The sizes of graphical elements vary much more depending on the
language than on the font. Our layout must be flexible enough to support
this.
My recommendation is to use fonts which are already installed on the
client.
Kind regards
Jan
From: Samuel Henrique De Oliveira Guimaraes
<samuel.guimaraes(a)eldorado.org.br>
To: Kevin Zander <klzander(a)linux.vnet.ibm.com>, Aline Manera
<alinefm(a)linux.vnet.ibm.com>, "kimchi-devel(a)ovirt.org"
<kimchi-devel(a)ovirt.org>, "donspang(a)us.ibm.com" <donspang(a)us.ibm.com>
Date: 08/11/2015 07:13 PM
Subject: Re: [Kimchi-devel] New-UI Helvetica Font
Sent by: kimchi-devel-bounces(a)ovirt.org
------------------------------------------------------------------------
I thought that since we are packaging Font-Awesome, Elusive and other
font files as icons it was ok to distribute Open Sans with Kimchi. I
proposed moving to an open source and redistributable font family
instead of a font stack because a text with Arial Unicode on Windows
doesn’t fill the same space in pixels as a text with Helvetica Neue on
OS X and iOS. Open Sans was an alternative because it has the same
variations as Helvetica Neue and almost the same size (I mean letter
spacing / tracking, kerning, body width, leading and height), we
wouldn’t have “condensed” styles in one system and plain and regular
bold and normal text in other systems.
Samuel
*From:* Kevin Zander [mailto:klzander@linux.vnet.ibm.com] *
Sent:* terça-feira, 11 de agosto de 2015 13:31*
To:* Aline Manera <alinefm(a)linux.vnet.ibm.com>; Samuel Henrique De
Oliveira Guimaraes <samuel.guimaraes(a)eldorado.org.br>;
kimchi-devel(a)ovirt.org; donspang(a)us.ibm.com*
Subject:* Re: [Kimchi-devel] New-UI Helvetica Font
On Tue, 2015-08-11 at 12:01 -0300, Aline Manera wrote:
On 10/08/2015 09:58, Samuel Henrique De Oliveira Guimaraes wrote:
Hi team,
I’m sending some screenshots to compare different fonts so we can decide
if we are going to replace Helvetica Neue for Open Sans and/or
TeXGyreHeros.
I also found out that Open Sans doesn’t have all the character glyphs
for simplified and traditional Chinese, Japanese and Korean languages
(wok_current.png file, you can see that these texts have jagged edges).
The equivalent font for these languages is called Noto Sans CJK which is
licensed under SIL Open Font License (OFL). The downside is that Noto
Sans is very heavy (~88MB each language set) so we would have to figure
a way to load these font files only when the user has changed the locale
in the front-end.
OH! Wait... The idea is to use an open source and wide used font, which
means, Kimchi will not package any font file.
Isn’t there an open source and wide used font which works with all
languages?
_http://www.cssfontstack.com/_
Which of these has the best unicode support though, I cannot answer.
_https://en.wikipedia.org/wiki/Unicode_font#List_of_Unicode_fonts_
Thanks,
Samuel Guimaraes
*From:* Aline Manera [_mailto:alinefm@linux.vnet.ibm.com_] *
Sent:* quarta-feira, 5 de agosto de 2015 15:24*
To:* Samuel Henrique De Oliveira Guimaraes
_<samuel.guimaraes(a)eldorado.org.br>_
<mailto:samuel.guimaraes@eldorado.org.br>; _kimchi-devel(a)ovirt.org_
<mailto:kimchi-devel@ovirt.org>; _donspang(a)us.ibm.com_
<mailto:donspang@us.ibm.com>*
Subject:* Re: [Kimchi-devel] New-UI Helvetica Font
On 16/07/2015 13:09, Samuel Henrique De Oliveira Guimaraes wrote:
Hi team,
I noticed that the new-ui design pattern for typography specifies
Helvetica Neue family in four different styles. This font family is
shipped with the latest versions of Mac OS X and iOS but it is not
available for free on Windows and Linux distributions.
I believe this might conflict with Kimchi license. Even if we buy or
rent a webfont license we can’t distribute the TTF, EOT, WOFF and SVG
files in our repositories. I think that we can’t even use a webfont
license in this case (pointing to a remote location or service like
Adobe Typekit or MyFonts) because most font-licensing services are
charging based on pre-paid pageviews.
Usually for web apps, mobile web apps and cloud based services we have
to buy a server license to store the webfont files within our servers,
but since Kimchi is an open-source project that anyone can check out and
run, every kimchi instance would have to buy their own font license.
We can set Helvetica as the default font-family in the CSS and if the
user doesn’t have this font installed the browser will load the next
available font (Arial or any other Sans-Serif) but since each font has
different sizes, some elements may not fit in the screen exactly like
they were seen in the mockups.
Hrm... we should build the new UI with responsive web design in mind
which means changing the font, font size, resizing the browser or
whatever will not impact in the final layout.
Also, the UI specs recommends Helvetica Neue in 5 different styles
(Light, Roman, Regular, Medium and Bold), most system fonts only have 3.
We don’t have something like “Arial Light” for instance.
My suggestion is that we replace Helvetica Neue for Open Sans because it
covers all the style specifications and it is licensed under Apache 2.0.
Any thoughts?
Could you provide a screenshot with the Open Sans font so we can see how
it will look like?
In first hand, I am OK to change to Open Sans.
I am copying Don who originally designed the new UI with the Helvetica
Neue font to check if he has any advice to do.
Thanks,
Samuel Guimarães
_______________________________________________
Kimchi-devel mailing list
_Kimchi-devel(a)ovirt.org_ <mailto:Kimchi-devel@ovirt.org>
_http://lists.ovirt.org/mailman/listinfo/kimchi-devel_
_______________________________________________
Kimchi-devel mailing list
_Kimchi-devel(a)ovirt.org_ <mailto:Kimchi-devel@ovirt.org>
_http://lists.ovirt.org/mailman/listinfo/kimchi-devel____________________...
Kimchi-devel mailing list
Kimchi-devel(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/kimchi-devel
9 years, 4 months
Re: [Kimchi-devel] New-UI Helvetica Font
by Jan Schneider
From: Jan Schneider/Germany/IBM
To: "Kimchi Devel" <kimchi-devel(a)ovirt.org>
Date: 08/26/2015 04:51 PM
Subject: Re: [Kimchi-devel] New-UI Helvetica Font
------------------------------------------------------------------------
Hello team,
I had some discussions on the fonts and am interested in the current
status.
*Some background for non-UI persons:*
First we need to distinguish between the server and the client.
The server contains the Kimchi/Ginger-webserver and the
Kimchi/Ginger-installation with functional and UI code.
The client contains a browser instance connected to the
Kimchi/Ginger-webserver and displays the UI.
Per default the browser uses fonts which are installed on the client.
Five generic fonts are available on each client operating system and are
used as a default.
In HTML/CSS you specify a list of fonts starting with the most preferred
one and ending with a generic one (default).
You can also provide fonts via the server. This ensures that your
preferred font is available at the client. Such fonts are part of the
Kimchi/Ginger-installation on the server (no additional rpm).
*My opinion on the font discussion:*
1) Icon Font Awesome
This font is very useful as it provides a lot of scalable icons. We
should use/package this font
2) Fonts like "Open Sans" and/or TeXGyreHeros as open source replacement
for "Helvetica Neue"
The sizes of graphical elements vary much more depending on the
language than on the font. Our layout must be flexible enough to support
this.
My recommendation is to use fonts which are already installed on the
client.
Kind regards
Jan
From: Samuel Henrique De Oliveira Guimaraes
<samuel.guimaraes(a)eldorado.org.br>
To: Kevin Zander <klzander(a)linux.vnet.ibm.com>, Aline Manera
<alinefm(a)linux.vnet.ibm.com>, "kimchi-devel(a)ovirt.org"
<kimchi-devel(a)ovirt.org>, "donspang(a)us.ibm.com" <donspang(a)us.ibm.com>
Date: 08/11/2015 07:13 PM
Subject: Re: [Kimchi-devel] New-UI Helvetica Font
Sent by: kimchi-devel-bounces(a)ovirt.org
------------------------------------------------------------------------
I thought that since we are packaging Font-Awesome, Elusive and other
font files as icons it was ok to distribute Open Sans with Kimchi. I
proposed moving to an open source and redistributable font family
instead of a font stack because a text with Arial Unicode on Windows
doesn’t fill the same space in pixels as a text with Helvetica Neue on
OS X and iOS. Open Sans was an alternative because it has the same
variations as Helvetica Neue and almost the same size (I mean letter
spacing / tracking, kerning, body width, leading and height), we
wouldn’t have “condensed” styles in one system and plain and regular
bold and normal text in other systems.
Samuel
*From:* Kevin Zander [mailto:klzander@linux.vnet.ibm.com] *
Sent:* terça-feira, 11 de agosto de 2015 13:31*
To:* Aline Manera <alinefm(a)linux.vnet.ibm.com>; Samuel Henrique De
Oliveira Guimaraes <samuel.guimaraes(a)eldorado.org.br>;
kimchi-devel(a)ovirt.org; donspang(a)us.ibm.com*
Subject:* Re: [Kimchi-devel] New-UI Helvetica Font
On Tue, 2015-08-11 at 12:01 -0300, Aline Manera wrote:
On 10/08/2015 09:58, Samuel Henrique De Oliveira Guimaraes wrote:
Hi team,
I’m sending some screenshots to compare different fonts so we can decide
if we are going to replace Helvetica Neue for Open Sans and/or
TeXGyreHeros.
I also found out that Open Sans doesn’t have all the character glyphs
for simplified and traditional Chinese, Japanese and Korean languages
(wok_current.png file, you can see that these texts have jagged edges).
The equivalent font for these languages is called Noto Sans CJK which is
licensed under SIL Open Font License (OFL). The downside is that Noto
Sans is very heavy (~88MB each language set) so we would have to figure
a way to load these font files only when the user has changed the locale
in the front-end.
OH! Wait... The idea is to use an open source and wide used font, which
means, Kimchi will not package any font file.
Isn’t there an open source and wide used font which works with all
languages?
_http://www.cssfontstack.com/_
Which of these has the best unicode support though, I cannot answer.
_https://en.wikipedia.org/wiki/Unicode_font#List_of_Unicode_fonts_
Thanks,
Samuel Guimaraes
*From:* Aline Manera [_mailto:alinefm@linux.vnet.ibm.com_] *
Sent:* quarta-feira, 5 de agosto de 2015 15:24*
To:* Samuel Henrique De Oliveira Guimaraes
_<samuel.guimaraes(a)eldorado.org.br>_
<mailto:samuel.guimaraes@eldorado.org.br>; _kimchi-devel(a)ovirt.org_
<mailto:kimchi-devel@ovirt.org>; _donspang(a)us.ibm.com_
<mailto:donspang@us.ibm.com>*
Subject:* Re: [Kimchi-devel] New-UI Helvetica Font
On 16/07/2015 13:09, Samuel Henrique De Oliveira Guimaraes wrote:
Hi team,
I noticed that the new-ui design pattern for typography specifies
Helvetica Neue family in four different styles. This font family is
shipped with the latest versions of Mac OS X and iOS but it is not
available for free on Windows and Linux distributions.
I believe this might conflict with Kimchi license. Even if we buy or
rent a webfont license we can’t distribute the TTF, EOT, WOFF and SVG
files in our repositories. I think that we can’t even use a webfont
license in this case (pointing to a remote location or service like
Adobe Typekit or MyFonts) because most font-licensing services are
charging based on pre-paid pageviews.
Usually for web apps, mobile web apps and cloud based services we have
to buy a server license to store the webfont files within our servers,
but since Kimchi is an open-source project that anyone can check out and
run, every kimchi instance would have to buy their own font license.
We can set Helvetica as the default font-family in the CSS and if the
user doesn’t have this font installed the browser will load the next
available font (Arial or any other Sans-Serif) but since each font has
different sizes, some elements may not fit in the screen exactly like
they were seen in the mockups.
Hrm... we should build the new UI with responsive web design in mind
which means changing the font, font size, resizing the browser or
whatever will not impact in the final layout.
Also, the UI specs recommends Helvetica Neue in 5 different styles
(Light, Roman, Regular, Medium and Bold), most system fonts only have 3.
We don’t have something like “Arial Light” for instance.
My suggestion is that we replace Helvetica Neue for Open Sans because it
covers all the style specifications and it is licensed under Apache 2.0.
Any thoughts?
Could you provide a screenshot with the Open Sans font so we can see how
it will look like?
In first hand, I am OK to change to Open Sans.
I am copying Don who originally designed the new UI with the Helvetica
Neue font to check if he has any advice to do.
Thanks,
Samuel Guimarães
_______________________________________________
Kimchi-devel mailing list
_Kimchi-devel(a)ovirt.org_ <mailto:Kimchi-devel@ovirt.org>
_http://lists.ovirt.org/mailman/listinfo/kimchi-devel_
_______________________________________________
Kimchi-devel mailing list
_Kimchi-devel(a)ovirt.org_ <mailto:Kimchi-devel@ovirt.org>
_http://lists.ovirt.org/mailman/listinfo/kimchi-devel____________________...
Kimchi-devel mailing list
Kimchi-devel(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/kimchi-devel
9 years, 4 months
[PATCH] [WOK] Adding a css class name to ginger tab and main template (including wok toolbar)
by sguimaraes943@yahoo.com
From: sguimaraes943 <sguimaraes943(a)yahoo.com>
Signed-off-by: samhenri <samuel.guimaraes(a)eldorado.org.br>
---
ui/config/tab-ext.xml | 1 +
ui/pages/host-admin.html.tmpl | 9 +++++++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/ui/config/tab-ext.xml b/ui/config/tab-ext.xml
index d58327f..651434d 100644
--- a/ui/config/tab-ext.xml
+++ b/ui/config/tab-ext.xml
@@ -22,6 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
<access role="user" mode="none"/>
<title>Administration</title>
+ <css>administration</css>
<path>plugins/ginger/host-admin.html</path>
</tab>
</tabs-ext>
diff --git a/ui/pages/host-admin.html.tmpl b/ui/pages/host-admin.html.tmpl
index 238ab9f..4ebd17b 100644
--- a/ui/pages/host-admin.html.tmpl
+++ b/ui/pages/host-admin.html.tmpl
@@ -28,8 +28,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
<script type="text/javascript" src="plugins/ginger/js/host-admin.js"></script>
</head>
<body>
-<div class="ginger">
-
+<div id="administration-root-container" class="ginger">
+<div class="toolbar">
+ <div class="container">
+ <div class="tools pull-right">
+ </div>
+ </div>
+</div>
<div id="gingerHostAdmin" class="host-admin">
<h3 class="firmware-ppc-enabled">$_("Firmware Update")</h3>
<div class="content-area">
--
1.9.3
9 years, 4 months
Kimchi GUI Prototype, Base Navigation
by Jan Schneider
Hello,
I started a Kimchi GUI Prototype with the Pencil tool.
First topic I would like to discuss is the base navigation proposal
shown below
1) There is a horizontal main navigation area which contains 'Host' and
'Virtualization'. 'Containers' is an example for a future plugin.
2) There is a vertical sub navigation area. Each item in the sub
navigation has an icon and a label (1 or 2 lines).
I am very interested in your feedback and would like to come to an
agreement on this.
I will discuss with Aline if we can store the Kimchi GUI Prototype at a
central place. It is packed in a single file PencilGuiPrototype.zip
Please extract this file and read ./readme.txt
To view the Kimchi GUI Prototype open file ./htmlExport/index.html in
your browser and navigate by clicking on navigation tabs/buttons.
If you want to edit the Kimchi GUI Prototype you will find further
information in ./readme.txt
Kind regards
Jan
Alternate design with the same navigation
�PNG
9 years, 4 months
[PATCH] Improve code to get default disk format for VMTemplate
by Aline Manera
The default template configuration is defined in the template.conf file.
This file is parsed on server start up and the result is always returned
in the osinfo.lookup() method. That means when creating a new
VMTemplate instance it will already contain all the default values to
use for the Template creation.
The disks are in a dict format like below:
[{u'index': 0, u'size': 10, u'format': u'qcow2'}]
Each disk has its own size and format and we just need to use them.
We don't need to parse the template.conf file again in order to get the right
values.
Also adjust the tests according to those changes.
Signed-off-by: Aline Manera <alinefm(a)linux.vnet.ibm.com>
---
src/kimchi/vmtemplate.py | 40 ++++++++++++++++++----------------------
tests/test_model.py | 9 ++++++---
tests/test_template.py | 8 ++++----
3 files changed, 28 insertions(+), 29 deletions(-)
diff --git a/src/kimchi/vmtemplate.py b/src/kimchi/vmtemplate.py
index a165a5d..56a0de8 100644
--- a/src/kimchi/vmtemplate.py
+++ b/src/kimchi/vmtemplate.py
@@ -23,13 +23,11 @@ import time
import urlparse
import uuid
-from configobj import ConfigObj
from lxml import etree
from lxml.builder import E
from kimchi import imageinfo
from kimchi import osinfo
-from kimchi.config import paths
from kimchi.exception import InvalidParameter, IsoFormatError, MissingParameter
from kimchi.exception import ImageFormatError, OperationFailed
from kimchi.isoinfo import IsoImage
@@ -64,23 +62,31 @@ class VMTemplate(object):
entry = osinfo.lookup(os_distro, os_version)
self.info.update(entry)
- # Auto-generate a template name and no one is passed
+ # Auto-generate a template name if no one is passed
if 'name' not in args or args['name'] == '':
args['name'] = self._gen_name(distro, version)
self.name = args['name']
- # Override with the passed in parameters
+ # Merge graphics settings
graph_args = args.get('graphics')
if graph_args:
graphics = dict(self.info['graphics'])
graphics.update(graph_args)
args['graphics'] = graphics
- self.info.update(args)
- # Assign right disk format to logical and [i]scsi storagepools
- if self._get_storage_type() in ['logical', 'iscsi', 'scsi']:
- for i, disk in enumerate(self.info['disks']):
- self.info['disks'][i]['format'] = 'raw'
+ # Merge disks dict
+ default_disk = self.info['disks'][0]
+ for i, d in enumerate(args.get('disks', [])):
+ disk = dict(default_disk)
+ disk.update(d)
+
+ # Assign right disk format to logical and [i]scsi storagepools
+ if self._get_storage_type() in ['logical', 'iscsi', 'scsi']:
+ disk['format'] = 'raw'
+ args['disks'][i] = disk
+
+ # Override template values according to 'args'
+ self.info.update(args)
def _get_os_info(self, args, scan):
distro = version = 'unknown'
@@ -159,14 +165,6 @@ class VMTemplate(object):
dev, xml = get_disk_xml(params)
return xml
- @staticmethod
- def get_default_disk0_format():
- config_file = os.path.join(paths.conf_dir, 'template.conf')
- config = ConfigObj(config_file)
-
- default_vol_format = config['storage']['disk.0'].get('format', 'qcow2')
- return default_vol_format
-
def _get_disks_xml(self, vm_uuid):
# Current implementation just allows to create disk in one single
# storage pool, so we cannot mix the types (scsi volumes vs img file)
@@ -174,8 +172,7 @@ class VMTemplate(object):
storage_path = self._get_storage_path()
base_disk_params = {'type': 'disk', 'disk': 'file',
- 'bus': self.info['disk_bus'],
- 'format': self.get_default_disk0_format()}
+ 'bus': self.info['disk_bus']}
logical_disk_params = {'format': 'raw'}
iscsi_disk_params = {'disk': 'block', 'format': 'raw'}
@@ -187,7 +184,7 @@ class VMTemplate(object):
pool_name = pool_name_from_uri(self.info['storagepool'])
for index, disk in enumerate(self.info['disks']):
params = dict(base_disk_params)
- params['format'] = disk.get('format', params['format'])
+ params['format'] = disk['format']
params.update(locals().get('%s_disk_params' % storage_type, {}))
params['index'] = index
@@ -203,7 +200,6 @@ class VMTemplate(object):
return unicode(disks_xml, 'utf-8')
def to_volume_list(self, vm_uuid):
- default_vol_format = self.get_default_disk0_format()
storage_path = self._get_storage_path()
ret = []
for i, d in enumerate(self.info['disks']):
@@ -212,7 +208,7 @@ class VMTemplate(object):
info = {'name': volume,
'capacity': d['size'],
- 'format': d.get('format', default_vol_format),
+ 'format': d['format'],
'path': '%s/%s' % (storage_path, volume)}
if 'logical' == self._get_storage_type() or \
diff --git a/tests/test_model.py b/tests/test_model.py
index 717b9bc..7ca823a 100644
--- a/tests/test_model.py
+++ b/tests/test_model.py
@@ -32,11 +32,11 @@ import iso_gen
import kimchi.objectstore
import utils
from kimchi import netinfo
+from kimchi import osinfo
from kimchi.basemodel import Singleton
from kimchi.config import config, paths
from kimchi.exception import InvalidOperation
from kimchi.exception import InvalidParameter, NotFoundError, OperationFailed
-from kimchi.osinfo import get_template_default
from kimchi.model import model
from kimchi.model.libvirtconnection import LibvirtConnection
from kimchi.model.vms import VMModel
@@ -386,7 +386,7 @@ class ModelTests(unittest.TestCase):
def test_vm_disk(self):
disk_path = os.path.join(TMP_DIR, 'existent2.iso')
open(disk_path, 'w').close()
- modern_disk_bus = get_template_default('modern', 'disk_bus')
+ modern_disk_bus = osinfo.get_template_default('modern', 'disk_bus')
def _attach_disk(expect_bus=modern_disk_bus):
disk_args = {"type": "disk",
@@ -485,7 +485,7 @@ class ModelTests(unittest.TestCase):
rollback.prependDefer(inst.vm_delete, vm_name)
# Need to check the right disk_bus for old distro
- disk = _attach_disk(get_template_default('old', 'disk_bus'))
+ disk = _attach_disk(osinfo.get_template_default('old', 'disk_bus'))
inst.vmstorage_delete('kimchi-ide-bus-vm', disk)
# Hot plug IDE bus disk does not work
@@ -620,11 +620,14 @@ class ModelTests(unittest.TestCase):
with open(config_file, 'w') as f:
f.write(conf_file_data)
+ osinfo.defaults = osinfo._get_tmpl_defaults()
+
def _restore_template_conf_file(self):
config_file = os.path.join(paths.conf_dir, 'template.conf')
config_bkp_file = \
os.path.join(paths.conf_dir, 'template.conf-unit_test_bkp')
os.rename(config_bkp_file, config_file)
+ osinfo.defaults = osinfo._get_tmpl_defaults()
def _get_disk_format_from_vm(self, vm, conn):
dom = VMModel.get_vm(vm, conn)
diff --git a/tests/test_template.py b/tests/test_template.py
index 83561c1..48ef229 100644
--- a/tests/test_template.py
+++ b/tests/test_template.py
@@ -24,7 +24,7 @@ import unittest
from functools import partial
-from kimchi.vmtemplate import VMTemplate
+from kimchi import osinfo
from kimchi.config import READONLY_POOL_TYPE
from kimchi.mockmodel import MockModel
from utils import get_free_port, patch_auth, request, run_server
@@ -88,7 +88,7 @@ class TemplateTests(unittest.TestCase):
self.assertEquals(sorted(tmpl.keys()), sorted(keys))
# Verify if default disk format was configured
- default_disk_format = VMTemplate.get_default_disk0_format()
+ default_disk_format = osinfo.defaults['disks'][0]['format']
self.assertEquals(tmpl['disks'][0]['format'], default_disk_format)
# Clone a template
@@ -199,8 +199,8 @@ class TemplateTests(unittest.TestCase):
self.assertEquals(update_tmpl['cdrom'], cdrom_data['cdrom'])
# Update disks
- disk_data = {'disks': [{'index': 0, 'size': 10},
- {'index': 1, 'size': 20}]}
+ disk_data = {'disks': [{'index': 0, 'size': 10, 'format': 'raw'},
+ {'index': 1, 'size': 20, 'format': 'raw'}]}
resp = self.request(new_tmpl_uri, json.dumps(disk_data), 'PUT')
self.assertEquals(200, resp.status)
resp = self.request(new_tmpl_uri)
--
2.1.0
9 years, 4 months