This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: RFA: start of i18n
- From: Elena Zannoni <ezannoni at redhat dot com>
- To: tromey at redhat dot com
- Cc: gdb-patches at sources dot redhat dot com
- Date: Fri, 21 Jun 2002 13:45:15 -0400
- Subject: Re: RFA: start of i18n
- References: <87elf0wnp2.fsf@fleche.redhat.com>
Tom Tromey writes:
> This patch adds some minor infrastructure required to let gdb use
> gettext for message translation. Basically it works the same way as
> gettext does in bfd, gas, ld, etc.
>
> No messages are actually translated at this point. This just makes it
> possible to do so.
>
> This causes no test suite regressions on Red Hat Linux 7.3.
>
> Ok to commit?
>
> Tom
>
Cool. The main.c part is approved.
Are you going to add the _("...") thingies too?
Would be nice if the first translated language is Italian. :-)
Elena
>
> Index: ChangeLog
> from Tom Tromey <tromey@redhat.com>
>
> * Makefile.in (GDB_CFLAGS): Define LOCALEDIR.
> * configure, config.in: Rebuilt.
> * configure.in (PACKAGE): Define.
> * defs.h: Include locale.h, libintl.h.
> (_, N_): Define.
> * main.c (captured_main): Call setlocale, bindtextdomain,
> textdomain.
>
> Index: Makefile.in
> ===================================================================
> RCS file: /cvs/src/src/gdb/Makefile.in,v
> retrieving revision 1.209
> diff -u -r1.209 Makefile.in
> --- Makefile.in 14 Jun 2002 22:30:41 -0000 1.209
> +++ Makefile.in 21 Jun 2002 17:02:30 -0000
> @@ -312,7 +312,7 @@
> # your system doesn't have fcntl.h in /usr/include (which is where it
> # should be according to Posix).
> DEFS = @DEFS@
> -GDB_CFLAGS = -I. -I$(srcdir) -I$(srcdir)/config $(DEFS)
> +GDB_CFLAGS = -I. -I$(srcdir) -I$(srcdir)/config -DLOCALEDIR="\"$(prefix)/share/locale\"" $(DEFS)
>
> # M{H,T}_CFLAGS, if defined, have host- and target-dependent CFLAGS
> # from the config directory.
> Index: configure.in
> ===================================================================
> RCS file: /cvs/src/src/gdb/configure.in,v
> retrieving revision 1.87
> diff -u -r1.87 configure.in
> --- configure.in 11 May 2002 00:40:25 -0000 1.87
> +++ configure.in 21 Jun 2002 17:02:36 -0000
> @@ -33,10 +33,11 @@
> AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
> AC_CANONICAL_SYSTEM
>
> -dnl gdb doesn't use gettext, but bfd does. We call this to ensure we
> -dnl link with the correct libraries.
> +dnl Set up for gettext. PACKAGE is used when we call bindtextdomain.
> ALL_LINGUAS=
> CY_GNU_GETTEXT
> +AC_DEFINE(PACKAGE, "gdb", [Name of this package. ])
> +
>
> dnl List of object files added by configure.
>
> Index: defs.h
> ===================================================================
> RCS file: /cvs/src/src/gdb/defs.h,v
> retrieving revision 1.89
> diff -u -r1.89 defs.h
> --- defs.h 15 Jun 2002 18:45:31 -0000 1.89
> +++ defs.h 21 Jun 2002 17:02:37 -0000
> @@ -39,6 +39,28 @@
> #include <unistd.h>
> #endif
>
> +#ifdef HAVE_LOCALE_H
> +# include <locale.h>
> +#endif
> +
> +#ifdef ENABLE_NLS
> +# include <libintl.h>
> +# define _(String) gettext (String)
> +# ifdef gettext_noop
> +# define N_(String) gettext_noop (String)
> +# else
> +# define N_(String) (String)
> +# endif
> +#else
> +# define gettext(Msgid) (Msgid)
> +# define dgettext(Domainname, Msgid) (Msgid)
> +# define dcgettext(Domainname, Msgid, Category) (Msgid)
> +# define textdomain(Domainname) while (0) /* nothing */
> +# define bindtextdomain(Domainname, Dirname) while (0) /* nothing */
> +# define _(String) (String)
> +# define N_(String) (String)
> +#endif
> +
> /* For ``enum target_signal''. */
> #include "gdb/signals.h"
>
> Index: main.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/main.c,v
> retrieving revision 1.16
> diff -u -r1.16 main.c
> --- main.c 17 Jan 2002 22:15:17 -0000 1.16
> +++ main.c 21 Jun 2002 17:02:44 -0000
> @@ -157,6 +157,15 @@
>
> long time_at_startup = get_run_time ();
>
> +#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
> + setlocale (LC_MESSAGES, "");
> +#endif
> +#if defined (HAVE_SETLOCALE)
> + setlocale (LC_CTYPE, "");
> +#endif
> + bindtextdomain (PACKAGE, LOCALEDIR);
> + textdomain (PACKAGE);
> +
> START_PROGRESS (argv[0], 0);
>
> #ifdef MPW