New headers defining common gettext-support macros.

Wed Nov  5 22:05:19 2003  Matthias Clasen  <maclas@gmx.de>

	* glib/gi18n-lib.h:
	* glib/gi18n.h: New headers defining common gettext-support
	macros.

	* glib/Makefile.am (glibsubinclude_HEADERS): Add gi18n.h
	and gi18n-lib.h.

	* glib/gstrfuncs.h:
	* glib/gstrfuncs.c (g_strip_context): Auxiliary function for
	the implementation of Q_().
This commit is contained in:
Matthias Clasen 2003-11-05 21:07:47 +00:00 committed by Matthias Clasen
parent 36715ffb1e
commit 2807b4e6eb
11 changed files with 215 additions and 0 deletions

View File

@ -1,3 +1,16 @@
Wed Nov 5 22:05:19 2003 Matthias Clasen <maclas@gmx.de>
* glib/gi18n-lib.h:
* glib/gi18n.h: New headers defining common gettext-support
macros.
* glib/Makefile.am (glibsubinclude_HEADERS): Add gi18n.h
and gi18n-lib.h.
* glib/gstrfuncs.h:
* glib/gstrfuncs.c (g_strip_context): Auxiliary function for
the implementation of Q_().
2003-11-05 Morten Welinder <terra@gnome.org> 2003-11-05 Morten Welinder <terra@gnome.org>
* glib/garray.c (g_ptr_array_remove_range): Make it compile. * glib/garray.c (g_ptr_array_remove_range): Make it compile.

View File

@ -1,3 +1,16 @@
Wed Nov 5 22:05:19 2003 Matthias Clasen <maclas@gmx.de>
* glib/gi18n-lib.h:
* glib/gi18n.h: New headers defining common gettext-support
macros.
* glib/Makefile.am (glibsubinclude_HEADERS): Add gi18n.h
and gi18n-lib.h.
* glib/gstrfuncs.h:
* glib/gstrfuncs.c (g_strip_context): Auxiliary function for
the implementation of Q_().
2003-11-05 Morten Welinder <terra@gnome.org> 2003-11-05 Morten Welinder <terra@gnome.org>
* glib/garray.c (g_ptr_array_remove_range): Make it compile. * glib/garray.c (g_ptr_array_remove_range): Make it compile.

View File

@ -1,3 +1,16 @@
Wed Nov 5 22:05:19 2003 Matthias Clasen <maclas@gmx.de>
* glib/gi18n-lib.h:
* glib/gi18n.h: New headers defining common gettext-support
macros.
* glib/Makefile.am (glibsubinclude_HEADERS): Add gi18n.h
and gi18n-lib.h.
* glib/gstrfuncs.h:
* glib/gstrfuncs.c (g_strip_context): Auxiliary function for
the implementation of Q_().
2003-11-05 Morten Welinder <terra@gnome.org> 2003-11-05 Morten Welinder <terra@gnome.org>
* glib/garray.c (g_ptr_array_remove_range): Make it compile. * glib/garray.c (g_ptr_array_remove_range): Make it compile.

View File

@ -1,3 +1,16 @@
Wed Nov 5 22:05:19 2003 Matthias Clasen <maclas@gmx.de>
* glib/gi18n-lib.h:
* glib/gi18n.h: New headers defining common gettext-support
macros.
* glib/Makefile.am (glibsubinclude_HEADERS): Add gi18n.h
and gi18n-lib.h.
* glib/gstrfuncs.h:
* glib/gstrfuncs.c (g_strip_context): Auxiliary function for
the implementation of Q_().
2003-11-05 Morten Welinder <terra@gnome.org> 2003-11-05 Morten Welinder <terra@gnome.org>
* glib/garray.c (g_ptr_array_remove_range): Make it compile. * glib/garray.c (g_ptr_array_remove_range): Make it compile.

View File

@ -1,3 +1,16 @@
Wed Nov 5 22:05:19 2003 Matthias Clasen <maclas@gmx.de>
* glib/gi18n-lib.h:
* glib/gi18n.h: New headers defining common gettext-support
macros.
* glib/Makefile.am (glibsubinclude_HEADERS): Add gi18n.h
and gi18n-lib.h.
* glib/gstrfuncs.h:
* glib/gstrfuncs.c (g_strip_context): Auxiliary function for
the implementation of Q_().
2003-11-05 Morten Welinder <terra@gnome.org> 2003-11-05 Morten Welinder <terra@gnome.org>
* glib/garray.c (g_ptr_array_remove_range): Make it compile. * glib/garray.c (g_ptr_array_remove_range): Make it compile.

