mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
libctf, binutils: initial work towards libctf gettextization
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.
This commit is contained in:
68
libctf/ctf-intl.h
Normal file
68
libctf/ctf-intl.h
Normal file
@ -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 */
|
Reference in New Issue
Block a user