Add im-extra support routines, port from gtk-im-extra project
authorAlsor Zhou <alsor.zhou@gmail.com>
Thu, 22 Oct 2009 09:04:27 +0000 (17:04 +0800)
committerAlsor Zhou <alsor.zhou@gmail.com>
Thu, 22 Oct 2009 09:04:27 +0000 (17:04 +0800)
src/ui/im-extra-intl.c [new file with mode: 0644]
src/ui/im-extra-intl.h [new file with mode: 0644]
src/ui/im-module-file.c [new file with mode: 0644]

diff --git a/src/ui/im-extra-intl.c b/src/ui/im-extra-intl.c
new file mode 100644 (file)
index 0000000..1541e63
--- /dev/null
@@ -0,0 +1,48 @@
+/* $Id: im-extra-intl.c,v 1.2 2003/04/23 19:48:44 nlevitt Exp $ */
+/*
+ * Copyright (c) 2003 Noah Levitt 
+ *
+ * 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.1 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
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef ENABLE_NLS
+
+#include <libintl.h>
+#include <gtk/gtk.h>
+
+gchar *
+im_extra_gettext (const gchar *str)
+{
+  static gboolean gucharmap_gettext_initialized = FALSE;
+
+  g_printerr ("im_extra_gettext\n");
+
+  if (!gucharmap_gettext_initialized)
+    {
+      bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+#ifdef HAVE_BIND_TEXTDOMAIN_CODESET
+      bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+#endif
+      gucharmap_gettext_initialized = TRUE;
+    }
+
+  return dgettext (GETTEXT_PACKAGE, str);
+}
+
+#endif /* #ifdef ENABLE_NLS */
diff --git a/src/ui/im-extra-intl.h b/src/ui/im-extra-intl.h
new file mode 100644 (file)
index 0000000..17ee2c3
--- /dev/null
@@ -0,0 +1,62 @@
+/* $Id: im-extra-intl.h,v 1.2 2003/04/23 19:48:44 nlevitt Exp $ */
+/*
+ * Copyright (c) 2003 Noah Levitt 
+ *
+ * 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.1 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 GUCHARMAP_INTL_H
+
+#if HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#undef _
+#undef N_
+
+#ifdef ENABLE_NLS
+
+gchar * im_extra_gettext (const gchar *str);
+
+# include <libintl.h>
+
+# define _(String) gucharmap_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 N_(String) (String)
+
+# undef textdomain
+# undef gettext
+# undef dgettext
+# undef dcgettext
+# undef bindtextdomain
+
+# 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 /* #ifndef GUCHARMAP_INTL_H */
diff --git a/src/ui/im-module-file.c b/src/ui/im-module-file.c
new file mode 100644 (file)
index 0000000..5c5452b
--- /dev/null
@@ -0,0 +1,8 @@
+#include <gtk/gtk.h>
+
+gint
+main (gint argc, gchar **argv)
+{
+  g_print ("%s\n", gtk_rc_get_im_module_file ());
+  return 0;
+}