Revision 834574ea

b/Makefile
314 314
		$(INSTALL_DATA) $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(qemu_datadir)"; \
315 315
	done
316 316
endif
317
ifeq ($(CONFIG_GTK),y)
318
	$(MAKE) -C po $@
319
endif
317 320
	$(INSTALL_DIR) "$(DESTDIR)$(qemu_datadir)/keymaps"
318 321
	set -e; for x in $(KEYMAPS); do \
319 322
		$(INSTALL_DATA) $(SRC_PATH)/pc-bios/keymaps/$$x "$(DESTDIR)$(qemu_datadir)/keymaps"; \
b/configure
3243 3243

  
3244 3244
qemu_confdir=$sysconfdir$confsuffix
3245 3245
qemu_datadir=$datadir$confsuffix
3246
qemu_localedir="$datadir/locale"
3246 3247

  
3247 3248
tools=""
3248 3249
if test "$want_tools" = "yes" ; then
......
3416 3417
echo "qemu_helperdir=$libexecdir" >> $config_host_mak
3417 3418
echo "extra_cflags=$EXTRA_CFLAGS" >> $config_host_mak
3418 3419
echo "extra_ldflags=$EXTRA_LDFLAGS" >> $config_host_mak
3420
echo "qemu_localedir=$qemu_localedir" >> $config_host_mak
3419 3421

  
3420 3422
echo "ARCH=$ARCH" >> $config_host_mak
3421 3423
if test "$debug_tcg" = "yes" ; then
......
4336 4338
DIRS="$DIRS qapi-generated"
4337 4339
FILES="Makefile tests/tcg/Makefile qdict-test-data.txt"
4338 4340
FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit"
4339
FILES="$FILES tests/tcg/lm32/Makefile"
4341
FILES="$FILES tests/tcg/lm32/Makefile po/Makefile"
4340 4342
FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
4341 4343
FILES="$FILES pc-bios/spapr-rtas/Makefile"
4342 4344
FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile"
b/po/Makefile
1
# This makefile is very special as it's meant to build as part of the build
2
# process and also within the source tree to update the translation files.
3

  
4
VERSION=$(shell cat ../VERSION)
5
TRANSLATIONS=de_DE it
6
SRCS=$(addsuffix .po, $(TRANSLATIONS))
7
OBJS=$(addsuffix .mo, $(TRANSLATIONS))
8

  
9
SRC_PATH=..
10

  
11
-include ../config-host.mak
12

  
13
vpath %.po $(SRC_PATH)/po
14

  
15
all:
16
	@echo Use 'make update' to update translation files
17
	@echo or us 'make build' or 'make install' to build and install
18
	@echo the translation files
19

  
20
update: $(SRCS)
21

  
22
build: $(OBJS)
23

  
24
clean:
25
	$(RM) $(OBJS)
26

  
27
install: $(OBJS)
28
	for obj in $(OBJS); do \
29
	    base=`basename $$obj .mo`; \
30
	    $(INSTALL) -d $(DESTDIR)$(prefix)/share/locale/$$base/LC_MESSAGES; \
31
	    $(INSTALL) -m644 $$obj $(DESTDIR)$(prefix)/share/locale/$$base/LC_MESSAGES/qemu.mo; \
32
	done
33

  
34
%.mo:
35
	@msgfmt -o $@ $(SRC_PATH)/po/`basename $@ .mo`.po
36

  
37
messages.po: $(SRC_PATH)/ui/gtk.c
38
	@xgettext -o $@ --foreign-user --package-name=QEMU --package-version=1.0.50 --msgid-bugs-address=qemu-devel@nongnu.org -k_ -C $<
39

  
40
de_DE.po: messages.po $(SRC_PATH)/ui/gtk.c
41
	@msgmerge $@ $< > $@.bak && mv $@.bak $@
42

  
43
it.po: messages.po $(SRC_PATH)/ui/gtk.c
44
	@msgmerge $@ $< > $@.bak && mv $@.bak $@