View File

@ -1,3 +1,16 @@
Wed Nov 5 22:05:19 2003 Matthias Clasen <maclas@gmx.de>
* glib/gi18n-lib.h:
* glib/gi18n.h: New headers defining common gettext-support
macros.
* glib/Makefile.am (glibsubinclude_HEADERS): Add gi18n.h
and gi18n-lib.h.
* glib/gstrfuncs.h:
* glib/gstrfuncs.c (g_strip_context): Auxiliary function for
the implementation of Q_().
2003-11-05 Morten Welinder <terra@gnome.org> 2003-11-05 Morten Welinder <terra@gnome.org>
* glib/garray.c (g_ptr_array_remove_range): Make it compile. * glib/garray.c (g_ptr_array_remove_range): Make it compile.

View File

@ -123,6 +123,8 @@ glibsubinclude_HEADERS = \
gfileutils.h \ gfileutils.h \
ghash.h \ ghash.h \
ghook.h \ ghook.h \
gi18n.h \
gi18n-lib.h \
giochannel.h \ giochannel.h \
glist.h \ glist.h \
gmacros.h \ gmacros.h \

55
glib/gi18n-lib.h Normal file
View File

@ -0,0 +1,55 @@
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997, 2002 Peter Mattis, Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifndef __G_I18N_LIB_H__
#define __G_I18N_LIB_H__
#include <glib/gstrfuncs.h>
#ifdef ENABLE_NLS
#include <libintl.h>
#ifndef GETTEXT_PACKAGE
#error You must define GETTEXT_PACKAGE before including gi18n-lib.h.
#endif
#define _(String) dgettext (GETTEXT_PACKAGE, String)
#define Q_(String) g_strip_context ((String), dgettext (GETTEXT_PACKAGE, String))
#ifdef gettext_noop
#define N_(String) gettext_noop (String)
#else
#define N_(String) (String)
#endif
#else /* NLS is disabled */
#define _(String) (String)
#define Q_(String) (String)
#define N_(String) (String)
#define textdomain(String) (String)
#define gettext(String) (String)
#define dgettext(Domain,String) (String)
#define dcgettext(Domain,String,Type) (String)
#define bindtextdomain(Domain,Directory) (Domain)
#endif
#endif /* __G_I18N_LIB_H__ */

50
glib/gi18n.h Normal file
View File

@ -0,0 +1,50 @@
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997, 2002 Peter Mattis, Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifndef __G_I18N_H__
#define __G_I18N_H__
#include <glib/gstrfuncs.h>
#ifdef ENABLE_NLS
#include <libintl.h>
#define _(String) gettext (String)
#define Q_(String) g_strip_context ((String), gettext (String))
#ifdef gettext_noop
#define N_(String) gettext_noop (String)
#else
#define N_(String) (String)
#endif
#else /* NLS is disabled */
#define _(String) (String)
#define Q_(String) (String)
#define N_(String) (String)
#define textdomain(String) (String)
#define gettext(String) (String)
#define dgettext(Domain,String) (String)
#define dcgettext(Domain,String,Type) (String)
#define bindtextdomain(Domain,Directory) (Domain)
#endif
#endif /* __G_I18N_H__ */

View File

@ -2545,3 +2545,30 @@ g_str_has_prefix (const gchar *str,
return strncmp (str, prefix, prefix_len) == 0; return strncmp (str, prefix, prefix_len) == 0;
} }
/**
* g_strip_context:
* @msgid: a string
* @msgval: another string
*
* An auxiliary function for gettext() support (see Q_()).
*
* Return value: @msgval, unless @msgval is identical to @msgid and contains
* a '|' character, in which case a pointer to the substring of msgid after
* the first '|' character is returned.
*
* Since: 2.4
**/
G_CONST_RETURN gchar *
g_strip_context (const gchar *msgid,
const gchar *msgval)
{
if (msgval == msgid)
{
const char *c = strchr (msgid, '|');
if (c != NULL)
return c + 1;
}
return msgval;
}

View File

@ -231,6 +231,9 @@ gchar** g_strdupv (gchar **str_array);
gchar* g_stpcpy (gchar *dest, gchar* g_stpcpy (gchar *dest,
const char *src); const char *src);
G_CONST_RETURN gchar *g_strip_context (const gchar *msgid,
const gchar *msgval);
G_END_DECLS G_END_DECLS
#endif /* __G_STRFUNCS_H__ */ #endif /* __G_STRFUNCS_H__ */