+Thu Sep 21 10:19:02 EDT 2006 Daniel Berrange <berrange@redhat.com>
+
+ * Makefile.am: Added po directory
+ * autogen.sh: Call autopoint to install the gettext infrastructure
+ * src/*.c, proxy/*.c: Pass all strings through gettext for translation.
+ Set up the text domains in libvirt, proxy & virsh at startup.
+ * libvirt.spec.in: Include compiled .po files in distro
+ * tests/virshdata/*.txt: Tweak expected data to take account of
+ some text changes.
+
Thu Sep 21 10:19:02 EDT 2006 Daniel Berrange <berrange@redhat.com>
* docs/*.html: re-generated documentation to pull in latest
## Process this file with automake to produce Makefile.in
-SUBDIRS = src include docs @PYTHON_SUBDIR@ tests proxy
+SUBDIRS = src include docs @PYTHON_SUBDIR@ tests proxy po
+
+ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = libvirt.spec.in libvirt.spec COPYING.LIB \
libvirt.pc.in libvirt.pc TODO AUTHORS ChangeLog \
cd $srcdir
DIE=0
+(autopoint --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "You must have autopoint installed to compile libvirt."
+ echo "Download the appropriate package for your distribution,"
+ echo "or see http://www.gnu.org/software/gettext"
+ DIE=1
+}
+
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have autoconf installed to compile libvirt."
echo "to pass any to it, please specify them on the $0 command line."
fi
+autopoint --force
+#rm -rf m4
libtoolize --copy --force
aclocal $ACLOCAL_FLAGS
automake --add-missing
/* config.h.in. Generated from configure.in by autoheader. */
+/* Define to 1 if translation of program messages to the user's native
+ language is requested. */
+#undef ENABLE_NLS
+
+/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
+ CoreFoundation framework. */
+#undef HAVE_CFLOCALECOPYCURRENT
+
+/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
+ the CoreFoundation framework. */
+#undef HAVE_CFPREFERENCESCOPYAPPVALUE
+
+/* Define if the GNU dcgettext() function is already present or preinstalled.
+ */
+#undef HAVE_DCGETTEXT
+
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
+/* Define if the GNU gettext() function is already present or preinstalled. */
+#undef HAVE_GETTEXT
+
+/* Define if you have the iconv() function. */
+#undef HAVE_ICONV
+
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
AC_SUBST(PYTHON_INCLUDES)
AC_SUBST(PYTHON_SITE_PACKAGES)
+AM_GNU_GETTEXT_VERSION([0.14.1])
+AM_GNU_GETTEXT([external])
+ALL_LINGUAS=en_GB
+
# very annoying
rm -f COPYING
cp COPYING.LIB COPYING
docs/examples/Makefile docs/devhelp/Makefile \
docs/examples/python/Makefile \
libvirt.pc libvirt.spec \
+ po/Makefile.in \
include/libvirt/Makefile include/libvirt/libvirt.h \
python/Makefile python/tests/Makefile \
tests/Makefile proxy/Makefile \
+# -*- rpm-spec -*-
+
Summary: Library providing an API to use the Xen virtualization
Name: libvirt
Version: @VERSION@
Group: Development/Libraries
Source: libvirt-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-root
-URL: http://libvir.org/
+URL: http://libvirt.org/
BuildRequires: python python-devel
Requires: xen
Requires: libxml2
BuildRequires: libxml2-devel
BuildRequires: readline-devel
BuildRequires: ncurses-devel
+BuildRequires: gettext
Obsoletes: libvir
ExclusiveArch: i386 x86_64 ia64
rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.a
+%find_lang %{name}
%clean
rm -fr %{buildroot}
%postun
/sbin/ldconfig
-%files
+%files -f %{name}.lang
%defattr(-, root, root)
%doc AUTHORS ChangeLog NEWS README COPYING.LIB TODO
--- /dev/null
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
+# package. (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.) Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright. The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+# in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+# understood.
+# - Strings which make invalid assumptions about notation of date, time or
+# money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS =
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used. It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
--- /dev/null
+src/libvirt.c
+src/virterror.c
+src/xmlrpc.c
+src/hash.c
+src/test.c
+src/xml.c
+src/sexpr.c
+src/xend_internal.c
+src/virsh.c
+src/conf.c
+src/xs_internal.c
+src/proxy_internal.c
+src/xen_internal.c
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the libvirt package.
+# Daniel Berrange <berrange@redhat.com>, 2006.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: libvirt\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-20 10:20-0400\n"
+"PO-Revision-Date: 2006-09-20 10:20-0400\n"
+"Last-Translator: Daniel Berrange <berrange@redhat.com>\n"
+"Language-Team: English <en@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/libvirt.c:243 src/libvirt.c:307 src/hash.c:531
+msgid "allocating connection"
+msgstr ""
+
+#: src/libvirt.c:323
+msgid "Xen Daemon or Xen Store"
+msgstr ""
+
+#: src/virterror.c:243
+msgid "warning"
+msgstr ""
+
+#: src/virterror.c:246
+msgid "error"
+msgstr ""
+
+#: src/virterror.c:328
+msgid "No error message provided"
+msgstr ""
+
+#: src/virterror.c:382
+#, c-format
+msgid "internal error %s"
+msgstr ""
+
+#: src/virterror.c:384
+msgid "internal error"
+msgstr ""
+
+#: src/virterror.c:387
+msgid "out of memory"
+msgstr ""
+
+#: src/virterror.c:391
+msgid "no support for hypervisor"
+msgstr ""
+
+#: src/virterror.c:393
+#, c-format
+msgid "no support for hypervisor %s"
+msgstr ""
+
+#: src/virterror.c:397
+msgid "could not connect to hypervisor"
+msgstr ""
+
+#: src/virterror.c:399
+#, c-format
+msgid "could not connect to %s"
+msgstr ""
+
+#: src/virterror.c:403
+msgid "invalid connection pointer in"
+msgstr ""
+
+#: src/virterror.c:405
+#, c-format
+msgid "invalid connection pointer in %s"
+msgstr ""
+
+#: src/virterror.c:409
+msgid "invalid domain pointer in"
+msgstr ""
+
+#: src/virterror.c:411
+#, c-format
+msgid "invalid domain pointer in %s"
+msgstr ""
+
+#: src/virterror.c:415
+msgid "invalid argument in"
+msgstr ""
+
+#: src/virterror.c:417
+#, c-format
+msgid "invalid argument in %s"
+msgstr ""
+
+#: src/virterror.c:421
+#, c-format
+msgid "operation failed: %s"
+msgstr ""
+
+#: src/virterror.c:423
+msgid "operation failed"
+msgstr ""
+
+#: src/virterror.c:427
+#, c-format
+msgid "GET operation failed: %s"
+msgstr ""
+
+#: src/virterror.c:429
+msgid "GET operation failed"
+msgstr ""
+
+#: src/virterror.c:433
+#, c-format
+msgid "POST operation failed: %s"
+msgstr ""
+
+#: src/virterror.c:435
+msgid "POST operation failed"
+msgstr ""
+
+#: src/virterror.c:438
+#, c-format
+msgid "got unknown HTTP error code %d"
+msgstr ""
+
+#: src/virterror.c:442
+#, c-format
+msgid "unknown host %s"
+msgstr ""
+
+#: src/virterror.c:444
+msgid "unknown host"
+msgstr ""
+
+#: src/virterror.c:448
+#, c-format
+msgid "failed to serialize S-Expr: %s"
+msgstr ""
+
+#: src/virterror.c:450
+msgid "failed to serialize S-Expr"
+msgstr ""
+
+#: src/virterror.c:454
+msgid "could not use Xen hypervisor entry"
+msgstr ""
+
+#: src/virterror.c:456
+#, c-format
+msgid "could not use Xen hypervisor entry %s"
+msgstr ""
+
+#: src/virterror.c:460
+msgid "could not connect to Xen Store"
+msgstr ""
+
+#: src/virterror.c:462
+#, c-format
+msgid "could not connect to Xen Store %s"
+msgstr ""
+
+#: src/virterror.c:465
+#, c-format
+msgid "failed Xen syscall %s %d"
+msgstr ""
+
+#: src/virterror.c:469
+msgid "unknown OS type"
+msgstr ""
+
+#: src/virterror.c:471
+#, c-format
+msgid "unknown OS type %s"
+msgstr ""
+
+#: src/virterror.c:474
+msgid "missing kernel information"
+msgstr ""
+
+#: src/virterror.c:478
+msgid "missing root device information"
+msgstr ""
+
+#: src/virterror.c:480
+#, c-format
+msgid "missing root device information in %s"
+msgstr ""
+
+#: src/virterror.c:484
+msgid "missing source information for device"
+msgstr ""
+
+#: src/virterror.c:486
+#, c-format
+msgid "missing source information for device %s"
+msgstr ""
+
+#: src/virterror.c:490
+msgid "missing target information for device"
+msgstr ""
+
+#: src/virterror.c:492
+#, c-format
+msgid "missing target information for device %s"
+msgstr ""
+
+#: src/virterror.c:496
+msgid "missing domain name information"
+msgstr ""
+
+#: src/virterror.c:498
+#, c-format
+msgid "missing domain name information in %s"
+msgstr ""
+
+#: src/virterror.c:502
+msgid "missing operating system information"
+msgstr ""
+
+#: src/virterror.c:504
+#, c-format
+msgid "missing operating system information for %s"
+msgstr ""
+
+#: src/virterror.c:508
+msgid "missing devices information"
+msgstr ""
+
+#: src/virterror.c:510
+#, c-format
+msgid "missing devices information for %s"
+msgstr ""
+
+#: src/virterror.c:514
+msgid "too many drivers registered"
+msgstr ""
+
+#: src/virterror.c:516
+#, c-format
+msgid "too many drivers registered in %s"
+msgstr ""
+
+#: src/virterror.c:520
+msgid "library call failed, possibly not supported"
+msgstr ""
+
+#: src/virterror.c:522
+#, c-format
+msgid "library call %s failed, possibly not supported"
+msgstr ""
+
+#: src/virterror.c:526
+msgid "XML description not well formed or invalid"
+msgstr ""
+
+#: src/virterror.c:528
+#, c-format
+msgid "XML description for %s is not well formed or invalid"
+msgstr ""
+
+#: src/virterror.c:532
+msgid "this domain exists already"
+msgstr ""
+
+#: src/virterror.c:534
+#, c-format
+msgid "domain %s exists already"
+msgstr ""
+
+#: src/virterror.c:538
+msgid "operation forbidden for read only access"
+msgstr ""
+
+#: src/virterror.c:540
+#, c-format
+msgid "operation %s forbidden for read only access"
+msgstr ""
+
+#: src/virterror.c:544
+msgid "failed to open configuration file for reading"
+msgstr ""
+
+#: src/virterror.c:546
+#, c-format
+msgid "failed to open %s for reading"
+msgstr ""
+
+#: src/virterror.c:550
+msgid "failed to read configuration file"
+msgstr ""
+
+#: src/virterror.c:552
+#, c-format
+msgid "failed to read configuration file %s"
+msgstr ""
+
+#: src/virterror.c:556
+msgid "failed to parse configuration file"
+msgstr ""
+
+#: src/virterror.c:558
+#, c-format
+msgid "failed to parse configuration file %s"
+msgstr ""
+
+#: src/virterror.c:562
+msgid "configuration file syntax error"
+msgstr ""
+
+#: src/virterror.c:564
+#, c-format
+msgid "configuration file syntax error: %s"
+msgstr ""
+
+#: src/virterror.c:568
+msgid "failed to write configuration file"
+msgstr ""
+
+#: src/virterror.c:570
+#, c-format
+msgid "failed to write configuration file: %s"
+msgstr ""
+
+#: src/xmlrpc.c:63
+msgid "copying node content"
+msgstr ""
+
+#: src/xmlrpc.c:163
+msgid "allocate value array"
+msgstr ""
+
+#: src/xmlrpc.c:196
+msgid "unexpected dict node"
+msgstr ""
+
+#: src/xmlrpc.c:268
+msgid "unexpected value node"
+msgstr ""
+
+#: src/xmlrpc.c:431
+msgid "send request"
+msgstr ""
+
+#: src/xmlrpc.c:437
+msgid "unexpected mime type"
+msgstr ""
+
+#: src/xmlrpc.c:444
+msgid "allocate response"
+msgstr ""
+
+#: src/xmlrpc.c:452 src/xmlrpc.c:514
+msgid "read response"
+msgstr ""
+
+#: src/xmlrpc.c:484
+msgid "allocate string array"
+msgstr ""
+
+#: src/xmlrpc.c:606
+msgid "parse server response failed"
+msgstr ""
+
+#: src/xmlrpc.c:670
+msgid "allocate new context"
+msgstr ""
+
+#: src/hash.c:628 src/hash.c:634 src/test.c:725 src/test.c:750 src/test.c:773
+#: src/test.c:797 src/xend_internal.c:1864 src/xend_internal.c:2563
+#: src/xend_internal.c:2771 src/xs_internal.c:592 src/proxy_internal.c:790
+#: src/proxy_internal.c:837 src/proxy_internal.c:888
+msgid "allocating domain"
+msgstr ""
+
+#: src/hash.c:645
+msgid "failed to add domain to connection hash table"
+msgstr ""
+
+#: src/hash.c:697
+msgid "domain missing from connection hash table"
+msgstr ""
+
+#: src/test.c:200 src/test.c:379 src/test.c:895 src/test.c:923 src/test.c:950
+msgid "getting time of day"
+msgstr ""
+
+#: src/test.c:206 src/test.c:334 src/test.c:359
+msgid "domain"
+msgstr ""
+
+#: src/test.c:212 src/test.c:455
+msgid "creating xpath context"
+msgstr ""
+
+#: src/test.c:219
+msgid "domain name"
+msgstr ""
+
+#: src/test.c:228 src/test.c:233
+msgid "domain uuid"
+msgstr ""
+
+#: src/test.c:241 src/test.c:246
+msgid "domain memory"
+msgstr ""
+
+#: src/test.c:258
+msgid "domain vcpus"
+msgstr ""
+
+#: src/test.c:269
+msgid "domain reboot behaviour"
+msgstr ""
+
+#: src/test.c:280
+msgid "domain poweroff behaviour"
+msgstr ""
+
+#: src/test.c:291
+msgid "domain crash behaviour"
+msgstr ""
+
+#: src/test.c:352
+msgid "load domain definition file"
+msgstr ""
+
+#: src/test.c:434
+msgid "loading host definition file"
+msgstr ""
+
+#: src/test.c:441
+msgid "host"
+msgstr ""
+
+#: src/test.c:449
+msgid "node"
+msgstr ""
+
+#: src/test.c:471
+msgid "node cpu numa nodes"
+msgstr ""
+
+#: src/test.c:483
+msgid "node cpu sockets"
+msgstr ""
+
+#: src/test.c:495
+msgid "node cpu cores"
+msgstr ""
+
+#: src/test.c:507
+msgid "node cpu threads"
+msgstr ""
+
+#: src/test.c:519
+msgid "node active cpu"
+msgstr ""
+
+#: src/test.c:533
+msgid "node cpu mhz"
+msgstr ""
+
+#: src/test.c:552
+msgid "node memory"
+msgstr ""
+
+#: src/test.c:561
+msgid "node domain list"
+msgstr ""
+
+#: src/test.c:570
+msgid "resolving domain filename"
+msgstr ""
+
+#: src/test.c:608
+msgid "allocating node"
+msgstr ""
+
+#: src/test.c:648
+msgid "too many connections"
+msgstr ""
+
+#: src/test.c:733
+msgid "too many domains"
+msgstr ""
+
+#: src/xml.c:64
+msgid "growing buffer"
+msgstr ""
+
+#: src/xml.c:116
+msgid "allocate new buffer"
+msgstr ""
+
+#: src/xml.c:120
+msgid "allocate buffer content"
+msgstr ""
+
+#: src/sexpr.c:59
+msgid "failed to allocate a node"
+msgstr ""
+
+#: src/sexpr.c:352 src/sexpr.c:367
+msgid "failed to copy a string"
+msgstr ""
+
+#: src/xend_internal.c:264 src/xend_internal.c:267
+msgid "failed to read from Xen Daemon"
+msgstr ""
+
+#: src/xend_internal.c:1056
+msgid "failed to urlencode the create S-Expr"
+msgstr ""
+
+#: src/xend_internal.c:1097
+msgid "domain information incomplete, missing domid"
+msgstr ""
+
+#: src/xend_internal.c:1103
+msgid "domain information incorrect domid not numeric"
+msgstr ""
+
+#: src/xend_internal.c:1110 src/xend_internal.c:1159
+msgid "domain information incomplete, missing uuid"
+msgstr ""
+
+#: src/xend_internal.c:1150 src/xend_internal.c:1491
+msgid "domain information incomplete, missing name"
+msgstr ""
+
+#: src/xend_internal.c:1408 src/xend_internal.c:1433
+msgid "domain information incomplete, missing kernel"
+msgstr ""
+
+#: src/xend_internal.c:1564 src/xend_internal.c:1601
+msgid "domain information incomplete, vbd has no dev"
+msgstr ""
+
+#: src/xend_internal.c:1875
+msgid "failed to parse Xend domain information"
+msgstr ""
+
+#: src/xend_internal.c:2834
+#, c-format
+msgid "Failed to create domain %s\n"
+msgstr ""
+
+#: src/xend_internal.c:2840
+#, c-format
+msgid "Failed to get devices for domain %s\n"
+msgstr ""
+
+#: src/xend_internal.c:2851
+#, c-format
+msgid "Failed to resume new domain %s\n"
+msgstr ""
+
+#: src/virsh.c:233
+msgid "print help"
+msgstr ""
+
+#: src/virsh.c:234
+msgid "Prints global help or command specific help."
+msgstr ""
+
+#: src/virsh.c:252
+msgid ""
+"Commands:\n"
+"\n"
+msgstr ""
+
+#: src/virsh.c:266
+msgid "(re)connect to hypervisor"
+msgstr ""
+
+#: src/virsh.c:268
+msgid ""
+"Connect to local hypervisor. This is built-in command after shell start up."
+msgstr ""
+
+#: src/virsh.c:273
+msgid "hypervisor connection URI"
+msgstr ""
+
+#: src/virsh.c:274
+msgid "read-only connection"
+msgstr ""
+
+#: src/virsh.c:286
+msgid "Failed to disconnect from the hypervisor"
+msgstr ""
+
+#: src/virsh.c:302
+msgid "Failed to connect to the hypervisor"
+msgstr ""
+
+#: src/virsh.c:312
+msgid "list domains"
+msgstr ""
+
+#: src/virsh.c:313
+msgid "Returns list of domains."
+msgstr ""
+
+#: src/virsh.c:318
+msgid "list inactive domains"
+msgstr ""
+
+#: src/virsh.c:319
+msgid "list inactive & active domains"
+msgstr ""
+
+#: src/virsh.c:357 src/virsh.c:364
+msgid "Failed to list active domains"
+msgstr ""
+
+#: src/virsh.c:375 src/virsh.c:384
+msgid "Failed to list inactive domains"
+msgstr ""
+
+#: src/virsh.c:394
+msgid "Id"
+msgstr ""
+
+#: src/virsh.c:394
+msgid "Name"
+msgstr ""
+
+#: src/virsh.c:394
+msgid "State"
+msgstr ""
+
+#: src/virsh.c:411 src/virsh.c:2190 src/virsh.c:2206
+msgid "no state"
+msgstr ""
+
+#: src/virsh.c:454
+msgid "domain state"
+msgstr ""
+
+#: src/virsh.c:455
+msgid "Returns state about a running domain."
+msgstr ""
+
+#: src/virsh.c:460 src/virsh.c:498 src/virsh.c:735 src/virsh.c:817
+#: src/virsh.c:856 src/virsh.c:895 src/virsh.c:934 src/virsh.c:973
+#: src/virsh.c:1045 src/virsh.c:1128 src/virsh.c:1214 src/virsh.c:1257
+#: src/virsh.c:1300 src/virsh.c:1377
+msgid "domain name, id or uuid"
+msgstr ""
+
+#: src/virsh.c:492
+msgid "suspend a domain"
+msgstr ""
+
+#: src/virsh.c:493
+msgid "Suspend a running domain."
+msgstr ""
+
+#: src/virsh.c:516
+#, c-format
+msgid "Domain %s suspended\n"
+msgstr ""
+
+#: src/virsh.c:518
+#, c-format
+msgid "Failed to suspend domain %s"
+msgstr ""
+
+#: src/virsh.c:531
+msgid "create a domain from an XML file"
+msgstr ""
+
+#: src/virsh.c:532
+msgid "Create a domain."
+msgstr ""
+
+#: src/virsh.c:537 src/virsh.c:592
+msgid "file conatining an XML domain description"
+msgstr ""
+
+#: src/virsh.c:560 src/virsh.c:565 src/virsh.c:615 src/virsh.c:620
+#, c-format
+msgid "Failed to read description file %s"
+msgstr ""
+
+#: src/virsh.c:572
+#, c-format
+msgid "Domain %s created from %s\n"
+msgstr ""
+
+#: src/virsh.c:575
+#, c-format
+msgid "Failed to create domain from %s"
+msgstr ""
+
+#: src/virsh.c:586
+msgid "define (but don't start) a domain from an XML file"
+msgstr ""
+
+#: src/virsh.c:587
+msgid "Define a domain."
+msgstr ""
+
+#: src/virsh.c:627
+#, c-format
+msgid "Domain %s defined from %s\n"
+msgstr ""
+
+#: src/virsh.c:630
+#, c-format
+msgid "Failed to define domain from %s"
+msgstr ""
+
+#: src/virsh.c:641
+msgid "undefine an inactive domain"
+msgstr ""
+
+#: src/virsh.c:642
+msgid "Undefine the configuration for an inactive domain."
+msgstr ""
+
+#: src/virsh.c:647 src/virsh.c:1446
+msgid "domain name or uuid"
+msgstr ""
+
+#: src/virsh.c:665
+#, c-format
+msgid "Domain %s has been undefined\n"
+msgstr ""
+
+#: src/virsh.c:667
+#, c-format
+msgid "Failed to undefine domain %s"
+msgstr ""
+
+#: src/virsh.c:680
+msgid "start a (previously defined) inactive domain"
+msgstr ""
+
+#: src/virsh.c:681
+msgid "Start a domain."
+msgstr ""
+
+#: src/virsh.c:686
+msgid "name of the inactive domain"
+msgstr ""
+
+#: src/virsh.c:710
+msgid "Domain is already active"
+msgstr ""
+
+#: src/virsh.c:715
+#, c-format
+msgid "Domain %s started\n"
+msgstr ""
+
+#: src/virsh.c:718
+#, c-format
+msgid "Failed to start domain %s"
+msgstr ""
+
+#: src/virsh.c:729
+msgid "save a domain state to a file"
+msgstr ""
+
+#: src/virsh.c:730
+msgid "Save a running domain."
+msgstr ""
+
+#: src/virsh.c:736
+msgid "where to save the data"
+msgstr ""
+
+#: src/virsh.c:758
+#, c-format
+msgid "Domain %s saved to %s\n"
+msgstr ""
+
+#: src/virsh.c:760
+#, c-format
+msgid "Failed to save domain %s to %s"
+msgstr ""
+
+#: src/virsh.c:773
+msgid "restore a domain from a saved state in a file"
+msgstr ""
+
+#: src/virsh.c:774
+msgid "Restore a domain."
+msgstr ""
+
+#: src/virsh.c:779
+msgid "the state to restore"
+msgstr ""
+
+#: src/virsh.c:798
+#, c-format
+msgid "Domain restored from %s\n"
+msgstr ""
+
+#: src/virsh.c:800
+#, c-format
+msgid "Failed to restore domain from %s"
+msgstr ""
+
+#: src/virsh.c:811
+msgid "resume a domain"
+msgstr ""
+
+#: src/virsh.c:812
+msgid "Resume a previously suspended domain."
+msgstr ""
+
+#: src/virsh.c:835
+#, c-format
+msgid "Domain %s resumed\n"
+msgstr ""
+
+#: src/virsh.c:837
+#, c-format
+msgid "Failed to resume domain %s"
+msgstr ""
+
+#: src/virsh.c:850
+msgid "gracefully shutdown a domain"
+msgstr ""
+
+#: src/virsh.c:851
+msgid "Run shutdown in the target domain."
+msgstr ""
+
+#: src/virsh.c:874
+#, c-format
+msgid "Domain %s is being shutdown\n"
+msgstr ""
+
+#: src/virsh.c:876
+#, c-format
+msgid "Failed to shutdown domain %s"
+msgstr ""
+
+#: src/virsh.c:889
+msgid "reboot a domain"
+msgstr ""
+
+#: src/virsh.c:890
+msgid "Run a reboot command in the target domain."
+msgstr ""
+
+#: src/virsh.c:913
+#, c-format
+msgid "Domain %s is being rebooted\n"
+msgstr ""
+
+#: src/virsh.c:915
+#, c-format
+msgid "Failed to reboot domain %s"
+msgstr ""
+
+#: src/virsh.c:928
+msgid "destroy a domain"
+msgstr ""
+
+#: src/virsh.c:929
+msgid "Destroy a given domain."
+msgstr ""
+
+#: src/virsh.c:952
+#, c-format
+msgid "Domain %s destroyed\n"
+msgstr ""
+
+#: src/virsh.c:954
+#, c-format
+msgid "Failed to destroy domain %s"
+msgstr ""
+
+#: src/virsh.c:967
+msgid "domain information"
+msgstr ""
+
+#: src/virsh.c:968
+msgid "Returns basic information about the domain."
+msgstr ""
+
+#: src/virsh.c:994 src/virsh.c:996
+msgid "Id:"
+msgstr ""
+
+#: src/virsh.c:997
+msgid "Name:"
+msgstr ""
+
+#: src/virsh.c:1000
+msgid "UUID:"
+msgstr ""
+
+#: src/virsh.c:1003
+msgid "OS Type:"
+msgstr ""
+
+#: src/virsh.c:1008 src/virsh.c:1089
+msgid "State:"
+msgstr ""
+
+#: src/virsh.c:1011 src/virsh.c:1355
+msgid "CPU(s):"
+msgstr ""
+
+#: src/virsh.c:1018 src/virsh.c:1096
+msgid "CPU time:"
+msgstr ""
+
+#: src/virsh.c:1021
+msgid "Max memory:"
+msgstr ""
+
+#: src/virsh.c:1023
+msgid "Used memory:"
+msgstr ""
+
+#: src/virsh.c:1039
+msgid "domain vcpu information"
+msgstr ""
+
+#: src/virsh.c:1040
+msgid "Returns basic information about the domain virtual CPUs."
+msgstr ""
+
+#: src/virsh.c:1087
+msgid "VCPU:"
+msgstr ""
+
+#: src/virsh.c:1088
+msgid "CPU:"
+msgstr ""
+
+#: src/virsh.c:1098
+msgid "CPU Affinity:"
+msgstr ""
+
+#: src/virsh.c:1122
+msgid "control domain vcpu affinity"
+msgstr ""
+
+#: src/virsh.c:1123
+msgid "Pin domain VCPUs to host physical CPUs."
+msgstr ""
+
+#: src/virsh.c:1129
+msgid "vcpu number"
+msgstr ""
+
+#: src/virsh.c:1130
+msgid "host cpu number(s) (comma separated)"
+msgstr ""
+
+#: src/virsh.c:1208
+msgid "change number of virtual CPUs"
+msgstr ""
+
+#: src/virsh.c:1209
+msgid "Change the number of virtual CPUs active in the guest domain."
+msgstr ""
+
+#: src/virsh.c:1215
+msgid "number of virtual CPUs"
+msgstr ""
+
+#: src/virsh.c:1251
+msgid "change memory allocation"
+msgstr ""
+
+#: src/virsh.c:1252
+msgid "Change the current memory allocation in the guest domain."
+msgstr ""
+
+#: src/virsh.c:1258
+msgid "number of bytes of memory"
+msgstr ""
+
+#: src/virsh.c:1294
+msgid "change maximum memory limit"
+msgstr ""
+
+#: src/virsh.c:1295
+msgid "Change the maximum memory allocation limit in the guest domain."
+msgstr ""
+
+#: src/virsh.c:1301
+msgid "maxmimum memory limit in bytes"
+msgstr ""
+
+#: src/virsh.c:1337
+msgid "node information"
+msgstr ""
+
+#: src/virsh.c:1338
+msgid "Returns basic information about the node."
+msgstr ""
+
+#: src/virsh.c:1351
+msgid "failed to get node information"
+msgstr ""
+
+#: src/virsh.c:1354
+msgid "CPU model:"
+msgstr ""
+
+#: src/virsh.c:1356
+msgid "CPU frequency:"
+msgstr ""
+
+#: src/virsh.c:1357
+msgid "CPU socket(s):"
+msgstr ""
+
+#: src/virsh.c:1358
+msgid "Core(s) per socket:"
+msgstr ""
+
+#: src/virsh.c:1359
+msgid "Thread(s) per core:"
+msgstr ""
+
+#: src/virsh.c:1360
+msgid "NUMA cell(s):"
+msgstr ""
+
+#: src/virsh.c:1361
+msgid "Memory size:"
+msgstr ""
+
+#: src/virsh.c:1371
+msgid "domain information in XML"
+msgstr ""
+
+#: src/virsh.c:1372
+msgid "Ouput the domain information as an XML dump to stdout."
+msgstr ""
+
+#: src/virsh.c:1411
+msgid "convert a domain id or UUID to domain name"
+msgstr ""
+
+#: src/virsh.c:1416
+msgid "domain id or uuid"
+msgstr ""
+
+#: src/virsh.c:1441
+msgid "convert a domain name or UUID to domain id"
+msgstr ""
+
+#: src/virsh.c:1476
+msgid "convert a domain name or id to domain UUID"
+msgstr ""
+
+#: src/virsh.c:1481
+msgid "domain id or name"
+msgstr ""
+
+#: src/virsh.c:1500
+msgid "failed to get domain UUID"
+msgstr ""
+
+#: src/virsh.c:1511
+msgid "show version"
+msgstr ""
+
+#: src/virsh.c:1512
+msgid "Display the system version information."
+msgstr ""
+
+#: src/virsh.c:1535
+msgid "failed to get hypervisor type"
+msgstr ""
+
+#: src/virsh.c:1544
+#, c-format
+msgid "Compiled against library: libvir %d.%d.%d\n"
+msgstr ""
+
+#: src/virsh.c:1549
+msgid "failed to get the library version"
+msgstr ""
+
+#: src/virsh.c:1556
+#, c-format
+msgid "Using library: libvir %d.%d.%d\n"
+msgstr ""
+
+#: src/virsh.c:1563
+#, c-format
+msgid "Using API: %s %d.%d.%d\n"
+msgstr ""
+
+#: src/virsh.c:1568
+msgid "failed to get the hypervisor version"
+msgstr ""
+
+#: src/virsh.c:1573
+#, c-format
+msgid "Cannot extract running %s hypervisor version\n"
+msgstr ""
+
+#: src/virsh.c:1580
+#, c-format
+msgid "Running hypervisor: %s %d.%d.%d\n"
+msgstr ""
+
+#: src/virsh.c:1591
+msgid "quit this interactive terminal"
+msgstr ""
+
+#: src/virsh.c:1703
+#, c-format
+msgid "command '%s' requires <%s> option"
+msgstr ""
+
+#: src/virsh.c:1704
+#, c-format
+msgid "command '%s' requires --%s option"
+msgstr ""
+
+#: src/virsh.c:1731
+#, c-format
+msgid "command '%s' doesn't exist"
+msgstr ""
+
+#: src/virsh.c:1739
+msgid " NAME\n"
+msgstr ""
+
+#: src/virsh.c:1750
+msgid ""
+"\n"
+" DESCRIPTION\n"
+msgstr ""
+
+#: src/virsh.c:1754
+msgid ""
+"\n"
+" OPTIONS\n"
+msgstr ""
+
+#: src/virsh.c:1761
+#, c-format
+msgid "--%s <number>"
+msgstr ""
+
+#: src/virsh.c:1763
+#, c-format
+msgid "--%s <string>"
+msgstr ""
+
+#: src/virsh.c:1876
+msgid "undefined domain name or id"
+msgstr ""
+
+#: src/virsh.c:1909
+#, c-format
+msgid "failed to get domain '%s'"
+msgstr ""
+
+#: src/virsh.c:1937
+#, c-format
+msgid ""
+"\n"
+"(Time: %.3f ms)\n"
+"\n"
+msgstr ""
+
+#: src/virsh.c:2011
+msgid "missing \""
+msgstr ""
+
+#: src/virsh.c:2072
+#, c-format
+msgid "unexpected token (command name): '%s'"
+msgstr ""
+
+#: src/virsh.c:2077
+#, c-format
+msgid "unknown command: '%s'"
+msgstr ""
+
+#: src/virsh.c:2084
+#, c-format
+msgid "command '%s' doesn't support option --%s"
+msgstr ""
+
+#: src/virsh.c:2099
+#, c-format
+msgid "expected syntax: --%s <%s>"
+msgstr ""
+
+#: src/virsh.c:2102
+msgid "number"
+msgstr ""
+
+#: src/virsh.c:2102
+msgid "string"
+msgstr ""
+
+#: src/virsh.c:2108
+#, c-format
+msgid "unexpected data '%s'"
+msgstr ""
+
+#: src/virsh.c:2130
+msgid "OPTION"
+msgstr ""
+
+#: src/virsh.c:2130
+msgid "DATA"
+msgstr ""
+
+#: src/virsh.c:2178 src/virsh.c:2204
+msgid "running"
+msgstr ""
+
+#: src/virsh.c:2180 src/virsh.c:2202
+msgid "blocked"
+msgstr ""
+
+#: src/virsh.c:2182
+msgid "paused"
+msgstr ""
+
+#: src/virsh.c:2184
+msgid "in shutdown"
+msgstr ""
+
+#: src/virsh.c:2186
+msgid "shut off"
+msgstr ""
+
+#: src/virsh.c:2188
+msgid "crashed"
+msgstr ""
+
+#: src/virsh.c:2200
+msgid "offline"
+msgstr ""
+
+#: src/virsh.c:2219
+msgid "no valid connection"
+msgstr ""
+
+#: src/virsh.c:2258
+#, c-format
+msgid "%s: error: "
+msgstr ""
+
+#: src/virsh.c:2260
+msgid "error: "
+msgstr ""
+
+#: src/virsh.c:2282 src/virsh.c:2294 src/virsh.c:2306
+#, c-format
+msgid "%s: %d: failed to allocate %d bytes"
+msgstr ""
+
+#: src/virsh.c:2334
+msgid "failed to connect to the hypervisor"
+msgstr ""
+
+#: src/virsh.c:2479
+#, c-format
+msgid ""
+"\n"
+"%s [options] [commands]\n"
+"\n"
+" options:\n"
+" -c | --connect <uri> hypervisor connection URI\n"
+" -d | --debug <num> debug level [0-5]\n"
+" -h | --help this help\n"
+" -q | --quiet quiet mode\n"
+" -t | --timing print timing information\n"
+" -v | --version program version\n"
+"\n"
+" commands (non interactive mode):\n"
+msgstr ""
+
+#: src/virsh.c:2495
+#, c-format
+msgid ""
+"\n"
+" (specify --help <command> for details about the command)\n"
+"\n"
+msgstr ""
+
+#: src/virsh.c:2581
+#, c-format
+msgid "unsupported option '-%c'. See --help."
+msgstr ""
+
+#: src/virsh.c:2662
+#, c-format
+msgid ""
+"Welcome to %s, the virtualization interactive terminal.\n"
+"\n"
+msgstr ""
+
+#: src/virsh.c:2665
+msgid ""
+"Type: 'help' for help with commands\n"
+" 'quit' to quit\n"
+"\n"
+msgstr ""
+
+#: src/conf.c:162 src/conf.c:196 src/conf.c:479 src/conf.c:518 src/conf.c:546
+#: src/conf.c:624
+msgid "allocating configuration"
+msgstr ""
+
+#: src/conf.c:331
+msgid "unterminated number"
+msgstr ""
+
+#: src/conf.c:363 src/conf.c:380 src/conf.c:392
+msgid "unterminated string"
+msgstr ""
+
+#: src/conf.c:420 src/conf.c:473
+msgid "expecting a value"
+msgstr ""
+
+#: src/conf.c:440
+msgid "expecting a separator in list"
+msgstr ""
+
+#: src/conf.c:463
+msgid "list is not closed with ] "
+msgstr ""
+
+#: src/conf.c:511
+msgid "expecting a name"
+msgstr ""
+
+#: src/conf.c:574
+msgid "expecting a separator"
+msgstr ""
+
+#: src/conf.c:606
+msgid "expecting an assignment"
+msgstr ""
+
+#: src/conf.c:819
+msgid "failed to open file"
+msgstr ""
+
+#: src/conf.c:827
+msgid "failed to save content"
+msgstr ""
+
+#: src/xs_internal.c:318
+msgid "failed to connect to Xen Store"
+msgstr ""
+
+#: src/proxy_internal.c:193
+#, c-format
+msgid "failed to exec %s\n"
+msgstr ""
+
+#: src/proxy_internal.c:287
+#, c-format
+msgid "Failed to close socket %d\n"
+msgstr ""
+
+#: src/proxy_internal.c:320
+#, c-format
+msgid "Failed to read socket %d\n"
+msgstr ""
+
+#: src/proxy_internal.c:354
+#, c-format
+msgid "Failed to write to socket %d\n"
+msgstr ""
+
+#: src/proxy_internal.c:416 src/proxy_internal.c:437 src/proxy_internal.c:457
+#, c-format
+msgid "Communication error with proxy: got %d bytes of %d\n"
+msgstr ""
+
+#: src/proxy_internal.c:424
+#, c-format
+msgid "Communication error with proxy: expected %d bytes got %d\n"
+msgstr ""
+
+#: src/proxy_internal.c:446
+#, c-format
+msgid "Communication error with proxy: got %d bytes packet\n"
+msgstr ""
+
+#: src/proxy_internal.c:470
+#, c-format
+msgid "Communication error with proxy: malformed packet\n"
+msgstr ""
+
+#: src/proxy_internal.c:476
+#, c-format
+msgid "got asynchronous packet number %d\n"
+msgstr ""
+
+#: src/xen_internal.c:1241
+#, c-format
+msgid "allocating %d domain info"
+msgstr ""
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-20 10:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/libvirt.c:243 src/libvirt.c:307 src/hash.c:531
+msgid "allocating connection"
+msgstr ""
+
+#: src/libvirt.c:323
+msgid "Xen Daemon or Xen Store"
+msgstr ""
+
+#: src/virterror.c:243
+msgid "warning"
+msgstr ""
+
+#: src/virterror.c:246
+msgid "error"
+msgstr ""
+
+#: src/virterror.c:328
+msgid "No error message provided"
+msgstr ""
+
+#: src/virterror.c:382
+#, c-format
+msgid "internal error %s"
+msgstr ""
+
+#: src/virterror.c:384
+msgid "internal error"
+msgstr ""
+
+#: src/virterror.c:387
+msgid "out of memory"
+msgstr ""
+
+#: src/virterror.c:391
+msgid "no support for hypervisor"
+msgstr ""
+
+#: src/virterror.c:393
+#, c-format
+msgid "no support for hypervisor %s"
+msgstr ""
+
+#: src/virterror.c:397
+msgid "could not connect to hypervisor"
+msgstr ""
+
+#: src/virterror.c:399
+#, c-format
+msgid "could not connect to %s"
+msgstr ""
+
+#: src/virterror.c:403
+msgid "invalid connection pointer in"
+msgstr ""
+
+#: src/virterror.c:405
+#, c-format
+msgid "invalid connection pointer in %s"
+msgstr ""
+
+#: src/virterror.c:409
+msgid "invalid domain pointer in"
+msgstr ""
+
+#: src/virterror.c:411
+#, c-format
+msgid "invalid domain pointer in %s"
+msgstr ""
+
+#: src/virterror.c:415
+msgid "invalid argument in"
+msgstr ""
+
+#: src/virterror.c:417
+#, c-format
+msgid "invalid argument in %s"
+msgstr ""
+
+#: src/virterror.c:421
+#, c-format
+msgid "operation failed: %s"
+msgstr ""
+
+#: src/virterror.c:423
+msgid "operation failed"
+msgstr ""
+
+#: src/virterror.c:427
+#, c-format
+msgid "GET operation failed: %s"
+msgstr ""
+
+#: src/virterror.c:429
+msgid "GET operation failed"
+msgstr ""
+
+#: src/virterror.c:433
+#, c-format
+msgid "POST operation failed: %s"
+msgstr ""
+
+#: src/virterror.c:435
+msgid "POST operation failed"
+msgstr ""
+
+#: src/virterror.c:438
+#, c-format
+msgid "got unknown HTTP error code %d"
+msgstr ""
+
+#: src/virterror.c:442
+#, c-format
+msgid "unknown host %s"
+msgstr ""
+
+#: src/virterror.c:444
+msgid "unknown host"
+msgstr ""
+
+#: src/virterror.c:448
+#, c-format
+msgid "failed to serialize S-Expr: %s"
+msgstr ""
+
+#: src/virterror.c:450
+msgid "failed to serialize S-Expr"
+msgstr ""
+
+#: src/virterror.c:454
+msgid "could not use Xen hypervisor entry"
+msgstr ""
+
+#: src/virterror.c:456
+#, c-format
+msgid "could not use Xen hypervisor entry %s"
+msgstr ""
+
+#: src/virterror.c:460
+msgid "could not connect to Xen Store"
+msgstr ""
+
+#: src/virterror.c:462
+#, c-format
+msgid "could not connect to Xen Store %s"
+msgstr ""
+
+#: src/virterror.c:465
+#, c-format
+msgid "failed Xen syscall %s %d"
+msgstr ""
+
+#: src/virterror.c:469
+msgid "unknown OS type"
+msgstr ""
+
+#: src/virterror.c:471
+#, c-format
+msgid "unknown OS type %s"
+msgstr ""
+
+#: src/virterror.c:474
+msgid "missing kernel information"
+msgstr ""
+
+#: src/virterror.c:478
+msgid "missing root device information"
+msgstr ""
+
+#: src/virterror.c:480
+#, c-format
+msgid "missing root device information in %s"
+msgstr ""
+
+#: src/virterror.c:484
+msgid "missing source information for device"
+msgstr ""
+
+#: src/virterror.c:486
+#, c-format
+msgid "missing source information for device %s"
+msgstr ""
+
+#: src/virterror.c:490
+msgid "missing target information for device"
+msgstr ""
+
+#: src/virterror.c:492
+#, c-format
+msgid "missing target information for device %s"
+msgstr ""
+
+#: src/virterror.c:496
+msgid "missing domain name information"
+msgstr ""
+
+#: src/virterror.c:498
+#, c-format
+msgid "missing domain name information in %s"
+msgstr ""
+
+#: src/virterror.c:502
+msgid "missing operating system information"
+msgstr ""
+
+#: src/virterror.c:504
+#, c-format
+msgid "missing operating system information for %s"
+msgstr ""
+
+#: src/virterror.c:508
+msgid "missing devices information"
+msgstr ""
+
+#: src/virterror.c:510
+#, c-format
+msgid "missing devices information for %s"
+msgstr ""
+
+#: src/virterror.c:514
+msgid "too many drivers registered"
+msgstr ""
+
+#: src/virterror.c:516
+#, c-format
+msgid "too many drivers registered in %s"
+msgstr ""
+
+#: src/virterror.c:520
+msgid "library call failed, possibly not supported"
+msgstr ""
+
+#: src/virterror.c:522
+#, c-format
+msgid "library call %s failed, possibly not supported"
+msgstr ""
+
+#: src/virterror.c:526
+msgid "XML description not well formed or invalid"
+msgstr ""
+
+#: src/virterror.c:528
+#, c-format
+msgid "XML description for %s is not well formed or invalid"
+msgstr ""
+
+#: src/virterror.c:532
+msgid "this domain exists already"
+msgstr ""
+
+#: src/virterror.c:534
+#, c-format
+msgid "domain %s exists already"
+msgstr ""
+
+#: src/virterror.c:538
+msgid "operation forbidden for read only access"
+msgstr ""
+
+#: src/virterror.c:540
+#, c-format
+msgid "operation %s forbidden for read only access"
+msgstr ""
+
+#: src/virterror.c:544
+msgid "failed to open configuration file for reading"
+msgstr ""
+
+#: src/virterror.c:546
+#, c-format
+msgid "failed to open %s for reading"
+msgstr ""
+
+#: src/virterror.c:550
+msgid "failed to read configuration file"
+msgstr ""
+
+#: src/virterror.c:552
+#, c-format
+msgid "failed to read configuration file %s"
+msgstr ""
+
+#: src/virterror.c:556
+msgid "failed to parse configuration file"
+msgstr ""
+
+#: src/virterror.c:558
+#, c-format
+msgid "failed to parse configuration file %s"
+msgstr ""
+
+#: src/virterror.c:562
+msgid "configuration file syntax error"
+msgstr ""
+
+#: src/virterror.c:564
+#, c-format
+msgid "configuration file syntax error: %s"
+msgstr ""
+
+#: src/virterror.c:568
+msgid "failed to write configuration file"
+msgstr ""
+
+#: src/virterror.c:570
+#, c-format
+msgid "failed to write configuration file: %s"
+msgstr ""
+
+#: src/xmlrpc.c:63
+msgid "copying node content"
+msgstr ""
+
+#: src/xmlrpc.c:163
+msgid "allocate value array"
+msgstr ""
+
+#: src/xmlrpc.c:196
+msgid "unexpected dict node"
+msgstr ""
+
+#: src/xmlrpc.c:268
+msgid "unexpected value node"
+msgstr ""
+
+#: src/xmlrpc.c:431
+msgid "send request"
+msgstr ""
+
+#: src/xmlrpc.c:437
+msgid "unexpected mime type"
+msgstr ""
+
+#: src/xmlrpc.c:444
+msgid "allocate response"
+msgstr ""
+
+#: src/xmlrpc.c:452 src/xmlrpc.c:514
+msgid "read response"
+msgstr ""
+
+#: src/xmlrpc.c:484
+msgid "allocate string array"
+msgstr ""
+
+#: src/xmlrpc.c:606
+msgid "parse server response failed"
+msgstr ""
+
+#: src/xmlrpc.c:670
+msgid "allocate new context"
+msgstr ""
+
+#: src/hash.c:628 src/hash.c:634 src/test.c:725 src/test.c:750 src/test.c:773
+#: src/test.c:797 src/xend_internal.c:1864 src/xend_internal.c:2563
+#: src/xend_internal.c:2771 src/xs_internal.c:592 src/proxy_internal.c:790
+#: src/proxy_internal.c:837 src/proxy_internal.c:888
+msgid "allocating domain"
+msgstr ""
+
+#: src/hash.c:645
+msgid "failed to add domain to connection hash table"
+msgstr ""
+
+#: src/hash.c:697
+msgid "domain missing from connection hash table"
+msgstr ""
+
+#: src/test.c:200 src/test.c:379 src/test.c:895 src/test.c:923 src/test.c:950
+msgid "getting time of day"
+msgstr ""
+
+#: src/test.c:206 src/test.c:334 src/test.c:359
+msgid "domain"
+msgstr ""
+
+#: src/test.c:212 src/test.c:455
+msgid "creating xpath context"
+msgstr ""
+
+#: src/test.c:219
+msgid "domain name"
+msgstr ""
+
+#: src/test.c:228 src/test.c:233
+msgid "domain uuid"
+msgstr ""
+
+#: src/test.c:241 src/test.c:246
+msgid "domain memory"
+msgstr ""
+
+#: src/test.c:258
+msgid "domain vcpus"
+msgstr ""
+
+#: src/test.c:269
+msgid "domain reboot behaviour"
+msgstr ""
+
+#: src/test.c:280
+msgid "domain poweroff behaviour"
+msgstr ""
+
+#: src/test.c:291
+msgid "domain crash behaviour"
+msgstr ""
+
+#: src/test.c:352
+msgid "load domain definition file"
+msgstr ""
+
+#: src/test.c:434
+msgid "loading host definition file"
+msgstr ""
+
+#: src/test.c:441
+msgid "host"
+msgstr ""
+
+#: src/test.c:449
+msgid "node"
+msgstr ""
+
+#: src/test.c:471
+msgid "node cpu numa nodes"
+msgstr ""
+
+#: src/test.c:483
+msgid "node cpu sockets"
+msgstr ""
+
+#: src/test.c:495
+msgid "node cpu cores"
+msgstr ""
+
+#: src/test.c:507
+msgid "node cpu threads"
+msgstr ""
+
+#: src/test.c:519
+msgid "node active cpu"
+msgstr ""
+
+#: src/test.c:533
+msgid "node cpu mhz"
+msgstr ""
+
+#: src/test.c:552
+msgid "node memory"
+msgstr ""
+
+#: src/test.c:561
+msgid "node domain list"
+msgstr ""
+
+#: src/test.c:570
+msgid "resolving domain filename"
+msgstr ""
+
+#: src/test.c:608
+msgid "allocating node"
+msgstr ""
+
+#: src/test.c:648
+msgid "too many connections"
+msgstr ""
+
+#: src/test.c:733
+msgid "too many domains"
+msgstr ""
+
+#: src/xml.c:64
+msgid "growing buffer"
+msgstr ""
+
+#: src/xml.c:116
+msgid "allocate new buffer"
+msgstr ""
+
+#: src/xml.c:120
+msgid "allocate buffer content"
+msgstr ""
+
+#: src/sexpr.c:59
+msgid "failed to allocate a node"
+msgstr ""
+
+#: src/sexpr.c:352 src/sexpr.c:367
+msgid "failed to copy a string"
+msgstr ""
+
+#: src/xend_internal.c:264 src/xend_internal.c:267
+msgid "failed to read from Xen Daemon"
+msgstr ""
+
+#: src/xend_internal.c:1056
+msgid "failed to urlencode the create S-Expr"
+msgstr ""
+
+#: src/xend_internal.c:1097
+msgid "domain information incomplete, missing domid"
+msgstr ""
+
+#: src/xend_internal.c:1103
+msgid "domain information incorrect domid not numeric"
+msgstr ""
+
+#: src/xend_internal.c:1110 src/xend_internal.c:1159
+msgid "domain information incomplete, missing uuid"
+msgstr ""
+
+#: src/xend_internal.c:1150 src/xend_internal.c:1491
+msgid "domain information incomplete, missing name"
+msgstr ""
+
+#: src/xend_internal.c:1408 src/xend_internal.c:1433
+msgid "domain information incomplete, missing kernel"
+msgstr ""
+
+#: src/xend_internal.c:1564 src/xend_internal.c:1601
+msgid "domain information incomplete, vbd has no dev"
+msgstr ""
+
+#: src/xend_internal.c:1875
+msgid "failed to parse Xend domain information"
+msgstr ""
+
+#: src/xend_internal.c:2834
+#, c-format
+msgid "Failed to create domain %s\n"
+msgstr ""
+
+#: src/xend_internal.c:2840
+#, c-format
+msgid "Failed to get devices for domain %s\n"
+msgstr ""
+
+#: src/xend_internal.c:2851
+#, c-format
+msgid "Failed to resume new domain %s\n"
+msgstr ""
+
+#: src/virsh.c:233
+msgid "print help"
+msgstr ""
+
+#: src/virsh.c:234
+msgid "Prints global help or command specific help."
+msgstr ""
+
+#: src/virsh.c:252
+msgid ""
+"Commands:\n"
+"\n"
+msgstr ""
+
+#: src/virsh.c:266
+msgid "(re)connect to hypervisor"
+msgstr ""
+
+#: src/virsh.c:268
+msgid ""
+"Connect to local hypervisor. This is built-in command after shell start up."
+msgstr ""
+
+#: src/virsh.c:273
+msgid "hypervisor connection URI"
+msgstr ""
+
+#: src/virsh.c:274
+msgid "read-only connection"
+msgstr ""
+
+#: src/virsh.c:286
+msgid "Failed to disconnect from the hypervisor"
+msgstr ""
+
+#: src/virsh.c:302
+msgid "Failed to connect to the hypervisor"
+msgstr ""
+
+#: src/virsh.c:312
+msgid "list domains"
+msgstr ""
+
+#: src/virsh.c:313
+msgid "Returns list of domains."
+msgstr ""
+
+#: src/virsh.c:318
+msgid "list inactive domains"
+msgstr ""
+
+#: src/virsh.c:319
+msgid "list inactive & active domains"
+msgstr ""
+
+#: src/virsh.c:357 src/virsh.c:364
+msgid "Failed to list active domains"
+msgstr ""
+
+#: src/virsh.c:375 src/virsh.c:384
+msgid "Failed to list inactive domains"
+msgstr ""
+
+#: src/virsh.c:394
+msgid "Id"
+msgstr ""
+
+#: src/virsh.c:394
+msgid "Name"
+msgstr ""
+
+#: src/virsh.c:394
+msgid "State"
+msgstr ""
+
+#: src/virsh.c:411 src/virsh.c:2190 src/virsh.c:2206
+msgid "no state"
+msgstr ""
+
+#: src/virsh.c:454
+msgid "domain state"
+msgstr ""
+
+#: src/virsh.c:455
+msgid "Returns state about a running domain."
+msgstr ""
+
+#: src/virsh.c:460 src/virsh.c:498 src/virsh.c:735 src/virsh.c:817
+#: src/virsh.c:856 src/virsh.c:895 src/virsh.c:934 src/virsh.c:973
+#: src/virsh.c:1045 src/virsh.c:1128 src/virsh.c:1214 src/virsh.c:1257
+#: src/virsh.c:1300 src/virsh.c:1377
+msgid "domain name, id or uuid"
+msgstr ""
+
+#: src/virsh.c:492
+msgid "suspend a domain"
+msgstr ""
+
+#: src/virsh.c:493
+msgid "Suspend a running domain."
+msgstr ""
+
+#: src/virsh.c:516
+#, c-format
+msgid "Domain %s suspended\n"
+msgstr ""
+
+#: src/virsh.c:518
+#, c-format
+msgid "Failed to suspend domain %s"
+msgstr ""
+
+#: src/virsh.c:531
+msgid "create a domain from an XML file"
+msgstr ""
+
+#: src/virsh.c:532
+msgid "Create a domain."
+msgstr ""
+
+#: src/virsh.c:537 src/virsh.c:592
+msgid "file conatining an XML domain description"
+msgstr ""
+
+#: src/virsh.c:560 src/virsh.c:565 src/virsh.c:615 src/virsh.c:620
+#, c-format
+msgid "Failed to read description file %s"
+msgstr ""
+
+#: src/virsh.c:572
+#, c-format
+msgid "Domain %s created from %s\n"
+msgstr ""
+
+#: src/virsh.c:575
+#, c-format
+msgid "Failed to create domain from %s"
+msgstr ""
+
+#: src/virsh.c:586
+msgid "define (but don't start) a domain from an XML file"
+msgstr ""
+
+#: src/virsh.c:587
+msgid "Define a domain."
+msgstr ""
+
+#: src/virsh.c:627
+#, c-format
+msgid "Domain %s defined from %s\n"
+msgstr ""
+
+#: src/virsh.c:630
+#, c-format
+msgid "Failed to define domain from %s"
+msgstr ""
+
+#: src/virsh.c:641
+msgid "undefine an inactive domain"
+msgstr ""
+
+#: src/virsh.c:642
+msgid "Undefine the configuration for an inactive domain."
+msgstr ""
+
+#: src/virsh.c:647 src/virsh.c:1446
+msgid "domain name or uuid"
+msgstr ""
+
+#: src/virsh.c:665
+#, c-format
+msgid "Domain %s has been undefined\n"
+msgstr ""
+
+#: src/virsh.c:667
+#, c-format
+msgid "Failed to undefine domain %s"
+msgstr ""
+
+#: src/virsh.c:680
+msgid "start a (previously defined) inactive domain"
+msgstr ""
+
+#: src/virsh.c:681
+msgid "Start a domain."
+msgstr ""
+
+#: src/virsh.c:686
+msgid "name of the inactive domain"
+msgstr ""
+
+#: src/virsh.c:710
+msgid "Domain is already active"
+msgstr ""
+
+#: src/virsh.c:715
+#, c-format
+msgid "Domain %s started\n"
+msgstr ""
+
+#: src/virsh.c:718
+#, c-format
+msgid "Failed to start domain %s"
+msgstr ""
+
+#: src/virsh.c:729
+msgid "save a domain state to a file"
+msgstr ""
+
+#: src/virsh.c:730
+msgid "Save a running domain."
+msgstr ""
+
+#: src/virsh.c:736
+msgid "where to save the data"
+msgstr ""
+
+#: src/virsh.c:758
+#, c-format
+msgid "Domain %s saved to %s\n"
+msgstr ""
+
+#: src/virsh.c:760
+#, c-format
+msgid "Failed to save domain %s to %s"
+msgstr ""
+
+#: src/virsh.c:773
+msgid "restore a domain from a saved state in a file"
+msgstr ""
+
+#: src/virsh.c:774
+msgid "Restore a domain."
+msgstr ""
+
+#: src/virsh.c:779
+msgid "the state to restore"
+msgstr ""
+
+#: src/virsh.c:798
+#, c-format
+msgid "Domain restored from %s\n"
+msgstr ""
+
+#: src/virsh.c:800
+#, c-format
+msgid "Failed to restore domain from %s"
+msgstr ""
+
+#: src/virsh.c:811
+msgid "resume a domain"
+msgstr ""
+
+#: src/virsh.c:812
+msgid "Resume a previously suspended domain."
+msgstr ""
+
+#: src/virsh.c:835
+#, c-format
+msgid "Domain %s resumed\n"
+msgstr ""
+
+#: src/virsh.c:837
+#, c-format
+msgid "Failed to resume domain %s"
+msgstr ""
+
+#: src/virsh.c:850
+msgid "gracefully shutdown a domain"
+msgstr ""
+
+#: src/virsh.c:851
+msgid "Run shutdown in the target domain."
+msgstr ""
+
+#: src/virsh.c:874
+#, c-format
+msgid "Domain %s is being shutdown\n"
+msgstr ""
+
+#: src/virsh.c:876
+#, c-format
+msgid "Failed to shutdown domain %s"
+msgstr ""
+
+#: src/virsh.c:889
+msgid "reboot a domain"
+msgstr ""
+
+#: src/virsh.c:890
+msgid "Run a reboot command in the target domain."
+msgstr ""
+
+#: src/virsh.c:913
+#, c-format
+msgid "Domain %s is being rebooted\n"
+msgstr ""
+
+#: src/virsh.c:915
+#, c-format
+msgid "Failed to reboot domain %s"
+msgstr ""
+
+#: src/virsh.c:928
+msgid "destroy a domain"
+msgstr ""
+
+#: src/virsh.c:929
+msgid "Destroy a given domain."
+msgstr ""
+
+#: src/virsh.c:952
+#, c-format
+msgid "Domain %s destroyed\n"
+msgstr ""
+
+#: src/virsh.c:954
+#, c-format
+msgid "Failed to destroy domain %s"
+msgstr ""
+
+#: src/virsh.c:967
+msgid "domain information"
+msgstr ""
+
+#: src/virsh.c:968
+msgid "Returns basic information about the domain."
+msgstr ""
+
+#: src/virsh.c:994 src/virsh.c:996
+msgid "Id:"
+msgstr ""
+
+#: src/virsh.c:997
+msgid "Name:"
+msgstr ""
+
+#: src/virsh.c:1000
+msgid "UUID:"
+msgstr ""
+
+#: src/virsh.c:1003
+msgid "OS Type:"
+msgstr ""
+
+#: src/virsh.c:1008 src/virsh.c:1089
+msgid "State:"
+msgstr ""
+
+#: src/virsh.c:1011 src/virsh.c:1355
+msgid "CPU(s):"
+msgstr ""
+
+#: src/virsh.c:1018 src/virsh.c:1096
+msgid "CPU time:"
+msgstr ""
+
+#: src/virsh.c:1021
+msgid "Max memory:"
+msgstr ""
+
+#: src/virsh.c:1023
+msgid "Used memory:"
+msgstr ""
+
+#: src/virsh.c:1039
+msgid "domain vcpu information"
+msgstr ""
+
+#: src/virsh.c:1040
+msgid "Returns basic information about the domain virtual CPUs."
+msgstr ""
+
+#: src/virsh.c:1087
+msgid "VCPU:"
+msgstr ""
+
+#: src/virsh.c:1088
+msgid "CPU:"
+msgstr ""
+
+#: src/virsh.c:1098
+msgid "CPU Affinity:"
+msgstr ""
+
+#: src/virsh.c:1122
+msgid "control domain vcpu affinity"
+msgstr ""
+
+#: src/virsh.c:1123
+msgid "Pin domain VCPUs to host physical CPUs."
+msgstr ""
+
+#: src/virsh.c:1129
+msgid "vcpu number"
+msgstr ""
+
+#: src/virsh.c:1130
+msgid "host cpu number(s) (comma separated)"
+msgstr ""
+
+#: src/virsh.c:1208
+msgid "change number of virtual CPUs"
+msgstr ""
+
+#: src/virsh.c:1209
+msgid "Change the number of virtual CPUs active in the guest domain."
+msgstr ""
+
+#: src/virsh.c:1215
+msgid "number of virtual CPUs"
+msgstr ""
+
+#: src/virsh.c:1251
+msgid "change memory allocation"
+msgstr ""
+
+#: src/virsh.c:1252
+msgid "Change the current memory allocation in the guest domain."
+msgstr ""
+
+#: src/virsh.c:1258
+msgid "number of bytes of memory"
+msgstr ""
+
+#: src/virsh.c:1294
+msgid "change maximum memory limit"
+msgstr ""
+
+#: src/virsh.c:1295
+msgid "Change the maximum memory allocation limit in the guest domain."
+msgstr ""
+
+#: src/virsh.c:1301
+msgid "maxmimum memory limit in bytes"
+msgstr ""
+
+#: src/virsh.c:1337
+msgid "node information"
+msgstr ""
+
+#: src/virsh.c:1338
+msgid "Returns basic information about the node."
+msgstr ""
+
+#: src/virsh.c:1351
+msgid "failed to get node information"
+msgstr ""
+
+#: src/virsh.c:1354
+msgid "CPU model:"
+msgstr ""
+
+#: src/virsh.c:1356
+msgid "CPU frequency:"
+msgstr ""
+
+#: src/virsh.c:1357
+msgid "CPU socket(s):"
+msgstr ""
+
+#: src/virsh.c:1358
+msgid "Core(s) per socket:"
+msgstr ""
+
+#: src/virsh.c:1359
+msgid "Thread(s) per core:"
+msgstr ""
+
+#: src/virsh.c:1360
+msgid "NUMA cell(s):"
+msgstr ""
+
+#: src/virsh.c:1361
+msgid "Memory size:"
+msgstr ""
+
+#: src/virsh.c:1371
+msgid "domain information in XML"
+msgstr ""
+
+#: src/virsh.c:1372
+msgid "Ouput the domain information as an XML dump to stdout."
+msgstr ""
+
+#: src/virsh.c:1411
+msgid "convert a domain id or UUID to domain name"
+msgstr ""
+
+#: src/virsh.c:1416
+msgid "domain id or uuid"
+msgstr ""
+
+#: src/virsh.c:1441
+msgid "convert a domain name or UUID to domain id"
+msgstr ""
+
+#: src/virsh.c:1476
+msgid "convert a domain name or id to domain UUID"
+msgstr ""
+
+#: src/virsh.c:1481
+msgid "domain id or name"
+msgstr ""
+
+#: src/virsh.c:1500
+msgid "failed to get domain UUID"
+msgstr ""
+
+#: src/virsh.c:1511
+msgid "show version"
+msgstr ""
+
+#: src/virsh.c:1512
+msgid "Display the system version information."
+msgstr ""
+
+#: src/virsh.c:1535
+msgid "failed to get hypervisor type"
+msgstr ""
+
+#: src/virsh.c:1544
+#, c-format
+msgid "Compiled against library: libvir %d.%d.%d\n"
+msgstr ""
+
+#: src/virsh.c:1549
+msgid "failed to get the library version"
+msgstr ""
+
+#: src/virsh.c:1556
+#, c-format
+msgid "Using library: libvir %d.%d.%d\n"
+msgstr ""
+
+#: src/virsh.c:1563
+#, c-format
+msgid "Using API: %s %d.%d.%d\n"
+msgstr ""
+
+#: src/virsh.c:1568
+msgid "failed to get the hypervisor version"
+msgstr ""
+
+#: src/virsh.c:1573
+#, c-format
+msgid "Cannot extract running %s hypervisor version\n"
+msgstr ""
+
+#: src/virsh.c:1580
+#, c-format
+msgid "Running hypervisor: %s %d.%d.%d\n"
+msgstr ""
+
+#: src/virsh.c:1591
+msgid "quit this interactive terminal"
+msgstr ""
+
+#: src/virsh.c:1703
+#, c-format
+msgid "command '%s' requires <%s> option"
+msgstr ""
+
+#: src/virsh.c:1704
+#, c-format
+msgid "command '%s' requires --%s option"
+msgstr ""
+
+#: src/virsh.c:1731
+#, c-format
+msgid "command '%s' doesn't exist"
+msgstr ""
+
+#: src/virsh.c:1739
+msgid " NAME\n"
+msgstr ""
+
+#: src/virsh.c:1750
+msgid ""
+"\n"
+" DESCRIPTION\n"
+msgstr ""
+
+#: src/virsh.c:1754
+msgid ""
+"\n"
+" OPTIONS\n"
+msgstr ""
+
+#: src/virsh.c:1761
+#, c-format
+msgid "--%s <number>"
+msgstr ""
+
+#: src/virsh.c:1763
+#, c-format
+msgid "--%s <string>"
+msgstr ""
+
+#: src/virsh.c:1876
+msgid "undefined domain name or id"
+msgstr ""
+
+#: src/virsh.c:1909
+#, c-format
+msgid "failed to get domain '%s'"
+msgstr ""
+
+#: src/virsh.c:1937
+#, c-format
+msgid ""
+"\n"
+"(Time: %.3f ms)\n"
+"\n"
+msgstr ""
+
+#: src/virsh.c:2011
+msgid "missing \""
+msgstr ""
+
+#: src/virsh.c:2072
+#, c-format
+msgid "unexpected token (command name): '%s'"
+msgstr ""
+
+#: src/virsh.c:2077
+#, c-format
+msgid "unknown command: '%s'"
+msgstr ""
+
+#: src/virsh.c:2084
+#, c-format
+msgid "command '%s' doesn't support option --%s"
+msgstr ""
+
+#: src/virsh.c:2099
+#, c-format
+msgid "expected syntax: --%s <%s>"
+msgstr ""
+
+#: src/virsh.c:2102
+msgid "number"
+msgstr ""
+
+#: src/virsh.c:2102
+msgid "string"
+msgstr ""
+
+#: src/virsh.c:2108
+#, c-format
+msgid "unexpected data '%s'"
+msgstr ""
+
+#: src/virsh.c:2130
+msgid "OPTION"
+msgstr ""
+
+#: src/virsh.c:2130
+msgid "DATA"
+msgstr ""
+
+#: src/virsh.c:2178 src/virsh.c:2204
+msgid "running"
+msgstr ""
+
+#: src/virsh.c:2180 src/virsh.c:2202
+msgid "blocked"
+msgstr ""
+
+#: src/virsh.c:2182
+msgid "paused"
+msgstr ""
+
+#: src/virsh.c:2184
+msgid "in shutdown"
+msgstr ""
+
+#: src/virsh.c:2186
+msgid "shut off"
+msgstr ""
+
+#: src/virsh.c:2188
+msgid "crashed"
+msgstr ""
+
+#: src/virsh.c:2200
+msgid "offline"
+msgstr ""
+
+#: src/virsh.c:2219
+msgid "no valid connection"
+msgstr ""
+
+#: src/virsh.c:2258
+#, c-format
+msgid "%s: error: "
+msgstr ""
+
+#: src/virsh.c:2260
+msgid "error: "
+msgstr ""
+
+#: src/virsh.c:2282 src/virsh.c:2294 src/virsh.c:2306
+#, c-format
+msgid "%s: %d: failed to allocate %d bytes"
+msgstr ""
+
+#: src/virsh.c:2334
+msgid "failed to connect to the hypervisor"
+msgstr ""
+
+#: src/virsh.c:2479
+#, c-format
+msgid ""
+"\n"
+"%s [options] [commands]\n"
+"\n"
+" options:\n"
+" -c | --connect <uri> hypervisor connection URI\n"
+" -d | --debug <num> debug level [0-5]\n"
+" -h | --help this help\n"
+" -q | --quiet quiet mode\n"
+" -t | --timing print timing information\n"
+" -v | --version program version\n"
+"\n"
+" commands (non interactive mode):\n"
+msgstr ""
+
+#: src/virsh.c:2495
+#, c-format
+msgid ""
+"\n"
+" (specify --help <command> for details about the command)\n"
+"\n"
+msgstr ""
+
+#: src/virsh.c:2581
+#, c-format
+msgid "unsupported option '-%c'. See --help."
+msgstr ""
+
+#: src/virsh.c:2662
+#, c-format
+msgid ""
+"Welcome to %s, the virtualization interactive terminal.\n"
+"\n"
+msgstr ""
+
+#: src/virsh.c:2665
+msgid ""
+"Type: 'help' for help with commands\n"
+" 'quit' to quit\n"
+"\n"
+msgstr ""
+
+#: src/conf.c:162 src/conf.c:196 src/conf.c:479 src/conf.c:518 src/conf.c:546
+#: src/conf.c:624
+msgid "allocating configuration"
+msgstr ""
+
+#: src/conf.c:331
+msgid "unterminated number"
+msgstr ""
+
+#: src/conf.c:363 src/conf.c:380 src/conf.c:392
+msgid "unterminated string"
+msgstr ""
+
+#: src/conf.c:420 src/conf.c:473
+msgid "expecting a value"
+msgstr ""
+
+#: src/conf.c:440
+msgid "expecting a separator in list"
+msgstr ""
+
+#: src/conf.c:463
+msgid "list is not closed with ] "
+msgstr ""
+
+#: src/conf.c:511
+msgid "expecting a name"
+msgstr ""
+
+#: src/conf.c:574
+msgid "expecting a separator"
+msgstr ""
+
+#: src/conf.c:606
+msgid "expecting an assignment"
+msgstr ""
+
+#: src/conf.c:819
+msgid "failed to open file"
+msgstr ""
+
+#: src/conf.c:827
+msgid "failed to save content"
+msgstr ""
+
+#: src/xs_internal.c:318
+msgid "failed to connect to Xen Store"
+msgstr ""
+
+#: src/proxy_internal.c:193
+#, c-format
+msgid "failed to exec %s\n"
+msgstr ""
+
+#: src/proxy_internal.c:287
+#, c-format
+msgid "Failed to close socket %d\n"
+msgstr ""
+
+#: src/proxy_internal.c:320
+#, c-format
+msgid "Failed to read socket %d\n"
+msgstr ""
+
+#: src/proxy_internal.c:354
+#, c-format
+msgid "Failed to write to socket %d\n"
+msgstr ""
+
+#: src/proxy_internal.c:416 src/proxy_internal.c:437 src/proxy_internal.c:457
+#, c-format
+msgid "Communication error with proxy: got %d bytes of %d\n"
+msgstr ""
+
+#: src/proxy_internal.c:424
+#, c-format
+msgid "Communication error with proxy: expected %d bytes got %d\n"
+msgstr ""
+
+#: src/proxy_internal.c:446
+#, c-format
+msgid "Communication error with proxy: got %d bytes packet\n"
+msgstr ""
+
+#: src/proxy_internal.c:470
+#, c-format
+msgid "Communication error with proxy: malformed packet\n"
+msgstr ""
+
+#: src/proxy_internal.c:476
+#, c-format
+msgid "got asynchronous packet number %d\n"
+msgstr ""
+
+#: src/xen_internal.c:1241
+#, c-format
+msgid "allocating %d domain info"
+msgstr ""
INCLUDES = -I$(top_builddir)/include -I@top_srcdir@/include \
-I@top_srcdir@/proxy -I@top_srcdir@/src @LIBXML_CFLAGS@ \
- -DPROXY
-
+ -DPROXY -DLOCALEBASEDIR=\""$(datadir)/locale"\" \
+ -DGETTEXT_PACKAGE=\"$(PACKAGE)\"
libexec_PROGRAMS = libvirt_proxy
int main(int argc, char **argv) {
int i;
+ if (!setlocale(LC_ALL, "")) {
+ perror("setlocale");
+ return -1;
+ }
+ if (!bindtextdomain(GETTEXT_PACKAGE, LOCALEBASEDIR)) {
+ perror("bindtextdomain");
+ return -1;
+ }
+ if (!textdomain(GETTEXT_PACKAGE)) {
+ perror("textdomain");
+ return -1;
+ }
+
for (i = 1; i < argc; i++) {
if (!strcmp(argv[i], "-v")) {
debug++;
exit(1);
}
}
-
+
+
if (geteuid() != 0) {
fprintf(stderr, "%s must be run as root or suid\n", argv[0]);
/* exit(1); */
## Process this file with automake to produce Makefile.in
INCLUDES = -I$(top_builddir)/include -I@top_srcdir@/include @LIBXML_CFLAGS@ \
- -DBINDIR=\""$(libexecdir)"\"
+ -DBINDIR=\""$(libexecdir)"\" -DLOCALEBASEDIR=\""$(datadir)/locale"\" \
+ -DGETTEXT_PACKAGE=\"$(PACKAGE)\"
DEPS = libvirt.la
LDADDS = @STATIC_BINARIES@ libvirt.la
VIRSH_LIBS = @VIRSH_LIBS@
ret = (virConfPtr) malloc(sizeof(virConf));
if (ret == NULL) {
- virConfError(NULL, VIR_ERR_NO_MEMORY, "Allocating configuration", 0);
+ virConfError(NULL, VIR_ERR_NO_MEMORY, _("allocating configuration"), 0);
return(NULL);
}
memset(ret, 0, sizeof(virConf));
ret = (virConfEntryPtr) malloc(sizeof(virConfEntry));
if (ret == NULL) {
- virConfError(NULL, VIR_ERR_NO_MEMORY, "Allocating configuration", 0);
+ virConfError(NULL, VIR_ERR_NO_MEMORY, _("allocating configuration"), 0);
return(NULL);
}
memset(ret, 0, sizeof(virConfEntry));
NEXT;
}
if ((ctxt->cur >= ctxt->end) || (!IS_DIGIT(CUR))) {
- virConfError(NULL, VIR_ERR_CONF_SYNTAX, "unterminated number",
+ virConfError(NULL, VIR_ERR_CONF_SYNTAX, _("unterminated number"),
ctxt->line);
return(-1);
}
while ((ctxt->cur < ctxt->end) && (CUR != '\'') && (!IS_EOL(CUR)))
NEXT;
if (CUR != '\'') {
- virConfError(NULL, VIR_ERR_CONF_SYNTAX, "unterminated string",
+ virConfError(NULL, VIR_ERR_CONF_SYNTAX, _("unterminated string"),
ctxt->line);
return(NULL);
}
}
if ((ctxt->cur[0] != '"') || (ctxt->cur[1] != '"') ||
(ctxt->cur[2] != '"')) {
- virConfError(NULL, VIR_ERR_CONF_SYNTAX, "unterminated string",
+ virConfError(NULL, VIR_ERR_CONF_SYNTAX, _("unterminated string"),
ctxt->line);
return(NULL);
}
while ((ctxt->cur < ctxt->end) && (CUR != '"') && (!IS_EOL(CUR)))
NEXT;
if (CUR != '"') {
- virConfError(NULL, VIR_ERR_CONF_SYNTAX, "unterminated string",
+ virConfError(NULL, VIR_ERR_CONF_SYNTAX, _("unterminated string"),
ctxt->line);
return(NULL);
}
SKIP_SPACES;
if (ctxt->cur >= ctxt->end) {
- virConfError(NULL, VIR_ERR_CONF_SYNTAX, "expecting a value",
+ virConfError(NULL, VIR_ERR_CONF_SYNTAX, _("expecting a value"),
ctxt->line);
return(NULL);
}
while ((ctxt->cur < ctxt->end) && (CUR != ']')) {
if (CUR != ',') {
virConfError(NULL, VIR_ERR_CONF_SYNTAX,
- "expecting a separator in list", ctxt->line);
+ _("expecting a separator in list"), ctxt->line);
virConfFreeList(lst);
return(NULL);
}
NEXT;
} else {
virConfError(NULL, VIR_ERR_CONF_SYNTAX,
- "list is not closed with ] ", ctxt->line);
+ _("list is not closed with ] "), ctxt->line);
virConfFreeList(lst);
return(NULL);
}
}
type = VIR_CONF_LONG;
} else {
- virConfError(NULL, VIR_ERR_CONF_SYNTAX, "expecting a value",
+ virConfError(NULL, VIR_ERR_CONF_SYNTAX, _("expecting a value"),
ctxt->line);
return(NULL);
}
ret = (virConfValuePtr) malloc(sizeof(virConfValue));
if (ret == NULL) {
- virConfError(NULL, VIR_ERR_NO_MEMORY, "Allocating configuration", 0);
+ virConfError(NULL, VIR_ERR_NO_MEMORY, _("allocating configuration"), 0);
if (str != NULL)
free(str);
return(NULL);
base = ctxt->cur;
/* TODO: probably need encoding support and UTF-8 parsing ! */
if (!IS_CHAR(CUR)) {
- virConfError(NULL, VIR_ERR_CONF_SYNTAX, "expecting a name", ctxt->line);
+ virConfError(NULL, VIR_ERR_CONF_SYNTAX, _("expecting a name"), ctxt->line);
return(NULL);
}
while ((ctxt->cur < ctxt->end) && ((IS_CHAR(CUR)) || (IS_DIGIT(CUR)) || (CUR == '_')))
NEXT;
ret = strndup(base, ctxt->cur - base);
if (ret == NULL) {
- virConfError(NULL, VIR_ERR_NO_MEMORY, "Allocating configuration",
+ virConfError(NULL, VIR_ERR_NO_MEMORY, _("allocating configuration"),
ctxt->line);
return(NULL);
}
while ((ctxt->cur < ctxt->end) && (!IS_EOL(CUR))) NEXT;
comm = strndup(base, ctxt->cur - base);
if (comm == NULL) {
- virConfError(NULL, VIR_ERR_NO_MEMORY, "Allocating configuration",
+ virConfError(NULL, VIR_ERR_NO_MEMORY, _("allocating configuration"),
ctxt->line);
return(-1);
}
NEXT;
SKIP_BLANKS;
} else {
- virConfError(NULL, VIR_ERR_CONF_SYNTAX, "expecting a separator",
+ virConfError(NULL, VIR_ERR_CONF_SYNTAX, _("expecting a separator"),
ctxt->line);
return(-1);
}
return(-1);
SKIP_SPACES;
if (CUR != '=') {
- virConfError(NULL, VIR_ERR_CONF_SYNTAX, "expecting an assignment",
+ virConfError(NULL, VIR_ERR_CONF_SYNTAX, _("expecting an assignment"),
ctxt->line);
return(-1);
}
while ((ctxt->cur < ctxt->end) && (!IS_EOL(CUR))) NEXT;
comm = strndup(base, ctxt->cur - base);
if (comm == NULL) {
- virConfError(NULL, VIR_ERR_NO_MEMORY, "Allocating configuration",
+ virConfError(NULL, VIR_ERR_NO_MEMORY, _("allocating configuration"),
ctxt->line);
free(name);
virConfFreeValue(value);
fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR );
if (fd < 0) {
- virConfError(NULL, VIR_ERR_WRITE_FAILED, "failed to open file", 0);
+ virConfError(NULL, VIR_ERR_WRITE_FAILED, _("failed to open file"), 0);
ret = -1;
goto error;
}
ret = write(fd, buf->content, buf->use);
close(fd);
if (ret != (int) buf->use) {
- virConfError(NULL, VIR_ERR_WRITE_FAILED, "failed to save content", 0);
+ virConfError(NULL, VIR_ERR_WRITE_FAILED, _("failed to save content"), 0);
ret = -1;
goto error;
}
ret = (virConnectPtr) malloc(sizeof(virConnect));
if (ret == NULL) {
- virHashError(NULL, VIR_ERR_NO_MEMORY, "Allocating connection");
+ virHashError(NULL, VIR_ERR_NO_MEMORY, _("allocating connection"));
goto failed;
}
memset(ret, 0, sizeof(virConnect));
*/
ret = (virDomainPtr) malloc(sizeof(virDomain));
if (ret == NULL) {
- virHashError(conn, VIR_ERR_NO_MEMORY, "Allocating domain");
+ virHashError(conn, VIR_ERR_NO_MEMORY, _("allocating domain"));
goto error;
}
memset(ret, 0, sizeof(virDomain));
ret->name = strdup(name);
if (ret->name == NULL) {
- virHashError(conn, VIR_ERR_NO_MEMORY, "Allocating domain");
+ virHashError(conn, VIR_ERR_NO_MEMORY, _("allocating domain"));
goto error;
}
ret->magic = VIR_DOMAIN_MAGIC;
if (virHashAddEntry(conn->domains, name, ret) < 0) {
virHashError(conn, VIR_ERR_INTERNAL_ERROR,
- "Failed to add domain to connectio hash table");
+ _("failed to add domain to connection hash table"));
goto error;
}
conn->uses++;
if (virHashRemoveEntry(conn->domains, domain->name, NULL) < 0) {
virHashError(conn, VIR_ERR_INTERNAL_ERROR,
- "domain missing from connection hash table");
+ _("domain missing from connection hash table"));
goto done;
}
domain->magic = -1;
#include "libvirt/libvirt.h"
#include "libvirt/virterror.h"
#include "driver.h"
+#include <libintl.h>
#ifdef __cplusplus
extern "C" {
#endif
+#define _(str) dgettext(GETTEXT_PACKAGE, (str))
+#define _N(str) dgettext(GETTEXT_PACKAGE, (str))
+#define gettext_noop(str) (str)
+
/**
* ATTRIBUTE_UNUSED:
*
return(0);
initialized = 1;
+ if (!bindtextdomain(GETTEXT_PACKAGE, LOCALEBASEDIR))
+ return (-1);
+
/*
* should not be needed but...
*/
- for (i = 0;i < MAX_DRIVERS;i++)
+ for (i = 0;i < MAX_DRIVERS;i++)
virDriverTab[i] = NULL;
/*
int i;
if (!initialized)
- virInitialize();
+ if (virInitialize() < 0)
+ return -1;
if (driver == NULL) {
virLibConnError(NULL, VIR_ERR_INVALID_ARG, __FUNCTION__);
int i;
if (!initialized)
- virInitialize();
+ if (virInitialize() < 0)
+ return -1;
if (libVer == NULL)
return (-1);
virConnectPtr ret = NULL;
if (!initialized)
- virInitialize();
+ if (virInitialize() < 0)
+ return NULL;
if (name == NULL) {
name = "Xen";
ret = virGetConnect();
if (ret == NULL) {
- virLibConnError(NULL, VIR_ERR_NO_MEMORY, "Allocating connection");
+ virLibConnError(NULL, VIR_ERR_NO_MEMORY, _("allocating connection"));
goto failed;
}
virConnectPtr ret = NULL;
if (!initialized)
- virInitialize();
+ if (virInitialize() < 0)
+ return NULL;
if (name == NULL)
name = "Xen";
ret = virGetConnect();
if (ret == NULL) {
- virLibConnError(NULL, VIR_ERR_NO_MEMORY, "Allocating connection");
+ virLibConnError(NULL, VIR_ERR_NO_MEMORY, _("allocating connection"));
goto failed;
}
if (ret->nb_drivers == 0) {
if (name == NULL)
virLibConnError(NULL, VIR_ERR_NO_CONNECT,
- "could not connect to Xen Daemon nor Xen Store");
+ _("Xen Daemon or Xen Store"));
else
/* we failed to find an adequate driver */
virLibConnError(NULL, VIR_ERR_NO_SUPPORT, name);
setsid();
if (fork() == 0) {
execl(proxyPath, proxyPath, NULL);
- fprintf(stderr, "failed to exec %s\n", proxyPath);
+ fprintf(stderr, _("failed to exec %s\n"), proxyPath);
}
/*
* calling exit() generate troubles for termination handlers
ret = close(fd);
if (ret != 0)
- fprintf(stderr, "Failed to close socket %d\n", fd);
+ fprintf(stderr, _("Failed to close socket %d\n"), fd);
else if (debug > 0)
fprintf(stderr, "Closed socket %d\n", fd);
return(ret);
goto retry;
}
if (!quiet)
- fprintf(stderr, "Failed to read socket %d\n", fd);
+ fprintf(stderr, _("Failed to read socket %d\n"), fd);
return(-1);
}
fd, len);
goto retry;
}
- fprintf(stderr, "Failed to write to socket %d\n", fd);
+ fprintf(stderr, _("Failed to write to socket %d\n"), fd);
return(-1);
}
if (debug)
return(-1);
if (ret != sizeof(virProxyPacket)) {
fprintf(stderr,
- "Communication error with proxy: got %d bytes of %d\n",
+ _("Communication error with proxy: got %d bytes of %d\n"),
ret, (int) sizeof(virProxyPacket));
xenProxyClose(conn);
return(-1);
res = request;
if (res->len != sizeof(virProxyPacket)) {
fprintf(stderr,
- "Communication error with proxy: expected %d bytes got %d\n",
+ _("Communication error with proxy: expected %d bytes got %d\n"),
(int) sizeof(virProxyPacket), res->len);
xenProxyClose(conn);
return(-1);
return(-1);
if (ret != sizeof(virProxyPacket)) {
fprintf(stderr,
- "Communication error with proxy: got %d bytes of %d\n",
+ _("Communication error with proxy: got %d bytes of %d\n"),
ret, (int) sizeof(virProxyPacket));
xenProxyClose(conn);
return(-1);
if ((res->len < sizeof(virProxyPacket)) ||
(res->len > sizeof(virProxyFullPacket))) {
fprintf(stderr,
- "Communication error with proxy: got %d bytes packet\n",
+ _("Communication error with proxy: got %d bytes packet\n"),
res->len);
xenProxyClose(conn);
return(-1);
res->len - ret, quiet);
if (ret != (int) (res->len - sizeof(virProxyPacket))) {
fprintf(stderr,
- "Communication error with proxy: got %d bytes of %d\n",
+ _("Communication error with proxy: got %d bytes of %d\n"),
ret, (int) sizeof(virProxyPacket));
xenProxyClose(conn);
return(-1);
if ((res == NULL) || (res->version != PROXY_PROTO_VERSION) ||
(res->len < sizeof(virProxyPacket))) {
fprintf(stderr,
- "Communication error with proxy: malformed packet\n");
+ _("Communication error with proxy: malformed packet\n"));
xenProxyClose(conn);
return(-1);
}
if (res->serial != serial) {
TODO /* Asynchronous communication */
- fprintf(stderr, "gor asynchronous packet number %d\n", res->serial);
+ fprintf(stderr, _("got asynchronous packet number %d\n"), res->serial);
goto retry;
}
return(0);
res = virGetDomain(conn, name, uuid);
if (res == NULL)
- virProxyError(conn, VIR_ERR_NO_MEMORY, "Allocating domain");
+ virProxyError(conn, VIR_ERR_NO_MEMORY, _("allocating domain"));
else
res->handle = id;
res = virGetDomain(conn, name, uuid);
if (res == NULL)
- virProxyError(conn, VIR_ERR_NO_MEMORY, "Allocating domain");
+ virProxyError(conn, VIR_ERR_NO_MEMORY, _("allocating domain"));
else
res->handle = req.data.arg;
res = virGetDomain(conn, name, (const unsigned char *)&req.extra.str[0]);
if (res == NULL)
- virProxyError(conn, VIR_ERR_NO_MEMORY, "Allocating domain");
+ virProxyError(conn, VIR_ERR_NO_MEMORY, _("allocating domain"));
else
res->handle = req.data.arg;
ret = (struct sexpr *) malloc(sizeof(*ret));
if (ret == NULL) {
- virSexprError(VIR_ERR_NO_MEMORY, "failed to allocate a node");
+ virSexprError(VIR_ERR_NO_MEMORY, _("failed to allocate a node"));
return (NULL);
}
ret->kind = SEXPR_NIL;
ret->value = strndup(start, ptr - start);
if (ret->value == NULL) {
virSexprError(VIR_ERR_NO_MEMORY,
- "failed to copy a string");
+ _("failed to copy a string"));
}
if (*ptr == '\'')
ret->value = strndup(start, ptr - start);
if (ret->value == NULL) {
virSexprError(VIR_ERR_NO_MEMORY,
- "failed to copy a string");
+ _("failed to copy a string"));
}
}
virDomainRestart onCrash = VIR_DOMAIN_RENAME_RESTART;
if (gettimeofday(&tv, NULL) < 0) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "cannot get timeofday");
+ testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, _("getting time of day"));
return -1;
}
root = xmlDocGetRootElement(xml);
if ((root == NULL) || (!xmlStrEqual(root->name, BAD_CAST "domain"))) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "malformed root element");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("domain"));
goto error;
}
ctxt = xmlXPathNewContext(xml);
if (ctxt == NULL) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "cannot create xpath context");
+ testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, _("creating xpath context"));
goto error;
}
obj = xmlXPathEval(BAD_CAST "string(/domain/name[1])", ctxt);
if ((obj == NULL) || (obj->type != XPATH_STRING) ||
(obj->stringval == NULL) || (obj->stringval[0] == 0)) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "missing name element on domain");
+ testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, _("domain name"));
goto error;
}
name = strdup((const char *)obj->stringval);
obj = xmlXPathEval(BAD_CAST "string(/domain/uuid[1])", ctxt);
if ((obj == NULL) || (obj->type != XPATH_STRING) ||
(obj->stringval == NULL) || (obj->stringval[0] == 0)) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "missing uuid element on domain");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("domain uuid"));
goto error;
}
dst_uuid = (char *) &rawuuid[0];
if (!(virParseUUID((char **)&dst_uuid, (const char *)obj->stringval))) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "malformed uuid data in domain");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("domain uuid"));
goto error;
}
xmlXPathFreeObject(obj);
obj = xmlXPathEval(BAD_CAST "string(/domain/memory[1])", ctxt);
if ((obj == NULL) || (obj->type != XPATH_STRING) ||
(obj->stringval == NULL) || (obj->stringval[0] == 0)) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "missing memory element on domain");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("domain memory"));
goto error;
}
memory = strtoll((const char*)obj->stringval, &conv, 10);
if (conv == (const char*)obj->stringval) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "malformed memory value for domain");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("domain memory"));
goto error;
}
xmlXPathFreeObject(obj);
} else {
nrVirtCpu = strtoll((const char*)obj->stringval, &conv, 10);
if (conv == (const char*)obj->stringval) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "malformed vcpus value for domain");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("domain vcpus"));
goto error;
}
}
if ((obj != NULL) && (obj->type == XPATH_STRING) &&
(obj->stringval != NULL) && (obj->stringval[0] != 0)) {
if (!(onReboot = testRestartStringToFlag((const char *)obj->stringval))) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "malformed on_reboot value for domain");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("domain reboot behaviour"));
goto error;
}
}
if ((obj != NULL) && (obj->type == XPATH_STRING) &&
(obj->stringval != NULL) && (obj->stringval[0] != 0)) {
if (!(onReboot = testRestartStringToFlag((const char *)obj->stringval))) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "malformed on_poweroff value for domain");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("domain poweroff behaviour"));
goto error;
}
}
if ((obj != NULL) && (obj->type == XPATH_STRING) &&
(obj->stringval != NULL) && (obj->stringval[0] != 0)) {
if (!(onReboot = testRestartStringToFlag((const char *)obj->stringval))) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "malformed on_crash value for domain");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("domain crash behaviour"));
goto error;
}
}
if (!(xml = xmlReadDoc(BAD_CAST doc, "domain.xml", NULL,
XML_PARSE_NOENT | XML_PARSE_NONET |
XML_PARSE_NOERROR | XML_PARSE_NOWARNING))) {
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "cannot parse domain definition");
+ testError(NULL, NULL, VIR_ERR_XML_ERROR, _("domain"));
return -1;
}
xmlDocPtr xml;
if ((fd = open(file, O_RDONLY)) < 0) {
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "cannot load domain definition");
+ testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, _("load domain definition file"));
return -1;
}
if (!(xml = xmlReadFd(fd, file, NULL,
XML_PARSE_NOENT | XML_PARSE_NONET |
XML_PARSE_NOERROR | XML_PARSE_NOWARNING))) {
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "cannot parse domain definition");
+ testError(NULL, NULL, VIR_ERR_XML_ERROR, _("domain"));
close(fd);
return -1;
}
struct timeval tv;
if (gettimeofday(&tv, NULL) < 0) {
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "cannot get timeofday");
+ testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, _("getting time of day"));
return -1;
}
virNodeInfoPtr nodeInfo;
if ((fd = open(file, O_RDONLY)) < 0) {
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "cannot load host definition");
+ testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, _("loading host definition file"));
return -1;
}
if (!(xml = xmlReadFd(fd, file, NULL,
XML_PARSE_NOENT | XML_PARSE_NONET |
XML_PARSE_NOERROR | XML_PARSE_NOWARNING))) {
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "cannot parse host definition");
+ testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, _("host"));
goto error;
}
close(fd);
root = xmlDocGetRootElement(xml);
if ((root == NULL) || (!xmlStrEqual(root->name, BAD_CAST "node"))) {
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "malformed root element");
+ testError(NULL, NULL, VIR_ERR_XML_ERROR, _("node"));
goto error;
}
ctxt = xmlXPathNewContext(xml);
if (ctxt == NULL) {
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "cannot create xpath context");
+ testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, _("creating xpath context"));
goto error;
}
char *conv = NULL;
nodeInfo->nodes = strtol((const char*)obj->stringval, &conv, 10);
if (conv == (const char*)obj->stringval) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "malformed nodes value for node cpu");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("node cpu numa nodes"));
goto error;
}
xmlXPathFreeObject(obj);
char *conv = NULL;
nodeInfo->sockets = strtol((const char*)obj->stringval, &conv, 10);
if (conv == (const char*)obj->stringval) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "malformed sockets value for node cpu");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("node cpu sockets"));
goto error;
}
xmlXPathFreeObject(obj);
char *conv = NULL;
nodeInfo->cores = strtol((const char*)obj->stringval, &conv, 10);
if (conv == (const char*)obj->stringval) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "malformed cores value for node cpu");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("node cpu cores"));
goto error;
}
xmlXPathFreeObject(obj);
char *conv = NULL;
nodeInfo->threads = strtol((const char*)obj->stringval, &conv, 10);
if (conv == (const char*)obj->stringval) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "malformed threads value for node cpu");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("node cpu threads"));
goto error;
}
xmlXPathFreeObject(obj);
char *conv = NULL;
unsigned int active = strtol((const char*)obj->stringval, &conv, 10);
if (conv == (const char*)obj->stringval) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "malformed active value for node cpu");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("node active cpu"));
goto error;
}
if (active < nodeInfo->cpus) {
char *conv = NULL;
nodeInfo->mhz = strtol((const char*)obj->stringval, &conv, 10);
if (conv == (const char*)obj->stringval) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "malformed threads value for node cpu");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("node cpu mhz"));
goto error;
}
xmlXPathFreeObject(obj);
char *conv = NULL;
nodeInfo->memory = strtol((const char*)obj->stringval, &conv, 10);
if (conv == (const char*)obj->stringval) {
- testError(conn, NULL, VIR_ERR_INTERNAL_ERROR, "malformed memory value for node");
+ testError(conn, NULL, VIR_ERR_XML_ERROR, _("node memory"));
goto error;
}
xmlXPathFreeObject(obj);
obj = xmlXPathEval(BAD_CAST "/node/domain", ctxt);
if ((obj == NULL) || (obj->type != XPATH_NODESET) ||
(obj->nodesetval == NULL)) {
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "cannot extract domain list");
+ testError(NULL, NULL, VIR_ERR_XML_ERROR, _("node domain list"));
goto error;
}
char *absFile = testBuildFilename(file, (const char *)domFile);
free(domFile);
if (!absFile) {
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "cannot resolve filename");
+ testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, _("resolving domain filename"));
goto error;
}
if (testLoadDomainFromFile(conn, i, absFile) != 0) {
if (node == NULL) {
node = calloc(1, sizeof(testNode));
if (!node) {
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "cannot allocate memory");
+ testError(NULL, NULL, VIR_ERR_NO_MEMORY, _("allocating node"));
return -1;
}
}
if ((connid = getNextConnection()) < 0) {
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "too many connections");
+ testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, _("too many connections"));
return -1;
}
return NULL;
dom = virGetDomain(conn, con->domains[i].name, con->domains[i].uuid);
if (dom == NULL) {
- testError(conn, NULL, VIR_ERR_NO_MEMORY, "allocating domain");
+ testError(conn, NULL, VIR_ERR_NO_MEMORY, _("allocating domain"));
return NULL;
}
con->numDomains++;
}
}
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "too many domains");
+ testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, _("too many domains"));
return (NULL);
}
dom = virGetDomain(conn, con->domains[id].name, con->domains[id].uuid);
if (dom == NULL) {
- testError(conn, NULL, VIR_ERR_NO_MEMORY, "Allocating domain");
+ testError(conn, NULL, VIR_ERR_NO_MEMORY, _("allocating domain"));
return(NULL);
}
dom->handle = id;
if (id >= 0) {
dom = virGetDomain(conn, con->domains[id].name, con->domains[id].uuid);
if (dom == NULL) {
- testError(conn, NULL, VIR_ERR_NO_MEMORY, "Allocating domain");
+ testError(conn, NULL, VIR_ERR_NO_MEMORY, _("allocating domain"));
return(NULL);
}
dom->handle = id;
if (id >= 0) {
dom = virGetDomain(conn, con->domains[id].name, con->domains[id].uuid);
if (dom == NULL) {
- testError(conn, NULL, VIR_ERR_NO_MEMORY, "Allocating domain");
+ testError(conn, NULL, VIR_ERR_NO_MEMORY, _("allocating domain"));
return(NULL);
}
dom->handle = id;
con = &node->connections[domain->conn->handle];
if (gettimeofday(&tv, NULL) < 0) {
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "cannot get timeofday");
+ testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, _("getting time of day"));
return (-1);
}
con = &node->connections[domain->conn->handle];
if (gettimeofday(&tv, NULL) < 0) {
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "cannot get timeofday");
+ testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, _("getting time of day"));
return (-1);
}
con = &node->connections[domain->conn->handle];
if (gettimeofday(&tv, NULL) < 0) {
- testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, "cannot get timeofday");
+ testError(NULL, NULL, VIR_ERR_INTERNAL_ERROR, _("getting time of day"));
return (-1);
}
con = &node->connections[domain->conn->handle];
if (memory > con->domains[domain->handle].info.maxMem) {
- testError(domain->conn, domain, VIR_ERR_INVALID_ARG, "memory over maximum limit");
+ testError(domain->conn, domain, VIR_ERR_INVALID_ARG, __FUNCTION__);
return (-1);
}
/* We allow more cpus in guest than host */
if (nrCpus > 32) {
- testError(domain->conn, domain, VIR_ERR_INVALID_ARG, "too many virtual cpus");
+ testError(domain->conn, domain, VIR_ERR_INVALID_ARG, __FUNCTION__);
return (-1);
}
*/
static vshCmdInfo info_help[] = {
{"syntax", "help [<command>]"},
- {"help", "print help"},
- {"desc", "Prints global help or command specific help."},
- {"version", "Prints version information."},
+ {"help", gettext_noop("print help")},
+ {"desc", gettext_noop("Prints global help or command specific help.")},
+
{NULL, NULL}
};
if (!cmdname) {
vshCmdDef *def;
- vshPrint(ctl, "Commands:\n\n");
+ vshPrint(ctl, _("Commands:\n\n"));
for (def = commands; def->name; def++)
vshPrint(ctl, " %-15s %s\n", def->name,
- vshCmddefGetInfo(def, "help"));
+ _N(vshCmddefGetInfo(def, "help")));
return TRUE;
}
return vshCmddefHelp(ctl, cmdname, FALSE);
*/
static vshCmdInfo info_connect[] = {
{"syntax", "connect [name] [--readonly]"},
- {"help", "(re)connect to hypervisor"},
+ {"help", gettext_noop("(re)connect to hypervisor")},
{"desc",
- "Connect to local hypervisor. This is build-in command after shell start up."},
+ gettext_noop("Connect to local hypervisor. This is built-in command after shell start up.")},
{NULL, NULL}
};
static vshCmdOptDef opts_connect[] = {
- {"name", VSH_OT_DATA, 0, "optional argument currently unused (or used for tests only)"},
- {"readonly", VSH_OT_BOOL, 0, "read-only connection"},
+ {"name", VSH_OT_DATA, 0, gettext_noop("hypervisor connection URI")},
+ {"readonly", VSH_OT_BOOL, 0, gettext_noop("read-only connection")},
{NULL, 0, 0, NULL}
};
if (ctl->conn) {
if (virConnectClose(ctl->conn) != 0) {
vshError(ctl, FALSE,
- "failed to disconnect from the hypervisor");
+ _("Failed to disconnect from the hypervisor"));
return FALSE;
}
ctl->conn = NULL;
ctl->conn = virConnectOpenReadOnly(ctl->name);
if (!ctl->conn)
- vshError(ctl, FALSE, "failed to connect to the hypervisor");
+ vshError(ctl, FALSE, _("Failed to connect to the hypervisor"));
return ctl->conn ? TRUE : FALSE;
}
*/
static vshCmdInfo info_list[] = {
{"syntax", "list"},
- {"help", "list domains"},
- {"desc", "Returns list of domains."},
+ {"help", gettext_noop("list domains")},
+ {"desc", gettext_noop("Returns list of domains.")},
{NULL, NULL}
};
static vshCmdOptDef opts_list[] = {
- {"inactive", VSH_OT_BOOL, 0, "list inactive domains"},
- {"all", VSH_OT_BOOL, 0, "list inactive & active domains"},
+ {"inactive", VSH_OT_BOOL, 0, gettext_noop("list inactive domains")},
+ {"all", VSH_OT_BOOL, 0, gettext_noop("list inactive & active domains")},
{NULL, 0, 0, NULL}
};
if (active) {
maxid = virConnectNumOfDomains(ctl->conn);
if (maxid < 0) {
- vshError(ctl, FALSE, "failed to list active domains.");
+ vshError(ctl, FALSE, _("Failed to list active domains"));
return FALSE;
}
if (maxid) {
ids = vshMalloc(ctl, sizeof(int) * maxid);
if ((maxid = virConnectListDomains(ctl->conn, &ids[0], maxid)) < 0) {
- vshError(ctl, FALSE, "failed to list active domains.");
+ vshError(ctl, FALSE, _("Failed to list active domains"));
free(ids);
return FALSE;
}
if (inactive) {
maxname = virConnectNumOfDefinedDomains(ctl->conn);
if (maxname < 0) {
- vshError(ctl, FALSE, "failed to list inactive domains.");
+ vshError(ctl, FALSE, _("Failed to list inactive domains"));
if (ids)
free(ids);
return FALSE;
names = vshMalloc(ctl, sizeof(char *) * maxname);
if ((maxname = virConnectListDefinedDomains(ctl->conn, names, maxname)) < 0) {
- vshError(ctl, FALSE, "failed to list inactive domains.");
+ vshError(ctl, FALSE, _("Failed to list inactive domains"));
if (ids)
free(ids);
free(names);
qsort(&names[0], maxname, sizeof(char*), domnamesorter);
}
}
- vshPrintExtra(ctl, "%3s %-20s %s\n", "Id", "Name", "State");
+ vshPrintExtra(ctl, "%3s %-20s %s\n", _("Id"), _("Name"), _("State"));
vshPrintExtra(ctl, "----------------------------------\n");
for (i = 0; i < maxid; i++) {
virDomainGetID(dom),
virDomainGetName(dom),
ret <
- 0 ? "no state" : vshDomainStateToString(info.state));
+ 0 ? _("no state") : _N(vshDomainStateToString(info.state)));
virDomainFree(dom);
}
for (i = 0; i < maxname; i++) {
ret <
0 ? "no state" : vshDomainStateToString(info.state));
}
+
virDomainFree(dom);
}
if (ids)
*/
static vshCmdInfo info_domstate[] = {
{"syntax", "domstate <domain>"},
- {"help", "domain state"},
- {"desc", "Returns state about a running domain."},
+ {"help", gettext_noop("domain state")},
+ {"desc", gettext_noop("Returns state about a running domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_domstate[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name, id or uuid"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
{NULL, 0, 0, NULL}
};
if (virDomainGetInfo(dom, &info) == 0)
vshPrint(ctl, "%s\n",
- vshDomainStateToString(info.state));
+ _N(vshDomainStateToString(info.state)));
else
ret = FALSE;
*/
static vshCmdInfo info_suspend[] = {
{"syntax", "suspend <domain>"},
- {"help", "suspend a domain"},
- {"desc", "Suspend a running domain."},
+ {"help", gettext_noop("suspend a domain")},
+ {"desc", gettext_noop("Suspend a running domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_suspend[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name, id or uuid"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
{NULL, 0, 0, NULL}
};
return FALSE;
if (virDomainSuspend(dom) == 0) {
- vshPrint(ctl, "Domain %s suspended\n", name);
+ vshPrint(ctl, _("Domain %s suspended\n"), name);
} else {
- vshError(ctl, FALSE, "Failed to suspend domain\n");
+ vshError(ctl, FALSE, _("Failed to suspend domain %s"), name);
ret = FALSE;
}
*/
static vshCmdInfo info_create[] = {
{"syntax", "create a domain from an XML <file>"},
- {"help", "create a domain from an XML file"},
- {"desc", "Create a domain."},
+ {"help", gettext_noop("create a domain from an XML file")},
+ {"desc", gettext_noop("Create a domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_create[] = {
- {"file", VSH_OT_DATA, VSH_OFLAG_REQ, "file conatining an XML domain description"},
+ {"file", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("file conatining an XML domain description")},
{NULL, 0, 0, NULL}
};
fd = open(from, O_RDONLY);
if (fd < 0) {
- vshError(ctl, FALSE, "Failed to read description file %s\n", from);
+ vshError(ctl, FALSE, _("Failed to read description file %s"), from);
return(FALSE);
}
l = read(fd, &buffer[0], sizeof(buffer));
if ((l <= 0) || (l >= (int) sizeof(buffer))) {
- vshError(ctl, FALSE, "Failed to read description file %s\n", from);
+ vshError(ctl, FALSE, _("Failed to read description file %s"), from);
close(fd);
return(FALSE);
}
buffer[l] = 0;
dom = virDomainCreateLinux(ctl->conn, &buffer[0], 0);
if (dom != NULL) {
- vshPrint(ctl, "Domain %s created from %s\n",
+ vshPrint(ctl, _("Domain %s created from %s\n"),
virDomainGetName(dom), from);
} else {
- vshError(ctl, FALSE, "Failed to create domain\n");
+ vshError(ctl, FALSE, _("Failed to create domain from %s"), from);
ret = FALSE;
}
return ret;
*/
static vshCmdInfo info_define[] = {
{"syntax", "define a domain from an XML <file>"},
- {"help", "define (but don't start) a domain from an XML file"},
- {"desc", "Define a domain."},
+ {"help", gettext_noop("define (but don't start) a domain from an XML file")},
+ {"desc", gettext_noop("Define a domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_define[] = {
- {"file", VSH_OT_DATA, VSH_OFLAG_REQ, "file conatining an XML domain description"},
+ {"file", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("file conatining an XML domain description")},
{NULL, 0, 0, NULL}
};
fd = open(from, O_RDONLY);
if (fd < 0) {
- vshError(ctl, FALSE, "Failed to read description file %s\n", from);
+ vshError(ctl, FALSE, _("Failed to read description file %s"), from);
return(FALSE);
}
l = read(fd, &buffer[0], sizeof(buffer));
if ((l <= 0) || (l >= (int) sizeof(buffer))) {
- vshError(ctl, FALSE, "Failed to read description file %s\n", from);
+ vshError(ctl, FALSE, _("Failed to read description file %s"), from);
close(fd);
return(FALSE);
}
buffer[l] = 0;
dom = virDomainDefineXML(ctl->conn, &buffer[0]);
if (dom != NULL) {
- vshPrint(ctl, "Domain %s defined from %s\n",
+ vshPrint(ctl, _("Domain %s defined from %s\n"),
virDomainGetName(dom), from);
} else {
- vshError(ctl, FALSE, "Failed to define domain\n");
+ vshError(ctl, FALSE, _("Failed to define domain from %s"), from);
ret = FALSE;
}
return ret;
*/
static vshCmdInfo info_undefine[] = {
{"syntax", "undefine <domain>"},
- {"help", "Undefine an inactive domain"},
- {"desc", "Undefine the configuration for an inactive domain"},
+ {"help", gettext_noop("undefine an inactive domain")},
+ {"desc", gettext_noop("Undefine the configuration for an inactive domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_undefine[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name, or uuid"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name or uuid")},
{NULL, 0, 0, NULL}
};
return FALSE;
if (virDomainUndefine(dom) == 0) {
- vshPrint(ctl, "Domain %s has been undefined\n", name);
+ vshPrint(ctl, _("Domain %s has been undefined\n"), name);
} else {
- vshError(ctl, FALSE, "Failed to undefine domain\n");
+ vshError(ctl, FALSE, _("Failed to undefine domain %s"), name);
ret = FALSE;
}
*/
static vshCmdInfo info_start[] = {
{"syntax", "start a domain "},
- {"help", "start a (previously defined) inactive domain"},
- {"desc", "Start a domain."},
+ {"help", gettext_noop("start a (previously defined) inactive domain")},
+ {"desc", gettext_noop("Start a domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_start[] = {
- {"name", VSH_OT_DATA, VSH_OFLAG_REQ, "name of the inactive domain" },
+ {"name", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("name of the inactive domain")},
{NULL, 0, 0, NULL}
};
return FALSE;
if (virDomainGetID(dom) != (unsigned int)-1) {
- vshError(ctl, FALSE, "Domain is already active\n");
+ vshError(ctl, FALSE, _("Domain is already active"));
return FALSE;
}
if (virDomainCreate(dom) == 0) {
- vshPrint(ctl, "Domain %s started\n",
+ vshPrint(ctl, _("Domain %s started\n"),
name);
} else {
- vshError(ctl, FALSE, "Failed to start domain\n");
+ vshError(ctl, FALSE, _("Failed to start domain %s"), name);
ret = FALSE;
}
return ret;
*/
static vshCmdInfo info_save[] = {
{"syntax", "save <domain> <file>"},
- {"help", "save a domain state to a file"},
- {"desc", "Save a running domain."},
+ {"help", gettext_noop("save a domain state to a file")},
+ {"desc", gettext_noop("Save a running domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_save[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name, id or uuid"},
- {"file", VSH_OT_DATA, VSH_OFLAG_REQ, "where to save the data"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
+ {"file", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("where to save the data")},
{NULL, 0, 0, NULL}
};
return FALSE;
if (virDomainSave(dom, to) == 0) {
- vshPrint(ctl, "Domain %s saved\n", name);
+ vshPrint(ctl, _("Domain %s saved to %s\n"), name, to);
} else {
- vshError(ctl, FALSE, "Failed to save domain\n");
+ vshError(ctl, FALSE, _("Failed to save domain %s to %s"), name, to);
ret = FALSE;
}
*/
static vshCmdInfo info_restore[] = {
{"syntax", "restore a domain from <file>"},
- {"help", "restore a domain from a saved state in a file"},
- {"desc", "Restore a domain."},
+ {"help", gettext_noop("restore a domain from a saved state in a file")},
+ {"desc", gettext_noop("Restore a domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_restore[] = {
- {"file", VSH_OT_DATA, VSH_OFLAG_REQ, "the state to restore"},
+ {"file", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("the state to restore")},
{NULL, 0, 0, NULL}
};
return FALSE;
if (virDomainRestore(ctl->conn, from) == 0) {
- vshPrint(ctl, "Domain restored from %s\n", from);
+ vshPrint(ctl, _("Domain restored from %s\n"), from);
} else {
- vshError(ctl, FALSE, "Failed to restore domain\n");
+ vshError(ctl, FALSE, _("Failed to restore domain from %s"), from);
ret = FALSE;
}
return ret;
*/
static vshCmdInfo info_resume[] = {
{"syntax", "resume <domain>"},
- {"help", "resume a domain"},
- {"desc", "Resume a previously suspended domain."},
+ {"help", gettext_noop("resume a domain")},
+ {"desc", gettext_noop("Resume a previously suspended domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_resume[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name, id or uuid"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
{NULL, 0, 0, NULL}
};
return FALSE;
if (virDomainResume(dom) == 0) {
- vshPrint(ctl, "Domain %s resumed\n", name);
+ vshPrint(ctl, _("Domain %s resumed\n"), name);
} else {
- vshError(ctl, FALSE, "Failed to resume domain\n");
+ vshError(ctl, FALSE, _("Failed to resume domain %s"), name);
ret = FALSE;
}
*/
static vshCmdInfo info_shutdown[] = {
{"syntax", "shutdown <domain>"},
- {"help", "gracefully shutdown a domain"},
- {"desc", "Run shutdown in the targetted domain"},
+ {"help", gettext_noop("gracefully shutdown a domain")},
+ {"desc", gettext_noop("Run shutdown in the target domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_shutdown[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name, id or uuid"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
{NULL, 0, 0, NULL}
};
return FALSE;
if (virDomainShutdown(dom) == 0) {
- vshPrint(ctl, "Domain %s is being shutdown\n", name);
+ vshPrint(ctl, _("Domain %s is being shutdown\n"), name);
} else {
- vshError(ctl, FALSE, "Failed to shutdown domain\n");
+ vshError(ctl, FALSE, _("Failed to shutdown domain %s"), name);
ret = FALSE;
}
*/
static vshCmdInfo info_reboot[] = {
{"syntax", "reboot <domain>"},
- {"help", "reboot a domain"},
- {"desc", "Run a reboot command in the targetted domain"},
+ {"help", gettext_noop("reboot a domain")},
+ {"desc", gettext_noop("Run a reboot command in the target domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_reboot[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name, id or uuid"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
{NULL, 0, 0, NULL}
};
return FALSE;
if (virDomainReboot(dom, 0) == 0) {
- vshPrint(ctl, "Domain %s is being rebooted\n", name);
+ vshPrint(ctl, _("Domain %s is being rebooted\n"), name);
} else {
- vshError(ctl, FALSE, "Failed to reboot domain\n");
+ vshError(ctl, FALSE, _("Failed to reboot domain %s"), name);
ret = FALSE;
}
*/
static vshCmdInfo info_destroy[] = {
{"syntax", "destroy <domain>"},
- {"help", "destroy a domain"},
- {"desc", "Destroy a given domain."},
+ {"help", gettext_noop("destroy a domain")},
+ {"desc", gettext_noop("Destroy a given domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_destroy[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name, id or uuid"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
{NULL, 0, 0, NULL}
};
return FALSE;
if (virDomainDestroy(dom) == 0) {
- vshPrint(ctl, "Domain %s destroyed\n", name);
+ vshPrint(ctl, _("Domain %s destroyed\n"), name);
} else {
- vshError(ctl, FALSE, "Failed to destroy domain\n");
+ vshError(ctl, FALSE, _("Failed to destroy domain %s"), name);
ret = FALSE;
virDomainFree(dom);
}
*/
static vshCmdInfo info_dominfo[] = {
{"syntax", "dominfo <domain>"},
- {"help", "domain information"},
- {"desc", "Returns basic information about the domain."},
+ {"help", gettext_noop("domain information")},
+ {"desc", gettext_noop("Returns basic information about the domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_dominfo[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name, id or uuid"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
{NULL, 0, 0, NULL}
};
id = virDomainGetID(dom);
if (id == ((unsigned int)-1))
- vshPrint(ctl, "%-15s %s\n", "Id:", "-");
+ vshPrint(ctl, "%-15s %s\n", _("Id:"), "-");
else
- vshPrint(ctl, "%-15s %d\n", "Id:", id);
- vshPrint(ctl, "%-15s %s\n", "Name:", virDomainGetName(dom));
+ vshPrint(ctl, "%-15s %d\n", _("Id:"), id);
+ vshPrint(ctl, "%-15s %s\n", _("Name:"), virDomainGetName(dom));
+
if (virDomainGetUUIDString(dom, &uuid[0])==0)
- vshPrint(ctl, "%-15s %s\n", "UUID:", uuid);
+ vshPrint(ctl, "%-15s %s\n", _("UUID:"), uuid);
if ((str = virDomainGetOSType(dom))) {
- vshPrint(ctl, "%-15s %s\n", "OS Type:", str);
+ vshPrint(ctl, "%-15s %s\n", _("OS Type:"), str);
free(str);
}
if (virDomainGetInfo(dom, &info) == 0) {
- vshPrint(ctl, "%-15s %s\n", "State:",
- vshDomainStateToString(info.state));
+ vshPrint(ctl, "%-15s %s\n", _("State:"),
+ _N(vshDomainStateToString(info.state)));
- vshPrint(ctl, "%-15s %d\n", "CPU(s):", info.nrVirtCpu);
+ vshPrint(ctl, "%-15s %d\n", _("CPU(s):"), info.nrVirtCpu);
if (info.cpuTime != 0) {
double cpuUsed = info.cpuTime;
cpuUsed /= 1000000000.0;
- vshPrint(ctl, "%-15s %.1lfs\n", "CPU time:", cpuUsed);
+ vshPrint(ctl, "%-15s %.1lfs\n", _("CPU time:"), cpuUsed);
}
- vshPrint(ctl, "%-15s %lu kB\n", "Max memory:",
+ vshPrint(ctl, "%-15s %lu kB\n", _("Max memory:"),
info.maxMem);
- vshPrint(ctl, "%-15s %lu kB\n", "Used memory:",
+ vshPrint(ctl, "%-15s %lu kB\n", _("Used memory:"),
info.memory);
} else {
*/
static vshCmdInfo info_vcpuinfo[] = {
{"syntax", "vcpuinfo <domain>"},
- {"help", "domain vcpu information"},
- {"desc", "Returns basic information about the domain virtual CPUs."},
+ {"help", gettext_noop("domain vcpu information")},
+ {"desc", gettext_noop("Returns basic information about the domain virtual CPUs.")},
{NULL, NULL}
};
static vshCmdOptDef opts_vcpuinfo[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name, id or uuid"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
{NULL, 0, 0, NULL}
};
int n;
for (n = 0 ; n < ncpus ; n++) {
unsigned int m;
- vshPrint(ctl, "%-15s %d\n", "VCPU:", n);
- vshPrint(ctl, "%-15s %d\n", "CPU:", cpuinfo[n].cpu);
- vshPrint(ctl, "%-15s %s\n", "State:",
- vshDomainVcpuStateToString(cpuinfo[n].state));
+ vshPrint(ctl, "%-15s %d\n", _("VCPU:"), n);
+ vshPrint(ctl, "%-15s %d\n", _("CPU:"), cpuinfo[n].cpu);
+ vshPrint(ctl, "%-15s %s\n", _("State:"),
+ _N(vshDomainVcpuStateToString(cpuinfo[n].state)));
if (cpuinfo[n].cpuTime != 0) {
double cpuUsed = cpuinfo[n].cpuTime;
cpuUsed /= 1000000000.0;
- vshPrint(ctl, "%-15s %.1lfs\n", "CPU time:", cpuUsed);
+ vshPrint(ctl, "%-15s %.1lfs\n", _("CPU time:"), cpuUsed);
}
- vshPrint(ctl, "%-15s ", "CPU Affinity:");
+ vshPrint(ctl, "%-15s ", _("CPU Affinity:"));
for (m = 0 ; m < VIR_NODEINFO_MAXCPUS(nodeinfo) ; m++) {
vshPrint(ctl, "%c", VIR_CPU_USABLE(cpumap, cpumaplen, n, m) ? 'y' : '-');
}
*/
static vshCmdInfo info_vcpupin[] = {
{"syntax", "vcpupin <domain>"},
- {"help", "control domain vcpu affinity"},
- {"desc", "Pin domain VCPUs to host physical CPUs"},
+ {"help", gettext_noop("control domain vcpu affinity")},
+ {"desc", gettext_noop("Pin domain VCPUs to host physical CPUs.")},
{NULL, NULL}
};
static vshCmdOptDef opts_vcpupin[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name, id or uuid"},
- {"vcpu", VSH_OT_DATA, VSH_OFLAG_REQ, "vcpu number"},
- {"cpulist", VSH_OT_DATA, VSH_OFLAG_REQ, "host cpu number(s) (comma separated)"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
+ {"vcpu", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("vcpu number")},
+ {"cpulist", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("host cpu number(s) (comma separated)")},
{NULL, 0, 0, NULL}
};
*/
static vshCmdInfo info_setvcpus[] = {
{"syntax", "setvcpus <domain> <count>"},
- {"help", "change number of virtual CPUs"},
- {"desc", "Change the number of virtual CPUs active in the guest domain"},
+ {"help", gettext_noop("change number of virtual CPUs")},
+ {"desc", gettext_noop("Change the number of virtual CPUs active in the guest domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_setvcpus[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name, id or uuid"},
- {"count", VSH_OT_DATA, VSH_OFLAG_REQ, "number of virtual CPUs"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
+ {"count", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("number of virtual CPUs")},
{NULL, 0, 0, NULL}
};
*/
static vshCmdInfo info_setmem[] = {
{"syntax", "setmem <domain> <bytes>"},
- {"help", "change memory allocation"},
- {"desc", "Change the current memory allocation in the guest domain"},
+ {"help", gettext_noop("change memory allocation")},
+ {"desc", gettext_noop("Change the current memory allocation in the guest domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_setmem[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name, id or uuid"},
- {"bytes", VSH_OT_DATA, VSH_OFLAG_REQ, "number of bytes of memory"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
+ {"bytes", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("number of bytes of memory")},
{NULL, 0, 0, NULL}
};
*/
static vshCmdInfo info_setmaxmem[] = {
{"syntax", "setmaxmem <domain> <bytes>"},
- {"help", "change maximum memory limit"},
- {"desc", "Change the maximum memory allocation limit in the guest domain"},
+ {"help", gettext_noop("change maximum memory limit")},
+ {"desc", gettext_noop("Change the maximum memory allocation limit in the guest domain.")},
{NULL, NULL}
};
static vshCmdOptDef opts_setmaxmem[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name, id or uuid"},
- {"bytes", VSH_OT_DATA, VSH_OFLAG_REQ, "maxmimum memory limit in bytes"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
+ {"bytes", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("maxmimum memory limit in bytes")},
{NULL, 0, 0, NULL}
};
*/
static vshCmdInfo info_nodeinfo[] = {
{"syntax", "nodeinfo"},
- {"help", "node information"},
- {"desc", "Returns basic information about the node."},
+ {"help", gettext_noop("node information")},
+ {"desc", gettext_noop("Returns basic information about the node.")},
{NULL, NULL}
};
cmdNodeinfo(vshControl * ctl, vshCmd * cmd ATTRIBUTE_UNUSED)
{
virNodeInfo info;
-
+
if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
return FALSE;
if (virNodeGetInfo(ctl->conn, &info) < 0) {
- vshError(ctl, FALSE, "failed to get node information");
- return FALSE;
- }
- vshPrint(ctl, "%-20s %s\n", "CPU model:", info.model);
- vshPrint(ctl, "%-20s %d\n", "CPU(s):", info.cpus);
- vshPrint(ctl, "%-20s %d MHz\n", "CPU frequency:", info.mhz);
- vshPrint(ctl, "%-20s %d\n", "CPU socket(s):", info.sockets);
- vshPrint(ctl, "%-20s %d\n", "Core(s) per socket:", info.cores);
- vshPrint(ctl, "%-20s %d\n", "Thread(s) per core:", info.threads);
- vshPrint(ctl, "%-20s %d\n", "NUMA cell(s):", info.nodes);
- vshPrint(ctl, "%-20s %lu kB\n", "Memory size:", info.memory);
-
+ vshError(ctl, FALSE, _("failed to get node information"));
+ return FALSE;
+ }
+ vshPrint(ctl, "%-20s %s\n", _("CPU model:"), info.model);
+ vshPrint(ctl, "%-20s %d\n", _("CPU(s):"), info.cpus);
+ vshPrint(ctl, "%-20s %d MHz\n", _("CPU frequency:"), info.mhz);
+ vshPrint(ctl, "%-20s %d\n", _("CPU socket(s):"), info.sockets);
+ vshPrint(ctl, "%-20s %d\n", _("Core(s) per socket:"), info.cores);
+ vshPrint(ctl, "%-20s %d\n", _("Thread(s) per core:"), info.threads);
+ vshPrint(ctl, "%-20s %d\n", _("NUMA cell(s):"), info.nodes);
+ vshPrint(ctl, "%-20s %lu kB\n", _("Memory size:"), info.memory);
+
return TRUE;
}
*/
static vshCmdInfo info_dumpxml[] = {
{"syntax", "dumpxml <name>"},
- {"help", "domain information in XML"},
- {"desc", "Ouput the domain information as an XML dump to stdout"},
+ {"help", gettext_noop("domain information in XML")},
+ {"desc", gettext_noop("Ouput the domain information as an XML dump to stdout.")},
{NULL, NULL}
};
static vshCmdOptDef opts_dumpxml[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name, id, uuid"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
{NULL, 0, 0, NULL}
};
*/
static vshCmdInfo info_domname[] = {
{"syntax", "domname <domain>"},
- {"help", "convert a domain Id or UUID to domain name"},
+ {"help", gettext_noop("convert a domain id or UUID to domain name")},
{NULL, NULL}
};
static vshCmdOptDef opts_domname[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain id or uuid"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain id or uuid")},
{NULL, 0, 0, NULL}
};
*/
static vshCmdInfo info_domid[] = {
{"syntax", "domid <domain>"},
- {"help", "convert a domain name or UUID to domain Id"},
+ {"help", gettext_noop("convert a domain name or UUID to domain id")},
{NULL, NULL}
};
static vshCmdOptDef opts_domid[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name or uuid"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name or uuid")},
{NULL, 0, 0, NULL}
};
*/
static vshCmdInfo info_domuuid[] = {
{"syntax", "domuuid <domain>"},
- {"help", "convert a domain name or id to domain UUID"},
+ {"help", gettext_noop("convert a domain name or id to domain UUID")},
{NULL, NULL}
};
static vshCmdOptDef opts_domuuid[] = {
- {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain id or name"},
+ {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain id or name")},
{NULL, 0, 0, NULL}
};
if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
return FALSE;
- if (!(dom = vshCommandOptDomainBy(ctl, cmd, "domain", NULL,
+ if (!(dom = vshCommandOptDomainBy(ctl, cmd, "domain", NULL,
VSH_DOMBYNAME|VSH_DOMBYID)))
return FALSE;
-
+
if (virDomainGetUUIDString(dom, uuid) != -1)
vshPrint(ctl, "%s\n", uuid);
else
- vshError(ctl, FALSE, "failed to get domain UUID");
-
+ vshError(ctl, FALSE, _("failed to get domain UUID"));
+
return TRUE;
}
*/
static vshCmdInfo info_version[] = {
{"syntax", "version"},
- {"help", "show versions"},
- {"desc", "Display the version information available"},
+ {"help", gettext_noop("show version")},
+ {"desc", gettext_noop("Display the system version information.")},
{NULL, NULL}
};
hvType = virConnectGetType(ctl->conn);
if (hvType == NULL) {
- vshError(ctl, FALSE, "failed to get hypervisor type\n");
+ vshError(ctl, FALSE, _("failed to get hypervisor type"));
return FALSE;
}
includeVersion %= 1000000;
minor = includeVersion / 1000;
rel = includeVersion % 1000;
- vshPrint(ctl, "Compiled against library: libvir %d.%d.%d\n",
+ vshPrint(ctl, _("Compiled against library: libvir %d.%d.%d\n"),
major, minor, rel);
ret = virGetVersion(&libVersion, hvType, &apiVersion);
if (ret < 0) {
- vshError(ctl, FALSE, "failed to get the library version");
+ vshError(ctl, FALSE, _("failed to get the library version"));
return FALSE;
}
major = libVersion / 1000000;
libVersion %= 1000000;
minor = libVersion / 1000;
rel = libVersion % 1000;
- vshPrint(ctl, "Using library: libvir %d.%d.%d\n",
+ vshPrint(ctl, _("Using library: libvir %d.%d.%d\n"),
major, minor, rel);
major = apiVersion / 1000000;
apiVersion %= 1000000;
minor = apiVersion / 1000;
rel = apiVersion % 1000;
- vshPrint(ctl, "Using API: %s %d.%d.%d\n", hvType,
+ vshPrint(ctl, _("Using API: %s %d.%d.%d\n"), hvType,
major, minor, rel);
ret = virConnectGetVersion(ctl->conn, &hvVersion);
if (ret < 0) {
- vshError(ctl, FALSE, "failed to get the hypervisor version");
+ vshError(ctl, FALSE, _("failed to get the hypervisor version"));
return FALSE;
}
if (hvVersion == 0) {
vshPrint(ctl,
- "cannot extract running %s hypervisor version\n", hvType);
+ _("Cannot extract running %s hypervisor version\n"), hvType);
} else {
major = hvVersion / 1000000;
hvVersion %= 1000000;
minor = hvVersion / 1000;
rel = hvVersion % 1000;
- vshPrint(ctl, "Running hypervisor: %s %d.%d.%d\n",
+ vshPrint(ctl, _("Running hypervisor: %s %d.%d.%d\n"),
hvType, major, minor, rel);
}
return TRUE;
*/
static vshCmdInfo info_quit[] = {
{"syntax", "quit"},
- {"help", "quit this interactive terminal"},
+ {"help", gettext_noop("quit this interactive terminal")},
{NULL, NULL}
};
if (!ok) {
vshError(ctl, FALSE,
d->type == VSH_OT_DATA ?
- "command '%s' requires <%s> option" :
- "command '%s' requires --%s option",
+ _("command '%s' requires <%s> option") :
+ _("command '%s' requires --%s option"),
def->name, d->name);
err = 1;
}
vshCmdDef *def = vshCmddefSearch(cmdname);
if (!def) {
- vshError(ctl, FALSE, "command '%s' doesn't exist", cmdname);
+ vshError(ctl, FALSE, _("command '%s' doesn't exist"), cmdname);
return FALSE;
} else {
vshCmdOptDef *opt;
- const char *desc = vshCmddefGetInfo(def, "desc");
- const char *help = vshCmddefGetInfo(def, "help");
+ const char *desc = _N(vshCmddefGetInfo(def, "desc"));
+ const char *help = _N(vshCmddefGetInfo(def, "help"));
const char *syntax = vshCmddefGetInfo(def, "syntax");
- fputs(" NAME\n", stdout);
+ fputs(_(" NAME\n"), stdout);
fprintf(stdout, " %s - %s\n", def->name, help);
if (syntax) {
- fputs("\n SYNOPSIS\n", stdout);
+ fputs(("\n SYNOPSIS\n"), stdout);
if (!withprog)
fprintf(stdout, " %s\n", syntax);
else
fprintf(stdout, " %s %s\n", progname, syntax);
}
if (desc) {
- fputs("\n DESCRIPTION\n", stdout);
+ fputs(_("\n DESCRIPTION\n"), stdout);
fprintf(stdout, " %s\n", desc);
}
if (def->opts) {
- fputs("\n OPTIONS\n", stdout);
+ fputs(_("\n OPTIONS\n"), stdout);
for (opt = def->opts; opt->name; opt++) {
char buf[256];
if (opt->type == VSH_OT_BOOL)
snprintf(buf, sizeof(buf), "--%s", opt->name);
else if (opt->type == VSH_OT_INT)
- snprintf(buf, sizeof(buf), "--%s <number>", opt->name);
+ snprintf(buf, sizeof(buf), _("--%s <number>"), opt->name);
else if (opt->type == VSH_OT_STRING)
- snprintf(buf, sizeof(buf), "--%s <string>", opt->name);
+ snprintf(buf, sizeof(buf), _("--%s <string>"), opt->name);
else if (opt->type == VSH_OT_DATA)
snprintf(buf, sizeof(buf), "<%s>", opt->name);
int id;
if (!(n = vshCommandOptString(cmd, optname, NULL))) {
- vshError(ctl, FALSE, "undefined domain name or id");
+ vshError(ctl, FALSE, _("undefined domain name or id"));
return NULL;
}
}
if (!dom)
- vshError(ctl, FALSE, "failed to get domain '%s'", n);
+ vshError(ctl, FALSE, _("failed to get domain '%s'"), n);
return dom;
}
return ret;
if (ctl->timing)
- vshPrint(ctl, "\n(Time: %.3f ms)\n\n",
+ vshPrint(ctl, _("\n(Time: %.3f ms)\n\n"),
DIFF_MSEC(&after, &before));
else
vshPrintExtra(ctl, "\n");
sz++;
}
if (quote) {
- vshError(ctl, FALSE, "missing \"");
+ vshError(ctl, FALSE, _("missing \""));
return VSH_TK_ERROR;
}
if (tkstr == NULL || *tkstr == '\0' || p == NULL)
/* first token must be command name */
if (tk != VSH_TK_DATA) {
vshError(ctl, FALSE,
- "unexpected token (command name): '%s'",
+ _("unexpected token (command name): '%s'"),
tkdata);
goto syntaxError;
}
if (!(cmd = vshCmddefSearch(tkdata))) {
- vshError(ctl, FALSE, "unknown command: '%s'", tkdata);
+ vshError(ctl, FALSE, _("unknown command: '%s'"), tkdata);
goto syntaxError; /* ... or ignore this command only? */
}
free(tkdata);
} else if (tk == VSH_TK_OPTION) {
if (!(opt = vshCmddefGetOption(cmd, tkdata))) {
vshError(ctl, FALSE,
- "command '%s' doesn't support option --%s",
+ _("command '%s' doesn't support option --%s"),
cmd->name, tkdata);
goto syntaxError;
}
goto syntaxError;
if (tk != VSH_TK_DATA) {
vshError(ctl, FALSE,
- "expected syntax: --%s <%s>",
+ _("expected syntax: --%s <%s>"),
opt->name,
opt->type ==
- VSH_OT_INT ? "number" : "string");
+ VSH_OT_INT ? _("number") : _("string"));
goto syntaxError;
}
}
} else if (tk == VSH_TK_DATA) {
if (!(opt = vshCmddefGetData(cmd, data_ct++))) {
- vshError(ctl, FALSE, "unexpected data '%s'", tkdata);
+ vshError(ctl, FALSE, _("unexpected data '%s'"), tkdata);
goto syntaxError;
}
}
vshDebug(ctl, 4, "%s: %s(%s): %s\n",
cmd->name,
opt->name,
- tk == VSH_TK_OPTION ? "OPTION" : "DATA",
+ tk == VSH_TK_OPTION ? _("OPTION") : _("DATA"),
arg->data);
}
if (!str)
{
switch (state) {
case VIR_DOMAIN_RUNNING:
- return "running ";
+ return gettext_noop("running");
case VIR_DOMAIN_BLOCKED:
- return "blocked ";
+ return gettext_noop("blocked");
case VIR_DOMAIN_PAUSED:
- return "paused ";
+ return gettext_noop("paused");
case VIR_DOMAIN_SHUTDOWN:
- return "in shutdown";
+ return gettext_noop("in shutdown");
case VIR_DOMAIN_SHUTOFF:
- return "shut off";
+ return gettext_noop("shut off");
case VIR_DOMAIN_CRASHED:
- return "crashed";
+ return gettext_noop("crashed");
default:
- return "no state"; /* = dom0 state */
+ return gettext_noop("no state"); /* = dom0 state */
}
return NULL;
}
{
switch (state) {
case VIR_VCPU_OFFLINE:
- return "offline";
+ return gettext_noop("offline");
case VIR_VCPU_BLOCKED:
- return "blocked";
+ return gettext_noop("blocked");
case VIR_VCPU_RUNNING:
- return "running";
+ return gettext_noop("running");
default:
- return "no state";
+ return gettext_noop("no state");
}
return NULL;
}
*/
if (!conn) {
if (showerror)
- vshError(ctl, FALSE, "no valid connection.");
+ vshError(ctl, FALSE, _("no valid connection"));
return FALSE;
}
return TRUE;
va_list ap;
if (doexit)
- fprintf(stderr, "%s: error: ", progname);
+ fprintf(stderr, _("%s: error: "), progname);
else
- fputs("error: ", stderr);
+ fputs(_("error: "), stderr);
va_start(ap, format);
vfprintf(stderr, format, ap);
if ((x = malloc(size)))
return x;
- vshError(ctl, TRUE, "%s: %d: failed to allocate %d bytes\n",
- filename, line, (int) size);
+ vshError(ctl, TRUE, _("%s: %d: failed to allocate %d bytes"),
+ filename, line, (int) size);
return NULL;
}
if ((x = calloc(nmemb, size)))
return x;
- vshError(ctl, TRUE, "%s: %d: failed to allocate %d bytes\n",
- filename, line, (int) (size*nmemb));
+ vshError(ctl, TRUE, _("%s: %d: failed to allocate %d bytes"),
+ filename, line, (int) (size*nmemb));
return NULL;
}
if ((x = strdup(s)))
return x;
- vshError(ctl, TRUE, "%s: %d: failed to allocate %d bytes\n",
- filename, line, strlen(s));
+ vshError(ctl, TRUE, _("%s: %d: failed to allocate %d bytes"),
+ filename, line, strlen(s));
return NULL;
}
ctl->conn = virConnectOpenReadOnly(ctl->name);
if (!ctl->conn)
- vshError(ctl, TRUE, "failed to connect to the hypervisor");
+ vshError(ctl, TRUE, _("failed to connect to the hypervisor"));
return TRUE;
}
/* global help */
if (!cmdname) {
- fprintf(stdout, "\n%s [options] [commands]\n\n"
- " options:\n"
- " -c | --connect <name> optional argument currently unused (or used for tests only)\n"
- " -d | --debug <num> debug level [0-5]\n"
- " -h | --help this help\n"
- " -q | --quiet quiet mode\n"
- " -t | --timing print timing information\n"
- " -v | --version program version\n\n"
- " commands (non interactive mode):\n", progname);
+ fprintf(stdout, _("\n%s [options] [commands]\n\n"
+ " options:\n"
+ " -c | --connect <uri> hypervisor connection URI\n"
+ " -d | --debug <num> debug level [0-5]\n"
+ " -h | --help this help\n"
+ " -q | --quiet quiet mode\n"
+ " -t | --timing print timing information\n"
+ " -v | --version program version\n\n"
+ " commands (non interactive mode):\n"), progname);
for (cmd = commands; cmd->name; cmd++)
fprintf(stdout,
- " %-15s %s\n", cmd->name, vshCmddefGetInfo(cmd,
- "help"));
+ " %-15s %s\n", cmd->name, _N(vshCmddefGetInfo(cmd,
+ "help")));
fprintf(stdout,
- "\n (specify --help <command> for details about the command)\n\n");
+ _("\n (specify --help <command> for details about the command)\n\n"));
return;
}
if (!vshCmddefHelp(ctl, cmdname, TRUE))
exit(EXIT_SUCCESS);
default:
vshError(ctl, TRUE,
- "unsupported option '-%c'. See --help.", arg);
+ _("unsupported option '-%c'. See --help."), arg);
break;
}
}
char *defaultConn;
int ret = TRUE;
+ if (!setlocale(LC_ALL, "")) {
+ perror("setlocale");
+ return -1;
+ }
+ if (!bindtextdomain(GETTEXT_PACKAGE, LOCALEBASEDIR)) {
+ perror("bindtextdomain");
+ return -1;
+ }
+ if (!textdomain(GETTEXT_PACKAGE)) {
+ perror("textdomain");
+ return -1;
+ }
+
if (!(progname = strrchr(argv[0], '/')))
progname = argv[0];
else
/* interactive mode */
if (!ctl->quiet) {
vshPrint(ctl,
- "Welcome to %s, the virtualization interactive terminal.\n\n",
+ _("Welcome to %s, the virtualization interactive terminal.\n\n"),
progname);
vshPrint(ctl,
- "Type: 'help' for help with commands\n"
- " 'quit' to quit\n\n");
+ _("Type: 'help' for help with commands\n"
+ " 'quit' to quit\n\n"));
}
vshReadlineInit();
do {
lvl = "";
break;
case VIR_ERR_WARNING:
- lvl = "warning";
+ lvl = _("warning");
break;
case VIR_ERR_ERROR:
- lvl = "error";
+ lvl = _("error");
break;
}
switch (err->domain) {
* formats the message
*/
if (msg == NULL) {
- str = strdup("No error message provided");
+ str = strdup(_("No error message provided"));
} else {
VIR_GET_VAR_STR(msg, str);
}
return (NULL);
case VIR_ERR_INTERNAL_ERROR:
if (info != NULL)
- errmsg = "internal error %s";
+ errmsg = _("internal error %s");
else
- errmsg = "internal error";
+ errmsg = _("internal error");
break;
case VIR_ERR_NO_MEMORY:
- errmsg = "out of memory";
+ errmsg = _("out of memory");
break;
case VIR_ERR_NO_SUPPORT:
if (info != NULL)
- errmsg = "no support for hypervisor";
+ errmsg = _("no support for hypervisor");
else
- errmsg = "no support for hypervisor %s";
+ errmsg = _("no support for hypervisor %s");
break;
case VIR_ERR_NO_CONNECT:
if (info == NULL)
- errmsg = "could not connect to hypervisor";
+ errmsg = _("could not connect to hypervisor");
else
- errmsg = "could not connect to %s";
+ errmsg = _("could not connect to %s");
break;
case VIR_ERR_INVALID_CONN:
if (info == NULL)
- errmsg = "invalid connection pointer in";
+ errmsg = _("invalid connection pointer in");
else
- errmsg = "invalid connection pointer in %s";
+ errmsg = _("invalid connection pointer in %s");
break;
case VIR_ERR_INVALID_DOMAIN:
if (info == NULL)
- errmsg = "invalid domain pointer in";
+ errmsg = _("invalid domain pointer in");
else
- errmsg = "invalid domain pointer in %s";
+ errmsg = _("invalid domain pointer in %s");
break;
case VIR_ERR_INVALID_ARG:
if (info == NULL)
- errmsg = "invalid argument in";
+ errmsg = _("invalid argument in");
else
- errmsg = "invalid argument in %s";
+ errmsg = _("invalid argument in %s");
break;
case VIR_ERR_OPERATION_FAILED:
if (info != NULL)
- errmsg = "operation failed: %s";
+ errmsg = _("operation failed: %s");
else
- errmsg = "operation failed";
+ errmsg = _("operation failed");
break;
case VIR_ERR_GET_FAILED:
if (info != NULL)
- errmsg = "GET operation failed: %s";
+ errmsg = _("GET operation failed: %s");
else
- errmsg = "GET operation failed";
+ errmsg = _("GET operation failed");
break;
case VIR_ERR_POST_FAILED:
if (info != NULL)
- errmsg = "POST operation failed: %s";
+ errmsg = _("POST operation failed: %s");
else
- errmsg = "POST operation failed";
+ errmsg = _("POST operation failed");
break;
case VIR_ERR_HTTP_ERROR:
- errmsg = "got unknown HTTP error code %d";
+ errmsg = _("got unknown HTTP error code %d");
break;
case VIR_ERR_UNKNOWN_HOST:
if (info != NULL)
- errmsg = "unknown host %s";
+ errmsg = _("unknown host %s");
else
- errmsg = "unknown host";
+ errmsg = _("unknown host");
break;
case VIR_ERR_SEXPR_SERIAL:
if (info != NULL)
- errmsg = "failed to serialize S-Expr: %s";
+ errmsg = _("failed to serialize S-Expr: %s");
else
- errmsg = "failed to serialize S-Expr";
+ errmsg = _("failed to serialize S-Expr");
break;
case VIR_ERR_NO_XEN:
if (info == NULL)
- errmsg = "could not use Xen hypervisor entry";
+ errmsg = _("could not use Xen hypervisor entry");
else
- errmsg = "could not use Xen hypervisor entry %s";
+ errmsg = _("could not use Xen hypervisor entry %s");
break;
case VIR_ERR_NO_XENSTORE:
if (info == NULL)
- errmsg = "could not connect to Xen Store";
+ errmsg = _("could not connect to Xen Store");
else
- errmsg = "could not connect to Xen Store %s";
+ errmsg = _("could not connect to Xen Store %s");
break;
case VIR_ERR_XEN_CALL:
- errmsg = "failed Xen syscall %s %d";
+ errmsg = _("failed Xen syscall %s %d");
break;
case VIR_ERR_OS_TYPE:
if (info == NULL)
- errmsg = "unknown OS type";
+ errmsg = _("unknown OS type");
else
- errmsg = "unknown OS type %s";
+ errmsg = _("unknown OS type %s");
break;
case VIR_ERR_NO_KERNEL:
- errmsg = "missing kernel information";
+ errmsg = _("missing kernel information");
break;
case VIR_ERR_NO_ROOT:
if (info == NULL)
- errmsg = "missing root device information";
+ errmsg = _("missing root device information");
else
- errmsg = "missing root device information in %s";
+ errmsg = _("missing root device information in %s");
break;
case VIR_ERR_NO_SOURCE:
if (info == NULL)
- errmsg = "missing source information for device";
+ errmsg = _("missing source information for device");
else
- errmsg = "missing source information for device %s";
+ errmsg = _("missing source information for device %s");
break;
case VIR_ERR_NO_TARGET:
if (info == NULL)
- errmsg = "missing target information for device";
+ errmsg = _("missing target information for device");
else
- errmsg = "missing target information for device %s";
+ errmsg = _("missing target information for device %s");
break;
case VIR_ERR_NO_NAME:
if (info == NULL)
- errmsg = "missing domain name information";
+ errmsg = _("missing domain name information");
else
- errmsg = "missing domain name information in %s";
+ errmsg = _("missing domain name information in %s");
break;
case VIR_ERR_NO_OS:
if (info == NULL)
- errmsg = "missing operating system information";
+ errmsg = _("missing operating system information");
else
- errmsg = "missing operating system information for %s";
+ errmsg = _("missing operating system information for %s");
break;
case VIR_ERR_NO_DEVICE:
if (info == NULL)
- errmsg = "missing devices information";
+ errmsg = _("missing devices information");
else
- errmsg = "missing devices information for %s";
+ errmsg = _("missing devices information for %s");
break;
case VIR_ERR_DRIVER_FULL:
if (info == NULL)
- errmsg = "too many drivers registered";
+ errmsg = _("too many drivers registered");
else
- errmsg = "too many drivers registered in %s";
+ errmsg = _("too many drivers registered in %s");
break;
case VIR_ERR_CALL_FAILED:
if (info == NULL)
- errmsg = "library call failed, possibly not supported";
+ errmsg = _("library call failed, possibly not supported");
else
- errmsg = "library call %s failed, possibly not supported";
+ errmsg = _("library call %s failed, possibly not supported");
break;
case VIR_ERR_XML_ERROR:
if (info == NULL)
- errmsg = "XML description not well formed or invalid";
+ errmsg = _("XML description not well formed or invalid");
else
- errmsg = "XML description for %s is not well formed or invalid";
+ errmsg = _("XML description for %s is not well formed or invalid");
break;
case VIR_ERR_DOM_EXIST:
if (info == NULL)
- errmsg = "this domain exists already";
+ errmsg = _("this domain exists already");
else
- errmsg = "domain %s exists already";
+ errmsg = _("domain %s exists already");
break;
case VIR_ERR_OPERATION_DENIED:
if (info == NULL)
- errmsg = "operation forbidden for read only access";
+ errmsg = _("operation forbidden for read only access");
else
- errmsg = "operation %s forbidden for read only access";
+ errmsg = _("operation %s forbidden for read only access");
break;
case VIR_ERR_OPEN_FAILED:
if (info == NULL)
- errmsg = "failed to open configuration file for reading";
+ errmsg = _("failed to open configuration file for reading");
else
- errmsg = "failed to open %s for reading";
+ errmsg = _("failed to open %s for reading");
break;
case VIR_ERR_READ_FAILED:
if (info == NULL)
- errmsg = "failed to read configuration file";
+ errmsg = _("failed to read configuration file");
else
- errmsg = "failed to read configuration file %s";
+ errmsg = _("failed to read configuration file %s");
break;
case VIR_ERR_PARSE_FAILED:
if (info == NULL)
- errmsg = "failed to parse configuration file";
+ errmsg = _("failed to parse configuration file");
else
- errmsg = "failed to parse configuration file %s";
+ errmsg = _("failed to parse configuration file %s");
break;
case VIR_ERR_CONF_SYNTAX:
if (info == NULL)
- errmsg = "configuration file syntax error";
+ errmsg = _("configuration file syntax error");
else
- errmsg = "configuration file syntax error: %s";
+ errmsg = _("configuration file syntax error: %s");
break;
case VIR_ERR_WRITE_FAILED:
if (info == NULL)
- errmsg = "failed to write configuration file";
+ errmsg = _("failed to write configuration file");
else
- errmsg = "failed to write configuration file: %s";
+ errmsg = _("failed to write configuration file: %s");
break;
}
return (errmsg);
retry:
dominfos = malloc(maxids * sizeof(xen_v0_getdomaininfo));
if (dominfos == NULL) {
- virXenError(VIR_ERR_NO_MEMORY, "failed to allocate %d domain info",
+ virXenError(VIR_ERR_NO_MEMORY, _("allocating %d domain info"),
maxids);
return(-1);
}
dominfos = malloc(maxids * sizeof(xen_v0_getdomaininfo));
if (dominfos == NULL) {
- virXenError(VIR_ERR_NO_MEMORY, "failed to allocate %d domain info",
+ virXenError(VIR_ERR_NO_MEMORY, "allocating %d domain info",
maxids);
return(-1);
}
if (len == -1) {
if (do_read)
virXendError(NULL, VIR_ERR_INTERNAL_ERROR,
- "faid to read from Xen Daemon");
+ _("failed to read from Xen Daemon"));
else
virXendError(NULL, VIR_ERR_INTERNAL_ERROR,
- "faid to read from Xen Daemon");
+ _("failed to read from Xen Daemon"));
return (-1);
}
if (ptr == NULL) {
/* this should be caught at the interface but ... */
virXendError(xend, VIR_ERR_INTERNAL_ERROR,
- "Failed to urlencode the create S-Expr");
+ _("failed to urlencode the create S-Expr"));
return (-1);
}
value = sexpr_node(root, "domain/domid");
if (value == NULL) {
virXendError(xend, VIR_ERR_INTERNAL_ERROR,
- "domain information incomplete, missing domid");
+ _("domain information incomplete, missing domid"));
goto error;
}
ret = strtol(value, NULL, 0);
if ((ret == 0) && (value[0] != '0')) {
virXendError(xend, VIR_ERR_INTERNAL_ERROR,
- "domain information incorrect domid not numberic");
+ _("domain information incorrect domid not numeric"));
ret = -1;
} else if (uuid != NULL) {
char **ptr = (char **) &uuid;
if (sexpr_uuid(ptr, root, "domain/uuid") == NULL) {
virXendError(xend, VIR_ERR_INTERNAL_ERROR,
- "domain information incomplete, missing uuid");
+ _("domain information incomplete, missing uuid"));
}
}
name = sexpr_node(root, "domain/name");
if (name == NULL) {
virXendError(xend, VIR_ERR_INTERNAL_ERROR,
- "domain information incomplete, missing name");
+ _("domain information incomplete, missing name"));
goto error;
}
if (domname)
dst_uuid = (char *)&uuid[0];
if (sexpr_uuid(&dst_uuid, root, "domain/uuid") == NULL) {
virXendError(xend, VIR_ERR_INTERNAL_ERROR,
- "domain information incomplete, missing uuid");
+ _("domain information incomplete, missing uuid"));
goto error;
}
tmp = sexpr_node(node, "domain/image/hvm/kernel");
if (tmp == NULL) {
virXendError(NULL, VIR_ERR_INTERNAL_ERROR,
- "domain information incomplete, missing kernel");
+ _("domain information incomplete, missing kernel"));
return(-1);
}
virBufferVSprintf(buf, " <loader>%s</loader>\n", tmp);
tmp = sexpr_node(node, "domain/image/linux/kernel");
if (tmp == NULL) {
virXendError(NULL, VIR_ERR_INTERNAL_ERROR,
- "domain information incomplete, missing kernel");
+ _("domain information incomplete, missing kernel"));
return(-1);
}
virBufferVSprintf(buf, " <kernel>%s</kernel>\n", tmp);
domid = sexpr_int(root, "domain/domid");
virBufferVSprintf(&buf, "<domain type='xen' id='%d'>\n", domid);
-
+
tmp = sexpr_node(root, "domain/name");
if (tmp == NULL) {
virXendError(NULL, VIR_ERR_INTERNAL_ERROR,
- "domain information incomplete, missing name");
+ _("domain information incomplete, missing name"));
goto error;
}
virBufferVSprintf(&buf, " <name>%s</name>\n", tmp);
virBufferAdd(&buf, " <pae/>\n", 11);
virBufferAdd(&buf, " </features>\n", 14);
}
-
+
virBufferAdd(&buf, " <devices>\n", 12);
/* in case of HVM we have devices emulation */
if (dst == NULL) {
virXendError(NULL, VIR_ERR_INTERNAL_ERROR,
- "domain information incomplete, vbd has no dev");
+ _("domain information incomplete, vbd has no dev"));
goto error;
}
+
if (!strncmp(dst, "ioemu:", 6))
dst += 6;
/* New style disk config from Xen >= 3.0.3 */
if (dst == NULL) {
virXendError(NULL, VIR_ERR_INTERNAL_ERROR,
- "domain information incomplete, vbd has no dev");
+ _("domain information incomplete, vbd has no dev"));
goto error;
}
+
if (!strncmp(dst, "ioemu:", 6))
dst += 6;
/* New style cdrom config from Xen >= 3.0.3 */
ret = virGetDomain(conn, name, (const unsigned char *) &uuid[0]);
if (ret == NULL) {
- virXendError(conn, VIR_ERR_NO_MEMORY, "Allocating domain");
+ virXendError(conn, VIR_ERR_NO_MEMORY, _("allocating domain"));
return(NULL);
}
ret->handle = sexpr_int(root, "domain/domid");
error:
virXendError(conn, VIR_ERR_INTERNAL_ERROR,
- "failed to parse Xend domain information");
+ _("failed to parse Xend domain information"));
if (ret != NULL)
virFreeDomain(conn, ret);
return(NULL);
ret = xenDaemonOpen_unix(conn, uri->path);
if (ret < 0)
goto failed;
-
+
ret = xenDaemonGetVersion(conn, &version);
if (ret < 0)
goto failed;
ret = virGetDomain(conn, name, uuid);
if (ret == NULL) {
- virXendError(conn, VIR_ERR_NO_MEMORY, "Allocating domain");
+ virXendError(conn, VIR_ERR_NO_MEMORY, _("allocating domain"));
goto error;
}
ret->handle = id;
ret = virGetDomain(conn, name, uuid);
if (ret == NULL) {
- virXendError(conn, VIR_ERR_NO_MEMORY, "Allocating domain");
+ virXendError(conn, VIR_ERR_NO_MEMORY, _("allocating domain"));
goto error;
}
ret->handle = id;
ret = xenDaemonDomainCreateLinux(conn, sexpr);
free(sexpr);
if (ret != 0) {
- fprintf(stderr, "Failed to create domain %s\n", name);
+ fprintf(stderr, _("Failed to create domain %s\n"), name);
goto error;
}
ret = xend_wait_for_devices(conn, name);
if (ret != 0) {
- fprintf(stderr, "Failed to get devices for domain %s\n", name);
+ fprintf(stderr, _("Failed to get devices for domain %s\n"), name);
goto error;
}
ret = xenDaemonDomainResume(dom);
if (ret != 0) {
- fprintf(stderr, "Failed to resume new domain %s\n", name);
+ fprintf(stderr, _("Failed to resume new domain %s\n"), name);
xenDaemonDomainDestroy(dom);
goto error;
}
newbuf = (char *) realloc(buf->content, size);
if (newbuf == NULL) {
- virXMLError(VIR_ERR_NO_MEMORY, "growing buffer", size);
+ virXMLError(VIR_ERR_NO_MEMORY, _("growing buffer"), size);
return (-1);
}
buf->content = newbuf;
virBufferPtr buf;
if (!(buf = malloc(sizeof(*buf)))) {
- virXMLError(VIR_ERR_NO_MEMORY, "allocate new buffer", sizeof(*buf));
+ virXMLError(VIR_ERR_NO_MEMORY, _("allocate new buffer"), sizeof(*buf));
return NULL;
}
if (size && (buf->content = malloc(size))==NULL) {
- virXMLError(VIR_ERR_NO_MEMORY, "allocate buffer content", size);
+ virXMLError(VIR_ERR_NO_MEMORY, _("allocate buffer content"), size);
free(buf);
return NULL;
}
if (node->type == XML_TEXT_NODE) {
char *x = strdup((const char *)node->content);
if (!x)
- xmlRpcError(VIR_ERR_NO_MEMORY, "copying node content",
- strlen((const char *)node->content));
+ xmlRpcError(VIR_ERR_NO_MEMORY, _("copying node content"),
+ strlen((const char *)node->content));
return x;
}
return NULL;
if (!ret)
return NULL;
-
+
for (cur = xmlFirstElement(node); cur; cur = xmlNextElement(cur))
n_elements += 1;
ret->value.array.elements = malloc(n_elements * sizeof(xmlRpcValue));
if (!ret->value.array.elements) {
- xmlRpcError(VIR_ERR_NO_MEMORY, "allocate value array",
- n_elements * sizeof(xmlRpcValue));
+ xmlRpcError(VIR_ERR_NO_MEMORY, _("allocate value array"),
+ n_elements * sizeof(xmlRpcValue));
free(ret);
return NULL;
}
} else if (xmlStrEqual(cur->name, BAD_CAST "value")) {
ret->value = xmlRpcValueUnmarshal(cur);
} else {
- xmlRpcError(VIR_ERR_XML_ERROR, "unexpected dict node", 0);
+ xmlRpcError(VIR_ERR_XML_ERROR, _("unexpected dict node"), 0);
if (ret->name)
free(ret->name);
if (ret->value)
} else if (xmlStrEqual(node->name, BAD_CAST "nil")) {
ret = xmlRpcValueNew(XML_RPC_NIL);
} else {
- xmlRpcError(VIR_ERR_XML_ERROR, "unexpected value node", 0);
+ xmlRpcError(VIR_ERR_XML_ERROR, _("unexpected value node"), 0);
}
return ret;
&contentType,
NULL,
strlen(request));
-
+
if (cxt == NULL) {
- xmlRpcError(VIR_ERR_POST_FAILED, "send request", 0);
+ xmlRpcError(VIR_ERR_POST_FAILED, _("send request"), 0);
goto error;
}
if (contentType && strcmp(contentType, "text/xml") != 0) {
errno = EINVAL;
- xmlRpcError(VIR_ERR_POST_FAILED, "unexpected mime type", 0);
+ xmlRpcError(VIR_ERR_POST_FAILED, _("unexpected mime type"), 0);
goto error;
}
len = xmlNanoHTTPContentLength(cxt);
response = malloc(len + 1);
if (response == NULL) {
- xmlRpcError(VIR_ERR_NO_MEMORY, "allocate response", len);
+ xmlRpcError(VIR_ERR_NO_MEMORY, _("allocate response"), len);
goto error;
}
ret = xmlNanoHTTPRead(cxt, response, len);
errno = EINVAL;
free(response);
response = NULL;
- xmlRpcError(VIR_ERR_POST_FAILED, "read response", 0);
+ xmlRpcError(VIR_ERR_POST_FAILED, _("read response"), 0);
}
response[len] = 0;
size += strlen(value->value.array.elements[i]->value.string) + 1;
if (!(ptr = malloc(size))) {
- xmlRpcError(VIR_ERR_NO_MEMORY, "allocate string array", size);
+ xmlRpcError(VIR_ERR_NO_MEMORY, _("allocate string array"), size);
return NULL;
}
ret = (char **)ptr;
*argc = strlen(fmt);
if (!(argv = malloc(sizeof(*argv) * *argc))) {
- xmlRpcError(VIR_ERR_NO_MEMORY, "read response", sizeof(*argv) * *argc);
+ xmlRpcError(VIR_ERR_NO_MEMORY, _("read response"), sizeof(*argv) * *argc);
return NULL;
}
i = 0;
if (xml == NULL) {
errno = EINVAL;
- xmlRpcError(VIR_ERR_XML_ERROR, "parse server response failed", 0);
+ xmlRpcError(VIR_ERR_XML_ERROR, _("parse server response failed"), 0);
return -1;
}
ret->uri = strdup(uri);
ret->faultMessage = NULL;
} else
- xmlRpcError(VIR_ERR_NO_MEMORY, "allocate new context", sizeof(*ret));
+ xmlRpcError(VIR_ERR_NO_MEMORY, _("allocate new context"), sizeof(*ret));
return ret;
}
if (conn->xshandle == NULL) {
if (!(flags & VIR_DRV_OPEN_QUIET))
virXenStoreError(conn, VIR_ERR_NO_XEN,
- "failed to connect to Xen Store");
+ _("failed to connect to Xen Store"));
return (-1);
}
return (0);
ret = virGetDomain(conn, name, NULL);
if (ret == NULL) {
- virXenStoreError(conn, VIR_ERR_NO_MEMORY, "Allocating domain");
+ virXenStoreError(conn, VIR_ERR_NO_MEMORY, _("allocating domain"));
if (path != NULL)
free(path);
goto done;
-I$(top_srcdir)/include \
-I$(top_srcdir)/src \
@LIBXML_CFLAGS@ \
- -D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=199506L
-
+ -D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=199506L \
+ -DGETTEXT_PACKAGE=\"$(PACKAGE)\"
LDADDS = \
@STATIC_BINARIES@ \
@LIBXML_LIBS@ \
Name: fc4
UUID: ef861801-45b9-11cb-88e3-afbfe5370493
OS Type: linux
-State: running
+State: running
CPU(s): 1
Max memory: 131072 kB
Used memory: 131072 kB
Id Name State
----------------------------------
- 0 fv0 running
- 1 fc4 running
+ 0 fv0 running
+ 1 fc4 running
Id Name State
----------------------------------
- 0 Domain-0 running
+ 0 Domain-0 running