Mail archive
alpine-aports

[alpine-aports] [PATCH] testing/virt-top: new aport

From: Fernando Casas Schössow <casasfernando_at_outlook.com>
Date: Thu, 7 Feb 2019 23:55:25 +0000

http://people.redhat.com/~rjones/virt-top/
Utility like top(1) for displaying virtualization stats
---
 ...about-immutable-strings-for-OCaml-4..patch | 50 +
 ...translations-from-Tranifex-to-Zanata.patch | 167 +
 ...0003-Update-translations-from-Zanata.patch | 4188 +++++
 .../0004-build-Add-g-flag-to-ocamlopt.patch | 26 +
 ...05-Rename-source-directory-and-files.patch | 719 +
 ...6-Enable-same-warnings-as-libguestfs.patch | 34 +
 ...ble-permission-on-several-source-fil.patch | 48 +
 .../virt-top/0008-Refresh-HACKING-file.patch | 95 +
 ...LES-for-new-location-of-source-files.patch | 34 +
 testing/virt-top/0010-Update-PO-files.patch | 14279 ++++++++++++++++
 ...Remove-support-for-OCaml-Calendar-v1.patch | 203 +
 ...ments-which-referred-to-the-old-file.patch | 76 +
 ...huge-Top-module-into-smaller-modules.patch | 3274 ++++
 ...tes-entirely-to-the-presentation-lay.patch | 211 +
 ...-Remove-unused-variable-is_calendar2.patch | 25 +
 ...tAllDomainStats-API-to-collect-domai.patch | 343 +
 .../virt-top/0017-chmod-x-COPYING-files.patch | 21 +
 testing/virt-top/APKBUILD | 78 +
 18 files changed, 23871 insertions(+)
 create mode 100644 testing/virt-top/0001-Disable-warning-about-immutable-strings-for-OCaml-4..patch
 create mode 100644 testing/virt-top/0002-Move-upstream-translations-from-Tranifex-to-Zanata.patch
 create mode 100644 testing/virt-top/0003-Update-translations-from-Zanata.patch
 create mode 100644 testing/virt-top/0004-build-Add-g-flag-to-ocamlopt.patch
 create mode 100644 testing/virt-top/0005-Rename-source-directory-and-files.patch
 create mode 100644 testing/virt-top/0006-Enable-same-warnings-as-libguestfs.patch
 create mode 100644 testing/virt-top/0007-Remove-x-executable-permission-on-several-source-fil.patch
 create mode 100644 testing/virt-top/0008-Refresh-HACKING-file.patch
 create mode 100644 testing/virt-top/0009-Fix-po-POTFILES-for-new-location-of-source-files.patch
 create mode 100644 testing/virt-top/0010-Update-PO-files.patch
 create mode 100644 testing/virt-top/0011-Remove-support-for-OCaml-Calendar-v1.patch
 create mode 100644 testing/virt-top/0012-src-Fix-some-comments-which-referred-to-the-old-file.patch
 create mode 100644 testing/virt-top/0013-Split-up-huge-Top-module-into-smaller-modules.patch
 create mode 100644 testing/virt-top/0014-Move-block_in_bytes-entirely-to-the-presentation-lay.patch
 create mode 100644 testing/virt-top/0015-Remove-unused-variable-is_calendar2.patch
 create mode 100644 testing/virt-top/0016-Use-virConnectGetAllDomainStats-API-to-collect-domai.patch
 create mode 100644 testing/virt-top/0017-chmod-x-COPYING-files.patch
 create mode 100644 testing/virt-top/APKBUILD

diff --git a/testing/virt-top/0001-Disable-warning-about-immutable-strings-for-OCaml-4..patch b/testing/virt-top/0001-Disable-warning-about-immutable-strings-for-OCaml-4..patch
new file mode 100644
index 0000000000..d3371ef016
--- /dev/null
+++ b/testing/virt-top/0001-Disable-warning-about-immutable-strings-for-OCaml-4..patch
_at_@ -0,0 +1,50 @@
+From 0e47961395eec78b1ee9f6ae48520f1d95d84fdf Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Sat, 2 Aug 2014 17:37:21 +0100
+Subject: [PATCH 01/17] Disable warning about immutable strings (for OCaml
+ 4.02).
+
+---
+ Makefile.in | 2 +-
+ virt-top/Makefile.in | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 32e0b66..b310e58 100644
+--- a/Makefile.in
++++ b/Makefile.in
+_at_@ -1,5 +1,5 @@
+ # virt-top
+-# Copyright (C) 2007-2009 Red Hat Inc., Richard W.M. Jones
++# Copyright (C) 2007-2014 Red Hat Inc., Richard W.M. Jones
+ #
+ # This library is free software; you can redistribute it and/or
+ # modify it under the terms of the GNU Lesser General Public
+diff --git a/virt-top/Makefile.in b/virt-top/Makefile.in
+index 5aa0c35..98e6647 100755
+--- a/virt-top/Makefile.in
++++ b/virt-top/Makefile.in
+_at_@ -1,5 +1,5 @@
+ # virt-top
+-# Copyright (C) 2007-2009 Red Hat Inc., Richard W.M. Jones
++# Copyright (C) 2007-2014 Red Hat Inc., Richard W.M. Jones
+ #
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+_at_@ -64,11 +64,11 @@ OBJS += virt_top_main.cmo
+
+ XOBJS := $(OBJS:.cmo=.cmx)
+
+-OCAMLCFLAGS := -g -warn-error A
++OCAMLCFLAGS := -g -warn-error A-3
+ OCAMLCLIBS := -linkpkg
+
+ OCAMLOPTPACKAGES := $(OCAMLCPACKAGES)
+-OCAMLOPTFLAGS := -warn-error A
++OCAMLOPTFLAGS := -warn-error A-3
+ OCAMLOPTLIBS := $(OCAMLCLIBS)
+
+ BYTE_TARGETS := virt-top
+--
+2.9.3
+
diff --git a/testing/virt-top/0002-Move-upstream-translations-from-Tranifex-to-Zanata.patch b/testing/virt-top/0002-Move-upstream-translations-from-Tranifex-to-Zanata.patch
new file mode 100644
index 0000000000..3b8f82d02a
--- /dev/null
+++ b/testing/virt-top/0002-Move-upstream-translations-from-Tranifex-to-Zanata.patch
_at_@ -0,0 +1,167 @@
+From 6ea4275b0d9f6d40b8d4a35f78928e71d830d721 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Sat, 21 Feb 2015 17:27:59 +0000
+Subject: [PATCH 02/17] Move upstream translations from Tranifex to Zanata.
+
+This is at the request of the Fedora localization team.
+For further information see:
+
+https://www.redhat.com/archives/libguestfs/2015-February/msg00168.html
+---
+ po/zanata-pull.sh | 30 ++++++++++++++++
+ po/zanata.xml | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 136 insertions(+)
+ create mode 100755 po/zanata-pull.sh
+ create mode 100644 po/zanata.xml
+
+diff --git a/po/zanata-pull.sh b/po/zanata-pull.sh
+new file mode 100755
+index 0000000..d051b7a
+--- /dev/null
++++ b/po/zanata-pull.sh
+_at_@ -0,0 +1,30 @@
++#!/bin/bash -
++# Pull translations from Zanata.
++# Copyright (C) 2011-2015 Red Hat Inc.
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2 of the License, or
++# (at your option) any later version.
++#
++# This program 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 General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++
++set -e
++
++echo zanata po pull
++zanata po pull
++
++# Remove PO files that have no translations in them.
++for f in *.po; do
++ if ! grep -q '^msgstr "[^"]' $f; then
++ echo rm $f
++ rm $f
++ fi
++done
+diff --git a/po/zanata.xml b/po/zanata.xml
+new file mode 100644
+index 0000000..64810f9
+--- /dev/null
++++ b/po/zanata.xml
+_at_@ -0,0 +1,106 @@
++<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
++<config xmlns="http://zanata.org/namespace/config/">
++ <url>https://fedora.zanata.org</url>
++ <project>virt-top</project>
++ <project-version>master</project-version>
++ <project-type>gettext</project-type>
++
++ <locales>
++ <locale>sq</locale>
++ <locale>ar</locale>
++ <locale>as</locale>
++ <locale>ast</locale>
++ <locale>bal</locale>
++ <locale>eu</locale>
++ <locale>bn</locale>
++ <locale>bn-IN</locale>
++ <locale>brx</locale>
++ <locale>bs</locale>
++ <locale>br</locale>
++ <locale>bg</locale>
++ <locale>ca</locale>
++ <locale>zh-CN</locale>
++ <locale>zh-HK</locale>
++ <locale>zh-TW</locale>
++ <locale>kw</locale>
++ <locale>kw-GB</locale>
++ <locale>cs</locale>
++ <locale>da</locale>
++ <locale>nl</locale>
++ <locale>en-GB</locale>
++ <locale>eo</locale>
++ <locale>et</locale>
++ <locale>fi</locale>
++ <locale>fr</locale>
++ <locale>gl</locale>
++ <locale>ka</locale>
++ <locale>de</locale>
++ <locale>el</locale>
++ <locale>gu</locale>
++ <locale>he</locale>
++ <locale>hi</locale>
++ <locale>hu</locale>
++ <locale>is</locale>
++ <locale>id</locale>
++ <locale>ia</locale>
++ <locale>it</locale>
++ <locale>ja</locale>
++ <locale>kn</locale>
++ <locale>kk</locale>
++ <locale>km</locale>
++ <locale>ky</locale>
++ <locale>ko</locale>
++ <locale>lt</locale>
++ <locale>nds</locale>
++ <locale>mk</locale>
++ <locale>mai</locale>
++ <locale>ms</locale>
++ <locale>ml</locale>
++ <locale>mr</locale>
++ <locale>mn</locale>
++ <locale>ne</locale>
++ <locale>nb</locale>
++ <locale>nn</locale>
++ <locale>or</locale>
++ <locale>pa</locale>
++ <locale>fa</locale>
++ <locale>pl</locale>
++ <locale>pt</locale>
++ <locale>pt-BR</locale>
++ <locale>ro</locale>
++ <locale>ru</locale>
++ <locale>sr</locale>
++ <locale>sr_at_latin</locale>
++ <locale>si</locale>
++ <locale>sk</locale>
++ <locale>sl</locale>
++ <locale>es</locale>
++ <locale>sv</locale>
++ <locale>tg</locale>
++ <locale>ta</locale>
++ <locale>te</locale>
++ <locale>bo</locale>
++ <locale>tr</locale>
++ <locale>uk</locale>
++ <locale>ur</locale>
++ <locale>wba</locale>
++ <locale>cy</locale>
++ <locale>lv</locale>
++ <locale>kw_at_uccor</locale>
++ <locale>kw_at_kkcor</locale>
++ <locale>af</locale>
++ <locale>am</locale>
++ <locale>be</locale>
++ <locale>hr</locale>
++ <locale>de-CH</locale>
++ <locale>th</locale>
++ <locale>vi</locale>
++ <locale>zu</locale>
++ <locale>ilo</locale>
++ <locale>nso</locale>
++ <locale>tw</locale>
++ <locale>yo</locale>
++ <locale>anp</locale>
++ </locales>
++
++</config>
+--
+2.9.3
+
diff --git a/testing/virt-top/0003-Update-translations-from-Zanata.patch b/testing/virt-top/0003-Update-translations-from-Zanata.patch
new file mode 100644
index 0000000000..f59d7d28d6
--- /dev/null
+++ b/testing/virt-top/0003-Update-translations-from-Zanata.patch
_at_@ -0,0 +1,4188 @@
+From defe5bdd4a32e0206a786d279e0f9cfc238e5e17 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Sat, 21 Feb 2015 17:29:16 +0000
+Subject: [PATCH 03/17] Update translations from Zanata.
+
+---
+ po/LINGUAS | 12 +-
+ po/as.po | 8 +-
+ po/ca.po | 355 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/de.po | 8 +-
+ po/es.po | 8 +-
+ po/eu.po | 339 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/fr.po | 8 +-
+ po/gu.po | 8 +-
+ po/hu.po | 356 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/id.po | 345 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/it.po | 8 +-
+ po/ja.po | 8 +-
+ po/ka.po | 339 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/kn.po | 8 +-
+ po/ml.po | 8 +-
+ po/mr.po | 8 +-
+ po/nl.po | 8 +-
+ po/or.po | 8 +-
+ po/pa.po | 339 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/pl.po | 8 +-
+ po/pt.po | 8 +-
+ po/pt_BR.po | 10 +-
+ po/ru.po | 8 +-
+ po/sr.po | 355 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/sv.po | 352 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/te.po | 8 +-
+ po/tg.po | 338 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/tr.po | 339 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/uk.po | 8 +-
+ po/zh_CN.po | 10 +-
+ po/zh_TW.po | 10 +-
+ 31 files changed, 3551 insertions(+), 84 deletions(-)
+ create mode 100644 po/ca.po
+ create mode 100644 po/eu.po
+ create mode 100644 po/hu.po
+ create mode 100644 po/id.po
+ create mode 100644 po/ka.po
+ create mode 100644 po/pa.po
+ create mode 100644 po/sr.po
+ create mode 100644 po/sv.po
+ create mode 100644 po/tg.po
+ create mode 100644 po/tr.po
+
+diff --git a/po/LINGUAS b/po/LINGUAS
+index 66e671c..b2c02a2 100644
+--- a/po/LINGUAS
++++ b/po/LINGUAS
+_at_@ -1,20 +1,30 @@
+ as
++ca
+ de
+ es
++eu
+ fr
+ gu
++hu
++id
+ it
+ ja
++ka
+ kn
+ ml
+ mr
+ nl
+ or
++pa
+ pl
+-pt
+ pt_BR
++pt
+ ru
++sr
++sv
+ te
++tg
++tr
+ uk
+ zh_CN
+ zh_TW
+diff --git a/po/as.po b/po/as.po
+index 0bcca8b..260415e 100644
+--- a/po/as.po
++++ b/po/as.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-23 10:18+0000\n"
++"PO-Revision-Date: 2011-03-23 06:18-0400\n"
+ "Last-Translator: ngoswami <ngoswami_at_redhat.com>\n"
+ "Language-Team: Assamese <None>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: as\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/ca.po b/po/ca.po
+new file mode 100644
+index 0000000..09313aa
+--- /dev/null
++++ b/po/ca.po
+_at_@ -0,0 +1,355 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
++# Robert Antoni Buj i Gelonch, 2015
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2009-10-06 14:58+0000\n"
++"PO-Revision-Date: 2015-02-05 04:28-0500\n"
++"Last-Translator: Robert Antoni Buj i Gelonch\n"
++"Language-Team: Catalan (http://www.transifex.com/projects/p/virttop/language/ca/)\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Language: ca\n"
++"Plural-Forms: nplurals=2; plural=(n != 1);\n"
++"X-Generator: Zanata 3.5.1\n"
++
++#: ../virt-top/virt_top.ml:1506
++msgid "# %s virt-top configuration file\\n"
++msgstr "# %s fitxer de configuració de virt-top\\n"
++
++#: ../virt-top/virt_top.ml:1524
++msgid "# Enable CSV output to the named file\\n"
++msgstr "# Habilita la sortida CSV al fitxer named\\n"
++
++#: ../virt-top/virt_top.ml:1527
++msgid "# To protect this file from being overwritten, uncomment next line\\n"
++msgstr ""
++"# Per protegir aquest fitxer sigui sobreescrit, descomenteu la següent "
++"línia\\n"
++
++#: ../virt-top/virt_top.ml:1521
++msgid "# To send debug and error messages to a file, uncomment next line\\n"
++msgstr ""
++"# Per a enviar missatges de depuració o d'error a un fitxer, descomenteu la "
++"següent línia\\n"
++
++#: ../virt-top/virt_top.ml:1507
++msgid "# generated on %s by %s\\n"
++msgstr "# generat el %s per %s\\n"
++
++#: ../virt-top/virt_top.ml:65
++msgid "%CPU"
++msgstr "%CPU"
++
++#: ../virt-top/virt_top.ml:66
++msgid "%MEM"
++msgstr "%MEM"
++
++#: ../virt-top/virt_top.ml:1158
++msgid ""
++"%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
++"O:%d X:%d"
++msgstr ""
++"%d dominis, %d en actiu, %d en execució, %d dormint, %d en pausa, %d "
++"inactius D:%d O:%d X:%d"
++
++#: ../virt-top/virt_top.ml:105
++msgid "%s: display should be %s"
++msgstr "%s: la pantalla hauria de ser %s"
++
++#: ../virt-top/virt_top.ml:83
++msgid "%s: sort order should be: %s"
++msgstr "%s: l'ordre d'ordenació hauria de ser: %s"
++
++#: ../virt-top/virt_top.ml:207
++msgid "%s: unknown parameter"
++msgstr "%s: paràmetre desconegut"
++
++#: ../virt-top/virt_top.ml:238
++msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++msgstr "%s:%d: l'element de la configuració «%s» s'ha ignorat\\n%!"
++
++#: ../virt-top/virt_top.ml:144
++msgid "-d: cannot set a negative delay"
++msgstr "-d: no pot establir un retard negatiu"
++
++#: ../virt-top/virt_top.ml:170
++msgid "Batch mode"
++msgstr "Mode per lots"
++
++#: ../virt-top/virt_top.ml:72
++msgid "Block read reqs"
++msgstr "Sol·licituds de lectura de blocs"
++
++#: ../virt-top/virt_top.ml:73
++msgid "Block write reqs"
++msgstr "Sol·licituds d'escriptura de blocs"
++
++#: ../virt-top/virt_top.ml:1165
++msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
++msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB per als amfitrions)"
++
++#: ../virt-top/virt_top.ml:1335
++msgid "Change delay from %.1f to: "
++msgstr "Canvia el retard de %.1f a: "
++
++#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
++msgid "Connect to URI (default: Xen)"
++msgstr "Connecta a la URI (predeterminat: Xen)"
++
++#: ../virt-top/virt_top.ml:1580
++msgid "Connect: %s; Hostname: %s"
++msgstr "Connexió: %s; Nom d'amfitrió: %s"
++
++#: ../virt-top/virt_top.ml:1618
++msgid "DISPLAY MODES"
++msgstr "MODES DE VISUALITZACIÓ"
++
++#: ../virt-top/virt_top.ml:1342
++msgid "Delay must be > 0"
++msgstr "El retard ha de ser > 0"
++
++#: ../virt-top/virt_top.ml:184
++msgid "Delay time interval (seconds)"
++msgstr "Interval del retard (segons)"
++
++#: ../virt-top/virt_top.ml:1573
++msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
++msgstr "Retard: %.1f seg; Per lots: %s; Seguretat: %s; Ordenació: %s"
++
++#: ../virt-top/virt_top.ml:178
++msgid "Disable CPU stats in CSV"
++msgstr "En el CSV, deshabilita les estadístiques de la CPU"
++
++#: ../virt-top/virt_top.ml:180
++msgid "Disable block device stats in CSV"
++msgstr "En el CSV, deshabilita les estadístiques dels dispositius de blocs"
++
++#: ../virt-top/virt_top.ml:182
++msgid "Disable net stats in CSV"
++msgstr "En el CSV, deshabilita les estadístiques de la xarxa"
++
++#: ../virt-top/virt_top.ml:204
++msgid "Display version number and exit"
++msgstr "Mostra la versió i surt"
++
++#: ../virt-top/virt_top.ml:194
++msgid "Do not read init file"
++msgstr "No llegeix el fitxer d'inicialització"
++
++#: ../virt-top/virt_top.ml:68
++msgid "Domain ID"
++msgstr "ID del domini"
++
++#: ../virt-top/virt_top.ml:69
++msgid "Domain name"
++msgstr "Nom del domini"
++
++#: ../virt-top/virt_top.ml:1632
++msgid "Domains display"
++msgstr "Visualització dels dominis"
++
++#. ../virt-top/virt_top.ml:1544
++#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++msgid "Error"
++msgstr "Error"
++
++#: ../virt-top/virt_top.ml:188
++msgid "Exit at given time"
++msgstr "Surt en l'hora indicada"
++
++#: ../virt-top/virt_top.ml:1602
++msgid "Help"
++msgstr "Ajuda"
++
++#: ../virt-top/virt_top.ml:190
++msgid "Historical CPU delay"
++msgstr "Retard en l'històric de la CPU"
++
++#: ../virt-top/virt_top.ml:176
++msgid "Log statistics to CSV file"
++msgstr "Enregistra les estadístiques al fitxer CSV"
++
++#: ../virt-top/virt_top.ml:1585
++msgid "MAIN KEYS"
++msgstr "TECLES PRINCIPALS"
++
++#: ../virt-top/virt_top.ml:1639
++msgid "More help in virt-top(1) man page. Press any key to return."
++msgstr ""
++"Més informació en la pàgina man virt-top(1). Premeu qualsevol tecla per "
++"tornar."
++
++#: ../virt-top/virt_top.ml:263
++msgid ""
++"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
++"root"
++msgstr ""
++"N.B.: Si voleu supervisar un hipervisor Xen local, normalment heu de ser "
++"root"
++
++#: ../virt-top/virt_top.ml:70
++msgid "Net RX bytes"
++msgstr "Xarxa RX bytes"
++
++#: ../virt-top/virt_top.ml:71
++msgid "Net TX bytes"
++msgstr "Xarxa TX bytes"
++
++#: ../virt-top/virt_top.ml:1348
++msgid "Not a valid number"
++msgstr "No és un número vàlid"
++
++#: ../virt-top/virt_top.ml:196
++msgid "Number of iterations to run"
++msgstr "Número d'iteracions a executar"
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "Off"
++msgstr "Apagat"
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "On"
++msgstr "Encés"
++
++#: ../virt-top/virt_top.ml:1600
++msgid "Quit"
++msgstr "Surt"
++
++#: ../virt-top/virt_top.ml:202
++msgid "Run from a script (no user interface)"
++msgstr "Executa des d'una seqüència d'ordres (sense interfície gràfica)"
++
++#: ../virt-top/virt_top.ml:1606
++msgid "SORTING"
++msgstr "ORDENACIÓ"
++
++#: ../virt-top/virt_top.ml:200
++msgid "Secure (\\\"kiosk\\\") mode"
++msgstr "Mode (\\\"kiosk\\\") segur"
++
++#: ../virt-top/virt_top.ml:1615
++msgid "Select sort field"
++msgstr "Selecciona camp d'ordenació"
++
++#: ../virt-top/virt_top.ml:186
++msgid "Send debug messages to file"
++msgstr "Envia els missatges de depuració al fitxer"
++
++#: ../virt-top/virt_top.ml:192
++msgid "Set name of init file"
++msgstr "Estableix el nom del fitxer d'inicialització"
++
++#: ../virt-top/virt_top.ml:198
++msgid "Set sort order (%s)"
++msgstr "Estableix el mètode d'ordenació (%s)"
++
++#: ../virt-top/virt_top.ml:1356
++msgid "Set sort order for main display"
++msgstr "Estableix el mètode d'ordenació per a la pantalla principal"
++
++#: ../virt-top/virt_top.ml:1601
++msgid "Set update interval"
++msgstr "Interval d'actualització"
++
++#: ../virt-top/virt_top.ml:1611
++msgid "Sort by %CPU"
++msgstr "Ordena per %CPU"
++
++#: ../virt-top/virt_top.ml:1612
++msgid "Sort by %MEM"
++msgstr "Ordena per %MEM"
++
++#: ../virt-top/virt_top.ml:1614
++msgid "Sort by ID"
++msgstr "Ordena per ID"
++
++#: ../virt-top/virt_top.ml:1613
++msgid "Sort by TIME"
++msgstr "Ordena per TEMPS"
++
++#: ../virt-top/virt_top.ml:168
++msgid "Start by displaying block devices"
++msgstr "Comença mostrant els dispositius de blocs"
++
++#: ../virt-top/virt_top.ml:166
++msgid "Start by displaying network interfaces"
++msgstr "Comença mostrant les interfícies de xarxa"
++
++#: ../virt-top/virt_top.ml:164
++msgid "Start by displaying pCPUs (default: tasks)"
++msgstr "Comença mostrant pCPUs (predeterminat: tasques)"
++
++#: ../virt-top/virt_top.ml:67
++msgid "TIME (CPU time)"
++msgstr "TEMPS (temps de CPU)"
++
++#: ../virt-top/virt_top.ml:1635
++msgid "Toggle block devices"
++msgstr "Commuta dispositius de blocs"
++
++#: ../virt-top/virt_top.ml:1634
++msgid "Toggle network interfaces"
++msgstr "Commuta interfícies de xarxa"
++
++#: ../virt-top/virt_top.ml:1633
++msgid "Toggle physical CPUs"
++msgstr "Commuta CPU físiques"
++
++#: ../virt-top/virt_top.ml:1357
++msgid "Type key or use up and down cursor keys."
++msgstr "Teclegeu una tecla o utilitzeu les fletxes del cursor amunt o abaix."
++
++#: ../virt-top/virt_top.ml:1644
++msgid "Unknown command - try 'h' for help"
++msgstr "Ordre no reconeguda - proveu 'h' per l'ajuda"
++
++#: ../virt-top/virt_top.ml:1599
++msgid "Update display"
++msgstr "Actualitza la pantalla"
++
++#: ../virt-top/virt_top.ml:1539
++msgid "Wrote settings to %s"
++msgstr "S'ha escrit les preferències a %s"
++
++#: ../virt-top/virt_top.ml:1581
++msgid "default"
++msgstr "predet."
++
++#: ../virt-top/virt_top_xml.ml:46
++msgid "get_xml_desc didn't return <domain/>"
++msgstr "get_xml_desc no va retornar <domain/>"
++
++#: ../virt-top/virt_top.ml:1561
++msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
++msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d per Red Hat"
++
++#: ../virt-top/virt_top.ml:208
++msgid ""
++"virt-top : a 'top'-like utility for virtualization\n"
++"\n"
++"SUMMARY\n"
++" virt-top [-options]\n"
++"\n"
++"OPTIONS"
++msgstr ""
++"virt-top : una utilitat similar a «top» per a la virtualització\n"
++"\n"
++"RESUM\n"
++" virt-top [-opcions]\n"
++"\n"
++"OPCIONS"
++
++#: ../virt-top/virt_top.ml:42
++msgid "virt-top was compiled without support for CSV files"
++msgstr "virt-top fou compilat sense compatibilitat per a fitxers CSV"
++
++#: ../virt-top/virt_top.ml:53
++msgid "virt-top was compiled without support for dates and times"
++msgstr "virt-top fou compilat sense compatibilitat per data i hora"
+diff --git a/po/de.po b/po/de.po
+index caf9e8a..93fc598 100644
+--- a/po/de.po
++++ b/po/de.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: rjones <rjones_at_redhat.com>\n"
+ "Language-Team: German <trans-de_at_lists.fedoraproject.org>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: de\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/es.po b/po/es.po
+index 51c7a79..4dccb7f 100644
+--- a/po/es.po
++++ b/po/es.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: rjones <rjones_at_redhat.com>\n"
+ "Language-Team: Spanish (Castilian) <trans-es_at_lists.fedoraproject.org>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: es\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/eu.po b/po/eu.po
+new file mode 100644
+index 0000000..58f6976
+--- /dev/null
++++ b/po/eu.po
+_at_@ -0,0 +1,339 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
++# Asier Iturralde Sarasola <asier.iturralde_at_gmail.com>, 2012
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2009-10-06 14:58+0000\n"
++"PO-Revision-Date: 2013-11-20 06:00-0500\n"
++"Last-Translator: Asier Iturralde Sarasola <asier.iturralde_at_gmail.com>\n"
++"Language-Team: Basque (http://www.transifex.com/projects/p/virttop/language/eu/)\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Language: eu\n"
++"Plural-Forms: nplurals=2; plural=(n != 1);\n"
++"X-Generator: Zanata 3.5.1\n"
++
++#: ../virt-top/virt_top.ml:1506
++msgid "# %s virt-top configuration file\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1524
++msgid "# Enable CSV output to the named file\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1527
++msgid "# To protect this file from being overwritten, uncomment next line\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1521
++msgid "# To send debug and error messages to a file, uncomment next line\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1507
++msgid "# generated on %s by %s\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:65
++msgid "%CPU"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:66
++msgid "%MEM"
++msgstr "%MEM"
++
++#: ../virt-top/virt_top.ml:1158
++msgid ""
++"%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
++"O:%d X:%d"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:105
++msgid "%s: display should be %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:83
++msgid "%s: sort order should be: %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:207
++msgid "%s: unknown parameter"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:238
++msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:144
++msgid "-d: cannot set a negative delay"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:170
++msgid "Batch mode"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:72
++msgid "Block read reqs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:73
++msgid "Block write reqs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1165
++msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1335
++msgid "Change delay from %.1f to: "
++msgstr ""
++
++#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
++msgid "Connect to URI (default: Xen)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1580
++msgid "Connect: %s; Hostname: %s"
++msgstr "Konektatu: %s; Ostalari-izena: %s"
++
++#: ../virt-top/virt_top.ml:1618
++msgid "DISPLAY MODES"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1342
++msgid "Delay must be > 0"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:184
++msgid "Delay time interval (seconds)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1573
++msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:178
++msgid "Disable CPU stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:180
++msgid "Disable block device stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:182
++msgid "Disable net stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:204
++msgid "Display version number and exit"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:194
++msgid "Do not read init file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:68
++msgid "Domain ID"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:69
++msgid "Domain name"
++msgstr "Domeinu-izena"
++
++#: ../virt-top/virt_top.ml:1632
++msgid "Domains display"
++msgstr ""
++
++#. ../virt-top/virt_top.ml:1544
++#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++msgid "Error"
++msgstr "Errorea"
++
++#: ../virt-top/virt_top.ml:188
++msgid "Exit at given time"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1602
++msgid "Help"
++msgstr "Laguntza"
++
++#: ../virt-top/virt_top.ml:190
++msgid "Historical CPU delay"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:176
++msgid "Log statistics to CSV file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1585
++msgid "MAIN KEYS"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1639
++msgid "More help in virt-top(1) man page. Press any key to return."
++msgstr ""
++
++#: ../virt-top/virt_top.ml:263
++msgid ""
++"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
++"root"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:70
++msgid "Net RX bytes"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:71
++msgid "Net TX bytes"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1348
++msgid "Not a valid number"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:196
++msgid "Number of iterations to run"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "Off"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "On"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1600
++msgid "Quit"
++msgstr "Irten"
++
++#: ../virt-top/virt_top.ml:202
++msgid "Run from a script (no user interface)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1606
++msgid "SORTING"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:200
++msgid "Secure (\\\"kiosk\\\") mode"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1615
++msgid "Select sort field"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:186
++msgid "Send debug messages to file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:192
++msgid "Set name of init file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:198
++msgid "Set sort order (%s)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1356
++msgid "Set sort order for main display"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1601
++msgid "Set update interval"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1611
++msgid "Sort by %CPU"
++msgstr "Ordenatu %CPUren arabera"
++
++#: ../virt-top/virt_top.ml:1612
++msgid "Sort by %MEM"
++msgstr "Ordenatu %MEMen arabera"
++
++#: ../virt-top/virt_top.ml:1614
++msgid "Sort by ID"
++msgstr "Ordenatu IDaren arabera"
++
++#: ../virt-top/virt_top.ml:1613
++msgid "Sort by TIME"
++msgstr "Ordenatu denboraren arabera"
++
++#: ../virt-top/virt_top.ml:168
++msgid "Start by displaying block devices"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:166
++msgid "Start by displaying network interfaces"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:164
++msgid "Start by displaying pCPUs (default: tasks)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:67
++msgid "TIME (CPU time)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1635
++msgid "Toggle block devices"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1634
++msgid "Toggle network interfaces"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1633
++msgid "Toggle physical CPUs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1357
++msgid "Type key or use up and down cursor keys."
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1644
++msgid "Unknown command - try 'h' for help"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1599
++msgid "Update display"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1539
++msgid "Wrote settings to %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1581
++msgid "default"
++msgstr "lehenetsia"
++
++#: ../virt-top/virt_top_xml.ml:46
++msgid "get_xml_desc didn't return <domain/>"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1561
++msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:208
++msgid ""
++"virt-top : a 'top'-like utility for virtualization\n"
++"\n"
++"SUMMARY\n"
++" virt-top [-options]\n"
++"\n"
++"OPTIONS"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:42
++msgid "virt-top was compiled without support for CSV files"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:53
++msgid "virt-top was compiled without support for dates and times"
++msgstr ""
+diff --git a/po/fr.po b/po/fr.po
+index faba76c..fc5a41d 100644
+--- a/po/fr.po
++++ b/po/fr.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-26 17:01+0000\n"
++"PO-Revision-Date: 2011-03-26 01:01-0400\n"
+ "Last-Translator: jfenal <jfenal_at_gmail.com>\n"
+ "Language-Team: French <trans-fr_at_lists.fedoraproject.org>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: fr\n"
+ "Plural-Forms: nplurals=2; plural=(n > 1)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/gu.po b/po/gu.po
+index 1c2e78a..1e17407 100644
+--- a/po/gu.po
++++ b/po/gu.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: sweta <swkothar_at_redhat.com>\n"
+ "Language-Team: Gujarati <trans-gu_at_lists.fedoraproject.org>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: gu\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/hu.po b/po/hu.po
+new file mode 100644
+index 0000000..64552d7
+--- /dev/null
++++ b/po/hu.po
+_at_@ -0,0 +1,356 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
++# Szabo Attila <atekka_at_gmail.com>, 2013
++# Zoltan Hoppár <zoltanh721_at_fedoraproject.org>, 2012
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2009-10-06 14:58+0000\n"
++"PO-Revision-Date: 2013-11-20 06:00-0500\n"
++"Last-Translator: Szabo Attila <atekka_at_gmail.com>\n"
++"Language-Team: Hungarian (http://www.transifex.com/projects/p/virttop/language/hu/)\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Language: hu\n"
++"Plural-Forms: nplurals=2; plural=(n != 1);\n"
++"X-Generator: Zanata 3.5.1\n"
++
++#: ../virt-top/virt_top.ml:1506
++msgid "# %s virt-top configuration file\\n"
++msgstr "# %s virt-top konfigurációs fájl \\n"
++
++#: ../virt-top/virt_top.ml:1524
++msgid "# Enable CSV output to the named file\\n"
++msgstr "# CSV kimenet engedélyezése a megnevezett fájlhoz\\n"
++
++#: ../virt-top/virt_top.ml:1527
++msgid "# To protect this file from being overwritten, uncomment next line\\n"
++msgstr ""
++"# Hogy megvédd ezt a fájlt a fölülírástól, vedd ki a kommentet a következő "
++"sorból\\n"
++
++#: ../virt-top/virt_top.ml:1521
++msgid "# To send debug and error messages to a file, uncomment next line\\n"
++msgstr ""
++"# Ahhoz hogy hibakeresési és hiba üzeneteket küldd a fájlba, vedd ki a "
++"kommentet a következő sorból \\n"
++
++#: ../virt-top/virt_top.ml:1507
++msgid "# generated on %s by %s\\n"
++msgstr "# %s lett létrehozva %s által\\n"
++
++#: ../virt-top/virt_top.ml:65
++msgid "%CPU"
++msgstr "%CPU"
++
++#: ../virt-top/virt_top.ml:66
++msgid "%MEM"
++msgstr "%MEM"
++
++#: ../virt-top/virt_top.ml:1158
++msgid ""
++"%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
++"O:%d X:%d"
++msgstr ""
++"%d domének, %d aktív, %d fut, %d alszik, %d felfüggesztve, %d inaktív D:%d "
++"O:%d X:%d"
++
++#: ../virt-top/virt_top.ml:105
++msgid "%s: display should be %s"
++msgstr "%s: a képernyőnek %snek kellene lennie"
++
++#: ../virt-top/virt_top.ml:83
++msgid "%s: sort order should be: %s"
++msgstr "%s: a rövid sorrendnek %snek kellene lennie"
++
++#: ../virt-top/virt_top.ml:207
++msgid "%s: unknown parameter"
++msgstr "%s: ismeretlen paraméter"
++
++#: ../virt-top/virt_top.ml:238
++msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++msgstr "%s:%d: konfigurációs tétek ``%s'' ignorált\\n%!"
++
++#: ../virt-top/virt_top.ml:144
++msgid "-d: cannot set a negative delay"
++msgstr "-d: negatív késleltetést nem lehet megadni"
++
++#: ../virt-top/virt_top.ml:170
++msgid "Batch mode"
++msgstr "Kötegelt mód"
++
++#: ../virt-top/virt_top.ml:72
++msgid "Block read reqs"
++msgstr "Blokk olvasási kérések"
++
++#: ../virt-top/virt_top.ml:73
++msgid "Block write reqs"
++msgstr "Blokk írási kérések"
++
++#: ../virt-top/virt_top.ml:1165
++msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
++msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB a vendégek által)"
++
++#: ../virt-top/virt_top.ml:1335
++msgid "Change delay from %.1f to: "
++msgstr "A késleltetés megváltoztatása %.1f-ről:"
++
++#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
++msgid "Connect to URI (default: Xen)"
++msgstr "Kapcsolódás az URIhoz (alap:XEN)"
++
++#: ../virt-top/virt_top.ml:1580
++msgid "Connect: %s; Hostname: %s"
++msgstr "Kapcsolódás: %s; Hosztnév: %s"
++
++#: ../virt-top/virt_top.ml:1618
++msgid "DISPLAY MODES"
++msgstr "Megjelenítési módok"
++
++#: ../virt-top/virt_top.ml:1342
++msgid "Delay must be > 0"
++msgstr "A késleltetés legyen >0"
++
++#: ../virt-top/virt_top.ml:184
++msgid "Delay time interval (seconds)"
++msgstr "Késleltetés intervallumának ideje( másodpercek)"
++
++#: ../virt-top/virt_top.ml:1573
++msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
++msgstr "Késleltetés: %.1f másodperc; Köteg: %s; Biztosított: %s; Rövid: %s"
++
++#: ../virt-top/virt_top.ml:178
++msgid "Disable CPU stats in CSV"
++msgstr "Processzor statisztika felfüggesztése CSVben"
++
++#: ../virt-top/virt_top.ml:180
++msgid "Disable block device stats in CSV"
++msgstr "Blokk eszköz statisztika felfüggesztése CSVben"
++
++#: ../virt-top/virt_top.ml:182
++msgid "Disable net stats in CSV"
++msgstr "Hálózat statisztika felfüggesztése CSVben"
++
++#: ../virt-top/virt_top.ml:204
++msgid "Display version number and exit"
++msgstr "Verziószám megjelenítése és kilépés"
++
++#: ../virt-top/virt_top.ml:194
++msgid "Do not read init file"
++msgstr "Init fájl ne kerüljön olvasásra"
++
++#: ../virt-top/virt_top.ml:68
++msgid "Domain ID"
++msgstr "Domén azonosító"
++
++#: ../virt-top/virt_top.ml:69
++msgid "Domain name"
++msgstr "Domén név"
++
++#: ../virt-top/virt_top.ml:1632
++msgid "Domains display"
++msgstr "Domének megjelenítése"
++
++#. ../virt-top/virt_top.ml:1544
++#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++msgid "Error"
++msgstr "Hiba"
++
++#: ../virt-top/virt_top.ml:188
++msgid "Exit at given time"
++msgstr "Kilépés a megadott időben"
++
++#: ../virt-top/virt_top.ml:1602
++msgid "Help"
++msgstr "Segitség"
++
++#: ../virt-top/virt_top.ml:190
++msgid "Historical CPU delay"
++msgstr "Történeti processzor késleltetés"
++
++#: ../virt-top/virt_top.ml:176
++msgid "Log statistics to CSV file"
++msgstr "Log statisztika egy CSV fájlba"
++
++#: ../virt-top/virt_top.ml:1585
++msgid "MAIN KEYS"
++msgstr "FŐBB GOMBOK"
++
++#: ../virt-top/virt_top.ml:1639
++msgid "More help in virt-top(1) man page. Press any key to return."
++msgstr ""
++"További segitség a virt-top(1) man oldalon. Nyomjon meg bármilyen billentyűt"
++" a visszatéréshez."
++
++#: ../virt-top/virt_top.ml:263
++msgid ""
++"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
++"root"
++msgstr ""
++"TM: ha monitorozni akarja a helyi Xen hypervisort , akkor általában root-nak"
++" kell lennie"
++
++#: ../virt-top/virt_top.ml:70
++msgid "Net RX bytes"
++msgstr "Következő RX bájtok"
++
++#: ../virt-top/virt_top.ml:71
++msgid "Net TX bytes"
++msgstr "Következő TX bájtok"
++
++#: ../virt-top/virt_top.ml:1348
++msgid "Not a valid number"
++msgstr "Nem egy érvényes szám"
++
++#: ../virt-top/virt_top.ml:196
++msgid "Number of iterations to run"
++msgstr "A futtatni való ismétlések száma"
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "Off"
++msgstr "Ki"
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "On"
++msgstr "Be"
++
++#: ../virt-top/virt_top.ml:1600
++msgid "Quit"
++msgstr "Kilépés"
++
++#: ../virt-top/virt_top.ml:202
++msgid "Run from a script (no user interface)"
++msgstr "Működés szkriptről (nincs felhasználói felület)"
++
++#: ../virt-top/virt_top.ml:1606
++msgid "SORTING"
++msgstr "RENDEZÉS"
++
++#: ../virt-top/virt_top.ml:200
++msgid "Secure (\\\"kiosk\\\") mode"
++msgstr "Biztonsági (\\\"kiosk\\\") mód"
++
++#: ../virt-top/virt_top.ml:1615
++msgid "Select sort field"
++msgstr "Válassza ki a rövid mezőt"
++
++#: ../virt-top/virt_top.ml:186
++msgid "Send debug messages to file"
++msgstr "Hibakeresési üzenetek küldése fájlba"
++
++#: ../virt-top/virt_top.ml:192
++msgid "Set name of init file"
++msgstr "Init fájl nevének beállítása"
++
++#: ../virt-top/virt_top.ml:198
++msgid "Set sort order (%s)"
++msgstr "válogatás sorrendjének beállítása (%s)"
++
++#: ../virt-top/virt_top.ml:1356
++msgid "Set sort order for main display"
++msgstr "válogatás sorrendjének beállítása a fő képernyőhöz"
++
++#: ../virt-top/virt_top.ml:1601
++msgid "Set update interval"
++msgstr "frissítés intervallumának beállítása"
++
++#: ../virt-top/virt_top.ml:1611
++msgid "Sort by %CPU"
++msgstr "Rendezés %CPU által"
++
++#: ../virt-top/virt_top.ml:1612
++msgid "Sort by %MEM"
++msgstr "Rendezés %MEM által"
++
++#: ../virt-top/virt_top.ml:1614
++msgid "Sort by ID"
++msgstr "Rendezés azonosító alapján"
++
++#: ../virt-top/virt_top.ml:1613
++msgid "Sort by TIME"
++msgstr "Rendezés IDŐ alapján"
++
++#: ../virt-top/virt_top.ml:168
++msgid "Start by displaying block devices"
++msgstr "A blokk eszközök megjelenítésével kezdődjön"
++
++#: ../virt-top/virt_top.ml:166
++msgid "Start by displaying network interfaces"
++msgstr "A hálózati interfészek megjelenítésével kezdődjön"
++
++#: ../virt-top/virt_top.ml:164
++msgid "Start by displaying pCPUs (default: tasks)"
++msgstr "pCPUk megjelenítésével kezdődjön (alapból: feladatok)"
++
++#: ../virt-top/virt_top.ml:67
++msgid "TIME (CPU time)"
++msgstr "IDŐ ( processzor idő)"
++
++#: ../virt-top/virt_top.ml:1635
++msgid "Toggle block devices"
++msgstr "Blokk eszközök váltása"
++
++#: ../virt-top/virt_top.ml:1634
++msgid "Toggle network interfaces"
++msgstr "Hálózati interfészek váltása"
++
++#: ../virt-top/virt_top.ml:1633
++msgid "Toggle physical CPUs"
++msgstr "Fizikai processzorok váltása"
++
++#: ../virt-top/virt_top.ml:1357
++msgid "Type key or use up and down cursor keys."
++msgstr "Üss le egy billentyűt vagy használd a fel és le kurzor billentyűket."
++
++#: ../virt-top/virt_top.ml:1644
++msgid "Unknown command - try 'h' for help"
++msgstr "Ismeretlen parancs - próbáld meg a h a segitségért"
++
++#: ../virt-top/virt_top.ml:1599
++msgid "Update display"
++msgstr "képernyő frissítése"
++
++#: ../virt-top/virt_top.ml:1539
++msgid "Wrote settings to %s"
++msgstr "beállítások kiírása a %s-be"
++
++#: ../virt-top/virt_top.ml:1581
++msgid "default"
++msgstr "alap"
++
++#: ../virt-top/virt_top_xml.ml:46
++msgid "get_xml_desc didn't return <domain/>"
++msgstr "get_xml_desc nem adta vissza a <domain/>"
++
++#: ../virt-top/virt_top.ml:1561
++msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
++msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d Red Hat által"
++
++#: ../virt-top/virt_top.ml:208
++msgid ""
++"virt-top : a 'top'-like utility for virtualization\n"
++"\n"
++"SUMMARY\n"
++" virt-top [-options]\n"
++"\n"
++"OPTIONS"
++msgstr ""
++"virt-top : egy 'top'-szerű eszköz a virtualizációhoz\n"
++"\n"
++"SUMMARY\n"
++" virt-top [-options]\n"
++"\n"
++"OPTIONS"
++
++#: ../virt-top/virt_top.ml:42
++msgid "virt-top was compiled without support for CSV files"
++msgstr "A virt-top CSV fájlok támogatása nélkül lett fordítva"
++
++#: ../virt-top/virt_top.ml:53
++msgid "virt-top was compiled without support for dates and times"
++msgstr "A virt-top dátumok és idők nélküli támogatással lett fordítva"
+diff --git a/po/id.po b/po/id.po
+new file mode 100644
+index 0000000..91eeb7a
+--- /dev/null
++++ b/po/id.po
+_at_@ -0,0 +1,345 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
++# Andika Triwidada <andika_at_gmail.com>, 2014
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2009-10-06 14:58+0000\n"
++"PO-Revision-Date: 2014-09-07 03:27-0400\n"
++"Last-Translator: Andika Triwidada <andika_at_gmail.com>\n"
++"Language-Team: Indonesian (http://www.transifex.com/projects/p/virttop/language/id/)\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Language: id\n"
++"Plural-Forms: nplurals=1; plural=0;\n"
++"X-Generator: Zanata 3.5.1\n"
++
++#: ../virt-top/virt_top.ml:1506
++msgid "# %s virt-top configuration file\\n"
++msgstr "# berkas konfigurasi virt-top %s\\n"
++
++#: ../virt-top/virt_top.ml:1524
++msgid "# Enable CSV output to the named file\\n"
++msgstr "# Fungsikan keluaran CSV ke berkas yang dinamai\\n"
++
++#: ../virt-top/virt_top.ml:1527
++msgid "# To protect this file from being overwritten, uncomment next line\\n"
++msgstr ""
++"# Untuk melindungi berkas ini dari tertimpa, ubah baris berikutnya menjadi "
++"bukan komentar\\n"
++
++#: ../virt-top/virt_top.ml:1521
++msgid "# To send debug and error messages to a file, uncomment next line\\n"
++msgstr ""
++"# Untuk mengirim pesan awakutu dan galat ke sebuah berkas, ubah baris "
++"berikutnya menjadi bukan komentar\\n"
++
++#: ../virt-top/virt_top.ml:1507
++msgid "# generated on %s by %s\\n"
++msgstr "# dijangkitkan pada %s oleh %s\\n"
++
++#: ../virt-top/virt_top.ml:65
++msgid "%CPU"
++msgstr "%CPU"
++
++#: ../virt-top/virt_top.ml:66
++msgid "%MEM"
++msgstr "%MEM"
++
++#: ../virt-top/virt_top.ml:1158
++msgid ""
++"%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
++"O:%d X:%d"
++msgstr ""
++"%d domain, %d aktif, %d berjalan, %d tidur, %d diistirahatkan, %d tak aktif "
++"D:%d O:%d X:%d"
++
++#: ../virt-top/virt_top.ml:105
++msgid "%s: display should be %s"
++msgstr "%s: tampilan mestinya %s"
++
++#: ../virt-top/virt_top.ml:83
++msgid "%s: sort order should be: %s"
++msgstr "%s: urutan mestinya: %s"
++
++#: ../virt-top/virt_top.ml:207
++msgid "%s: unknown parameter"
++msgstr "%s: parameter tak dikenal"
++
++#: ../virt-top/virt_top.ml:238
++msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++msgstr "%s:%d: butir konfigurasi ``%s'' diabaikan\\n%!"
++
++#: ../virt-top/virt_top.ml:144
++msgid "-d: cannot set a negative delay"
++msgstr "-d: tak dapat menata tundaan negatif"
++
++#: ../virt-top/virt_top.ml:170
++msgid "Batch mode"
++msgstr "Mode batch"
++
++#: ../virt-top/virt_top.ml:72
++msgid "Block read reqs"
++msgstr "Permintaan baca blok"
++
++#: ../virt-top/virt_top.ml:73
++msgid "Block write reqs"
++msgstr "Permintaan tulis blok"
++
++#: ../virt-top/virt_top.ml:1165
++msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1335
++msgid "Change delay from %.1f to: "
++msgstr ""
++
++#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
++msgid "Connect to URI (default: Xen)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1580
++msgid "Connect: %s; Hostname: %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1618
++msgid "DISPLAY MODES"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1342
++msgid "Delay must be > 0"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:184
++msgid "Delay time interval (seconds)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1573
++msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:178
++msgid "Disable CPU stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:180
++msgid "Disable block device stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:182
++msgid "Disable net stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:204
++msgid "Display version number and exit"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:194
++msgid "Do not read init file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:68
++msgid "Domain ID"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:69
++msgid "Domain name"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1632
++msgid "Domains display"
++msgstr ""
++
++#. ../virt-top/virt_top.ml:1544
++#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++msgid "Error"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:188
++msgid "Exit at given time"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1602
++msgid "Help"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:190
++msgid "Historical CPU delay"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:176
++msgid "Log statistics to CSV file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1585
++msgid "MAIN KEYS"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1639
++msgid "More help in virt-top(1) man page. Press any key to return."
++msgstr ""
++
++#: ../virt-top/virt_top.ml:263
++msgid ""
++"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
++"root"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:70
++msgid "Net RX bytes"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:71
++msgid "Net TX bytes"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1348
++msgid "Not a valid number"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:196
++msgid "Number of iterations to run"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "Off"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "On"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1600
++msgid "Quit"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:202
++msgid "Run from a script (no user interface)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1606
++msgid "SORTING"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:200
++msgid "Secure (\\\"kiosk\\\") mode"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1615
++msgid "Select sort field"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:186
++msgid "Send debug messages to file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:192
++msgid "Set name of init file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:198
++msgid "Set sort order (%s)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1356
++msgid "Set sort order for main display"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1601
++msgid "Set update interval"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1611
++msgid "Sort by %CPU"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1612
++msgid "Sort by %MEM"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1614
++msgid "Sort by ID"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1613
++msgid "Sort by TIME"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:168
++msgid "Start by displaying block devices"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:166
++msgid "Start by displaying network interfaces"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:164
++msgid "Start by displaying pCPUs (default: tasks)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:67
++msgid "TIME (CPU time)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1635
++msgid "Toggle block devices"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1634
++msgid "Toggle network interfaces"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1633
++msgid "Toggle physical CPUs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1357
++msgid "Type key or use up and down cursor keys."
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1644
++msgid "Unknown command - try 'h' for help"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1599
++msgid "Update display"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1539
++msgid "Wrote settings to %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1581
++msgid "default"
++msgstr ""
++
++#: ../virt-top/virt_top_xml.ml:46
++msgid "get_xml_desc didn't return <domain/>"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1561
++msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:208
++msgid ""
++"virt-top : a 'top'-like utility for virtualization\n"
++"\n"
++"SUMMARY\n"
++" virt-top [-options]\n"
++"\n"
++"OPTIONS"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:42
++msgid "virt-top was compiled without support for CSV files"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:53
++msgid "virt-top was compiled without support for dates and times"
++msgstr ""
+diff --git a/po/it.po b/po/it.po
+index e393c27..65036f4 100644
+--- a/po/it.po
++++ b/po/it.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: rjones <rjones_at_redhat.com>\n"
+ "Language-Team: Italian <trans-it_at_lists.fedoraproject.org>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: it\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/ja.po b/po/ja.po
+index cd49c18..3115905 100644
+--- a/po/ja.po
++++ b/po/ja.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: htaira <htaira_at_redhat.com>\n"
+ "Language-Team: Japanese <None>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: ja\n"
+ "Plural-Forms: nplurals=1; plural=0\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/ka.po b/po/ka.po
+new file mode 100644
+index 0000000..5551327
+--- /dev/null
++++ b/po/ka.po
+_at_@ -0,0 +1,339 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
++# George Machitidze <giomac_at_gmail.com>, 2013
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2009-10-06 14:58+0000\n"
++"PO-Revision-Date: 2013-11-26 03:54-0500\n"
++"Last-Translator: George Machitidze <giomac_at_gmail.com>\n"
++"Language-Team: Georgian (http://www.transifex.com/projects/p/virttop/language/ka/)\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Language: ka\n"
++"Plural-Forms: nplurals=1; plural=0;\n"
++"X-Generator: Zanata 3.5.1\n"
++
++#: ../virt-top/virt_top.ml:1506
++msgid "# %s virt-top configuration file\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1524
++msgid "# Enable CSV output to the named file\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1527
++msgid "# To protect this file from being overwritten, uncomment next line\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1521
++msgid "# To send debug and error messages to a file, uncomment next line\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1507
++msgid "# generated on %s by %s\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:65
++msgid "%CPU"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:66
++msgid "%MEM"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1158
++msgid ""
++"%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
++"O:%d X:%d"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:105
++msgid "%s: display should be %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:83
++msgid "%s: sort order should be: %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:207
++msgid "%s: unknown parameter"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:238
++msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:144
++msgid "-d: cannot set a negative delay"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:170
++msgid "Batch mode"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:72
++msgid "Block read reqs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:73
++msgid "Block write reqs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1165
++msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1335
++msgid "Change delay from %.1f to: "
++msgstr ""
++
++#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
++msgid "Connect to URI (default: Xen)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1580
++msgid "Connect: %s; Hostname: %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1618
++msgid "DISPLAY MODES"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1342
++msgid "Delay must be > 0"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:184
++msgid "Delay time interval (seconds)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1573
++msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:178
++msgid "Disable CPU stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:180
++msgid "Disable block device stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:182
++msgid "Disable net stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:204
++msgid "Display version number and exit"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:194
++msgid "Do not read init file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:68
++msgid "Domain ID"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:69
++msgid "Domain name"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1632
++msgid "Domains display"
++msgstr ""
++
++#. ../virt-top/virt_top.ml:1544
++#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++msgid "Error"
++msgstr "შეცდომა"
++
++#: ../virt-top/virt_top.ml:188
++msgid "Exit at given time"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1602
++msgid "Help"
++msgstr "დახმარება"
++
++#: ../virt-top/virt_top.ml:190
++msgid "Historical CPU delay"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:176
++msgid "Log statistics to CSV file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1585
++msgid "MAIN KEYS"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1639
++msgid "More help in virt-top(1) man page. Press any key to return."
++msgstr ""
++
++#: ../virt-top/virt_top.ml:263
++msgid ""
++"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
++"root"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:70
++msgid "Net RX bytes"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:71
++msgid "Net TX bytes"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1348
++msgid "Not a valid number"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:196
++msgid "Number of iterations to run"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "Off"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "On"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1600
++msgid "Quit"
++msgstr "გასვლა"
++
++#: ../virt-top/virt_top.ml:202
++msgid "Run from a script (no user interface)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1606
++msgid "SORTING"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:200
++msgid "Secure (\\\"kiosk\\\") mode"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1615
++msgid "Select sort field"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:186
++msgid "Send debug messages to file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:192
++msgid "Set name of init file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:198
++msgid "Set sort order (%s)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1356
++msgid "Set sort order for main display"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1601
++msgid "Set update interval"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1611
++msgid "Sort by %CPU"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1612
++msgid "Sort by %MEM"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1614
++msgid "Sort by ID"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1613
++msgid "Sort by TIME"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:168
++msgid "Start by displaying block devices"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:166
++msgid "Start by displaying network interfaces"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:164
++msgid "Start by displaying pCPUs (default: tasks)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:67
++msgid "TIME (CPU time)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1635
++msgid "Toggle block devices"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1634
++msgid "Toggle network interfaces"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1633
++msgid "Toggle physical CPUs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1357
++msgid "Type key or use up and down cursor keys."
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1644
++msgid "Unknown command - try 'h' for help"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1599
++msgid "Update display"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1539
++msgid "Wrote settings to %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1581
++msgid "default"
++msgstr "ნაგულისხმები"
++
++#: ../virt-top/virt_top_xml.ml:46
++msgid "get_xml_desc didn't return <domain/>"
++msgstr "get_xml_desc-მა არ დააბრუნა<domain/>"
++
++#: ../virt-top/virt_top.ml:1561
++msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:208
++msgid ""
++"virt-top : a 'top'-like utility for virtualization\n"
++"\n"
++"SUMMARY\n"
++" virt-top [-options]\n"
++"\n"
++"OPTIONS"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:42
++msgid "virt-top was compiled without support for CSV files"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:53
++msgid "virt-top was compiled without support for dates and times"
++msgstr ""
+diff --git a/po/kn.po b/po/kn.po
+index 1df03e4..70491c6 100644
+--- a/po/kn.po
++++ b/po/kn.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-23 12:05+0000\n"
++"PO-Revision-Date: 2011-03-22 08:05-0400\n"
+ "Last-Translator: shanky <prasad.mvs_at_gmail.com>\n"
+ "Language-Team: Kannada <None>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: kn\n"
+ "Plural-Forms: nplurals=1; plural=0\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/ml.po b/po/ml.po
+index 9796d43..d06efa9 100644
+--- a/po/ml.po
++++ b/po/ml.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: rjones <rjones_at_redhat.com>\n"
+ "Language-Team: Malayalam <discuss_at_lists.smc.org.in>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: ml\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/mr.po b/po/mr.po
+index 5dc8a9e..3adfac8 100644
+--- a/po/mr.po
++++ b/po/mr.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: sandeeps <sshedmak_at_redhat.com>\n"
+ "Language-Team: Marathi <None>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: mr\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/nl.po b/po/nl.po
+index ee16b7c..67aa032 100644
+--- a/po/nl.po
++++ b/po/nl.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-29 18:08+0000\n"
++"PO-Revision-Date: 2011-03-29 02:08-0400\n"
+ "Last-Translator: warrink <geert.warrink_at_onsnet.nu>\n"
+ "Language-Team: Dutch <>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: nl\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/or.po b/po/or.po
+index e10aa5a..eefe587 100644
+--- a/po/or.po
++++ b/po/or.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: rjones <rjones_at_redhat.com>\n"
+ "Language-Team: Oriya <None>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: or\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/pa.po b/po/pa.po
+new file mode 100644
+index 0000000..2237323
+--- /dev/null
++++ b/po/pa.po
+_at_@ -0,0 +1,339 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
++# A S Alam <apreet.alam_at_gmail.com>, 2012
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2009-10-06 14:58+0000\n"
++"PO-Revision-Date: 2013-11-20 06:00-0500\n"
++"Last-Translator: A S Alam <apreet.alam_at_gmail.com>\n"
++"Language-Team: Panjabi (Punjabi) (http://www.transifex.com/projects/p/virttop/language/pa/)\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Language: pa\n"
++"Plural-Forms: nplurals=2; plural=(n != 1);\n"
++"X-Generator: Zanata 3.5.1\n"
++
++#: ../virt-top/virt_top.ml:1506
++msgid "# %s virt-top configuration file\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1524
++msgid "# Enable CSV output to the named file\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1527
++msgid "# To protect this file from being overwritten, uncomment next line\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1521
++msgid "# To send debug and error messages to a file, uncomment next line\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1507
++msgid "# generated on %s by %s\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:65
++msgid "%CPU"
++msgstr "%CPU"
++
++#: ../virt-top/virt_top.ml:66
++msgid "%MEM"
++msgstr "%MEM"
++
++#: ../virt-top/virt_top.ml:1158
++msgid ""
++"%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
++"O:%d X:%d"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:105
++msgid "%s: display should be %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:83
++msgid "%s: sort order should be: %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:207
++msgid "%s: unknown parameter"
++msgstr "%s: ਅਣਜਾਣ ਪੈਰਾਮੀਟਰ"
++
++#: ../virt-top/virt_top.ml:238
++msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:144
++msgid "-d: cannot set a negative delay"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:170
++msgid "Batch mode"
++msgstr "ਬੈਂਚ ਮੋਡ"
++
++#: ../virt-top/virt_top.ml:72
++msgid "Block read reqs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:73
++msgid "Block write reqs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1165
++msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1335
++msgid "Change delay from %.1f to: "
++msgstr ""
++
++#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
++msgid "Connect to URI (default: Xen)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1580
++msgid "Connect: %s; Hostname: %s"
++msgstr "ਕੁਨੈਕਟ: %s; ਹੋਸਟ-ਨਾਂ: %s"
++
++#: ../virt-top/virt_top.ml:1618
++msgid "DISPLAY MODES"
++msgstr "ਡਿਸਪਲੇਅ ਮੋਡ"
++
++#: ../virt-top/virt_top.ml:1342
++msgid "Delay must be > 0"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:184
++msgid "Delay time interval (seconds)"
++msgstr "ਦੇਰੀ ਸਮਾਂ ਅੰਤਰਾਲ (ਸਕਿੰਟ)"
++
++#: ../virt-top/virt_top.ml:1573
++msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
++msgstr "ਦੇਰੀ: %.1f ਸਕਿੰਟ; ਬੈਂਚ: %s; ਸਕਿਉਰ: %s; ਲੜੀਬੱਧ: %s"
++
++#: ../virt-top/virt_top.ml:178
++msgid "Disable CPU stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:180
++msgid "Disable block device stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:182
++msgid "Disable net stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:204
++msgid "Display version number and exit"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:194
++msgid "Do not read init file"
++msgstr "init ਫਾਇਲ ਨਾ ਪੜ੍ਹੋ"
++
++#: ../virt-top/virt_top.ml:68
++msgid "Domain ID"
++msgstr "ਡੋਮੇਨ ID"
++
++#: ../virt-top/virt_top.ml:69
++msgid "Domain name"
++msgstr "ਡੋਮੇਨ ਨਾਂ"
++
++#: ../virt-top/virt_top.ml:1632
++msgid "Domains display"
++msgstr "ਡੋਮੇਨ ਡਿਸਪਲੇਅ"
++
++#. ../virt-top/virt_top.ml:1544
++#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++msgid "Error"
++msgstr "ਗਲਤੀ"
++
++#: ../virt-top/virt_top.ml:188
++msgid "Exit at given time"
++msgstr "ਦਿੱਤੇ ਸਮੇਂ ਉੱਤੇ ਬੰਦ"
++
++#: ../virt-top/virt_top.ml:1602
++msgid "Help"
++msgstr "ਮੱਦਦ"
++
++#: ../virt-top/virt_top.ml:190
++msgid "Historical CPU delay"
++msgstr "ਅਤੀਤ CPU ਦੇਰੀ"
++
++#: ../virt-top/virt_top.ml:176
++msgid "Log statistics to CSV file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1585
++msgid "MAIN KEYS"
++msgstr "ਮੁੱਖ ਕੁੰਜੀਆਂ"
++
++#: ../virt-top/virt_top.ml:1639
++msgid "More help in virt-top(1) man page. Press any key to return."
++msgstr ""
++
++#: ../virt-top/virt_top.ml:263
++msgid ""
++"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
++"root"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:70
++msgid "Net RX bytes"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:71
++msgid "Net TX bytes"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1348
++msgid "Not a valid number"
++msgstr "ਠੀਕ ਨੰਬਰ ਨਹੀਂ ਹੈ"
++
++#: ../virt-top/virt_top.ml:196
++msgid "Number of iterations to run"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "Off"
++msgstr "ਬੰਦ"
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "On"
++msgstr "ਚਾਲੂ"
++
++#: ../virt-top/virt_top.ml:1600
++msgid "Quit"
++msgstr "ਬਾਹਰ"
++
++#: ../virt-top/virt_top.ml:202
++msgid "Run from a script (no user interface)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1606
++msgid "SORTING"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:200
++msgid "Secure (\\\"kiosk\\\") mode"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1615
++msgid "Select sort field"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:186
++msgid "Send debug messages to file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:192
++msgid "Set name of init file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:198
++msgid "Set sort order (%s)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1356
++msgid "Set sort order for main display"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1601
++msgid "Set update interval"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1611
++msgid "Sort by %CPU"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1612
++msgid "Sort by %MEM"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1614
++msgid "Sort by ID"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1613
++msgid "Sort by TIME"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:168
++msgid "Start by displaying block devices"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:166
++msgid "Start by displaying network interfaces"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:164
++msgid "Start by displaying pCPUs (default: tasks)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:67
++msgid "TIME (CPU time)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1635
++msgid "Toggle block devices"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1634
++msgid "Toggle network interfaces"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1633
++msgid "Toggle physical CPUs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1357
++msgid "Type key or use up and down cursor keys."
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1644
++msgid "Unknown command - try 'h' for help"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1599
++msgid "Update display"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1539
++msgid "Wrote settings to %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1581
++msgid "default"
++msgstr "ਡਿਫਾਲਟ"
++
++#: ../virt-top/virt_top_xml.ml:46
++msgid "get_xml_desc didn't return <domain/>"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1561
++msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
++msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d Red Hat ਵਲੋਂ"
++
++#: ../virt-top/virt_top.ml:208
++msgid ""
++"virt-top : a 'top'-like utility for virtualization\n"
++"\n"
++"SUMMARY\n"
++" virt-top [-options]\n"
++"\n"
++"OPTIONS"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:42
++msgid "virt-top was compiled without support for CSV files"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:53
++msgid "virt-top was compiled without support for dates and times"
++msgstr ""
+diff --git a/po/pl.po b/po/pl.po
+index 79f44aa..161712b 100644
+--- a/po/pl.po
++++ b/po/pl.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: rjones <rjones_at_redhat.com>\n"
+ "Language-Team: Polish <None>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: pl\n"
+ "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/pt.po b/po/pt.po
+index 60fca2f..05d81fd 100644
+--- a/po/pt.po
++++ b/po/pt.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: rjones <rjones_at_redhat.com>\n"
+ "Language-Team: Portuguese <trans-pt_at_lists.fedoraproject.org>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: pt\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/pt_BR.po b/po/pt_BR.po
+index 6fefb3c..2270ed4 100644
+--- a/po/pt_BR.po
++++ b/po/pt_BR.po
+_at_@ -2,20 +2,20 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: Taylon <taylon_at_taylon.eti.br>\n"
+ "Language-Team: Portuguese (Brazilian) <trans-pt_br_at_lists.fedoraproject.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"Language: pt_BR\n"
++"Language: pt-BR\n"
+ "Plural-Forms: nplurals=2; plural=(n > 1)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/ru.po b/po/ru.po
+index 9e09098..ec3deac 100644
+--- a/po/ru.po
++++ b/po/ru.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: rjones <rjones_at_redhat.com>\n"
+ "Language-Team: Russian <trans-ru_at_lists.fedoraproject.org>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: ru\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)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/sr.po b/po/sr.po
+new file mode 100644
+index 0000000..8131374
+--- /dev/null
++++ b/po/sr.po
+_at_@ -0,0 +1,355 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
++# Momcilo Medic <medicmomcilo_at_gmail.com>, 2015
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2009-10-06 14:58+0000\n"
++"PO-Revision-Date: 2015-01-28 01:55-0500\n"
++"Last-Translator: Momcilo Medic <medicmomcilo_at_gmail.com>\n"
++"Language-Team: Serbian (http://www.transifex.com/projects/p/virttop/language/sr/)\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Language: sr\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);\n"
++"X-Generator: Zanata 3.5.1\n"
++
++#: ../virt-top/virt_top.ml:1506
++msgid "# %s virt-top configuration file\\n"
++msgstr "# %s virt-top датотека подешавања\\n"
++
++#: ../virt-top/virt_top.ml:1524
++msgid "# Enable CSV output to the named file\\n"
++msgstr "# Омогући CSV излаз у наведену датотеку\\n"
++
++#: ../virt-top/virt_top.ml:1527
++msgid "# To protect this file from being overwritten, uncomment next line\\n"
++msgstr ""
++"# Да заштитите ову датотеку од поновног уписа, одкоментаришите следећу "
++"линију\\n"
++
++#: ../virt-top/virt_top.ml:1521
++msgid "# To send debug and error messages to a file, uncomment next line\\n"
++msgstr ""
++"# Да пошаљете поруке о отклањању грешака и самим грешкама у датотеку, "
++"одкоментаришите следећу линију\\n"
++
++#: ../virt-top/virt_top.ml:1507
++msgid "# generated on %s by %s\\n"
++msgstr "# створено %s од стране %s\\n"
++
++#: ../virt-top/virt_top.ml:65
++msgid "%CPU"
++msgstr "%CPU"
++
++#: ../virt-top/virt_top.ml:66
++msgid "%MEM"
++msgstr "%MEM"
++
++#: ../virt-top/virt_top.ml:1158
++msgid ""
++"%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
++"O:%d X:%d"
++msgstr ""
++"%d области, %d активних, %d покренутих, %d мирујућих, %d паузираних, %d "
++"неактивних D:%d O:%d X:%d"
++
++#: ../virt-top/virt_top.ml:105
++msgid "%s: display should be %s"
++msgstr "%s: приказ би требао да буде %s"
++
++#: ../virt-top/virt_top.ml:83
++msgid "%s: sort order should be: %s"
++msgstr "%s: начин ређања би требао бити: %s"
++
++#: ../virt-top/virt_top.ml:207
++msgid "%s: unknown parameter"
++msgstr "%s: непознат параметар"
++
++#: ../virt-top/virt_top.ml:238
++msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++msgstr "%s:%d: ставка подешавања ``%s'' занемарена\\n%!"
++
++#: ../virt-top/virt_top.ml:144
++msgid "-d: cannot set a negative delay"
++msgstr "-d: не може се поставити негативна пауза"
++
++#: ../virt-top/virt_top.ml:170
++msgid "Batch mode"
++msgstr "Групни режим"
++
++#: ../virt-top/virt_top.ml:72
++msgid "Block read reqs"
++msgstr "Захтеви блок читања"
++
++#: ../virt-top/virt_top.ml:73
++msgid "Block write reqs"
++msgstr "Захтеви блок уписа"
++
++#: ../virt-top/virt_top.ml:1165
++msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
++msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB од стране гостију)"
++
++#: ../virt-top/virt_top.ml:1335
++msgid "Change delay from %.1f to: "
++msgstr "Променити паузу са %.1f на: "
++
++#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
++msgid "Connect to URI (default: Xen)"
++msgstr "Повежи се на URI (подразумевано: Xen)"
++
++#: ../virt-top/virt_top.ml:1580
++msgid "Connect: %s; Hostname: %s"
++msgstr "Повежи: %s; Hostname: %s"
++
++#: ../virt-top/virt_top.ml:1618
++msgid "DISPLAY MODES"
++msgstr "РЕЖИМИ ПРИКАЗА"
++
++#: ../virt-top/virt_top.ml:1342
++msgid "Delay must be > 0"
++msgstr "Пауза мора бити > 0"
++
++#: ../virt-top/virt_top.ml:184
++msgid "Delay time interval (seconds)"
++msgstr "Интервал паузе (секунде)"
++
++#: ../virt-top/virt_top.ml:1573
++msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
++msgstr "Пауза: %.1f секунди; Група: %s; Сигурност: %s; Ређање: %s"
++
++#: ../virt-top/virt_top.ml:178
++msgid "Disable CPU stats in CSV"
++msgstr "Онемогући CPU статистике у CSV-у"
++
++#: ../virt-top/virt_top.ml:180
++msgid "Disable block device stats in CSV"
++msgstr "Онемогући статистике блок уређаја у CSV-у"
++
++#: ../virt-top/virt_top.ml:182
++msgid "Disable net stats in CSV"
++msgstr "Онемогући мрежне статистике у CSV-у"
++
++#: ../virt-top/virt_top.ml:204
++msgid "Display version number and exit"
++msgstr "Прикажи број верзије и изађи"
++
++#: ../virt-top/virt_top.ml:194
++msgid "Do not read init file"
++msgstr "Немој читати инициализациону датотеку"
++
++#: ../virt-top/virt_top.ml:68
++msgid "Domain ID"
++msgstr "ID области"
++
++#: ../virt-top/virt_top.ml:69
++msgid "Domain name"
++msgstr "Име области"
++
++#: ../virt-top/virt_top.ml:1632
++msgid "Domains display"
++msgstr "Приказ области"
++
++#. ../virt-top/virt_top.ml:1544
++#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++msgid "Error"
++msgstr "Грешка"
++
++#: ../virt-top/virt_top.ml:188
++msgid "Exit at given time"
++msgstr "Излаз у одређено време"
++
++#: ../virt-top/virt_top.ml:1602
++msgid "Help"
++msgstr "Помоћ"
++
++#: ../virt-top/virt_top.ml:190
++msgid "Historical CPU delay"
++msgstr "Историјска CPU пауза"
++
++#: ../virt-top/virt_top.ml:176
++msgid "Log statistics to CSV file"
++msgstr "Записуј статистике у CSV датотеку"
++
++#: ../virt-top/virt_top.ml:1585
++msgid "MAIN KEYS"
++msgstr "ГЛАВНИ КЉУЧЕВИ"
++
++#: ../virt-top/virt_top.ml:1639
++msgid "More help in virt-top(1) man page. Press any key to return."
++msgstr ""
++"Више помоћи на virt-top(1) man страници. Притисните било који тастер за "
++"повратак."
++
++#: ../virt-top/virt_top.ml:263
++msgid ""
++"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
++"root"
++msgstr ""
++"NB: Ако желите да надгледате локални Xen надзорник, углавном је потребно да "
++"будете root"
++
++#: ../virt-top/virt_top.ml:70
++msgid "Net RX bytes"
++msgstr "Мрежни RX бајтови"
++
++#: ../virt-top/virt_top.ml:71
++msgid "Net TX bytes"
++msgstr "Мрежни TX бајтови"
++
++#: ../virt-top/virt_top.ml:1348
++msgid "Not a valid number"
++msgstr "Није исправан број"
++
++#: ../virt-top/virt_top.ml:196
++msgid "Number of iterations to run"
++msgstr "Број понављања за извршавање"
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "Off"
++msgstr "Искључи"
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "On"
++msgstr "Укључи"
++
++#: ../virt-top/virt_top.ml:1600
++msgid "Quit"
++msgstr "Изађи"
++
++#: ../virt-top/virt_top.ml:202
++msgid "Run from a script (no user interface)"
++msgstr "Извршавање из скрипте (без корисничког окружења)"
++
++#: ../virt-top/virt_top.ml:1606
++msgid "SORTING"
++msgstr "РЕЂАЊЕ"
++
++#: ../virt-top/virt_top.ml:200
++msgid "Secure (\\\"kiosk\\\") mode"
++msgstr "Безбедни (\\\"kiosk\\\") режим"
++
++#: ../virt-top/virt_top.ml:1615
++msgid "Select sort field"
++msgstr "Одаберите поље по којем се ређа"
++
++#: ../virt-top/virt_top.ml:186
++msgid "Send debug messages to file"
++msgstr "Пошаљи поруке за отклањање грешака у датотеку"
++
++#: ../virt-top/virt_top.ml:192
++msgid "Set name of init file"
++msgstr "Постави име иницијализационе датотеке"
++
++#: ../virt-top/virt_top.ml:198
++msgid "Set sort order (%s)"
++msgstr "Постави начин ређања (%s)"
++
++#: ../virt-top/virt_top.ml:1356
++msgid "Set sort order for main display"
++msgstr "Постави начин ређања за главни приказ"
++
++#: ../virt-top/virt_top.ml:1601
++msgid "Set update interval"
++msgstr "Постави интервал освежавања"
++
++#: ../virt-top/virt_top.ml:1611
++msgid "Sort by %CPU"
++msgstr "Поређај по %CPU"
++
++#: ../virt-top/virt_top.ml:1612
++msgid "Sort by %MEM"
++msgstr "Поређај по %MEM"
++
++#: ../virt-top/virt_top.ml:1614
++msgid "Sort by ID"
++msgstr "Поређај по ID"
++
++#: ../virt-top/virt_top.ml:1613
++msgid "Sort by TIME"
++msgstr "Поређај по ВРЕМЕНУ"
++
++#: ../virt-top/virt_top.ml:168
++msgid "Start by displaying block devices"
++msgstr "Почни са приказивањем блок уређаја"
++
++#: ../virt-top/virt_top.ml:166
++msgid "Start by displaying network interfaces"
++msgstr "Почни са приказивањем мрежних интерфејса"
++
++#: ../virt-top/virt_top.ml:164
++msgid "Start by displaying pCPUs (default: tasks)"
++msgstr "Почни са приказивањем pCPU-ова (подразумевано: задаци)"
++
++#: ../virt-top/virt_top.ml:67
++msgid "TIME (CPU time)"
++msgstr "ВРЕМЕ (CPU време)"
++
++#: ../virt-top/virt_top.ml:1635
++msgid "Toggle block devices"
++msgstr "Пребаци блок уређаје"
++
++#: ../virt-top/virt_top.ml:1634
++msgid "Toggle network interfaces"
++msgstr "Пребаци мрежне интерфејсе"
++
++#: ../virt-top/virt_top.ml:1633
++msgid "Toggle physical CPUs"
++msgstr "Пребаци физичке CPU-ове"
++
++#: ../virt-top/virt_top.ml:1357
++msgid "Type key or use up and down cursor keys."
++msgstr "Притистните тастер или користите тастере навигације горе и доле."
++
++#: ../virt-top/virt_top.ml:1644
++msgid "Unknown command - try 'h' for help"
++msgstr "Непозната команда - покушајте 'h' за помоћ"
++
++#: ../virt-top/virt_top.ml:1599
++msgid "Update display"
++msgstr "Освежи приказ"
++
++#: ../virt-top/virt_top.ml:1539
++msgid "Wrote settings to %s"
++msgstr "Уписана подешавања у %s"
++
++#: ../virt-top/virt_top.ml:1581
++msgid "default"
++msgstr "подразумевано"
++
++#: ../virt-top/virt_top_xml.ml:46
++msgid "get_xml_desc didn't return <domain/>"
++msgstr "get_xml_desc није вратио <domain/>"
++
++#: ../virt-top/virt_top.ml:1561
++msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
++msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d од Red Hat"
++
++#: ../virt-top/virt_top.ml:208
++msgid ""
++"virt-top : a 'top'-like utility for virtualization\n"
++"\n"
++"SUMMARY\n"
++" virt-top [-options]\n"
++"\n"
++"OPTIONS"
++msgstr ""
++"virt-top : алатка слична 'top'-у за виртуелизацију\n"
++"\n"
++"ПРЕГЛЕД\n"
++" virt-top [-опције]\n"
++"\n"
++"ОПЦИЈЕ"
++
++#: ../virt-top/virt_top.ml:42
++msgid "virt-top was compiled without support for CSV files"
++msgstr "virt-top је компајлиран без подршке за CSV датотеке"
++
++#: ../virt-top/virt_top.ml:53
++msgid "virt-top was compiled without support for dates and times"
++msgstr "virt-top је компајлиран без подршке за датуме и времена"
+diff --git a/po/sv.po b/po/sv.po
+new file mode 100644
+index 0000000..928e0bb
+--- /dev/null
++++ b/po/sv.po
+_at_@ -0,0 +1,352 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
++# Göran Uddeborg <goeran_at_uddeborg.se>, 2012
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2009-10-06 14:58+0000\n"
++"PO-Revision-Date: 2013-11-20 06:00-0500\n"
++"Last-Translator: Göran Uddeborg <goeran_at_uddeborg.se>\n"
++"Language-Team: Swedish (http://www.transifex.com/projects/p/virttop/language/sv/)\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Language: sv\n"
++"Plural-Forms: nplurals=2; plural=(n != 1);\n"
++"X-Generator: Zanata 3.5.1\n"
++
++#: ../virt-top/virt_top.ml:1506
++msgid "# %s virt-top configuration file\\n"
++msgstr "# konfigurationsfilen %s för virt-top\\n"
++
++#: ../virt-top/virt_top.ml:1524
++msgid "# Enable CSV output to the named file\\n"
++msgstr "# Aktivera CSV-utmatning till den namngivna filen\\n"
++
++#: ../virt-top/virt_top.ml:1527
++msgid "# To protect this file from being overwritten, uncomment next line\\n"
++msgstr ""
++"# För att skydda denna fil från att skrivas över, avkommentera nästa rad\\n"
++
++#: ../virt-top/virt_top.ml:1521
++msgid "# To send debug and error messages to a file, uncomment next line\\n"
++msgstr ""
++"# För att skicka felsöknings- och felmeddelanden till en fil, avkommentera "
++"nästa rad\\n"
++
++#: ../virt-top/virt_top.ml:1507
++msgid "# generated on %s by %s\\n"
++msgstr "# genererad %s av %s\\n"
++
++#: ../virt-top/virt_top.ml:65
++msgid "%CPU"
++msgstr "%CPU"
++
++#: ../virt-top/virt_top.ml:66
++msgid "%MEM"
++msgstr "%MNE"
++
++#: ../virt-top/virt_top.ml:1158
++msgid ""
++"%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
++"O:%d X:%d"
++msgstr ""
++"%d domäner, %d aktiva, %d körande, %d sovande, %d pausade, %d inaktiva N:%d "
++"A:%d K:%d"
++
++#: ../virt-top/virt_top.ml:105
++msgid "%s: display should be %s"
++msgstr "%s: display skall vara %s"
++
++#: ../virt-top/virt_top.ml:83
++msgid "%s: sort order should be: %s"
++msgstr "%s: sort-ordning skall vara: %s"
++
++#: ../virt-top/virt_top.ml:207
++msgid "%s: unknown parameter"
++msgstr "%s: okänd parameter"
++
++#: ../virt-top/virt_top.ml:238
++msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++msgstr "%s:%d: konfigurationspost ”%s” ignoreras\\n%!"
++
++#: ../virt-top/virt_top.ml:144
++msgid "-d: cannot set a negative delay"
++msgstr "-d: kan inte sätta en negativ fördröjning"
++
++#: ../virt-top/virt_top.ml:170
++msgid "Batch mode"
++msgstr "Satsvis läge"
++
++#: ../virt-top/virt_top.ml:72
++msgid "Block read reqs"
++msgstr "Blocksläsningsbegäranden"
++
++#: ../virt-top/virt_top.ml:73
++msgid "Block write reqs"
++msgstr "Blockskrivningsbegäranden"
++
++#: ../virt-top/virt_top.ml:1165
++msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
++msgstr "CPU: %2.1f %% Mne: %Ld MB (%Ld MB av gäster)"
++
++#: ../virt-top/virt_top.ml:1335
++msgid "Change delay from %.1f to: "
++msgstr "Ändra fördröjning från %.1f till: "
++
++#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
++msgid "Connect to URI (default: Xen)"
++msgstr "Anslut till URI (standard: Xen)"
++
++#: ../virt-top/virt_top.ml:1580
++msgid "Connect: %s; Hostname: %s"
++msgstr "Anslut: %s; Värdnamn: %s"
++
++#: ../virt-top/virt_top.ml:1618
++msgid "DISPLAY MODES"
++msgstr "VISNINGSLÄGEN"
++
++#: ../virt-top/virt_top.ml:1342
++msgid "Delay must be > 0"
++msgstr "Fördröjning måste vara > 0"
++
++#: ../virt-top/virt_top.ml:184
++msgid "Delay time interval (seconds)"
++msgstr "Tidsfördröjningsintervall (sekunder)"
++
++#: ../virt-top/virt_top.ml:1573
++msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
++msgstr "Fördröjning: %.1f s; Satsvis: %s; Säkert: %s; Sortering: %s"
++
++#: ../virt-top/virt_top.ml:178
++msgid "Disable CPU stats in CSV"
++msgstr "Avaktivera CPU-statistik i CSV"
++
++#: ../virt-top/virt_top.ml:180
++msgid "Disable block device stats in CSV"
++msgstr "Avaktivera blockenhetsstatistik i CSV"
++
++#: ../virt-top/virt_top.ml:182
++msgid "Disable net stats in CSV"
++msgstr "Avaktivera nätstatistik i CSV"
++
++#: ../virt-top/virt_top.ml:204
++msgid "Display version number and exit"
++msgstr "Visa versionsnummer och avsluta"
++
++#: ../virt-top/virt_top.ml:194
++msgid "Do not read init file"
++msgstr "Läs inte initieringsfilen"
++
++#: ../virt-top/virt_top.ml:68
++msgid "Domain ID"
++msgstr "Domän-ID"
++
++#: ../virt-top/virt_top.ml:69
++msgid "Domain name"
++msgstr "Domännamn"
++
++#: ../virt-top/virt_top.ml:1632
++msgid "Domains display"
++msgstr "Domänvisning"
++
++#. ../virt-top/virt_top.ml:1544
++#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++msgid "Error"
++msgstr "Fel"
++
++#: ../virt-top/virt_top.ml:188
++msgid "Exit at given time"
++msgstr "Avsluta vid given tidpunkt"
++
++#: ../virt-top/virt_top.ml:1602
++msgid "Help"
++msgstr "Hjälp"
++
++#: ../virt-top/virt_top.ml:190
++msgid "Historical CPU delay"
++msgstr "Historisk CPU-fördröjning"
++
++#: ../virt-top/virt_top.ml:176
++msgid "Log statistics to CSV file"
++msgstr "Logga statistik till en CSV-fil"
++
++#: ../virt-top/virt_top.ml:1585
++msgid "MAIN KEYS"
++msgstr "HUVUDTANGENTER"
++
++#: ../virt-top/virt_top.ml:1639
++msgid "More help in virt-top(1) man page. Press any key to return."
++msgstr ""
++"Mer hjälp i manualsidan virt-top(1). Tryck en tangent för att återvända."
++
++#: ../virt-top/virt_top.ml:263
++msgid ""
++"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
++"root"
++msgstr ""
++"OBS: Om du vill övervaka en lokal Xen-hypervisor behöver du normal vara root"
++
++#: ../virt-top/virt_top.ml:70
++msgid "Net RX bytes"
++msgstr "Netto MT byte"
++
++#: ../virt-top/virt_top.ml:71
++msgid "Net TX bytes"
++msgstr "Netto SD byte"
++
++#: ../virt-top/virt_top.ml:1348
++msgid "Not a valid number"
++msgstr "Inte ett giltigt tal"
++
++#: ../virt-top/virt_top.ml:196
++msgid "Number of iterations to run"
++msgstr "Antal iterationer att köra"
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "Off"
++msgstr "Av"
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "On"
++msgstr "På"
++
++#: ../virt-top/virt_top.ml:1600
++msgid "Quit"
++msgstr "Avsluta"
++
++#: ../virt-top/virt_top.ml:202
++msgid "Run from a script (no user interface)"
++msgstr "Kör från ett skript (inget användargränssnitt)"
++
++#: ../virt-top/virt_top.ml:1606
++msgid "SORTING"
++msgstr "SORTERING"
++
++#: ../virt-top/virt_top.ml:200
++msgid "Secure (\\\"kiosk\\\") mode"
++msgstr "Säkert (\\\"kiosk-\\\")läge"
++
++#: ../virt-top/virt_top.ml:1615
++msgid "Select sort field"
++msgstr "Välj sorteringsfält"
++
++#: ../virt-top/virt_top.ml:186
++msgid "Send debug messages to file"
++msgstr "Skicka felsökningsmeddelanden till en fil"
++
++#: ../virt-top/virt_top.ml:192
++msgid "Set name of init file"
++msgstr "Ange namn på initieringsfilen"
++
++#: ../virt-top/virt_top.ml:198
++msgid "Set sort order (%s)"
++msgstr "Ange sorteringsordning (%s)"
++
++#: ../virt-top/virt_top.ml:1356
++msgid "Set sort order for main display"
++msgstr "Ange sorteringsordning för huvudsidan"
++
++#: ../virt-top/virt_top.ml:1601
++msgid "Set update interval"
++msgstr "Ange uppdateringsintervall"
++
++#: ../virt-top/virt_top.ml:1611
++msgid "Sort by %CPU"
++msgstr "Sortera efter %CPU"
++
++#: ../virt-top/virt_top.ml:1612
++msgid "Sort by %MEM"
++msgstr "Sortera efter %MNE"
++
++#: ../virt-top/virt_top.ml:1614
++msgid "Sort by ID"
++msgstr "Sortera efter ID"
++
++#: ../virt-top/virt_top.ml:1613
++msgid "Sort by TIME"
++msgstr "Sortera efter TID"
++
++#: ../virt-top/virt_top.ml:168
++msgid "Start by displaying block devices"
++msgstr "Starta med att visa blockenheter"
++
++#: ../virt-top/virt_top.ml:166
++msgid "Start by displaying network interfaces"
++msgstr "Starta med att visa nätverksgränssnitt"
++
++#: ../virt-top/virt_top.ml:164
++msgid "Start by displaying pCPUs (default: tasks)"
++msgstr "Starta med att visa fCPU:er (standard: uppgifter)"
++
++#: ../virt-top/virt_top.ml:67
++msgid "TIME (CPU time)"
++msgstr "TID (CPU-tid)"
++
++#: ../virt-top/virt_top.ml:1635
++msgid "Toggle block devices"
++msgstr "Växla blockenheter"
++
++#: ../virt-top/virt_top.ml:1634
++msgid "Toggle network interfaces"
++msgstr "Växla nätverksgränssnitt"
++
++#: ../virt-top/virt_top.ml:1633
++msgid "Toggle physical CPUs"
++msgstr "Växla fysiska CPU:er"
++
++#: ../virt-top/virt_top.ml:1357
++msgid "Type key or use up and down cursor keys."
++msgstr "Tryck en tangent eller använd piltangenterna upp och ned."
++
++#: ../virt-top/virt_top.ml:1644
++msgid "Unknown command - try 'h' for help"
++msgstr "Okänt kommando - försök med ”h” för hjälp"
++
++#: ../virt-top/virt_top.ml:1599
++msgid "Update display"
++msgstr "Uppdatera visningen"
++
++#: ../virt-top/virt_top.ml:1539
++msgid "Wrote settings to %s"
++msgstr "Skrev inställningar till %s"
++
++#: ../virt-top/virt_top.ml:1581
++msgid "default"
++msgstr "standard"
++
++#: ../virt-top/virt_top_xml.ml:46
++msgid "get_xml_desc didn't return <domain/>"
++msgstr "get_xml_desc returnerade inte <domain/>"
++
++#: ../virt-top/virt_top.ml:1561
++msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
++msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d av Red Hat"
++
++#: ../virt-top/virt_top.ml:208
++msgid ""
++"virt-top : a 'top'-like utility for virtualization\n"
++"\n"
++"SUMMARY\n"
++" virt-top [-options]\n"
++"\n"
++"OPTIONS"
++msgstr ""
++"virt-top : ett ”top”-liknande verktyg för virtualisering\n"
++"\n"
++"SAMMANFATTNING\n"
++" virt-top [-flaggor]\n"
++"\n"
++"FLAGGOR"
++
++#: ../virt-top/virt_top.ml:42
++msgid "virt-top was compiled without support for CSV files"
++msgstr "virt-top kompilerade utan stöd för CSV-filer"
++
++#: ../virt-top/virt_top.ml:53
++msgid "virt-top was compiled without support for dates and times"
++msgstr "virt-top kompilerades utan stöd för datum och tider"
+diff --git a/po/te.po b/po/te.po
+index 9a38b74..d6e7386 100644
+--- a/po/te.po
++++ b/po/te.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: rjones <rjones_at_redhat.com>\n"
+ "Language-Team: Telugu <>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: te\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/tg.po b/po/tg.po
+new file mode 100644
+index 0000000..cac104d
+--- /dev/null
++++ b/po/tg.po
+_at_@ -0,0 +1,338 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2009-10-06 14:58+0000\n"
++"PO-Revision-Date: 2013-11-20 06:00-0500\n"
++"Last-Translator: Victor Ibragimov <victor.ibragimov_at_gmail.com>\n"
++"Language-Team: Tajik (http://www.transifex.com/projects/p/virttop/language/tg/)\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Language: tg\n"
++"Plural-Forms: nplurals=2; plural=(n != 1);\n"
++"X-Generator: Zanata 3.5.1\n"
++
++#: ../virt-top/virt_top.ml:1506
++msgid "# %s virt-top configuration file\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1524
++msgid "# Enable CSV output to the named file\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1527
++msgid "# To protect this file from being overwritten, uncomment next line\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1521
++msgid "# To send debug and error messages to a file, uncomment next line\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1507
++msgid "# generated on %s by %s\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:65
++msgid "%CPU"
++msgstr "%CPU"
++
++#: ../virt-top/virt_top.ml:66
++msgid "%MEM"
++msgstr "%MEM"
++
++#: ../virt-top/virt_top.ml:1158
++msgid ""
++"%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
++"O:%d X:%d"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:105
++msgid "%s: display should be %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:83
++msgid "%s: sort order should be: %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:207
++msgid "%s: unknown parameter"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:238
++msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:144
++msgid "-d: cannot set a negative delay"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:170
++msgid "Batch mode"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:72
++msgid "Block read reqs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:73
++msgid "Block write reqs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1165
++msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1335
++msgid "Change delay from %.1f to: "
++msgstr ""
++
++#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
++msgid "Connect to URI (default: Xen)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1580
++msgid "Connect: %s; Hostname: %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1618
++msgid "DISPLAY MODES"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1342
++msgid "Delay must be > 0"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:184
++msgid "Delay time interval (seconds)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1573
++msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:178
++msgid "Disable CPU stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:180
++msgid "Disable block device stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:182
++msgid "Disable net stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:204
++msgid "Display version number and exit"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:194
++msgid "Do not read init file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:68
++msgid "Domain ID"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:69
++msgid "Domain name"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1632
++msgid "Domains display"
++msgstr ""
++
++#. ../virt-top/virt_top.ml:1544
++#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++msgid "Error"
++msgstr "Хатогӣ"
++
++#: ../virt-top/virt_top.ml:188
++msgid "Exit at given time"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1602
++msgid "Help"
++msgstr "Роҳнамо"
++
++#: ../virt-top/virt_top.ml:190
++msgid "Historical CPU delay"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:176
++msgid "Log statistics to CSV file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1585
++msgid "MAIN KEYS"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1639
++msgid "More help in virt-top(1) man page. Press any key to return."
++msgstr ""
++
++#: ../virt-top/virt_top.ml:263
++msgid ""
++"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
++"root"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:70
++msgid "Net RX bytes"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:71
++msgid "Net TX bytes"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1348
++msgid "Not a valid number"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:196
++msgid "Number of iterations to run"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "Off"
++msgstr "Хомӯш"
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "On"
++msgstr "Фаъол"
++
++#: ../virt-top/virt_top.ml:1600
++msgid "Quit"
++msgstr "Баромад"
++
++#: ../virt-top/virt_top.ml:202
++msgid "Run from a script (no user interface)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1606
++msgid "SORTING"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:200
++msgid "Secure (\\\"kiosk\\\") mode"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1615
++msgid "Select sort field"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:186
++msgid "Send debug messages to file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:192
++msgid "Set name of init file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:198
++msgid "Set sort order (%s)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1356
++msgid "Set sort order for main display"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1601
++msgid "Set update interval"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1611
++msgid "Sort by %CPU"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1612
++msgid "Sort by %MEM"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1614
++msgid "Sort by ID"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1613
++msgid "Sort by TIME"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:168
++msgid "Start by displaying block devices"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:166
++msgid "Start by displaying network interfaces"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:164
++msgid "Start by displaying pCPUs (default: tasks)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:67
++msgid "TIME (CPU time)"
++msgstr "ВАҚТ (вақти CPU)"
++
++#: ../virt-top/virt_top.ml:1635
++msgid "Toggle block devices"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1634
++msgid "Toggle network interfaces"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1633
++msgid "Toggle physical CPUs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1357
++msgid "Type key or use up and down cursor keys."
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1644
++msgid "Unknown command - try 'h' for help"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1599
++msgid "Update display"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1539
++msgid "Wrote settings to %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1581
++msgid "default"
++msgstr "пешфарз"
++
++#: ../virt-top/virt_top_xml.ml:46
++msgid "get_xml_desc didn't return <domain/>"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1561
++msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:208
++msgid ""
++"virt-top : a 'top'-like utility for virtualization\n"
++"\n"
++"SUMMARY\n"
++" virt-top [-options]\n"
++"\n"
++"OPTIONS"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:42
++msgid "virt-top was compiled without support for CSV files"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:53
++msgid "virt-top was compiled without support for dates and times"
++msgstr ""
+diff --git a/po/tr.po b/po/tr.po
+new file mode 100644
+index 0000000..8cd8c83
+--- /dev/null
++++ b/po/tr.po
+_at_@ -0,0 +1,339 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
++# Necdet Yücel <necdetyucel_at_gmail.com>, 2012
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2009-10-06 14:58+0000\n"
++"PO-Revision-Date: 2013-11-20 06:00-0500\n"
++"Last-Translator: Necdet Yücel <necdetyucel_at_gmail.com>\n"
++"Language-Team: Turkish (http://www.transifex.com/projects/p/virttop/language/tr/)\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Language: tr\n"
++"Plural-Forms: nplurals=2; plural=(n > 1);\n"
++"X-Generator: Zanata 3.5.1\n"
++
++#: ../virt-top/virt_top.ml:1506
++msgid "# %s virt-top configuration file\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1524
++msgid "# Enable CSV output to the named file\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1527
++msgid "# To protect this file from being overwritten, uncomment next line\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1521
++msgid "# To send debug and error messages to a file, uncomment next line\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1507
++msgid "# generated on %s by %s\\n"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:65
++msgid "%CPU"
++msgstr "%CPU"
++
++#: ../virt-top/virt_top.ml:66
++msgid "%MEM"
++msgstr "%MEM"
++
++#: ../virt-top/virt_top.ml:1158
++msgid ""
++"%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
++"O:%d X:%d"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:105
++msgid "%s: display should be %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:83
++msgid "%s: sort order should be: %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:207
++msgid "%s: unknown parameter"
++msgstr "%s: bilinmeyen parametre"
++
++#: ../virt-top/virt_top.ml:238
++msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:144
++msgid "-d: cannot set a negative delay"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:170
++msgid "Batch mode"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:72
++msgid "Block read reqs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:73
++msgid "Block write reqs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1165
++msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1335
++msgid "Change delay from %.1f to: "
++msgstr ""
++
++#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
++msgid "Connect to URI (default: Xen)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1580
++msgid "Connect: %s; Hostname: %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1618
++msgid "DISPLAY MODES"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1342
++msgid "Delay must be > 0"
++msgstr "Gecikme > 0 olmalı"
++
++#: ../virt-top/virt_top.ml:184
++msgid "Delay time interval (seconds)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1573
++msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:178
++msgid "Disable CPU stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:180
++msgid "Disable block device stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:182
++msgid "Disable net stats in CSV"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:204
++msgid "Display version number and exit"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:194
++msgid "Do not read init file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:68
++msgid "Domain ID"
++msgstr "Alan ID"
++
++#: ../virt-top/virt_top.ml:69
++msgid "Domain name"
++msgstr "Alan adı"
++
++#: ../virt-top/virt_top.ml:1632
++msgid "Domains display"
++msgstr ""
++
++#. ../virt-top/virt_top.ml:1544
++#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++msgid "Error"
++msgstr "Hata"
++
++#: ../virt-top/virt_top.ml:188
++msgid "Exit at given time"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1602
++msgid "Help"
++msgstr "Yardım"
++
++#: ../virt-top/virt_top.ml:190
++msgid "Historical CPU delay"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:176
++msgid "Log statistics to CSV file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1585
++msgid "MAIN KEYS"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1639
++msgid "More help in virt-top(1) man page. Press any key to return."
++msgstr ""
++
++#: ../virt-top/virt_top.ml:263
++msgid ""
++"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
++"root"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:70
++msgid "Net RX bytes"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:71
++msgid "Net TX bytes"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1348
++msgid "Not a valid number"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:196
++msgid "Number of iterations to run"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "Off"
++msgstr "Kapalı"
++
++#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++msgid "On"
++msgstr "Açık"
++
++#: ../virt-top/virt_top.ml:1600
++msgid "Quit"
++msgstr "Çık"
++
++#: ../virt-top/virt_top.ml:202
++msgid "Run from a script (no user interface)"
++msgstr "Betikten çalıştır (arayüz olmadan)"
++
++#: ../virt-top/virt_top.ml:1606
++msgid "SORTING"
++msgstr "SIRALAMA"
++
++#: ../virt-top/virt_top.ml:200
++msgid "Secure (\\\"kiosk\\\") mode"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1615
++msgid "Select sort field"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:186
++msgid "Send debug messages to file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:192
++msgid "Set name of init file"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:198
++msgid "Set sort order (%s)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1356
++msgid "Set sort order for main display"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1601
++msgid "Set update interval"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1611
++msgid "Sort by %CPU"
++msgstr "%CPU'ya göre sırala"
++
++#: ../virt-top/virt_top.ml:1612
++msgid "Sort by %MEM"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1614
++msgid "Sort by ID"
++msgstr "ID'ye göre sırala"
++
++#: ../virt-top/virt_top.ml:1613
++msgid "Sort by TIME"
++msgstr "ZAMAN'a göre sırala"
++
++#: ../virt-top/virt_top.ml:168
++msgid "Start by displaying block devices"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:166
++msgid "Start by displaying network interfaces"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:164
++msgid "Start by displaying pCPUs (default: tasks)"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:67
++msgid "TIME (CPU time)"
++msgstr "ZAMAN (CPU zamanı)"
++
++#: ../virt-top/virt_top.ml:1635
++msgid "Toggle block devices"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1634
++msgid "Toggle network interfaces"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1633
++msgid "Toggle physical CPUs"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1357
++msgid "Type key or use up and down cursor keys."
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1644
++msgid "Unknown command - try 'h' for help"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1599
++msgid "Update display"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1539
++msgid "Wrote settings to %s"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1581
++msgid "default"
++msgstr "öntanımlı"
++
++#: ../virt-top/virt_top_xml.ml:46
++msgid "get_xml_desc didn't return <domain/>"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:1561
++msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:208
++msgid ""
++"virt-top : a 'top'-like utility for virtualization\n"
++"\n"
++"SUMMARY\n"
++" virt-top [-options]\n"
++"\n"
++"OPTIONS"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:42
++msgid "virt-top was compiled without support for CSV files"
++msgstr ""
++
++#: ../virt-top/virt_top.ml:53
++msgid "virt-top was compiled without support for dates and times"
++msgstr ""
+diff --git a/po/uk.po b/po/uk.po
+index 8a2511b..15d0f88 100644
+--- a/po/uk.po
++++ b/po/uk.po
+_at_@ -2,13 +2,12 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: yurchor <yurchor_at_ukr.net>\n"
+ "Language-Team: Ukrainian <trans-uk_at_lists.fedoraproject.org>\n"
+ "MIME-Version: 1.0\n"
+_at_@ -16,6 +15,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Language: uk\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)\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/zh_CN.po b/po/zh_CN.po
+index f5f63c1..23b0a1e 100644
+--- a/po/zh_CN.po
++++ b/po/zh_CN.po
+_at_@ -2,20 +2,20 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: rjones <rjones_at_redhat.com>\n"
+ "Language-Team: Chinese (China) <None>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"Language: zh_CN\n"
++"Language: zh-CN\n"
+ "Plural-Forms: nplurals=1; plural=0\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+diff --git a/po/zh_TW.po b/po/zh_TW.po
+index 9729fc3..dcf0de0 100644
+--- a/po/zh_TW.po
++++ b/po/zh_TW.po
+_at_@ -2,20 +2,20 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: virt-top\n"
+-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2009-10-06 14:58+0000\n"
+-"PO-Revision-Date: 2011-03-22 15:29+0000\n"
++"PO-Revision-Date: 2011-03-22 11:29-0400\n"
+ "Last-Translator: zerng07 <pswo10680_at_gmail.com>\n"
+ "Language-Team: Chinese (Taiwan) <None>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"Language: zh_TW\n"
++"Language: zh-TW\n"
+ "Plural-Forms: nplurals=1; plural=0\n"
++"X-Generator: Zanata 3.5.1\n"
+
+ #: ../virt-top/virt_top.ml:1506
+ msgid "# %s virt-top configuration file\\n"
+--
+2.9.3
+
diff --git a/testing/virt-top/0004-build-Add-g-flag-to-ocamlopt.patch b/testing/virt-top/0004-build-Add-g-flag-to-ocamlopt.patch
new file mode 100644
index 0000000000..f94a9f82de
--- /dev/null
+++ b/testing/virt-top/0004-build-Add-g-flag-to-ocamlopt.patch
_at_@ -0,0 +1,26 @@
+From 4a2d0ccd91f07d0a2009e8553a29fcf4cf752ba3 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Mon, 4 Jan 2016 11:48:40 -0500
+Subject: [PATCH 04/17] build: Add -g flag to ocamlopt.
+
+Modern ocamlopt supports the -g flag fine (very old versions did not).
+---
+ virt-top/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/virt-top/Makefile.in b/virt-top/Makefile.in
+index 98e6647..e149b26 100755
+--- a/virt-top/Makefile.in
++++ b/virt-top/Makefile.in
+_at_@ -68,7 +68,7 @@ OCAMLCFLAGS := -g -warn-error A-3
+ OCAMLCLIBS := -linkpkg
+
+ OCAMLOPTPACKAGES := $(OCAMLCPACKAGES)
+-OCAMLOPTFLAGS := -warn-error A-3
++OCAMLOPTFLAGS := $(OCAMLCFLAGS)
+ OCAMLOPTLIBS := $(OCAMLCLIBS)
+
+ BYTE_TARGETS := virt-top
+--
+2.9.3
+
diff --git a/testing/virt-top/0005-Rename-source-directory-and-files.patch b/testing/virt-top/0005-Rename-source-directory-and-files.patch
new file mode 100644
index 0000000000..16c9160710
--- /dev/null
+++ b/testing/virt-top/0005-Rename-source-directory-and-files.patch
_at_@ -0,0 +1,719 @@
+From b7c3ef13cbd9c9cd49005a32ffb70faf6f5bbe8c Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Mon, 31 Oct 2016 12:01:40 +0000
+Subject: [PATCH 05/17] Rename source directory and files.
+
+This renames the source directory from virt-top to src/ and removes
+the unnecessary virt_top_* prefix from many source files.
+
+This is entirely refactoring and makes no functional change.
+
+Also this fixes the MANIFEST file and removes old Transifex
+configuration, fixing commit defe5bdd4a32e0206a786d279e0f9cfc238e5e17.
+---
+ .gitignore | 72 +++++++++-------------
+ .tx/config | 8 ---
+ ChangeLog | 30 +++++++++
+ MANIFEST | 41 +++++++-----
+ Makefile.in | 15 ++---
+ README | 2 +-
+ configure.ac | 29 ++++-----
+ src/.depend | 20 ++++++
+ {virt-top => src}/Makefile.in | 18 +++---
+ {virt-top => src}/README | 22 ++++---
+ virt-top/virt_top_main.ml => src/main.ml | 4 +-
+ .../virt_top_calendar1.ml => src/opt_calendar1.ml | 4 +-
+ .../virt_top_calendar2.ml => src/opt_calendar2.ml | 4 +-
+ virt-top/virt_top_csv.ml => src/opt_csv.ml | 6 +-
+ virt-top/virt_top_xml.ml => src/opt_xml.ml | 4 +-
+ virt-top/virt_top.ml => src/top.ml | 8 +--
+ virt-top/virt_top.mli => src/top.mli | 0
+ virt-top/virt_top_utils.ml => src/utils.ml | 2 +-
+ virt-top/virt_top_utils.mli => src/utils.mli | 0
+ .../virt_top_version.ml.in => src/version.ml.in | 0
+ {virt-top => src}/virt-top.pod | 0
+ virt-top/.depend | 20 ------
+ 22 files changed, 163 insertions(+), 146 deletions(-)
+ delete mode 100644 .tx/config
+ create mode 100644 src/.depend
+ rename {virt-top => src}/Makefile.in (91%)
+ rename {virt-top => src}/README (77%)
+ rename virt-top/virt_top_main.ml => src/main.ml (98%)
+ rename virt-top/virt_top_calendar1.ml => src/opt_calendar1.ml (97%)
+ rename virt-top/virt_top_calendar2.ml => src/opt_calendar2.ml (97%)
+ rename virt-top/virt_top_csv.ml => src/opt_csv.ml (94%)
+ rename virt-top/virt_top_xml.ml => src/opt_xml.ml (97%)
+ rename virt-top/virt_top.ml => src/top.ml (99%)
+ rename virt-top/virt_top.mli => src/top.mli (100%)
+ rename virt-top/virt_top_utils.ml => src/utils.ml (99%)
+ rename virt-top/virt_top_utils.mli => src/utils.mli (100%)
+ rename virt-top/virt_top_version.ml.in => src/version.ml.in (100%)
+ rename {virt-top => src}/virt-top.pod (100%)
+ delete mode 100644 virt-top/.depend
+
+diff --git a/.gitignore b/.gitignore
+index d08e9e2..e3f77e7 100644
+--- a/.gitignore
++++ b/.gitignore
+_at_@ -1,50 +1,36 @@
+-aclocal.m4
+-META
+-ocaml-libvirt-*.tar.gz
+-ocaml-libvirt-*.exe
+-html
+-configure
+-config.log
+-config.status
+-config.h
+-config.cache
+-Makefile
+-Make.rules
+-*/Makefile
+-autom4te.cache
+-core
+-core.*
++*.a
++*.cma
+ *.cmi
+ *.cmo
+ *.cmx
+-*.cma
+ *.cmxa
+-*.o
+-*.so
+-*.a
+-*.opt
+ *.dll
+ *.exe
+-*~
+-libvirt/libvirt_version.ml
+-examples/list_domains
+-examples/node_info
+-mlvirsh/mlvirsh
+-virt-ctrl/virt-ctrl
+-virt-top/virt-top
+-virt-df/virt-df
+-wininstaller.nsis
++*.o
++*.opt
+ *.orig
+-mlvirsh/mlvirsh_gettext.ml
+-virt-ctrl/virt_ctrl_gettext.ml
+-virt-df/virt_df_gettext.ml
+-virt-top/virt_top_gettext.ml
+-virt-top/virt_top_version.ml
+-po/*.mo
+-po/*.po.bak
+-virt-df/virt_df_lvm2_lexer.ml
+-virt-df/virt_df_lvm2_parser.ml
+-virt-df/virt_df_lvm2_parser.mli
+-virt-top-*.tar.gz
+-virt-top/virt-top.1
+-virt-top/virt-top.txt
+\ No newline at end of file
++*.so
++*~
++
++META
++Makefile
++aclocal.m4
++config.cache
++config.h
++config.log
++config.status
++configure
++core
++core.*
++html
++
++/Make.rules
++/autom4te.cache
++/po/*.mo
++/po/*.po.bak
++/src/opt_gettext.ml
++/src/version.ml
++/src/virt-top
++/src/virt-top.1
++/src/virt-top.txt
++/virt-top-*.tar.gz
+diff --git a/.tx/config b/.tx/config
+deleted file mode 100644
+index 3e17770..0000000
+--- a/.tx/config
++++ /dev/null
+_at_@ -1,8 +0,0 @@
+-[main]
+-host = https://www.transifex.net
+-
+-[virttop.virttoppot]
+-file_filter = po/<lang>.po
+-source_file = po/virt-top.pot
+-source_lang = en
+-
+diff --git a/ChangeLog b/ChangeLog
+index 8daca45..1b3999a 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,33 @@
++2016-10-31 Richard W.M. Jones <rjones_at_redhat.com>
++
++ Rename source directory and files.
++ This renames the source directory from virt-top to src/ and removes
++ the unnecessary virt_top_* prefix from many source files.
++
++ This is entirely refactoring and makes no functional change.
++
++ Also this fixes the MANIFEST file and removes old Transifex
++ configuration, fixing commit defe5bdd4a32e0206a786d279e0f9cfc238e5e17.
++
++2016-01-04 Richard W.M. Jones <rjones_at_redhat.com>
++
++ build: Add -g flag to ocamlopt.
++ Modern ocamlopt supports the -g flag fine (very old versions did not).
++
++2015-02-21 Richard W.M. Jones <rjones_at_redhat.com>
++
++ Update translations from Zanata.
++
++ Move upstream translations from Tranifex to Zanata.
++ This is at the request of the Fedora localization team.
++ For further information see:
++
++ https://www.redhat.com/archives/libguestfs/2015-February/msg00168.html
++
++2014-08-02 Richard W.M. Jones <rjones_at_redhat.com>
++
++ Disable warning about immutable strings (for OCaml 4.02).
++
+ 2012-10-12 Richard W.M. Jones <rjones_at_redhat.com>
+
+ Version 1.0.8.
+diff --git a/MANIFEST b/MANIFEST
+index c5958d7..2cf377f 100644
+--- a/MANIFEST
++++ b/MANIFEST
+_at_@ -14,12 +14,17 @@ Make.rules.in
+ MANIFEST
+ m4/ocaml.m4
+ po/as.po
++po/ca.po
+ po/de.po
+ po/es.po
++po/eu.po
+ po/fr.po
+ po/gu.po
++po/hu.po
++po/id.po
+ po/it.po
+ po/ja.po
++po/ka.po
+ po/kn.po
+ po/LINGUAS
+ po/Makefile.in
+_at_@ -27,30 +32,36 @@ po/ml.po
+ po/mr.po
+ po/nl.po
+ po/or.po
++po/pa.po
+ po/pl.po
+ po/pt_BR.po
+ po/pt.po
+ po/POTFILES
+ po/ru.po
++po/sr.po
++po/sv.po
+ po/te.po
++po/tg.po
++po/tr.po
+ po/uk.po
+ po/virt-top.pot
++po/zanata-pull.sh
++po/zanata.xml
+ po/zh_CN.po
+ po/zh_TW.po
+ README
+ TODO
+-.tx/config
+-virt-top/.depend
+-virt-top/Makefile.in
+-virt-top/README
+-virt-top/virt-top.pod
+-virt-top/virt_top.ml
+-virt-top/virt_top.mli
+-virt-top/virt_top_calendar1.ml
+-virt-top/virt_top_calendar2.ml
+-virt-top/virt_top_csv.ml
+-virt-top/virt_top_main.ml
+-virt-top/virt_top_utils.ml
+-virt-top/virt_top_utils.mli
+-virt-top/virt_top_version.ml.in
+-virt-top/virt_top_xml.ml
++src/.depend
++src/Makefile.in
++src/README
++src/main.ml
++src/opt_calendar1.ml
++src/opt_calendar2.ml
++src/opt_csv.ml
++src/opt_xml.ml
++src/top.ml
++src/top.mli
++src/utils.ml
++src/utils.mli
++src/version.ml.in
++src/virt-top.pod
+diff --git a/Makefile.in b/Makefile.in
+index b310e58..d0aec17 100644
+--- a/Makefile.in
++++ b/Makefile.in
+_at_@ -22,25 +22,22 @@ INSTALL = @INSTALL@
+
+ MAKENSIS = _at_MAKENSIS@
+
+-SUBDIRS = virt-top
++SUBDIRS = src
+
+ all opt depend install:
+- for d in $(SUBDIRS); do \
+- $(MAKE) -C $$d $@; \
+- if [ $$? -ne 0 ]; then exit 1; fi; \
+- done
++ $(MAKE) -C src $_at_
+
+ clean:
+ for d in . $(SUBDIRS); do \
+ (cd $$d; rm -f *.cmi *.cmo *.cmx *.cma *.cmxa *.o *.a *.so *.opt *~ *.dll *.exe core); \
+ done
+- rm -f virt-top/virt-top
++ rm -f src/virt-top
+
+ distclean: clean
+ rm -f config.h config.log config.status configure
+ rm -rf autom4te.cache
+ rm -f Makefile
+- rm -f virt-top/Makefile
++ rm -f src/Makefile
+
+ # Distribution.
+
+_at_@ -51,8 +48,8 @@ dist: ChangeLog
+ tar -cf - -T MANIFEST | tar -C $(PACKAGE)-$(VERSION) -xf -
+ $(INSTALL) -m 0755 configure $(PACKAGE)-$(VERSION)/
+ $(INSTALL) -m 0644 aclocal.m4 $(PACKAGE)-$(VERSION)/
+- $(INSTALL) -m 0644 virt-top/virt-top.1 $(PACKAGE)-$(VERSION)/virt-top/
+- $(INSTALL) -m 0644 virt-top/virt-top.txt $(PACKAGE)-$(VERSION)/virt-top/
++ $(INSTALL) -m 0644 src/virt-top.1 $(PACKAGE)-$(VERSION)/src/
++ $(INSTALL) -m 0644 src/virt-top.txt $(PACKAGE)-$(VERSION)/src/
+ tar zcf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
+ rm -rf $(PACKAGE)-$(VERSION)
+ ls -l $(PACKAGE)-$(VERSION).tar.gz
+diff --git a/README b/README
+index 5a8bc87..d97fa62 100644
+--- a/README
++++ b/README
+_at_@ -1,7 +1,7 @@
+ virt-top
+ ----------------------------------------------------------------------
+
+-Copyright (C) 2007-2012 Richard W.M. Jones, Red Hat Inc.
++Copyright (C) 2007-2016 Richard W.M. Jones, Red Hat Inc.
+ http://et.redhat.com/~rjones/virt-top/
+ http://libvirt.org/ocaml/
+ http://libvirt.org/
+diff --git a/configure.ac b/configure.ac
+index 0d41cda..ad65465 100644
+--- a/configure.ac
++++ b/configure.ac
+_at_@ -84,26 +84,24 @@ AC_CHECK_PROG(MSGFMT,msgfmt,msgfmt)
+
+ dnl Write gettext modules for the programs.
+ dnl http://www.le-gall.net/sylvain+violaine/documentation/ocaml-gettext/html/reference-manual/ch03s04.html
+-for d in virt-top; do
+- f=`echo $d | tr - _`_gettext.ml
+- AC_MSG_NOTICE([creating $d/$f])
+- rm -f $d/$f
+- echo "(* This file is generated automatically by ./configure. *)" > $d/$f
+- if test "x$OCAML_PKG_gettext" != "xno"; then
+- # Gettext module is available, so use it.
+- cat <<EOT >>$d/$f
++AC_MSG_NOTICE([creating src/opt_gettext.ml])
++rm -f src/opt_gettext.ml
++echo "(* This file is generated automatically by ./configure. *)" > src/opt_gettext.ml
++if test "x$OCAML_PKG_gettext" != "xno"; then
++ # Gettext module is available, so use it.
++ cat <<EOT >>src/opt_gettext.ml
+ module Gettext = Gettext.Program (
+ struct
+- let textdomain = "$d"
++ let textdomain = "virt-top"
+ let codeset = None
+ let dir = None
+ let dependencies = [[]]
+ end
+ ) (GettextStub.Native)
+ EOT
+- else
+- # No gettext module is available, so fake the translation functions.
+- cat <<EOT >>$d/$f
++else
++ # No gettext module is available, so fake the translation functions.
++ cat <<EOT >>src/opt_gettext.ml
+ module Gettext = struct
+ external s_ : string -> string = "%identity"
+ external f_ : ('a -> 'b, 'c, 'd) format -> ('a -> 'b, 'c, 'd) format
+_at_@ -115,8 +113,7 @@ module Gettext = struct
+ = fun s p n -> if n = 1 then s else p
+ end
+ EOT
+- fi
+-done
++fi
+
+ dnl Summary.
+ echo "------------------------------------------------------------"
+_at_@ -128,7 +125,7 @@ AC_CONFIG_HEADERS([config.h])
+ AC_CONFIG_FILES([Makefile
+ Make.rules
+ po/Makefile
+- virt-top/Makefile
+- virt-top/virt_top_version.ml
++ src/Makefile
++ src/version.ml
+ ])
+ AC_OUTPUT
+diff --git a/src/.depend b/src/.depend
+new file mode 100644
+index 0000000..5325c54
+--- /dev/null
++++ b/src/.depend
+_at_@ -0,0 +1,20 @@
++main.cmo: top.cmi opt_gettext.cmo
++main.cmx: top.cmx opt_gettext.cmx
++opt_calendar1.cmo: top.cmi opt_gettext.cmo
++opt_calendar1.cmx: top.cmx opt_gettext.cmx
++opt_calendar2.cmo: top.cmi opt_gettext.cmo
++opt_calendar2.cmx: top.cmx opt_gettext.cmx
++opt_csv.cmo: top.cmi opt_gettext.cmo
++opt_csv.cmx: top.cmx opt_gettext.cmx
++opt_gettext.cmo:
++opt_gettext.cmx:
++opt_xml.cmo: top.cmi opt_gettext.cmo
++opt_xml.cmx: top.cmx opt_gettext.cmx
++top.cmi:
++top.cmo: version.cmo utils.cmi opt_gettext.cmo top.cmi
++top.cmx: version.cmx utils.cmx opt_gettext.cmx top.cmi
++utils.cmi:
++utils.cmo: opt_gettext.cmo utils.cmi
++utils.cmx: opt_gettext.cmx utils.cmi
++version.cmo:
++version.cmx:
+diff --git a/virt-top/Makefile.in b/src/Makefile.in
+similarity index 91%
+rename from virt-top/Makefile.in
+rename to src/Makefile.in
+index e149b26..d29f2e8 100755
+--- a/virt-top/Makefile.in
++++ b/src/Makefile.in
+@@ -39,28 +39,28 @@ OCAMLCPACKAGES += -package gettext-stub
+ endif
+
+ OBJS := \
+- virt_top_version.cmo \
+- virt_top_gettext.cmo \
+- virt_top_utils.cmo \
+- virt_top.cmo
++ version.cmo \
++ opt_gettext.cmo \
++ utils.cmo \
++ top.cmo
+ ifneq ($(OCAML_PKG_xml_light),no)
+-OBJS += virt_top_xml.cmo
++OBJS += opt_xml.cmo
+ OCAMLCPACKAGES += -package xml-light
+ endif
+ ifneq ($(OCAML_PKG_csv),no)
+-OBJS += virt_top_csv.cmo
++OBJS += opt_csv.cmo
+ OCAMLCPACKAGES += -package csv
+ endif
+ ifneq ($(OCAML_PKG_calendar),no)
+ ifeq ($(is_calendar2),no)
+-OBJS += virt_top_calendar1.cmo
++OBJS += opt_calendar1.cmo
+ OCAMLCPACKAGES += -package calendar
+ else
+-OBJS += virt_top_calendar2.cmo
++OBJS += opt_calendar2.cmo
+ OCAMLCPACKAGES += -package calendar
+ endif
+ endif
+-OBJS += virt_top_main.cmo
++OBJS += main.cmo
+
+ XOBJS := $(OBJS:.cmo=.cmx)
+
+diff --git a/virt-top/README b/src/README
+similarity index 77%
+rename from virt-top/README
+rename to src/README
+index b594f95..47382a5 100755
+--- a/virt-top/README
++++ b/src/README
+_at_@ -1,11 +1,11 @@
+ The code is structured into these files:
+
+- virt_top_utils.mli / virt_top_utils.ml
++ utils.mli, utils.ml
+
+ String functions and other small utility functions. This is
+ included directly into virt_top.ml.
+
+- virt_top.mli / virt_top.ml
++ top.mli, top.ml
+
+ This is the virt-top program.
+
+_at_@ -22,7 +22,11 @@ The code is structured into these files:
+ The function 'main_loop' runs the main loop and has sub-functions
+ to deal with keypresses, help screens and so on.
+
+- virt_top_xml.ml
++ opt_gettext.ml
++ A generated file which adds gettext support if ocaml-gettext
++ was found at configure time, or else stubs it out.
++
++ opt_xml.ml
+
+ Any code which needs the optional xml-light library goes
+ in here. Mainly for parsing domain XML descriptions to get
+_at_@ -31,21 +35,21 @@ The code is structured into these files:
+ The reason for having it in a separate file is so that we
+ don't depend on xml-light.
+
+- virt_top_csv.ml
++ opt_csv.ml
+
+ Any code which needs the optional ocaml-csv library goes
+ in here. This implements the --csv command line option.
+
+- virt_top_calendar.ml
++ opt_calendar1.ml, opt_calendar2.ml
+
+ Any code which needs the optional ocaml-calendar library
+- goes in here. This implements the --end-time command line
+- option.
++ (v1 or v2) goes in here. This implements the --end-time
++ command line option.
+
+- virt_top_main.ml
++ main.ml
+
+ This is just a small bit of code to glue the modules together
+- Virt_top + Virt_top_xml? + Virt_top_csv? + Virt_top_calendar?
++ Top + Opt_xml? + Opt_csv? + Opt_calendar{1,2}?
+
+ The man-page is generated from the single file:
+
+diff --git a/virt-top/virt_top_main.ml b/src/main.ml
+similarity index 98%
+rename from virt-top/virt_top_main.ml
+rename to src/main.ml
+index e8c4425..34d13c8 100644
+--- a/virt-top/virt_top_main.ml
++++ b/src/main.ml
+_at_@ -21,8 +21,8 @@
+
+ open Curses
+
+-open Virt_top_gettext.Gettext
+-open Virt_top
++open Opt_gettext.Gettext
++open Top
+
+ (* Note: make sure we catch any exceptions and clean up the display.
+ *
+diff --git a/virt-top/virt_top_calendar1.ml b/src/opt_calendar1.ml
+similarity index 97%
+rename from virt-top/virt_top_calendar1.ml
+rename to src/opt_calendar1.ml
+index 534465c..2c459fe 100755
+--- a/virt-top/virt_top_calendar1.ml
++++ b/src/opt_calendar1.ml
+_at_@ -22,9 +22,9 @@
+ open Printf
+ open ExtString
+
+-open Virt_top_gettext.Gettext ;;
++open Opt_gettext.Gettext ;;
+
+-Virt_top.parse_date_time :=
++Top.parse_date_time :=
+ fun time ->
+ let cal : Calendar.t =
+ if String.starts_with time "+" then ( (* +something *)
+diff --git a/virt-top/virt_top_calendar2.ml b/src/opt_calendar2.ml
+similarity index 97%
+rename from virt-top/virt_top_calendar2.ml
+rename to src/opt_calendar2.ml
+index cc82eec..fd93704 100755
+--- a/virt-top/virt_top_calendar2.ml
++++ b/src/opt_calendar2.ml
+_at_@ -24,9 +24,9 @@ open CalendarLib
+ open Printf
+ open ExtString
+
+-open Virt_top_gettext.Gettext ;;
++open Opt_gettext.Gettext ;;
+
+-Virt_top.parse_date_time :=
++Top.parse_date_time :=
+ fun time ->
+ let cal : Calendar.t =
+ if String.starts_with time "+" then ( (* +something *)
+diff --git a/virt-top/virt_top_csv.ml b/src/opt_csv.ml
+similarity index 94%
+rename from virt-top/virt_top_csv.ml
+rename to src/opt_csv.ml
+index e048856..6c3b2be 100644
+--- a/virt-top/virt_top_csv.ml
++++ b/src/opt_csv.ml
+_at_@ -19,16 +19,16 @@
+ This file contains all code which requires CSV support.
+ *)
+
+-open Virt_top_gettext.Gettext
++open Opt_gettext.Gettext
+
+ (* Output channel, or None if CSV output not enabled. *)
+ let chan = ref None ;;
+
+-Virt_top.csv_start :=
++Top.csv_start :=
+ fun filename ->
+ chan := Some (open_out filename) ;;
+
+-Virt_top.csv_write :=
++Top.csv_write :=
+ fun row ->
+ match !chan with
+ | None -> () (* CSV output not enabled. *)
+diff --git a/virt-top/virt_top_xml.ml b/src/opt_xml.ml
+similarity index 97%
+rename from virt-top/virt_top_xml.ml
+rename to src/opt_xml.ml
+index ab291d3..bb83780 100644
+--- a/virt-top/virt_top_xml.ml
++++ b/src/opt_xml.ml
+_at_@ -21,13 +21,13 @@
+
+ open ExtList
+
+-open Virt_top_gettext.Gettext
++open Opt_gettext.Gettext
+
+ module C = Libvirt.Connect
+ module D = Libvirt.Domain
+ module N = Libvirt.Network ;;
+
+-Virt_top.parse_device_xml :=
++Top.parse_device_xml :=
+ fun id dom ->
+ try
+ let xml = D.get_xml_desc dom in
+diff --git a/virt-top/virt_top.ml b/src/top.ml
+similarity index 99%
+rename from virt-top/virt_top.ml
+rename to src/top.ml
+index 0aae24e..38658c6 100644
+--- a/virt-top/virt_top.ml
++++ b/src/top.ml
+_at_@ -21,8 +21,8 @@ open Printf
+ open ExtList
+ open Curses
+
+-open Virt_top_gettext.Gettext
+-open Virt_top_utils
++open Opt_gettext.Gettext
++open Utils
+
+ module C = Libvirt.Connect
+ module D = Libvirt.Domain
+_at_@ -159,7 +159,7 @@ let start_up () =
+ and set_end_time time = end_time := Some ((!parse_date_time) time)
+ and display_version () =
+ printf "virt-top %s ocaml-libvirt %s\n"
+- Virt_top_version.version Libvirt_version.version;
++ Version.version Libvirt_version.version;
+ exit 0
+ in
+ let argspec = Arg.align [
+_at_@ -1723,7 +1723,7 @@ and show_help (_, _, _, _, _, _, hostname,
+ (* Banner at the top of the screen. *)
+ let banner =
+ sprintf (f_"virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat")
+- Virt_top_version.version
++ Version.version
+ Libvirt_version.version
+ libvirt_major libvirt_minor libvirt_release in
+ let banner = pad cols banner in
+diff --git a/virt-top/virt_top.mli b/src/top.mli
+similarity index 100%
+rename from virt-top/virt_top.mli
+rename to src/top.mli
+diff --git a/virt-top/virt_top_utils.ml b/src/utils.ml
+similarity index 99%
+rename from virt-top/virt_top_utils.ml
+rename to src/utils.ml
+index c5dc97d..3dc637d 100644
+--- a/virt-top/virt_top_utils.ml
++++ b/src/utils.ml
+_at_@ -21,7 +21,7 @@
+
+ open Printf
+
+-open Virt_top_gettext.Gettext
++open Opt_gettext.Gettext
+
+ module C = Libvirt.Connect
+ module D = Libvirt.Domain
+diff --git a/virt-top/virt_top_utils.mli b/src/utils.mli
+similarity index 100%
+rename from virt-top/virt_top_utils.mli
+rename to src/utils.mli
+diff --git a/virt-top/virt_top_version.ml.in b/src/version.ml.in
+similarity index 100%
+rename from virt-top/virt_top_version.ml.in
+rename to src/version.ml.in
+diff --git a/virt-top/virt-top.pod b/src/virt-top.pod
+similarity index 100%
+rename from virt-top/virt-top.pod
+rename to src/virt-top.pod
+diff --git a/virt-top/.depend b/virt-top/.depend
+deleted file mode 100644
+index 46099b7..0000000
+--- a/virt-top/.depend
++++ /dev/null
+_at_@ -1,20 +0,0 @@
+-virt_top_calendar1.cmo: virt_top_gettext.cmo virt_top.cmi
+-virt_top_calendar1.cmx: virt_top_gettext.cmx virt_top.cmx
+-virt_top_calendar2.cmo: virt_top_gettext.cmo virt_top.cmi
+-virt_top_calendar2.cmx: virt_top_gettext.cmx virt_top.cmx
+-virt_top.cmi:
+-virt_top.cmo: virt_top_version.cmo virt_top_utils.cmi virt_top_gettext.cmo virt_top.cmi
+-virt_top.cmx: virt_top_version.cmx virt_top_utils.cmx virt_top_gettext.cmx virt_top.cmi
+-virt_top_csv.cmo: virt_top_gettext.cmo virt_top.cmi
+-virt_top_csv.cmx: virt_top_gettext.cmx virt_top.cmx
+-virt_top_gettext.cmo:
+-virt_top_gettext.cmx:
+-virt_top_main.cmo: virt_top_gettext.cmo virt_top.cmi
+-virt_top_main.cmx: virt_top_gettext.cmx virt_top.cmx
+-virt_top_utils.cmi:
+-virt_top_utils.cmo: virt_top_gettext.cmo virt_top_utils.cmi
+-virt_top_utils.cmx: virt_top_gettext.cmx virt_top_utils.cmi
+-virt_top_version.cmo:
+-virt_top_version.cmx:
+-virt_top_xml.cmo: virt_top_gettext.cmo virt_top.cmi
+-virt_top_xml.cmx: virt_top_gettext.cmx virt_top.cmx
+--
+2.9.3
+
diff --git a/testing/virt-top/0006-Enable-same-warnings-as-libguestfs.patch b/testing/virt-top/0006-Enable-same-warnings-as-libguestfs.patch
new file mode 100644
index 0000000000..b460ad3cf9
--- /dev/null
+++ b/testing/virt-top/0006-Enable-same-warnings-as-libguestfs.patch
_at_@ -0,0 +1,34 @@
+From 5500a027ad231eb5bb16e36efee72b48cfac9528 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Mon, 27 Mar 2017 12:21:48 +0100
+Subject: [PATCH 06/17] Enable same warnings as libguestfs.
+
+In particular 'warning 3' was still enabled before, meaning that the
+code would fail with newer OCaml compilers:
+
+ File "top.ml", line 377, characters 12-25:
+ Warning 3: deprecated: String.create
+ Use Bytes.create instead.
+
+Since we want to continue using old OCaml for now, don't enable
+this warning.
+---
+ src/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+index d29f2e8..d744fd7 100755
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+_at_@ -64,7 +64,7 @@ OBJS += main.cmo
+
+ XOBJS := $(OBJS:.cmo=.cmx)
+
+-OCAMLCFLAGS := -g -warn-error A-3
++OCAMLCFLAGS := -g -warn-error CDEFLMPSUVYZX-3
+ OCAMLCLIBS := -linkpkg
+
+ OCAMLOPTPACKAGES := $(OCAMLCPACKAGES)
+--
+2.9.3
+
diff --git a/testing/virt-top/0007-Remove-x-executable-permission-on-several-source-fil.patch b/testing/virt-top/0007-Remove-x-executable-permission-on-several-source-fil.patch
new file mode 100644
index 0000000000..091fb297ac
--- /dev/null
+++ b/testing/virt-top/0007-Remove-x-executable-permission-on-several-source-fil.patch
_at_@ -0,0 +1,48 @@
+From 8cd690d0b8a5343d8731145b95931ec7aaa2db35 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Mon, 27 Mar 2017 12:25:19 +0100
+Subject: [PATCH 07/17] Remove +x (executable) permission on several source
+ files.
+
+Not sure why it was there, but it was incorrect.
+---
+ src/Makefile.in | 0
+ src/README | 0
+ src/opt_calendar1.ml | 0
+ src/opt_calendar2.ml | 0
+ src/top.mli | 0
+ src/utils.mli | 0
+ src/virt-top.pod | 0
+ 7 files changed, 0 insertions(+), 0 deletions(-)
+ mode change 100755 => 100644 src/Makefile.in
+ mode change 100755 => 100644 src/README
+ mode change 100755 => 100644 src/opt_calendar1.ml
+ mode change 100755 => 100644 src/opt_calendar2.ml
+ mode change 100755 => 100644 src/top.mli
+ mode change 100755 => 100644 src/utils.mli
+ mode change 100755 => 100644 src/virt-top.pod
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+old mode 100755
+new mode 100644
+diff --git a/src/README b/src/README
+old mode 100755
+new mode 100644
+diff --git a/src/opt_calendar1.ml b/src/opt_calendar1.ml
+old mode 100755
+new mode 100644
+diff --git a/src/opt_calendar2.ml b/src/opt_calendar2.ml
+old mode 100755
+new mode 100644
+diff --git a/src/top.mli b/src/top.mli
+old mode 100755
+new mode 100644
+diff --git a/src/utils.mli b/src/utils.mli
+old mode 100755
+new mode 100644
+diff --git a/src/virt-top.pod b/src/virt-top.pod
+old mode 100755
+new mode 100644
+--
+2.9.3
+
diff --git a/testing/virt-top/0008-Refresh-HACKING-file.patch b/testing/virt-top/0008-Refresh-HACKING-file.patch
new file mode 100644
index 0000000000..65ea47264a
--- /dev/null
+++ b/testing/virt-top/0008-Refresh-HACKING-file.patch
_at_@ -0,0 +1,95 @@
+From cc9f1f9d8f17e8ac5a6a73af830c132d916fd6e0 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Mon, 27 Mar 2017 12:30:01 +0100
+Subject: [PATCH 08/17] Refresh HACKING file.
+
+Fixes commit b7c3ef13cbd9c9cd49005a32ffb70faf6f5bbe8c.
+---
+ HACKING | 72 ++---------------------------------------------------------------
+ 1 file changed, 2 insertions(+), 70 deletions(-)
+
+diff --git a/HACKING b/HACKING
+index bce40a9..3cd266b 100644
+--- a/HACKING
++++ b/HACKING
+_at_@ -7,75 +7,7 @@ General OCaml advice:
+
+ (2) Emacs users: use tuareg-mode for editing OCaml.
+
+-(3) http://www.ocaml-tutorial.org/
++(3) https://realworldocaml.org/ is the definitive book which is also
++ available online in full.
+
+ (4) http://camltastic.blogspot.com/2008/08/3-things-that-will-confuse-you-when.html
+-
+-The code is structured into these files:
+-
+- virt_top_utils.mli / virt_top_utils.ml
+-
+- String functions and other small utility functions. This is
+- included directly into virt_top.ml.
+-
+- virt_top_version.ml
+-
+- The version number (automatically generated by configure).
+-
+- virt_top.mli / virt_top.ml
+-
+- This is the virt-top program.
+-
+- The two interesting functions are called 'collect' and 'redraw'.
+-
+- 'collect' collects all the information about domains, etc.
+-
+- 'redraw' updates the display on each frame.
+-
+- Another interesting function is 'start_up' which handles all
+- start-up stuff, eg. command line arguments, connecting to the
+- hypervisor, enabling curses.
+-
+- The function 'main_loop' runs the main loop and has sub-functions
+- to deal with keypresses, help screens and so on.
+-
+- virt_top_xml.ml
+-
+- Any code which needs the optional xml-light library goes
+- in here. Mainly for parsing domain XML descriptions to get
+- the list of block devices and network interfaces.
+-
+- The reason for having it in a separate file is so that we
+- don't depend on xml-light.
+-
+- virt_top_csv.ml
+-
+- Any code which needs the optional ocaml-csv library goes
+- in here. This implements the --csv command line option.
+-
+- virt_top_calendar1.ml
+- virt_top_calendar2.ml
+-
+- Any code which needs the optional ocaml-calendar library
+- goes in here. This implements the --end-time command line
+- option. Note there are two incompatible versions of the
+- ocaml-calendar library, which is why we have two
+- implementations. The Makefile works out which one to use.
+-
+- virt_top_gettext.ml
+-
+- Gettext interaction (this is generated by ./configure).
+-
+- virt_top_main.ml
+-
+- This is just a small bit of code to glue the modules above
+- together.
+-
+-The man-page is generated from the single file:
+-
+- virt-top.pod
+-
+-which generates (using perldoc) the following:
+-
+- virt-top.1
+- virt-top.txt
+--
+2.9.3
+
diff --git a/testing/virt-top/0009-Fix-po-POTFILES-for-new-location-of-source-files.patch b/testing/virt-top/0009-Fix-po-POTFILES-for-new-location-of-source-files.patch
new file mode 100644
index 0000000000..4bb0a24a71
--- /dev/null
+++ b/testing/virt-top/0009-Fix-po-POTFILES-for-new-location-of-source-files.patch
_at_@ -0,0 +1,34 @@
+From 1b4980da40000a34ec987f83824dd69454c4e8e4 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Mon, 27 Mar 2017 12:33:22 +0100
+Subject: [PATCH 09/17] Fix po/POTFILES for new location of source files.
+
+Fixes commit b7c3ef13cbd9c9cd49005a32ffb70faf6f5bbe8c.
+---
+ po/POTFILES | 16 +++++++++-------
+ 1 file changed, 9 insertions(+), 7 deletions(-)
+
+diff --git a/po/POTFILES b/po/POTFILES
+index 55bb82d..70d62d5 100644
+--- a/po/POTFILES
++++ b/po/POTFILES
+_at_@ -1,7 +1,9 @@
+-../virt-top/virt_top_calendar1.ml
+-../virt-top/virt_top_calendar2.ml
+-../virt-top/virt_top_csv.ml
+-../virt-top/virt_top_main.ml
+-../virt-top/virt_top.ml
+-../virt-top/virt_top_utils.ml
+-../virt-top/virt_top_xml.ml
++../src/main.ml
++../src/opt_calendar1.ml
++../src/opt_calendar2.ml
++../src/opt_csv.ml
++../src/opt_gettext.ml
++../src/opt_xml.ml
++../src/top.ml
++../src/utils.ml
++../src/version.ml
+--
+2.9.3
+
diff --git a/testing/virt-top/0010-Update-PO-files.patch b/testing/virt-top/0010-Update-PO-files.patch
new file mode 100644
index 0000000000..3abedc55ed
--- /dev/null
+++ b/testing/virt-top/0010-Update-PO-files.patch
_at_@ -0,0 +1,14279 @@
+From 0b6f6d45d50174e27f9a425f67bb1a6045a8e58c Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Mon, 27 Mar 2017 12:34:20 +0100
+Subject: [PATCH 10/17] Update PO files.
+
+---
+ po/as.po | 227 +++++++++++++++++++++++++++++--------------------------
+ po/ca.po | 229 +++++++++++++++++++++++++++++--------------------------
+ po/de.po | 215 +++++++++++++++++++++++++++++-----------------------
+ po/es.po | 227 +++++++++++++++++++++++++++++--------------------------
+ po/eu.po | 211 ++++++++++++++++++++++++++++-----------------------
+ po/fr.po | 213 ++++++++++++++++++++++++++++-----------------------
+ po/gu.po | 226 ++++++++++++++++++++++++++++++-------------------------
+ po/hu.po | 230 ++++++++++++++++++++++++++++++--------------------------
+ po/id.po | 223 +++++++++++++++++++++++++++++-------------------------
+ po/it.po | 227 +++++++++++++++++++++++++++++--------------------------
+ po/ja.po | 227 ++++++++++++++++++++++++++++++-------------------------
+ po/ka.po | 211 ++++++++++++++++++++++++++++-----------------------
+ po/kn.po | 227 +++++++++++++++++++++++++++++--------------------------
+ po/ml.po | 227 +++++++++++++++++++++++++++++--------------------------
+ po/mr.po | 225 +++++++++++++++++++++++++++++-------------------------
+ po/nl.po | 227 +++++++++++++++++++++++++++++--------------------------
+ po/or.po | 227 +++++++++++++++++++++++++++++--------------------------
+ po/pa.po | 211 ++++++++++++++++++++++++++++-----------------------
+ po/pl.po | 227 ++++++++++++++++++++++++++++++-------------------------
+ po/pt.po | 227 +++++++++++++++++++++++++++++--------------------------
+ po/pt_BR.po | 227 +++++++++++++++++++++++++++++--------------------------
+ po/ru.po | 227 ++++++++++++++++++++++++++++++-------------------------
+ po/sr.po | 229 +++++++++++++++++++++++++++++--------------------------
+ po/sv.po | 227 +++++++++++++++++++++++++++++--------------------------
+ po/te.po | 226 ++++++++++++++++++++++++++++++-------------------------
+ po/tg.po | 210 ++++++++++++++++++++++++++++-----------------------
+ po/tr.po | 211 ++++++++++++++++++++++++++++-----------------------
+ po/uk.po | 226 ++++++++++++++++++++++++++++++-------------------------
+ po/virt-top.pot | 203 +++++++++++++++++++++++++++----------------------
+ po/zh_CN.po | 227 ++++++++++++++++++++++++++++++-------------------------
+ po/zh_TW.po | 209 +++++++++++++++++++++++++++-----------------------
+ 31 files changed, 3738 insertions(+), 3148 deletions(-)
+
+diff --git a/po/as.po b/po/as.po
+index 260415e..9c9d4b5 100644
+--- a/po/as.po
++++ b/po/as.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,39 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s virt-top বিন্যাস নথিপত্ৰ\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# উল্লেখিত নথিপত্ৰত CSV নিৰ্গম লিখাৰ ব্যৱস্থা সক্ৰিয় কৰা হ'ব\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# এই নথিপত্ৰৰ বিষয়বস্তুৰ ওপৰত পুনঃ নিলিখিবলৈ, পৰবৰ্তী পংক্তিৰ পৰা মন্তব্যৰ "
+-"চিহ্ন আঁতৰাওক\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# ডিবাগ আৰু ত্ৰুটি বাৰ্তা নথিপত্ৰত লিখাৰ বাবে পৰবৰ্তী পংক্তিৰ পৰা মন্তব্যৰ "
+-"চিহ্ন আঁতৰাওক\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# %s ত %s দ্বাৰা উৎপন্ন কৰা হৈছে\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -57,279 +50,302 @@ msgstr ""
+ "%d ডোমেইন, %d সক্ৰিয়, %d চলমান, %d নিদ্ৰিত, %d স্থগিত, %d নিষ্ক্ৰিয় D:%d "
+ "O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: প্ৰদৰ্শন %s হোৱা উচিত"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: সুবিন্যস্ত কৰোঁতে ব্যৱহৃত মান: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: অজ্ঞাত স্থিতিমাপ"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: বিন্যাসৰ বস্তু ``%s'' উপেক্ষিত\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: বিলম্বৰ মান শূণ্যৰ অধিক হোৱা আৱশ্যক"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "বেচ মোড"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "ব্লক পঢ়িবলৈ আৱশ্যক মান"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "ব্লকত লিখাৰ আৱশ্যক মান"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% স্মৃতিশক্তি: %Ld MB (অতিথি দ্বাৰা %Ld MB)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "বিলম্বৰ মান %.1f ৰ পৰা চিহ্নিত মানলৈ পৰিবৰ্তন কৰা হ'ব: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "চিহ্নিত URI-ৰ সৈতে সংযোগ স্থাপন কৰক (অবিকল্পিত: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "সংযুক্ত কৰক: %s; গৃহস্থৰ নাম: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "DISPLAY MODES"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "বিলম্বৰ মান > 0 হোৱা আৱশ্যক"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "বিলম্বৰ সময়কাল (ছেকেণ্ডত ব্যক্ত)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "বিলম্ব: %.1f ছেকেণ্ড; বেচ: %s; নিৰাপত্তা: %s; ক্ৰমবিন্যাস: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "CSV ত CPU সংক্ৰান্ত পৰিসংখ্যা নিষ্ক্ৰিয় কৰা হ'ব"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "CSV ত ব্লক যন্ত্ৰ সংক্ৰান্ত পৰিসংখ্যা নিষ্ক্ৰিয় কৰা হ'ব"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "CSV ত নেট সংক্ৰান্ত পৰিসংখ্যা নিষ্ক্ৰিয় কৰা হ'ব"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "সংস্কৰণ নম্বৰ প্ৰদৰশন কৰা আৰু প্ৰস্থান কৰা"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "init নথিপত্ৰ পঢ়া ন'হ'ব"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "ডোমেইন ID"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "ডোমেইনৰ নাম"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "ডোমেইনৰ প্ৰদৰ্শন"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "ত্ৰুটি"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "নিৰ্দিষ্ট সময়ত প্ৰস্থান কৰা হ'ব"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "সহায়"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "CPU ৰ বিলম্বৰ পূৰ্ববৰ্তী তথ্য"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "CSV নথিপত্ৰত পৰিসংখ্যা সংৰক্ষণ কৰা হ'ব"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "MAIN KEYS"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "virt-top(1) man পৃষ্ঠাত অতিৰিক্ত সহায়ক তথ্য উপস্থিত আছে । প্ৰত্যাবৰ্তন কৰাৰ "
+ "বাবে যি কোনো চাবি টিপক ।"
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"উল্লেখ্য: স্থানীয় Xen হাইপাৰভাইছৰ নিৰীক্ষণৰ বাবে root ব্যৱহাৰকৰোঁতাৰ পৰিচয় "
+-"ধাৰণ কৰা আৱশ্যক"
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "প্ৰকৃত RX bytes"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "প্ৰকৃত TX bytes"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "বৈধ সংখ্যা নহয়"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "পুনৰাবৃত্তিৰ সংখ্যা"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "বন্ধ"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "খোলা"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "প্ৰস্থান"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr ""
+ "স্ক্ৰিপ্টৰ সহযোগত সঞ্চালন কৰা হ'ব (ব্যৱহাৰকৰোঁতাৰ সংযোগ মাধ্যম নোহোৱাকে)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "SORTING"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "নিৰাপদ (\\\"kiosk\\\") মোড"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "ক্ৰমবিন্যাসৰ বাবে ক্ষেত্ৰ নিৰ্বাচন কৰক"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "ডিবাগ সংক্ৰান্ত বাৰ্তা নথিপত্ৰলৈ পঠিওৱা হ'ব"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "init নথিপত্ৰৰ নাম ধাৰ্য কৰক"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "ক্ৰমবিন্যাসৰ মান নিৰ্ধাৰণ কৰক (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "প্ৰধান প্ৰদৰ্শনৰ বাবে ক্ৰমবিন্যাসৰ মান নিৰ্ধাৰণ কৰক"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "উন্নয়নৰ সময়ৰ ব্যৱধান নিৰ্ধাৰণ কৰক"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "%CPU অনুযায়ী সুবিন্যস্ত কৰক"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "%MEM অনুযায়ী সুবিন্যস্ত কৰক"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "ID অনুযায়ী সুবিন্যস্ত কৰক"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "TIME অনুযায়ী সুবিন্যস্ত কৰক"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "ব্লক যন্ত্ৰ প্ৰদৰ্শন কৰি আৰম্ভ কৰক"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "নে'টৱৰ্ক সংযোগ মাধ্যমৰ প্ৰদৰ্শন কৰি আৰম্ভ কৰক"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "pCPU প্ৰদৰ্শন দ্বাৰা আৰম্ভ কৰক (অবিকল্পিত মান: tasks)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "TIME (CPU ৰ সময়)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "ব্লক যন্ত্ৰ টগল কৰা হ'ব"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "নে'টৱৰ্ক সংযোগ মাধ্যম টগল কৰা হ'ব"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "প্ৰকৃত CPU টগল কৰা হ'ব"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "চাবি লিখক বা ওপৰ আৰু তলৰ স্থানান্তৰণৰ কাৰ্ছাৰ চাবি প্ৰয়োগ কৰক ।"
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "অজ্ঞাত আদেশ - সহায়েৰ বাবে 'h' লিখক"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "প্ৰদৰ্শন উন্নত কৰা হ'ব"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "%s লৈ বৈশিষ্ট্য লিখা হৈছে"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "অবিকল্পিত"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc ৰ পৰা <domain/> প্ৰাপ্ত নহয়"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d Red Hat - দ্বাৰা"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -345,10 +361,11 @@ msgstr ""
+ "\n"
+ "OPTIONS"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "CSV নথিপত্ৰৰ সমৰ্থন নোহোৱাকৈ virt-top সঙ্কলন কৰা হৈছিল"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "দিন আৰু সময়ৰ সমৰ্থন নোহোৱাকৈ virt-top সঙ্কলন কৰা হৈছিল"
++
+diff --git a/po/ca.po b/po/ca.po
+index 09313aa..48fc213 100644
+--- a/po/ca.po
++++ b/po/ca.po
+_at_@ -1,9 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-#
+-# Translators:
+-# Robert Antoni Buj i Gelonch, 2015
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -19,39 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s fitxer de configuració de virt-top\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# Habilita la sortida CSV al fitxer named\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# Per protegir aquest fitxer sigui sobreescrit, descomenteu la següent "
+-"línia\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# Per a enviar missatges de depuració o d'error a un fitxer, descomenteu la "
+-"següent línia\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# generat el %s per %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -59,278 +50,301 @@ msgstr ""
+ "%d dominis, %d en actiu, %d en execució, %d dormint, %d en pausa, %d "
+ "inactius D:%d O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: la pantalla hauria de ser %s"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: l'ordre d'ordenació hauria de ser: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: paràmetre desconegut"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: l'element de la configuració «%s» s'ha ignorat\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: no pot establir un retard negatiu"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "Mode per lots"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "Sol·licituds de lectura de blocs"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "Sol·licituds d'escriptura de blocs"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB per als amfitrions)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "Canvia el retard de %.1f a: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "Connecta a la URI (predeterminat: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "Connexió: %s; Nom d'amfitrió: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "MODES DE VISUALITZACIÓ"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "El retard ha de ser > 0"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "Interval del retard (segons)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "Retard: %.1f seg; Per lots: %s; Seguretat: %s; Ordenació: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "En el CSV, deshabilita les estadístiques de la CPU"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "En el CSV, deshabilita les estadístiques dels dispositius de blocs"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "En el CSV, deshabilita les estadístiques de la xarxa"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "Mostra la versió i surt"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "No llegeix el fitxer d'inicialització"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "ID del domini"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "Nom del domini"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "Visualització dels dominis"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Error"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "Surt en l'hora indicada"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Ajuda"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "Retard en l'històric de la CPU"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "Enregistra les estadístiques al fitxer CSV"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "TECLES PRINCIPALS"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "Més informació en la pàgina man virt-top(1). Premeu qualsevol tecla per "
+ "tornar."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"N.B.: Si voleu supervisar un hipervisor Xen local, normalment heu de ser "
+-"root"
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "Xarxa RX bytes"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "Xarxa TX bytes"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "No és un número vàlid"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "Número d'iteracions a executar"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "Apagat"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "Encés"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Surt"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "Executa des d'una seqüència d'ordres (sense interfície gràfica)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "ORDENACIÓ"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "Mode (\\\"kiosk\\\") segur"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "Selecciona camp d'ordenació"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "Envia els missatges de depuració al fitxer"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "Estableix el nom del fitxer d'inicialització"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "Estableix el mètode d'ordenació (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "Estableix el mètode d'ordenació per a la pantalla principal"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "Interval d'actualització"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "Ordena per %CPU"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "Ordena per %MEM"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "Ordena per ID"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "Ordena per TEMPS"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "Comença mostrant els dispositius de blocs"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "Comença mostrant les interfícies de xarxa"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "Comença mostrant pCPUs (predeterminat: tasques)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "TEMPS (temps de CPU)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "Commuta dispositius de blocs"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "Commuta interfícies de xarxa"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "Commuta CPU físiques"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "Teclegeu una tecla o utilitzeu les fletxes del cursor amunt o abaix."
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "Ordre no reconeguda - proveu 'h' per l'ajuda"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "Actualitza la pantalla"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "S'ha escrit les preferències a %s"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "predet."
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc no va retornar <domain/>"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d per Red Hat"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -346,10 +360,11 @@ msgstr ""
+ "\n"
+ "OPCIONS"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "virt-top fou compilat sense compatibilitat per a fitxers CSV"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "virt-top fou compilat sense compatibilitat per data i hora"
++
+diff --git a/po/de.po b/po/de.po
+index 93fc598..cdb1ec6 100644
+--- a/po/de.po
++++ b/po/de.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,308 +14,333 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "Unterbrochen durch Benutzer"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "'%s' sollte numerisch sein."
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "Soll eine Palette verwendet werden?"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "Unerwarteter Parameter '%s'"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "Überflüssige Eigenschaft, ignoriert"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "Untertitelverzögerung einstellen (in 1/10s)"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "Batchmodus"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "Kann Wert von '%s' nicht lesen"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "Konnte \"%s\" nicht schreiben: %s"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB von Gast)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "Ändere Verzögerung von %.1f auf: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "Auflösen des Hostnamens"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "ANZEIGE-MODUS"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "Verzögerung muss > 0 sein"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "&Zeitüberschreitung nach"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "Domain-ID"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "Domainname"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "Vorgabeanzeige"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Fehler"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Hilfe"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "Audioverzögerung verringern"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "Logtexte in Datei speichern"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "HAUTP-SCHLÜSSEL"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "&Größe in Bytes anzeigen"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "&Größe in Bytes anzeigen"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "Keine gültige Nummer"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "Die Anzahl der anzuzeigenden Spalten"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Beenden"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "SORTIERUNG"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "IP für aktiven Modus"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "Verzeichnisse einsortieren"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "Konnte Fehlerberichtsdatei \"%s\" nicht entfernen."
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "Dateiname bereits vorhanden"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "Alternative Reihenfolge für Knöpfe"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "Aktualisierungsintervall des Menüs"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "Nach %CPU sortieren"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "Nach %MEM sortieren"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "Nach ID sortieren"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "Nach ZEIT sortieren"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "ZEIT (CPU-Zeit)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "HAL-Geräteerkennung"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "&Netzwerkkonfigurations-Assistent..."
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "Der Schaltzustand des Knopfes"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "Unbekannter Befehl `%s'. Geben Sie `help' für Hilfe ein."
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "Vorgabeanzeige"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "Schreib Einstellungen nach %s"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr ""
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc didn't return <domain/>"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -328,10 +350,11 @@ msgid ""
+ "OPTIONS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr ""
++
+diff --git a/po/es.po b/po/es.po
+index 4dccb7f..66d4f34 100644
+--- a/po/es.po
++++ b/po/es.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,39 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s archivo de configuración de virt-top\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# Habilita la salida de CVS para el archivo indicado\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# Para proteger este archivo y que no sea sobreescrito, que la siguiente "
+-"línea esté sin comentar\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# Para enviar mensajes de error, o de depuración a un archivo, que la "
+-"siguiente línea esté sin comentar\\n "
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# generado en %s por %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -57,279 +50,302 @@ msgstr ""
+ "%d dominios, %d activo, %d ejecutándose, %d adormecido, %d pausado, %d "
+ "inactivo D:%d O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: se debería ver %s"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: el orden de clasificación debería ser: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: parámetro desconocido"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: item de configuración ``%s'' ignorado\\n%! "
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: no se puede establecer un retraso negativo"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "Modo en lotes"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "Pedidos de lectura en bloques"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "Pedidos de escritura en bloques"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB por huéspedes)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "Cambiar retraso de %.1f a:"
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "Conectar a URI (por defecto: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "Conectar: %s; Nombre de máquina: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "MODOS de EXHIBICION"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "El retraso debe ser > 0"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "Intervalo de tiempo de retraso (segundos)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "Retraso: %.1f secs; Lote: %s; Seguro: %s; Clasificado: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "Deshabilita estadísticas del CPU en CVS"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "Deshabilita stadísticas del dispositivo de bloque en CVS"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "Deshabilita estadísticas de red en CVS"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "Muestra el número de la versión y se cierra"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "No lee el archivo init"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "ID de dominio"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "Nombre del dominio"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "Exhibe los dominios"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Error"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "Sale en un tiempo determinado"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Ayuda"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "Histórico de retraso del CPU"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "Estadísticas de log para el archivo CVS"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "TECLAS PRINCIPALES"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "Más ayuda en la página del manual (man) de virt-top(1). Presione cualquier "
+ "tecla para volver."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"NB: Si quiere monitorear un hypervisor local Xen, generalmente necesita ser "
+-"root"
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "Cantidad neta de bytes recibidos"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "Cantidad neta de bytes transmitidos"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "No es un número válido"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "Número de iteraciones a ser ejecutadas"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "Apagado"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "Encendido"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Salir"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "Ejecutar desde un programa (sin interfase de usuario)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "CLASIFICANDO"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "Modo seguro (\\\"kiosco\\\")"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "Seleccionar un campo para clasificar"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "Enviar los mensajes de depuración al archivo"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "Establece el nombre del archivo init"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "Establece el orden de clasificación (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "Establece el orden de clasificación para la exhibición principal"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "Establece el intervalo de actualización"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "Clasificación por %CPU"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "Clasificación por %MEM"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "Clasificación por ID"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "Clasificación por TIEMPO"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "Empieza con la exhibición de los dispositivos de bloque"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "Empieza con la exhibición de las interfases de red"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "Empieza con la exhibición de los pCPUs (por defecto: tareas)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "TIEMPO (tiempo del CPU)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "Alterna entre los dispositivos de bloque"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "Alterna entre las interfases de red"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "Alterna entre los CPUs físicos"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr ""
+ "Presione una tecla o utilice teclas de navegación para arriba o para abajo."
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "Comando desconocido - intente con 'h' para obtener ayuda"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "Actualiza la exhibición"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "Configuraciones guardadas en %s"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "predeterminado"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "el get_xml_desc no ha retornado <domain/n>"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d por Red Hat"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -345,10 +361,11 @@ msgstr ""
+ "\n"
+ "OPCIONES"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "virt-top fue compilado sin soporte para archivos CSV"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "virt-top fue compilado sin soporte para fechas y horas"
++
+diff --git a/po/eu.po b/po/eu.po
+index 58f6976..7759711 100644
+--- a/po/eu.po
++++ b/po/eu.po
+@@ -1,9 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-#
+-# Translators:
+-# Asier Iturralde Sarasola <asier.iturralde_at_gmail.com>, 2012
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -19,308 +14,333 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "Konektatu: %s; Ostalari-izena: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "Domeinu-izena"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr ""
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Errorea"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Laguntza"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Irten"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "Ordenatu %CPUren arabera"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "Ordenatu %MEMen arabera"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "Ordenatu IDaren arabera"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "Ordenatu denboraren arabera"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "lehenetsia"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -330,10 +350,11 @@ msgid ""
+ "OPTIONS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr ""
++
+diff --git a/po/fr.po b/po/fr.po
+index fc5a41d..3f2981c 100644
+--- a/po/fr.po
++++ b/po/fr.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,308 +14,333 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n > 1)\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s fichier de configuration virt-top\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# Activer la sortie CSV pour le fichier nommé\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "Mode batch"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr ""
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr ""
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -328,10 +350,11 @@ msgid ""
+ "OPTIONS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr ""
++
+diff --git a/po/gu.po b/po/gu.po
+index 1e17407..87a8134 100644
+--- a/po/gu.po
++++ b/po/gu.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,38 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s virt-top રૂપરેખાંકન ફાઇલ\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# નામ થયેલ ફાઇલમાં CSV આઉટપુટને સક્રિય કરો\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# ઉપરલખાયેલ માંથી આ ફાઇલને સુરક્ષિત રાખવા માટે, પછીનાં વાક્યની ટિપ્પણી ન "
+-"કરો\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# ફાઇલમાં ડિબગ અને ભૂલ સંદેશાઓ મોકલવા માટે, પછીનાં વાક્યની ટિપ્પણી ન કરો\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# %s દ્દારા %s પર ઉત્પન્ન થયેલ છે\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -56,277 +50,300 @@ msgstr ""
+ "%d ડોમેઇને, %d સક્રિય, %d ચાલી રહ્યુ છે, %d નિષ્ક્રિય, %d અટકેલ, %d "
+ "નિષ્ક્રિય D:%d O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: દેખાવ %s હોવુ જ જોઇએ"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: ક્રમ એ હોવો જોઇએ: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: અજ્ઞાત પરિમાણ"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: રૂપરેખાંકન સસ્તુ ``%s'' અવગણેલ છે\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: નકારાત્મક વિલંબને સુયોજિત કરી શકાતુ નથી"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "બેચ સ્થિતિ"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "બ્લોક વાંચવાનું જરૂરી છે"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "બ્લોક લખવાનું જરૂરી છે"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB (મહેમાન દ્દારા %Ld MB)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "ને %.1f માંથી વિલંબ સમય ને બદલો: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "URI ને જોડો (મૂળભૂત: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "જોડો: %s; યજમાનનામ: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "સ્થિતિઓને દેખાડો"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "વિલંબ એ > 0 હોવુ જ જોઇએ"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "વિલંબ સમય સમયગાળો (સેકંડો)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "વિલંબ: %.1f secs; બેચ: %s; સુરક્ષા: %s; ક્રમ: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "CSV માં CPU સ્થિતિઓને નિષ્ક્રિય કરો"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "CSV માં બ્લોક ઉપકરણ સ્થિતિઓને નિષ્ક્રિય કરો"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "CSV માં નેટ સ્થિતિને નિષ્ક્રિય કરો"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "આવૃત્તિ નંબરને દર્શાવો અને બહાર નીકળો"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "init ફાઇલ વંચાતુ નથી"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "ડોમેઇન ID"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "ડોમેઇન નામ"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "ડોમેઇનોનો દેખાવ"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "ભૂલ"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "આપેલ સમય પર બહાર નીકળો"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "મદદ"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "ઐતિહાસિક CPU વિલંબ"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "CSV ફાઇલમાં લોગ પરિસ્થિતિઓ"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "મુખ્ય કીઓ"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "virt-top(1) પુસ્તિકા પાનાંમાં વધારે મદદ. પાછુ લાવવા માટે કોઇપણ કીને દબાવો."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"NB: જો તમે સ્થાનિક Xen હાઇપરવિઝરને મોનિટર કરવા માંગતા હોય તો, તમારે સામાન્ય "
+-"રીતે રુટની જરૂર પડશે"
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "નેટ RX બાઇટો"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "નેટ TX બાઇટો"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "યોગ્ય નંબર નથી"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "ચલાવવા માટે પુનરાવર્તનોની સંખ્યા"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "બંધ"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "ચાલુ"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "બહાર નીકળો"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "સ્ક્રિપ્ટમાંથી ચલાવો (વપરાશકર્તા ઇન્ટરફેસ નથી)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "ક્રમમાં કરી રહ્યા છે"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "સુરક્ષા (\\\"kiosk\\\") સ્થિતિ"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "ટૂંકા ક્ષેત્રને પસંદ કરો"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "ફાઇલમાં ડિબગ સંદેશાઓને મોકલો"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "init ફાઇલની નામ ને સુયોજિત કરો"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "ક્રમને સુયોજિત કરો (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "મુખ્ય દેખાવ માટે ક્રમને સુયોજિત કરો"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "સુધારેલ સમયગાળાને સુયોજિત કરો"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "%CPU દ્દારા ક્રમમાં કરો"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "%MEM દ્દારા ક્રમમાં કરો"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "ID દ્દારા ક્રમમાં કરો"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "TIME દ્દારા ક્રમમાં કરો"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "બ્લોક ઉપકરણો દેખાવ દ્દારા શરૂ કરો"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "નેટવર્ક ઇન્ટરફેસો ને દેખાવા દ્દારા શરૂ કરો"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "pCPUs (મૂળભૂત: કાર્યો) ને દેખાવા દ્દારા શરૂ કરો"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "TIME (CPU સમય)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "ટોગલ બ્લોક ઉપકરણો"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "ટોગલ નેટવર્ક ઇન્ટરફેસો"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "ટોગલ ભૌતિક CPUs"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "કીને ટાઇપ કરો અથવા ઉપર અને નીચે કર્સર કીઓને વાપરો."
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "મદદ માટે અજ્ઞાત આદેશ - try 'h'"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "દેખાવને સુધારો"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "%s માં સુયોજનોને લખ્યુ"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "મૂળભૂત"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc થી <domain/> પાછુ મળ્યુ નહિં"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "Red Hat પ્રમાણે virt-top %s ocaml-libvirt %s libvirt %d.%d.%d"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -342,10 +359,11 @@ msgstr ""
+ "\n"
+ "OPTIONS"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "CSV ફાઇલો માટે આધાર વગર virt-top એ કમ્પાઇલ થયેલ ન હતુ"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "તારીખો અને સમયો માટે આધાર વગર virt-top એ કમ્પાઇલ થયેલ હતુ"
++
+diff --git a/po/hu.po b/po/hu.po
+index 64552d7..937002a 100644
+--- a/po/hu.po
++++ b/po/hu.po
+_at_@ -1,10 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-#
+-# Translators:
+-# Szabo Attila <atekka_at_gmail.com>, 2013
+-# Zoltan Hoppár <zoltanh721_at_fedoraproject.org>, 2012
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -20,39 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s virt-top konfigurációs fájl \\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# CSV kimenet engedélyezése a megnevezett fájlhoz\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# Hogy megvédd ezt a fájlt a fölülírástól, vedd ki a kommentet a következő "
+-"sorból\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# Ahhoz hogy hibakeresési és hiba üzeneteket küldd a fájlba, vedd ki a "
+-"kommentet a következő sorból \\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# %s lett létrehozva %s által\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -60,278 +50,301 @@ msgstr ""
+ "%d domének, %d aktív, %d fut, %d alszik, %d felfüggesztve, %d inaktív D:%d "
+ "O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: a képernyőnek %snek kellene lennie"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: a rövid sorrendnek %snek kellene lennie"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: ismeretlen paraméter"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: konfigurációs tétek ``%s'' ignorált\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: negatív késleltetést nem lehet megadni"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "Kötegelt mód"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "Blokk olvasási kérések"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "Blokk írási kérések"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB a vendégek által)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "A késleltetés megváltoztatása %.1f-ről:"
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "Kapcsolódás az URIhoz (alap:XEN)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "Kapcsolódás: %s; Hosztnév: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "Megjelenítési módok"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "A késleltetés legyen >0"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "Késleltetés intervallumának ideje( másodpercek)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "Késleltetés: %.1f másodperc; Köteg: %s; Biztosított: %s; Rövid: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "Processzor statisztika felfüggesztése CSVben"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "Blokk eszköz statisztika felfüggesztése CSVben"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "Hálózat statisztika felfüggesztése CSVben"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "Verziószám megjelenítése és kilépés"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "Init fájl ne kerüljön olvasásra"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "Domén azonosító"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "Domén név"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "Domének megjelenítése"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Hiba"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "Kilépés a megadott időben"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Segitség"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "Történeti processzor késleltetés"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "Log statisztika egy CSV fájlba"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "FŐBB GOMBOK"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "További segitség a virt-top(1) man oldalon. Nyomjon meg bármilyen billentyűt"
+ " a visszatéréshez."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"TM: ha monitorozni akarja a helyi Xen hypervisort , akkor általában root-nak"
+-" kell lennie"
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "Következő RX bájtok"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "Következő TX bájtok"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "Nem egy érvényes szám"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "A futtatni való ismétlések száma"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "Ki"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "Be"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Kilépés"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "Működés szkriptről (nincs felhasználói felület)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "RENDEZÉS"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "Biztonsági (\\\"kiosk\\\") mód"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "Válassza ki a rövid mezőt"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "Hibakeresési üzenetek küldése fájlba"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "Init fájl nevének beállítása"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "válogatás sorrendjének beállítása (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "válogatás sorrendjének beállítása a fő képernyőhöz"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "frissítés intervallumának beállítása"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "Rendezés %CPU által"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "Rendezés %MEM által"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "Rendezés azonosító alapján"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "Rendezés IDŐ alapján"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "A blokk eszközök megjelenítésével kezdődjön"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "A hálózati interfészek megjelenítésével kezdődjön"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "pCPUk megjelenítésével kezdődjön (alapból: feladatok)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "IDŐ ( processzor idő)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "Blokk eszközök váltása"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "Hálózati interfészek váltása"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "Fizikai processzorok váltása"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "Üss le egy billentyűt vagy használd a fel és le kurzor billentyűket."
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "Ismeretlen parancs - próbáld meg a h a segitségért"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "képernyő frissítése"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "beállítások kiírása a %s-be"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "alap"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc nem adta vissza a <domain/>"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d Red Hat által"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -347,10 +360,11 @@ msgstr ""
+ "\n"
+ "OPTIONS"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "A virt-top CSV fájlok támogatása nélkül lett fordítva"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "A virt-top dátumok és idők nélküli támogatással lett fordítva"
++
+diff --git a/po/id.po b/po/id.po
+index 91eeb7a..da75176 100644
+--- a/po/id.po
++++ b/po/id.po
+_at_@ -1,9 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-#
+-# Translators:
+-# Andika Triwidada <andika_at_gmail.com>, 2014
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -19,39 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=1; plural=0;\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# berkas konfigurasi virt-top %s\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# Fungsikan keluaran CSV ke berkas yang dinamai\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# Untuk melindungi berkas ini dari tertimpa, ubah baris berikutnya menjadi "
+-"bukan komentar\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# Untuk mengirim pesan awakutu dan galat ke sebuah berkas, ubah baris "
+-"berikutnya menjadi bukan komentar\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# dijangkitkan pada %s oleh %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -59,274 +50,299 @@ msgstr ""
+ "%d domain, %d aktif, %d berjalan, %d tidur, %d diistirahatkan, %d tak aktif "
+ "D:%d O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: tampilan mestinya %s"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: urutan mestinya: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: parameter tak dikenal"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: butir konfigurasi ``%s'' diabaikan\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: tak dapat menata tundaan negatif"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "Mode batch"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "Permintaan baca blok"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "Permintaan tulis blok"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr ""
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr ""
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -336,10 +352,11 @@ msgid ""
+ "OPTIONS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr ""
++
+diff --git a/po/it.po b/po/it.po
+index 65036f4..645b344 100644
+--- a/po/it.po
++++ b/po/it.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,39 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# file di configurazione virt-top %s\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# Abilita l'output CSV al file indicato\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# Per proteggere questo file e non sovrascriverlo decommentare la riga "
+-"successiva\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# Per inviare i messaggi d'errore e di debug ad un file decommentare la riga"
+-" successiva\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# generato su %s da %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -57,278 +50,301 @@ msgstr ""
+ "%d domini, %d attivi, %d in esecuzione, %d sospesi, %d in pausa, %d inattivo"
+ " D:%d O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: il display dovrebbe essere %s"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: l'ordine dovrebbe essere: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: parametro sconosciuto"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: oggetto per la configurazione ``%s'' ignorato\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: impossibile impostare un ritardo negativo"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "Modalità batch"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "Richieste di lettura del blocco"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "Richieste di scrittura del blocco"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB dai guest)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "Modifica ritardo da %.1f a: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "Collega all'URI (predefinito: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "Collega: %s; Nome host: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "MADALITÀ DISPLAY"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "Il ritardo deve essere > 0"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "Intervallo di tempo del ritardo (secondi)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "Ritardo: %.1f sec; Batch: %s; Sicuro: %s; Ordina: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "Disabilita le statistiche della CPU in CSV"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "Disabilita le statistiche del dispositivo a blocchi in CSV"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "Disabilita le statistiche della rete in CSV"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "Non leggere il file init"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "ID del dominio"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "Nome del dominio"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "Display dei domini"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Errore"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "Esci ad un tempo indicato"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Aiuto"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "Ritardo della CPU storico"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "Statistiche del log per il file CSV"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "TASTI PRINCIPALI"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "Maggiori informazioni nella pagina man di virt-top(1). Premere qualsiasi "
+ "tasto per ritornare allo stato precedente."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"NB: Se si desidera monitorare un hypervisor di Xen locale, generalmente sarà"
+-" necessario eseguire il riavvio"
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "Byte RX della rete"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "Byte TX della rete"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "Non è un numero valido"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "Numero di iterazioni da eseguire"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Esci"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "Esegui da uno script (non interfaccia utente)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "ORDINE IN CORSO"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "Modalità (\\\"kiosk\\\") Sicuro"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "Campo seleziona ordine"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "Invia i messaggi di debug al file"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "Imposta il nome del file init"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "Imposta ordine (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "Imposta ordine per il display principale"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "Imposta l'intervallo di aggiornamento"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "Ordina per %CPU"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "Ordina per %MEM"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "Ordina per ID"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "Ordina per TIME"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "Avvia mostrando i dispositivi a blocchi"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "Avvia mostrando le interfacce di rete"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "Avvia mostrando le pCPU (predefinito: compiti)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "TIME (ora CPU)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "Commuta i dispositivi a blocchi"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "Commuta le interfacce di rete"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "Commuta le CPU fisiche"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "Premere il tasto o usare i tasti del cursore su e giù."
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "Comando sconosciuto - provare 'h' per l'aiuto"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "Aggiorna display"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "Impostazioni scritte su %s"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr ""
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc non ha ritornato <domain/>"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -344,10 +360,11 @@ msgstr ""
+ "\n"
+ "OPZIONI"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "virt-top è stata compilata senza il supporto per i file CSV"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "virt-top è stata compilata senza il supporto per le date e l'ora"
++
+diff --git a/po/ja.po b/po/ja.po
+index 3115905..4b924db 100644
+--- a/po/ja.po
++++ b/po/ja.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,35 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=1; plural=0\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s virt-top の設定ファイル\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# 指定したファイルへの CSV 形式での出力を有効にします。\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
+-msgstr "# このファイルが上書きされるのを防ぐには、次の行をアンコメントします。\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
+-msgstr "# デバッグメッセージとエラーメッセージをファイルに出力するには、次の行をアンコメントします。\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# %s 上で生成 (%s による)\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -53,274 +50,299 @@ msgstr ""
+ "定義済み %d 個, 有効化 %d 個, 稼働中 %d 個, 休止中 %d 個, 停止中 %d 個, 非稼働 %d 個, カウンター D:%d O:%d"
+ " X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: 表示は %s となるべきです"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: 分類順は次のようになるべきです: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: 不明なパラメータ"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: 設定項目 ``%s'' 無視されました。\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: 遅延間隔にマイナスは指定できません。"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "バッチモード"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "読み込み要求を阻止する"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "書き込み要求を阻止する"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB をゲストで使用中)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "遅延間隔を %.1f から次の秒数へ変更する: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "接続先のlibvirt URI(デフォルト: xen:///)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "接続 : %s; ホスト名 : %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "表示モード"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "遅延間隔はゼロ以外より大きい整数でなければなりません。"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "遅延間隔(秒)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "遅延間隔: %.1f 秒; バッチ: %s; セキュア: %s; 分類: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "CSV 内の CPU 統計を無効にする"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "CSV 内のブロックデバイス統計を無効にする"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "CSV 内のネットワークの統計を無効にする"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "バージョン番号を表示して終了"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "init ファイルを読み込まない"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "ドメイン ID"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "ドメイン名"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "ドメイン表示"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "エラー"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "任意の時点で終了"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "ヘルプ"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "CPU 統計履歴の表示間隔"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "CSV ファイルへのログ統計"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "主要キー"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr "virt-top(1) man ページには他のヘルプが用意されています。なにかキーを押すと戻ります"
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
+-msgstr "※ローカル Xen ハイパバイザーをモニターしたい場合は、root ユーザーになる必要があります。"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "ネット RX バイト"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "ネット TX バイト"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "有効な数ではありません"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "繰り返し実行する回数"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "オフ"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "オン"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "終了"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "スクリプトから実行(ユーザーインターフェイスなし)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "分類"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "セキュア (\\\"kiosk\\\") モード"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "分類フィールドを選択"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "デバッグメッセージをファイルに書き出す"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "init ファイルの名前を設定する"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "分類順 (%s) を設定する"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "ドメイン表示の分類順を設定する"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "更新間隔を設定"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "%CPU で分類"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "%MEM で分類"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "ID で分類"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "時間で分類"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "ブロックデバイスの表示で開始"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "ネットワークインターフェイスの表示で開始"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "pCPU の表示で開始(デフォルト: タスク)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "時間(CPU 時間)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "ブロックデバイスの切り替え"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "ネットワークインターフェイスの切り替え"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "物理 CPU の切り替え"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "キーをタイプするか、または上下カーソルキーを使用"
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "不明なコマンド - 'h' を使用してヘルプ参照 "
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "表示を更新"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "%s への設定を書き込み"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "デフォルト"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc 関数はドメイン情報を返しませんでした"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -336,10 +358,11 @@ msgstr ""
+ "\n"
+ "オプション"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "virt-top は CSV ファイル用のサポートなしでコンパイルされています"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "virt-top は日付と時刻用のサポートなしでコンパイルされています"
++
+diff --git a/po/ka.po b/po/ka.po
+index 5551327..624a93e 100644
+--- a/po/ka.po
++++ b/po/ka.po
+_at_@ -1,9 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-#
+-# Translators:
+-# George Machitidze <giomac_at_gmail.com>, 2013
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -19,308 +14,333 @@ msgstr ""
+ "Plural-Forms: nplurals=1; plural=0;\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr ""
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "შეცდომა"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "დახმარება"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "გასვლა"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "ნაგულისხმები"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc-მა არ დააბრუნა<domain/>"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -330,10 +350,11 @@ msgid ""
+ "OPTIONS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr ""
++
+diff --git a/po/kn.po b/po/kn.po
+index 70491c6..445a948 100644
+--- a/po/kn.po
++++ b/po/kn.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,39 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=1; plural=0\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s virt-top ಸಂರಚನಾ ಕಡತ\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# CSV ಔಟ್‌ಪುಟ್ ಅನ್ನು ಹೆಸರಿಸಲಾದ ಕಡತಕ್ಕೆ ಶಕ್ತಗೊಳಿಸು\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# ಈ ಕಡತವನ್ನು ತಿದ್ದಿ ಬರೆಯುವುದನ್ನು ತಪ್ಪಿಸಲು, ಮುಂದಿನ ಸಾಲಿನಲ್ಲಿರುವ # ಅನ್ನು "
+-"ತೆಗೆದು ಹಾಕಿ\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# ದೋಷ ನಿವಾರಣಾ ಹಾಗು ದೋಷ ಸಂದೇಶಗಳನ್ನು ಒಂದು ಕಡತಕ್ಕೆ ಕಳುಹಿಸಲು, ಮುಂದಿನ "
+-"ಸಾಲಿನಲ್ಲಿರುವ # ಅನ್ನು ತೆಗೆದು ಹಾಕಿ\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# %s ನಲ್ಲಿ %s ಇಂದ ಉತ್ಪಾದಿಸಲ್ಪಟ್ಟಿದೆ\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -57,278 +50,301 @@ msgstr ""
+ "%d ಡೊಮೈನ್‌ಗಳು, %d ಸಕ್ರಿಯ, %d ಚಾಲಿತ, %d ಜಡ, %d ವಿರಮಿಸಿದ, %d ನಿಷ್ಕ್ರಿಯ D:%d "
+ "O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: ಪ್ರದರ್ಶಕವು %s ಆಗಿರಬೇಕು"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: ವಿಂಗಡಣಾ ಬಗೆಯು ಹೀಗಿರಬೇಕು: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: ಗೊತ್ತಿರದ ನಿಯತಾಂಕ"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: ಸಂರಚನಾ ಅಂಶ ``%s'' ಅನ್ನು ಆಲಕ್ಷಿಸಲಾಗಿದೆ\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: ಋಣಾತ್ಮಕ ವಿಳಂಬವನ್ನು ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "ಗುಂಪು ಕ್ರಮ"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "ಖಂಡದ ಓದಲು ಮನವಿಗಳು"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "ಖಂಡದ ಬರೆಯಲು ಮನವಿಗಳು"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB (ಅತಿಥಿಗಳಿಂದ %Ld MB)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "ವಿಳಂಬವನ್ನು %.1f ಯಿಂದ ಇದಕ್ಕೆ ಬದಲಾಯಿಸಿ: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "URI ಗೆ ಸಂಪರ್ಕ ಕಲ್ಪಿಸು (ಡೀಫಾಲ್ಟ್‍: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "ಸಂಪರ್ಕ: %s; ಅತಿಥೇಯ ಹೆಸರು: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "DISPLAY MODES"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "ವಿಳಂಬವು > 0 ಇರಬೇಕು"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "ವಿಳಂಬದ ಕಾಲಾವಧಿ (ಸೆಕೆಂಡುಗಳಲ್ಲಿ)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "ವಿಳಂಬ: %.1f ಸೆಕೆಂಡುಗಳು; ಗುಂಪು: %s; ಸುರಕ್ಷತೆ: %s; ವಿಂಗಡಣೆ: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "CSVಯಲ್ಲಿ CPU ಅಂಕಿಅಂಶಗಳನ್ನು ಅಶಕ್ತಗೊಳಿಸಿ"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "CSVಯಲ್ಲಿ ಖಂಡ ಸಾಧನದ ಅಂಕಿಅಂಶಗಳನ್ನು ಅಶಕ್ತಗೊಳಿಸಿ"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "CSVಯಲ್ಲಿ ಜಾಲದ ಅಂಕಿಅಂಶಗಳನ್ನು ಅಶಕ್ತಗೊಳಿಸಿ"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "ಆವೃತ್ತಿಯ ಸಂಖ್ಯೆಯನ್ನು ತೋರಿಸಿ ನಿರ್ಗಮಿಸು"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "init ಕಡತವನ್ನು ಓದಬೇಡ"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "ಡೊಮೈನ್ ಐಡಿ"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "ಡೊಮೈನ್‌ ಹೆಸರು"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "ಡೊಮೈನ್‌ಗಳ ಪ್ರದರ್ಶನ"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "ದೋಷ"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "ಒದಗಿಸಲಾದ ಸಮಯದಲ್ಲಿ ನಿರ್ಗಮಿಸು"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "ಸಹಾಯ"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "ಐತಿಹಾಸಿಕವಾದ CPU ವಿಳಂಬ"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "ಅಂಕಿಅಂಶಗಳನ್ನು CSV ಕಡತಕ್ಕೆ ದಾಖಲಿಸು"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "MAIN KEYS"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "ಹೆಚ್ಚಿನ ನೆರವು virt-top(1) man ಪುಟದಲ್ಲಿ ಲಭ್ಯವಿದೆ. ಮರಳಲು ಯಾವುದೆ ಕೀಲಿಯನ್ನು "
+ "ಒತ್ತಿ."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"NB: ನೀವು ಒಂದು ಸ್ಥಳೀಯ Xen ಹೈಪರ್ವೈಸರ್ ಅನ್ನು ನೋಡಿಕೊಳ್ಳಬೇಕೆಂದರೆ, ನೀವು ಗಣಕ "
+-"ನಿರ್ವಾಹಕರಾಗಿರಬೇಕು"
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "ಒಟ್ಟು RX ಬೈಟ್‌ಗಳು"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "ಒಟ್ಟು TX ಬೈಟ್‌ಗಳು"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "ಒಂದು ಮಾನ್ಯವಾದ ಸಂಖ್ಯೆಯಲ್ಲ"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "ಚಲಾಯಿಸಬೇಕಿರುವ ಪುನರಾವೃತ್ತಿಗಳ ಸಂಖ್ಯೆ"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "ಆಫ್‌"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "ಆನ್‌"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "ಬಿಟ್ಟು ಬಿಡು"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "ಸ್ಕ್ರಿಪ್ಟಿನಿಂದ ಚಲಾಯಿಸು (ಬಳಕೆದಾರ ಸಂಪರ್ಕಸಾಧನವಿಲ್ಲ)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "SORTING"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "ಸುರಕ್ಷಿತ (\\\"ಕಿಯೋಸ್ಕ್‍\\\") ಕ್ರಮ"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "ವಿಂಗಡಣಾ ಕ್ಷೇತ್ರವನ್ನು ಆರಿಸು"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "ದೋಷ ನಿವಾರಣಾ ಸಂದೇಶಗಳನ್ನು ಕಡತಕ್ಕೆ ಕಳುಹಿಸು"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "init ಕಡತಕ್ಕೆ ಹೆಸರನ್ನು ಸೂಚಿಸು"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "ವಿಂಗಡಣಾ ಕ್ರಮವನ್ನು (%s) ಸೂಚಿಸು"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "ಮುಖ್ಯ ಪ್ರದರ್ಶಕಕ್ಕಾಗಿ ವಿಂಗಡಣಾ ಕ್ರಮವನ್ನು ಸೂಚಿಸು"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "ಅಪ್ಡೇಟ್ ಕಾಲಾವಧಿಯನ್ನು ಸೂಚಿಸು"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "%CPU ಆಧಾರದ ಮೇಲೆ ವಿಂಗಡಿಸು"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "%MEM ಆಧಾರದ ಮೇಲೆ ವಿಂಗಡಿಸು"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "ID ಆಧಾರದ ಮೇಲೆ ವಿಂಗಡಿಸು"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "TIME ಆಧಾರದ ಮೇಲೆ ವಿಂಗಡಿಸು"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "ಖಂಡ ಸಾಧನಗಳನ್ನು ತೋರಿಸಲು ಆರಂಭಿಸು"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "ಜಾಲಬಂಧ ಸಂಪರ್ಕ ಸಾಧನಗಳನ್ನು ತೋರಿಸಲು ಆರಂಭಿಸು"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "pCPUಗಳನ್ನು ತೋರಿಸಲು ಆರಂಭಿಸು (ಡೀಫಾಲ್ಟ್‍: ಕಾರ್ಯಗಳು)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "TIME (CPU ಸಮಯ)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "ಖಂಡ ಸಾಧನಗಳನ್ನು ಟಾಗಲ್ ಮಾಡು"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "ಜಾಲಬಂಧ ಸಂಪರ್ಕಸಾಧನಗಳನ್ನು ಟಾಗಲ್ ಮಾಡು"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "ಭೌತಿಕ CPUಗಳನ್ನು ಟಾಗಲ್ ಮಾಡು"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "ಕೀಲಿಯನ್ನು ಟೈಪಿಸಿ ಅಥವ ಅಪ್ ಹಾಗು ಡೌನ್ ತೆರೆಸೂಚಕ ಕೀಲಿಗಳನ್ನು ಬಳಸು."
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "ಗೊತ್ತಿರದ ಆಜ್ಞೆ - ನೆರವಿಗಾಗಿ 'h' ಅನ್ನು ಪ್ರಯತ್ನಿಸಿ"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "ಅಪ್ಡೇಟಿನ ಪ್ರದರ್ಶನ"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "ಸಂಯೋಜನೆಗಳನ್ನು %s ಗೆ ಬರೆಯಲಾಗಿದೆ"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "ಪೂರ್ವನಿಯೋಜಿತ"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc <domain/> ಅನ್ನು ಮರಳಿಸಿಲ್ಲ"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -344,10 +360,11 @@ msgstr ""
+ "\n"
+ "ಆಯ್ಕೆಗಳು"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "virt-top ಅನ್ನು CSV ಕಡತಗಳಿಗೆ ಬೆಂಬಲವಿಲ್ಲದಂತೆ ಕಂಪೈಲ್ ಮಾಡಲಾಗಿದೆ"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "virt-top ಅನ್ನು ದಿನಾಂಕ ಹಾಗು ಸಮಯಗಳಿಗೆ ಬೆಂಬಲವಿಲ್ಲದಂತೆ ಕಂಪೈಲ್ ಮಾಡಲಾಗಿದೆ"
++
+diff --git a/po/ml.po b/po/ml.po
+index d06efa9..3e6b672 100644
+--- a/po/ml.po
++++ b/po/ml.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,39 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s virt-top ക്രമീകരണ ഫയല്‍\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# പറഞ്ഞിരിക്കുന്ന ഫയലിലേക്ക് CSV ഔട്പുട് പ്രാവര്‍ത്തികമാക്കുക\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# ഈ ഫയലിന്റെ മുകളിലേക്ക് എഴുതാതിരിക്കാതെ സൂക്ഷിക്കാന്‍, അടുത്ത വരി "
+-"അണ്‍കമെന്റ് ചെയ്യുക (കമെന്റ് മാറ്റുക) \\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# പിശകു്‌, ഡീബഗ് സന്ദേശങ്ങള്‍ ഒരു ഫയലിലേക്ക് അയക്കുവാന്‍, അടുത്ത വരി "
+-"അണ്‍കമെന്റ് ചെയ്യുക (കമെന്റ് മാറ്റുക) \\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "#ഉണ്ടാക്കിയത് ഈ സമയം: %s , %s വക \\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -57,281 +50,304 @@ msgstr ""
+ "%d ഡൊമേനുകള്‍, %d സജീവം, %d പ്രവര്‍ത്തിക്കുന്നു, %d ഉറങ്ങുന്നു, %d "
+ "താല്‍കാലികമായി നിര്‍ത്തിയിരിക്കുന്നു, %d നിര്‍ജ്ജീവം D:%d O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: ഡിസ്പ്ലേ %s ആകണം"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: ക്രമം %s ആകണം"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: അറിയാത്ത ചരം (പാരാമീറ്റര്‍)"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: ക്രമീകരണ ഇനം ``%s'' അവഗണിച്ചു\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: പൂജ്യത്തിനു താഴെ ഡിലേ (കാത്തിരിക്കേണ്ട സമയം) വെക്കാന്‍ കഴിയില്ല"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "ബാച് സ്ഥിതി"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "ബ്ലോക്ക് വായിക്കാന്‍ ആവശ്യങ്ങള്‍"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "ബ്ലോക്ക് എഴുതാന്‍ ആവശ്യങ്ങള്‍"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB അഥിതികള്‍ വക)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "ഡിലേ %.1fല്‍ നിന്നും മാറ്റുക ഇതിലേക്ക് :"
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "ഈ URI-ലേക്ക് കണക്ട് ചെയ്യുക (സ്വാഭാവികം : Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "കണക്ട് : %s; ആഥിതേയന്റെ പേരു്‌: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "കാണിക്കാനുള്ള ദശകള്‍"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "ഡിലേ (കാത്തിരിക്കേണ്ട സമയം) > 0 ആകണം"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "ഡിലേ (കാത്തിരിക്കേണ്ട സമയം) സെകന്റില്‍"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr ""
+ "ഡിലേ (കാത്തിരിക്കേണ്ട സമയം) : %.1f secs; ബാച്ച്: %s; സുരക്ഷിതം: %s;ക്രമം: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "CSV-ല്‍ CPU അവസ്ഥ പ്രവര്‍ത്തന രഹിതമാക്കുക"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "CSV-ല്‍ ബ്ലോക്ക് ഡിവൈസ് അവസ്ഥ പ്രവര്‍ത്തന രഹിതമാക്കുക"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "CSV-ല്‍ net അവസ്ഥ പ്രവര്‍ത്തന രഹിതമാക്കുക"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "ഇനിറ്റ്( init) ഫയല്‍ വായിക്കരുത്"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "ഡൊമേന്‍ തിരിച്ചറിയല്‍"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "ഡൊമേന്‍ പേരു്‌"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "ഡൊമേന്‍സ് ഡിസ്പ്ലേ"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "പിശക്"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "തന്ന സമയത്തില്‍ പുറത്തിറങ്ങുക"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "സഹായം"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "ഹിസ്റ്റോറിക്കല്‍ സിപിയു ഡിലേ"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "CSV ഫയലിലേക്കുള്ള ലോഗ് സ്ഥിതിവിവരക്കണക്കുകള്‍"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "പ്രധാന കീകള്‍"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "virt-top(1) man താളില്‍ കൂടുതല്‍ സഹായം. തിരികെ പോകുന്നതിനായി ഏതെങ്കിലും കീ "
+ "അമര്‍ത്തുക."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"കുറിപ്പു്: ഒരു ലോക്കല്‍ ക്സെന്‍ ഹൈപ്പര്‍വൈസര്‍ നിരീക്ഷിക്കുന്നതിനു്, ഒരു "
+-"റൂട്ടായി പാടുള്ളൂ."
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "നെറ്റ് RX ബൈറ്റുകള്‍"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "നെറ്റ് TX ബൈറ്റുകള്‍"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "ശരിയായ അക്കം അല്ല"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "Number of iterations to run"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "നിര്‍ത്തുക"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "ഒരു സ്ക്രിപ്റ്റില്‍ നിന്നും പ്രവര്‍ത്തിപ്പിക്കുക (no user interface)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "ക്രമീകരിക്കുന്നു"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "സെക്യുര്‍ (\\\"kiosk\\\") മോഡ്"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "സോര്‍ട്ട് ഫീള്‍ഡ് തെരഞ്ഞെടുക്കുക"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "ഫയലിലേക്കു് ഡീബഗ് സന്ദേശങ്ങള്‍ അയയ്ക്കുക"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "init ഫയലിനുള്ള പേരു് സജ്ജമാക്കുക"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "ക്രമം സജ്ജമാക്കുക (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "Set sort order for main display"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "പരിഷ്കരണത്തിനുള്ള ഇടവേള ക്രമികരിക്കുക"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "%CPU അനുസരിച്ചു് ക്രമത്തിലാക്കുക"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "%MEM അനുസരിച്ചു് ക്രമത്തിലാക്കുക"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "ഐഡി അനുസരിച്ചു് ക്രമത്തിലാക്കുക"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "സമയമനുസരിച്ചു് ക്രമത്തിലാക്കുക"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "ബ്ലോക്ക് ഡിവൈസകുള്‍ കാണിച്ചു് ആരംഭിക്കുക"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "സംയോജക ഘടകങ്ങള്‍ കാണിച്ചു് ആരംഭിക്കുക"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "pCPU കാണിച്ചു് ആരംഭിക്കുക (default: tasks)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "സമയം (CPU സമയം)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "ബ്ലോക്ക് ഡിവൈസുകള്‍ ടൊഗിള്‍ ചെയ്യുക"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "നെറ്റ്‌വര്‍ക്ക് സംയോജകഘടകങ്ങള്‍ ടൊഗിള്‍ ചെയ്യുക"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "ഫിസിക്കല്‍ സിപിയുകള്‍ ടൊഗിള്‍ ചെയ്യുക"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr ""
+ "കീ ടൈപ്പ് ചെയ്യുക അല്ലെങ്കില്‍ മുകളിലേക്കും താഴേക്കുമുള്ള കര്‍സര്‍ കീകള്‍ "
+ "ഉപയോഗിക്കുക"
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "സഹായത്തിനായി അപരിചിതമായ നിര്‍ദ്ദേശം - try 'h' ഉപയോഗിക്കുക"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "ഡിസ്പ്ലേ പുതുക്കുക"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "%s-ലേക്കു് ക്രമികരണങ്ങളിക്ക് എഴുതപ്പെട്ടിരിക്കുന്നു"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr ""
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc didn't return <domain/>"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -347,13 +363,14 @@ msgstr ""
+ "\n"
+ "OPTIONS"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr ""
+ "CSV ഫയലുകള്‍ക്കുള്ള പിന്തുണ ലഭ്യമല്ലാതെ virt-top കംപൈല്‍ ചെയ്തിരിക്കുന്നു"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr ""
+ "തീയതികള്‍ക്കും സമയങ്ങള്‍ക്കുമുള്ള പിന്തുണ ലഭ്യമല്ലാതെ virt-top കംപൈല്‍ "
+ "ചെയ്തിരിക്കുന്നു"
++
+diff --git a/po/mr.po b/po/mr.po
+index 3adfac8..536df27 100644
+--- a/po/mr.po
++++ b/po/mr.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,38 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s virt-top संरचना फाइल\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# नामांकीत फाइल करीता CSV आऊटपुट कार्यान्वीत करा\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# ही फाइल खोडून पुन्हा लिहीण्यापासून, पुढिल ओळीतील टिपण्णी काढून टाका\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# फाइल करीता डीबग व त्रुटी संदेश पाठविण्याकरीता, पुढिल ओळीतील टिपण्णीत काढून"
+-" टाका\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# %s वर बनविले, %s द्वारे\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -56,275 +50,299 @@ msgstr ""
+ "%d क्षेत्र, %d सक्रीय, %d कार्यरत, %d अकार्यक्षम, %d स्तब्ध, %d निष्क्रीय "
+ "D:%d O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: प्रदर्शक %s असायला हवे"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: क्रमवारी यानुरूप असायला हवे: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: अपरिचीत बाब"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: संयोजना घटक ``%s'' दुर्लक्षीत केले गेले\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: नकारात्मक विलंब निश्चित केले जाऊ शकत नाही"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "बॅच् पद्धती"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "ब्लॉक वाचन करीता आवश्यकता"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "ब्लॉक लेखन आवश्यक"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB अतिथी द्वारे)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "%.1f पासूनचे विलंब यानुरूप बदलवा: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "URI शी जुळवणी करा (मुलभूत: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "जुळवणी: %s; यजमाननाव: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "DISPLAY पद्धती"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "विलंब असायला हवे > 0"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "विलंब वेळ अवधी (सेकंद)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "विलंब: %.1f secs; बॅच्: %s; सुरक्षीत: %s; क्रमवारी: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "CSV अंतर्गत CPU आकडेवारी अकार्यान्वीत करा"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "CSV अंतर्गत ब्लॉक साधन आकडेवारी अकार्यान्वीत करा"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "CSV अंतर्गत नेट आकडेवारी अकार्यान्वीत करा"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "आवृत्ती क्रमांक दाखवा व बाहेर पडा"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "init फाइल वाचू नका"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "डोमेन ID"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "क्षेत्र नाव"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "क्षेत्र प्रदर्शन"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "चूक"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "ठराविक वेळेस बाहेर पडा"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "मदत"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "ऐतिहासिक CPU विलंब"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "CSV फाइल करीता लॉग आकडेवारी"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "मुख्य कि"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr "virt-top(1) man पान अंतर्गत अधिक मदत. पहाण्याकरीता कुठलिही कि दाबा."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"NB: स्थानीय Xen हायपरवाइजर मॉनीटर करायचे असल्यास, तुम्हाला रूट व्हावे लागेल"
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "एकूण RX बाइटस्"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "एकूणTX बाइटस्"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "वैध संख्या नाही"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "चालविण्याजोगी काळचक्रची संख्या"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "बंद करा"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "सुरू करा"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "सोडून द्या"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "स्क्रीप्ट पासून चालवा (वापरकर्ता संवाद नाही)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "SORTING"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "सुरक्षा (\\\"कीओस्क्\\\") पद्धती"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "क्रमवारी गुणविशेष निवडा"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "डीबग संदेश फाइल करीता पाठवा"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "init फाइल करीता नाव निश्चित करा"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "क्रमवारी निश्चित करा (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "क्रमवारी निश्चित करा (%s)"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "अद्ययावत अवधी निश्चित करा"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "%CPU नुरूप क्रमावरीत लावा"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "%MEM नुरूप क्रमावरीत लावा"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "ID नुरूप क्रमावरीत लावा"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "TIME नुरूप क्रमावरीत लावा"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "ब्लॉक साधन दर्शवून प्रारंभ करा"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "संजाळ संवाद दर्शवून प्रारंभ करा"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "pCPUs दर्शवून प्रारंभ करा (मुलभूत: कार्य))"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "TIME (CPU वेळ)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "ब्लॉक साधन बदलवा"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "संजाळ संवाद बदलवा"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "वास्तविक CPU बदलवा"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "कि टाइप करा किंवा वर आणि खाली कर्सर कि चा वापर करा."
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "अपरिचीत आदेश - मदत करीता 'h' वापरून पहा"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "प्रदर्शन अद्ययावत करा"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "%s करीता संयोजना लिहीले"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "पूर्वनिर्धारित"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc ने <domain/> पुरवले नाही"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d, Red Hat द्वारे"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -340,10 +358,11 @@ msgstr ""
+ "\n"
+ "पर्याय"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "virt-top ला CSV फाइल करीता समर्थन न पुरविता कंपाईल केले गेले"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "virt-top ला दिनांक व वेळ करीता समर्थन न पुरविता कंपाईल केले गेले"
++
+diff --git a/po/nl.po b/po/nl.po
+index 67aa032..46ee51e 100644
+--- a/po/nl.po
++++ b/po/nl.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,39 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s virt-top configuratiebestand\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# Schakel CSV output naar het genoemde bestand\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# Om dit bestand te beschermen tegen overschrijven, haal het commentaar "
+-"teken weg inde volgende regel\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# Om debug en foutmeldingen naar een bestand te sturen, haal het commentaar "
+-"teken weg in de volgende regel\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# gegenereerd op %s door %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -57,277 +50,300 @@ msgstr ""
+ "%d domeinen, %d actief, %d draaiend, %d slapend, %d gepauzeerd, %d inactieve"
+ " D:%d O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: display moet %s zijn"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: sorteervolgorde moet worden: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: onbekende parameter"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: configuratie item ``%s'' genegeerd\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: kan geen negatieve vertraging instellen"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "Batch mode"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "Blok lees aanvragen"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "Blok schrijf aanvragen"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU:%2.1f%% Mem: %Ld MB (%Ld MB door gasten)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "Verander vertraging van %.1f naar: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "Verbind met URI (standaard: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "Verbinding: %s; hostnaam: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "DISPLAY MODES"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "Vertraging moet > 0 zijn"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "Vertragingstijd interval (seconden)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "Vertraging: %.1f sec; batch: %s; veilig: %s; sorteren: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "Zet CPU stats in CSV uit"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "Zet blokapparaat stats in CSV uit"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "Zet netwerk stats in CSV uit"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "Toon versie nummer en sluit af"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "Lees init bestand niet"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "Domein ID"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "Domeinnaam"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "Domeinen display"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Fout"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "Afsluiten op aangegeven tijdstip"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Hulp"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "Historische CPU vertraging"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "Log statistieken naar CSV bestand"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "HOOFD SLEUTELS"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "Meer hulp in de virt-top(1) man pagina. Druk op een toets om terug te keren."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"NB: Als je een lokale Xen hypervisor wilt monitoren, moet je gewoonlijk root"
+-" zijn."
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "Netwerk RX bytes"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "Netwerk TX bytes"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "Geen geldig getal"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "Aantal te draaien iteraties"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "Uit"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "Op"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Verlaten"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "Uitvoeren vanuit een script (geen gebruikersinterface)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "SORTEREN"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "Veilige (\\\"kiosk\\\") mode"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "Selecteer sorteer veld"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "Stuur debug berichten naar bestand"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "Stel naam van init bestand in"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "Stel sorteervolgorde in (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "Stel sorteervolgorde in voor hoofddisplay"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "Stel vernieuw-interval in"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "Sorteer volgens %CPU"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "Sorteer volgens %MEM"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "Sorteer volgens ID"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "Sorteer volgens TIJD"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "Begin met het weergeven van blokapparaten"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "Begin met het weergeven van netwerkinterfaces"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "Begin met het weergeven van pCPU's (standaard: taken)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "TIJD (CPU-tijd)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "Schakel blokapparaten om"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "Schakel netwerkinterfaces om"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "Schakel fysieke CPU's om"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "Type toets of gebruik omhoog en omlaag cursortoetsen."
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "Onbekend commando - probeer 'h' voor hulp"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "Vernieuw display"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "Instellingen naar %s geschreven"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "standaard"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc gaf <domain/> niet terug"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d door Red Hat"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -343,10 +359,11 @@ msgstr ""
+ "\n"
+ "OPTIES"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "virt-top werd gecompileerd zonder ondersteuning voor CSV bestanden"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "virt-top werd gecompileerd zonder ondersteuning voor datum en tijd"
++
+diff --git a/po/or.po b/po/or.po
+index eefe587..066d36d 100644
+--- a/po/or.po
++++ b/po/or.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,39 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s virt-top ବିନ୍ୟାସ ଫାଇଲ\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# CSV ଫଳାଫଳକୁ ନାମିତ ଫାଇଲରେ ସକ୍ରିୟ କରନ୍ତୁ\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# ଏହି ଫାଇଲକୁ ନବଲିଖନ ହେବାରୁ ସୁରକ୍ଷିତ କରିବା ପାଇଁ, ପରବର୍ତ୍ତୀ ଧାଡ଼ିକୁ ଟିପ୍ପଣୀହୀନ"
+-" କରନ୍ତୁ\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# ତ୍ରୁଟି ନିବାରଣ ଏବଂ ତ୍ରୁଟି ସନ୍ଦେଶଗୁଡ଼ିକୁ ଗୋଟିଏ ଫାଇଲ ମଧ୍ଯକୁ ପଠାଇବା ପାଇଁ, "
+-"ପରବର୍ତ୍ତୀ ଧାଡ଼ିକୁ ଟିପ୍ପଣୀବିହୀନ କରନ୍ତୁ\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# %s ତାରିଖରେ %s ଦ୍ୱାରା ନିର୍ମିତ\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -57,277 +50,300 @@ msgstr ""
+ "%d ଡମେନ, %d ସକ୍ରିୟ, %d ଚାଲୁଅଛି, %d ସୁପ୍ତ, %d ସ୍ଥିର, %d ନିଷ୍କ୍ରିୟ D:%d O:%d "
+ "X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: ପ୍ରଦର୍ଶନଟି %s ହୋଇଥିବା ଉଚିତ"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: କ୍ରମସଜ୍ଜା ଏହି ପରି ହେବା ଉଚିତ: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: ଅଜଣା ପ୍ରାଚଳ"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: ବିନ୍ୟାସ ବସ୍ତୁ ``%s'' କୁ ଅଗ୍ରାହ୍ୟ କରାଯାଇଛି\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: ରୂଣାତ୍ମକ ବିଳମ୍ବ ସେଟ କରିପାରିବେ ନାହିଁ"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "ବ୍ୟାଚ ଅବସ୍ଥା"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "ପଠନୀୟ reqs କୁ ଅଟକାନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "ଲିଖନୀୟ reqs କୁ ଅଟକାନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "ବିଳ୍ମ୍ବକୁ %.1f କୁ ପରିବର୍ତ୍ତନ କରନ୍ତୁ: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "URI ସହିତ ସଂଯୋଗ କରନ୍ତୁ (default: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "ସଂଯୋଗ କରନ୍ତୁ: %s; ହୋଷ୍ଟ ନାମ: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "DISPLAY MODES"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "ବିଳମ୍ବ ନିଶ୍ଚିତ ଭାବରେ > 0"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "ବିଳମ୍ବ ସମୟ ଅନ୍ତରାଳ (ସେକଣ୍ଡ)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "ବିଳମ୍ବ: %.1f secs; ବ୍ୟାଚ: %s; ସୁରକ୍ଷିତ: %s; କ୍ରମ: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "CPU stats କୁ CSV ରେ ନିଷ୍କ୍ରିୟ କରନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "ବ୍ଲକ ଉପକରଣ stats କୁ CSV ରେ ନିଷ୍କ୍ରିୟ କରନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "ନେଟ stats କୁ CSV ରେ ନିଷ୍କ୍ରିୟ କରନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "ସଂସ୍କରଣ ସଂଖ୍ୟାକୁ ନିଷ୍କ୍ରିୟ କରନ୍ତୁ ଏବଂ ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "init ଫାଇଲକୁ ପଢ଼ନ୍ତୁ ନାହିଁ"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "ପରିସର ପରିଚୟ"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "ଡମେନ ନାମ"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "ଡମେନ ଦୃଶ୍ୟ"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "ତ୍ରୁଟି"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "ପ୍ରଦତ୍ତ ସମୟରେ ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "ସହାୟତା"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "ପୁରାତନ CPU ବିଳମ୍ବ"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "CSV ଫାଇଲରେ ପରିସଂଖ୍ୟାନକୁ ଲଗ କରନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "MAIN KEYS"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "virt-top(1) man ପୃଷ୍ଠାରେ ଅଧିକ ସହାୟତା। ଫେରିବା ପାଇଁ ଯେକୌଣସି କି କୁ ଦବାନ୍ତୁ।"
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"NB: ଯଦି ଆପଣ ଗୋଟିଏ ସ୍ଥାନୀୟ Xen ହାଇପରଭାଇଜରକୁ ନିରିକ୍ଷଣ କରିବାକୁ ଚାହୁଁଛନ୍ତି, ତେବେ"
+-" ସାଧାରଣତଃ ମୂଖ୍ୟଚାଳକ ହେବା ଆବଶ୍ୟକ"
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "ସମୁଦାୟ RX ବାଇଟ"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "ସମୁଦାୟ TX ବାଇଟ"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "ଗୋଟିଏ ବୈଧ ସଂଖ୍ୟା ନୁହଁ"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "ଚଲାଇବା ପାଇଁ ପୁନରାବୃତ୍ତି ସଂଖ୍ୟା"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "ବନ୍ଦ"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "ରେ"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "ବିଦାୟ ନିଅନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "ଗୋଟିଏ ସ୍କ୍ରିପ୍ଟରୁ ଚଲାନ୍ତୁ (କୌଣସି ଚାଳକ ଅନ୍ତରାପୃଷ୍ଠ ନାହିଁ)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "SORTING"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "ସୁରକ୍ଷିତ (\\\"kiosk\\\") ଅବସ୍ଥା"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "କ୍ରମ ସଜ୍ଜା କ୍ଷେତ୍ରକୁ ବାଛନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "ଫାଇଲ ମଧ୍ଯକୁ ତ୍ରୁଟିନିବାରଣ ସନ୍ଦେଶ ପଠାନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "init ଫାଇଲର ନାମ ସେଟ କରନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "କ୍ରମସଜ୍ଜା ସେଟ କରୁଅଛି (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "ମୂଖ୍ୟ ପ୍ରଦର୍ଶନି ପାଇଁ କ୍ରମସଜ୍ଜା ସେଟ କରୁଅଛି"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "ଅଦ୍ୟତନ ଅନ୍ତରାଳ ସେଟ କରୁଅଛି"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "%CPU ଦ୍ୱାରା ସଜାଡ଼ନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "%MEM ଦ୍ୱାରା ସଜାଡ଼ନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "ID ଦ୍ୱାରା ସଜାଡ଼ନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "TIME ଦ୍ୱାରା ସଜାଡ଼ନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "ବ୍ଲକ ଉପକରଣଗୁଡ଼ିକୁ ଦର୍ଶାଇ ଆରମ୍ଭ କରନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "ନେଟୱର୍କ ଅନ୍ତରାପୃଷ୍ଠଗୁଡ଼ିକୁ ଦର୍ଶାଇ ଆରମ୍ଭ କରନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "pCPUs କୁ ଦର୍ଶାଇ ଆରମ୍ଭ କରନ୍ତୁ (default: tasks)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "TIME (CPU ସମୟ)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "ବ୍ଲକ ଉପକରଣଗୁଡ଼ିକୁ ଆଗପଛ କରନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "ନେଟୱର୍କ ଅନ୍ତରାପୃଷ୍ଠଗୁଡ଼ିକୁ ଆଗପଛ କରନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "ଭୌତିକ CPUs ଆଗପଛ କରନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "କି ଟାଇପ କରନ୍ତୁ କିମ୍ବା ସୂଚକ କି କୁ ଉପର ତଳ କରନ୍ତୁ।"
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "ଅଜଣା ନିର୍ଦ୍ଦେଶ - ସହାୟତା ପାଇଁ 'h' ବ୍ୟବହାର କରନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "ପ୍ରଦର୍ଶନକୁ ଅଦ୍ୟତନ କରନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "ସଂରଚନାକୁ %s ରେ ଲେଖନ୍ତୁ"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "ପୂର୍ବ ନିର୍ଦ୍ଧାରିତ"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc <domain/> ଫେରାଇନଥାଏ"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d Red Hat ଦ୍ୱାରା"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -343,10 +359,11 @@ msgstr ""
+ "\n"
+ "OPTIONS"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "virt-top CSV ଫାଇଲଗୁଡ଼ିକ ପାଇଁ ସମର୍ଥନ ବିନା ସଂକଳନ କରାଯାଇଛି"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "virt-top ତାରିଖ ଏବଂ ସମୟ ପାଇଁ ସମର୍ଥନ ବିନା ସଂକଳନ କରାଯାଇଛି"
++
+diff --git a/po/pa.po b/po/pa.po
+index 2237323..4005c46 100644
+--- a/po/pa.po
++++ b/po/pa.po
+_at_@ -1,9 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-#
+-# Translators:
+-# A S Alam <apreet.alam_at_gmail.com>, 2012
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -19,308 +14,333 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: ਅਣਜਾਣ ਪੈਰਾਮੀਟਰ"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "ਬੈਂਚ ਮੋਡ"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "ਕੁਨੈਕਟ: %s; ਹੋਸਟ-ਨਾਂ: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "ਡਿਸਪਲੇਅ ਮੋਡ"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "ਦੇਰੀ ਸਮਾਂ ਅੰਤਰਾਲ (ਸਕਿੰਟ)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "ਦੇਰੀ: %.1f ਸਕਿੰਟ; ਬੈਂਚ: %s; ਸਕਿਉਰ: %s; ਲੜੀਬੱਧ: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "init ਫਾਇਲ ਨਾ ਪੜ੍ਹੋ"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "ਡੋਮੇਨ ID"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "ਡੋਮੇਨ ਨਾਂ"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "ਡੋਮੇਨ ਡਿਸਪਲੇਅ"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "ਗਲਤੀ"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "ਦਿੱਤੇ ਸਮੇਂ ਉੱਤੇ ਬੰਦ"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "ਮੱਦਦ"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "ਅਤੀਤ CPU ਦੇਰੀ"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "ਮੁੱਖ ਕੁੰਜੀਆਂ"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "ਠੀਕ ਨੰਬਰ ਨਹੀਂ ਹੈ"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "ਬੰਦ"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "ਚਾਲੂ"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "ਬਾਹਰ"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "ਡਿਫਾਲਟ"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d Red Hat ਵਲੋਂ"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -330,10 +350,11 @@ msgid ""
+ "OPTIONS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr ""
++
+diff --git a/po/pl.po b/po/pl.po
+index 161712b..6b7863b 100644
+--- a/po/pl.po
++++ b/po/pl.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,39 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# plik konfiguracji programu virt-top %s\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# Włącza wyjście CSV do pliku named\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# Aby ochronić ten plik przed zastąpieniem, należy usunąć komentarz z "
+-"następnego wiersza\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# Aby wysłać komunikaty debugowania i błędów do pliku, należy usunąć "
+-"komentarz z następnego wiersza\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# utworzone %s przez %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -57,278 +50,303 @@ msgstr ""
+ "%d domeny, %d aktywne, %d uruchomione, %d uśpione, %d wstrzymane, %d "
+ "nieaktywne D:%d O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: ekran powinien być %s"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: porządek sortowania powinien być: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: nieznany parametr"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: zignorowano element konfiguracji ``%s''\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: nie można ustawić ujemnego opóźnienia"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "Tryb wsadowy"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "Wymagania odczytania blokowego"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "Wymagania zapisania blokowego"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "Procesor: %2.1f%% Pamięć: %Ld MB (%Ld MB przez gości)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "Zmień opóźnienie z %.1f na: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "Połącz się z URI (domyślnie: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "Połącz się: %s; nazwa gospodarza: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "TRYBY WYŚWIETLANIA"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "Opóźnienie musi wynosić > 0"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "Czas między opóźnieniami (sekundy)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr ""
+ "Opóźnienie: %.1f sekundy; wsadowo: %s; bezpieczeństwo: %s; sortowanie: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "Wyłącza statystyki procesora w CSV"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "Wyłącza statystyki urządzenia blokowego w CSV"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "Wyłącza statystyki sieci w CSV"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "Wyświetla numer wersji i kończy działanie"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "Bez odczytu pliku init"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "Identyfikator domeny"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "Nazwa domeny"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "Ekran domen"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Błąd"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "Kończy pracę o podanym czasie"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Pomoc"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "Historyczne opóźnienie procesora"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "Zapisuje statystyki do pliku CSV"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "GŁÓWNE KLUCZE"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "Więcej pomocy na stronie podręcznika virt-top(1). Proszę nacisnąć dowolny "
+ "klawisz, aby kontynuować."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
+-msgstr "NB: aby monitorować lokalnego nadzorcę Xena, zwykle należy być rootem"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "Sieciowe bajty RX"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "Sieciowe bajty TX"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "Nie jest prawidłowym numerem"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "Liczba iteracji do wykonania"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "Wyłączone"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "Włączone"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Zakończ"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "Uruchamia ze skryptu (brak interfejsu użytkownika)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "SORTOWANIE"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "Tryb bezpieczny (\\\"kiosk\\\")"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "Wybór pola sortowania"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "Wysyła komunikaty debugowania do pliku"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "Ustawia nazwę pliku init"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "Ustawia porządek sortowania (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "Ustawia porządek sortowania dla głównego ekranu"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "Ustawia czas między aktualizacjami"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "Uporządkowuje według %CPU"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "Uporządkowuje według %MEM"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "Uporządkowuje według identyfikatorów"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "Uporządkowuje według TIME"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "Uruchamia przez wyświetlenie urządzeń blokowych"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "Uruchamia przez wyświetlenie interfejsów sieciowych"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr ""
+ "Uruchamia przez wyświetlanie fizycznych procesorów (domyślnie: zadania)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "TIME (czas procesora)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "Przełącza urządzenia blokowe"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "Przełącza interfejsy sieciowe"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "Przełącza fizyczne procesory"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "Proszę podać klucz lub użyć klawiszy kursora w górę i w dół."
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "Nieznane polecenie - proszę spróbować \"h\", aby uzyskać pomoc"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "Aktualizuje ekran"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "Zapisano ustawienia do %s"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "domyślne"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc nie zwróciło <domain/>"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d Red Hat"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -344,10 +362,11 @@ msgstr ""
+ "\n"
+ "OPCJE"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "virt-top został skompilowany bez obsługi plików CSV"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "virt-top został skompilowany bez obsługi dat i czasu"
++
+diff --git a/po/pt.po b/po/pt.po
+index 05d81fd..a23d7fb 100644
+--- a/po/pt.po
++++ b/po/pt.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,39 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# arquivo de configuração do virt-top %s\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# Habilita a saída CSV para o arquivo indicado\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# Para proteger este arquivo contra sobreescrita, desmarque o sinal de "
+-"comentário da próxima linha\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# Para enviar mensagens de erro e de depuração para um arquivo, desmarque o "
+-"comentário da próxima linha\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# gerado em %s por %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -57,279 +50,302 @@ msgstr ""
+ "%d domínios, %d ativo, %d executando, %d adormecido, %d pausado, %d inativo "
+ "D.%d O.%d X.%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: a exibição deveria ser %s"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: a ordem da classificação deveria ser: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: parâmetro desconhecido"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: o item de configuração ``%s'' foi ignorado\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: não é possível atribuir um atraso negativo"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "Modo em lotes"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "Requisições de leitura em blocos"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "Requisições de escrita em blocos"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB para convidados)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "Alterar o atraso de %.1f para:"
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "Conectar a uma URI (padrão: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "Conectar:%s; Nome de máquina: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "MODOS DE EXIBIÇÃO"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "O atraso deve ser > 0"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "Intervalo de tempo do atraso (segundos)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "Atraso: %.1f segs; Lote: %s, Seguro: %s; Classificação: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "Desabilita a estatística da CPU no CSV"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "Desabilita as estatísticas de bloco no CSV"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "Desabilita as estatísticas de rede no CSV"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "Exibir número da versão e saída"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "Não lê o arquivo init"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "ID do domínio"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "Nome do domínio"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "Exibe os domínios"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Erro"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "Sai em um dado tempo"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Ajuda"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "Histórico do atraso da CPU"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "Estatísticas de log para o arquivo CSV"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "MAIN KEYS"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "Mais ajuda na página do manual do vit-top(1). Pressione qualquer tecla para "
+ "retornar."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"NB: Se você quiser monitorar um hipervisor local do Xen, você precisa ser "
+-"root."
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "Quantidade líquida de bytes recebidos"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "Quantidade líquida de bytes transmitidos"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "Número inválido"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "Número de iterações a serem executadas"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "Desligado"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "Ligado"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Sair"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "Executa a partir de um script (sem interface do usuário)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "CLASSIFICANDO"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "Modo seguro (\\\"quiosque\\\")"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "Selecione o campo para classificação"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "Envia as mensagens de depuração para um arquivo"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "Define o nome do arquivo init"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "Define a ordem da classificação (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "Define a ordem de classificação para a exibição principal"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "Define o intervalo de atualização"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "Classificação por %CPU"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "Classificação por %MEM"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "Classificação por ID"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "Classificação por TIME"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "Inicia pela apresentação dos dispositivos de bloco"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "Inicia pela apresentação das interfaces de rede"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "Inicia pela apresentação das pCPUs (padrão: tarefas)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "TIME (tempo de CPU)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "Alterna entre os dispositivos de bloco"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "Alterna entre as interfaces de rede"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "Alterna entre as CPUs físicas"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr ""
+ "Pressione uma tecla ou use as teclas de navegação para cima e para baixo."
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "Comando desconhecido - tente \"h\" para ajuda"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "Atualiza a exibição"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "Configurações gravadas em %s"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "padrão"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "o get_xml_desc não retornou <domain/>"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d por Red Hat"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+@@ -345,10 +361,11 @@ msgstr ""
+ "\n"
+ "OPÇÕES"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "o virt-top foi compilado sem suporte para arquivos CSV "
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "o virt-top foi compilado sem suporte para datas e horas "
++
+diff --git a/po/pt_BR.po b/po/pt_BR.po
+index 2270ed4..cf89490 100644
+--- a/po/pt_BR.po
++++ b/po/pt_BR.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,39 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n > 1)\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# arquivo de configuração do virt-top %s\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# Habilita a saída CSV para o arquivo indicado\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# Para proteger este arquivo contra sobreescrita, desmarque o sinal de "
+-"comentário da próxima linha\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# Para enviar mensagens de erro e de depuração para um arquivo, desmarque o "
+-"comentário da próxima linha\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# gerado em %s por %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -57,279 +50,302 @@ msgstr ""
+ "%d domínios, %d ativo, %d executando, %d adormecido, %d pausado, %d inativo "
+ "D.%d O.%d X.%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: a exibição deveria ser %s"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: a ordem da classificação deveria ser: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: parâmetro desconhecido"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: o item de configuração ``%s'' foi ignorado\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: não é possível atribuir um atraso negativo"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "Modo em lotes"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "Requisições de leitura em blocos"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "Requisições de escrita em blocos"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB para convidados)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "Alterar o atraso de %.1f para:"
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "Conectar a uma URI (padrão: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "Conectar:%s; Nome de máquina: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "MODOS DE EXIBIÇÃO"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "O atraso deve ser > 0"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "Intervalo de tempo do atraso (segundos)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "Atraso: %.1f segs; Lote: %s, Seguro: %s; Classificação: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "Desabilita a estatística da CPU no CSV"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "Desabilita as estatísticas de bloco no CSV"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "Desabilita as estatísticas de rede no CSV"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "Exibir número da versão e sair"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "Não lê o arquivo init"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "ID do domínio"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "Nome do domínio"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "Exibe os domínios"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Erro"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "Sai em um dado tempo"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Ajuda"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "Histórico do atraso da CPU"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "Estatísticas de log para o arquivo CSV"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "MAIN KEYS"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "Mais ajuda na página do manual do vit-top(1). Pressione qualquer tecla para "
+ "retornar."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"NB: Se você quiser monitorar um hipervisor local do Xen, você precisa ser "
+-"root."
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "Quantidade líquida de bytes recebidos"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "Quantidade líquida de bytes transmitidos"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "Número inválido"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "Número de iterações a serem executadas"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "Off"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "On"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Sair"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "Executa a partir de um script (sem interface do usuário)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "CLASSIFICANDO"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "Modo seguro (\\\"quiosque\\\")"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "Selecione o campo para classificação"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "Envia as mensagens de depuração para um arquivo"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "Define o nome do arquivo init"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "Define a ordem da classificação (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "Define a ordem de classificação para a exibição principal"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "Define o intervalo de atualização"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "Classificação por %CPU"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "Classificação por %MEM"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "Classificação por ID"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "Classificação por TIME"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "Inicia pela apresentação dos dispositivos de bloco"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "Inicia pela apresentação das interfaces de rede"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "Inicia pela apresentação das pCPUs (padrão: tarefas)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "TIME (tempo de CPU)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "Alterna entre os dispositivos de bloco"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "Alterna entre as interfaces de rede"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "Alterna entre as CPUs físicas"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr ""
+ "Pressione uma tecla ou use as teclas de navegação para cima e para baixo."
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "Comando desconhecido - tente \"h\" para ajuda"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "Atualiza a exibição"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "Configurações gravadas em %s"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "padrão"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "o get_xml_desc não retornou <domain/>"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d pela Red Hat"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -345,10 +361,11 @@ msgstr ""
+ "\n"
+ "OPÇÕES"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "o virt-top foi compilado sem suporte para arquivos CSV "
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "o virt-top foi compilado sem suporte para datas e horas "
++
+diff --git a/po/ru.po b/po/ru.po
+index ec3deac..820c549 100644
+--- a/po/ru.po
++++ b/po/ru.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,39 +14,35 @@ msgstr ""
+ "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"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s файл конфигурации virt-top\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# Включить вывод CSV в указанный файл\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# Чтобы защитить этот файл от перезаписи, снимите комментарий со следующей "
+-"строки\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# Для передачи отладочных сообщений и ошибок в файл снимите комментарий со "
+-"следующей строки\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# создан %s, %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -57,276 +50,301 @@ msgstr ""
+ "%d домен(ов), %d активно, %d запущено, %d простаивает, %d приостановлено, %d"
+ " не активно D:%d O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: должно быть показано %s"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: сортировка должна быть: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: неизвестный параметр"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: элемент конфигурации ``%s'' проигнорирован\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: значение задержки не может быть отрицательным"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "Командный режим"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "Запросы чтения блоков"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "Запросы записи блоков"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Память: %Ld МБ (%Ld МБ для гостей)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "Изменить задержку с %.1f на: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "Подключиться к URI (по умолчанию: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "Подключение: %s; имя узла: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "РЕЖИМЫ ОТОБРАЖЕНИЯ"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "Задержка должна быть > 0"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "Интервал задержки (сек.)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "Задержка: %.1f сек.; пакет: %s; безопасность: %s; сортировка: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "Отключить статистику процессора в CSV"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "Отключить статистику блочных устройств в CSV"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "Отключить статистику сети в CSV"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "Показать номер версии и выйти"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "Не читать init файл"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "ID домена"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "Имя домена"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "Экран доменов"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Ошибка"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "Выход в заданное время"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Справка"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "История задержки процессора"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "Сохранять статистику в файл CSV"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "ГЛАВНЫЕ КЛАВИШИ"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "Подробную справку по virt-top(1) можно найти на странице man. Нажмите любую "
+ "клавишу для возврата."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
+-msgstr "NB: Для мониторинга локального гипервизора Xen необходимы права root."
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "Передано байт"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "Принято байт"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "Недопустимый номер"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "Число итераций"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "Выкл."
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "Вкл."
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Выход"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "Запуск из сценария (без интерфейса пользователя)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "СОРТИРОВКА"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "Безопасный (\\\"kiosk\\\") режим"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "Выберите поле сортировки"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "Отправить отладочные сообщения в файл"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "Задать имя init файла"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "Задать порядок сортировки (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "Задать порядок сортировки для основного экрана"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "Задать интервал обновлений"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "Сортировка по %CPU"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "Сортировка по %MEM"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "Сортировка по ID"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "Сортировка по времени"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "Сначала показать блочные устройства"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "Сначала показать сетевые интерфейсы"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "Сначала показать физические процессоры (по умолчанию: задания)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "ВРЕМЯ (процессорное)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "Переключение блочных устройств"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "Переключение сетевых интерфейсов"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "Переключение физических процессоров"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "Нажмите кнопку или используйте стрелки вверх и вниз."
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "Неизвестная команда. Введите «h» для получения справки."
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "Обновить экран"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "Настройки записаны в %s"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "по умолчанию"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc не вернул <domain/>"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d Red Hat"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -342,10 +360,11 @@ msgstr ""
+ "\n"
+ "ОПЦИИ"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "virt-top собран без поддержки файлов CSV"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "virt-top собран без поддержки времени и даты"
++
+diff --git a/po/sr.po b/po/sr.po
+index 8131374..fa5e93a 100644
+--- a/po/sr.po
++++ b/po/sr.po
+_at_@ -1,9 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-#
+-# Translators:
+-# Momcilo Medic <medicmomcilo_at_gmail.com>, 2015
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -19,39 +14,35 @@ msgstr ""
+ "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"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s virt-top датотека подешавања\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# Омогући CSV излаз у наведену датотеку\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# Да заштитите ову датотеку од поновног уписа, одкоментаришите следећу "
+-"линију\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# Да пошаљете поруке о отклањању грешака и самим грешкама у датотеку, "
+-"одкоментаришите следећу линију\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# створено %s од стране %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -59,278 +50,301 @@ msgstr ""
+ "%d области, %d активних, %d покренутих, %d мирујућих, %d паузираних, %d "
+ "неактивних D:%d O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: приказ би требао да буде %s"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: начин ређања би требао бити: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: непознат параметар"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: ставка подешавања ``%s'' занемарена\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: не може се поставити негативна пауза"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "Групни режим"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "Захтеви блок читања"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "Захтеви блок уписа"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB од стране гостију)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "Променити паузу са %.1f на: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "Повежи се на URI (подразумевано: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "Повежи: %s; Hostname: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "РЕЖИМИ ПРИКАЗА"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "Пауза мора бити > 0"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "Интервал паузе (секунде)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "Пауза: %.1f секунди; Група: %s; Сигурност: %s; Ређање: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "Онемогући CPU статистике у CSV-у"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "Онемогући статистике блок уређаја у CSV-у"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "Онемогући мрежне статистике у CSV-у"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "Прикажи број верзије и изађи"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "Немој читати инициализациону датотеку"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "ID области"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "Име области"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "Приказ области"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Грешка"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "Излаз у одређено време"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Помоћ"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "Историјска CPU пауза"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "Записуј статистике у CSV датотеку"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "ГЛАВНИ КЉУЧЕВИ"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "Више помоћи на virt-top(1) man страници. Притисните било који тастер за "
+ "повратак."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"NB: Ако желите да надгледате локални Xen надзорник, углавном је потребно да "
+-"будете root"
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "Мрежни RX бајтови"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "Мрежни TX бајтови"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "Није исправан број"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "Број понављања за извршавање"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "Искључи"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "Укључи"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Изађи"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "Извршавање из скрипте (без корисничког окружења)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "РЕЂАЊЕ"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "Безбедни (\\\"kiosk\\\") режим"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "Одаберите поље по којем се ређа"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "Пошаљи поруке за отклањање грешака у датотеку"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "Постави име иницијализационе датотеке"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "Постави начин ређања (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "Постави начин ређања за главни приказ"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "Постави интервал освежавања"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "Поређај по %CPU"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "Поређај по %MEM"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "Поређај по ID"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "Поређај по ВРЕМЕНУ"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "Почни са приказивањем блок уређаја"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "Почни са приказивањем мрежних интерфејса"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "Почни са приказивањем pCPU-ова (подразумевано: задаци)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "ВРЕМЕ (CPU време)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "Пребаци блок уређаје"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "Пребаци мрежне интерфејсе"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "Пребаци физичке CPU-ове"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "Притистните тастер или користите тастере навигације горе и доле."
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "Непозната команда - покушајте 'h' за помоћ"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "Освежи приказ"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "Уписана подешавања у %s"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "подразумевано"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc није вратио <domain/>"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d од Red Hat"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -346,10 +360,11 @@ msgstr ""
+ "\n"
+ "ОПЦИЈЕ"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "virt-top је компајлиран без подршке за CSV датотеке"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "virt-top је компајлиран без подршке за датуме и времена"
++
+diff --git a/po/sv.po b/po/sv.po
+index 928e0bb..27dede8 100644
+--- a/po/sv.po
++++ b/po/sv.po
+_at_@ -1,9 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-#
+-# Translators:
+-# Göran Uddeborg <goeran_at_uddeborg.se>, 2012
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -19,38 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# konfigurationsfilen %s för virt-top\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# Aktivera CSV-utmatning till den namngivna filen\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# För att skydda denna fil från att skrivas över, avkommentera nästa rad\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# För att skicka felsöknings- och felmeddelanden till en fil, avkommentera "
+-"nästa rad\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# genererad %s av %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MNE"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -58,276 +50,300 @@ msgstr ""
+ "%d domäner, %d aktiva, %d körande, %d sovande, %d pausade, %d inaktiva N:%d "
+ "A:%d K:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: display skall vara %s"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: sort-ordning skall vara: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: okänd parameter"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: konfigurationspost ”%s” ignoreras\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: kan inte sätta en negativ fördröjning"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "Satsvis läge"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "Blocksläsningsbegäranden"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "Blockskrivningsbegäranden"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f %% Mne: %Ld MB (%Ld MB av gäster)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "Ändra fördröjning från %.1f till: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "Anslut till URI (standard: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "Anslut: %s; Värdnamn: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "VISNINGSLÄGEN"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "Fördröjning måste vara > 0"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "Tidsfördröjningsintervall (sekunder)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "Fördröjning: %.1f s; Satsvis: %s; Säkert: %s; Sortering: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "Avaktivera CPU-statistik i CSV"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "Avaktivera blockenhetsstatistik i CSV"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "Avaktivera nätstatistik i CSV"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "Visa versionsnummer och avsluta"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "Läs inte initieringsfilen"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "Domän-ID"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "Domännamn"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "Domänvisning"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Fel"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "Avsluta vid given tidpunkt"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Hjälp"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "Historisk CPU-fördröjning"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "Logga statistik till en CSV-fil"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "HUVUDTANGENTER"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "Mer hjälp i manualsidan virt-top(1). Tryck en tangent för att återvända."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"OBS: Om du vill övervaka en lokal Xen-hypervisor behöver du normal vara root"
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "Netto MT byte"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "Netto SD byte"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "Inte ett giltigt tal"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "Antal iterationer att köra"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "Av"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "På"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Avsluta"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "Kör från ett skript (inget användargränssnitt)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "SORTERING"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "Säkert (\\\"kiosk-\\\")läge"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "Välj sorteringsfält"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "Skicka felsökningsmeddelanden till en fil"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "Ange namn på initieringsfilen"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "Ange sorteringsordning (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "Ange sorteringsordning för huvudsidan"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "Ange uppdateringsintervall"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "Sortera efter %CPU"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "Sortera efter %MNE"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "Sortera efter ID"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "Sortera efter TID"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "Starta med att visa blockenheter"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "Starta med att visa nätverksgränssnitt"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "Starta med att visa fCPU:er (standard: uppgifter)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "TID (CPU-tid)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "Växla blockenheter"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "Växla nätverksgränssnitt"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "Växla fysiska CPU:er"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "Tryck en tangent eller använd piltangenterna upp och ned."
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "Okänt kommando - försök med ”h” för hjälp"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "Uppdatera visningen"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "Skrev inställningar till %s"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "standard"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc returnerade inte <domain/>"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d av Red Hat"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -343,10 +359,11 @@ msgstr ""
+ "\n"
+ "FLAGGOR"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "virt-top kompilerade utan stöd för CSV-filer"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "virt-top kompilerades utan stöd för datum och tider"
++
+diff --git a/po/te.po b/po/te.po
+index d6e7386..f345ada 100644
+--- a/po/te.po
++++ b/po/te.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,38 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s virt-top ఆకృతీకరణ ఫైలు\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# CSV అవుట్పుట్‌ను నామపు ఫైలునకు చేతనముచేయి\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# ఈ ఫైలును దిద్దిరాయుట నుండి రక్షించుటకు, తరువాతి లైను కామెంట్ తీసివేయుము\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# డీబగ్ మరియు దోష సందేశాన్ని వొక ఫైలునకు పంపుటకు, తరువాతి వరుస కామెంట్‌ను "
+-"తీసివేయుము\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# %sన %s ద్వారా చేయబడింది\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -56,277 +50,300 @@ msgstr ""
+ "%d డొమైన్లు, %d క్రియాశీల, %d నడుస్తున్నవి, %d స్లీపింగ్, %d నిలిపివున్నవి, "
+ "%d క్రియాహీన D:%d O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: ప్రదర్శన %s కావలె"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: క్రమీకరణ క్రమము యిది కావలె: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: తెలియని పారామితి"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: ఆకృతీకరణ అంశము ``%s'' వదిలివేయబడింది\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: ఋణ ఆలస్యంను అమర్చలేము"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "బాచ్ రీతి"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "బ్లాక్ రీడ్ రెక్స్"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "బ్లాక్ వ్రైట్ రెక్స్"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "ఆలస్యాన్ని %.1f నుండి దీనికి మార్చుము: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "URI కు అనుసంధానించుము (అప్రమేయ: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "అనుసంధానించు: %s; హోస్టునామము: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "ప్రదర్శన రీతులు"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "ఆలస్యం తప్పక > 0"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "ఆలస్యానికి విరామం (క్షణాలు)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "ఆలస్యం: %.1f క్షణాలు; బాచ్: %s; రక్షణ: %s; క్రమము: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "CSV నందు CPU గణాంకాలను అచేతనముచేయి"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "CSV నందు బ్లాక్ పరికరపు గణాంకాలను అచేతనముచేయి"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "CSV నందు నెట్ గణాంకాలను అచేతనముచేయి"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "వర్షన్ సంఖ్యను ప్రదర్శించు మరియు నిష్క్రమించు"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "init ఫైలును చదువవద్దు"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "డొమైన్ ID"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "డొమైన్ నామము"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "డొమైన్ ప్రదర్శన"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "దోషము"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "ఇచ్చిన సమయమందు నిష్క్రమించుము"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "సహాయం"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "చారిత్రక CPU ఆలస్యము"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "CSV ఫైలునకు లాగ్ గణాంకాలు"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "ముఖ్య కీలు"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "virt-top(1) man పేజీ నందు మరింత సహాయం. తిరిగివచ్చుటకు యేదేని కీను వత్తుము."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"NB: మీరు స్థానిక Xen హైపర్విజర్‌ను మానిటర్ చేయాలని అనుకొంటే, మీరు సాధారణంగా "
+-"root అయివుండాలి"
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "నెట్ RX బైట్లు"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "నెట్ TX బైట్లు"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "చెల్లునటువంటి సంఖ్యకాదు"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "నడుపవలసిన ఆవర్తనముల సంఖ్య"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "ఆఫ్"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "ఆన్"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "నిష్క్రమించు"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "స్క్రిప్టునుండి నడుపుము (యెటువంటి వినియోగదారి యింటర్ఫేస్ లేదు)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "క్రమీకరణము"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "సురక్షిత (\\\"kiosk\\\") రీతి"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "క్రమీకరణ క్షేత్రమును యెంపికచేయుము"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "డీబగ్ సందేశములను ఫైలునకు పంపుము"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "init ఫైలు యొక్క నామమును అమర్చుము"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "క్రమీకరణ క్రమమును అమర్చుము (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "ముఖ్య ప్రదర్శన కొరకు క్రమీకరణ క్రమమును అమర్చుము"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "నవీకరణ విరామమును అమర్చుము"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "%CPU ద్వారా క్రమీకరణము"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "%MEM ద్వారా క్రమీకరణము"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "ID ద్వారా క్రమీకరణము"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "సమయం ద్వారా క్రమీకరణము"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "బ్లాక్ పరికరములను ప్రదర్శించుట ద్వారా ప్రారంభించుము"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "నెట్వర్కు యింటర్ఫేసులను ప్రదర్శించుట ద్వారా ప్రారంభించుము"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "pCPUలను ప్రదర్శించుట ద్వారా ప్రారంభించుము (అప్రమేయ: కర్తవ్యాలు)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "TIME (CPU సమయం)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "బ్లాక్ పరికరాలను అటుదిటుచేయి"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "నెట్వర్కు యింటర్ఫేసులను అటుదిటుచేయి"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "భౌతిక CPUలను అటుదిటుచేయి"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "కీను టైపుచేయి లేదా పైన మరియు క్రింద కర్సర్ కీలను వుపయోగించుము"
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "తెలియని ఆదేశము - సహాయం కొరకు 'h' ప్రయత్నించుము"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "ప్రదర్శనను నవీకరించుము"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "అమరికలను %sకు వ్రాయుము"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "అప్రమేయ"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc అనునది <domain/> తిరిగియిచ్చుటలేదు"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -342,10 +359,11 @@ msgstr ""
+ "\n"
+ "OPTIONS"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "CSV ఫైళ్ళకు మద్దతు లేకుండా virt-top కంపైల్ చేయబడింది"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "తేదీలు మరియు సమయాలకు మద్దతులేకుండా virt-top నిర్వర్తించబడినది"
++
+diff --git a/po/tg.po b/po/tg.po
+index cac104d..565e36b 100644
+--- a/po/tg.po
++++ b/po/tg.po
+_at_@ -1,8 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-#
+-# Translators:
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -18,308 +14,333 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr ""
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Хатогӣ"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Роҳнамо"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "Хомӯш"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "Фаъол"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Баромад"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "ВАҚТ (вақти CPU)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "пешфарз"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -329,10 +350,11 @@ msgid ""
+ "OPTIONS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr ""
++
+diff --git a/po/tr.po b/po/tr.po
+index 8cd8c83..005561d 100644
+--- a/po/tr.po
++++ b/po/tr.po
+_at_@ -1,9 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-#
+-# Translators:
+-# Necdet Yücel <necdetyucel_at_gmail.com>, 2012
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -19,308 +14,333 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: bilinmeyen parametre"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "Gecikme > 0 olmalı"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "Alan ID"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "Alan adı"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr ""
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Hata"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Yardım"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "Kapalı"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "Açık"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Çık"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "Betikten çalıştır (arayüz olmadan)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "SIRALAMA"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "%CPU'ya göre sırala"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "ID'ye göre sırala"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "ZAMAN'a göre sırala"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "ZAMAN (CPU zamanı)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "öntanımlı"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -330,10 +350,11 @@ msgid ""
+ "OPTIONS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr ""
++
+diff --git a/po/uk.po b/po/uk.po
+index 15d0f88..1a074de 100644
+--- a/po/uk.po
++++ b/po/uk.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,38 +14,35 @@ msgstr ""
+ "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"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# Файл налаштування virt-top %s\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# Увімкнути виведення даних у форматі CSV до вказаного файла\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+-"# Щоб захистити цей файл від перезапису, розкоментуйте наступний рядок\\n"
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+-"# Щоб надіслати діагностичні повідомлення до файла, розкоментуйте наступний "
+-"рядок\\n"
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# створено %s за допомогою %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%ЦП"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%ПАМ"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -56,278 +50,301 @@ msgstr ""
+ "%d доменів, %d активних, %d запущених, %d приспаних, %d призупинених, %d "
+ "неактивних D:%d O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s: має бути показано %s"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s: впорядкуванням має бути: %s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: невідомий параметр"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d: пункт налаштування «%s» проігноровано\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d: не можна використовувати від’ємну затримку"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "Пакетний режим"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "Запити читання блоків"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "Запити запису блоків"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "ЦП: %2.1f%% Пам: %Ld МБ (%Ld МБ гостьових)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "Змінити затримку з %.1f на: "
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "З’єднатися з адресою (типово: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "З’єднання: %s; назва вузла: %s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "РЕЖИМИ ПОКАЗУ"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "Затримкою має бути величина > 0"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "Інтервал затримки (у секундах)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "Затримка: %.1f с; пакет: %s; захист: %s; впорядкування: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "Вимкнути статистику процесора у CSV"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "Вимкнути статистику блокових пристроїв у CSV"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "Вимкнути статистику мережі у CSV"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "Показати дані щодо версії і завершити роботу"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "Не читати файл ініціалізації"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "Ід. домену"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "Назва домену"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "Показ доменів"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "Помилка"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "Вийти у вказаний час"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "Довідка"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "Історична затримка процесора"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "Записувати статистичні дані до файла CSV"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "ОСНОВНІ КЛЮЧІ"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+ "Докладніше — на сторінці довідки (man) virt-top(1). Натисніть будь-яку "
+ "клавішу для повернення."
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+-"NB: для спостереження за локальним гіпервізором Xen, зазвичай, потрібні "
+-"права root"
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "Передано байтів"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "Отримано байтів"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "Некоректне число"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "Кількість ітерацій"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "Вимкн."
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "Увімкн."
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "Вийти"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "Запуск без скрипту (без інтерфейсу користувача)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "ВПОРЯДКУВАННЯ"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "Безпечний режим («кіоск»)"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "Вибрати поле впорядкування"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "Надіслати діагностичні повідомлення до файла"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "Встановити назву файла ініціалізації"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "Встановити впорядкування (%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "Встановити впорядкування для основного показу"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "Встановити інтервал оновлення"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "Впорядкувати за %ЦП"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "Впорядкувати за %ПАМ"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "Впорядкувати за ІДЕНТИФІКАТОРОМ"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "Впорядкувати за ЧАСОМ"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "Показати першими блокові пристрої"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "Показати першими інтерфейси мережі"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "Показати першими фізичні процесори (типово: завдання)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "ЧАС (процесорний час)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "Увімкнути або вимкнути блокові пристрої"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "Увімкнути або вимкнути мережеві інтерфейси"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "Увімкнути або вимкнути фізичні процесори"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "Натисніть клавішу або скористайтеся клавішами стрілок вгору/вниз."
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "Невідома команда. Скористайтеся «h» для отримання довідки."
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "Оновити показ"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "Параметри записано до %s"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "типовий"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc не повернуто <domain/>"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d, створено у Red Hat"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -343,10 +360,11 @@ msgstr ""
+ "\n"
+ "ПАРАМЕТРИ"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "virt-top було зібрано без підтримки файлів CSV"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "virt-top було зібрано без підтримки показу дат і часу"
++
+diff --git a/po/virt-top.pot b/po/virt-top.pot
+index f1d39a2..3d7a1e5 100644
+--- a/po/virt-top.pot
++++ b/po/virt-top.pot
+_at_@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2009-10-06 14:58+0000\n"
++"POT-Creation-Date: 2017-03-27 11:32+0000\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL_at_ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL_at_li.org>\n"
+_at_@ -17,312 +17,339 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d O:%d X:%d"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr ""
+
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
+-#. ../virt-top/virt_top.ml:1544
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:263
+-msgid "NB: If you want to monitor a local Xen hypervisor, you usually need to be root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr ""
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid "virt-top : a 'top'-like utility for virtualization\n\nSUMMARY\n virt-top [-options]\n\nOPTIONS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr ""
+
+diff --git a/po/zh_CN.po b/po/zh_CN.po
+index 23b0a1e..f06191f 100644
+--- a/po/zh_CN.po
++++ b/po/zh_CN.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,35 +14,35 @@ msgstr ""
+ "Plural-Forms: nplurals=1; plural=0\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
+-msgstr "# %s virt-top 配置文件\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
+-msgstr "# 启用 CSV 输出到命名文件\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
+-msgstr "# 保护这个文件不被覆盖,下一行取消注释\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
+-msgstr "# 将 debug 和出错信息发送到一个文件,下一行取消注释\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
+-msgstr "# 使用 %s 在 %s 中创建\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+_at_@ -53,274 +50,299 @@ msgstr ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr "%s:显示应该为 %s"
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr "%s:排列顺寻应该为:%s"
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s:未知参数"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
+-msgstr "%s:%d:忽略配置项目 ``%s''\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr "-d:无法设定负延迟"
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr "批模式"
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr "块读取请求"
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr "块写入请求"
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr "CPU: %2.1f%% Mem: %Ld MB(客户端 %Ld MB)"
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr "将延迟从 %.1f 更改至:"
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
+-msgstr "连接到 URI(默认:Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr "连接:%s;主机名:%s"
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr "显示模式"
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr "延迟必须 > 0"
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr "延迟时间间隔(秒)"
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr "在 CSV 中禁用 XPU 统计"
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr "在 CSV 中禁用块设备统计"
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr "在 CSV 中禁用网络统计"
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr "显示版本号并退出"
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr "不读取初始化文件"
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr "域 ID"
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr "域名"
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr "域显示"
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr "错误"
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr "在指定时间退出"
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr "帮助"
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr "CPU 延迟历史记录"
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr "将统计记录到 CSV 文件中作为日志"
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr "主要密钥"
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr "更多帮助请参考 virt-top(1) man page。按任意键返回。"
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
+-msgstr "NB:如果您要监控本地 Xen 监控程序,您通常需要是根用户"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr "纯 RX 字节"
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr "纯 TX 字节"
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr "非有效数字"
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr "要运行的重复数"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr "关闭"
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr "打开"
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr "退出"
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr "从脚本运行(而不是用户界面)"
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr "排序"
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
+-msgstr "安全默认是(\\\"kiosk\\\")"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
++msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr "选择排序字段"
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr "将 debug 信息发送到文件中"
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr "设定初始化文件名称"
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr "设定排序顺序(%s)"
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr "为主显示设定排序顺序"
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr "设定更新间隔"
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr "根据 %CPU 排序"
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr "根据 %MEM 排序"
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr "根据 ID 排序"
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr "根据时间排序"
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr "用显示的块设备启动"
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr "用显示的网络接口启动"
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr "用显示的 pCPU 启动(默认:任务)"
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr "时间(CPU 时间)"
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr "触发块设备"
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr "触发网络接口"
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr "触发物理 CPU"
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr "输入密钥或者使用上下箭头键。"
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr "未知命令 - 试用 ‘h’获得帮助"
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr "更新显示"
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr "将设置写入 %s"
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr "默认"
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr "get_xml_desc 没有返回 <domain/>"
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr "红帽提供的 virt-top %s ocaml-libvirt %s libvirt %d.%d.%d"
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -336,10 +358,11 @@ msgstr ""
+ "\n"
+ "OPTIONS"
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr "virt-top 是以不支持 CSV 文件的形式编译"
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr "virt-top 是以不支持日期和时间的形式编译"
++
+diff --git a/po/zh_TW.po b/po/zh_TW.po
+index dcf0de0..4df1241 100644
+--- a/po/zh_TW.po
++++ b/po/zh_TW.po
+_at_@ -1,7 +1,4 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL_at_ADDRESS>, YEAR.
++#, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+_at_@ -17,308 +14,333 @@ msgstr ""
+ "Plural-Forms: nplurals=1; plural=0\n"
+ "X-Generator: Zanata 3.5.1\n"
+
+-#: ../virt-top/virt_top.ml:1506
+-msgid "# %s virt-top configuration file\\n"
++#: ../src/top.ml:1670
++msgid "# %s virt-top configuration file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1524
+-msgid "# Enable CSV output to the named file\\n"
++#: ../src/top.ml:1688
++msgid "# Enable CSV output to the named file\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1527
+-msgid "# To protect this file from being overwritten, uncomment next line\\n"
++#: ../src/top.ml:1691
++msgid "# To protect this file from being overwritten, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1521
+-msgid "# To send debug and error messages to a file, uncomment next line\\n"
++#: ../src/top.ml:1685
++msgid "# To send debug and error messages to a file, uncomment next line\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1507
+-msgid "# generated on %s by %s\\n"
++#: ../src/top.ml:1671
++msgid "# generated on %s by %s\n"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:65
++#: ../src/top.ml:65
+ msgid "%CPU"
+ msgstr "%CPU"
+
+-#: ../virt-top/virt_top.ml:66
++#: ../src/top.ml:66
+ msgid "%MEM"
+ msgstr "%MEM"
+
+-#: ../virt-top/virt_top.ml:1158
++#: ../src/top.ml:1237
+ msgid ""
+ "%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d "
+ "O:%d X:%d"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:105
++#: ../src/top.ml:245
++msgid "%s: could not parse '%s' in init file: expecting %s"
++msgstr ""
++
++#: ../src/top.ml:240
++msgid "%s: could not parse '%s' in init file: expecting a number"
++msgstr ""
++
++#: ../src/top.ml:235
++msgid "%s: could not parse '%s' in init file: expecting an integer"
++msgstr ""
++
++#: ../src/top.ml:105
+ msgid "%s: display should be %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:83
++#: ../src/top.ml:83
+ msgid "%s: sort order should be: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:207
++#: ../src/top.ml:217
+ msgid "%s: unknown parameter"
+ msgstr "%s: unknown parameter"
+
+-#: ../virt-top/virt_top.ml:238
+-msgid "%s:%d: configuration item ``%s'' ignored\\n%!"
++#: ../src/top.ml:269
++msgid "%s:%d: configuration item ``%s'' ignored\n%!"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:144
++#: ../src/top.ml:147
+ msgid "-d: cannot set a negative delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:170
++#: ../src/top.ml:173
+ msgid "Batch mode"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:72
++#: ../src/top.ml:72
+ msgid "Block read reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:73
++#: ../src/top.ml:73
+ msgid "Block write reqs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1165
++#: ../src/top.ml:1244
+ msgid "CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1335
++#: ../src/top.ml:1493
+ msgid "Change delay from %.1f to: "
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:174 ../virt-top/virt_top.ml:172
+-msgid "Connect to URI (default: Xen)"
++#: ../src/top.ml:177 ../src/top.ml:175
++msgid "Connect to libvirt URI"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1580
++#: ../src/top.ml:1744
+ msgid "Connect: %s; Hostname: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1618
++#: ../src/top.ml:1783
+ msgid "DISPLAY MODES"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1342
++#: ../src/top.ml:1500
+ msgid "Delay must be > 0"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:184
++#: ../src/top.ml:189
+ msgid "Delay time interval (seconds)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1573
++#: ../src/top.ml:1737
+ msgid "Delay: %.1f secs; Batch: %s; Secure: %s; Sort: %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:178
++#: ../src/top.ml:181
+ msgid "Disable CPU stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:180
++#: ../src/top.ml:185
+ msgid "Disable block device stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:182
++#: ../src/top.ml:183
++msgid "Disable memory stats in CSV"
++msgstr ""
++
++#: ../src/top.ml:187
+ msgid "Disable net stats in CSV"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:204
++#: ../src/top.ml:214
+ msgid "Display version number and exit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:194
++#: ../src/top.ml:199
+ msgid "Do not read init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:68
++#: ../src/top.ml:68
+ msgid "Domain ID"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:69
++#: ../src/top.ml:69
+ msgid "Domain name"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1632
++#: ../src/top.ml:1797
+ msgid "Domains display"
+ msgstr ""
+
+-#. ../virt-top/virt_top.ml:1544
+-#: ../virt-top/virt_top_main.ml:47 ../virt-top/virt_top.ml:1547
++#: ../src/main.ml:69 ../src/main.ml:44 ../src/top.ml:1711 ../src/top.ml:1708
+ msgid "Error"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:188
++#: ../src/top.ml:193
+ msgid "Exit at given time"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1602
++#: ../src/top.ml:1766
+ msgid "Help"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:190
++#: ../src/top.ml:195
+ msgid "Historical CPU delay"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:176
++#: ../src/top.ml:179
+ msgid "Log statistics to CSV file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1585
++#: ../src/top.ml:1749
+ msgid "MAIN KEYS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1639
++#: ../src/top.ml:1804
+ msgid "More help in virt-top(1) man page. Press any key to return."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:263
+-msgid ""
+-"NB: If you want to monitor a local Xen hypervisor, you usually need to be "
+-"root"
++#: ../src/top.ml:294
++msgid "NB: If you want to monitor a local hypervisor, you usually need to be root"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:70
++#: ../src/top.ml:70
+ msgid "Net RX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:71
++#: ../src/top.ml:71
+ msgid "Net TX bytes"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1348
++#: ../src/top.ml:1506
+ msgid "Not a valid number"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:196
++#: ../src/top.ml:201
+ msgid "Number of iterations to run"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "Off"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1576 ../virt-top/virt_top.ml:1575
++#: ../src/top.ml:1740 ../src/top.ml:1739
+ msgid "On"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1600
++#: ../src/top.ml:1764
+ msgid "Quit"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:202
++#: ../src/top.ml:208
+ msgid "Run from a script (no user interface)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1606
++#: ../src/top.ml:1771
+ msgid "SORTING"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:200
+-msgid "Secure (\\\"kiosk\\\") mode"
++#: ../src/top.ml:206
++msgid "Secure (\"kiosk\") mode"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1615
++#: ../src/top.ml:1780
+ msgid "Select sort field"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:186
++#: ../src/top.ml:191
+ msgid "Send debug messages to file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:192
++#: ../src/top.ml:197
+ msgid "Set name of init file"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:198
++#: ../src/top.ml:203
+ msgid "Set sort order (%s)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1356
++#: ../src/top.ml:1514
+ msgid "Set sort order for main display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1601
++#: ../src/top.ml:1765
+ msgid "Set update interval"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1611
++#: ../src/top.ml:1776
+ msgid "Sort by %CPU"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1612
++#: ../src/top.ml:1777
+ msgid "Sort by %MEM"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1614
++#: ../src/top.ml:1779
+ msgid "Sort by ID"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1613
++#: ../src/top.ml:1778
+ msgid "Sort by TIME"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:168
++#: ../src/top.ml:171
+ msgid "Start by displaying block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:166
++#: ../src/top.ml:169
+ msgid "Start by displaying network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:164
++#: ../src/top.ml:167
+ msgid "Start by displaying pCPUs (default: tasks)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:67
++#: ../src/top.ml:67
+ msgid "TIME (CPU time)"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1635
++#: ../src/top.ml:1800
+ msgid "Toggle block devices"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1634
++#: ../src/top.ml:1799
+ msgid "Toggle network interfaces"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1633
++#: ../src/top.ml:1798
+ msgid "Toggle physical CPUs"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1357
++#: ../src/top.ml:1515
+ msgid "Type key or use up and down cursor keys."
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1644
++#: ../src/top.ml:1809
+ msgid "Unknown command - try 'h' for help"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1599
++#: ../src/top.ml:1763
+ msgid "Update display"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1539
++#: ../src/top.ml:1703
+ msgid "Wrote settings to %s"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1581
++#: ../src/top.ml:1745
+ msgid "default"
+ msgstr ""
+
+-#: ../virt-top/virt_top_xml.ml:46
++#: ../src/top.ml:210
++msgid "dump output to stdout (no userinterface)"
++msgstr ""
++
++#: ../src/opt_xml.ml:46
+ msgid "get_xml_desc didn't return <domain/>"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:1561
++#: ../src/top.ml:212
++msgid "show block device load in bytes rather than reqs"
++msgstr ""
++
++#: ../src/top.ml:1767
++msgid "toggle block info req/bytes"
++msgstr ""
++
++#: ../src/top.ml:1725
+ msgid "virt-top %s ocaml-libvirt %s libvirt %d.%d.%d by Red Hat"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:208
++#: ../src/top.ml:218
+ msgid ""
+ "virt-top : a 'top'-like utility for virtualization\n"
+ "\n"
+_at_@ -328,10 +350,11 @@ msgid ""
+ "OPTIONS"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:42
++#: ../src/top.ml:42
+ msgid "virt-top was compiled without support for CSV files"
+ msgstr ""
+
+-#: ../virt-top/virt_top.ml:53
++#: ../src/top.ml:53
+ msgid "virt-top was compiled without support for dates and times"
+ msgstr ""
++
+--
+2.9.3
+
diff --git a/testing/virt-top/0011-Remove-support-for-OCaml-Calendar-v1.patch b/testing/virt-top/0011-Remove-support-for-OCaml-Calendar-v1.patch
new file mode 100644
index 0000000000..fd69a6e6ec
--- /dev/null
+++ b/testing/virt-top/0011-Remove-support-for-OCaml-Calendar-v1.patch
_at_@ -0,0 +1,203 @@
+From effd1ec5897a2cac6e897ae7bce72f6b1e617b90 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Mon, 27 Mar 2017 12:41:21 +0100
+Subject: [PATCH 11/17] Remove support for OCaml Calendar v1.
+
+Calendar v2 was released in 2008 (9 years ago!), thus remove support
+for v1.
+
+This was already broken by commit dc0e217390132f7e76a4d9c0a8a81a9556d19081
+so it likely didn't work anyway.
+---
+ MANIFEST | 3 +-
+ configure.ac | 6 ----
+ po/POTFILES | 3 +-
+ src/.depend | 6 ++--
+ src/Makefile.in | 7 +---
+ src/README | 8 ++---
+ src/{opt_calendar2.ml => opt_calendar.ml} | 0
+ src/opt_calendar1.ml | 56 -------------------------------
+ 8 files changed, 9 insertions(+), 80 deletions(-)
+ rename src/{opt_calendar2.ml => opt_calendar.ml} (100%)
+ delete mode 100644 src/opt_calendar1.ml
+
+diff --git a/MANIFEST b/MANIFEST
+index 2cf377f..26e87b2 100644
+--- a/MANIFEST
++++ b/MANIFEST
+_at_@ -55,8 +55,7 @@ src/.depend
+ src/Makefile.in
+ src/README
+ src/main.ml
+-src/opt_calendar1.ml
+-src/opt_calendar2.ml
++src/opt_calendar.ml
+ src/opt_csv.ml
+ src/opt_xml.ml
+ src/top.ml
+diff --git a/configure.ac b/configure.ac
+index ad65465..c9c7e34 100644
+--- a/configure.ac
++++ b/configure.ac
+_at_@ -57,12 +57,7 @@ dnl Check for optional OCaml packages.
+ AC_CHECK_OCAML_PKG(gettext)
+ AC_CHECK_OCAML_PKG(xml-light)
+ AC_CHECK_OCAML_PKG(csv)
+-
+-dnl Need to check which version of calendar is installed.
+ AC_CHECK_OCAML_PKG(calendar)
+-if test "x$OCAML_PKG_calendar" != "xno"; then
+- AC_CHECK_OCAML_MODULE(is_calendar2,calendar,[CalendarLib.Date],[+$OCAML_PKG_calendar])
+-fi
+
+ AC_SUBST(OCAML_PKG_unix)
+ AC_SUBST(OCAML_PKG_extlib)
+_at_@ -71,7 +66,6 @@ AC_SUBST(OCAML_PKG_gettext)
+ AC_SUBST(OCAML_PKG_xml_light)
+ AC_SUBST(OCAML_PKG_csv)
+ AC_SUBST(OCAML_PKG_calendar)
+-AC_SUBST(is_calendar2)
+
+ dnl Check for optional perldoc (for building manual pages).
+ AC_CHECK_PROG(HAVE_PERLDOC,perldoc,perldoc)
+diff --git a/po/POTFILES b/po/POTFILES
+index 70d62d5..b826a2a 100644
+--- a/po/POTFILES
++++ b/po/POTFILES
+_at_@ -1,6 +1,5 @@
+ ../src/main.ml
+-../src/opt_calendar1.ml
+-../src/opt_calendar2.ml
++../src/opt_calendar.ml
+ ../src/opt_csv.ml
+ ../src/opt_gettext.ml
+ ../src/opt_xml.ml
+diff --git a/src/.depend b/src/.depend
+index 5325c54..f487c18 100644
+--- a/src/.depend
++++ b/src/.depend
+_at_@ -1,9 +1,7 @@
+ main.cmo: top.cmi opt_gettext.cmo
+ main.cmx: top.cmx opt_gettext.cmx
+-opt_calendar1.cmo: top.cmi opt_gettext.cmo
+-opt_calendar1.cmx: top.cmx opt_gettext.cmx
+-opt_calendar2.cmo: top.cmi opt_gettext.cmo
+-opt_calendar2.cmx: top.cmx opt_gettext.cmx
++opt_calendar.cmo: top.cmi opt_gettext.cmo
++opt_calendar.cmx: top.cmx opt_gettext.cmx
+ opt_csv.cmo: top.cmi opt_gettext.cmo
+ opt_csv.cmx: top.cmx opt_gettext.cmx
+ opt_gettext.cmo:
+diff --git a/src/Makefile.in b/src/Makefile.in
+index d744fd7..ae896cb 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+_at_@ -52,13 +52,8 @@ OBJS += opt_csv.cmo
+ OCAMLCPACKAGES += -package csv
+ endif
+ ifneq ($(OCAML_PKG_calendar),no)
+-ifeq ($(is_calendar2),no)
+-OBJS += opt_calendar1.cmo
++OBJS += opt_calendar.cmo
+ OCAMLCPACKAGES += -package calendar
+-else
+-OBJS += opt_calendar2.cmo
+-OCAMLCPACKAGES += -package calendar
+-endif
+ endif
+ OBJS += main.cmo
+
+diff --git a/src/README b/src/README
+index 47382a5..8aa2348 100644
+--- a/src/README
++++ b/src/README
+_at_@ -40,16 +40,16 @@ The code is structured into these files:
+ Any code which needs the optional ocaml-csv library goes
+ in here. This implements the --csv command line option.
+
+- opt_calendar1.ml, opt_calendar2.ml
++ opt_calendar.ml
+
+ Any code which needs the optional ocaml-calendar library
+- (v1 or v2) goes in here. This implements the --end-time
+- command line option.
++ (v2) goes in here. This implements the --end-time command
++ line option.
+
+ main.ml
+
+ This is just a small bit of code to glue the modules together
+- Top + Opt_xml? + Opt_csv? + Opt_calendar{1,2}?
++ Top + Opt_xml? + Opt_csv? + Opt_calendar?
+
+ The man-page is generated from the single file:
+
+diff --git a/src/opt_calendar2.ml b/src/opt_calendar.ml
+similarity index 100%
+rename from src/opt_calendar2.ml
+rename to src/opt_calendar.ml
+diff --git a/src/opt_calendar1.ml b/src/opt_calendar1.ml
+deleted file mode 100644
+index 2c459fe..0000000
+--- a/src/opt_calendar1.ml
++++ /dev/null
+_at_@ -1,56 +0,0 @@
+-(* 'top'-like tool for libvirt domains.
+- (C) Copyright 2007-2009 Richard W.M. Jones, Red Hat Inc.
+- http://libvirt.org/
+-
+- This program is free software; you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation; either version 2 of the License, or
+- (at your option) any later version.
+-
+- This program 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 General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-
+- This file contains all code which requires ocaml-calendar < 2.0
+-*)
+-
+-open Printf
+-open ExtString
+-
+-open Opt_gettext.Gettext ;;
+-
+-Top.parse_date_time :=
+-fun time ->
+- let cal : Calendar.t =
+- if String.starts_with time "+" then ( (* +something *)
+- let period = String.sub time 1 (String.length time - 1) in
+- let period =
+- if String.contains period ':' then ( (* +HH:MM:SS *)
+- let t = Printer.TimePrinter.from_string period in
+- let hh = Time.hour t and mm = Time.minute t and ss = Time.second t in
+- Calendar.Period.make 0 0 0 hh mm ss
+- ) else (* +seconds *)
+- Calendar.Period.second (int_of_string period) in
+- (* Add it as an offset from the current time. *)
+- Calendar.add (Calendar.now ()) period
+- ) else (
+- if String.contains time '-' then (* YYYY-MM-DD HH:MM:SS *)
+- Printer.CalendarPrinter.from_string time
+- else ( (* HH:MM:SS *)
+- let time = Printer.TimePrinter.from_string time in
+- Calendar.create (Date.today ()) time
+- )
+- ) in
+-
+- eprintf "end time: %s\n" (Printer.CalendarPrinter.to_string cal);
+-
+- (* Convert to a time_t. Note that we compare this against
+- * Unix.gettimeofday in the main module, so this must be returned as
+- * plain seconds from 1970 with no timezone adjustment. (RHBZ#637964)
+- *)
+- Calendar.to_unixfloat cal
+--
+2.9.3
+
diff --git a/testing/virt-top/0012-src-Fix-some-comments-which-referred-to-the-old-file.patch b/testing/virt-top/0012-src-Fix-some-comments-which-referred-to-the-old-file.patch
new file mode 100644
index 0000000000..a97231de37
--- /dev/null
+++ b/testing/virt-top/0012-src-Fix-some-comments-which-referred-to-the-old-file.patch
_at_@ -0,0 +1,76 @@
+From 3e9ed9c0fe49c3d4e4a8e467d521f676769c485a Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Mon, 27 Mar 2017 13:06:18 +0100
+Subject: [PATCH 12/17] src: Fix some comments which referred to the old
+ filenames.
+
+Fixes commit b7c3ef13cbd9c9cd49005a32ffb70faf6f5bbe8c.
+---
+ src/top.ml | 8 ++++----
+ src/top.mli | 6 +++---
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/src/top.ml b/src/top.ml
+index 38658c6..f50e6a8 100644
+--- a/src/top.ml
++++ b/src/top.ml
+_at_@ -30,13 +30,13 @@ module N = Libvirt.Network
+
+ let rcfile = ".virt-toprc"
+
+-(* Hook for XML support (see virt_top_xml.ml). *)
++(* Hook for XML support (see [opt_xml.ml]). *)
+ let parse_device_xml : (int -> [>`R] D.t -> string list * string list) ref =
+ ref (
+ fun _ _ -> [], []
+ )
+
+-(* Hooks for CSV support (see virt_top_csv.ml). *)
++(* Hooks for CSV support (see [opt_csv.ml]). *)
+ let csv_start : (string -> unit) ref =
+ ref (
+ fun _ -> failwith (s_"virt-top was compiled without support for CSV files")
+_at_@ -46,7 +46,7 @@ let csv_write : (string list -> unit) ref =
+ fun _ -> ()
+ )
+
+-(* Hook for calendar support (see virt_top_calendar.ml). *)
++(* Hook for calendar support (see [opt_calendar.ml]). *)
+ let parse_date_time : (string -> float) ref =
+ ref (
+ fun _ ->
+_at_@ -345,7 +345,7 @@ OPTIONS" in
+
+ (* This tuple of static information is called 'setup' in other parts
+ * of this program, and is passed to other functions such as redraw and
+- * main_loop. See virt_top_main.ml.
++ * main_loop. See [main.ml].
+ *)
+ (conn,
+ !batch_mode, !script_mode, !csv_enabled, !stream_mode, (* immutable modes *)
+diff --git a/src/top.mli b/src/top.mli
+index 3ad0718..b0953dd 100644
+--- a/src/top.mli
++++ b/src/top.mli
+_at_@ -17,15 +17,15 @@
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *)
+
+-(* Hook for virt_top_xml to override (if present). *)
++(* Hook for [Opt_xml] to override (if present). *)
+ val parse_device_xml :
+ (int -> [ `R ] Libvirt.Domain.t -> string list * string list) ref
+
+-(* Hooks for virt_top_csv to override (if present). *)
++(* Hooks for [Opt_csv] to override (if present). *)
+ val csv_start : (string -> unit) ref
+ val csv_write : (string list -> unit) ref
+
+-(* Hook for virt_top_calendar to override (if present). *)
++(* Hook for [Opt_calendar] to override (if present). *)
+ val parse_date_time : (string -> float) ref
+
+ type setup =
+--
+2.9.3
+
diff --git a/testing/virt-top/0013-Split-up-huge-Top-module-into-smaller-modules.patch b/testing/virt-top/0013-Split-up-huge-Top-module-into-smaller-modules.patch
new file mode 100644
index 0000000000..dc49746607
--- /dev/null
+++ b/testing/virt-top/0013-Split-up-huge-Top-module-into-smaller-modules.patch
_at_@ -0,0 +1,3274 @@
+From 90d14bc151e488972d33eefaac2242d9a6e07578 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Mon, 27 Mar 2017 15:29:23 +0100
+Subject: [PATCH 13/17] Split up huge Top module into smaller modules.
+
+This change is hopefully pure refactoring, splitting up the very large
+and highly interlinked module into more manageable modules with
+well-defined (or at least *better*-defined) interfaces between them.
+---
+ MANIFEST | 12 +
+ po/POTFILES | 6 +
+ src/.depend | 36 +-
+ src/Makefile.in | 6 +
+ src/README | 38 +-
+ src/collect.ml | 455 ++++++++++++++++++++
+ src/collect.mli | 86 ++++
+ src/csv_output.ml | 118 +++++
+ src/csv_output.mli | 27 ++
+ src/opt_csv.ml | 2 +-
+ src/opt_xml.ml | 2 +-
+ src/redraw.ml | 506 ++++++++++++++++++++++
+ src/redraw.mli | 20 +
+ src/screen.ml | 52 +++
+ src/screen.mli | 41 ++
+ src/stream_output.ml | 84 ++++
+ src/stream_output.mli | 22 +
+ src/top.ml | 1139 ++-----------------------------------------------
+ src/top.mli | 20 +-
+ src/types.ml | 147 +++++++
+ src/types.mli | 49 +++
+ src/utils.ml | 65 ---
+ src/utils.mli | 9 -
+ 23 files changed, 1719 insertions(+), 1223 deletions(-)
+ create mode 100644 src/collect.ml
+ create mode 100644 src/collect.mli
+ create mode 100644 src/csv_output.ml
+ create mode 100644 src/csv_output.mli
+ create mode 100644 src/redraw.ml
+ create mode 100644 src/redraw.mli
+ create mode 100644 src/screen.ml
+ create mode 100644 src/screen.mli
+ create mode 100644 src/stream_output.ml
+ create mode 100644 src/stream_output.mli
+ create mode 100644 src/types.ml
+ create mode 100644 src/types.mli
+
+diff --git a/MANIFEST b/MANIFEST
+index 26e87b2..4e4014b 100644
+--- a/MANIFEST
++++ b/MANIFEST
+_at_@ -54,12 +54,24 @@ TODO
+ src/.depend
+ src/Makefile.in
+ src/README
++src/collect.ml
++src/collect.mli
++src/csv_output.ml
++src/csv_output.mli
+ src/main.ml
+ src/opt_calendar.ml
+ src/opt_csv.ml
+ src/opt_xml.ml
++src/redraw.ml
++src/redraw.mli
++src/screen.ml
++src/screen.mli
++src/stream_output.ml
++src/stream_output.mli
+ src/top.ml
+ src/top.mli
++src/types.ml
++src/types.mli
+ src/utils.ml
+ src/utils.mli
+ src/version.ml.in
+diff --git a/po/POTFILES b/po/POTFILES
+index b826a2a..6150703 100644
+--- a/po/POTFILES
++++ b/po/POTFILES
+_at_@ -1,8 +1,14 @@
++../src/collect.ml
++../src/csv_output.ml
+ ../src/main.ml
+ ../src/opt_calendar.ml
+ ../src/opt_csv.ml
+ ../src/opt_gettext.ml
+ ../src/opt_xml.ml
++../src/redraw.ml
++../src/screen.ml
++../src/stream.ml
+ ../src/top.ml
++../src/types.ml
+ ../src/utils.ml
+ ../src/version.ml
+diff --git a/src/.depend b/src/.depend
+index f487c18..1075f36 100644
+--- a/src/.depend
++++ b/src/.depend
+_at_@ -1,18 +1,36 @@
++collect.cmi: types.cmi
++collect.cmo: utils.cmi types.cmi collect.cmi
++collect.cmx: utils.cmx types.cmx collect.cmi
++csv_output.cmi: types.cmi collect.cmi
++csv_output.cmo: collect.cmi csv_output.cmi
++csv_output.cmx: collect.cmx csv_output.cmi
+ main.cmo: top.cmi opt_gettext.cmo
+ main.cmx: top.cmx opt_gettext.cmx
+ opt_calendar.cmo: top.cmi opt_gettext.cmo
+ opt_calendar.cmx: top.cmx opt_gettext.cmx
+-opt_csv.cmo: top.cmi opt_gettext.cmo
+-opt_csv.cmx: top.cmx opt_gettext.cmx
++opt_csv.cmo: top.cmi opt_gettext.cmo csv_output.cmi
++opt_csv.cmx: top.cmx opt_gettext.cmx csv_output.cmx
+ opt_gettext.cmo:
+ opt_gettext.cmx:
+-opt_xml.cmo: top.cmi opt_gettext.cmo
+-opt_xml.cmx: top.cmx opt_gettext.cmx
+-top.cmi:
+-top.cmo: version.cmo utils.cmi opt_gettext.cmo top.cmi
+-top.cmx: version.cmx utils.cmx opt_gettext.cmx top.cmi
++opt_xml.cmo: opt_gettext.cmo collect.cmi
++opt_xml.cmx: opt_gettext.cmx collect.cmx
++redraw.cmi: types.cmi collect.cmi
++redraw.cmo: utils.cmi types.cmi screen.cmi opt_gettext.cmo collect.cmi redraw.cmi
++redraw.cmx: utils.cmx types.cmx screen.cmx opt_gettext.cmx collect.cmx redraw.cmi
++screen.cmi:
++screen.cmo: screen.cmi
++screen.cmx: screen.cmi
++stream_output.cmi: types.cmi collect.cmi
++stream_output.cmo: utils.cmi screen.cmi collect.cmi stream_output.cmi
++stream_output.cmx: utils.cmx screen.cmx collect.cmx stream_output.cmi
++top.cmi: types.cmi
++top.cmo: version.cmo utils.cmi types.cmi stream_output.cmi screen.cmi redraw.cmi opt_gettext.cmo csv_output.cmi collect.cmi top.cmi
++top.cmx: version.cmx utils.cmx types.cmx stream_output.cmx screen.cmx redraw.cmx opt_gettext.cmx csv_output.cmx collect.cmx top.cmi
++types.cmi:
++types.cmo: utils.cmi opt_gettext.cmo types.cmi
++types.cmx: utils.cmx opt_gettext.cmx types.cmi
+ utils.cmi:
+-utils.cmo: opt_gettext.cmo utils.cmi
+-utils.cmx: opt_gettext.cmx utils.cmi
++utils.cmo: utils.cmi
++utils.cmx: utils.cmi
+ version.cmo:
+ version.cmx:
+diff --git a/src/Makefile.in b/src/Makefile.in
+index ae896cb..64f431e 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+_at_@ -42,6 +42,12 @@ OBJS := \
+ version.cmo \
+ opt_gettext.cmo \
+ utils.cmo \
++ types.cmo \
++ collect.cmo \
++ screen.cmo \
++ redraw.cmo \
++ csv_output.cmo \
++ stream_output.cmo \
+ top.cmo
+ ifneq ($(OCAML_PKG_xml_light),no)
+ OBJS += opt_xml.cmo
+diff --git a/src/README b/src/README
+index 8aa2348..1fd4be3 100644
+--- a/src/README
++++ b/src/README
+_at_@ -5,19 +5,37 @@ The code is structured into these files:
+ String functions and other small utility functions. This is
+ included directly into virt_top.ml.
+
++ types.mli, types.ml
++
++ Various internally used types and functions operating on those
++ types.
++
++ collect.mli, collect.ml
++
++ Stats information is collected in these functions.
++
++ screen.mli, screen.ml
++
++ Various useful functions for drawing to the curses screen.
++
++ redraw.mli, redraw.ml
++
++ Redraw the main display.
++
++ csv_output.mli, csv_output.ml
++
++ Functions which implement --csv mode.
++
++ stream_output.mli, stream_output.ml
++
++ Functions which implement --stream mode.
++
+ top.mli, top.ml
+
+ This is the virt-top program.
+
+- The two interesting functions are called 'collect' and 'redraw'.
+-
+- 'collect' collects all the information about domains, etc.
+-
+- 'redraw' updates the display on each frame.
+-
+- Another interesting function is 'start_up' which handles all
+- start-up stuff, eg. command line arguments, connecting to the
+- hypervisor, enabling curses.
++ 'start_up' handles all start-up stuff, eg. command line arguments,
++ connecting to the hypervisor, enabling curses.
+
+ The function 'main_loop' runs the main loop and has sub-functions
+ to deal with keypresses, help screens and so on.
+_at_@ -38,7 +56,7 @@ The code is structured into these files:
+ opt_csv.ml
+
+ Any code which needs the optional ocaml-csv library goes
+- in here. This implements the --csv command line option.
++ in here.
+
+ opt_calendar.ml
+
+diff --git a/src/collect.ml b/src/collect.ml
+new file mode 100644
+index 0000000..f856067
+--- /dev/null
++++ b/src/collect.ml
+_at_@ -0,0 +1,455 @@
++(* 'top'-like tool for libvirt domains.
++ (C) Copyright 2007-2017 Richard W.M. Jones, Red Hat Inc.
++ http://libvirt.org/
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program 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 General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++*)
++
++module C = Libvirt.Connect
++module D = Libvirt.Domain
++
++open Printf
++open ExtList
++
++open Utils
++open Types
++
++(* Hook for XML support (see [opt_xml.ml]). *)
++let parse_device_xml : (int -> [>`R] D.t -> string list * string list) ref =
++ ref (
++ fun _ _ -> [], []
++ )
++
++(* Intermediate "domain + stats" structure that we use to collect
++ * everything we know about a domain within the collect function.
++ *)
++type rd_domain = Inactive | Active of rd_active
++and rd_active = {
++ rd_domid : int; (* Domain ID. *)
++ rd_dom : [`R] D.t; (* Domain object. *)
++ rd_info : D.info; (* Domain CPU info now. *)
++ rd_block_stats : (string * D.block_stats) list;
++ (* Domain block stats now. *)
++ rd_interface_stats : (string * D.interface_stats) list;
++ (* Domain net stats now. *)
++ rd_prev_info : D.info option; (* Domain CPU info previously. *)
++ rd_prev_block_stats : (string * D.block_stats) list;
++ (* Domain block stats prev. *)
++ rd_prev_interface_stats : (string * D.interface_stats) list;
++ (* Domain interface stats prev. *)
++ (* The following are since the last slice, or 0 if cannot be calculated: *)
++ rd_cpu_time : float; (* CPU time used in nanoseconds. *)
++ rd_percent_cpu : float; (* CPU time as percent of total. *)
++ rd_mem_bytes : int64; (* Memory usage in bytes *)
++ rd_mem_percent: int64; (* Memory usage as percent of total *)
++ (* The following are since the last slice, or None if cannot be calc'd: *)
++ rd_block_rd_reqs : int64 option; (* Number of block device read rqs. *)
++ rd_block_wr_reqs : int64 option; (* Number of block device write rqs. *)
++ rd_block_rd_bytes : int64 option; (* Number of bytes block device read *)
++ rd_block_wr_bytes : int64 option; (* Number of bytes block device write *)
++ (* _info fields includes the number considering --block_in_bytes option *)
++ rd_block_rd_info : int64 option; (* Block device read info for user *)
++ rd_block_wr_info : int64 option; (* Block device read info for user *)
++
++ rd_net_rx_bytes : int64 option; (* Number of bytes received. *)
++ rd_net_tx_bytes : int64 option; (* Number of bytes transmitted. *)
++}
++
++type stats = {
++ rd_doms : (string * rd_domain) list; (* List of domains. *)
++ rd_time : float;
++ rd_printable_time : string;
++ rd_nr_pcpus : int;
++ rd_total_cpu : float;
++ rd_total_cpu_per_pcpu : float;
++ rd_totals : (int * int * int * int * int * int * int * int * int * float *
++ int64 * int64);
++}
++
++type pcpu_stats = {
++ rd_pcpu_doms : (int * string * int *
++ Libvirt.Domain.vcpu_info array * int64 array array *
++ int64 array array * string * int) list;
++ rd_pcpu_pcpus : int64 array array array;
++ rd_pcpu_pcpus_cpu_time : float array
++}
++
++(* We cache the list of block devices and interfaces for each domain
++ * here, so we don't need to reparse the XML each time.
++ *)
++let devices = Hashtbl.create 13
++
++(* Function to get the list of block devices, network interfaces for
++ * a particular domain. Get it from the devices cache, and if not
++ * there then parse the domain XML.
++ *)
++let get_devices id dom =
++ try Hashtbl.find devices id
++ with Not_found ->
++ let blkdevs, netifs = (!parse_device_xml) id dom in
++ Hashtbl.replace devices id (blkdevs, netifs);
++ blkdevs, netifs
++
++(* We save the state of domains across redraws here, which allows us
++ * to deduce %CPU usage from the running total.
++ *)
++let last_info = Hashtbl.create 13
++let last_time = ref (Unix.gettimeofday ())
++
++(* Save pcpu_usages structures across redraws too (only for pCPU display). *)
++let last_pcpu_usages = Hashtbl.create 13
++
++let clear_pcpu_display_data () =
++ Hashtbl.clear last_pcpu_usages
++
++let collect (conn, _, _, _, _, node_info, _, _) block_in_bytes =
++ (* Number of physical CPUs (some may be disabled). *)
++ let nr_pcpus = C.maxcpus_of_node_info node_info in
++
++ (* Get the current time. *)
++ let time = Unix.gettimeofday () in
++ let tm = Unix.localtime time in
++ let printable_time =
++ sprintf "%02d:%02d:%02d" tm.Unix.tm_hour tm.Unix.tm_min tm.Unix.tm_sec in
++
++ (* What's the total CPU time elapsed since we were last called? (ns) *)
++ let total_cpu_per_pcpu = 1_000_000_000. *. (time -. !last_time) in
++ (* Avoid division by zero. *)
++ let total_cpu_per_pcpu =
++ if total_cpu_per_pcpu <= 0. then 1. else total_cpu_per_pcpu in
++ let total_cpu = float node_info.C.cpus *. total_cpu_per_pcpu in
++
++ (* Get the domains. Match up with their last_info (if any). *)
++ let doms =
++ (* Active domains. *)
++ let n = C.num_of_domains conn in
++ let ids =
++ if n > 0 then Array.to_list (C.list_domains conn n)
++ else [] in
++ let doms =
++ List.filter_map (
++ fun id ->
++ try
++ let dom = D.lookup_by_id conn id in
++ let name = D.get_name dom in
++ let blkdevs, netifs = get_devices id dom in
++
++ (* Get current CPU, block and network stats. *)
++ let info = D.get_info dom in
++ let block_stats =
++ try List.map (fun dev -> dev, D.block_stats dom dev) blkdevs
++ with
++ | Libvirt.Not_supported "virDomainBlockStats"
++ | Libvirt.Virterror _ -> [] in
++ let interface_stats =
++ try List.map (fun dev -> dev, D.interface_stats dom dev) netifs
++ with
++ | Libvirt.Not_supported "virDomainInterfaceStats"
++ | Libvirt.Virterror _ -> [] in
++
++ let prev_info, prev_block_stats, prev_interface_stats =
++ try
++ let prev_info, prev_block_stats, prev_interface_stats =
++ Hashtbl.find last_info id in
++ Some prev_info, prev_block_stats, prev_interface_stats
++ with Not_found -> None, [], [] in
++
++ Some (name,
++ Active {
++ rd_domid = id; rd_dom = dom; rd_info = info;
++ rd_block_stats = block_stats;
++ rd_interface_stats = interface_stats;
++ rd_prev_info = prev_info;
++ rd_prev_block_stats = prev_block_stats;
++ rd_prev_interface_stats = prev_interface_stats;
++ rd_cpu_time = 0.; rd_percent_cpu = 0.;
++ rd_mem_bytes = 0L; rd_mem_percent = 0L;
++ rd_block_rd_reqs = None; rd_block_wr_reqs = None;
++ rd_block_rd_bytes = None; rd_block_wr_bytes = None;
++ rd_block_rd_info = None; rd_block_wr_info = None;
++ rd_net_rx_bytes = None; rd_net_tx_bytes = None;
++ })
++ with
++ Libvirt.Virterror _ -> None (* ignore transient error *)
++ ) ids in
++
++ (* Inactive domains. *)
++ let doms_inactive =
++ try
++ let n = C.num_of_defined_domains conn in
++ let names =
++ if n > 0 then Array.to_list (C.list_defined_domains conn n)
++ else [] in
++ List.map (fun name -> name, Inactive) names
++ with
++ (* Ignore transient errors, in particular errors from
++ * num_of_defined_domains if it cannot contact xend.
++ *)
++ | Libvirt.Virterror _ -> [] in
++
++ doms _at_ doms_inactive in
++
++ (* Calculate the CPU time (ns) and %CPU used by each domain. *)
++ let doms =
++ List.map (
++ function
++ (* We have previous CPU info from which to calculate it? *)
++ | name, Active ({ rd_prev_info = Some prev_info } as rd) ->
++ let cpu_time =
++ Int64.to_float (rd.rd_info.D.cpu_time -^ prev_info.D.cpu_time) in
++ let percent_cpu = 100. *. cpu_time /. total_cpu in
++ let mem_usage = rd.rd_info.D.memory in
++ let mem_percent =
++ 100L *^ rd.rd_info.D.memory /^ node_info.C.memory in
++ let rd = { rd with
++ rd_cpu_time = cpu_time;
++ rd_percent_cpu = percent_cpu;
++ rd_mem_bytes = mem_usage;
++ rd_mem_percent = mem_percent} in
++ name, Active rd
++ (* For all other domains we can't calculate it, so leave as 0 *)
++ | rd -> rd
++ ) doms in
++
++ (* Calculate the number of block device read/write requests across
++ * all block devices attached to a domain.
++ *)
++ let doms =
++ List.map (
++ function
++ (* Do we have stats from the previous slice? *)
++ | name, Active ({ rd_prev_block_stats = ((_::_) as prev_block_stats) }
++ as rd) ->
++ let block_stats = rd.rd_block_stats in (* stats now *)
++
++ (* Add all the devices together. Throw away device names. *)
++ let prev_block_stats =
++ sum_block_stats (List.map snd prev_block_stats) in
++ let block_stats =
++ sum_block_stats (List.map snd block_stats) in
++
++ (* Calculate increase in read & write requests. *)
++ let read_reqs =
++ block_stats.D.rd_req -^ prev_block_stats.D.rd_req in
++ let write_reqs =
++ block_stats.D.wr_req -^ prev_block_stats.D.wr_req in
++ let read_bytes =
++ block_stats.D.rd_bytes -^ prev_block_stats.D.rd_bytes in
++ let write_bytes =
++ block_stats.D.wr_bytes -^ prev_block_stats.D.wr_bytes in
++
++ let rd = { rd with
++ rd_block_rd_reqs = Some read_reqs;
++ rd_block_wr_reqs = Some write_reqs;
++ rd_block_rd_bytes = Some read_bytes;
++ rd_block_wr_bytes = Some write_bytes;
++ } in
++ let rd = { rd with
++ rd_block_rd_info =
++ if block_in_bytes then
++ rd.rd_block_rd_bytes else rd.rd_block_rd_reqs;
++ rd_block_wr_info =
++ if block_in_bytes then
++ rd.rd_block_wr_bytes else rd.rd_block_wr_reqs;
++ } in
++ name, Active rd
++ (* For all other domains we can't calculate it, so leave as None. *)
++ | rd -> rd
++ ) doms in
++
++ (* Calculate the same as above for network interfaces across
++ * all network interfaces attached to a domain.
++ *)
++ let doms =
++ List.map (
++ function
++ (* Do we have stats from the previous slice? *)
++ | name, Active ({ rd_prev_interface_stats =
++ ((_::_) as prev_interface_stats) }
++ as rd) ->
++ let interface_stats = rd.rd_interface_stats in (* stats now *)
++
++ (* Add all the devices together. Throw away device names. *)
++ let prev_interface_stats =
++ sum_interface_stats (List.map snd prev_interface_stats) in
++ let interface_stats =
++ sum_interface_stats (List.map snd interface_stats) in
++
++ (* Calculate increase in rx & tx bytes. *)
++ let rx_bytes =
++ interface_stats.D.rx_bytes -^ prev_interface_stats.D.rx_bytes in
++ let tx_bytes =
++ interface_stats.D.tx_bytes -^ prev_interface_stats.D.tx_bytes in
++
++ let rd = { rd with
++ rd_net_rx_bytes = Some rx_bytes;
++ rd_net_tx_bytes = Some tx_bytes } in
++ name, Active rd
++ (* For all other domains we can't calculate it, so leave as None. *)
++ | rd -> rd
++ ) doms in
++
++ (* Calculate totals. *)
++ let totals =
++ List.fold_left (
++ fun (count, running, blocked, paused, shutdown, shutoff,
++ crashed, active, inactive,
++ total_cpu_time, total_memory, total_domU_memory) ->
++ function
++ | (name, Active rd) ->
++ let test state orig =
++ if rd.rd_info.D.state = state then orig+1 else orig
++ in
++ let running = test D.InfoRunning running in
++ let blocked = test D.InfoBlocked blocked in
++ let paused = test D.InfoPaused paused in
++ let shutdown = test D.InfoShutdown shutdown in
++ let shutoff = test D.InfoShutoff shutoff in
++ let crashed = test D.InfoCrashed crashed in
++
++ let total_cpu_time = total_cpu_time +. rd.rd_cpu_time in
++ let total_memory = total_memory +^ rd.rd_info.D.memory in
++ let total_domU_memory =
++ total_domU_memory +^
++ if rd.rd_domid > 0 then rd.rd_info.D.memory else 0L in
++
++ (count+1, running, blocked, paused, shutdown, shutoff,
++ crashed, active+1, inactive,
++ total_cpu_time, total_memory, total_domU_memory)
++
++ | (name, Inactive) -> (* inactive domain *)
++ (count+1, running, blocked, paused, shutdown, shutoff,
++ crashed, active, inactive+1,
++ total_cpu_time, total_memory, total_domU_memory)
++ ) (0,0,0,0,0,0,0,0,0, 0.,0L,0L) doms in
++
++ (* Update last_time, last_info. *)
++ last_time := time;
++ Hashtbl.clear last_info;
++ List.iter (
++ function
++ | (_, Active rd) ->
++ let info = rd.rd_info, rd.rd_block_stats, rd.rd_interface_stats in
++ Hashtbl.add last_info rd.rd_domid info
++ | _ -> ()
++ ) doms;
++
++ { rd_doms = doms;
++ rd_time = time;
++ rd_printable_time = printable_time;
++ rd_nr_pcpus = nr_pcpus;
++ rd_total_cpu = total_cpu;
++ rd_total_cpu_per_pcpu = total_cpu_per_pcpu;
++ rd_totals = totals }
++
++(* Collect some extra information in PCPUDisplay display_mode. *)
++let collect_pcpu { rd_doms = doms; rd_nr_pcpus = nr_pcpus } =
++ (* Get the VCPU info and VCPU->PCPU mappings for active domains.
++ * Also cull some data we don't care about.
++ *)
++ let doms =
++ List.filter_map (
++ function
++ | (name, Active rd) ->
++ (try
++ let domid = rd.rd_domid in
++ let maplen = C.cpumaplen nr_pcpus in
++ let cpu_stats = D.get_cpu_stats rd.rd_dom in
++
++ (* Note the terminology is confusing.
++ *
++ * In libvirt, cpu_time is the total time (hypervisor +
++ * vCPU). vcpu_time is the time only taken by the vCPU,
++ * excluding time taken inside the hypervisor.
++ *
++ * For each pCPU, libvirt may return either "cpu_time"
++ * or "vcpu_time" or neither or both. This function
++ * returns an array pair [|cpu_time, vcpu_time|];
++ * if either is missing it is returned as 0.
++ *)
++ let find_cpu_usages params =
++ let rec find_uint64_field name = function
++ | (n, D.TypedFieldUInt64 usage) :: _ when n = name ->
++ usage
++ | _ :: params -> find_uint64_field name params
++ | [] -> 0L
++ in
++ [| find_uint64_field "cpu_time" params;
++ find_uint64_field "vcpu_time" params |]
++ in
++
++ let pcpu_usages = Array.map find_cpu_usages cpu_stats in
++ let maxinfo = rd.rd_info.D.nr_virt_cpu in
++ let nr_vcpus, vcpu_infos, cpumaps =
++ D.get_vcpus rd.rd_dom maxinfo maplen in
++
++ (* Got previous pcpu_usages for this domain? *)
++ let prev_pcpu_usages =
++ try Some (Hashtbl.find last_pcpu_usages domid)
++ with Not_found -> None in
++ (* Update last_pcpu_usages. *)
++ Hashtbl.replace last_pcpu_usages domid pcpu_usages;
++
++ (match prev_pcpu_usages with
++ | Some prev_pcpu_usages
++ when Array.length prev_pcpu_usages = Array.length pcpu_usages ->
++ Some (domid, name, nr_vcpus, vcpu_infos, pcpu_usages,
++ prev_pcpu_usages, cpumaps, maplen)
++ | _ -> None (* ignore missing / unequal length prev_vcpu_infos *)
++ );
++ with
++ Libvirt.Virterror _ -> None (* ignore transient libvirt errors *)
++ )
++ | (_, Inactive) -> None (* ignore inactive doms *)
++ ) doms in
++ let nr_doms = List.length doms in
++
++ (* Rearrange the data into a matrix. Major axis (down) is
++ * pCPUs. Minor axis (right) is domains. At each node we store:
++ * cpu_time hypervisor + domain (on this pCPU only, nanosecs),
++ * vcpu_time domain only (on this pCPU only, nanosecs).
++ *)
++ let make_3d_array dimx dimy dimz e =
++ Array.init dimx (fun _ -> Array.make_matrix dimy dimz e)
++ in
++ let pcpus = make_3d_array nr_pcpus nr_doms 2 0L in
++
++ List.iteri (
++ fun di (domid, name, nr_vcpus, vcpu_infos, pcpu_usages,
++ prev_pcpu_usages, cpumaps, maplen) ->
++ (* Which pCPUs can this dom run on? *)
++ for p = 0 to Array.length pcpu_usages - 1 do
++ pcpus.(p).(di).(0) <-
++ pcpu_usages.(p).(0) -^ prev_pcpu_usages.(p).(0);
++ pcpus.(p).(di).(1) <-
++ pcpu_usages.(p).(1) -^ prev_pcpu_usages.(p).(1)
++ done
++ ) doms;
++
++ (* Sum the total CPU time used by each pCPU, for the %CPU column. *)
++ let pcpus_cpu_time =
++ Array.map (
++ fun row ->
++ let cpu_time = ref 0L in
++ for di = 0 to Array.length row-1 do
++ let t = row.(di).(0) in
++ cpu_time := !cpu_time +^ t
++ done;
++ Int64.to_float !cpu_time
++ ) pcpus in
++
++ { rd_pcpu_doms = doms;
++ rd_pcpu_pcpus = pcpus;
++ rd_pcpu_pcpus_cpu_time = pcpus_cpu_time }
+diff --git a/src/collect.mli b/src/collect.mli
+new file mode 100644
+index 0000000..440859b
+--- /dev/null
++++ b/src/collect.mli
+_at_@ -0,0 +1,86 @@
++(* 'top'-like tool for libvirt domains.
++ (C) Copyright 2007-2017 Richard W.M. Jones, Red Hat Inc.
++ http://libvirt.org/
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program 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 General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++*)
++
++(* Hook for [Opt_xml] to override (if present). *)
++val parse_device_xml :
++ (int -> [ `R ] Libvirt.Domain.t -> string list * string list) ref
++
++(* Intermediate "domain + stats" structure that we use to collect
++ * everything we know about a domain within the collect function.
++ *)
++type rd_domain = Inactive | Active of rd_active
++and rd_active = {
++ rd_domid : int; (* Domain ID. *)
++ rd_dom : [`R] Libvirt.Domain.t; (* Domain object. *)
++ rd_info : Libvirt.Domain.info; (* Domain CPU info now. *)
++ rd_block_stats : (string * Libvirt.Domain.block_stats) list;
++ (* Domain block stats now. *)
++ rd_interface_stats : (string * Libvirt.Domain.interface_stats) list;
++ (* Domain net stats now. *)
++ rd_prev_info : Libvirt.Domain.info option; (* Domain CPU info previously. *)
++ rd_prev_block_stats : (string * Libvirt.Domain.block_stats) list;
++ (* Domain block stats prev. *)
++ rd_prev_interface_stats : (string * Libvirt.Domain.interface_stats) list;
++ (* Domain interface stats prev. *)
++ (* The following are since the last slice, or 0 if cannot be calculated: *)
++ rd_cpu_time : float; (* CPU time used in nanoseconds. *)
++ rd_percent_cpu : float; (* CPU time as percent of total. *)
++ rd_mem_bytes : int64; (* Memory usage in bytes *)
++ rd_mem_percent: int64; (* Memory usage as percent of total *)
++ (* The following are since the last slice, or None if cannot be calc'd: *)
++ rd_block_rd_reqs : int64 option; (* Number of block device read rqs. *)
++ rd_block_wr_reqs : int64 option; (* Number of block device write rqs. *)
++ rd_block_rd_bytes : int64 option; (* Number of bytes block device read *)
++ rd_block_wr_bytes : int64 option; (* Number of bytes block device write *)
++ (* _info fields includes the number considering --block_in_bytes option *)
++ rd_block_rd_info : int64 option; (* Block device read info for user *)
++ rd_block_wr_info : int64 option; (* Block device read info for user *)
++
++ rd_net_rx_bytes : int64 option; (* Number of bytes received. *)
++ rd_net_tx_bytes : int64 option; (* Number of bytes transmitted. *)
++}
++
++type stats = {
++ rd_doms : (string * rd_domain) list; (* List of domains. *)
++ rd_time : float;
++ rd_printable_time : string;
++ rd_nr_pcpus : int;
++ rd_total_cpu : float;
++ rd_total_cpu_per_pcpu : float;
++ rd_totals : (int * int * int * int * int * int * int * int * int * float *
++ int64 * int64);
++}
++
++type pcpu_stats = {
++ rd_pcpu_doms : (int * string * int *
++ Libvirt.Domain.vcpu_info array * int64 array array *
++ int64 array array * string * int) list;
++ rd_pcpu_pcpus : int64 array array array;
++ rd_pcpu_pcpus_cpu_time : float array
++}
++
++val collect : Types.setup -> bool -> stats
++(** Collect statistics. *)
++
++val collect_pcpu : stats -> pcpu_stats
++(** Used in PCPUDisplay mode only, this returns extra per-PCPU stats. *)
++
++val clear_pcpu_display_data : unit -> unit
++(** Clear the cache of pcpu_usages used by PCPUDisplay display_mode
++ when we switch back to TaskDisplay mode. *)
+diff --git a/src/csv_output.ml b/src/csv_output.ml
+new file mode 100644
+index 0000000..9496ca8
+--- /dev/null
++++ b/src/csv_output.ml
+_at_@ -0,0 +1,118 @@
++(* 'top'-like tool for libvirt domains.
++ (C) Copyright 2007-2017 Richard W.M. Jones, Red Hat Inc.
++ http://libvirt.org/
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program 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 General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++*)
++
++(* CSV output functions. *)
++
++open Printf
++open ExtList
++
++open Collect
++
++module C = Libvirt.Connect
++
++(* Hook for CSV support (see [opt_csv.ml]). *)
++let csv_write : (string list -> unit) ref =
++ ref (
++ fun _ -> ()
++ )
++
++(* Write CSV header row. *)
++let write_csv_header (csv_cpu, csv_mem, csv_block, csv_net) block_in_bytes =
++ (!csv_write) (
++ [ "Hostname"; "Time"; "Arch"; "Physical CPUs";
++ "Count"; "Running"; "Blocked"; "Paused"; "Shutdown";
++ "Shutoff"; "Crashed"; "Active"; "Inactive";
++ "%CPU";
++ "Total hardware memory (KB)";
++ "Total memory (KB)"; "Total guest memory (KB)";
++ "Total CPU time (ns)" ] @
++ (* These fields are repeated for each domain: *)
++ [ "Domain ID"; "Domain name"; ] _at_
++ (if csv_cpu then [ "CPU (ns)"; "%CPU"; ] else []) @
++ (if csv_mem then [ "Mem (bytes)"; "%Mem";] else []) @
++ (if csv_block && not block_in_bytes
++ then [ "Block RDRQ"; "Block WRRQ"; ] else []) @
++ (if csv_block && block_in_bytes
++ then [ "Block RDBY"; "Block WRBY"; ] else []) @
++ (if csv_net then [ "Net RXBY"; "Net TXBY" ] else [])
++ )
++
++(* Write summary data to CSV file. *)
++let append_csv (_, _, _, _, _, node_info, hostname, _) (* setup *)
++ (csv_cpu, csv_mem, csv_block, csv_net)
++ { rd_doms = doms;
++ rd_printable_time = printable_time;
++ rd_nr_pcpus = nr_pcpus; rd_total_cpu = total_cpu;
++ rd_totals = totals } (* state *) =
++ (* The totals / summary fields. *)
++ let (count, running, blocked, paused, shutdown, shutoff,
++ crashed, active, inactive,
++ total_cpu_time, total_memory, total_domU_memory) = totals in
++
++ let percent_cpu = 100. *. total_cpu_time /. total_cpu in
++
++ let summary_fields = [
++ hostname; printable_time; node_info.C.model; string_of_int nr_pcpus;
++ string_of_int count; string_of_int running; string_of_int blocked;
++ string_of_int paused; string_of_int shutdown; string_of_int shutoff;
++ string_of_int crashed; string_of_int active; string_of_int inactive;
++ sprintf "%2.1f" percent_cpu;
++ Int64.to_string node_info.C.memory;
++ Int64.to_string total_memory; Int64.to_string total_domU_memory;
++ Int64.to_string (Int64.of_float total_cpu_time)
++ ] in
++
++ (* The domains.
++ *
++ * Sort them by ID so that the list of relatively stable. Ignore
++ * inactive domains.
++ *)
++ let doms = List.filter_map (
++ function
++ | _, Inactive -> None (* Ignore inactive domains. *)
++ | name, Active rd -> Some (name, rd)
++ ) doms in
++ let cmp (_, { rd_domid = rd_domid1 }) (_, { rd_domid = rd_domid2 }) =
++ compare rd_domid1 rd_domid2
++ in
++ let doms = List.sort ~cmp doms in
++
++ let string_of_int64_option = Option.map_default Int64.to_string "" in
++
++ let domain_fields = List.map (
++ fun (domname, rd) ->
++ [ string_of_int rd.rd_domid; domname ] @
++ (if csv_cpu then [
++ string_of_float rd.rd_cpu_time; string_of_float rd.rd_percent_cpu
++ ] else []) _at_
++ (if csv_mem then [
++ Int64.to_string rd.rd_mem_bytes; Int64.to_string rd.rd_mem_percent
++ ] else []) _at_
++ (if csv_block then [
++ string_of_int64_option rd.rd_block_rd_info;
++ string_of_int64_option rd.rd_block_wr_info;
++ ] else []) _at_
++ (if csv_net then [
++ string_of_int64_option rd.rd_net_rx_bytes;
++ string_of_int64_option rd.rd_net_tx_bytes;
++ ] else [])
++ ) doms in
++ let domain_fields = List.flatten domain_fields in
++
++ (!csv_write) (summary_fields _at_ domain_fields)
+diff --git a/src/csv_output.mli b/src/csv_output.mli
+new file mode 100644
+index 0000000..d5eab0f
+--- /dev/null
++++ b/src/csv_output.mli
+_at_@ -0,0 +1,27 @@
++(* 'top'-like tool for libvirt domains.
++ (C) Copyright 2007-2017 Richard W.M. Jones, Red Hat Inc.
++ http://libvirt.org/
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program 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 General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++*)
++
++(** CSV output functions. *)
++
++(* Hook for [Opt_csv] to override (if present). *)
++val csv_write : (string list -> unit) ref
++
++val write_csv_header : bool * bool * bool * bool -> bool -> unit
++
++val append_csv : Types.setup -> bool * bool * bool * bool -> Collect.stats -> unit
+diff --git a/src/opt_csv.ml b/src/opt_csv.ml
+index 6c3b2be..6625c61 100644
+--- a/src/opt_csv.ml
++++ b/src/opt_csv.ml
+_at_@ -28,7 +28,7 @@ Top.csv_start :=
+ fun filename ->
+ chan := Some (open_out filename) ;;
+
+-Top.csv_write :=
++Csv_output.csv_write :=
+ fun row ->
+ match !chan with
+ | None -> () (* CSV output not enabled. *)
+diff --git a/src/opt_xml.ml b/src/opt_xml.ml
+index bb83780..1037b85 100644
+--- a/src/opt_xml.ml
++++ b/src/opt_xml.ml
+_at_@ -27,7 +27,7 @@ module C = Libvirt.Connect
+ module D = Libvirt.Domain
+ module N = Libvirt.Network ;;
+
+-Top.parse_device_xml :=
++Collect.parse_device_xml :=
+ fun id dom ->
+ try
+ let xml = D.get_xml_desc dom in
+diff --git a/src/redraw.ml b/src/redraw.ml
+new file mode 100644
+index 0000000..9ce889b
+--- /dev/null
++++ b/src/redraw.ml
+_at_@ -0,0 +1,506 @@
++(* 'top'-like tool for libvirt domains.
++ (C) Copyright 2007-2017 Richard W.M. Jones, Red Hat Inc.
++ http://libvirt.org/
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program 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 General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++*)
++
++open ExtList
++open Curses
++open Printf
++
++open Opt_gettext.Gettext
++open Utils
++open Types
++open Screen
++open Collect
++
++module C = Libvirt.Connect
++module D = Libvirt.Domain
++
++(* Keep a historical list of %CPU usages. *)
++let historical_cpu = ref []
++let historical_cpu_last_time = ref (Unix.gettimeofday ())
++
++(* Redraw the display. *)
++let redraw display_mode sort_order
++ (_, _, _, _, _, node_info, _, _) (* setup *)
++ block_in_bytes
++ historical_cpu_delay
++ { rd_doms = doms;
++ rd_time = time; rd_printable_time = printable_time;
++ rd_nr_pcpus = nr_pcpus;
++ rd_total_cpu = total_cpu;
++ rd_total_cpu_per_pcpu = total_cpu_per_pcpu;
++ rd_totals = totals } (* state *)
++ pcpu_display =
++ clear ();
++
++ (* Get the screen/window size. *)
++ let lines, cols = get_size () in
++
++ (* Time. *)
++ mvaddstr top_lineno 0 (sprintf "virt-top %s - " printable_time);
++
++ (* Basic node_info. *)
++ addstr
++ (sprintf "%s %d/%dCPU %dMHz %LdMB "
++ node_info.C.model node_info.C.cpus nr_pcpus node_info.C.mhz
++ (node_info.C.memory /^ 1024L));
++ (* Save the cursor position for when we come to draw the
++ * historical CPU times (down in this function).
++ *)
++ let stdscr = stdscr () in
++ let historical_cursor = getyx stdscr in
++
++ (match display_mode with
++
++ (*---------- Showing domains ----------*)
++ | TaskDisplay ->
++ (* Sort domains on current sort_order. *)
++ let doms =
++ let cmp =
++ match sort_order with
++ | DomainName ->
++ (fun _ -> 0) (* fallthrough to default name compare *)
++ | Processor ->
++ (function
++ | Active rd1, Active rd2 ->
++ compare rd2.rd_percent_cpu rd1.rd_percent_cpu
++ | Active _, Inactive -> -1
++ | Inactive, Active _ -> 1
++ | Inactive, Inactive -> 0)
++ | Memory ->
++ (function
++ | Active { rd_info = info1 }, Active { rd_info = info2 } ->
++ compare info2.D.memory info1.D.memory
++ | Active _, Inactive -> -1
++ | Inactive, Active _ -> 1
++ | Inactive, Inactive -> 0)
++ | Time ->
++ (function
++ | Active { rd_info = info1 }, Active { rd_info = info2 } ->
++ compare info2.D.cpu_time info1.D.cpu_time
++ | Active _, Inactive -> -1
++ | Inactive, Active _ -> 1
++ | Inactive, Inactive -> 0)
++ | DomainID ->
++ (function
++ | Active { rd_domid = id1 }, Active { rd_domid = id2 } ->
++ compare id1 id2
++ | Active _, Inactive -> -1
++ | Inactive, Active _ -> 1
++ | Inactive, Inactive -> 0)
++ | NetRX ->
++ (function
++ | Active { rd_net_rx_bytes = r1 }, Active { rd_net_rx_bytes = r2 } ->
++ compare r2 r1
++ | Active _, Inactive -> -1
++ | Inactive, Active _ -> 1
++ | Inactive, Inactive -> 0)
++ | NetTX ->
++ (function
++ | Active { rd_net_tx_bytes = r1 }, Active { rd_net_tx_bytes = r2 } ->
++ compare r2 r1
++ | Active _, Inactive -> -1
++ | Inactive, Active _ -> 1
++ | Inactive, Inactive -> 0)
++ | BlockRdRq ->
++ (function
++ | Active { rd_block_rd_reqs = r1 }, Active { rd_block_rd_reqs = r2 } ->
++ compare r2 r1
++ | Active _, Inactive -> -1
++ | Inactive, Active _ -> 1
++ | Inactive, Inactive -> 0)
++ | BlockWrRq ->
++ (function
++ | Active { rd_block_wr_reqs = r1 }, Active { rd_block_wr_reqs = r2 } ->
++ compare r2 r1
++ | Active _, Inactive -> -1
++ | Inactive, Active _ -> 1
++ | Inactive, Inactive -> 0)
++ in
++ let cmp (name1, dom1) (name2, dom2) =
++ let r = cmp (dom1, dom2) in
++ if r <> 0 then r
++ else compare name1 name2
++ in
++ List.sort ~cmp doms in
++
++ (* Print domains. *)
++ attron A.reverse;
++ let header_string =
++ if block_in_bytes
++ then " ID S RDBY WRBY RXBY TXBY %CPU %MEM TIME NAME"
++ else " ID S RDRQ WRRQ RXBY TXBY %CPU %MEM TIME NAME"
++ in
++ mvaddstr header_lineno 0
++ (pad cols header_string);
++ attroff A.reverse;
++
++ let rec loop lineno = function
++ | [] -> ()
++ | (name, Active rd) :: doms ->
++ if lineno < lines then (
++ let state = show_state rd.rd_info.D.state in
++ let rd_req = Show.int64_option rd.rd_block_rd_info in
++ let wr_req = Show.int64_option rd.rd_block_wr_info in
++ let rx_bytes = Show.int64_option rd.rd_net_rx_bytes in
++ let tx_bytes = Show.int64_option rd.rd_net_tx_bytes in
++ let percent_cpu = Show.percent rd.rd_percent_cpu in
++ let percent_mem = Int64.to_float rd.rd_mem_percent in
++ let percent_mem = Show.percent percent_mem in
++ let time = Show.time rd.rd_info.D.cpu_time in
++
++ let line =
++ sprintf "%5d %c %s %s %s %s %s %s %s %s"
++ rd.rd_domid state rd_req wr_req rx_bytes tx_bytes
++ percent_cpu percent_mem time name in
++ let line = pad cols line in
++ mvaddstr lineno 0 line;
++ loop (lineno+1) doms
++ )
++ | (name, Inactive) :: doms -> (* inactive domain *)
++ if lineno < lines then (
++ let line =
++ sprintf
++ " - (%s)"
++ name in
++ let line = pad cols line in
++ mvaddstr lineno 0 line;
++ loop (lineno+1) doms
++ )
++ in
++ loop domains_lineno doms
++
++ (*---------- Showing physical CPUs ----------*)
++ | PCPUDisplay ->
++ let { rd_pcpu_doms = doms;
++ rd_pcpu_pcpus = pcpus;
++ rd_pcpu_pcpus_cpu_time = pcpus_cpu_time } =
++ match pcpu_display with
++ | Some p -> p
++ | None -> failwith "internal error: no pcpu_display data" in
++
++ (* Display the pCPUs. *)
++ let dom_names =
++ String.concat "" (
++ List.map (
++ fun (_, name, _, _, _, _, _, _) ->
++ let len = String.length name in
++ let width = max (len+1) 12 in
++ pad width name
++ ) doms
++ ) in
++ attron A.reverse;
++ mvaddstr header_lineno 0 (pad cols ("PHYCPU %CPU " ^ dom_names));
++ attroff A.reverse;
++
++ Array.iteri (
++ fun p row ->
++ mvaddstr (p+domains_lineno) 0 (sprintf "%4d " p);
++ let cpu_time = pcpus_cpu_time.(p) in (* ns used on this CPU *)
++ let percent_cpu = 100. *. cpu_time /. total_cpu_per_pcpu in
++ addstr (Show.percent percent_cpu);
++ addch ' ';
++
++ List.iteri (
++ fun di (domid, name, _, _, _, _, _, _) ->
++ let t = pcpus.(p).(di).(0) in (* hypervisor + domain *)
++ let t_only = pcpus.(p).(di).(1) in (* domain only *)
++ let len = String.length name in
++ let width = max (len+1) 12 in
++ let str_t =
++ if t <= 0L then ""
++ else (
++ let t = Int64.to_float t in
++ let percent = 100. *. t /. total_cpu_per_pcpu in
++ Show.percent percent
++ ) in
++ let str_t_only =
++ if t_only <= 0L then ""
++ else (
++ let t_only = Int64.to_float t_only in
++ let percent = 100. *. t_only /. total_cpu_per_pcpu in
++ Show.percent percent
++ ) in
++ addstr (pad 5 str_t);
++ addstr (pad 5 str_t_only);
++ addstr (pad (width-10) " ");
++ ()
++ ) doms
++ ) pcpus;
++
++ (*---------- Showing network interfaces ----------*)
++ | NetDisplay ->
++ (* Only care about active domains. *)
++ let doms =
++ List.filter_map (
++ function
++ | (name, Active rd) -> Some (name, rd)
++ | (_, Inactive) -> None
++ ) doms in
++
++ (* For each domain we have a list of network interfaces seen
++ * this slice, and seen in the previous slice, which we now
++ * match up to get a list of (domain, interface) for which
++ * we have current & previous knowledge. (And ignore the rest).
++ *)
++ let devs =
++ List.map (
++ fun (name, rd) ->
++ List.filter_map (
++ fun (dev, stats) ->
++ try
++ (* Have prev slice stats for this device? *)
++ let prev_stats =
++ List.assoc dev rd.rd_prev_interface_stats in
++ Some (dev, name, rd, stats, prev_stats)
++ with Not_found -> None
++ ) rd.rd_interface_stats
++ ) doms in
++
++ (* Finally we have a list of:
++ * device name, domain name, rd_* stuff, curr stats, prev stats.
++ *)
++ let devs : (string * string * rd_active *
++ D.interface_stats * D.interface_stats) list =
++ List.flatten devs in
++
++ (* Difference curr slice & prev slice. *)
++ let devs =
++ List.map (
++ fun (dev, name, rd, curr, prev) ->
++ dev, name, rd, diff_interface_stats curr prev
++ ) devs in
++
++ (* Sort by current sort order, but map some of the standard
++ * sort orders into ones which makes sense here.
++ *)
++ let devs =
++ let cmp =
++ match sort_order with
++ | DomainName ->
++ (fun _ -> 0) (* fallthrough to default name compare *)
++ | DomainID ->
++ (fun (_, { rd_domid = id1 }, _, { rd_domid = id2 }) ->
++ compare id1 id2)
++ | Processor | Memory | Time
++ | BlockRdRq | BlockWrRq
++ (* fallthrough to RXBY comparison. *)
++ | NetRX ->
++ (fun ({ D.rx_bytes = b1 }, _, { D.rx_bytes = b2 }, _) ->
++ compare b2 b1)
++ | NetTX ->
++ (fun ({ D.tx_bytes = b1 }, _, { D.tx_bytes = b2 }, _) ->
++ compare b2 b1)
++ in
++ let cmp (dev1, name1, rd1, stats1) (dev2, name2, rd2, stats2) =
++ let r = cmp (stats1, rd1, stats2, rd2) in
++ if r <> 0 then r
++ else compare (dev1, name1) (dev2, name2)
++ in
++ List.sort ~cmp devs in
++
++ (* Print the header for network devices. *)
++ attron A.reverse;
++ mvaddstr header_lineno 0
++ (pad cols " ID S RXBY TXBY RXPK TXPK DOMAIN INTERFACE");
++ attroff A.reverse;
++
++ (* Print domains and devices. *)
++ let rec loop lineno = function
++ | [] -> ()
++ | (dev, name, rd, stats) :: devs ->
++ if lineno < lines then (
++ let state = show_state rd.rd_info.D.state in
++ let rx_bytes =
++ if stats.D.rx_bytes >= 0L
++ then Show.int64 stats.D.rx_bytes
++ else " " in
++ let tx_bytes =
++ if stats.D.tx_bytes >= 0L
++ then Show.int64 stats.D.tx_bytes
++ else " " in
++ let rx_packets =
++ if stats.D.rx_packets >= 0L
++ then Show.int64 stats.D.rx_packets
++ else " " in
++ let tx_packets =
++ if stats.D.tx_packets >= 0L
++ then Show.int64 stats.D.tx_packets
++ else " " in
++
++ let line = sprintf "%5d %c %s %s %s %s %-12s %s"
++ rd.rd_domid state
++ rx_bytes tx_bytes
++ rx_packets tx_packets
++ (pad 12 name) dev in
++ let line = pad cols line in
++ mvaddstr lineno 0 line;
++ loop (lineno+1) devs
++ )
++ in
++ loop domains_lineno devs
++
++ (*---------- Showing block devices ----------*)
++ | BlockDisplay ->
++ (* Only care about active domains. *)
++ let doms =
++ List.filter_map (
++ function
++ | (name, Active rd) -> Some (name, rd)
++ | (_, Inactive) -> None
++ ) doms in
++
++ (* For each domain we have a list of block devices seen
++ * this slice, and seen in the previous slice, which we now
++ * match up to get a list of (domain, device) for which
++ * we have current & previous knowledge. (And ignore the rest).
++ *)
++ let devs =
++ List.map (
++ fun (name, rd) ->
++ List.filter_map (
++ fun (dev, stats) ->
++ try
++ (* Have prev slice stats for this device? *)
++ let prev_stats =
++ List.assoc dev rd.rd_prev_block_stats in
++ Some (dev, name, rd, stats, prev_stats)
++ with Not_found -> None
++ ) rd.rd_block_stats
++ ) doms in
++
++ (* Finally we have a list of:
++ * device name, domain name, rd_* stuff, curr stats, prev stats.
++ *)
++ let devs : (string * string * rd_active *
++ D.block_stats * D.block_stats) list =
++ List.flatten devs in
++
++ (* Difference curr slice & prev slice. *)
++ let devs =
++ List.map (
++ fun (dev, name, rd, curr, prev) ->
++ dev, name, rd, diff_block_stats curr prev
++ ) devs in
++
++ (* Sort by current sort order, but map some of the standard
++ * sort orders into ones which makes sense here.
++ *)
++ let devs =
++ let cmp =
++ match sort_order with
++ | DomainName ->
++ (fun _ -> 0) (* fallthrough to default name compare *)
++ | DomainID ->
++ (fun (_, { rd_domid = id1 }, _, { rd_domid = id2 }) ->
++ compare id1 id2)
++ | Processor | Memory | Time
++ | NetRX | NetTX
++ (* fallthrough to RDRQ comparison. *)
++ | BlockRdRq ->
++ (fun ({ D.rd_req = b1 }, _, { D.rd_req = b2 }, _) ->
++ compare b2 b1)
++ | BlockWrRq ->
++ (fun ({ D.wr_req = b1 }, _, { D.wr_req = b2 }, _) ->
++ compare b2 b1)
++ in
++ let cmp (dev1, name1, rd1, stats1) (dev2, name2, rd2, stats2) =
++ let r = cmp (stats1, rd1, stats2, rd2) in
++ if r <> 0 then r
++ else compare (dev1, name1) (dev2, name2)
++ in
++ List.sort ~cmp devs in
++
++ (* Print the header for block devices. *)
++ attron A.reverse;
++ mvaddstr header_lineno 0
++ (pad cols " ID S RDBY WRBY RDRQ WRRQ DOMAIN DEVICE");
++ attroff A.reverse;
++
++ (* Print domains and devices. *)
++ let rec loop lineno = function
++ | [] -> ()
++ | (dev, name, rd, stats) :: devs ->
++ if lineno < lines then (
++ let state = show_state rd.rd_info.D.state in
++ let rd_bytes =
++ if stats.D.rd_bytes >= 0L
++ then Show.int64 stats.D.rd_bytes
++ else " " in
++ let wr_bytes =
++ if stats.D.wr_bytes >= 0L
++ then Show.int64 stats.D.wr_bytes
++ else " " in
++ let rd_req =
++ if stats.D.rd_req >= 0L
++ then Show.int64 stats.D.rd_req
++ else " " in
++ let wr_req =
++ if stats.D.wr_req >= 0L
++ then Show.int64 stats.D.wr_req
++ else " " in
++
++ let line = sprintf "%5d %c %s %s %s %s %-12s %s"
++ rd.rd_domid state
++ rd_bytes wr_bytes
++ rd_req wr_req
++ (pad 12 name) dev in
++ let line = pad cols line in
++ mvaddstr lineno 0 line;
++ loop (lineno+1) devs
++ )
++ in
++ loop domains_lineno devs
++ ); (* end of display_mode conditional section *)
++
++ let (count, running, blocked, paused, shutdown, shutoff,
++ crashed, active, inactive,
++ total_cpu_time, total_memory, total_domU_memory) = totals in
++
++ mvaddstr summary_lineno 0
++ (sprintf
++ (f_"%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d O:%d X:%d")
++ count active running blocked paused inactive shutdown shutoff crashed);
++
++ (* Total %CPU used, and memory summary. *)
++ let percent_cpu = 100. *. total_cpu_time /. total_cpu in
++ mvaddstr (summary_lineno+1) 0
++ (sprintf
++ (f_"CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)")
++ percent_cpu (total_memory /^ 1024L) (total_domU_memory /^ 1024L));
++
++ (* Time to grab another historical %CPU for the list? *)
++ if time >= !historical_cpu_last_time +. float historical_cpu_delay
++ then (
++ historical_cpu := percent_cpu :: List.take 10 !historical_cpu;
++ historical_cpu_last_time := time
++ );
++
++ (* Display historical CPU time. *)
++ let () =
++ let y, x = historical_cursor in
++ let maxwidth = cols - x in
++ let line =
++ String.concat " "
++ (List.map (sprintf "%2.1f%%") !historical_cpu) in
++ let line = pad maxwidth line in
++ mvaddstr y x line;
++ () in
++
++ move message_lineno 0; (* Park cursor in message area, as with top. *)
++ refresh () (* Refresh the display. *)
+diff --git a/src/redraw.mli b/src/redraw.mli
+new file mode 100644
+index 0000000..2ea97c3
+--- /dev/null
++++ b/src/redraw.mli
+_at_@ -0,0 +1,20 @@
++(* 'top'-like tool for libvirt domains.
++ (C) Copyright 2007-2017 Richard W.M. Jones, Red Hat Inc.
++ http://libvirt.org/
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program 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 General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++*)
++
++val redraw : Types.display -> Types.sort_order -> Types.setup -> bool -> int -> Collect.stats -> Collect.pcpu_stats option -> unit
+diff --git a/src/screen.ml b/src/screen.ml
+new file mode 100644
+index 0000000..0d847a2
+--- /dev/null
++++ b/src/screen.ml
+_at_@ -0,0 +1,52 @@
++(* 'top'-like tool for libvirt domains.
++ (C) Copyright 2007-2017 Richard W.M. Jones, Red Hat Inc.
++ http://libvirt.org/
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program 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 General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++*)
++
++(* The virt-top screen layout. *)
++
++open Curses
++
++module D = Libvirt.Domain
++
++(* Line numbers. *)
++let top_lineno = 0
++let summary_lineno = 1 (* this takes 2 lines *)
++let message_lineno = 3
++let header_lineno = 4
++let domains_lineno = 5
++
++(* Easier to use versions of curses functions addstr, mvaddstr, etc. *)
++let move y x = ignore (move y x)
++let refresh () = ignore (refresh ())
++let addch c = ignore (addch (int_of_char c))
++let addstr s = ignore (addstr s)
++let mvaddstr y x s = ignore (mvaddstr y x s)
++
++(* Print in the "message area". *)
++let clear_msg () = move message_lineno 0; clrtoeol ()
++let print_msg str = clear_msg (); mvaddstr message_lineno 0 str
++
++(* Show a libvirt domain state (the 'S' column). *)
++let show_state = function
++ | D.InfoNoState -> '?'
++ | D.InfoRunning -> 'R'
++ | D.InfoBlocked -> 'S'
++ | D.InfoPaused -> 'P'
++ | D.InfoShutdown -> 'D'
++ | D.InfoShutoff -> 'O'
++ | D.InfoCrashed -> 'X'
+diff --git a/src/screen.mli b/src/screen.mli
+new file mode 100644
+index 0000000..a8a23a0
+--- /dev/null
++++ b/src/screen.mli
+_at_@ -0,0 +1,41 @@
++(* 'top'-like tool for libvirt domains.
++ (C) Copyright 2007-2017 Richard W.M. Jones, Red Hat Inc.
++ http://libvirt.org/
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program 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 General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++*)
++
++(** The virt-top screen layout. *)
++
++(* Line numbers. *)
++val top_lineno : int
++val summary_lineno : int (** this takes 2 lines *)
++val message_lineno : int
++val header_lineno : int
++val domains_lineno : int
++
++(* Easier to use versions of curses functions addstr, mvaddstr, etc. *)
++val move : int -> int -> unit
++val refresh : unit -> unit
++val addch : char -> unit
++val addstr : string -> unit
++val mvaddstr : int -> int -> string -> unit
++
++(* Print in the "message area". *)
++val clear_msg : unit -> unit
++val print_msg : string -> unit
++
++(* Show a libvirt domain state (the 'S' column). *)
++val show_state : Libvirt.Domain.state -> char
+diff --git a/src/stream_output.ml b/src/stream_output.ml
+new file mode 100644
+index 0000000..bf7b114
+--- /dev/null
++++ b/src/stream_output.ml
+_at_@ -0,0 +1,84 @@
++(* 'top'-like tool for libvirt domains.
++ (C) Copyright 2007-2017 Richard W.M. Jones, Red Hat Inc.
++ http://libvirt.org/
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program 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 General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++*)
++
++(* [--stream] mode output functions. *)
++
++open Printf
++open ExtList
++
++open Utils
++open Collect
++
++module C = Libvirt.Connect
++module D = Libvirt.Domain
++
++let append_stream (_, _, _, _, _, node_info, hostname, _) (* setup *)
++ block_in_bytes
++ { rd_doms = doms;
++ rd_printable_time = printable_time;
++ rd_nr_pcpus = nr_pcpus; rd_total_cpu = total_cpu;
++ rd_totals = totals } (* state *) =
++ (* Header for this iteration *)
++ printf "virt-top time %s Host %s %s %d/%dCPU %dMHz %LdMB \n"
++ printable_time hostname node_info.C.model node_info.C.cpus nr_pcpus
++ node_info.C.mhz (node_info.C.memory /^ 1024L);
++ (* dump domain information one by one *)
++ let rd, wr = if block_in_bytes then "RDBY", "WRBY" else "RDRQ", "WRRQ"
++ in
++ printf " ID S %s %s RXBY TXBY %%CPU %%MEM TIME NAME\n" rd wr;
++
++ (* sort by ID *)
++ let doms =
++ let compare =
++ (function
++ | Active {rd_domid = id1 }, Active {rd_domid = id2} ->
++ compare id1 id2
++ | Active _, Inactive -> -1
++ | Inactive, Active _ -> 1
++ | Inactive, Inactive -> 0)
++ in
++ let cmp (name1, dom1) (name2, dom2) = compare(dom1, dom2) in
++ List.sort ~cmp doms in
++ (*Print domains *)
++ let dump_domain = fun name rd
++ -> begin
++ let state = Screen.show_state rd.rd_info.D.state in
++ let rd_req = if rd.rd_block_rd_info = None then " 0"
++ else Show.int64_option rd.rd_block_rd_info in
++ let wr_req = if rd.rd_block_wr_info = None then " 0"
++ else Show.int64_option rd.rd_block_wr_info in
++ let rx_bytes = if rd.rd_net_rx_bytes = None then " 0"
++ else Show.int64_option rd.rd_net_rx_bytes in
++ let tx_bytes = if rd.rd_net_tx_bytes = None then " 0"
++ else Show.int64_option rd.rd_net_tx_bytes in
++ let percent_cpu = Show.percent rd.rd_percent_cpu in
++ let percent_mem = Int64.to_float rd.rd_mem_percent in
++ let percent_mem = Show.percent percent_mem in
++ let time = Show.time rd.rd_info.D.cpu_time in
++ printf "%5d %c %s %s %s %s %s %s %s %s\n"
++ rd.rd_domid state rd_req wr_req rx_bytes tx_bytes
++ percent_cpu percent_mem time name;
++ end
++ in
++ List.iter (
++ function
++ | name, Active dom -> dump_domain name dom
++ | name, Inactive -> ()
++ ) doms;
++ flush stdout
+diff --git a/src/stream_output.mli b/src/stream_output.mli
+new file mode 100644
+index 0000000..c45e548
+--- /dev/null
++++ b/src/stream_output.mli
+_at_@ -0,0 +1,22 @@
++(* 'top'-like tool for libvirt domains.
++ (C) Copyright 2007-2017 Richard W.M. Jones, Red Hat Inc.
++ http://libvirt.org/
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program 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 General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++*)
++
++(** [--stream] mode output functions. *)
++
++val append_stream : Types.setup -> bool -> Collect.stats -> unit
+diff --git a/src/top.ml b/src/top.ml
+index f50e6a8..204f3b6 100644
+--- a/src/top.ml
++++ b/src/top.ml
+_at_@ -1,5 +1,5 @@
+ (* 'top'-like tool for libvirt domains.
+- (C) Copyright 2007-2009 Richard W.M. Jones, Red Hat Inc.
++ (C) Copyright 2007-2017 Richard W.M. Jones, Red Hat Inc.
+ http://libvirt.org/
+
+ This program is free software; you can redistribute it and/or modify
+_at_@ -23,6 +23,9 @@ open Curses
+
+ open Opt_gettext.Gettext
+ open Utils
++open Types
++open Collect
++open Screen
+
+ module C = Libvirt.Connect
+ module D = Libvirt.Domain
+_at_@ -30,21 +33,11 @@ module N = Libvirt.Network
+
+ let rcfile = ".virt-toprc"
+
+-(* Hook for XML support (see [opt_xml.ml]). *)
+-let parse_device_xml : (int -> [>`R] D.t -> string list * string list) ref =
+- ref (
+- fun _ _ -> [], []
+- )
+-
+ (* Hooks for CSV support (see [opt_csv.ml]). *)
+ let csv_start : (string -> unit) ref =
+ ref (
+ fun _ -> failwith (s_"virt-top was compiled without support for CSV files")
+ )
+-let csv_write : (string list -> unit) ref =
+- ref (
+- fun _ -> ()
+- )
+
+ (* Hook for calendar support (see [opt_calendar.ml]). *)
+ let parse_date_time : (string -> float) ref =
+_at_@ -53,62 +46,6 @@ let parse_date_time : (string -> float) ref =
+ failwith (s_"virt-top was compiled without support for dates and times")
+ )
+
+-(* Sort order. *)
+-type sort_order =
+- | DomainID | DomainName | Processor | Memory | Time
+- | NetRX | NetTX | BlockRdRq | BlockWrRq
+-let all_sort_fields = [
+- DomainID; DomainName; Processor; Memory; Time;
+- NetRX; NetTX; BlockRdRq; BlockWrRq
+-]
+-let printable_sort_order = function
+- | Processor -> s_"%CPU"
+- | Memory -> s_"%MEM"
+- | Time -> s_"TIME (CPU time)"
+- | DomainID -> s_"Domain ID"
+- | DomainName -> s_"Domain name"
+- | NetRX -> s_"Net RX bytes"
+- | NetTX -> s_"Net TX bytes"
+- | BlockRdRq -> s_"Block read reqs"
+- | BlockWrRq -> s_"Block write reqs"
+-let sort_order_of_cli = function
+- | "cpu" | "processor" -> Processor
+- | "mem" | "memory" -> Memory
+- | "time" -> Time
+- | "id" -> DomainID
+- | "name" -> DomainName
+- | "netrx" -> NetRX | "nettx" -> NetTX
+- | "blockrdrq" -> BlockRdRq | "blockwrrq" -> BlockWrRq
+- | str ->
+- failwithf (f_"%s: sort order should be: %s")
+- str "cpu|mem|time|id|name|netrx|nettx|blockrdrq|blockwrrq"
+-let cli_of_sort_order = function
+- | Processor -> "cpu"
+- | Memory -> "mem"
+- | Time -> "time"
+- | DomainID -> "id"
+- | DomainName -> "name"
+- | NetRX -> "netrx"
+- | NetTX -> "nettx"
+- | BlockRdRq -> "blockrdrq"
+- | BlockWrRq -> "blockwrrq"
+-
+-(* Current major display mode: TaskDisplay is the normal display. *)
+-type display = TaskDisplay | PCPUDisplay | BlockDisplay | NetDisplay
+-
+-let display_of_cli = function
+- | "task" -> TaskDisplay
+- | "pcpu" -> PCPUDisplay
+- | "block" -> BlockDisplay
+- | "net" -> NetDisplay
+- | str ->
+- failwithf (f_"%s: display should be %s") str "task|pcpu|block|net"
+-let cli_of_display = function
+- | TaskDisplay -> "task"
+- | PCPUDisplay -> "pcpu"
+- | BlockDisplay -> "block"
+- | NetDisplay -> "net"
+-
+ (* Init file. *)
+ type init_file = NoInitFile | DefaultInitFile | InitFile of string
+
+_at_@ -134,11 +71,6 @@ let script_mode = ref false
+ let stream_mode = ref false
+ let block_in_bytes = ref false
+
+-(* Tuple of never-changing data returned by start_up function. *)
+-type setup =
+- Libvirt.ro C.t * bool * bool * bool * bool * C.node_info * string *
+- (int * int * int)
+-
+ (* Function to read command line arguments and go into curses mode. *)
+ let start_up () =
+ (* Read command line arguments. *)
+_at_@ -352,16 +284,6 @@ OPTIONS" in
+ node_info, hostname, libvirt_version (* info that doesn't change *)
+ )
+
+-(* Show a domain state (the 'S' column). *)
+-let show_state = function
+- | D.InfoNoState -> '?'
+- | D.InfoRunning -> 'R'
+- | D.InfoBlocked -> 'S'
+- | D.InfoPaused -> 'P'
+- | D.InfoShutdown -> 'D'
+- | D.InfoShutoff -> 'O'
+- | D.InfoCrashed -> 'X'
+-
+ (* Sleep in seconds. *)
+ let sleep = Unix.sleep
+
+_at_@ -387,1039 +309,33 @@ let get_string maxlen =
+ Not_found -> str (* it is full maxlen bytes *)
+ )
+
+-(* Line numbers. *)
+-let top_lineno = 0
+-let summary_lineno = 1 (* this takes 2 lines *)
+-let message_lineno = 3
+-let header_lineno = 4
+-let domains_lineno = 5
+-
+-(* Easier to use versions of curses functions addstr, mvaddstr, etc. *)
+-let move y x = ignore (move y x)
+-let refresh () = ignore (refresh ())
+-let addch c = ignore (addch (int_of_char c))
+-let addstr s = ignore (addstr s)
+-let mvaddstr y x s = ignore (mvaddstr y x s)
+-
+-(* Print in the "message area". *)
+-let clear_msg () = move message_lineno 0; clrtoeol ()
+-let print_msg str = clear_msg (); mvaddstr message_lineno 0 str
+-
+-(* Intermediate "domain + stats" structure that we use to collect
+- * everything we know about a domain within the collect function.
+- *)
+-type rd_domain = Inactive | Active of rd_active
+-and rd_active = {
+- rd_domid : int; (* Domain ID. *)
+- rd_dom : [`R] D.t; (* Domain object. *)
+- rd_info : D.info; (* Domain CPU info now. *)
+- rd_block_stats : (string * D.block_stats) list;
+- (* Domain block stats now. *)
+- rd_interface_stats : (string * D.interface_stats) list;
+- (* Domain net stats now. *)
+- rd_prev_info : D.info option; (* Domain CPU info previously. *)
+- rd_prev_block_stats : (string * D.block_stats) list;
+- (* Domain block stats prev. *)
+- rd_prev_interface_stats : (string * D.interface_stats) list;
+- (* Domain interface stats prev. *)
+- (* The following are since the last slice, or 0 if cannot be calculated: *)
+- rd_cpu_time : float; (* CPU time used in nanoseconds. *)
+- rd_percent_cpu : float; (* CPU time as percent of total. *)
+- rd_mem_bytes : int64; (* Memory usage in bytes *)
+- rd_mem_percent: int64; (* Memory usage as percent of total *)
+- (* The following are since the last slice, or None if cannot be calc'd: *)
+- rd_block_rd_reqs : int64 option; (* Number of block device read rqs. *)
+- rd_block_wr_reqs : int64 option; (* Number of block device write rqs. *)
+- rd_block_rd_bytes : int64 option; (* Number of bytes block device read *)
+- rd_block_wr_bytes : int64 option; (* Number of bytes block device write *)
+- (* _info fields includes the number considering --block_in_bytes option *)
+- rd_block_rd_info : int64 option; (* Block device read info for user *)
+- rd_block_wr_info : int64 option; (* Block device read info for user *)
+-
+- rd_net_rx_bytes : int64 option; (* Number of bytes received. *)
+- rd_net_tx_bytes : int64 option; (* Number of bytes transmitted. *)
+-}
+-
+-(* Collect stats. *)
+-let collect, clear_pcpu_display_data =
+- (* We cache the list of block devices and interfaces for each domain
+- * here, so we don't need to reparse the XML each time.
+- *)
+- let devices = Hashtbl.create 13 in
+-
+- (* Function to get the list of block devices, network interfaces for
+- * a particular domain. Get it from the devices cache, and if not
+- * there then parse the domain XML.
+- *)
+- let get_devices id dom =
+- try Hashtbl.find devices id
+- with Not_found ->
+- let blkdevs, netifs = (!parse_device_xml) id dom in
+- Hashtbl.replace devices id (blkdevs, netifs);
+- blkdevs, netifs
+- in
+-
+- (* We save the state of domains across redraws here, which allows us
+- * to deduce %CPU usage from the running total.
+- *)
+- let last_info = Hashtbl.create 13 in
+- let last_time = ref (Unix.gettimeofday ()) in
+-
+- (* Save pcpu_usages structures across redraws too (only for pCPU display). *)
+- let last_pcpu_usages = Hashtbl.create 13 in
+-
+- let clear_pcpu_display_data () =
+- (* Clear out pcpu_usages used by PCPUDisplay display_mode
+- * when we switch back to TaskDisplay mode.
+- *)
+- Hashtbl.clear last_pcpu_usages
+- in
+-
+- let collect (conn, _, _, _, _, node_info, _, _) =
+- (* Number of physical CPUs (some may be disabled). *)
+- let nr_pcpus = C.maxcpus_of_node_info node_info in
+-
+- (* Get the current time. *)
+- let time = Unix.gettimeofday () in
+- let tm = Unix.localtime time in
+- let printable_time =
+- sprintf "%02d:%02d:%02d" tm.Unix.tm_hour tm.Unix.tm_min tm.Unix.tm_sec in
+-
+- (* What's the total CPU time elapsed since we were last called? (ns) *)
+- let total_cpu_per_pcpu = 1_000_000_000. *. (time -. !last_time) in
+- (* Avoid division by zero. *)
+- let total_cpu_per_pcpu =
+- if total_cpu_per_pcpu <= 0. then 1. else total_cpu_per_pcpu in
+- let total_cpu = float node_info.C.cpus *. total_cpu_per_pcpu in
+-
+- (* Get the domains. Match up with their last_info (if any). *)
+- let doms =
+- (* Active domains. *)
+- let n = C.num_of_domains conn in
+- let ids =
+- if n > 0 then Array.to_list (C.list_domains conn n)
+- else [] in
+- let doms =
+- List.filter_map (
+- fun id ->
+- try
+- let dom = D.lookup_by_id conn id in
+- let name = D.get_name dom in
+- let blkdevs, netifs = get_devices id dom in
+-
+- (* Get current CPU, block and network stats. *)
+- let info = D.get_info dom in
+- let block_stats =
+- try List.map (fun dev -> dev, D.block_stats dom dev) blkdevs
+- with
+- | Libvirt.Not_supported "virDomainBlockStats"
+- | Libvirt.Virterror _ -> [] in
+- let interface_stats =
+- try List.map (fun dev -> dev, D.interface_stats dom dev) netifs
+- with
+- | Libvirt.Not_supported "virDomainInterfaceStats"
+- | Libvirt.Virterror _ -> [] in
+-
+- let prev_info, prev_block_stats, prev_interface_stats =
+- try
+- let prev_info, prev_block_stats, prev_interface_stats =
+- Hashtbl.find last_info id in
+- Some prev_info, prev_block_stats, prev_interface_stats
+- with Not_found -> None, [], [] in
+-
+- Some (name, Active {
+- rd_domid = id; rd_dom = dom; rd_info = info;
+- rd_block_stats = block_stats;
+- rd_interface_stats = interface_stats;
+- rd_prev_info = prev_info;
+- rd_prev_block_stats = prev_block_stats;
+- rd_prev_interface_stats = prev_interface_stats;
+- rd_cpu_time = 0.; rd_percent_cpu = 0.;
+- rd_mem_bytes = 0L; rd_mem_percent = 0L;
+- rd_block_rd_reqs = None; rd_block_wr_reqs = None;
+- rd_block_rd_bytes = None; rd_block_wr_bytes = None;
+- rd_block_rd_info = None; rd_block_wr_info = None;
+- rd_net_rx_bytes = None; rd_net_tx_bytes = None;
+- })
+- with
+- Libvirt.Virterror _ -> None (* ignore transient error *)
+- ) ids in
+-
+- (* Inactive domains. *)
+- let doms_inactive =
+- try
+- let n = C.num_of_defined_domains conn in
+- let names =
+- if n > 0 then Array.to_list (C.list_defined_domains conn n)
+- else [] in
+- List.map (fun name -> name, Inactive) names
+- with
+- (* Ignore transient errors, in particular errors from
+- * num_of_defined_domains if it cannot contact xend.
+- *)
+- | Libvirt.Virterror _ -> [] in
+-
+- doms _at_ doms_inactive in
+-
+- (* Calculate the CPU time (ns) and %CPU used by each domain. *)
+- let doms =
+- List.map (
+- function
+- (* We have previous CPU info from which to calculate it? *)
+- | name, Active ({ rd_prev_info = Some prev_info } as rd) ->
+- let cpu_time =
+- Int64.to_float (rd.rd_info.D.cpu_time -^ prev_info.D.cpu_time) in
+- let percent_cpu = 100. *. cpu_time /. total_cpu in
+- let mem_usage = rd.rd_info.D.memory in
+- let mem_percent =
+- 100L *^ rd.rd_info.D.memory /^ node_info.C.memory in
+- let rd = { rd with
+- rd_cpu_time = cpu_time;
+- rd_percent_cpu = percent_cpu;
+- rd_mem_bytes = mem_usage;
+- rd_mem_percent = mem_percent} in
+- name, Active rd
+- (* For all other domains we can't calculate it, so leave as 0 *)
+- | rd -> rd
+- ) doms in
+-
+- (* Calculate the number of block device read/write requests across
+- * all block devices attached to a domain.
+- *)
+- let doms =
+- List.map (
+- function
+- (* Do we have stats from the previous slice? *)
+- | name, Active ({ rd_prev_block_stats = ((_::_) as prev_block_stats) }
+- as rd) ->
+- let block_stats = rd.rd_block_stats in (* stats now *)
+-
+- (* Add all the devices together. Throw away device names. *)
+- let prev_block_stats =
+- sum_block_stats (List.map snd prev_block_stats) in
+- let block_stats =
+- sum_block_stats (List.map snd block_stats) in
+-
+- (* Calculate increase in read & write requests. *)
+- let read_reqs =
+- block_stats.D.rd_req -^ prev_block_stats.D.rd_req in
+- let write_reqs =
+- block_stats.D.wr_req -^ prev_block_stats.D.wr_req in
+- let read_bytes =
+- block_stats.D.rd_bytes -^ prev_block_stats.D.rd_bytes in
+- let write_bytes =
+- block_stats.D.wr_bytes -^ prev_block_stats.D.wr_bytes in
+-
+- let rd = { rd with
+- rd_block_rd_reqs = Some read_reqs;
+- rd_block_wr_reqs = Some write_reqs;
+- rd_block_rd_bytes = Some read_bytes;
+- rd_block_wr_bytes = Some write_bytes;
+- } in
+- let rd = { rd with
+- rd_block_rd_info = if !block_in_bytes then
+- rd.rd_block_rd_bytes else rd.rd_block_rd_reqs;
+- rd_block_wr_info = if !block_in_bytes then
+- rd.rd_block_wr_bytes else rd.rd_block_wr_reqs;
+- } in
+- name, Active rd
+- (* For all other domains we can't calculate it, so leave as None. *)
+- | rd -> rd
+- ) doms in
+-
+- (* Calculate the same as above for network interfaces across
+- * all network interfaces attached to a domain.
+- *)
+- let doms =
+- List.map (
+- function
+- (* Do we have stats from the previous slice? *)
+- | name, Active ({ rd_prev_interface_stats =
+- ((_::_) as prev_interface_stats) }
+- as rd) ->
+- let interface_stats = rd.rd_interface_stats in (* stats now *)
+-
+- (* Add all the devices together. Throw away device names. *)
+- let prev_interface_stats =
+- sum_interface_stats (List.map snd prev_interface_stats) in
+- let interface_stats =
+- sum_interface_stats (List.map snd interface_stats) in
+-
+- (* Calculate increase in rx & tx bytes. *)
+- let rx_bytes =
+- interface_stats.D.rx_bytes -^ prev_interface_stats.D.rx_bytes in
+- let tx_bytes =
+- interface_stats.D.tx_bytes -^ prev_interface_stats.D.tx_bytes in
+-
+- let rd = { rd with
+- rd_net_rx_bytes = Some rx_bytes;
+- rd_net_tx_bytes = Some tx_bytes } in
+- name, Active rd
+- (* For all other domains we can't calculate it, so leave as None. *)
+- | rd -> rd
+- ) doms in
+-
+- (* Collect some extra information in PCPUDisplay display_mode. *)
+- let pcpu_display =
+- if !display_mode = PCPUDisplay then (
+- (* Get the VCPU info and VCPU->PCPU mappings for active domains.
+- * Also cull some data we don't care about.
+- *)
+- let doms = List.filter_map (
+- function
+- | (name, Active rd) ->
+- (try
+- let domid = rd.rd_domid in
+- let maplen = C.cpumaplen nr_pcpus in
+- let cpu_stats = D.get_cpu_stats rd.rd_dom in
+-
+- (* Note the terminology is confusing.
+- *
+- * In libvirt, cpu_time is the total time (hypervisor + vCPU).
+- * vcpu_time is the time only taken by the vCPU,
+- * excluding time taken inside the hypervisor.
+- *
+- * For each pCPU, libvirt may return either "cpu_time"
+- * or "vcpu_time" or neither or both. This function
+- * returns an array pair [|cpu_time, vcpu_time|];
+- * if either is missing it is returned as 0.
+- *)
+- let find_cpu_usages params =
+- let rec find_uint64_field name = function
+- | (n, D.TypedFieldUInt64 usage) :: _ when n = name -> usage
+- | _ :: params -> find_uint64_field name params
+- | [] -> 0L
+- in
+- [| find_uint64_field "cpu_time" params;
+- find_uint64_field "vcpu_time" params |]
+- in
+-
+- let pcpu_usages = Array.map find_cpu_usages cpu_stats in
+- let maxinfo = rd.rd_info.D.nr_virt_cpu in
+- let nr_vcpus, vcpu_infos, cpumaps =
+- D.get_vcpus rd.rd_dom maxinfo maplen in
+-
+- (* Got previous pcpu_usages for this domain? *)
+- let prev_pcpu_usages =
+- try Some (Hashtbl.find last_pcpu_usages domid)
+- with Not_found -> None in
+- (* Update last_pcpu_usages. *)
+- Hashtbl.replace last_pcpu_usages domid pcpu_usages;
+-
+- (match prev_pcpu_usages with
+- | Some prev_pcpu_usages
+- when Array.length prev_pcpu_usages = Array.length pcpu_usages ->
+- Some (domid, name, nr_vcpus, vcpu_infos, pcpu_usages,
+- prev_pcpu_usages, cpumaps, maplen)
+- | _ -> None (* ignore missing / unequal length prev_vcpu_infos *)
+- );
+- with
+- Libvirt.Virterror _ -> None(* ignore transient libvirt errs *)
+- )
+- | (_, Inactive) -> None (* ignore inactive doms *)
+- ) doms in
+- let nr_doms = List.length doms in
+-
+- (* Rearrange the data into a matrix. Major axis (down) is
+- * pCPUs. Minor axis (right) is domains. At each node we store:
+- * cpu_time hypervisor + domain (on this pCPU only, nanosecs),
+- * vcpu_time domain only (on this pCPU only, nanosecs).
+- *)
+- let make_3d_array dimx dimy dimz e =
+- Array.init dimx (fun _ -> Array.make_matrix dimy dimz e)
+- in
+- let pcpus = make_3d_array nr_pcpus nr_doms 2 0L in
+-
+- List.iteri (
+- fun di (domid, name, nr_vcpus, vcpu_infos, pcpu_usages,
+- prev_pcpu_usages, cpumaps, maplen) ->
+- (* Which pCPUs can this dom run on? *)
+- for p = 0 to Array.length pcpu_usages - 1 do
+- pcpus.(p).(di).(0) <-
+- pcpu_usages.(p).(0) -^ prev_pcpu_usages.(p).(0);
+- pcpus.(p).(di).(1) <-
+- pcpu_usages.(p).(1) -^ prev_pcpu_usages.(p).(1)
+- done
+- ) doms;
+-
+- (* Sum the total CPU time used by each pCPU, for the %CPU column. *)
+- let pcpus_cpu_time = Array.map (
+- fun row ->
+- let cpu_time = ref 0L in
+- for di = 0 to Array.length row-1 do
+- let t = row.(di).(0) in
+- cpu_time := !cpu_time +^ t
+- done;
+- Int64.to_float !cpu_time
+- ) pcpus in
+-
+- Some (doms, pcpus, pcpus_cpu_time)
+- ) else
+- None in
+-
+- (* Calculate totals. *)
+- let totals = List.fold_left (
+- fun (count, running, blocked, paused, shutdown, shutoff,
+- crashed, active, inactive,
+- total_cpu_time, total_memory, total_domU_memory) ->
+- function
+- | (name, Active rd) ->
+- let test state orig =
+- if rd.rd_info.D.state = state then orig+1 else orig
+- in
+- let running = test D.InfoRunning running in
+- let blocked = test D.InfoBlocked blocked in
+- let paused = test D.InfoPaused paused in
+- let shutdown = test D.InfoShutdown shutdown in
+- let shutoff = test D.InfoShutoff shutoff in
+- let crashed = test D.InfoCrashed crashed in
+-
+- let total_cpu_time = total_cpu_time +. rd.rd_cpu_time in
+- let total_memory = total_memory +^ rd.rd_info.D.memory in
+- let total_domU_memory = total_domU_memory +^
+- if rd.rd_domid > 0 then rd.rd_info.D.memory else 0L in
+-
+- (count+1, running, blocked, paused, shutdown, shutoff,
+- crashed, active+1, inactive,
+- total_cpu_time, total_memory, total_domU_memory)
+-
+- | (name, Inactive) -> (* inactive domain *)
+- (count+1, running, blocked, paused, shutdown, shutoff,
+- crashed, active, inactive+1,
+- total_cpu_time, total_memory, total_domU_memory)
+- ) (0,0,0,0,0,0,0,0,0, 0.,0L,0L) doms in
+-
+- (* Update last_time, last_info. *)
+- last_time := time;
+- Hashtbl.clear last_info;
+- List.iter (
+- function
+- | (_, Active rd) ->
+- let info = rd.rd_info, rd.rd_block_stats, rd.rd_interface_stats in
+- Hashtbl.add last_info rd.rd_domid info
+- | _ -> ()
+- ) doms;
+-
+- (doms,
+- time, printable_time,
+- nr_pcpus, total_cpu, total_cpu_per_pcpu,
+- totals,
+- pcpu_display)
+- in
+-
+- collect, clear_pcpu_display_data
+-
+-(* Redraw the display. *)
+-let redraw =
+- (* Keep a historical list of %CPU usages. *)
+- let historical_cpu = ref [] in
+- let historical_cpu_last_time = ref (Unix.gettimeofday ()) in
+- fun
+- (_, _, _, _, _, node_info, _, _) (* setup *)
+- (doms,
+- time, printable_time,
+- nr_pcpus, total_cpu, total_cpu_per_pcpu,
+- totals,
+- pcpu_display) (* state *) ->
+- clear ();
+-
+- (* Get the screen/window size. *)
+- let lines, cols = get_size () in
+-
+- (* Time. *)
+- mvaddstr top_lineno 0 (sprintf "virt-top %s - " printable_time);
+-
+- (* Basic node_info. *)
+- addstr
+- (sprintf "%s %d/%dCPU %dMHz %LdMB "
+- node_info.C.model node_info.C.cpus nr_pcpus node_info.C.mhz
+- (node_info.C.memory /^ 1024L));
+- (* Save the cursor position for when we come to draw the
+- * historical CPU times (down in this function).
+- *)
+- let stdscr = stdscr () in
+- let historical_cursor = getyx stdscr in
+-
+- (match !display_mode with
+- | TaskDisplay -> (*---------- Showing domains ----------*)
+- (* Sort domains on current sort_order. *)
+- let doms =
+- let cmp =
+- match !sort_order with
+- | DomainName ->
+- (fun _ -> 0) (* fallthrough to default name compare *)
+- | Processor ->
+- (function
+- | Active rd1, Active rd2 ->
+- compare rd2.rd_percent_cpu rd1.rd_percent_cpu
+- | Active _, Inactive -> -1
+- | Inactive, Active _ -> 1
+- | Inactive, Inactive -> 0)
+- | Memory ->
+- (function
+- | Active { rd_info = info1 }, Active { rd_info = info2 } ->
+- compare info2.D.memory info1.D.memory
+- | Active _, Inactive -> -1
+- | Inactive, Active _ -> 1
+- | Inactive, Inactive -> 0)
+- | Time ->
+- (function
+- | Active { rd_info = info1 }, Active { rd_info = info2 } ->
+- compare info2.D.cpu_time info1.D.cpu_time
+- | Active _, Inactive -> -1
+- | Inactive, Active _ -> 1
+- | Inactive, Inactive -> 0)
+- | DomainID ->
+- (function
+- | Active { rd_domid = id1 }, Active { rd_domid = id2 } ->
+- compare id1 id2
+- | Active _, Inactive -> -1
+- | Inactive, Active _ -> 1
+- | Inactive, Inactive -> 0)
+- | NetRX ->
+- (function
+- | Active { rd_net_rx_bytes = r1 }, Active { rd_net_rx_bytes = r2 } ->
+- compare r2 r1
+- | Active _, Inactive -> -1
+- | Inactive, Active _ -> 1
+- | Inactive, Inactive -> 0)
+- | NetTX ->
+- (function
+- | Active { rd_net_tx_bytes = r1 }, Active { rd_net_tx_bytes = r2 } ->
+- compare r2 r1
+- | Active _, Inactive -> -1
+- | Inactive, Active _ -> 1
+- | Inactive, Inactive -> 0)
+- | BlockRdRq ->
+- (function
+- | Active { rd_block_rd_reqs = r1 }, Active { rd_block_rd_reqs = r2 } ->
+- compare r2 r1
+- | Active _, Inactive -> -1
+- | Inactive, Active _ -> 1
+- | Inactive, Inactive -> 0)
+- | BlockWrRq ->
+- (function
+- | Active { rd_block_wr_reqs = r1 }, Active { rd_block_wr_reqs = r2 } ->
+- compare r2 r1
+- | Active _, Inactive -> -1
+- | Inactive, Active _ -> 1
+- | Inactive, Inactive -> 0)
+- in
+- let cmp (name1, dom1) (name2, dom2) =
+- let r = cmp (dom1, dom2) in
+- if r <> 0 then r
+- else compare name1 name2
+- in
+- List.sort ~cmp doms in
+-
+- (* Print domains. *)
+- attron A.reverse;
+- let header_string = if !block_in_bytes
+- then " ID S RDBY WRBY RXBY TXBY %CPU %MEM TIME NAME"
+- else " ID S RDRQ WRRQ RXBY TXBY %CPU %MEM TIME NAME"
+- in
+- mvaddstr header_lineno 0
+- (pad cols header_string);
+- attroff A.reverse;
+-
+- let rec loop lineno = function
+- | [] -> ()
+- | (name, Active rd) :: doms ->
+- if lineno < lines then (
+- let state = show_state rd.rd_info.D.state in
+- let rd_req = Show.int64_option rd.rd_block_rd_info in
+- let wr_req = Show.int64_option rd.rd_block_wr_info in
+- let rx_bytes = Show.int64_option rd.rd_net_rx_bytes in
+- let tx_bytes = Show.int64_option rd.rd_net_tx_bytes in
+- let percent_cpu = Show.percent rd.rd_percent_cpu in
+- let percent_mem = Int64.to_float rd.rd_mem_percent in
+- let percent_mem = Show.percent percent_mem in
+- let time = Show.time rd.rd_info.D.cpu_time in
+-
+- let line = sprintf "%5d %c %s %s %s %s %s %s %s %s"
+- rd.rd_domid state rd_req wr_req rx_bytes tx_bytes
+- percent_cpu percent_mem time name in
+- let line = pad cols line in
+- mvaddstr lineno 0 line;
+- loop (lineno+1) doms
+- )
+- | (name, Inactive) :: doms -> (* inactive domain *)
+- if lineno < lines then (
+- let line =
+- sprintf
+- " - (%s)"
+- name in
+- let line = pad cols line in
+- mvaddstr lineno 0 line;
+- loop (lineno+1) doms
+- )
+- in
+- loop domains_lineno doms
+-
+- | PCPUDisplay -> (*---------- Showing physical CPUs ----------*)
+- let doms, pcpus, pcpus_cpu_time =
+- match pcpu_display with
+- | Some p -> p
+- | None -> failwith "internal error: no pcpu_display data" in
+-
+- (* Display the pCPUs. *)
+- let dom_names =
+- String.concat "" (
+- List.map (
+- fun (_, name, _, _, _, _, _, _) ->
+- let len = String.length name in
+- let width = max (len+1) 12 in
+- pad width name
+- ) doms
+- ) in
+- attron A.reverse;
+- mvaddstr header_lineno 0 (pad cols ("PHYCPU %CPU " ^ dom_names));
+- attroff A.reverse;
+-
+- Array.iteri (
+- fun p row ->
+- mvaddstr (p+domains_lineno) 0 (sprintf "%4d " p);
+- let cpu_time = pcpus_cpu_time.(p) in (* ns used on this CPU *)
+- let percent_cpu = 100. *. cpu_time /. total_cpu_per_pcpu in
+- addstr (Show.percent percent_cpu);
+- addch ' ';
+-
+- List.iteri (
+- fun di (domid, name, _, _, _, _, _, _) ->
+- let t = pcpus.(p).(di).(0) in (* hypervisor + domain *)
+- let t_only = pcpus.(p).(di).(1) in (* domain only *)
+- let len = String.length name in
+- let width = max (len+1) 12 in
+- let str_t =
+- if t <= 0L then ""
+- else (
+- let t = Int64.to_float t in
+- let percent = 100. *. t /. total_cpu_per_pcpu in
+- Show.percent percent
+- ) in
+- let str_t_only =
+- if t_only <= 0L then ""
+- else (
+- let t_only = Int64.to_float t_only in
+- let percent = 100. *. t_only /. total_cpu_per_pcpu in
+- Show.percent percent
+- ) in
+- addstr (pad 5 str_t);
+- addstr (pad 5 str_t_only);
+- addstr (pad (width-10) " ");
+- ()
+- ) doms
+- ) pcpus;
+-
+- | NetDisplay -> (*---------- Showing network interfaces ----------*)
+- (* Only care about active domains. *)
+- let doms = List.filter_map (
+- function
+- | (name, Active rd) -> Some (name, rd)
+- | (_, Inactive) -> None
+- ) doms in
+-
+- (* For each domain we have a list of network interfaces seen
+- * this slice, and seen in the previous slice, which we now
+- * match up to get a list of (domain, interface) for which
+- * we have current & previous knowledge. (And ignore the rest).
+- *)
+- let devs =
+- List.map (
+- fun (name, rd) ->
+- List.filter_map (
+- fun (dev, stats) ->
+- try
+- (* Have prev slice stats for this device? *)
+- let prev_stats =
+- List.assoc dev rd.rd_prev_interface_stats in
+- Some (dev, name, rd, stats, prev_stats)
+- with Not_found -> None
+- ) rd.rd_interface_stats
+- ) doms in
+-
+- (* Finally we have a list of:
+- * device name, domain name, rd_* stuff, curr stats, prev stats.
+- *)
+- let devs : (string * string * rd_active *
+- D.interface_stats * D.interface_stats) list =
+- List.flatten devs in
+-
+- (* Difference curr slice & prev slice. *)
+- let devs = List.map (
+- fun (dev, name, rd, curr, prev) ->
+- dev, name, rd, diff_interface_stats curr prev
+- ) devs in
+-
+- (* Sort by current sort order, but map some of the standard
+- * sort orders into ones which makes sense here.
+- *)
+- let devs =
+- let cmp =
+- match !sort_order with
+- | DomainName ->
+- (fun _ -> 0) (* fallthrough to default name compare *)
+- | DomainID ->
+- (fun (_, { rd_domid = id1 }, _, { rd_domid = id2 }) ->
+- compare id1 id2)
+- | Processor | Memory | Time | BlockRdRq | BlockWrRq
+- (* fallthrough to RXBY comparison. *)
+- | NetRX ->
+- (fun ({ D.rx_bytes = b1 }, _, { D.rx_bytes = b2 }, _) ->
+- compare b2 b1)
+- | NetTX ->
+- (fun ({ D.tx_bytes = b1 }, _, { D.tx_bytes = b2 }, _) ->
+- compare b2 b1)
+- in
+- let cmp (dev1, name1, rd1, stats1) (dev2, name2, rd2, stats2) =
+- let r = cmp (stats1, rd1, stats2, rd2) in
+- if r <> 0 then r
+- else compare (dev1, name1) (dev2, name2)
+- in
+- List.sort ~cmp devs in
+-
+- (* Print the header for network devices. *)
+- attron A.reverse;
+- mvaddstr header_lineno 0
+- (pad cols " ID S RXBY TXBY RXPK TXPK DOMAIN INTERFACE");
+- attroff A.reverse;
+-
+- (* Print domains and devices. *)
+- let rec loop lineno = function
+- | [] -> ()
+- | (dev, name, rd, stats) :: devs ->
+- if lineno < lines then (
+- let state = show_state rd.rd_info.D.state in
+- let rx_bytes =
+- if stats.D.rx_bytes >= 0L
+- then Show.int64 stats.D.rx_bytes
+- else " " in
+- let tx_bytes =
+- if stats.D.tx_bytes >= 0L
+- then Show.int64 stats.D.tx_bytes
+- else " " in
+- let rx_packets =
+- if stats.D.rx_packets >= 0L
+- then Show.int64 stats.D.rx_packets
+- else " " in
+- let tx_packets =
+- if stats.D.tx_packets >= 0L
+- then Show.int64 stats.D.tx_packets
+- else " " in
+-
+- let line = sprintf "%5d %c %s %s %s %s %-12s %s"
+- rd.rd_domid state
+- rx_bytes tx_bytes
+- rx_packets tx_packets
+- (pad 12 name) dev in
+- let line = pad cols line in
+- mvaddstr lineno 0 line;
+- loop (lineno+1) devs
+- )
+- in
+- loop domains_lineno devs
+-
+- | BlockDisplay -> (*---------- Showing block devices ----------*)
+- (* Only care about active domains. *)
+- let doms = List.filter_map (
+- function
+- | (name, Active rd) -> Some (name, rd)
+- | (_, Inactive) -> None
+- ) doms in
+-
+- (* For each domain we have a list of block devices seen
+- * this slice, and seen in the previous slice, which we now
+- * match up to get a list of (domain, device) for which
+- * we have current & previous knowledge. (And ignore the rest).
+- *)
+- let devs =
+- List.map (
+- fun (name, rd) ->
+- List.filter_map (
+- fun (dev, stats) ->
+- try
+- (* Have prev slice stats for this device? *)
+- let prev_stats =
+- List.assoc dev rd.rd_prev_block_stats in
+- Some (dev, name, rd, stats, prev_stats)
+- with Not_found -> None
+- ) rd.rd_block_stats
+- ) doms in
+-
+- (* Finally we have a list of:
+- * device name, domain name, rd_* stuff, curr stats, prev stats.
+- *)
+- let devs : (string * string * rd_active *
+- D.block_stats * D.block_stats) list =
+- List.flatten devs in
+-
+- (* Difference curr slice & prev slice. *)
+- let devs = List.map (
+- fun (dev, name, rd, curr, prev) ->
+- dev, name, rd, diff_block_stats curr prev
+- ) devs in
+-
+- (* Sort by current sort order, but map some of the standard
+- * sort orders into ones which makes sense here.
+- *)
+- let devs =
+- let cmp =
+- match !sort_order with
+- | DomainName ->
+- (fun _ -> 0) (* fallthrough to default name compare *)
+- | DomainID ->
+- (fun (_, { rd_domid = id1 }, _, { rd_domid = id2 }) ->
+- compare id1 id2)
+- | Processor | Memory | Time | NetRX | NetTX
+- (* fallthrough to RDRQ comparison. *)
+- | BlockRdRq ->
+- (fun ({ D.rd_req = b1 }, _, { D.rd_req = b2 }, _) ->
+- compare b2 b1)
+- | BlockWrRq ->
+- (fun ({ D.wr_req = b1 }, _, { D.wr_req = b2 }, _) ->
+- compare b2 b1)
+- in
+- let cmp (dev1, name1, rd1, stats1) (dev2, name2, rd2, stats2) =
+- let r = cmp (stats1, rd1, stats2, rd2) in
+- if r <> 0 then r
+- else compare (dev1, name1) (dev2, name2)
+- in
+- List.sort ~cmp devs in
+-
+- (* Print the header for block devices. *)
+- attron A.reverse;
+- mvaddstr header_lineno 0
+- (pad cols " ID S RDBY WRBY RDRQ WRRQ DOMAIN DEVICE");
+- attroff A.reverse;
+-
+- (* Print domains and devices. *)
+- let rec loop lineno = function
+- | [] -> ()
+- | (dev, name, rd, stats) :: devs ->
+- if lineno < lines then (
+- let state = show_state rd.rd_info.D.state in
+- let rd_bytes =
+- if stats.D.rd_bytes >= 0L
+- then Show.int64 stats.D.rd_bytes
+- else " " in
+- let wr_bytes =
+- if stats.D.wr_bytes >= 0L
+- then Show.int64 stats.D.wr_bytes
+- else " " in
+- let rd_req =
+- if stats.D.rd_req >= 0L
+- then Show.int64 stats.D.rd_req
+- else " " in
+- let wr_req =
+- if stats.D.wr_req >= 0L
+- then Show.int64 stats.D.wr_req
+- else " " in
+-
+- let line = sprintf "%5d %c %s %s %s %s %-12s %s"
+- rd.rd_domid state
+- rd_bytes wr_bytes
+- rd_req wr_req
+- (pad 12 name) dev in
+- let line = pad cols line in
+- mvaddstr lineno 0 line;
+- loop (lineno+1) devs
+- )
+- in
+- loop domains_lineno devs
+- ); (* end of display_mode conditional section *)
+-
+- let (count, running, blocked, paused, shutdown, shutoff,
+- crashed, active, inactive,
+- total_cpu_time, total_memory, total_domU_memory) = totals in
+-
+- mvaddstr summary_lineno 0
+- (sprintf
+- (f_"%d domains, %d active, %d running, %d sleeping, %d paused, %d inactive D:%d O:%d X:%d")
+- count active running blocked paused inactive shutdown shutoff crashed);
+-
+- (* Total %CPU used, and memory summary. *)
+- let percent_cpu = 100. *. total_cpu_time /. total_cpu in
+- mvaddstr (summary_lineno+1) 0
+- (sprintf
+- (f_"CPU: %2.1f%% Mem: %Ld MB (%Ld MB by guests)")
+- percent_cpu (total_memory /^ 1024L) (total_domU_memory /^ 1024L));
+-
+- (* Time to grab another historical %CPU for the list? *)
+- if time >= !historical_cpu_last_time +. float !historical_cpu_delay
+- then (
+- historical_cpu := percent_cpu :: List.take 10 !historical_cpu;
+- historical_cpu_last_time := time
+- );
+-
+- (* Display historical CPU time. *)
+- let () =
+- let y, x = historical_cursor in
+- let maxwidth = cols - x in
+- let line =
+- String.concat " "
+- (List.map (sprintf "%2.1f%%") !historical_cpu) in
+- let line = pad maxwidth line in
+- mvaddstr y x line;
+- () in
+-
+- move message_lineno 0; (* Park cursor in message area, as with top. *)
+- refresh () (* Refresh the display. *)
+-
+-(* Write CSV header row. *)
+-let write_csv_header () =
+- (!csv_write) (
+- [ "Hostname"; "Time"; "Arch"; "Physical CPUs";
+- "Count"; "Running"; "Blocked"; "Paused"; "Shutdown";
+- "Shutoff"; "Crashed"; "Active"; "Inactive";
+- "%CPU";
+- "Total hardware memory (KB)";
+- "Total memory (KB)"; "Total guest memory (KB)";
+- "Total CPU time (ns)" ] @
+- (* These fields are repeated for each domain: *)
+- [ "Domain ID"; "Domain name"; ] @
+- (if !csv_cpu then [ "CPU (ns)"; "%CPU"; ] else []) @
+- (if !csv_mem then [ "Mem (bytes)"; "%Mem";] else []) @
+- (if !csv_block && not !block_in_bytes
+- then [ "Block RDRQ"; "Block WRRQ"; ] else []) _at_
+- (if !csv_block && !block_in_bytes
+- then [ "Block RDBY"; "Block WRBY"; ] else []) @
+- (if !csv_net then [ "Net RXBY"; "Net TXBY" ] else [])
+- )
+-
+-(* Write summary data to CSV file. *)
+-let append_csv
+- (_, _, _, _, _, node_info, hostname, _) (* setup *)
+- (doms,
+- _, printable_time,
+- nr_pcpus, total_cpu, _,
+- totals,
+- _) (* state *) =
+-
+- (* The totals / summary fields. *)
+- let (count, running, blocked, paused, shutdown, shutoff,
+- crashed, active, inactive,
+- total_cpu_time, total_memory, total_domU_memory) = totals in
+-
+- let percent_cpu = 100. *. total_cpu_time /. total_cpu in
+-
+- let summary_fields = [
+- hostname; printable_time; node_info.C.model; string_of_int nr_pcpus;
+- string_of_int count; string_of_int running; string_of_int blocked;
+- string_of_int paused; string_of_int shutdown; string_of_int shutoff;
+- string_of_int crashed; string_of_int active; string_of_int inactive;
+- sprintf "%2.1f" percent_cpu;
+- Int64.to_string node_info.C.memory;
+- Int64.to_string total_memory; Int64.to_string total_domU_memory;
+- Int64.to_string (Int64.of_float total_cpu_time)
+- ] in
+-
+- (* The domains.
+- *
+- * Sort them by ID so that the list of relatively stable. Ignore
+- * inactive domains.
+- *)
+- let doms = List.filter_map (
+- function
+- | _, Inactive -> None (* Ignore inactive domains. *)
+- | name, Active rd -> Some (name, rd)
+- ) doms in
+- let cmp (_, { rd_domid = rd_domid1 }) (_, { rd_domid = rd_domid2 }) =
+- compare rd_domid1 rd_domid2
+- in
+- let doms = List.sort ~cmp doms in
+-
+- let string_of_int64_option = Option.map_default Int64.to_string "" in
+-
+- let domain_fields = List.map (
+- fun (domname, rd) ->
+- [ string_of_int rd.rd_domid; domname ] @
+- (if !csv_cpu then [
+- string_of_float rd.rd_cpu_time; string_of_float rd.rd_percent_cpu
+- ] else []) @
+- (if !csv_mem then [
+- Int64.to_string rd.rd_mem_bytes; Int64.to_string rd.rd_mem_percent
+- ] else []) _at_
+- (if !csv_block then [
+- string_of_int64_option rd.rd_block_rd_info;
+- string_of_int64_option rd.rd_block_wr_info;
+- ] else []) @
+- (if !csv_net then [
+- string_of_int64_option rd.rd_net_rx_bytes;
+- string_of_int64_option rd.rd_net_tx_bytes;
+- ] else [])
+- ) doms in
+- let domain_fields = List.flatten domain_fields in
+-
+- (!csv_write) (summary_fields _at_ domain_fields)
+-
+-let dump_stdout
+- (_, _, _, _, _, node_info, hostname, _) (* setup *)
+- (doms,
+- _, printable_time,
+- nr_pcpus, total_cpu, _,
+- totals,
+- _) (* state *) =
+-
+- (* Header for this iteration *)
+- printf "virt-top time %s Host %s %s %d/%dCPU %dMHz %LdMB \n"
+- printable_time hostname node_info.C.model node_info.C.cpus nr_pcpus
+- node_info.C.mhz (node_info.C.memory /^ 1024L);
+- (* dump domain information one by one *)
+- let rd, wr = if !block_in_bytes then "RDBY", "WRBY" else "RDRQ", "WRRQ"
+- in
+- printf " ID S %s %s RXBY TXBY %%CPU %%MEM TIME NAME\n" rd wr;
+-
+- (* sort by ID *)
+- let doms =
+- let compare =
+- (function
+- | Active {rd_domid = id1 }, Active {rd_domid = id2} ->
+- compare id1 id2
+- | Active _, Inactive -> -1
+- | Inactive, Active _ -> 1
+- | Inactive, Inactive -> 0)
+- in
+- let cmp (name1, dom1) (name2, dom2) = compare(dom1, dom2) in
+- List.sort ~cmp doms in
+- (*Print domains *)
+- let dump_domain = fun name rd
+- -> begin
+- let state = show_state rd.rd_info.D.state in
+- let rd_req = if rd.rd_block_rd_info = None then " 0"
+- else Show.int64_option rd.rd_block_rd_info in
+- let wr_req = if rd.rd_block_wr_info = None then " 0"
+- else Show.int64_option rd.rd_block_wr_info in
+- let rx_bytes = if rd.rd_net_rx_bytes = None then " 0"
+- else Show.int64_option rd.rd_net_rx_bytes in
+- let tx_bytes = if rd.rd_net_tx_bytes = None then " 0"
+- else Show.int64_option rd.rd_net_tx_bytes in
+- let percent_cpu = Show.percent rd.rd_percent_cpu in
+- let percent_mem = Int64.to_float rd.rd_mem_percent in
+- let percent_mem = Show.percent percent_mem in
+- let time = Show.time rd.rd_info.D.cpu_time in
+- printf "%5d %c %s %s %s %s %s %s %s %s\n"
+- rd.rd_domid state rd_req wr_req rx_bytes tx_bytes
+- percent_cpu percent_mem time name;
+- end
+- in
+- List.iter (
+- function
+- | name, Active dom -> dump_domain name dom
+- | name, Inactive -> ()
+- ) doms;
+- flush stdout
+-
+ (* Main loop. *)
+ let rec main_loop ((_, batch_mode, script_mode, csv_enabled, stream_mode, _, _, _)
+ as setup) =
+- if csv_enabled then write_csv_header ();
++ let csv_flags = !csv_cpu, !csv_mem, !csv_block, !csv_net in
++
++ if csv_enabled then
++ Csv_output.write_csv_header csv_flags !block_in_bytes;
+
+ while not !quit do
+- let state = collect setup in (* Collect stats. *)
++ (* Collect stats. *)
++ let state = collect setup !block_in_bytes in
++ let pcpu_display =
++ if !display_mode = PCPUDisplay then Some (collect_pcpu state)
++ else None in
+ (* Redraw display. *)
+- if not script_mode && not stream_mode then redraw setup state;
+- if csv_enabled then append_csv setup state; (* Update CSV file. *)
+- if stream_mode then dump_stdout setup state; (* dump to stdout *)
++ if not script_mode && not stream_mode then
++ Redraw.redraw !display_mode !sort_order
++ setup !block_in_bytes !historical_cpu_delay
++ state pcpu_display;
++
++ (* Update CSV file. *)
++ if csv_enabled then
++ Csv_output.append_csv setup csv_flags state;
++
++ (* Append to stream output file. *)
++ if stream_mode then
++ Stream_output.append_stream setup !block_in_bytes state;
+
+ (* Clear up unused virDomainPtr objects. *)
+ Gc.compact ();
+_at_@ -1440,11 +356,10 @@ let rec main_loop ((_, batch_mode, script_mode, csv_enabled, stream_mode, _, _,
+ (* No --end-time option, so use the current delay. *)
+ !delay
+ | Some end_time ->
+- let (_, time, _, _, _, _, _, _) = state in
+ let delay_secs = float !delay /. 1000. in
+- if end_time <= time +. delay_secs then (
++ if end_time <= state.rd_time +. delay_secs then (
+ quit := true;
+- let delay = int_of_float (1000. *. (end_time -. time)) in
++ let delay = int_of_float (1000. *. (end_time -. state.rd_time)) in
+ if delay >= 0 then delay else 0
+ ) else
+ !delay in
+diff --git a/src/top.mli b/src/top.mli
+index b0953dd..b625910 100644
+--- a/src/top.mli
++++ b/src/top.mli
+_at_@ -1,5 +1,5 @@
+ (* 'top'-like tool for libvirt domains.
+- (C) Copyright 2007-2009 Richard W.M. Jones, Red Hat Inc.
++ (C) Copyright 2007-2017 Richard W.M. Jones, Red Hat Inc.
+ http://libvirt.org/
+
+ This program is free software; you can redistribute it and/or modify
+_at_@ -17,23 +17,11 @@
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *)
+
+-(* Hook for [Opt_xml] to override (if present). *)
+-val parse_device_xml :
+- (int -> [ `R ] Libvirt.Domain.t -> string list * string list) ref
+-
+-(* Hooks for [Opt_csv] to override (if present). *)
++(* Hook for [Opt_csv] to override (if present). *)
+ val csv_start : (string -> unit) ref
+-val csv_write : (string list -> unit) ref
+
+ (* Hook for [Opt_calendar] to override (if present). *)
+ val parse_date_time : (string -> float) ref
+
+-type setup =
+- Libvirt.ro Libvirt.Connect.t (* connection *)
+- * bool * bool * bool * bool (* batch, script, csv, stream mode *)
+- * Libvirt.Connect.node_info (* node_info *)
+- * string (* hostname *)
+- * (int * int * int) (* libvirt version *)
+-
+-val start_up : unit -> setup
+-val main_loop : setup -> unit
++val start_up : unit -> Types.setup
++val main_loop : Types.setup -> unit
+diff --git a/src/types.ml b/src/types.ml
+new file mode 100644
+index 0000000..2fdd49b
+--- /dev/null
++++ b/src/types.ml
+_at_@ -0,0 +1,147 @@
++(* 'top'-like tool for libvirt domains.
++ (C) Copyright 2007-2017 Richard W.M. Jones, Red Hat Inc.
++ http://libvirt.org/
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program 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 General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++*)
++
++open Opt_gettext.Gettext
++open Utils
++
++module C = Libvirt.Connect
++module D = Libvirt.Domain
++
++(* XXX We should get rid of this type. *)
++type setup =
++ Libvirt.ro C.t (* connection *)
++ * bool * bool * bool * bool (* batch, script, csv, stream mode *)
++ * C.node_info (* node_info *)
++ * string (* hostname *)
++ * (int * int * int) (* libvirt version *)
++
++(* Sort order. *)
++type sort_order =
++ | DomainID | DomainName | Processor | Memory | Time
++ | NetRX | NetTX | BlockRdRq | BlockWrRq
++let all_sort_fields = [
++ DomainID; DomainName; Processor; Memory; Time;
++ NetRX; NetTX; BlockRdRq; BlockWrRq
++]
++let printable_sort_order = function
++ | Processor -> s_"%CPU"
++ | Memory -> s_"%MEM"
++ | Time -> s_"TIME (CPU time)"
++ | DomainID -> s_"Domain ID"
++ | DomainName -> s_"Domain name"
++ | NetRX -> s_"Net RX bytes"
++ | NetTX -> s_"Net TX bytes"
++ | BlockRdRq -> s_"Block read reqs"
++ | BlockWrRq -> s_"Block write reqs"
++let sort_order_of_cli = function
++ | "cpu" | "processor" -> Processor
++ | "mem" | "memory" -> Memory
++ | "time" -> Time
++ | "id" -> DomainID
++ | "name" -> DomainName
++ | "netrx" -> NetRX | "nettx" -> NetTX
++ | "blockrdrq" -> BlockRdRq | "blockwrrq" -> BlockWrRq
++ | str ->
++ failwithf (f_"%s: sort order should be: %s")
++ str "cpu|mem|time|id|name|netrx|nettx|blockrdrq|blockwrrq"
++let cli_of_sort_order = function
++ | Processor -> "cpu"
++ | Memory -> "mem"
++ | Time -> "time"
++ | DomainID -> "id"
++ | DomainName -> "name"
++ | NetRX -> "netrx"
++ | NetTX -> "nettx"
++ | BlockRdRq -> "blockrdrq"
++ | BlockWrRq -> "blockwrrq"
++
++(* Current major display mode: TaskDisplay is the normal display. *)
++type display = TaskDisplay | PCPUDisplay | BlockDisplay | NetDisplay
++
++let display_of_cli = function
++ | "task" -> TaskDisplay
++ | "pcpu" -> PCPUDisplay
++ | "block" -> BlockDisplay
++ | "net" -> NetDisplay
++ | str ->
++ failwithf (f_"%s: display should be %s") str "task|pcpu|block|net"
++let cli_of_display = function
++ | TaskDisplay -> "task"
++ | PCPUDisplay -> "pcpu"
++ | BlockDisplay -> "block"
++ | NetDisplay -> "net"
++
++(* Sum Domain.block_stats structures together. Missing fields
++ * get forced to 0. Empty list returns all 0.
++ *)
++let zero_block_stats =
++ { D.rd_req = 0L; rd_bytes = 0L; wr_req = 0L; wr_bytes = 0L; errs = 0L }
++let add_block_stats bs1 bs2 =
++ let add f1 f2 = if f1 >= 0L && f2 >= 0L then f1 +^ f2 else 0L in
++ { D.rd_req = add bs1.D.rd_req bs2.D.rd_req;
++ rd_bytes = add bs1.D.rd_bytes bs2.D.rd_bytes;
++ wr_req = add bs1.D.wr_req bs2.D.wr_req;
++ wr_bytes = add bs1.D.wr_bytes bs2.D.wr_bytes;
++ errs = add bs1.D.errs bs2.D.errs }
++let sum_block_stats =
++ List.fold_left add_block_stats zero_block_stats
++
++(* Get the difference between two block_stats structures. Missing data
++ * forces the difference to -1.
++ *)
++let diff_block_stats curr prev =
++ let sub f1 f2 = if f1 >= 0L && f2 >= 0L then f1 -^ f2 else -1L in
++ { D.rd_req = sub curr.D.rd_req prev.D.rd_req;
++ rd_bytes = sub curr.D.rd_bytes prev.D.rd_bytes;
++ wr_req = sub curr.D.wr_req prev.D.wr_req;
++ wr_bytes = sub curr.D.wr_bytes prev.D.wr_bytes;
++ errs = sub curr.D.errs prev.D.errs }
++
++(* Sum Domain.interface_stats structures together. Missing fields
++ * get forced to 0. Empty list returns all 0.
++ *)
++let zero_interface_stats =
++ { D.rx_bytes = 0L; rx_packets = 0L; rx_errs = 0L; rx_drop = 0L;
++ tx_bytes = 0L; tx_packets = 0L; tx_errs = 0L; tx_drop = 0L }
++let add_interface_stats is1 is2 =
++ let add f1 f2 = if f1 >= 0L && f2 >= 0L then f1 +^ f2 else 0L in
++ { D.rx_bytes = add is1.D.rx_bytes is2.D.rx_bytes;
++ rx_packets = add is1.D.rx_packets is2.D.rx_packets;
++ rx_errs = add is1.D.rx_errs is2.D.rx_errs;
++ rx_drop = add is1.D.rx_drop is2.D.rx_drop;
++ tx_bytes = add is1.D.tx_bytes is2.D.tx_bytes;
++ tx_packets = add is1.D.tx_packets is2.D.tx_packets;
++ tx_errs = add is1.D.tx_errs is2.D.tx_errs;
++ tx_drop = add is1.D.tx_drop is2.D.tx_drop }
++let sum_interface_stats =
++ List.fold_left add_interface_stats zero_interface_stats
++
++(* Get the difference between two interface_stats structures.
++ * Missing data forces the difference to -1.
++ *)
++let diff_interface_stats curr prev =
++ let sub f1 f2 = if f1 >= 0L && f2 >= 0L then f1 -^ f2 else -1L in
++ { D.rx_bytes = sub curr.D.rx_bytes prev.D.rx_bytes;
++ rx_packets = sub curr.D.rx_packets prev.D.rx_packets;
++ rx_errs = sub curr.D.rx_errs prev.D.rx_errs;
++ rx_drop = sub curr.D.rx_drop prev.D.rx_drop;
++ tx_bytes = sub curr.D.tx_bytes prev.D.tx_bytes;
++ tx_packets = sub curr.D.tx_packets prev.D.tx_packets;
++ tx_errs = sub curr.D.tx_errs prev.D.tx_errs;
++ tx_drop = sub curr.D.tx_drop prev.D.tx_drop }
+diff --git a/src/types.mli b/src/types.mli
+new file mode 100644
+index 0000000..6297482
+--- /dev/null
++++ b/src/types.mli
+_at_@ -0,0 +1,49 @@
++(* 'top'-like tool for libvirt domains.
++ (C) Copyright 2007-2017 Richard W.M. Jones, Red Hat Inc.
++ http://libvirt.org/
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program 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 General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++*)
++
++(* XXX We should get rid of this type. *)
++type setup =
++ Libvirt.ro Libvirt.Connect.t (* connection *)
++ * bool * bool * bool * bool (* batch, script, csv, stream mode *)
++ * Libvirt.Connect.node_info (* node_info *)
++ * string (* hostname *)
++ * (int * int * int) (* libvirt version *)
++
++(* Sort order. *)
++type sort_order =
++ | DomainID | DomainName | Processor | Memory | Time
++ | NetRX | NetTX | BlockRdRq | BlockWrRq
++
++val all_sort_fields : sort_order list
++val printable_sort_order : sort_order -> string
++val sort_order_of_cli : string -> sort_order
++val cli_of_sort_order : sort_order -> string
++
++(* Current major display mode: TaskDisplay is the normal display. *)
++type display = TaskDisplay | PCPUDisplay | BlockDisplay | NetDisplay
++
++val display_of_cli : string -> display
++val cli_of_display : display -> string
++
++(* Helpers for manipulating block_stats & interface_stats. *)
++val sum_block_stats : Libvirt.Domain.block_stats list -> Libvirt.Domain.block_stats
++val diff_block_stats : Libvirt.Domain.block_stats -> Libvirt.Domain.block_stats -> Libvirt.Domain.block_stats
++
++val sum_interface_stats : Libvirt.Domain.interface_stats list -> Libvirt.Domain.interface_stats
++val diff_interface_stats : Libvirt.Domain.interface_stats -> Libvirt.Domain.interface_stats -> Libvirt.Domain.interface_stats
+diff --git a/src/utils.ml b/src/utils.ml
+index 3dc637d..5fcc905 100644
+--- a/src/utils.ml
++++ b/src/utils.ml
+_at_@ -21,12 +21,6 @@
+
+ open Printf
+
+-open Opt_gettext.Gettext
+-
+-module C = Libvirt.Connect
+-module D = Libvirt.Domain
+-module N = Libvirt.Network
+-
+ let (//) = Filename.concat
+
+ (* Int64 operators for convenience. *)
+_at_@ -166,62 +160,3 @@ module Show = struct
+ sprintf "%3Ldd%02Ld:%02Ld" days hours mins
+ )
+ end
+-
+-(* Sum Domain.block_stats structures together. Missing fields
+- * get forced to 0. Empty list returns all 0.
+- *)
+-let zero_block_stats =
+- { D.rd_req = 0L; rd_bytes = 0L; wr_req = 0L; wr_bytes = 0L; errs = 0L }
+-let add_block_stats bs1 bs2 =
+- let add f1 f2 = if f1 >= 0L && f2 >= 0L then f1 +^ f2 else 0L in
+- { D.rd_req = add bs1.D.rd_req bs2.D.rd_req;
+- rd_bytes = add bs1.D.rd_bytes bs2.D.rd_bytes;
+- wr_req = add bs1.D.wr_req bs2.D.wr_req;
+- wr_bytes = add bs1.D.wr_bytes bs2.D.wr_bytes;
+- errs = add bs1.D.errs bs2.D.errs }
+-let sum_block_stats =
+- List.fold_left add_block_stats zero_block_stats
+-
+-(* Get the difference between two block_stats structures. Missing data
+- * forces the difference to -1.
+- *)
+-let diff_block_stats curr prev =
+- let sub f1 f2 = if f1 >= 0L && f2 >= 0L then f1 -^ f2 else -1L in
+- { D.rd_req = sub curr.D.rd_req prev.D.rd_req;
+- rd_bytes = sub curr.D.rd_bytes prev.D.rd_bytes;
+- wr_req = sub curr.D.wr_req prev.D.wr_req;
+- wr_bytes = sub curr.D.wr_bytes prev.D.wr_bytes;
+- errs = sub curr.D.errs prev.D.errs }
+-
+-(* Sum Domain.interface_stats structures together. Missing fields
+- * get forced to 0. Empty list returns all 0.
+- *)
+-let zero_interface_stats =
+- { D.rx_bytes = 0L; rx_packets = 0L; rx_errs = 0L; rx_drop = 0L;
+- tx_bytes = 0L; tx_packets = 0L; tx_errs = 0L; tx_drop = 0L }
+-let add_interface_stats is1 is2 =
+- let add f1 f2 = if f1 >= 0L && f2 >= 0L then f1 +^ f2 else 0L in
+- { D.rx_bytes = add is1.D.rx_bytes is2.D.rx_bytes;
+- rx_packets = add is1.D.rx_packets is2.D.rx_packets;
+- rx_errs = add is1.D.rx_errs is2.D.rx_errs;
+- rx_drop = add is1.D.rx_drop is2.D.rx_drop;
+- tx_bytes = add is1.D.tx_bytes is2.D.tx_bytes;
+- tx_packets = add is1.D.tx_packets is2.D.tx_packets;
+- tx_errs = add is1.D.tx_errs is2.D.tx_errs;
+- tx_drop = add is1.D.tx_drop is2.D.tx_drop }
+-let sum_interface_stats =
+- List.fold_left add_interface_stats zero_interface_stats
+-
+-(* Get the difference between two interface_stats structures.
+- * Missing data forces the difference to -1.
+- *)
+-let diff_interface_stats curr prev =
+- let sub f1 f2 = if f1 >= 0L && f2 >= 0L then f1 -^ f2 else -1L in
+- { D.rx_bytes = sub curr.D.rx_bytes prev.D.rx_bytes;
+- rx_packets = sub curr.D.rx_packets prev.D.rx_packets;
+- rx_errs = sub curr.D.rx_errs prev.D.rx_errs;
+- rx_drop = sub curr.D.rx_drop prev.D.rx_drop;
+- tx_bytes = sub curr.D.tx_bytes prev.D.tx_bytes;
+- tx_packets = sub curr.D.tx_packets prev.D.tx_packets;
+- tx_errs = sub curr.D.tx_errs prev.D.tx_errs;
+- tx_drop = sub curr.D.tx_drop prev.D.tx_drop }
+diff --git a/src/utils.mli b/src/utils.mli
+index 5b71b31..6e81215 100644
+--- a/src/utils.mli
++++ b/src/utils.mli
+_at_@ -46,12 +46,3 @@ module Show : sig
+ val int64 : int64 -> string
+ val time : int64 -> string
+ end
+-
+-(* Helpers for manipulating block_stats & interface_stats. *)
+-open Libvirt.Domain
+-
+-val sum_block_stats : block_stats list -> block_stats
+-val diff_block_stats : block_stats -> block_stats -> block_stats
+-
+-val sum_interface_stats : interface_stats list -> interface_stats
+-val diff_interface_stats : interface_stats -> interface_stats -> interface_stats
+--
+2.9.3
+
diff --git a/testing/virt-top/0014-Move-block_in_bytes-entirely-to-the-presentation-lay.patch b/testing/virt-top/0014-Move-block_in_bytes-entirely-to-the-presentation-lay.patch
new file mode 100644
index 0000000000..b7d7800734
--- /dev/null
+++ b/testing/virt-top/0014-Move-block_in_bytes-entirely-to-the-presentation-lay.patch
_at_@ -0,0 +1,211 @@
+From 431dbd98bad6e3635b4d0885bf33dd3e759ca35d Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Mon, 27 Mar 2017 21:22:52 +0100
+Subject: [PATCH 14/17] Move block_in_bytes entirely to the presentation layer.
+
+Simplifies and updates commit dbef8dd3bf00417e75a12c851b053e49c9e1a79e.
+---
+ src/collect.ml | 19 +++----------------
+ src/collect.mli | 6 +-----
+ src/csv_output.ml | 14 ++++++++++----
+ src/csv_output.mli | 2 +-
+ src/redraw.ml | 10 +++++++---
+ src/stream_output.ml | 14 ++++++++++----
+ src/top.ml | 4 ++--
+ 7 files changed, 34 insertions(+), 35 deletions(-)
+
+diff --git a/src/collect.ml b/src/collect.ml
+index f856067..448ce8c 100644
+--- a/src/collect.ml
++++ b/src/collect.ml
+_at_@ -57,12 +57,8 @@ and rd_active = {
+ (* The following are since the last slice, or None if cannot be calc'd: *)
+ rd_block_rd_reqs : int64 option; (* Number of block device read rqs. *)
+ rd_block_wr_reqs : int64 option; (* Number of block device write rqs. *)
+- rd_block_rd_bytes : int64 option; (* Number of bytes block device read *)
+- rd_block_wr_bytes : int64 option; (* Number of bytes block device write *)
+- (* _info fields includes the number considering --block_in_bytes option *)
+- rd_block_rd_info : int64 option; (* Block device read info for user *)
+- rd_block_wr_info : int64 option; (* Block device read info for user *)
+-
++ rd_block_rd_bytes : int64 option; (* Number of bytes block device read *)
++ rd_block_wr_bytes : int64 option; (* Number of bytes block device write *)
+ rd_net_rx_bytes : int64 option; (* Number of bytes received. *)
+ rd_net_tx_bytes : int64 option; (* Number of bytes transmitted. *)
+ }
+_at_@ -114,7 +110,7 @@ let last_pcpu_usages = Hashtbl.create 13
+ let clear_pcpu_display_data () =
+ Hashtbl.clear last_pcpu_usages
+
+-let collect (conn, _, _, _, _, node_info, _, _) block_in_bytes =
++let collect (conn, _, _, _, _, node_info, _, _) =
+ (* Number of physical CPUs (some may be disabled). *)
+ let nr_pcpus = C.maxcpus_of_node_info node_info in
+
+_at_@ -178,7 +174,6 @@ let collect (conn, _, _, _, _, node_info, _, _) block_in_bytes =
+ rd_mem_bytes = 0L; rd_mem_percent = 0L;
+ rd_block_rd_reqs = None; rd_block_wr_reqs = None;
+ rd_block_rd_bytes = None; rd_block_wr_bytes = None;
+- rd_block_rd_info = None; rd_block_wr_info = None;
+ rd_net_rx_bytes = None; rd_net_tx_bytes = None;
+ })
+ with
+_at_@ -256,14 +251,6 @@ let collect (conn, _, _, _, _, node_info, _, _) block_in_bytes =
+ rd_block_rd_bytes = Some read_bytes;
+ rd_block_wr_bytes = Some write_bytes;
+ } in
+- let rd = { rd with
+- rd_block_rd_info =
+- if block_in_bytes then
+- rd.rd_block_rd_bytes else rd.rd_block_rd_reqs;
+- rd_block_wr_info =
+- if block_in_bytes then
+- rd.rd_block_wr_bytes else rd.rd_block_wr_reqs;
+- } in
+ name, Active rd
+ (* For all other domains we can't calculate it, so leave as None. *)
+ | rd -> rd
+diff --git a/src/collect.mli b/src/collect.mli
+index 440859b..9ad3dcb 100644
+--- a/src/collect.mli
++++ b/src/collect.mli
+_at_@ -48,10 +48,6 @@ and rd_active = {
+ rd_block_wr_reqs : int64 option; (* Number of block device write rqs. *)
+ rd_block_rd_bytes : int64 option; (* Number of bytes block device read *)
+ rd_block_wr_bytes : int64 option; (* Number of bytes block device write *)
+- (* _info fields includes the number considering --block_in_bytes option *)
+- rd_block_rd_info : int64 option; (* Block device read info for user *)
+- rd_block_wr_info : int64 option; (* Block device read info for user *)
+-
+ rd_net_rx_bytes : int64 option; (* Number of bytes received. *)
+ rd_net_tx_bytes : int64 option; (* Number of bytes transmitted. *)
+ }
+_at_@ -75,7 +71,7 @@ type pcpu_stats = {
+ rd_pcpu_pcpus_cpu_time : float array
+ }
+
+-val collect : Types.setup -> bool -> stats
++val collect : Types.setup -> stats
+ (** Collect statistics. *)
+
+ val collect_pcpu : stats -> pcpu_stats
+diff --git a/src/csv_output.ml b/src/csv_output.ml
+index 9496ca8..f23d673 100644
+--- a/src/csv_output.ml
++++ b/src/csv_output.ml
+_at_@ -56,6 +56,7 @@ let write_csv_header (csv_cpu, csv_mem, csv_block, csv_net) block_in_bytes =
+ (* Write summary data to CSV file. *)
+ let append_csv (_, _, _, _, _, node_info, hostname, _) (* setup *)
+ (csv_cpu, csv_mem, csv_block, csv_net)
++ block_in_bytes
+ { rd_doms = doms;
+ rd_printable_time = printable_time;
+ rd_nr_pcpus = nr_pcpus; rd_total_cpu = total_cpu;
+_at_@ -104,10 +105,15 @@ let append_csv (_, _, _, _, _, node_info, hostname, _) (* setup *)
+ (if csv_mem then [
+ Int64.to_string rd.rd_mem_bytes; Int64.to_string rd.rd_mem_percent
+ ] else []) _at_
+- (if csv_block then [
+- string_of_int64_option rd.rd_block_rd_info;
+- string_of_int64_option rd.rd_block_wr_info;
+- ] else []) _at_
++ (if csv_block then
++ if block_in_bytes then [
++ string_of_int64_option rd.rd_block_rd_bytes;
++ string_of_int64_option rd.rd_block_wr_bytes;
++ ] else [
++ string_of_int64_option rd.rd_block_rd_reqs;
++ string_of_int64_option rd.rd_block_wr_reqs;
++ ]
++ else []) @
+ (if csv_net then [
+ string_of_int64_option rd.rd_net_rx_bytes;
+ string_of_int64_option rd.rd_net_tx_bytes;
+diff --git a/src/csv_output.mli b/src/csv_output.mli
+index d5eab0f..4064be5 100644
+--- a/src/csv_output.mli
++++ b/src/csv_output.mli
+_at_@ -24,4 +24,4 @@ val csv_write : (string list -> unit) ref
+
+ val write_csv_header : bool * bool * bool * bool -> bool -> unit
+
+-val append_csv : Types.setup -> bool * bool * bool * bool -> Collect.stats -> unit
++val append_csv : Types.setup -> bool * bool * bool * bool -> bool -> Collect.stats -> unit
+diff --git a/src/redraw.ml b/src/redraw.ml
+index 9ce889b..0403158 100644
+--- a/src/redraw.ml
++++ b/src/redraw.ml
+_at_@ -155,8 +155,12 @@ let redraw display_mode sort_order
+ | (name, Active rd) :: doms ->
+ if lineno < lines then (
+ let state = show_state rd.rd_info.D.state in
+- let rd_req = Show.int64_option rd.rd_block_rd_info in
+- let wr_req = Show.int64_option rd.rd_block_wr_info in
++ let rd_info =
++ if block_in_bytes then Show.int64_option rd.rd_block_rd_bytes
++ else Show.int64_option rd.rd_block_rd_reqs in
++ let wr_info =
++ if block_in_bytes then Show.int64_option rd.rd_block_wr_bytes
++ else Show.int64_option rd.rd_block_wr_reqs in
+ let rx_bytes = Show.int64_option rd.rd_net_rx_bytes in
+ let tx_bytes = Show.int64_option rd.rd_net_tx_bytes in
+ let percent_cpu = Show.percent rd.rd_percent_cpu in
+_at_@ -166,7 +170,7 @@ let redraw display_mode sort_order
+
+ let line =
+ sprintf "%5d %c %s %s %s %s %s %s %s %s"
+- rd.rd_domid state rd_req wr_req rx_bytes tx_bytes
++ rd.rd_domid state rd_info wr_info rx_bytes tx_bytes
+ percent_cpu percent_mem time name in
+ let line = pad cols line in
+ mvaddstr lineno 0 line;
+diff --git a/src/stream_output.ml b/src/stream_output.ml
+index bf7b114..c3af99b 100644
+--- a/src/stream_output.ml
++++ b/src/stream_output.ml
+_at_@ -59,10 +59,16 @@ let append_stream (_, _, _, _, _, node_info, hostname, _) (* setup *)
+ let dump_domain = fun name rd
+ -> begin
+ let state = Screen.show_state rd.rd_info.D.state in
+- let rd_req = if rd.rd_block_rd_info = None then " 0"
+- else Show.int64_option rd.rd_block_rd_info in
+- let wr_req = if rd.rd_block_wr_info = None then " 0"
+- else Show.int64_option rd.rd_block_wr_info in
++ let rd_req =
++ if rd.rd_block_rd_reqs = None then " 0"
++ else
++ if block_in_bytes then Show.int64_option rd.rd_block_rd_bytes
++ else Show.int64_option rd.rd_block_rd_reqs in
++ let wr_req =
++ if rd.rd_block_wr_reqs = None then " 0"
++ else
++ if block_in_bytes then Show.int64_option rd.rd_block_wr_bytes
++ else Show.int64_option rd.rd_block_wr_reqs in
+ let rx_bytes = if rd.rd_net_rx_bytes = None then " 0"
+ else Show.int64_option rd.rd_net_rx_bytes in
+ let tx_bytes = if rd.rd_net_tx_bytes = None then " 0"
+diff --git a/src/top.ml b/src/top.ml
+index 204f3b6..e2a93d6 100644
+--- a/src/top.ml
++++ b/src/top.ml
+_at_@ -319,7 +319,7 @@ let rec main_loop ((_, batch_mode, script_mode, csv_enabled, stream_mode, _, _,
+
+ while not !quit do
+ (* Collect stats. *)
+- let state = collect setup !block_in_bytes in
++ let state = collect setup in
+ let pcpu_display =
+ if !display_mode = PCPUDisplay then Some (collect_pcpu state)
+ else None in
+_at_@ -331,7 +331,7 @@ let rec main_loop ((_, batch_mode, script_mode, csv_enabled, stream_mode, _, _,
+
+ (* Update CSV file. *)
+ if csv_enabled then
+- Csv_output.append_csv setup csv_flags state;
++ Csv_output.append_csv setup csv_flags !block_in_bytes state;
+
+ (* Append to stream output file. *)
+ if stream_mode then
+--
+2.9.3
+
diff --git a/testing/virt-top/0015-Remove-unused-variable-is_calendar2.patch b/testing/virt-top/0015-Remove-unused-variable-is_calendar2.patch
new file mode 100644
index 0000000000..30a91288ff
--- /dev/null
+++ b/testing/virt-top/0015-Remove-unused-variable-is_calendar2.patch
_at_@ -0,0 +1,25 @@
+From 4f3794d5718249238a74b614a6b486465bc4315d Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Tue, 28 Mar 2017 13:09:54 +0100
+Subject: [PATCH 15/17] Remove unused variable is_calendar2.
+
+Fixes commit effd1ec5897a2cac6e897ae7bce72f6b1e617b90.
+---
+ src/Makefile.in | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+index 64f431e..6a13bef 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+_at_@ -29,7 +29,6 @@ OCAML_PKG_curses = @OCAML_PKG_curses@
+ OCAML_PKG_xml_light = _at_OCAML_PKG_xml_light@
+ OCAML_PKG_csv = _at_OCAML_PKG_csv@
+ OCAML_PKG_calendar = @OCAML_PKG_calendar@
+-is_calendar2 = _at_is_calendar2@
+ OCAML_PKG_gettext = _at_OCAML_PKG_gettext@
+
+ OCAMLCPACKAGES := -package unix,extlib,curses,str,libvirt
+--
+2.9.3
+
diff --git a/testing/virt-top/0016-Use-virConnectGetAllDomainStats-API-to-collect-domai.patch b/testing/virt-top/0016-Use-virConnectGetAllDomainStats-API-to-collect-domai.patch
new file mode 100644
index 0000000000..afd8f855c6
--- /dev/null
+++ b/testing/virt-top/0016-Use-virConnectGetAllDomainStats-API-to-collect-domai.patch
_at_@ -0,0 +1,343 @@
+From c513d05fd4e85953701b1023bef71af62613cf79 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Tue, 28 Mar 2017 13:30:07 +0100
+Subject: [PATCH 16/17] Use virConnectGetAllDomainStats API to collect domain
+ stats (RHBZ#1422795).
+
+This is much faster than using the basic libvirt APIs to collect
+stats for each domain individually.
+
+Note this will not work unless you have the latest ocaml-libvirt
+package which includes this new API binding.
+---
+ src/collect.ml | 242 +++++++++++++++++++++++++++++++++++++++++---------------
+ src/collect.mli | 1 +
+ src/utils.ml | 6 ++
+ src/utils.mli | 3 +
+ 4 files changed, 190 insertions(+), 62 deletions(-)
+
+diff --git a/src/collect.ml b/src/collect.ml
+index 448ce8c..a1e50a1 100644
+--- a/src/collect.ml
++++ b/src/collect.ml
+_at_@ -38,6 +38,7 @@ let parse_device_xml : (int -> [>`R] D.t -> string list * string list) ref =
+ type rd_domain = Inactive | Active of rd_active
+ and rd_active = {
+ rd_domid : int; (* Domain ID. *)
++ rd_domuuid : Libvirt.uuid; (* Domain UUID. *)
+ rd_dom : [`R] D.t; (* Domain object. *)
+ rd_info : D.info; (* Domain CPU info now. *)
+ rd_block_stats : (string * D.block_stats) list;
+_at_@ -110,6 +111,16 @@ let last_pcpu_usages = Hashtbl.create 13
+ let clear_pcpu_display_data () =
+ Hashtbl.clear last_pcpu_usages
+
++(* What to get from virConnectGetAllDomainStats. *)
++let what = [
++ D.StatsState; D.StatsCpuTotal; D.StatsBalloon; D.StatsVcpu;
++ D.StatsInterface; D.StatsBlock
++]
++(* Which domains to get. Empty list means return all domains:
++ * active, inactive, persistent, transient etc.
++ *)
++let who = []
++
+ let collect (conn, _, _, _, _, node_info, _, _) =
+ (* Number of physical CPUs (some may be disabled). *)
+ let nr_pcpus = C.maxcpus_of_node_info node_info in
+_at_@ -129,72 +140,179 @@ let collect (conn, _, _, _, _, node_info, _, _) =
+
+ (* Get the domains. Match up with their last_info (if any). *)
+ let doms =
+- (* Active domains. *)
+- let n = C.num_of_domains conn in
+- let ids =
+- if n > 0 then Array.to_list (C.list_domains conn n)
+- else [] in
+- let doms =
+- List.filter_map (
+- fun id ->
+- try
+- let dom = D.lookup_by_id conn id in
+- let name = D.get_name dom in
+- let blkdevs, netifs = get_devices id dom in
++ let doms = D.get_all_domain_stats conn what who in
++ let doms = Array.to_list doms in
++ List.map (
++ fun { D.dom_uuid = uuid; D.params = params } ->
++ let nr_params = Array.length params in
++ let get_param name =
++ let rec loop i =
++ if i = nr_params then None
++ else if fst params.(i) = name then Some (snd params.(i))
++ else loop (i+1)
++ in
++ loop 0
++ in
++ let get_param_int name default =
++ match get_param name with
++ | None -> None
++ | Some (D.TypedFieldInt32 i)
++ | Some (D.TypedFieldUInt32 i) -> Some (Int32.to_int i)
++ | Some (D.TypedFieldInt64 i)
++ | Some (D.TypedFieldUInt64 i) -> Some (Int64.to_int i)
++ | _ -> default
++ in
++ let get_param_int64 name default =
++ match get_param name with
++ | None -> None
++ | Some (D.TypedFieldInt32 i)
++ | Some (D.TypedFieldUInt32 i) -> Some (Int64.of_int32 i)
++ | Some (D.TypedFieldInt64 i)
++ | Some (D.TypedFieldUInt64 i) -> Some i
++ | _ -> default
++ in
+
+- (* Get current CPU, block and network stats. *)
+- let info = D.get_info dom in
+- let block_stats =
+- try List.map (fun dev -> dev, D.block_stats dom dev) blkdevs
+- with
+- | Libvirt.Not_supported "virDomainBlockStats"
+- | Libvirt.Virterror _ -> [] in
+- let interface_stats =
+- try List.map (fun dev -> dev, D.interface_stats dom dev) netifs
+- with
+- | Libvirt.Not_supported "virDomainInterfaceStats"
+- | Libvirt.Virterror _ -> [] in
++ let dom = D.lookup_by_uuid conn uuid in
++ let id = D.get_id dom in
++ let name = D.get_name dom in
++ let state = get_param_int "state.state" None in
+
+- let prev_info, prev_block_stats, prev_interface_stats =
+- try
+- let prev_info, prev_block_stats, prev_interface_stats =
+- Hashtbl.find last_info id in
+- Some prev_info, prev_block_stats, prev_interface_stats
+- with Not_found -> None, [], [] in
++ if state = Some 5 (* VIR_DOMAIN_SHUTOFF *) then
++ (name, Inactive)
++ else (
++ (* Active domain. *)
+
+- Some (name,
+- Active {
+- rd_domid = id; rd_dom = dom; rd_info = info;
+- rd_block_stats = block_stats;
+- rd_interface_stats = interface_stats;
+- rd_prev_info = prev_info;
+- rd_prev_block_stats = prev_block_stats;
+- rd_prev_interface_stats = prev_interface_stats;
+- rd_cpu_time = 0.; rd_percent_cpu = 0.;
+- rd_mem_bytes = 0L; rd_mem_percent = 0L;
+- rd_block_rd_reqs = None; rd_block_wr_reqs = None;
+- rd_block_rd_bytes = None; rd_block_wr_bytes = None;
+- rd_net_rx_bytes = None; rd_net_tx_bytes = None;
+- })
+- with
+- Libvirt.Virterror _ -> None (* ignore transient error *)
+- ) ids in
++ (* Synthesize a D.info struct out of the data we have
++ * from virConnectGetAllDomainStats. Doing this is an
++ * artifact from the old APIs we used to use to fetch
++ * stats, we could simplify here, and also return the
++ * RSS memory. XXX
++ *)
++ let state =
++ match state with
++ | None | Some 0 -> D.InfoNoState
++ | Some 1 -> D.InfoRunning
++ | Some 2 -> D.InfoBlocked
++ | Some 3 -> D.InfoPaused
++ | Some 4 -> D.InfoShutdown
++ | Some 5 -> D.InfoShutoff
++ | Some 6 -> D.InfoCrashed
++ | Some 7 -> D.InfoPaused (* XXX really VIR_DOMAIN_PMSUSPENDED *)
++ | _ -> D.InfoNoState in
++ let memory =
++ match get_param_int64 "balloon.current" None with
++ | None -> 0_L
++ | Some m -> m in
++ let nr_virt_cpu =
++ match get_param_int "vcpu.current" None with
++ | None -> 1
++ | Some v -> v in
++ let cpu_time =
++ (* NB: libvirt does not return cpu.time for non-root domains. *)
++ match get_param_int64 "cpu.time" None with
++ | None -> 0_L
++ | Some ns -> ns in
++ let info = {
++ D.state = state;
++ max_mem = -1_L; (* not used anywhere in virt-top *)
++ memory = memory;
++ nr_virt_cpu = nr_virt_cpu;
++ cpu_time = cpu_time
++ } in
+
+- (* Inactive domains. *)
+- let doms_inactive =
+- try
+- let n = C.num_of_defined_domains conn in
+- let names =
+- if n > 0 then Array.to_list (C.list_defined_domains conn n)
+- else [] in
+- List.map (fun name -> name, Inactive) names
+- with
+- (* Ignore transient errors, in particular errors from
+- * num_of_defined_domains if it cannot contact xend.
+- *)
+- | Libvirt.Virterror _ -> [] in
++ let nr_block_devs =
++ match get_param_int "block.count" None with
++ | None -> 0
++ | Some i -> i in
++ let block_stats =
++ List.map (
++ fun i ->
++ let dev =
++ match get_param (sprintf "block.%d.name" i) with
++ | None -> sprintf "blk%d" i
++ | Some (D.TypedFieldString s) -> s
++ | _ -> assert false in
++ dev, {
++ D.rd_req =
++ (match get_param_int64 (sprintf "block.%d.rd.reqs" i) None
++ with None -> 0_L | Some v -> v);
++ rd_bytes =
++ (match get_param_int64 (sprintf "block.%d.rd.bytes" i) None
++ with None -> 0_L | Some v -> v);
++ wr_req =
++ (match get_param_int64 (sprintf "block.%d.wr.reqs" i) None
++ with None -> 0_L | Some v -> v);
++ wr_bytes =
++ (match get_param_int64 (sprintf "block.%d.wr.bytes" i) None
++ with None -> 0_L | Some v -> v);
++ errs = 0_L
++ }
++ ) (range 0 (nr_block_devs-1)) in
+
+- doms _at_ doms_inactive in
++ let nr_interface_devs =
++ match get_param_int "net.count" None with
++ | None -> 0
++ | Some i -> i in
++ let interface_stats =
++ List.map (
++ fun i ->
++ let dev =
++ match get_param (sprintf "net.%d.name" i) with
++ | None -> sprintf "net%d" i
++ | Some (D.TypedFieldString s) -> s
++ | _ -> assert false in
++ dev, {
++ D.rx_bytes =
++ (match get_param_int64 (sprintf "net.%d.rx.bytes" i) None
++ with None -> 0_L | Some v -> v);
++ rx_packets =
++ (match get_param_int64 (sprintf "net.%d.rx.pkts" i) None
++ with None -> 0_L | Some v -> v);
++ rx_errs =
++ (match get_param_int64 (sprintf "net.%d.rx.errs" i) None
++ with None -> 0_L | Some v -> v);
++ rx_drop =
++ (match get_param_int64 (sprintf "net.%d.rx.drop" i) None
++ with None -> 0_L | Some v -> v);
++ tx_bytes =
++ (match get_param_int64 (sprintf "net.%d.tx.bytes" i) None
++ with None -> 0_L | Some v -> v);
++ tx_packets =
++ (match get_param_int64 (sprintf "net.%d.tx.pkts" i) None
++ with None -> 0_L | Some v -> v);
++ tx_errs =
++ (match get_param_int64 (sprintf "net.%d.tx.errs" i) None
++ with None -> 0_L | Some v -> v);
++ tx_drop =
++ (match get_param_int64 (sprintf "net.%d.tx.drop" i) None
++ with None -> 0_L | Some v -> v);
++ }
++ ) (range 0 (nr_interface_devs-1)) in
++
++ let prev_info, prev_block_stats, prev_interface_stats =
++ try
++ let prev_info, prev_block_stats, prev_interface_stats =
++ Hashtbl.find last_info uuid in
++ Some prev_info, prev_block_stats, prev_interface_stats
++ with Not_found -> None, [], [] in
++
++ (name,
++ Active {
++ rd_domid = id; rd_domuuid = uuid; rd_dom = dom;
++ rd_info = info;
++ rd_block_stats = block_stats;
++ rd_interface_stats = interface_stats;
++ rd_prev_info = prev_info;
++ rd_prev_block_stats = prev_block_stats;
++ rd_prev_interface_stats = prev_interface_stats;
++ rd_cpu_time = 0.; rd_percent_cpu = 0.;
++ rd_mem_bytes = 0L; rd_mem_percent = 0L;
++ rd_block_rd_reqs = None; rd_block_wr_reqs = None;
++ rd_block_rd_bytes = None; rd_block_wr_bytes = None;
++ rd_net_rx_bytes = None; rd_net_tx_bytes = None;
++ })
++ )
++ ) doms in
+
+ (* Calculate the CPU time (ns) and %CPU used by each domain. *)
+ let doms =
+_at_@ -329,7 +447,7 @@ let collect (conn, _, _, _, _, node_info, _, _) =
+ function
+ | (_, Active rd) ->
+ let info = rd.rd_info, rd.rd_block_stats, rd.rd_interface_stats in
+- Hashtbl.add last_info rd.rd_domid info
++ Hashtbl.add last_info rd.rd_domuuid info
+ | _ -> ()
+ ) doms;
+
+diff --git a/src/collect.mli b/src/collect.mli
+index 9ad3dcb..3c5492f 100644
+--- a/src/collect.mli
++++ b/src/collect.mli
+_at_@ -27,6 +27,7 @@ val parse_device_xml :
+ type rd_domain = Inactive | Active of rd_active
+ and rd_active = {
+ rd_domid : int; (* Domain ID. *)
++ rd_domuuid : Libvirt.uuid; (* Domain UUID. *)
+ rd_dom : [`R] Libvirt.Domain.t; (* Domain object. *)
+ rd_info : Libvirt.Domain.info; (* Domain CPU info now. *)
+ rd_block_stats : (string * Libvirt.Domain.block_stats) list;
+diff --git a/src/utils.ml b/src/utils.ml
+index 5fcc905..4332ff7 100644
+--- a/src/utils.ml
++++ b/src/utils.ml
+@@ -32,6 +32,12 @@ let (/^) = Int64.div
+ (* failwithf is a printf-like version of failwith. *)
+ let failwithf fs = ksprintf failwith fs
+
++let rec range a b =
++ if a <= b then
++ a :: range (a+1) b
++ else
++ []
++
+ (* Input a whole file as a list of lines. *)
+ let input_all_lines chan =
+ let lines = ref [] in
+diff --git a/src/utils.mli b/src/utils.mli
+index 6e81215..3c966f8 100644
+--- a/src/utils.mli
++++ b/src/utils.mli
+_at_@ -25,6 +25,9 @@ val (//) : string -> string -> string
+ (* failwithf is a printf-like version of failwith. *)
+ val failwithf : ('a, unit, string, 'b) format4 -> 'a
+
++(* Return the list of integers [a..b] (inclusive). *)
++val range : int -> int -> int list
++
+ (* Read a configuration file as a list of (lineno, key, value) pairs.
+ * If the config file is missing this returns an empty list.
+ *)
+--
+2.9.3
+
diff --git a/testing/virt-top/0017-chmod-x-COPYING-files.patch b/testing/virt-top/0017-chmod-x-COPYING-files.patch
new file mode 100644
index 0000000000..ee5e72d6e5
--- /dev/null
+++ b/testing/virt-top/0017-chmod-x-COPYING-files.patch
_at_@ -0,0 +1,21 @@
+From 20c078bead38fd9e413660d4d8fdc3fd4f76edf7 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones_at_redhat.com>
+Date: Tue, 28 Mar 2017 14:36:07 +0100
+Subject: [PATCH 17/17] chmod -x COPYING* files.
+
+---
+ COPYING | 0
+ COPYING.LIB | 0
+ 2 files changed, 0 insertions(+), 0 deletions(-)
+ mode change 100755 => 100644 COPYING
+ mode change 100755 => 100644 COPYING.LIB
+
+diff --git a/COPYING b/COPYING
+old mode 100755
+new mode 100644
+diff --git a/COPYING.LIB b/COPYING.LIB
+old mode 100755
+new mode 100644
+--
+2.9.3
+
diff --git a/testing/virt-top/APKBUILD b/testing/virt-top/APKBUILD
new file mode 100644
index 0000000000..c92bbabe98
--- /dev/null
+++ b/testing/virt-top/APKBUILD
_at_@ -0,0 +1,78 @@
+# Contributor: Fernando Casas Schossow <casasfernando_at_outlook.com>
+# Maintainer: Fernando Casas Schossow <casasfernando_at_outlook.com>
+pkgname=virt-top
+pkgver=1.0.8
+pkgrel=0
+pkgdesc="Utility like top(1) for displaying virtualization stats"
+url="http://people.redhat.com/~rjones/virt-top/"
+arch="all"
+license="GPLv2+"
+makedepends="ocaml ocaml-ocamldoc ocaml-curses ocaml-curses-dev ocaml-extlib ocaml-extlib-dev ocaml-xml-light ocaml-xml-light-dev ocaml-csv ocaml-csv-dev ocaml-calendar ocaml-calendar-dev ocaml-libvirt ocaml-libvirt-dev ocaml-gettext ocaml-gettext-dev ocaml-fileutils ocaml-fileutils-dev ocaml-findlib-dev ocamlbuild ncurses-dev libvirt-dev perl gettext gettext-dev gawk autoconf"
+subpackages="$pkgname-lang $pkgname-doc"
+source="http://people.redhat.com/~rjones/$pkgname/files/$pkgname-$pkgver.tar.gz
+ 0001-Disable-warning-about-immutable-strings-for-OCaml-4..patch
+ 0002-Move-upstream-translations-from-Tranifex-to-Zanata.patch
+ 0003-Update-translations-from-Zanata.patch
+ 0004-build-Add-g-flag-to-ocamlopt.patch
+ 0005-Rename-source-directory-and-files.patch
+ 0006-Enable-same-warnings-as-libguestfs.patch
+ 0007-Remove-x-executable-permission-on-several-source-fil.patch
+ 0008-Refresh-HACKING-file.patch
+ 0009-Fix-po-POTFILES-for-new-location-of-source-files.patch
+ 0010-Update-PO-files.patch
+ 0011-Remove-support-for-OCaml-Calendar-v1.patch
+ 0012-src-Fix-some-comments-which-referred-to-the-old-file.patch
+ 0013-Split-up-huge-Top-module-into-smaller-modules.patch
+ 0014-Move-block_in_bytes-entirely-to-the-presentation-lay.patch
+ 0015-Remove-unused-variable-is_calendar2.patch
+ 0016-Use-virConnectGetAllDomainStats-API-to-collect-domai.patch
+ 0017-chmod-x-COPYING-files.patch"
+builddir="$srcdir/$pkgname-$pkgver"
+
+build() {
+ cd "$builddir"
+ export OCAMLPARAM="safe-string=0,_"
+ autoconf
+ ./configure --prefix=/usr
+ make all
+ make opt
+ make -C po
+ rm -f src/virt-top.1
+ make -C src virt-top.1
+}
+
+check() {
+ cd "$builddir"
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+ # Install translations.
+ mkdir -p "$pkgdir/usr/share/locale"
+ make -C po install PODIR="$pkgdir/usr/share/locale"
+ # Install virt-top manpage by hand for now.
+ mkdir -p "$pkgdir/usr/share/man/man1"
+ install -m 0644 src/virt-top.1 "$pkgdir/usr/share/man/man1"
+ install -D -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+ install -D -m644 COPYING.LIB "$pkgdir/usr/share/licenses/$pkgname/COPYING.LIB"
+}
+
+sha512sums="ec32c00b6ccbe00aa677f9faea2aed165fb37998284d358ddcadab9e84fcbe96775632edc6e5b2b4cf3b6d8e8b04b2e9d3f023cc4d53612790e42da21638d9e2 virt-top-1.0.8.tar.gz
+f381d04a2176434f94c0cfb0ffb5dd236a4a7c7bb209d8ee70b70fbcdfbb999aea3f0ddbed27b1bc48a9ff810a97e62af2d8569cae429c9ea12de01743083f83 0001-Disable-warning-about-immutable-strings-for-OCaml-4..patch
+4e507a26be606bfff6b104b94ebb0e98eff900a29d4a76b3221093c4fb9a4ff5e9f237e9f2e14e073e240976633a4385d50c01234144f67f064ca8bd4c06e434 0002-Move-upstream-translations-from-Tranifex-to-Zanata.patch
+0eb2d4319a4907f9a59c0a9221391c462892aebe4e71b6320bb48d7b2634bf9cbed8611a4ed95d5f61043e35ed0d5ca29904336cc59fca31b65c9850a76061f6 0003-Update-translations-from-Zanata.patch
+1c09d1f45dfef2e343aa3ae28fb83be1d918484dba390f3b323cb5ac6f5b45e79345e8d7cf830cad3d28a7ff70ac171325f1ac9251fe87c0f9cde13487905a05 0004-build-Add-g-flag-to-ocamlopt.patch
+4a89c06352a7ca87ef8a226db81f6925d2bf2bf16d7709971ce600f52dcb3be3bddd74cdd1fbe48709fa998f82a093dec253a35f80e5e9d40d55f486a318d7cd 0005-Rename-source-directory-and-files.patch
+0dee9f0ac43b84234aa0b3b0616590570924604bd540708e60765db743bd49ba1b454e9bb0b1d5a02c26fa2c75e34bd954477b0f0b040685c4ba1df36228c983 0006-Enable-same-warnings-as-libguestfs.patch
+06b902909a200bcb3afdd9e0d9787387cabcdd1288e70bf33619bb5e000697f93a75e9e205dafbf300c791e20aae2563ac9c23f07ef6502125124e3aa180bb67 0007-Remove-x-executable-permission-on-several-source-fil.patch
+30bdb77d8353442edac720b56dc34c7277d36365249143d382a343dea77267db2f637a609d54d46be97fb06d1481faee40dc3bf7420f3158611598979134b323 0008-Refresh-HACKING-file.patch
+1967ee3cb1929d05ee4d2b81f82ffcc75385f43186f71663b534bdf0b1f0566310adc3e54d052ea1b73808ef8944093c0b7c144ce15ee0ca2e04e8dd33374711 0009-Fix-po-POTFILES-for-new-location-of-source-files.patch
+872ff592ab8e265a30ae1e90c8b79039521844b69e91526eb39611dfc5f008a83eec7de71bdf8c77a8174d8884b49f7f66835df0b88e263ffe1f62a0ebe1981c 0010-Update-PO-files.patch
+9b254478244150e2300fb7f127d93af64124ecfc7df3481992a01f3a439f82703bcf2b7f1f3bcecb4370083a02dd0131265f949e4e9fa837895ba94f51acf21f 0011-Remove-support-for-OCaml-Calendar-v1.patch
+4e63f6275920c4ca92ec05fb13a70502a1798fcf188a3a1cbd030ec553cfe5192bb2d3d41bc3615d0ae610b0293b3ab6747e1d51d1951ced94e74afa4de5dd67 0012-src-Fix-some-comments-which-referred-to-the-old-file.patch
+0e41c61d93af9a59ab70fe0ac35f73f5d1b4e136047b8dfb972b8b6f3c1ab96552a9b136dd2cba2673d3a2e3f4446349e4283cfe68211ba4cfd3a7d831c7d64f 0013-Split-up-huge-Top-module-into-smaller-modules.patch
+c97f38e89db6edc4551c9c449d0b77b4525bf36986ee454436238f23515c7448387d132a434db916f45bb059ef3ef3c40be4cbf705657e57cad211370ee2e55a 0014-Move-block_in_bytes-entirely-to-the-presentation-lay.patch
+8656abca201c679c748a977551f69c80320addb1d99189bc9fd011316494ac18b8d91305007b6db2b3472226c80b360e4152152be91bc687ac2511b3c08a9093 0015-Remove-unused-variable-is_calendar2.patch
+147b13aafeccec2df58d7bde738102e95f2d47caa18943a0667197b74cd9d35ccbfea4f75a1ff46c185197328c3a012e3c45f4a19649c95ea61d84bd4f407ac2 0016-Use-virConnectGetAllDomainStats-API-to-collect-domai.patch
+3b25154b67ed02fd3f37fa599a857c9f63c246e42ca3af743dac9163a4d4b71df75ed71ab1bbb1824ab401233b57234a166341b5869d73df6e12c0379cabcbc1 0017-chmod-x-COPYING-files.patch"
--
2.20.1

R{.n+yh>{.n+ljZbbhijZb橢lXƥ)ޖ)Ɗ
Received on Thu Feb 07 2019 - 23:55:25 UTC