diff options
author | Anthony Liguori <aliguori@us.ibm.com> | 2013-02-20 07:43:24 -0600 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2013-02-21 16:34:48 -0600 |
commit | 834574ea89fa9c3ee0a557a13ad3f50db2509054 (patch) | |
tree | fafe5fb5bcfcab948ba3a1cc0476b94732e716c2 | |
parent | c61584833c579cd7bf800499124ce3d0e15bfb37 (diff) | |
download | qemu-834574ea89fa9c3ee0a557a13ad3f50db2509054.zip qemu-834574ea89fa9c3ee0a557a13ad3f50db2509054.tar.gz qemu-834574ea89fa9c3ee0a557a13ad3f50db2509054.tar.bz2 |
gtk: add translation support (v5)
This includes a de_DE translation from Kevin Wolf and an it translation from
Paolo Bonzini.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1361367806-4599-8-git-send-email-aliguori@us.ibm.com
-rw-r--r-- | Makefile | 3 | ||||
-rwxr-xr-x | configure | 4 | ||||
-rw-r--r-- | po/Makefile | 46 | ||||
-rw-r--r-- | po/de_DE.po | 45 | ||||
-rw-r--r-- | po/it.po | 45 | ||||
-rw-r--r-- | po/messages.po | 45 | ||||
-rw-r--r-- | ui/gtk.c | 22 |
7 files changed, 202 insertions, 8 deletions
@@ -314,6 +314,9 @@ ifneq ($(BLOBS),) $(INSTALL_DATA) $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(qemu_datadir)"; \ done endif +ifeq ($(CONFIG_GTK),y) + $(MAKE) -C po $@ +endif $(INSTALL_DIR) "$(DESTDIR)$(qemu_datadir)/keymaps" set -e; for x in $(KEYMAPS); do \ $(INSTALL_DATA) $(SRC_PATH)/pc-bios/keymaps/$$x "$(DESTDIR)$(qemu_datadir)/keymaps"; \ @@ -3243,6 +3243,7 @@ fi qemu_confdir=$sysconfdir$confsuffix qemu_datadir=$datadir$confsuffix +qemu_localedir="$datadir/locale" tools="" if test "$want_tools" = "yes" ; then @@ -3416,6 +3417,7 @@ echo "qemu_localstatedir=$local_statedir" >> $config_host_mak echo "qemu_helperdir=$libexecdir" >> $config_host_mak echo "extra_cflags=$EXTRA_CFLAGS" >> $config_host_mak echo "extra_ldflags=$EXTRA_LDFLAGS" >> $config_host_mak +echo "qemu_localedir=$qemu_localedir" >> $config_host_mak echo "ARCH=$ARCH" >> $config_host_mak if test "$debug_tcg" = "yes" ; then @@ -4336,7 +4338,7 @@ DIRS="$DIRS roms/seabios roms/vgabios" DIRS="$DIRS qapi-generated" FILES="Makefile tests/tcg/Makefile qdict-test-data.txt" FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit" -FILES="$FILES tests/tcg/lm32/Makefile" +FILES="$FILES tests/tcg/lm32/Makefile po/Makefile" FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps" FILES="$FILES pc-bios/spapr-rtas/Makefile" FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile" diff --git a/po/Makefile b/po/Makefile new file mode 100644 index 0000000..2b4420f --- /dev/null +++ b/po/Makefile @@ -0,0 +1,46 @@ +# This makefile is very special as it's meant to build as part of the build +# process and also within the source tree to update the translation files. + +VERSION=$(shell cat ../VERSION) +TRANSLATIONS=de_DE it +SRCS=$(addsuffix .po, $(TRANSLATIONS)) +OBJS=$(addsuffix .mo, $(TRANSLATIONS)) + +SRC_PATH=.. + +-include ../config-host.mak + +vpath %.po $(SRC_PATH)/po + +all: + @echo Use 'make update' to update translation files + @echo or us 'make build' or 'make install' to build and install + @echo the translation files + +update: $(SRCS) + +build: $(OBJS) + +clean: + $(RM) $(OBJS) + +install: $(OBJS) + for obj in $(OBJS); do \ + base=`basename $$obj .mo`; \ + $(INSTALL) -d $(DESTDIR)$(prefix)/share/locale/$$base/LC_MESSAGES; \ + $(INSTALL) -m644 $$obj $(DESTDIR)$(prefix)/share/locale/$$base/LC_MESSAGES/qemu.mo; \ + done + +%.mo: + @msgfmt -o $@ $(SRC_PATH)/po/`basename $@ .mo`.po + +messages.po: $(SRC_PATH)/ui/gtk.c + @xgettext -o $@ --foreign-user --package-name=QEMU --package-version=1.0.50 --msgid-bugs-address=qemu-devel@nongnu.org -k_ -C $< + +de_DE.po: messages.po $(SRC_PATH)/ui/gtk.c + @msgmerge $@ $< > $@.bak && mv $@.bak $@ + +it.po: messages.po $(SRC_PATH)/ui/gtk.c + @msgmerge $@ $< > $@.bak && mv $@.bak $@ + +.PHONY: $(SRCS) clean all diff --git a/po/de_DE.po b/po/de_DE.po new file mode 100644 index 0000000..cb74d7c --- /dev/null +++ b/po/de_DE.po @@ -0,0 +1,45 @@ +# German translation for QEMU. +# This file is put in the public domain. +# Kevin Wolf <kwolf@redhat.com>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: QEMU 1.4.50\n" +"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n" +"POT-Creation-Date: 2013-02-08 09:21-0600\n" +"PO-Revision-Date: 2012-02-28 16:00+0100\n" +"Last-Translator: Kevin Wolf <kwolf@redhat.com>\n" +"Language-Team: Deutsch <de@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=2; plural=(n!=1);\n" + +#: ../ui/gtk.c:990 +msgid "_File" +msgstr "_Datei" + +#: ../ui/gtk.c:1000 +msgid "_View" +msgstr "_Ansicht" + +#: ../ui/gtk.c:1002 +msgid "_Full Screen" +msgstr "Voll_bild" + +#: ../ui/gtk.c:1029 +msgid "Zoom To _Fit" +msgstr "Auf _Fenstergröße skalieren" + +#: ../ui/gtk.c:1035 +msgid "Grab On _Hover" +msgstr "Tastatur _automatisch einfangen" + +#: ../ui/gtk.c:1038 +msgid "_Grab Input" +msgstr "_Eingabegeräte einfangen" + +#: ../ui/gtk.c:1064 +msgid "Show _Tabs" +msgstr "_Tableiste anzeigen" diff --git a/po/it.po b/po/it.po new file mode 100644 index 0000000..2b23491 --- /dev/null +++ b/po/it.po @@ -0,0 +1,45 @@ +# Italian translation for QEMU. +# This file is put in the public domain. +# Paolo Bonzini <pbonzini@redhat.com>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: QEMU 1.4.50\n" +"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n" +"POT-Creation-Date: 2013-02-08 09:21-0600\n" +"PO-Revision-Date: 2012-02-27 08:23+0100\n" +"Last-Translator: Paolo Bonzini <pbonzini@redhat.com>\n" +"Language-Team: Italian <it@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=2; plural=n != 1;\n" + +#: ../ui/gtk.c:990 +msgid "_File" +msgstr "_File" + +#: ../ui/gtk.c:1000 +msgid "_View" +msgstr "_Visualizza" + +#: ../ui/gtk.c:1002 +msgid "_Full Screen" +msgstr "_Schermo intero" + +#: ../ui/gtk.c:1029 +msgid "Zoom To _Fit" +msgstr "Adatta alla _finestra" + +#: ../ui/gtk.c:1035 +msgid "Grab On _Hover" +msgstr "Cattura _automatica input" + +#: ../ui/gtk.c:1038 +msgid "_Grab Input" +msgstr "_Cattura input" + +#: ../ui/gtk.c:1064 +msgid "Show _Tabs" +msgstr "Mostra _tab" diff --git a/po/messages.po b/po/messages.po new file mode 100644 index 0000000..a90cd6f --- /dev/null +++ b/po/messages.po @@ -0,0 +1,45 @@ +# SOME DESCRIPTIVE TITLE. +# This file is put in the public domain. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: QEMU 1.4.50\n" +"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n" +"POT-Creation-Date: 2013-02-08 09:21-0600\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=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../ui/gtk.c:990 +msgid "_File" +msgstr "" + +#: ../ui/gtk.c:1000 +msgid "_View" +msgstr "" + +#: ../ui/gtk.c:1002 +msgid "_Full Screen" +msgstr "" + +#: ../ui/gtk.c:1029 +msgid "Zoom To _Fit" +msgstr "" + +#: ../ui/gtk.c:1035 +msgid "Grab On _Hover" +msgstr "" + +#: ../ui/gtk.c:1038 +msgid "_Grab Input" +msgstr "" + +#: ../ui/gtk.c:1064 +msgid "Show _Tabs" +msgstr "" @@ -31,8 +31,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#define GETTEXT_PACKAGE "qemu" +#define LOCALEDIR "po" + #include <gtk/gtk.h> #include <gdk/gdkkeysyms.h> +#include <glib/gi18n.h> #include <vte/vte.h> #include <sys/types.h> #include <sys/socket.h> @@ -950,7 +954,7 @@ static void gd_create_menus(GtkDisplayState *s) accel_group = gtk_accel_group_new(); s->file_menu = gtk_menu_new(); gtk_menu_set_accel_group(GTK_MENU(s->file_menu), accel_group); - s->file_menu_item = gtk_menu_item_new_with_mnemonic("_File"); + s->file_menu_item = gtk_menu_item_new_with_mnemonic(_("_File")); s->quit_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL); gtk_stock_lookup(GTK_STOCK_QUIT, &item); @@ -960,9 +964,9 @@ static void gd_create_menus(GtkDisplayState *s) s->view_menu = gtk_menu_new(); gtk_menu_set_accel_group(GTK_MENU(s->view_menu), accel_group); - s->view_menu_item = gtk_menu_item_new_with_mnemonic("_View"); + s->view_menu_item = gtk_menu_item_new_with_mnemonic(_("_View")); - s->full_screen_item = gtk_check_menu_item_new_with_mnemonic("_Full Screen"); + s->full_screen_item = gtk_check_menu_item_new_with_mnemonic(_("_Full Screen")); gtk_menu_item_set_accel_path(GTK_MENU_ITEM(s->full_screen_item), "<QEMU>/View/Full Screen"); gtk_accel_map_add_entry("<QEMU>/View/Full Screen", GDK_KEY_f, GDK_CONTROL_MASK | GDK_MOD1_MASK); @@ -989,16 +993,16 @@ static void gd_create_menus(GtkDisplayState *s) gtk_accel_map_add_entry("<QEMU>/View/Zoom Fixed", GDK_KEY_0, GDK_CONTROL_MASK | GDK_MOD1_MASK); gtk_menu_append(GTK_MENU(s->view_menu), s->zoom_fixed_item); - s->zoom_fit_item = gtk_check_menu_item_new_with_mnemonic("Zoom To _Fit"); + s->zoom_fit_item = gtk_check_menu_item_new_with_mnemonic(_("Zoom To _Fit")); gtk_menu_append(GTK_MENU(s->view_menu), s->zoom_fit_item); separator = gtk_separator_menu_item_new(); gtk_menu_append(GTK_MENU(s->view_menu), separator); - s->grab_on_hover_item = gtk_check_menu_item_new_with_mnemonic("Grab On _Hover"); + s->grab_on_hover_item = gtk_check_menu_item_new_with_mnemonic(_("Grab On _Hover")); gtk_menu_append(GTK_MENU(s->view_menu), s->grab_on_hover_item); - s->grab_item = gtk_check_menu_item_new_with_mnemonic("_Grab Input"); + s->grab_item = gtk_check_menu_item_new_with_mnemonic(_("_Grab Input")); gtk_menu_item_set_accel_path(GTK_MENU_ITEM(s->grab_item), "<QEMU>/View/Grab Input"); gtk_accel_map_add_entry("<QEMU>/View/Grab Input", GDK_KEY_g, GDK_CONTROL_MASK | GDK_MOD1_MASK); @@ -1024,7 +1028,7 @@ static void gd_create_menus(GtkDisplayState *s) separator = gtk_separator_menu_item_new(); gtk_menu_append(GTK_MENU(s->view_menu), separator); - s->show_tabs_item = gtk_check_menu_item_new_with_mnemonic("Show _Tabs"); + s->show_tabs_item = gtk_check_menu_item_new_with_mnemonic(_("Show _Tabs")); gtk_menu_append(GTK_MENU(s->view_menu), s->show_tabs_item); g_object_set_data(G_OBJECT(s->window), "accel_group", accel_group); @@ -1060,6 +1064,10 @@ void gtk_display_init(DisplayState *ds) s->scale_y = 1.0; s->free_scale = FALSE; + setlocale(LC_ALL, ""); + bindtextdomain("qemu", CONFIG_QEMU_LOCALEDIR); + textdomain("qemu"); + s->null_cursor = gdk_cursor_new(GDK_BLANK_CURSOR); s->mouse_mode_notifier.notify = gd_mouse_mode_change; |