provide gettext hooks to use the netsurf localisation system

This means the internal message system is used for gettext calls from
gtk libraries.
This commit is contained in:
Vincent Sanders 2013-04-14 11:26:05 +01:00
parent 38d0a299df
commit fc9097fb1f
3 changed files with 76 additions and 1 deletions

View File

@ -110,7 +110,7 @@ $(eval $(foreach V,$(filter GTK_IMAGE_%,$(.VARIABLES)),$(call convert_image,$($(
S_GTK := font_pango.c bitmap.c gui.c schedule.c thumbnail.c plotters.c \
treeview.c scaffolding.c gdk.c completion.c login.c throbber.c \
selection.c history.c window.c filetype.c download.c menu.c \
print.c search.c tabs.c theme.c toolbar.c \
print.c search.c tabs.c theme.c toolbar.c gettext.c \
compat.c cookies.c hotlist.c system_colour.c \
$(addprefix dialogs/,preferences.c about.c source.c)

43
gtk/gettext.c Normal file
View File

@ -0,0 +1,43 @@
/*
* Copyright 2013 Vincent Sanders <vince@kyllikki.org>
*
* This file is part of NetSurf, http://www.netsurf-browser.org/
*
* NetSurf 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; version 2 of the License.
*
* NetSurf 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 program. If not, see <http://www.gnu.org/licenses/>.
*/
/** \file
* Localised gettext message support (implementation).
*
* Wrappers for gettext to the internal native language message support.
*/
#include <stdlib.h>
#include "utils/messages.h"
#include "gtk/gettext.h"
char *gettext(const char *msgid)
{
return dcgettext(NULL, msgid, 0);
}
char *dgettext(const char *domainname, const char *msgid)
{
return dcgettext(domainname, msgid, 0);
}
char *dcgettext(const char *domainname, const char *msgid, int category)
{
return (void *)messages_get(msgid);
}

32
gtk/gettext.h Normal file
View File

@ -0,0 +1,32 @@
/*
* Copyright 2012 Vincent Sanders <vince@netsurf-browser.org>
*
* This file is part of NetSurf, http://www.netsurf-browser.org/
*
* NetSurf 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; version 2 of the License.
*
* NetSurf 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 program. If not, see <http://www.gnu.org/licenses/>.
*/
/** \file
* Localised message support (interface).
*
* Provide gettext interface to the utility localisation routines
*/
#ifndef _NETSURF_GTK_GETTEXT_MESSAGES_H_
#define _NETSURF_GTK_GETTEXT_MESSAGES_H_
char *gettext(const char *msgid);
char *dgettext(const char *domainname, const char *msgid);
char *dcgettext(const char *domainname, const char *msgid, int category);
#endif