po: switch over to using Weblate for translations

Weblate works a slightly different way than Zanata. Instead of manually
pushing a pot file and fetching po files, Weblate is going to work
automatically with GitLab Merge requests. The main pot file must be
committed to git, and then Weblate fully manages the .po files, using
merge requests to send updates back.

With this new system we don't have a separate .mini.po file. The main
.po file is partially minimized by removing locations but does not
have non-translated msgids removed. This is not a big downside if we
consider that over time most translations should trend towards 100%
translated, and we have purged all 100% non-translated languages.

The main .pot file is generated with alphabetic sort ordering instead
of the default source file location ordering, as this makes the diffs
stable across renames/code movement, which is something we used in the
old .mini.po files.

The only rules needed in the makefile are to refresh the .pot file
and to generate the .gmo files at install time. We must never touch
the .po files locally, not even to rebase them when the .pot is
updated, as that will create merge conflicts with Weblate. Weblate
will take care of all rebases of the .po files in its own fork of
the git repo, and open merge requests to send changes back when
needed.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2020-07-06 16:08:58 +01:00 committed by Daniel Berrange
parent 8a722020da
commit 350d92c926
39 changed files with 930 additions and 113 deletions

View File

@ -7,16 +7,15 @@ MAINTAINERCLEANFILES = $(GMOFILES) $(POTFILE) $(POFILES)
LANGS := $(shell cat $(srcdir)/LINGUAS)
POTFILE_DEPS := $(shell $(SED) 's,^,$(top_srcdir)/,' $(srcdir)/POTFILES)
POTFILE := $(srcdir)/$(DOMAIN).pot
POFILES := $(LANGS:%=$(srcdir)/%.po)
GMOFILES := $(LANGS:%=$(srcdir)/%.gmo)
POFILES := $(LANGS:%=%.po)
GMOFILES := $(LANGS:%=%.gmo)
EXTRA_DIST = \
POTFILES \
LINGUAS \
$(POTFILE) \
$(POFILES) \
$(GMOFILES)
$(POFILES)
if HAVE_GNU_GETTEXT_TOOLS
@ -30,6 +29,7 @@ XGETTEXT_ARGS = \
--package-version="$(PACKAGE_VERSION)" \
--msgid-bugs-address="$(MSGID_BUGS_ADDRESS)" \
--directory=$(top_srcdir) \
--sort-output \
$(NULL)
SED_PO_FIXUP_ARGS = \
@ -38,47 +38,17 @@ SED_PO_FIXUP_ARGS = \
-e "s|Copyright (C) YEAR|Copyright (C) $$(date +'%Y')|" \
$(NULL)
all: update-po
update-po: $(POFILES)
update-gmo: $(GMOFILES)
update-mini-po: $(POTFILE)
for lang in $(LANGS); do \
echo "Minimizing $$lang content" && \
$(MSGMERGE) --no-location --no-fuzzy-matching --sort-output \
$(srcdir)/$$lang.po $(POTFILE) | \
$(SED) $(SED_PO_FIXUP_ARGS) | \
$(PERL) $(top_srcdir)/build-aux/minimize-po.pl > \
$(srcdir)/$$lang.mini.po ; \
done
push-pot: $(POTFILE)
zanata push --push-type=source
pull-po: $(POTFILE)
zanata pull --create-skeletons
$(MAKE) update-mini-po
$(MAKE) update-gmo
$(POTFILE): POTFILES $(POTFILE_DEPS)
$(XGETTEXT) -o $@-t $(XGETTEXT_ARGS) \
virt-viewer.pot:
$(XGETTEXT) -o $(POTFILE)-t $(XGETTEXT_ARGS) \
--files-from=$(abs_srcdir)/POTFILES
$(SED) $(SED_PO_FIXUP_ARGS) < $@-t > $@
rm -f $@-t
$(SED) $(SED_PO_FIXUP_ARGS) < $(POTFILE)-t > $(POTFILE)
rm -f $(POTFILE)-t
$(srcdir)/%.po: $(srcdir)/%.mini.po $(POTFILE)
$(MSGMERGE) --no-fuzzy-matching $< $(POTFILE) | \
$(SED) $(SED_PO_FIXUP_ARGS) > $@
$(srcdir)/%.gmo: $(srcdir)/%.po
%.gmo: %.po
rm -f $@ $@-t
$(MSGFMT) -c -o $@-t $<
mv $@-t $@
.PRECIOUS: $(POTFILE) $(POFILES)
endif HAVE_GNU_GETTEXT_TOOLS
if ENABLE_NLS
@ -91,7 +61,7 @@ install-data-hook: $(GMOFILES)
for lang in $(LANGS); do \
d=$(DESTDIR)$(langinstdir)/$$lang/LC_MESSAGES; \
mkdir -p $$d; \
install -m 0644 $(srcdir)/$$lang.gmo $$d/$(DOMAIN).mo; \
install -m 0644 $$lang.gmo $$d/$(DOMAIN).mo; \
done
uninstall-hook:

View File

@ -1,76 +1,41 @@
===========================
Virt-Viewer Message Translation
===========================
Virt-Viewer translatable messages are maintained using the GNU Gettext tools
and file formats, in combination with the Zanata web service.
.. image:: https://translate.fedoraproject.org/widgets/virt-viewer/-/virt-viewer/multi-auto.svg
:target: https://translate.fedoraproject.org/engage/virt-viewer/
:alt: Translation status
Virt-Viewer translatable messages are maintained using the GNU Gettext tools and
file formats, in combination with the Fedora Weblate web service.
https://translate.fedoraproject.org/projects/virt-viewer/virt-viewer/
Source repository
=================
The virt-viewer GIT repository does NOT store the master "virt-viewer.pot"
file, nor does it store full "po" files for translations. The master
"virt-viewer.pot" file can be generated at any time using
The virt-viewer GIT repository stores the master "virt-viewer.pot" file, which is to be
refreshed at time of feature freeze.
make virt-viewer.pot
The "po" files stored in GIT have source locations removed in order to cut down
on storage size, by eliminating information already present in the "pot" file.
All files are stored with strings sorted in alphabetical order rather than
source location order, to minimize movement of strings when source locations
change.
The translations are kept in minimized files that are the same file format
as normal po files but with all redundant information stripped and messages
re-ordered. The key differences between the ".mini.po" files in GIT and the
full ".po" files are
The "po" files are to be EXCLUSIVELY UPDATED by merge requests sent from the
Fedora Weblate service. Other contributors MUST NEVER send changes which touch
the "po" file content, as that will create merge conflicts for Weblate. IOW any
bug fixes to translations should be made via the Weblate application UI.
- msgids with no current translation are omitted
- msgids are sorted in alphabetical order not source file order
- msgids with a msgstr marked "fuzzy" are discarded
- source file locations are omitted
After the "pot" file in virt-viewer GIT, Weblate will automatically run "msgmerge"
to update the "po" files itself and send back a merge request with the changes.
The full po files can be created at any time using
make update-po
This merges the "virt-viewer.pot" with the "$LANG.mini.po" for each language,
to create the "$LANG.po" files. These are included in the release archives
created by "make dist".
When a full po file is updated, changes can be propagated back into the
minimized po files using
make update-mini-po
Note, however, that this is generally not something that should be run by
developers normally, as it is triggered by 'make pull-po' when refreshing
content from Zanata.
Zanata web service
==================
The translation of virt-viewer messages has been outsourced to the Fedora
translation team using the Zanata web service:
https://fedora.zanata.org/project/view/virt-viewer
As such, changes to translations will generally NOT be accepted as patches
directly to virt-viewer GIT. Any changes made to "$LANG.mini.po" files in
virt-viewer GIT will be overwritten and lost the next time content is
imported from Zanata.
The master "virt-viewer.pot" file is periodically pushed to Zanata to provide
the translation team with content changes, using
make push-pot
New translated text is then periodically pulled down from Zanata to update the
minimized po files, using
make pull-po
Sometimes the translators make mistakes, most commonly with handling printf
format specifiers. The "pull-po" command re-generates the .gmo files to try to
identify such mistakes. If a mistake is made, the broken msgstr should be
deleted in the local "$LANG.mini.po" file, and the Zanata web interface used
to reject the translation so that the broken msgstr isn't pulled down next time.
After pulling down new content the diff should be examined to look for any
obvious mistakes that are not caught automatically. There have been bugs in
Zanata tools which caused messges to go missing, so pay particular attention to
diffs showing deletions where the msgid still exists in virt-viewer.pot
Translation updates made in the Weblate Web UI will be committed to its fork of
the GIT repo once a day. These commits will be submitted back to the master GIT
repo via merge requests. If a merge request from Weblate is already open,
commits will be added to this existing merge request. Weblate will take care of
rebasing whenever changes happen in Git master. In order to avoid having to do
translations merges 30 times a month, merge requests from Weblate will usually
be left open until feature freeze arrives. During the freeze period, they will
be accepted more promptly to ensure they make it into the new release.

