summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2013-04-14 11:26:05 +0100
committerVincent Sanders <vince@netsurf-browser.org>2013-04-14 11:27:42 +0100
commitfc9097fb1f9d4a9705892be382cc18cee62ede93 (patch)
tree1eebe77393e97ce9f0ef1fffe4957f7461b6342a
parent38d0a299dfb823022be816e9bf65bc98661a84ce (diff)
downloadnetsurf-fc9097fb1f9d4a9705892be382cc18cee62ede93.tar.gz
netsurf-fc9097fb1f9d4a9705892be382cc18cee62ede93.tar.bz2
provide gettext hooks to use the netsurf localisation system
This means the internal message system is used for gettext calls from gtk libraries.
-rw-r--r--gtk/Makefile.target2
-rw-r--r--gtk/gettext.c43
-rw-r--r--gtk/gettext.h32
3 files changed, 76 insertions, 1 deletions
diff --git a/gtk/Makefile.target b/gtk/Makefile.target
index 88f8eccde..b84b13125 100644
--- a/gtk/Makefile.target
+++ b/gtk/Makefile.target
@@ -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)
diff --git a/gtk/gettext.c b/gtk/gettext.c
new file mode 100644
index 000000000..a9f6f48be
--- /dev/null
+++ b/gtk/gettext.c
@@ -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);
+}
diff --git a/gtk/gettext.h b/gtk/gettext.h
new file mode 100644
index 000000000..726ba356e
--- /dev/null
+++ b/gtk/gettext.h
@@ -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