45

  
46
.PHONY: $(SRCS) clean all
b/po/de_DE.po
1
# German translation for QEMU.
2
# This file is put in the public domain.
3
# Kevin Wolf <kwolf@redhat.com>, 2012.
4
#
5
msgid ""
6
msgstr ""
7
"Project-Id-Version: QEMU 1.4.50\n"
8
"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n"
9
"POT-Creation-Date: 2013-02-08 09:21-0600\n"
10
"PO-Revision-Date: 2012-02-28 16:00+0100\n"
11
"Last-Translator: Kevin Wolf <kwolf@redhat.com>\n"
12
"Language-Team: Deutsch <de@li.org>\n"
13
"Language: \n"
14
"MIME-Version: 1.0\n"
15
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
18

  
19
#: ../ui/gtk.c:990
20
msgid "_File"
21
msgstr "_Datei"
22

  
23
#: ../ui/gtk.c:1000
24
msgid "_View"
25
msgstr "_Ansicht"
26

  
27
#: ../ui/gtk.c:1002
28
msgid "_Full Screen"
29
msgstr "Voll_bild"
30

  
31
#: ../ui/gtk.c:1029
32
msgid "Zoom To _Fit"
33
msgstr "Auf _Fenstergröße skalieren"
34

  
35
#: ../ui/gtk.c:1035
36
msgid "Grab On _Hover"
37
msgstr "Tastatur _automatisch einfangen"
38

  
39
#: ../ui/gtk.c:1038
40
msgid "_Grab Input"
41
msgstr "_Eingabegeräte einfangen"
42

  
43
#: ../ui/gtk.c:1064
44
msgid "Show _Tabs"
45
msgstr "_Tableiste anzeigen"
b/po/it.po
1
# Italian translation for QEMU.
2
# This file is put in the public domain.
3
# Paolo Bonzini <pbonzini@redhat.com>, 2012.
4
#
5
msgid ""
6
msgstr ""
7
"Project-Id-Version: QEMU 1.4.50\n"
8
"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n"
9
"POT-Creation-Date: 2013-02-08 09:21-0600\n"
10
"PO-Revision-Date: 2012-02-27 08:23+0100\n"
11
"Last-Translator: Paolo Bonzini <pbonzini@redhat.com>\n"
12
"Language-Team: Italian <it@li.org>\n"
13
"Language: \n"
14
"MIME-Version: 1.0\n"
15
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
"Plural-Forms: nplurals=2; plural=n != 1;\n"
18

  
19
#: ../ui/gtk.c:990
20
msgid "_File"
21
msgstr "_File"
22

  
23
#: ../ui/gtk.c:1000
24
msgid "_View"
25
msgstr "_Visualizza"
26

  
27
#: ../ui/gtk.c:1002
28
msgid "_Full Screen"
29
msgstr "_Schermo intero"
30

  
31
#: ../ui/gtk.c:1029
32
msgid "Zoom To _Fit"
33
msgstr "Adatta alla _finestra"
34

  
35
#: ../ui/gtk.c:1035
36
msgid "Grab On _Hover"
37
msgstr "Cattura _automatica input"
38

  
39
#: ../ui/gtk.c:1038
40
msgid "_Grab Input"
41
msgstr "_Cattura input"
42

  
43
#: ../ui/gtk.c:1064
44
msgid "Show _Tabs"
45
msgstr "Mostra _tab"
b/po/messages.po
1
# SOME DESCRIPTIVE TITLE.
2
# This file is put in the public domain.
3
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
4
#
5
#, fuzzy
6
msgid ""
7
msgstr ""
8
"Project-Id-Version: QEMU 1.4.50\n"
9
"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n"
10
"POT-Creation-Date: 2013-02-08 09:21-0600\n"
11
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
"Language-Team: LANGUAGE <LL@li.org>\n"
14
"Language: \n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=CHARSET\n"
17
"Content-Transfer-Encoding: 8bit\n"
18

  
19
#: ../ui/gtk.c:990
20
msgid "_File"
21
msgstr ""
22

  
23
#: ../ui/gtk.c:1000
24
msgid "_View"
25
msgstr ""
26

  
27
#: ../ui/gtk.c:1002
28
msgid "_Full Screen"
29
msgstr ""
30

  
31
#: ../ui/gtk.c:1029
32
msgid "Zoom To _Fit"
33
msgstr ""
34

  
35
#: ../ui/gtk.c:1035
36
msgid "Grab On _Hover"
37
msgstr ""
38

  
39
#: ../ui/gtk.c:1038
40
msgid "_Grab Input"
41
msgstr ""
42

  
43
#: ../ui/gtk.c:1064
44
msgid "Show _Tabs"
45
msgstr ""
b/ui/gtk.c
31 31
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
32 32
 */
33 33

  
34
#define GETTEXT_PACKAGE "qemu"
35
#define LOCALEDIR "po"
36

  
34 37
#include <gtk/gtk.h>
35 38
#include <gdk/gdkkeysyms.h>
39
#include <glib/gi18n.h>
36 40
#include <vte/vte.h>
37 41
#include <sys/types.h>
38 42
#include <sys/socket.h>
......
950 954
    accel_group = gtk_accel_group_new();
