Package: ldm Version: 2:0.1~bzr20080326-1 Severity: wishlist Tags: l10n patch
Please test the attached patch. A complete archive is available: http://do.nw.schule.de/westfalenkolleg/ltsp/ldm.i18n.tar.gz wolfgang -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.22-c (PREEMPT) Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages ldm depends on: ii gtk2-engines [gtk2 1:2.14.0-1 theme engines for GTK+ 2.x ii libatk1.0-0 1.22.0-1 The ATK accessibility toolkit ii libc6 2.7-10 GNU C Library: Shared libraries ii libcairo2 1.4.14-1 The Cairo 2D vector graphics libra ii libglib2.0-0 2.16.1-2 The GLib library of C routines ii libgtk2.0-0 2.12.9-2 The GTK+ graphical user interface ii libpango1.0-0 1.20.0-1 Layout and rendering of internatio ii openssh-client 1:4.7p1-5 secure shell client, an rlogin/rsh ii ssh 1:4.7p1-5 secure shell client and server (me ii xserver-xorg 1:7.3+10 the X.Org X server ii xserver-xorg-core 2:1.4.1~git20080131-2 Xorg X server - core server ldm recommends no packages. -- no debconf information
diff -ur ldm-trunk/autogen.sh ldm.i18n/autogen.sh --- ldm-trunk/autogen.sh 2008-03-29 09:02:03.000000000 +0100 +++ ldm.i18n/autogen.sh 2008-03-31 19:38:15.000000000 +0200 @@ -1,3 +1,7 @@ #!/bin/sh -aclocal -I m4 && autoconf && automake -a -c +aclocal +autoheader +touch stamp-h +autoconf +automake -a -c Nur in ldm-trunk: config.h.in. diff -ur ldm-trunk/configure.ac ldm.i18n/configure.ac --- ldm-trunk/configure.ac 2008-03-29 09:02:03.000000000 +0100 +++ ldm.i18n/configure.ac 2008-03-31 16:14:19.000000000 +0200 @@ -1,23 +1,23 @@ -AC_PREREQ(2.61) -AC_INIT([ldm],[2.0.0],[EMAIL PROTECTED]) -AC_CONFIG_SRCDIR([src/ldm.c]) -AM_INIT_AUTOMAKE +AC_INIT([src/ldm.c],[gtkgreet/ldmgtkgreeter.c]) +AC_CONFIG_HEADER(config.h) + +PACKAGE=ldm +VERSION=2.0.0 [EMAIL PROTECTED] + +AM_INIT_AUTOMAKE([$PACKAGE],[$VERSION],[$AUTHOR]) -AC_CONFIG_HEADERS([config.h]) AM_MAINTAINER_MODE -dnl Checks for programs. AC_PROG_CC AC_PROG_INSTALL +AC_STDC_HEADERS -dnl Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([syslog.h sys/wait.h fcntl.h],,AC_MSG_ERROR(Required header missing)) -dnl Checks for Libraries AC_CHECK_LIB([util],[main],[],AC_MSG_ERROR(ldm requires libutil)) -dnl Check for Packages PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.6.0) PKG_CHECK_MODULES(GOBJECT, gobject-2.0 >= 2.6.0) PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.2) @@ -29,8 +29,22 @@ AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) -AM_GNU_GETTEXT([external]) +ALL_LINGUAS="de fr" +AM_GLIB_GNU_GETTEXT -dnl Output -AC_CONFIG_FILES([Makefile src/Makefile share/Makefile man/Makefile po/Makefile.in gtkgreet/Makefile themes/Makefile screen.d/Makefile rc.d/Makefile share/ldm-script]) -AC_OUTPUT +GETTEXT_PACKAGE=$PACKAGE +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["${GETTEXT_PACKAGE}"], [gettext domain]) + +AC_OUTPUT([ +Makefile +src/Makefile +share/Makefile +man/Makefile +po/Makefile.in +gtkgreet/Makefile +themes/Makefile +screen.d/Makefile +rc.d/Makefile +share/ldm-script +]) diff -ur ldm-trunk/gtkgreet/greeter.c ldm.i18n/gtkgreet/greeter.c --- ldm-trunk/gtkgreet/greeter.c 2008-03-29 09:02:03.000000000 +0100 +++ ldm.i18n/gtkgreet/greeter.c 2008-03-31 23:52:22.000000000 +0200 @@ -12,7 +12,6 @@ #include <gtk/gtk.h> #include <glib.h> #include <string.h> -#include <glib/gi18n.h> #include <sys/utsname.h> #include <sys/socket.h> #include <net/if.h> @@ -21,6 +20,14 @@ #include <greeter.h> + +#include <config.h> + +#include <libintl.h> +#include <locale.h> +#define _(text) gettext(text) + + GtkWidget *UserPrompt; /* prompt area before the entry */ GtkWidget *StatusMessages; /* Status msg area below entry */ GtkWidget *entry; /* entry box */ @@ -201,17 +208,17 @@ menu = gtk_menu_new(); lang_item = - gtk_image_menu_item_new_with_mnemonic(_("_Select language ...")); + gtk_image_menu_item_new_with_mnemonic(_("Select _Language ...")); langico = gtk_image_new_from_file(ldm_theme_file("/language.png")); gtk_image_menu_item_set_image((GtkImageMenuItem *) lang_item, langico); sess_item = - gtk_image_menu_item_new_with_mnemonic(_("_Select session ...")); + gtk_image_menu_item_new_with_mnemonic(_("Select _Session ...")); sessico = gtk_image_new_from_file(ldm_theme_file("/session.png")); gtk_image_menu_item_set_image((GtkImageMenuItem *) sess_item, sessico); host_item = - gtk_image_menu_item_new_with_mnemonic(_("_Select host ...")); + gtk_image_menu_item_new_with_mnemonic(_("Select _Host ...")); hostico = gtk_image_new_from_file(ldm_theme_file("/host.png")); gtk_image_menu_item_set_image((GtkImageMenuItem *) host_item, hostico); @@ -220,7 +227,7 @@ rebootico = gtk_image_new_from_file(ldm_theme_file("/reboot.png")); gtk_image_menu_item_set_image((GtkImageMenuItem *) reboot_item, rebootico); - quit_item = gtk_image_menu_item_new_with_mnemonic(_("_Shutdown")); + quit_item = gtk_image_menu_item_new_with_mnemonic(_("Shut_down")); haltico = gtk_image_new_from_file(ldm_theme_file("/shutdown.png")); gtk_image_menu_item_set_image((GtkImageMenuItem *) quit_item, haltico); @@ -273,7 +280,14 @@ GIOChannel *g_stdin; char * ldm_theme; - + +#ifdef ENABLE_NLS + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); +#endif + gtk_init(&argc, &argv); *ldm_theme_dir='\0'; @@ -397,7 +411,7 @@ guestspacer1 = gtk_label_new(""); guestspacer2 = gtk_label_new(""); - GuestButton = gtk_button_new_with_label ("Login as Guest"); + GuestButton = gtk_button_new_with_label (_("Login as Guest")); g_signal_connect(G_OBJECT(GuestButton), "clicked", G_CALLBACK(handle_guestbutton), root); gtk_button_set_relief((GtkButton *)GuestButton, GTK_RELIEF_NONE); diff -ur ldm-trunk/gtkgreet/langwin.c ldm.i18n/gtkgreet/langwin.c --- ldm-trunk/gtkgreet/langwin.c 2008-03-29 09:02:03.000000000 +0100 +++ ldm.i18n/gtkgreet/langwin.c 2008-04-01 00:18:26.000000000 +0200 @@ -115,8 +115,7 @@ label = gtk_label_new(""); gtk_label_set_markup((GtkLabel *) label, - _ - ("Select the language for your session to use:")); + _("Select the language for your session to use:")); gtk_box_pack_start((GtkBox *) vbox, (GtkWidget *) label, FALSE, FALSE, 0); diff -ur ldm-trunk/gtkgreet/Makefile.am ldm.i18n/gtkgreet/Makefile.am --- ldm-trunk/gtkgreet/Makefile.am 2008-03-29 09:02:03.000000000 +0100 +++ ldm.i18n/gtkgreet/Makefile.am 2008-03-31 15:26:36.000000000 +0200 @@ -7,4 +7,5 @@ ldmgtkgreet_LDADD = $(GTK_LIBS) AM_CPPFLAGS = $(GTK_CFLAGS) \ + -DLOCALE_DIR=\""$(datadir)/locale"\" \ -DLDM_THEME_DIR=\""$(datadir)/ldm/themes/"\" Nur in ldm-trunk: m4. diff -ur ldm-trunk/Makefile.am ldm.i18n/Makefile.am --- ldm-trunk/Makefile.am 2008-03-29 09:02:03.000000000 +0100 +++ ldm.i18n/Makefile.am 2008-03-31 14:37:51.000000000 +0200 @@ -1,4 +1,2 @@ -EXTRA_DIST = config.rpath m4/ChangeLog autogen.sh +EXTRA_DIST = config.rpath autogen.sh SUBDIRS = po src man share gtkgreet themes screen.d rc.d - -ACLOCAL_AMFLAGS = -I m4 Nur in ldm.i18n: mkinstalldirs. diff -ur ldm-trunk/po/de.po ldm.i18n/po/de.po --- ldm-trunk/po/de.po 2008-03-29 09:02:03.000000000 +0100 +++ ldm.i18n/po/de.po 2008-04-01 00:40:49.000000000 +0200 @@ -2,73 +2,178 @@ # Copyright (C) 2007 Scott Balneaves # This file is distributed under the same license as the ldm package. # Oliver Grawert <[EMAIL PROTECTED]>, 2007. +# Wolfgang Schweer <[EMAIL PROTECTED]>, 2008. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: 0.1\n" -"Report-Msgid-Bugs-To: [EMAIL PROTECTED]" -"POT-Creation-Date: 2007-08-16 11:16+0200\n" -"PO-Revision-Date: 2007-08-16 14:09+2\n" -"Last-Translator: Oliver Grawert <[EMAIL PROTECTED]>\n" -"Language-Team: Deutsch <[EMAIL PROTECTED]>\n" +"Project-Id-Version: ldm 2.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-04-01 00:26+0200\n" +"PO-Revision-Date: 2008-04-01 00:39+0100\n" +"Last-Translator: Wolfgang Schweer <[EMAIL PROTECTED]>\n" +"Language-Team: German <[EMAIL PROTECTED]>\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" -#: src/ldm.c:123 +#: src/ldm.c:138 msgid "Error: wait() call failed" -msgstr "" +msgstr "Fehler: Der Aufruf von wait() ist fehlgeschlagen" -#: src/ldm.c:360 +#: src/ldm.c:420 msgid "Couldn't open /var/log/ldm.log" -msgstr "" +msgstr "Die Datei /var/log/ldm.log konnte nicht geöffnet werden" -#: src/ldm.c:427 -#, c-format -msgid "Spawning greeter: %s\n" -msgstr "" +#: src/ldm.c:492 +msgid "ERROR: get_userid from greeter failed" +msgstr "FEHLER: Benutzername wurde vom Anmeldefenster nicht übergeben " -#: src/ldm.c:433 -msgid "Greeter returned null userid" -msgstr "" +#: src/ldm.c:496 +msgid "ERROR: get_passwd from greeter failed" +msgstr "FEHLER: Passwort wurde vom Anmeldefenster nicht übergeben" + +#: src/ldm.c:499 +msgid "ERROR: get_host from greeter failed" +msgstr "FEHLER: Rechnername wurde vom Anmeldefenster nicht übergeben" + +#: src/ldm.c:502 +msgid "ERROR: get_language from greeter failed" +msgstr "FEHLER: Sprachauswahl wurde vom Anmeldefenster nicht übergeben" + +#: src/ldm.c:505 +msgid "ERROR: get_session from greeter failed" +msgstr "FEHLER: Sitzungsname wurde vom Anmeldefenster nicht übergeben " + +#: src/ldm.c:514 +msgid "ERROR: username variable empty" +msgstr "FEHLER: Variable Benutzername ist leer" + +#: src/ldm.c:518 +msgid "ERROR: password variable empty" +msgstr "FEHLER: Variable Passwort ist leer" -#: src/sshutils.c:163 +#: src/ldm.c:522 +msgid "ERROR: server variable empty" +msgstr "FEHLER: Variable Rechnername ist leer" + +#: src/ldm.c:528 +msgid "Fatal error, missing mandatory information" +msgstr "Fataler Fehler: Notwendige Informationen fehlen" + +#: src/sshutils.c:171 msgid "<b>Verifying password, please wait...</b>" -msgstr "<b>Überprüfe Passwort, bitte warten...</b>" +msgstr "<b>Das Passwort wird überprüft, bitte warten ...</b>" -#: src/sshutils.c:175 +#: src/sshutils.c:184 msgid "This workstation isn't authorized to connect to server" -msgstr "Diese Arbeitsstation ist nicht für Anmeldungen authorisiert" +msgstr "Diese Arbeitsstation ist nicht für Anmeldungen autorisiert" + +#: src/sshutils.c:186 +msgid "Terminal not authorized, run ltsp-update-sshkeys\n" +msgstr "Terminal ist nicht autorisiert, bitte ltsp-update-sshkeys ausführen\n" + +#: src/sshutils.c:191 +msgid "Unexpected text from ssh session. Exiting\n" +msgstr "Unerwartete Meldung der ssh-Sitzung. Abbruch\n" -#: src/sshutils.c:192 -msgid "<b>Password incorrect. Try again.</b>" -msgstr "<b>Passwort inkorrekt. Bitte nochmals versuchen.</b>" +#: src/sshutils.c:204 +msgid "<b>Password incorrect.</b>" +msgstr "<b>Passwort ist nicht korrekt.</b>" -#: src/sshutils.c:198 +#: src/sshutils.c:208 +msgid "User failed password. Restarting\n" +msgstr "Benutzerpasswort falsch. Neustart\n" + +#: src/sshutils.c:212 msgid "<b>Login failed!</b>" msgstr "<b>Login fehlgeschlagen!</b>" -#: src/sshutils.c:210 +#: src/sshutils.c:214 +msgid "User failed login. Restarting\n" +msgstr "Benutzeranmeldung fehlgeschlagen. Neustart\n" + +#: src/sshutils.c:224 msgid "Your password has expired. Please enter a new one." -msgstr "Dieses Passwort ist abgelaufen. Bitte ein neues eingeben." +msgstr "Das Passwort ist abgelaufen. Bitte ein neues eingeben." -#: src/sshutils.c:217 +#: src/sshutils.c:231 msgid "Please enter your password again to verify." -msgstr "Bitte das Passwort nocheinmal zur Kontrolle eingeben." +msgstr "Bitte das Passwort noch einmal zur Kontrolle eingeben." -#: src/sshutils.c:225 +#: src/sshutils.c:239 msgid "Your passwords didn't match. Try again. Please enter a password." -msgstr "Die Passworte stimmen nicht überein, bitte erneut versuchen." +msgstr "Die Passworte stimmen nicht überein. Bitte erneut versuchen: Passwort eingeben." -#: src/sshutils.c:255 +#: src/sshutils.c:269 msgid "Password not updated." msgstr "Passwort nicht aktualisiert." -#: src/greeter_iface.c:67 +#: src/sshutils.c:271 +msgid "Password couldn't be updated." +msgstr "Passwort konnte nicht aktualisiert werden." + +#: src/greeter_iface.c:44 +msgid "Exiting ldm\n" +msgstr "ldm wird beendet\n" + +#: src/greeter_iface.c:77 msgid "Username" msgstr "Benutzername" -#: src/greeter_iface.c:87 +#: src/greeter_iface.c:106 msgid "Password" msgstr "Passwort" + +#: gtkgreet/greeter.c:211 +msgid "Select _Language ..." +msgstr "Spr_ache wählen ..." + +#: gtkgreet/greeter.c:216 +msgid "Select _Session ..." +msgstr "Sit_zungsart wählen ..." + +#: gtkgreet/greeter.c:221 +msgid "Select _Host ..." +msgstr "_Rechner wählen ..." + +#: gtkgreet/greeter.c:226 +msgid "_Reboot" +msgstr "_Neustart" + +#: gtkgreet/greeter.c:230 +msgid "Shut_down" +msgstr "_Ausschalten" + +#: gtkgreet/greeter.c:414 +msgid "Login as Guest" +msgstr "Anmeldung als Gast" + +#: gtkgreet/sesswin.c:90 +#: gtkgreet/langwin.c:84 +msgid "Default" +msgstr "Voreinstellung" + +#: gtkgreet/sesswin.c:92 +msgid "Failsafe xterm" +msgstr "Xterminal als _Notlösung" + +#: gtkgreet/sesswin.c:115 +msgid "Change _Session" +msgstr "Sit_zungsart ändern" + +#: gtkgreet/sesswin.c:126 +msgid "Select your session manager:" +msgstr "Sitzungsmanager auswählen:" + +#: gtkgreet/hostwin.c:104 +msgid "Select the host for your session to use:" +msgstr "Rechner für diese Sitzung auswählen:" + +#: gtkgreet/langwin.c:107 +msgid "Change _Language" +msgstr "Sprache _wechseln" + +#: gtkgreet/langwin.c:118 +msgid "Select the language for your session to use:" +msgstr "Sprache für diese Sitzung auswählen:" diff -ur ldm-trunk/po/ldm.pot ldm.i18n/po/ldm.pot --- ldm-trunk/po/ldm.pot 2008-03-29 09:02:03.000000000 +0100 +++ ldm.i18n/po/ldm.pot 2008-04-01 01:15:55.000000000 +0200 @@ -1,14 +1,13 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Scott Balneaves +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <[EMAIL PROTECTED]>, YEAR. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: ldm 2.0.0\n" "Report-Msgid-Bugs-To: [EMAIL PROTECTED]" -"POT-Creation-Date: 2007-08-16 11:16+0200\n" +"POT-Creation-Date: 2008-04-01 01:12+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <[EMAIL PROTECTED]>\n" "Language-Team: LANGUAGE <[EMAIL PROTECTED]>\n" @@ -16,59 +15,162 @@ "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: src/ldm.c:123 +#: src/ldm.c:138 msgid "Error: wait() call failed" msgstr "" -#: src/ldm.c:360 +#: src/ldm.c:420 msgid "Couldn't open /var/log/ldm.log" msgstr "" -#: src/ldm.c:427 -#, c-format -msgid "Spawning greeter: %s\n" +#: src/ldm.c:492 +msgid "ERROR: get_userid from greeter failed" msgstr "" -#: src/ldm.c:433 -msgid "Greeter returned null userid" +#: src/ldm.c:496 +msgid "ERROR: get_passwd from greeter failed" msgstr "" -#: src/sshutils.c:163 +#: src/ldm.c:499 +msgid "ERROR: get_host from greeter failed" +msgstr "" + +#: src/ldm.c:502 +msgid "ERROR: get_language from greeter failed" +msgstr "" + +#: src/ldm.c:505 +msgid "ERROR: get_session from greeter failed" +msgstr "" + +#: src/ldm.c:514 +msgid "ERROR: username variable empty" +msgstr "" + +#: src/ldm.c:518 +msgid "ERROR: password variable empty" +msgstr "" + +#: src/ldm.c:522 +msgid "ERROR: server variable empty" +msgstr "" + +#: src/ldm.c:528 +msgid "Fatal error, missing mandatory information" +msgstr "" + +#: src/sshutils.c:171 msgid "<b>Verifying password, please wait...</b>" msgstr "" -#: src/sshutils.c:175 +#: src/sshutils.c:184 msgid "This workstation isn't authorized to connect to server" msgstr "" -#: src/sshutils.c:192 -msgid "<b>Password incorrect. Try again.</b>" +#: src/sshutils.c:186 +msgid "Terminal not authorized, run ltsp-update-sshkeys\n" +msgstr "" + +#: src/sshutils.c:191 +msgid "Unexpected text from ssh session. Exiting\n" +msgstr "" + +#: src/sshutils.c:204 +msgid "<b>Password incorrect.</b>" +msgstr "" + +#: src/sshutils.c:208 +msgid "User failed password. Restarting\n" msgstr "" -#: src/sshutils.c:198 +#: src/sshutils.c:212 msgid "<b>Login failed!</b>" msgstr "" -#: src/sshutils.c:210 +#: src/sshutils.c:214 +msgid "User failed login. Restarting\n" +msgstr "" + +#: src/sshutils.c:224 msgid "Your password has expired. Please enter a new one." msgstr "" -#: src/sshutils.c:217 +#: src/sshutils.c:231 msgid "Please enter your password again to verify." msgstr "" -#: src/sshutils.c:225 +#: src/sshutils.c:239 msgid "Your passwords didn't match. Try again. Please enter a password." msgstr "" -#: src/sshutils.c:255 +#: src/sshutils.c:269 msgid "Password not updated." msgstr "" -#: src/greeter_iface.c:67 +#: src/sshutils.c:271 +msgid "Password couldn't be updated." +msgstr "" + +#: src/greeter_iface.c:44 +msgid "Exiting ldm\n" +msgstr "" + +#: src/greeter_iface.c:77 msgid "Username" msgstr "" -#: src/greeter_iface.c:87 +#: src/greeter_iface.c:106 msgid "Password" msgstr "" + +#: gtkgreet/greeter.c:211 +msgid "Select _Language ..." +msgstr "" + +#: gtkgreet/greeter.c:216 +msgid "Select _Session ..." +msgstr "" + +#: gtkgreet/greeter.c:221 +msgid "Select _Host ..." +msgstr "" + +#: gtkgreet/greeter.c:226 +msgid "_Reboot" +msgstr "" + +#: gtkgreet/greeter.c:230 +msgid "Shut_down" +msgstr "" + +#: gtkgreet/greeter.c:414 +msgid "Login as Guest" +msgstr "" + +#: gtkgreet/sesswin.c:90 gtkgreet/langwin.c:84 +msgid "Default" +msgstr "" + +#: gtkgreet/sesswin.c:92 +msgid "Failsafe xterm" +msgstr "" + +#: gtkgreet/sesswin.c:115 +msgid "Change _Session" +msgstr "" + +#: gtkgreet/sesswin.c:126 +msgid "Select your session manager:" +msgstr "" + +#: gtkgreet/hostwin.c:104 +msgid "Select the host for your session to use:" +msgstr "" + +#: gtkgreet/langwin.c:107 +msgid "Change _Language" +msgstr "" + +#: gtkgreet/langwin.c:118 +msgid "Select the language for your session to use:" +msgstr "" diff -ur ldm-trunk/po/Makefile.in.in ldm.i18n/po/Makefile.in.in --- ldm-trunk/po/Makefile.in.in 2008-03-29 09:02:03.000000000 +0100 +++ ldm.i18n/po/Makefile.in.in 2008-03-31 17:32:01.000000000 +0200 @@ -1,18 +1,20 @@ -# Makefile for PO directory in any package using GNU gettext. -# Copyright (C) 1995-1997, 2000-2006 by Ulrich Drepper <[EMAIL PROTECTED]> +# Makefile for program source directory in GNU NLS utilities package. +# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <[EMAIL PROTECTED]> # -# This file can be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU General Public -# License but which still want to provide support for the GNU gettext -# functionality. -# Please note that the actual code of GNU gettext is covered by the GNU -# General Public License and is *not* in the public domain. +# This file file be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. # -# Origin: gettext-0.16 +# - Modified by Owen Taylor <[EMAIL PROTECTED]> to use GETTEXT_PACKAGE +# instead of PACKAGE and to look for po2tbl in ./ not in intl/ +# +# - Modified by jacob berkman <[EMAIL PROTECTED]> to install +# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ SHELL = /bin/sh @SET_MAKE@ @@ -25,378 +27,244 @@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ datadir = @datadir@ -localedir = @localedir@ -gettextsrcdir = $(datadir)/gettext/po +libdir = @libdir@ +localedir = $(libdir)/locale +gnulocaledir = $(datadir)/locale +gettextsrcdir = $(datadir)/glib-2.0/gettext/po +subdir = po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ +MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@ -# We use $(mkdir_p). -# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as -# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, -# @install_sh@ does not start with $(SHELL), so we add it. -# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined -# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake -# versions, $(mkinstalldirs) and $(install_sh) are unused. -mkinstalldirs = $(SHELL) @install_sh@ -d -install_sh = $(SHELL) @install_sh@ -MKDIR_P = @MKDIR_P@ -mkdir_p = @mkdir_p@ - -GMSGFMT_ = @GMSGFMT@ -GMSGFMT_no = @GMSGFMT@ -GMSGFMT_yes = @GMSGFMT_015@ -GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) -MSGFMT_ = @MSGFMT@ -MSGFMT_no = @MSGFMT@ -MSGFMT_yes = @MSGFMT_015@ -MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) -XGETTEXT_ = @XGETTEXT@ -XGETTEXT_no = @XGETTEXT@ -XGETTEXT_yes = @XGETTEXT_015@ -XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) +CC = @CC@ +GENCAT = @GENCAT@ +GMSGFMT = @GMSGFMT@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +XGETTEXT = @XGETTEXT@ MSGMERGE = msgmerge -MSGMERGE_UPDATE = @MSGMERGE@ --update -MSGINIT = msginit -MSGCONV = msgconv -MSGFILTER = msgfilter +DEFS = @DEFS@ +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ + +INCLUDES = -I.. -I$(top_srcdir)/intl + +COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) + +SOURCES = POFILES = @POFILES@ GMOFILES = @GMOFILES@ -UPDATEPOFILES = @UPDATEPOFILES@ -DUMMYPOFILES = @DUMMYPOFILES@ -DISTFILES.common = Makefile.in.in remove-potcdate.sin \ -$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) -DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ -$(POFILES) $(GMOFILES) \ -$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) +DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \ +$(POFILES) $(GMOFILES) $(SOURCES) POTFILES = \ CATALOGS = @CATALOGS@ - -# Makevars gets inserted here. (Don't remove this line!) +CATOBJEXT = @CATOBJEXT@ +INSTOBJEXT = @INSTOBJEXT@ .SUFFIXES: -.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update +.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat + +.c.o: + $(COMPILE) $< + +.po.pox: + $(MAKE) $(GETTEXT_PACKAGE).pot + $(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: - @echo "$(MSGFMT) -c -o $@ $<"; \ - $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ + $(MSGFMT) -o $@ $< .po.gmo: - @lang=`echo $* | sed -e 's,.*/,,'`; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ - cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo - -.sin.sed: - sed -e '/^#/d' $< > t-$@ - mv t-$@ $@ + file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ + && rm -f $$file && $(GMSGFMT) $(MSGFMT_OPTS) -o $$file $< + +.po.cat: + sed -f ../intl/po2msg.sed < $< > $*.msg \ + && rm -f $@ && $(GENCAT) $@ $*.msg all: [EMAIL PROTECTED]@ -all-yes: stamp-po +all-yes: $(CATALOGS) all-no: -# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no -# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because -# we don't want to bother translators with empty POT files). We assume that -# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. -# In this case, stamp-po is a nop (i.e. a phony target). - -# stamp-po is a timestamp denoting the last time at which the CATALOGS have -# been loosely updated. Its purpose is that when a developer or translator -# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, -# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent -# invocations of "make" will do nothing. This timestamp would not be necessary -# if updating the $(CATALOGS) would always touch them; however, the rule for -# $(POFILES) has been designed to not touch files that don't need to be -# changed. -stamp-po: $(srcdir)/$(DOMAIN).pot - test ! -f $(srcdir)/$(DOMAIN).pot || \ - test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) - @test ! -f $(srcdir)/$(DOMAIN).pot || { \ - echo "touch stamp-po" && \ - echo timestamp > stamp-poT && \ - mv stamp-poT stamp-po; \ - } - -# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', -# otherwise packages like GCC can not be built if only parts of the source -# have been downloaded. - -# This target rebuilds $(DOMAIN).pot; it is an expensive operation. -# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. -$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed - if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ - msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ - else \ - msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ - fi; \ - $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ - --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ +$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES) + $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) --directory=$(top_srcdir) \ + --add-comments --keyword=_ --keyword=N_ \ + --flag=g_strdup_printf:1:c-format \ + --flag=g_string_printf:2:c-format \ + --flag=g_string_append_printf:2:c-format \ + --flag=g_error_new:3:c-format \ + --flag=g_set_error:4:c-format \ + --flag=g_markup_printf_escaped:1:c-format \ + --flag=g_log:3:c-format \ + --flag=g_print:1:c-format \ + --flag=g_printerr:1:c-format \ + --flag=g_printf:1:c-format \ + --flag=g_fprintf:2:c-format \ + --flag=g_sprintf:2:c-format \ + --flag=g_snprintf:3:c-format \ + --flag=g_scanner_error:2:c-format \ + --flag=g_scanner_warn:2:c-format \ --files-from=$(srcdir)/POTFILES.in \ - --copyright-holder='$(COPYRIGHT_HOLDER)' \ - --msgid-bugs-address="$$msgid_bugs_address" - test ! -f $(DOMAIN).po || { \ - if test -f $(srcdir)/$(DOMAIN).pot; then \ - sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ - sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ - if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ - else \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - else \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - } - -# This rule has no dependencies: we don't need to update $(DOMAIN).pot at -# every "make" invocation, only create it when it is missing. -# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. -$(srcdir)/$(DOMAIN).pot: - $(MAKE) $(DOMAIN).pot-update - -# This target rebuilds a PO file if $(DOMAIN).pot has changed. -# Note that a PO file is not touched if it doesn't need to be changed. -$(POFILES): $(srcdir)/$(DOMAIN).pot - @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ - if test -f "$(srcdir)/$${lang}.po"; then \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ - cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \ - else \ - $(MAKE) $${lang}.po-create; \ - fi - + && test ! -f $(GETTEXT_PACKAGE).po \ + || ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \ + && mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot ) install: install-exec install-data install-exec: install-data: [EMAIL PROTECTED]@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ - for file in $(DISTFILES.common) Makevars.template; do \ - $(INSTALL_DATA) $(srcdir)/$$file \ - $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - for file in Makevars; do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi install-data-no: all install-data-yes: all - $(mkdir_p) $(DESTDIR)$(datadir) + if test -r "$(MKINSTALLDIRS)"; then \ + $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \ + else \ + $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \ + fi @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $(DESTDIR)$$dir; \ - if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ - $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ - echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + case "$$cat" in \ + *.gmo) destdir=$(gnulocaledir);; \ + *) destdir=$(localedir);; \ + esac; \ + lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ + dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \ + if test -r "$(MKINSTALLDIRS)"; then \ + $(MKINSTALLDIRS) $$dir; \ + else \ + $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \ + fi; \ + if test -r $$cat; then \ + $(INSTALL_DATA) $$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ + echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ + else \ + $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ + echo "installing $(srcdir)/$$cat as" \ + "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ + fi; \ + if test -r $$cat.m; then \ + $(INSTALL_DATA) $$cat.m $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ + echo "installing $$cat.m as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ + else \ + if test -r $(srcdir)/$$cat.m ; then \ + $(INSTALL_DATA) $(srcdir)/$$cat.m \ + $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ + echo "installing $(srcdir)/$$cat as" \ + "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ + else \ + true; \ fi; \ - done; \ + fi; \ done - -install-strip: install - -installdirs: installdirs-exec installdirs-data -installdirs-exec: -installdirs-data: [EMAIL PROTECTED]@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + if test "$(PACKAGE)" = "glib"; then \ + if test -r "$(MKINSTALLDIRS)"; then \ + $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \ + else \ + $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \ + fi; \ + $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ + $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ else \ : ; \ fi -installdirs-data-no: -installdirs-data-yes: - $(mkdir_p) $(DESTDIR)$(datadir) - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $(DESTDIR)$$dir; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - fi; \ - done; \ - done # Define this as empty until I found a useful application. installcheck: -uninstall: uninstall-exec uninstall-data -uninstall-exec: -uninstall-data: [EMAIL PROTECTED]@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - for file in $(DISTFILES.common) Makevars.template; do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi -uninstall-data-no: -uninstall-data-yes: +uninstall: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - done; \ + lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ + rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ + rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ done + if test "$(PACKAGE)" = "glib"; then \ + rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ + fi check: all -info dvi ps pdf html tags TAGS ctags CTAGS ID: +dvi info tags TAGS ID: mostlyclean: - rm -f remove-potcdate.sed - rm -f stamp-poT - rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + rm -f core core.* *.pox $(GETTEXT_PACKAGE).po *.old.po cat-id-tbl.tmp rm -fr *.o clean: mostlyclean distclean: clean - rm -f Makefile Makefile.in POTFILES *.mo + rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." - rm -f stamp-po $(GMOFILES) + rm -f $(GMOFILES) -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: - $(MAKE) update-po - @$(MAKE) dist2 -# This is a separate target because 'update-po' must be executed before. -dist2: stamp-po $(DISTFILES) +distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir) +dist distdir: update-po $(DISTFILES) dists="$(DISTFILES)"; \ - if test "$(PACKAGE)" = "gettext-tools"; then \ - dists="$$dists Makevars.template"; \ - fi; \ - if test -f $(srcdir)/$(DOMAIN).pot; then \ - dists="$$dists $(DOMAIN).pot stamp-po"; \ - fi; \ - if test -f $(srcdir)/ChangeLog; then \ - dists="$$dists ChangeLog"; \ - fi; \ - for i in 0 1 2 3 4 5 6 7 8 9; do \ - if test -f $(srcdir)/ChangeLog.$$i; then \ - dists="$$dists ChangeLog.$$i"; \ - fi; \ - done; \ - if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ - if test -f $$file; then \ - cp -p $$file $(distdir) || exit 1; \ - else \ - cp -p $(srcdir)/$$file $(distdir) || exit 1; \ - fi; \ + ln $(srcdir)/$$file $(distdir) 2> /dev/null \ + || cp -p $(srcdir)/$$file $(distdir); \ done update-po: Makefile - $(MAKE) $(DOMAIN).pot-update - test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) - $(MAKE) update-gmo - -# General rule for creating PO files. - -.nop.po-create: - @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ - echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ - exit 1 - -# General rule for updating PO files. - -.nop.po-update: - @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ - if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ + $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ - echo "$$lang:"; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ - if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ - if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - exit 1; \ + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ + echo "$$lang:"; \ + if $(MSGMERGE) $$lang.po $(GETTEXT_PACKAGE).pot -o $$tmpdir/$$lang.new.po; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + exit 1; \ + fi; \ fi; \ + else \ + echo "msgmerge for $$cat failed!"; \ + rm -f $$tmpdir/$$lang.new.po; \ fi; \ - else \ - echo "msgmerge for $$lang.po failed!" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi - -$(DUMMYPOFILES): - -update-gmo: Makefile $(GMOFILES) - @: - -Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ - cd $(top_builddir) \ - && $(SHELL) ./config.status $(subdir)/[EMAIL PROTECTED] po-directories + done -force: +# POTFILES is created from POTFILES.in by stripping comments, empty lines +# and Intltool tags (enclosed in square brackets), and appending a full +# relative path to them +POTFILES: POTFILES.in + ( if test 'x$(srcdir)' != 'x.'; then \ + posrcprefix='$(top_srcdir)/'; \ + else \ + posrcprefix="../"; \ + fi; \ + rm -f [EMAIL PROTECTED] $@ \ + && (sed -e '/^#/d' \ + -e "s/^\[.*\] +//" \ + -e '/^[ ]*$$/d' \ + -e "[EMAIL PROTECTED]@ $$posrcprefix& \\\\@" < $(srcdir)/[EMAIL PROTECTED] \ + | sed -e '$$s/\\$$//') > [EMAIL PROTECTED] \ + && chmod a-w [EMAIL PROTECTED] \ + && mv [EMAIL PROTECTED] $@ ) + +Makefile: Makefile.in.in ../config.status POTFILES + cd .. \ + && CONFIG_FILES=$(subdir)/[EMAIL PROTECTED] CONFIG_HEADERS= \ + $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -ur ldm-trunk/po/POTFILES.in ldm.i18n/po/POTFILES.in --- ldm-trunk/po/POTFILES.in 2008-03-29 09:02:03.000000000 +0100 +++ ldm.i18n/po/POTFILES.in 2008-03-31 00:29:52.000000000 +0200 @@ -2,3 +2,9 @@ src/ldm.c src/sshutils.c src/greeter_iface.c +gtkgreet/greeter.c +gtkgreet/sesswin.c +gtkgreet/ldminfo.c +gtkgreet/hostwin.c +gtkgreet/langwin.c + Nur in ldm.i18n: README.i18n. diff -ur ldm-trunk/src/greeter_iface.c ldm.i18n/src/greeter_iface.c --- ldm-trunk/src/greeter_iface.c 2008-03-29 09:02:03.000000000 +0100 +++ ldm.i18n/src/greeter_iface.c 2008-04-01 00:16:15.000000000 +0200 @@ -41,7 +41,7 @@ if (!res) { fprintf(ldmlog, "spawn_greeter failed to execute:\n"); dump_cmdline(greet); - die("Exiting ldm\n"); + die(_("Exiting ldm\n")); } } diff -ur ldm-trunk/src/ldm.c ldm.i18n/src/ldm.c --- ldm-trunk/src/ldm.c 2008-03-29 09:02:03.000000000 +0100 +++ ldm.i18n/src/ldm.c 2008-04-01 00:14:17.000000000 +0200 @@ -19,11 +19,17 @@ #include <fcntl.h> #include <sys/wait.h> #include <glib.h> -#include <glib/gi18n.h> #include <glib-object.h> #include "ldm.h" + +#include <config.h> +#include <libintl.h> +#include <locale.h> +#define _(text) gettext(text) + + struct ldm_info ldminfo; FILE *ldmlog; @@ -329,7 +335,7 @@ char **hosts_char = NULL; // Get all info for autologin, without greeter - fprintf(ldmlog, _("Logging in as guest\n")); + fprintf(ldmlog, "Logging in as guest\n"); scopy(ldminfo.username, getenv("LDM_USERNAME")); scopy(ldminfo.password, getenv("LDM_PASSWORD")); if (*(ldminfo.username) == '\0') @@ -371,7 +377,14 @@ char *err_msg = NULL; char *p = NULL; int i; - + +#ifdef ENABLE_NLS + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); +#endif + g_type_init(); /* @@ -470,7 +483,7 @@ launch_x(argv); if (!ldminfo.autologin) { - fprintf(ldmlog, _("Spawning greeter: %s\n"), ldminfo.greeter_prog); + fprintf(ldmlog, "Spawning greeter: %s\n", ldminfo.greeter_prog); spawn_greeter(); @@ -489,7 +502,7 @@ die(_("ERROR: get_language from greeter failed")); if (get_session()) - die("ERROR: get_session from greeter failed"); + die(_("ERROR: get_session from greeter failed")); } diff -ur ldm-trunk/src/Makefile.am ldm.i18n/src/Makefile.am --- ldm-trunk/src/Makefile.am 2008-03-29 09:02:03.000000000 +0100 +++ ldm.i18n/src/Makefile.am 2008-03-31 15:27:12.000000000 +0200 @@ -6,4 +6,5 @@ AM_CPPFLAGS = $(GLIB_CFLAGS) \ $(GOBJECT_CFLAGS) \ -DRC_DIR=\""$(datadir)/ldm"\" \ + -DLOCALE_DIR=\""$(datadir)/locale"\" \ -DLDM_EXEC_DIR=\""$(ldmlibexecdir)"\" diff -ur ldm-trunk/src/sshutils.c ldm.i18n/src/sshutils.c --- ldm-trunk/src/sshutils.c 2008-03-29 09:02:03.000000000 +0100 +++ ldm.i18n/src/sshutils.c 2008-04-01 00:25:43.000000000 +0200 @@ -22,10 +22,15 @@ #include <pty.h> #include <utmp.h> #include <glib.h> -#include <glib/gi18n.h> #include "ldm.h" +#include <config.h> +#include <libintl.h> +#include <locale.h> +#define _(text) gettext(text) + + void spawn_ssh(int fd) { @@ -178,12 +183,12 @@ if (!ldminfo.autologin) set_message(_("This workstation isn't authorized to connect to server")); sleep(5); - die("Terminal not authorized, run ltsp-update-sshkeys\n"); + die(_("Terminal not authorized, run ltsp-update-sshkeys\n")); } else if (seen == 3) { fprintf(ldmlog, "Saw sentinel. Logged in successfully\n"); return 0; } else { - die("Unexpected text from ssh session. Exiting\n"); + die(_("Unexpected text from ssh session. Exiting\n")); } seen = expect(fd, 120.0, @@ -200,13 +205,13 @@ if (!ldminfo.autologin) bzero(ldminfo.password, sizeof ldminfo.password); sleep(5); - die("User failed password. Restarting\n"); + die(_("User failed password. Restarting\n")); } else if (seen == 3) { fprintf(ldmlog, "User %s failed password 3 times\n", ldminfo.username); set_message(_("<b>Login failed!</b>")); sleep(5); - die("User failed login. Restarting\n"); + die(_("User failed login. Restarting\n")); } else break; } @@ -263,7 +268,7 @@ set_message(_("Password not updated.")); sleep(5); - die("Password couldn't be updated."); + die(_("Password couldn't be updated.")); return 1; }