Browse Source
We gettextize under our package name, which we change to a more reasonable 'libctf'. Our internationalization support is mostly provided by ctf-intl.h, which is a copy of opcodes/opintl.h with the non-gettext_noop N_() expansion debracketed to avoid pedantic compiler warnings. The libctf error strings returned by ctf_errmsg are marked up for internationalization. (We also adjust binutils's Makefile a tiny bit to allow for the fact that libctf now uses functions from libintl.) binutils/ChangeLog 2020-08-27 Nick Alcock <nick.alcock@oracle.com> * Makefile.am (readelf_LDADD): Move $(LIBINTL) after $(LIBCTF_NOBFD). * Makefile.in: Regenerated. libctf/ChangeLog 2020-08-27 Nick Alcock <nick.alcock@oracle.com> * configure.ac: Adjust package name to simply 'libctf': arbitrarily declare this to be version 1.2.0. * Makefile.am (AM_CPPFLAGS): Add @INCINTL@. * Makefile.in: Regenerated. * configure: Regenerated. * ctf-intl.h: New file, lightly modified from opcodes/opintl.h. * ctf-impl.h: Include it. * ctf-error.r (_ctf_errlist_t): Mark strings as noop-translatable. (ctf_errmsg): Actually translate them.gdb-10-branch
11 changed files with 107 additions and 21 deletions
@ -0,0 +1,68 @@ |
|||
/* ctf-intl.h - libctf specific header for gettext code.
|
|||
Copyright (C) 1998-2020 Free Software Foundation, Inc. |
|||
|
|||
Written by Tom Tromey <tromey@cygnus.com> |
|||
|
|||
This file is part of libctf. |
|||
|
|||
This library is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation; either version 3, or (at your option) |
|||
any later version. |
|||
|
|||
It is distributed in the hope that it will be useful, but WITHOUT |
|||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY |
|||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public |
|||
License for more details. |
|||
|
|||
You should have received a copy of the GNU General Public License |
|||
along with this file; see the file COPYING. If not, write to the |
|||
Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, |
|||
MA 02110-1301, USA. */ |
|||
|
|||
#ifndef _CTF_INTL_H |
|||
#define _CTF_INTL_H |
|||
|
|||
#ifdef ENABLE_NLS |
|||
# include <libintl.h> |
|||
/* Note the redefinition of gettext and ngettext here to use PACKAGE.
|
|||
|
|||
This is because the code in this directory is used to build a |
|||
library which will be linked with code in other directories to form |
|||
programs. We want to maintain a separate translation file for this |
|||
directory however, rather than being forced to merge it with that |
|||
of any program linked to libopcodes. This is a library, so it |
|||
cannot depend on the catalog currently loaded. |
|||
|
|||
In order to do this, we have to make sure that when we extract |
|||
messages we use the LIBCTF domain rather than the domain of the |
|||
program that included the opcodes library, (eg OBJDUMP). Hence we |
|||
use dgettext (PACKAGE, String) and define PACKAGE to be 'libctf'. |
|||
(See the code in configure). */ |
|||
# undef gettext |
|||
# define gettext(Msgid) dgettext (PACKAGE, Msgid) |
|||
# undef ngettext |
|||
# define ngettext(Msgid1, Msgid2, n) dngettext (PACKAGE, Msgid1, Msgid2, n) |
|||
# 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 ngettext(Msgid1, Msgid2, n) \ |
|||
(n == 1 ? Msgid1 : Msgid2) |
|||
# define dngettext(Domainname, Msgid1, Msgid2, n) \ |
|||
(n == 1 ? Msgid1 : Msgid2) |
|||
# define dcngettext(Domainname, Msgid1, Msgid2, n, Category) \ |
|||
(n == 1 ? Msgid1 : Msgid2) |
|||
# define textdomain(Domainname) do {} while (0) |
|||
# define bindtextdomain(Domainname, Dirname) do {} while (0) |
|||
# define _(String) (String) |
|||
# define N_(String) String |
|||
#endif |
|||
|
|||
#endif /* _CTF_INTL_H */ |
|||
Loading…
Reference in new issue