951 955
    s->file_menu = gtk_menu_new();
952 956
    gtk_menu_set_accel_group(GTK_MENU(s->file_menu), accel_group);
953
    s->file_menu_item = gtk_menu_item_new_with_mnemonic("_File");
957
    s->file_menu_item = gtk_menu_item_new_with_mnemonic(_("_File"));
954 958

  
955 959
    s->quit_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL);
956 960
    gtk_stock_lookup(GTK_STOCK_QUIT, &item);
......
960 964

  
961 965
    s->view_menu = gtk_menu_new();
962 966
    gtk_menu_set_accel_group(GTK_MENU(s->view_menu), accel_group);
963
    s->view_menu_item = gtk_menu_item_new_with_mnemonic("_View");
967
    s->view_menu_item = gtk_menu_item_new_with_mnemonic(_("_View"));
964 968

  
965
    s->full_screen_item = gtk_check_menu_item_new_with_mnemonic("_Full Screen");
969
    s->full_screen_item = gtk_check_menu_item_new_with_mnemonic(_("_Full Screen"));
966 970
    gtk_menu_item_set_accel_path(GTK_MENU_ITEM(s->full_screen_item),
967 971
                                 "<QEMU>/View/Full Screen");
968 972
    gtk_accel_map_add_entry("<QEMU>/View/Full Screen", GDK_KEY_f, GDK_CONTROL_MASK | GDK_MOD1_MASK);
......
989 993
    gtk_accel_map_add_entry("<QEMU>/View/Zoom Fixed", GDK_KEY_0, GDK_CONTROL_MASK | GDK_MOD1_MASK);
990 994
    gtk_menu_append(GTK_MENU(s->view_menu), s->zoom_fixed_item);
991 995

  
992
    s->zoom_fit_item = gtk_check_menu_item_new_with_mnemonic("Zoom To _Fit");
996
    s->zoom_fit_item = gtk_check_menu_item_new_with_mnemonic(_("Zoom To _Fit"));
993 997
    gtk_menu_append(GTK_MENU(s->view_menu), s->zoom_fit_item);
994 998

  
995 999
    separator = gtk_separator_menu_item_new();
996 1000
    gtk_menu_append(GTK_MENU(s->view_menu), separator);
997 1001

  
998
    s->grab_on_hover_item = gtk_check_menu_item_new_with_mnemonic("Grab On _Hover");
1002
    s->grab_on_hover_item = gtk_check_menu_item_new_with_mnemonic(_("Grab On _Hover"));
999 1003
    gtk_menu_append(GTK_MENU(s->view_menu), s->grab_on_hover_item);
1000 1004

  
1001
    s->grab_item = gtk_check_menu_item_new_with_mnemonic("_Grab Input");
1005
    s->grab_item = gtk_check_menu_item_new_with_mnemonic(_("_Grab Input"));
1002 1006
    gtk_menu_item_set_accel_path(GTK_MENU_ITEM(s->grab_item),
1003 1007
                                 "<QEMU>/View/Grab Input");
1004 1008
    gtk_accel_map_add_entry("<QEMU>/View/Grab Input", GDK_KEY_g, GDK_CONTROL_MASK | GDK_MOD1_MASK);
......
1024 1028
    separator = gtk_separator_menu_item_new();
1025 1029
    gtk_menu_append(GTK_MENU(s->view_menu), separator);
1026 1030

  
1027
    s->show_tabs_item = gtk_check_menu_item_new_with_mnemonic("Show _Tabs");
1031
    s->show_tabs_item = gtk_check_menu_item_new_with_mnemonic(_("Show _Tabs"));
1028 1032
    gtk_menu_append(GTK_MENU(s->view_menu), s->show_tabs_item);
1029 1033

  
1030 1034
    g_object_set_data(G_OBJECT(s->window), "accel_group", accel_group);
......
1060 1064
    s->scale_y = 1.0;
1061 1065
    s->free_scale = FALSE;
1062 1066

  
1067
    setlocale(LC_ALL, "");
1068
    bindtextdomain("qemu", CONFIG_QEMU_LOCALEDIR);
1069
    textdomain("qemu");
1070

  
1063 1071
    s->null_cursor = gdk_cursor_new(GDK_BLANK_CURSOR);
1064 1072

  
1065 1073
    s->mouse_mode_notifier.notify = gd_mouse_mode_change;

Also available in: Unified diff