889
po/virt-viewer.pot Normal file
View File

@ -0,0 +1,889 @@
# Virt Viewer package strings.
# Copyright (C) 2020 The Virt Viewer authors
# This file is distributed under the same license as the virt-viewer package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: virt-viewer 9.0\n"
"Report-Msgid-Bugs-To: https://gitlab.com/virt-viewer/virt-viewer/-/issues\n"
"POT-Creation-Date: 2020-07-06 16:08+0100\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
#: src/remote-viewer.c:148
msgid ""
"\n"
"Error: can't handle multiple URIs\n"
"\n"
msgstr ""
#: src/virt-viewer.c:183
#, c-format
msgid ""
"\n"
"No ID|UUID|DOMAIN-NAME was specified for '%s'\n"
"\n"
msgstr ""
#: src/virt-viewer.c:171
#, c-format
msgid ""
"\n"
"Usage: %s [OPTIONS] [ID|UUID|DOMAIN-NAME]\n"
"\n"
msgstr ""
#: src/virt-viewer-window.c:1416
msgid " "
msgstr ""
#: src/virt-viewer-app.c:2177
#, c-format
msgid "%s\n"
msgstr ""
#: src/virt-viewer-app.c:2187
#, c-format
msgid "%s version %s"
msgstr ""
#: src/virt-viewer-window.c:1412
#, c-format
msgid "%s%s%s - %s"
msgstr ""
#: src/virt-viewer-window.c:1401
#, c-format
msgid "(Press %s to release pointer)"
msgstr ""
#: src/remote-viewer-iso-list-dialog.c:205
msgid "<b>Loading...</b>"
msgstr ""
#: src/virt-viewer-app.c:2948
msgid "<never|on-disconnect>"
msgstr ""
#: src/resources/ui/virt-viewer-about.ui:18
msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
msgstr ""
#: src/resources/ui/virt-viewer-about.ui:7
msgid "About Virt-Viewer"
msgstr ""
#: data/remote-viewer.desktop.in:4
msgid "Access remote desktops"
msgstr ""
#: src/virt-viewer-app.c:855
#, c-format
msgid "Address is too long for unix socket_path: %s"
msgstr ""
#: src/virt-viewer-file-transfer-dialog.c:225
msgid "An error caused the following file transfers to fail:"
msgstr ""
#: src/virt-viewer-file.c:883
#, c-format
msgid "At least %s version %s is required to setup this connection"
msgstr ""
#: src/virt-viewer-file.c:875
#, c-format
msgid ""
"At least %s version %s is required to setup this connection, see %s for "
"details"
msgstr ""
#: src/virt-viewer.c:133
msgid "Attach to the local display using libvirt"
msgstr ""
#: src/virt-viewer.c:1052
msgid "Authentication failed."
msgstr ""
#: src/virt-viewer-auth.c:89
#, c-format
msgid ""
"Authentication is required for the %s connection to:\n"
"\n"
"<b>%s</b>\n"
"\n"
msgstr ""
#: src/virt-viewer-auth.c:93
#, c-format
msgid "Authentication is required for the %s connection:\n"
msgstr ""
#: src/resources/ui/virt-viewer-auth.ui:7
msgid "Authentication required"
msgstr ""
#: src/remote-viewer.c:448 src/virt-viewer.c:1105
msgid "Authentication was cancelled"
msgstr ""
#: src/resources/ui/virt-viewer-vm-connection.ui:96
msgid "Available virtual machines"
msgstr ""
#: src/resources/ui/remote-viewer-connect.ui:134
#: src/resources/ui/virt-viewer-vm-connection.ui:38
msgid "C_onnect"
msgstr ""
#: src/virt-viewer-app.c:1385
#, c-format
msgid "Can't connect to channel: %s"
msgstr ""
#: src/remote-viewer.c:791
msgid "Cannot determine the connection type from URI"
msgstr ""
#: src/virt-viewer.c:550
#, c-format
msgid "Cannot determine the graphic type for the guest %s"
msgstr ""
#: src/virt-viewer.c:599
#, c-format
msgid "Cannot determine the host for the guest %s"
msgstr ""
#: src/virt-viewer.c:924
msgid "Cannot get guest state"
msgstr ""
#: src/remote-viewer-iso-list-dialog.c:370
msgid "Change CD"
msgstr ""
#: src/virt-viewer.c:921
msgid "Checking guest domain status"
msgstr ""
#: src/resources/ui/virt-viewer-vm-connection.ui:7
msgid "Choose a virtual machine"
msgstr ""
#: src/remote-viewer-iso-list-dialog.c:277
msgid "Close"
msgstr ""
#: src/virt-viewer-app.c:1404
msgid "Connect to channel unsupported."
msgstr ""
#: src/virt-viewer.c:135
msgid "Connect to hypervisor"
msgstr ""
#: src/virt-viewer-app.c:1370
msgid "Connect to ssh failed."
msgstr ""
#: src/virt-viewer-app.c:1654
msgid "Connected to graphic server"
msgstr ""
#: src/virt-viewer-app.c:1494
msgid "Connecting to graphic server"
msgstr ""
#: src/virt-viewer-app.c:871
#, c-format
msgid "Connecting to unix socket failed: %s"
msgstr ""
#: src/resources/ui/remote-viewer-connect.ui:24
msgid "Connection _Address"
msgstr ""
#: src/resources/ui/remote-viewer-connect.ui:6
msgid "Connection details"
msgstr ""
#: src/virt-viewer-display-vte.c:181
msgid "Console support is compiled out!"
msgstr ""
#: src/resources/ui/virt-viewer-about.ui:16
msgid ""
"Copyright (C) 2007-2012 Daniel P. Berrange\n"
"Copyright (C) 2007-2014 Red Hat, Inc."
msgstr ""
#: src/remote-viewer.c:690
msgid "Couldn't open oVirt session: "
msgstr ""
#: src/virt-viewer-app.c:865
#, c-format
msgid "Creating unix socket failed: %s"
msgstr ""
#: src/virt-viewer-window.c:1398
msgid "Ctrl+Alt"
msgstr ""
#: src/virt-viewer-window.c:649
msgid "Ctrl+Alt+F11"
msgstr ""
#: src/virt-viewer-window.c:650
msgid "Ctrl+Alt+F12"
msgstr ""
#: src/virt-viewer-window.c:648
msgid "Ctrl+Alt+F1_0"
msgstr ""
#: src/virt-viewer-window.c:639
msgid "Ctrl+Alt+F_1"
msgstr ""
#: src/virt-viewer-window.c:640
msgid "Ctrl+Alt+F_2"
msgstr ""
#: src/virt-viewer-window.c:641
msgid "Ctrl+Alt+F_3"
msgstr ""
#: src/virt-viewer-window.c:642
msgid "Ctrl+Alt+F_4"
msgstr ""
#: src/virt-viewer-window.c:643
msgid "Ctrl+Alt+F_5"
msgstr ""
#: src/virt-viewer-window.c:644
msgid "Ctrl+Alt+F_6"
msgstr ""
#: src/virt-viewer-window.c:645
msgid "Ctrl+Alt+F_7"
msgstr ""
#: src/virt-viewer-window.c:646
msgid "Ctrl+Alt+F_8"
msgstr ""
#: src/virt-viewer-window.c:647
msgid "Ctrl+Alt+F_9"
msgstr ""
#: src/virt-viewer-window.c:637
msgid "Ctrl+Alt+_Backspace"
msgstr ""
#: src/virt-viewer-window.c:636
msgid "Ctrl+Alt+_Del"
msgstr ""
#: src/virt-viewer-app.c:2942
msgid "Customise hotkeys"
msgstr ""
#: src/virt-viewer.c:131
msgid "Direct connection with no automatic tunnels"
msgstr ""
#: src/virt-viewer-window.c:1286
msgid "Disconnect"
msgstr ""
#: src/virt-viewer-app.c:2641
#, c-format
msgid "Display _%d"
msgstr ""
#: src/virt-viewer-app.c:1469
msgid "Display can only be attached through libvirt with --attach"
msgstr ""
#: src/virt-viewer-app.c:2952
msgid "Display debugging information"
msgstr ""
#: src/virt-viewer-app.c:2950
msgid "Display verbose information"
msgstr ""
#: src/virt-viewer-app.c:2936
msgid "Display version information"
msgstr ""
#: src/virt-viewer-app.c:684
msgid "Do not ask me again"
msgstr ""
#: src/virt-viewer-app.c:682
msgid "Do you want to close the session?"
msgstr ""
#: src/virt-viewer-app.c:2946
msgid "Enable kiosk mode"
msgstr ""
#: src/remote-viewer-iso-list-dialog.c:318
msgid "Failed to change CD"
msgstr ""
#: src/virt-viewer.c:1112
msgid "Failed to connect: "
msgstr ""
#: src/remote-viewer-iso-list-dialog.c:156
msgid "Failed to fetch CD names"
msgstr ""
#: src/remote-viewer.c:718
msgid "Failed to initiate connection"
msgstr ""
#: src/remote-viewer.c:764
msgid "Failed to read stdin: "
msgstr ""
#: src/virt-viewer-file-transfer-dialog.c:124
msgid "File Transfers"
msgstr ""
#: src/virt-viewer.c:885
msgid "Finding guest domain"
msgstr ""
#: src/resources/ui/virt-viewer-preferences.ui:48
msgid "Folder sharing"
msgstr ""
#: src/resources/ui/remote-viewer-connect.ui:54
msgid "For example, spice://foo.example.org:5900"
msgstr ""
#: src/resources/ui/virt-viewer-guest-details.ui:68
msgid "GUID:"
msgstr ""
#: src/virt-viewer.c:627
#, c-format
msgid "Guest '%s' is not reachable"
msgstr ""
#: src/resources/ui/virt-viewer-guest-details.ui:7
msgid "Guest Details"
msgstr ""
#: src/virt-viewer-app.c:1593
msgid "Guest domain has shutdown"
msgstr ""
#: src/remote-viewer.c:781
#, c-format
msgid "Invalid file %s: "
msgstr ""
#: src/virt-viewer-app.c:2925
#, c-format
msgid "Invalid kiosk-quit argument: %s"
msgstr ""
#: src/virt-viewer-session-spice.c:731
msgid "Invalid password"
msgstr ""
#: src/virt-viewer-window.c:1322 src/virt-viewer-window.c:1323
msgid "Leave fullscreen"
msgstr ""
#: src/resources/ui/remote-viewer-iso-list.ui:28
msgid "Loading..."
msgstr ""
#: src/virt-viewer-window.c:1294
msgid "Minimize"
msgstr ""
#: src/resources/ui/remote-viewer-iso-list.ui:129
#: src/resources/ui/virt-viewer-vm-connection.ui:72
msgid "Name"
msgstr ""
#: src/resources/ui/virt-viewer-guest-details.ui:56
msgid "Name:"
msgstr ""
#: src/remote-viewer.c:747
msgid "No connection was chosen"
msgstr ""
#: src/virt-viewer-vm-connection.c:64
msgid "No running virtual machine found"
msgstr ""
#: src/virt-viewer-vm-connection.c:93
msgid "No virtual machine was chosen"
msgstr ""
#: src/virt-viewer-app.c:2940
msgid "Open in full screen mode (adjusts guest resolution to fit the client)"
msgstr ""
#: src/resources/ui/virt-viewer-auth.ui:93
msgid "Password:"
msgstr ""
#: src/virt-viewer-window.c:1100
msgid "Please add an extension to the file name"
msgstr ""
#: src/resources/ui/virt-viewer-preferences.ui:8
msgid "Preferences"
msgstr ""
#: src/virt-viewer-session-spice.c:1023
msgid "QEMU debug console"
msgstr ""
#: src/virt-viewer-session-spice.c:1021
msgid "QEMU human monitor"
msgstr ""
#: src/virt-viewer-app.c:2948
msgid "Quit on given condition in kiosk mode"
msgstr ""
#: src/resources/ui/virt-viewer-preferences.ui:82
msgid "Read-only"
msgstr ""
#: src/resources/ui/remote-viewer-connect.ui:78
msgid "Recent connections"
msgstr ""
#: src/virt-viewer.c:139
msgid "Reconnect to domain upon restart"
msgstr ""
#: src/remote-viewer-iso-list-dialog.c:276
msgid "Refresh"
msgstr ""
#: src/resources/ui/virt-viewer.ui:255
msgid "Release cursor"
msgstr ""
#: src/virt-viewer-app.c:2944
msgid ""
"Remap keys format key=keymod+key e.g. F1=SHIFT+CTRL+F1,1=SHIFT+F1,ALT_L=Void"
msgstr ""
#: data/remote-viewer.appdata.xml.in:6 data/remote-viewer.desktop.in:3
#: src/remote-viewer-main.c:39
msgid "Remote Viewer"
msgstr ""
#: data/remote-viewer.appdata.xml.in:9
msgid ""
"Remote Viewer provides a graphical viewer for the guest OS display. At this "
"time it supports guest OS using the VNC or SPICE protocols. Further "
"protocols may be supported in the future as user demand dictates. The viewer "
"can connect directly to both local and remotely hosted guest OS, optionally "
"using SSL/TLS encryption."
msgstr ""
#: src/remote-viewer.c:123
msgid "Remote viewer client"
msgstr ""
#: data/remote-viewer.appdata.xml.in:7
msgid "Remotely access virtual machines"
msgstr ""
#: src/remote-viewer.c:162 src/virt-viewer.c:200
#, c-format
msgid "Run '%s --help' to see a full list of available command line options\n"
msgstr ""
#: src/virt-viewer-window.c:1074
msgid "Save screenshot"
msgstr ""
#: src/virt-viewer-window.c:1086
msgid "Screenshot.png"
msgstr ""
#: src/resources/ui/remote-viewer-iso-list.ui:78
msgid "Select ISO"
msgstr ""
#: src/virt-viewer-session-spice.c:829
msgid "Select USB devices for redirection"
msgstr ""
#: src/virt-viewer.c:143
msgid "Select the virtual machine only by its id"
msgstr ""
#: src/virt-viewer.c:141
msgid "Select the virtual machine only by its name"
msgstr ""
#: src/virt-viewer.c:145
msgid "Select the virtual machine only by its uuid"
msgstr ""
#: src/resources/ui/remote-viewer-iso-list.ui:116
msgid "Selected"
msgstr ""
#: src/virt-viewer-window.c:1312
msgid "Send key combination"
msgstr ""
#: src/virt-viewer-session-spice.c:1019
msgid "Serial"
msgstr ""
#: src/remote-viewer.c:116
msgid "Set window title"
msgstr ""
#: src/resources/ui/virt-viewer-preferences.ui:96
msgid "Share clipboard"
msgstr ""
#: src/resources/ui/virt-viewer-preferences.ui:70
msgid "Share folder"
msgstr ""
#: src/resources/ui/virt-viewer-auth.ui:137
msgid "Show password"
msgstr ""
#: src/resources/ui/virt-viewer.ui:62
msgid "Smartcard insertion"
msgstr ""
#: src/resources/ui/virt-viewer.ui:72
msgid "Smartcard removal"
msgstr ""
#: src/resources/ui/virt-viewer-preferences.ui:132
msgid "Spice"
msgstr ""
#: src/resources/ui/virt-viewer-about.ui:38
msgid "The Fedora Translation Team"
msgstr ""
#: src/resources/ui/virt-viewer-about.ui:21
msgid ""
"This program is free software; you can redistribute it and/or modify\n"
"it under the terms of the GNU General Public License as published by\n"
"the Free Software Foundation; either version 2 of the License, or\n"
"(at your option) any later version.\n"
"\n"
"This program is distributed in the hope that it will be useful,\n"
"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
"GNU General Public License for more details.\n"
"\n"
"You should have received a copy of the GNU General Public License\n"
"along with this program; if not, write to the Free Software\n"
"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
msgstr ""
#: src/virt-viewer-file-transfer-dialog.c:152
#, c-format
msgid "Transferring %u file of %u..."
msgid_plural "Transferring %u files of %u..."
msgstr[0] ""
msgstr[1] ""
#: src/virt-viewer-file-transfer-dialog.c:150
msgid "Transferring 1 file..."
msgstr ""
#: src/virt-viewer-window.c:1302 src/virt-viewer-window.c:1303
msgid "USB device selection"
msgstr ""
#: src/virt-viewer-app.c:1731
#, c-format
msgid "USB redirection error: %s"
msgstr ""
#: src/virt-viewer-app.c:1709
#, c-format
msgid "Unable to authenticate with remote desktop server at %s: %s\n"
msgstr ""
#: src/virt-viewer-app.c:1723
#, c-format
msgid "Unable to authenticate with remote desktop server: %s"
msgstr ""
#: src/virt-viewer.c:1044
#, c-format
msgid "Unable to connect to libvirt with URI: %s."
msgstr ""
#: src/virt-viewer-app.c:1683
#, c-format
msgid "Unable to connect to the graphic server %s"
msgstr ""
#: src/remote-viewer.c:810
#, c-format
msgid "Unable to connect: %s"
msgstr ""
#: src/virt-viewer-window.c:1263
msgid "Unable to connnect to oVirt"
msgstr ""
#: src/virt-viewer-window.c:1051
#, c-format
msgid "Unable to determine image format for file '%s'"
msgstr ""
#: src/virt-viewer-window.c:1173 src/virt-viewer-window.c:1175
msgid "Unknown"
msgstr ""
#: src/remote-viewer-iso-list-dialog.c:297
msgid "Unspecified error"
msgstr ""
#: src/virt-viewer-session-vnc.c:158
#, c-format
msgid "Unsupported authentication type %u"
msgstr ""
#: src/virt-viewer-app.c:1286
#, c-format
msgid "Unsupported graphic type '%s'"
msgstr ""
#: src/resources/ui/virt-viewer-auth.ui:105
msgid "Username:"
msgstr ""
#: src/virt-viewer-display-vnc.c:130
msgid "VNC does not provide GUID"
msgstr ""
#: src/virt-viewer-main.c:38
msgid "Virt Viewer"
msgstr ""
#: src/virt-viewer.c:856
#, c-format
msgid "Virtual machine %s is not running"
msgstr ""
#: src/virt-viewer.c:152
msgid "Virtual machine graphical console"
msgstr ""
#: src/virt-viewer.c:137
msgid "Wait for domain to start"
msgstr ""
#: src/virt-viewer-app.c:1170
#, c-format
msgid "Waiting for display %d..."
msgstr ""
#: src/virt-viewer.c:889
msgid "Waiting for guest domain to be created"
msgstr ""
#: src/virt-viewer.c:296
msgid "Waiting for guest domain to re-start"
msgstr ""
#: src/virt-viewer.c:930
msgid "Waiting for guest domain to start"
msgstr ""
#: src/virt-viewer.c:881
msgid "Waiting for libvirt to start"
msgstr ""
#: src/resources/ui/virt-viewer.ui:201
msgid "Zoom _In"
msgstr ""
#: src/resources/ui/virt-viewer.ui:212
msgid "Zoom _Out"
msgstr ""
#: src/virt-viewer-app.c:2122
#, c-format
msgid "Zoom level must be within %d-%d\n"
msgstr ""
#: src/virt-viewer-app.c:2938
msgid "Zoom level of window, in percentage"
msgstr ""
#: src/virt-viewer.c:1045
msgid "[none]"
msgstr ""
#: src/resources/ui/virt-viewer.ui:297
msgid "_About"
msgstr ""
#: src/resources/ui/remote-viewer-connect.ui:120
#: src/resources/ui/virt-viewer-auth.ui:27 src/virt-viewer-window.c:1077
#: src/resources/ui/virt-viewer-vm-connection.ui:24
#: src/resources/ui/virt-viewer-file-transfer-dialog.ui:28
msgid "_Cancel"
msgstr ""
#: src/resources/ui/virt-viewer.ui:80
msgid "_Change CD"
msgstr ""
#: src/virt-viewer-session-spice.c:831
#: src/resources/ui/virt-viewer-guest-details.ui:23
msgid "_Close"
msgstr ""
#: src/resources/ui/virt-viewer.ui:246
msgid "_Displays"
msgstr ""
#: src/resources/ui/virt-viewer.ui:28
msgid "_File"
msgstr ""
#: src/resources/ui/virt-viewer.ui:180
msgid "_Full screen"
msgstr ""
#: src/resources/ui/virt-viewer.ui:290
msgid "_Guest Details"
msgstr ""
#: src/resources/ui/virt-viewer.ui:279
msgid "_Help"
msgstr ""
#: src/resources/ui/virt-viewer.ui:119
msgid "_Machine"
msgstr ""
#: src/resources/ui/virt-viewer.ui:229
msgid "_Normal Size"
msgstr ""
#: src/resources/ui/virt-viewer-auth.ui:42
msgid "_OK"
msgstr ""
#: src/resources/ui/virt-viewer.ui:129
msgid "_Pause"
msgstr ""
#: src/resources/ui/virt-viewer.ui:153
msgid "_Power down"
msgstr ""
#: src/resources/ui/virt-viewer.ui:90
msgid "_Preferences"
msgstr ""
#: src/virt-viewer-window.c:652
msgid "_PrintScreen"
msgstr ""
#: src/resources/ui/virt-viewer.ui:103
msgid "_Quit"
msgstr ""
#: src/resources/ui/virt-viewer.ui:144
msgid "_Reset"
msgstr ""
#: src/virt-viewer-window.c:1078
msgid "_Save"
msgstr ""
#: src/resources/ui/virt-viewer.ui:41
msgid "_Screenshot"
msgstr ""
#: src/resources/ui/virt-viewer.ui:270
msgid "_Send key"
msgstr ""
#: src/resources/ui/virt-viewer.ui:52
msgid "_USB device selection"
msgstr ""
#: src/resources/ui/virt-viewer.ui:167
msgid "_View"
msgstr ""
#: src/resources/ui/virt-viewer.ui:191
msgid "_Zoom"
msgstr ""
#: src/remote-viewer.c:429
msgid "failed to parse ovirt uri"
msgstr ""
#: src/resources/ui/virt-viewer-about.ui:20
msgid "gitlab.com/virt-viewer/virt-viewer"
msgstr ""
#: src/resources/ui/virt-viewer-auth.ui:71
#: src/resources/ui/virt-viewer-guest-details.ui:82
#: src/resources/ui/virt-viewer-guest-details.ui:96
#: src/resources/ui/virt-viewer-file-transfer-dialog.ui:57
msgid "label"
msgstr ""
#: src/remote-viewer.c:486
#, c-format
msgid "oVirt VM %s has no display"
msgstr ""
#: src/remote-viewer.c:512
#, c-format
msgid "oVirt VM %s has no host information"
msgstr ""
#: src/remote-viewer.c:523
#, c-format
msgid "oVirt VM %s has unknown display type: %u"
msgstr ""
#: src/remote-viewer.c:472
#, c-format
msgid "oVirt VM %s is not running"
msgstr ""
#: src/virt-viewer-app.c:1387
msgid "only SSH or unix socket connection supported."
msgstr ""

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<config xmlns="http://zanata.org/namespace/config/">
<url>https://fedora.zanata.org/</url>
<project>virt-viewer</project>
<project-version>master</project-version>
<project-type>gettext</project-type>
</config>