summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2002-02-10 17:46:08 +0000
committerOwen Taylor <otaylor@src.gnome.org>2002-02-10 17:46:08 +0000
commit8846275862f6362bfd211c53cf21ebe826da01c3 (patch)
tree604e6f8d0625252603233d248808fb5cd5bf99ce
parent3619eade7cafa4be0c06cd30af082d6c2ec74b3f (diff)
downloadgtk+-8846275862f6362bfd211c53cf21ebe826da01c3.tar.gz
Add three Ethiopic input methods from Daniel Yacob.
Sun Feb 10 12:32:44 2002 Owen Taylor <otaylor@redhat.com> * modules/input/Makefile.am modules/input/{imam-et.c, imti-er.c, imti-et.c} po/POTFILES.in: Add three Ethiopic input methods from Daniel Yacob.
-rw-r--r--ChangeLog6
-rw-r--r--ChangeLog.pre-2-06
-rw-r--r--ChangeLog.pre-2-106
-rw-r--r--ChangeLog.pre-2-26
-rw-r--r--ChangeLog.pre-2-46
-rw-r--r--ChangeLog.pre-2-66
-rw-r--r--ChangeLog.pre-2-86
-rw-r--r--modules/input/Makefile.am25
-rw-r--r--modules/input/imam-et.c490
-rw-r--r--modules/input/imti-er.c489
-rw-r--r--modules/input/imti-et.c489
-rw-r--r--po/POTFILES.in3
12 files changed, 1536 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index bf10eb4e2e..3a03a86448 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sun Feb 10 12:32:44 2002 Owen Taylor <otaylor@redhat.com>
+
+ * modules/input/Makefile.am modules/input/{imam-et.c, imti-er.c,
+ imti-et.c} po/POTFILES.in: Add three Ethiopic input methods from
+ Daniel Yacob.
+
2002-02-10 Anders Carlsson <andersca@gnu.org>
* gtk/gtkcalendar.c (gtk_calendar_class_init): Set finalize handler;
diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0
index bf10eb4e2e..3a03a86448 100644
--- a/ChangeLog.pre-2-0
+++ b/ChangeLog.pre-2-0
@@ -1,3 +1,9 @@
+Sun Feb 10 12:32:44 2002 Owen Taylor <otaylor@redhat.com>
+
+ * modules/input/Makefile.am modules/input/{imam-et.c, imti-er.c,
+ imti-et.c} po/POTFILES.in: Add three Ethiopic input methods from
+ Daniel Yacob.
+
2002-02-10 Anders Carlsson <andersca@gnu.org>
* gtk/gtkcalendar.c (gtk_calendar_class_init): Set finalize handler;
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index bf10eb4e2e..3a03a86448 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,9 @@
+Sun Feb 10 12:32:44 2002 Owen Taylor <otaylor@redhat.com>
+
+ * modules/input/Makefile.am modules/input/{imam-et.c, imti-er.c,
+ imti-et.c} po/POTFILES.in: Add three Ethiopic input methods from
+ Daniel Yacob.
+
2002-02-10 Anders Carlsson <andersca@gnu.org>
* gtk/gtkcalendar.c (gtk_calendar_class_init): Set finalize handler;
diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2
index bf10eb4e2e..3a03a86448 100644
--- a/ChangeLog.pre-2-2
+++ b/ChangeLog.pre-2-2
@@ -1,3 +1,9 @@
+Sun Feb 10 12:32:44 2002 Owen Taylor <otaylor@redhat.com>
+
+ * modules/input/Makefile.am modules/input/{imam-et.c, imti-er.c,
+ imti-et.c} po/POTFILES.in: Add three Ethiopic input methods from
+ Daniel Yacob.
+
2002-02-10 Anders Carlsson <andersca@gnu.org>
* gtk/gtkcalendar.c (gtk_calendar_class_init): Set finalize handler;
diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4
index bf10eb4e2e..3a03a86448 100644
--- a/ChangeLog.pre-2-4
+++ b/ChangeLog.pre-2-4
@@ -1,3 +1,9 @@
+Sun Feb 10 12:32:44 2002 Owen Taylor <otaylor@redhat.com>
+
+ * modules/input/Makefile.am modules/input/{imam-et.c, imti-er.c,
+ imti-et.c} po/POTFILES.in: Add three Ethiopic input methods from
+ Daniel Yacob.
+
2002-02-10 Anders Carlsson <andersca@gnu.org>
* gtk/gtkcalendar.c (gtk_calendar_class_init): Set finalize handler;
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
index bf10eb4e2e..3a03a86448 100644
--- a/ChangeLog.pre-2-6
+++ b/ChangeLog.pre-2-6
@@ -1,3 +1,9 @@
+Sun Feb 10 12:32:44 2002 Owen Taylor <otaylor@redhat.com>
+
+ * modules/input/Makefile.am modules/input/{imam-et.c, imti-er.c,
+ imti-et.c} po/POTFILES.in: Add three Ethiopic input methods from
+ Daniel Yacob.
+
2002-02-10 Anders Carlsson <andersca@gnu.org>
* gtk/gtkcalendar.c (gtk_calendar_class_init): Set finalize handler;
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index bf10eb4e2e..3a03a86448 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,3 +1,9 @@
+Sun Feb 10 12:32:44 2002 Owen Taylor <otaylor@redhat.com>
+
+ * modules/input/Makefile.am modules/input/{imam-et.c, imti-er.c,
+ imti-et.c} po/POTFILES.in: Add three Ethiopic input methods from
+ Daniel Yacob.
+
2002-02-10 Anders Carlsson <andersca@gnu.org>
* gtk/gtkcalendar.c (gtk_calendar_class_init): Set finalize handler;
diff --git a/modules/input/Makefile.am b/modules/input/Makefile.am
index c0088c8d4c..6ea0affd64 100644
--- a/modules/input/Makefile.am
+++ b/modules/input/Makefile.am
@@ -41,10 +41,22 @@ if USE_X11
IM_XIM_MODULE=im-xim.la
endif
+im_am_et_la_LDFLAGS = -rpath $(moduledir) -avoid-version -module $(no_undefined)
+im_am_et_la_SOURCES = imam-et.c
+im_am_et_la_LIBADD = $(LDADDS)
+
im_cyrillic_translit_la_LDFLAGS = -rpath $(moduledir) -avoid-version -module $(no_undefined)
im_cyrillic_translit_la_SOURCES = imcyrillic-translit.c
im_cyrillic_translit_la_LIBADD = $(LDADDS)
+im_ti_er_la_LDFLAGS = -rpath $(moduledir) -avoid-version -module $(no_undefined)
+im_ti_er_la_SOURCES = imti-er.c
+im_ti_er_la_LIBADD = $(LDADDS)
+
+im_ti_et_la_LDFLAGS = -rpath $(moduledir) -avoid-version -module $(no_undefined)
+im_ti_et_la_SOURCES = imti-et.c
+im_ti_et_la_LIBADD = $(LDADDS)
+
im_thai_broken_la_LDFLAGS = -rpath $(moduledir) -avoid-version -module $(no_undefined)
im_thai_broken_la_SOURCES = imthai-broken.c
im_thai_broken_la_LIBADD = $(LDADDS)
@@ -73,8 +85,17 @@ install-data-local:
$(top_builddir)/gtk/gtk-query-immodules-2.0 > $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules ; \
fi
-module_LTLIBRARIES = im-cyrillic-translit.la $(IM_XIM_MODULE) im-viqr.la im-thai-broken.la \
- im-inuktitut.la im-ipa.la im-hangul.la
+module_LTLIBRARIES = \
+ $(IM_XIM_MODULE) \
+ im-am-et.la \
+ im-cyrillic-translit.la \
+ im-hangul.la \
+ im-inuktitut.la \
+ im-ipa.la \
+ im-thai-broken.la \
+ im-ti-er.la \
+ im-ti-et.la \
+ im-viqr.la
gtk.immodules: Makefile.am $(module_LTLIBRARIES)
$(top_builddir)/gtk/gtk-query-immodules-2.0 .libs/*.$(SOSUFFIX) > gtk.immodules
diff --git a/modules/input/imam-et.c b/modules/input/imam-et.c
new file mode 100644
index 0000000000..15c9280ff1
--- /dev/null
+++ b/modules/input/imam-et.c
@@ -0,0 +1,490 @@
+/* GTK - The GIMP Toolkit
+ * Copyright (C) 2000 Red Hat Software
+ * Copyright (C) 2000 SuSE Linux Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library 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.
+ *
+ * Original author: Owen Taylor <otaylor@redhat.com>
+ *
+ * Modified for Inuktitut - Robert Brady <robert@suse.co.uk>
+ *
+ * Modified for Amharic - Daniel Yacob <locales@geez.org>
+ *
+ */
+
+#include <string.h>
+
+#include <gdk/gdkkeysyms.h>
+
+#include "gtk/gtkintl.h"
+#include "gtk/gtkimcontextsimple.h"
+#include "gtk/gtkimmodule.h"
+
+#include<stdio.h>
+
+GType type_am_et_translit = 0;
+
+static void am_et_class_init (GtkIMContextSimpleClass *class);
+static void am_et_init (GtkIMContextSimple *im_context);
+
+static void
+am_et_register_type (GTypeModule *module)
+{
+ static const GTypeInfo object_info =
+ {
+ sizeof (GtkIMContextSimpleClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) am_et_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GtkIMContextSimple),
+ 0,
+ (GtkObjectInitFunc) am_et_init,
+ };
+
+ type_am_et_translit =
+ g_type_module_register_type (module,
+ GTK_TYPE_IM_CONTEXT_SIMPLE,
+ "GtkIMContextAmharicEthiopia",
+ &object_info, 0);
+}
+
+#define SYL(a,b) \
+ a, 0, 0, 0, 0, 0, b+5, \
+ a, 'A', 0, 0, 0, 0, b+3, \
+ a, 'E', 0, 0, 0, 0, b+4, \
+ a, 'I', 0, 0, 0, 0, b+2, \
+ a, 'O', 0, 0, 0, 0, b+6, \
+ a, 'U', 0, 0, 0, 0, b+1, \
+ a, 'a', 0, 0, 0, 0, b+3, \
+ a, 'e', 0, 0, 0, 0, b, \
+ a, 'e', 'e', 0, 0, 0, b+4, \
+ a, 'i', 0, 0, 0, 0, b+2, \
+ a, 'o', 0, 0, 0, 0, b+6, \
+ a, 'u', 0, 0, 0, 0, b+1,
+
+#define SYLW1(a,b) \
+ a, 0, 0, 0, 0, 0, b+5, \
+ a, 'A', 0, 0, 0, 0, b+3, \
+ a, 'E', 0, 0, 0, 0, b+4, \
+ a, 'I', 0, 0, 0, 0, b+2, \
+ a, 'O', 0, 0, 0, 0, b+6, \
+ a, 'U', 0, 0, 0, 0, b+1, \
+ a, 'W', 0, 0, 0, 0, b+7, \
+ a, 'W', 'A', 0, 0, 0, b+7, \
+ a, 'W', 'a', 0, 0, 0, b+7,
+#define SYLW2(a,b) \
+ a, 'a', 0, 0, 0, 0, b+3, \
+ a, 'e', 0, 0, 0, 0, b, \
+ a, 'e', 'e', 0, 0, 0, b+4, \
+ a, 'i', 0, 0, 0, 0, b+2, \
+ a, 'o', 0, 0, 0, 0, b+6, \
+ a, 'u', 0, 0, 0, 0, b+1, \
+ a, 'w', 'w', 0, 0, 0, b+7, \
+ a, 'w', 'w', 'a', 0, 0, b+7,
+
+#define SYLW(a,b) \
+ SYLW1(a,b)\
+ SYLW2(a,b)
+
+#define SYLWW(a,b) \
+ a, 0, 0, 0, 0, 0, b+5, \
+ a, 'A', 0, 0, 0, 0, b+3, \
+ a, 'E', 0, 0, 0, 0, b+4, \
+ a, 'I', 0, 0, 0, 0, b+2, \
+ a, 'O', 0, 0, 0, 0, b+6, \
+ a, 'O', 'O', 0, 0, 0, b+8, \
+ a, 'O', 'o', 0, 0, 0, b+8, \
+ a, 'U', 0, 0, 0, 0, b+1, \
+ a, 'W', 0, 0, 0, 0, b+11, \
+ a, 'W', '\'', 0, 0, 0, b+13, \
+ a, 'W', 'A', 0, 0, 0, b+11, \
+ a, 'W', 'E', 0, 0, 0, b+12, \
+ a, 'W', 'I', 0, 0, 0, b+10, \
+ a, 'W', 'U', 0, 0, 0, b+13, \
+ a, 'W', 'a', 0, 0, 0, b+11, \
+ a, 'W', 'e', 0, 0, 0, b+8, \
+ a, 'W', 'e', 'e', 0, 0, b+12, \
+ a, 'W', 'i', 0, 0, 0, b+10, \
+ a, 'W', 'u', 0, 0, 0, b+13, \
+ a, 'a', 0, 0, 0, 0, b+3, \
+ a, 'e', 0, 0, 0, 0, b, \
+ a, 'e', 'e', 0, 0, 0, b+4, \
+ a, 'i', 0, 0, 0, 0, b+2, \
+ a, 'o', 0, 0, 0, 0, b+6, \
+ a, 'o', 'o', 0, 0, 0, b+8, \
+ a, 'u', 0, 0, 0, 0, b+1, \
+ a, 'w', 'w', 0, 0, 0, b+11, \
+ a, 'w', 'w', '\'', 0, 0, b+13, \
+ a, 'w', 'w', 'E', 0, 0, b+12, \
+ a, 'w', 'w', 'a', 0, 0, b+11, \
+ a, 'w', 'w', 'e', 0, 0, b+8, \
+ a, 'w', 'w', 'e', 'e', 0, b+12, \
+ a, 'w', 'w', 'i', 0, 0, b+10, \
+ a, 'w', 'w', 'u', 0, 0, b+13,
+
+static guint16 am_et_compose_seqs[] = {
+ /* do punctuation and numerals here */
+
+ '\'', 0, 0, 0, 0, 0, GDK_dead_grave, /* hopefully this has no side effects */
+ '\'', '\'', 0, 0, 0, 0, GDK_apostrophe,
+ '\'', '1', 0, 0, 0, 0, 0x1369,
+ '\'', '1', '0', 0, 0, 0, 0x1372,
+ '\'', '1', '0', '0', 0, 0, 0x137b,
+ '\'', '1', '0', 'k', 0, 0, 0x137c,
+ /* '\'', '1', '0', '0', '0', 0, 0x137b,
+ '\'', '1', '0', '0', '0', '0', 0, 0x137c, */
+ '\'', '2', 0, 0, 0, 0, 0x136a,
+ '\'', '2', '0', 0, 0, 0, 0x1373,
+ '\'', '3', 0, 0, 0, 0, 0x136b,
+ '\'', '3', '0', 0, 0, 0, 0x1374,
+ '\'', '4', 0, 0, 0, 0, 0x136c,
+ '\'', '4', '0', 0, 0, 0, 0x1375,
+ '\'', '5', 0, 0, 0, 0, 0x136d,
+ '\'', '5', '0', 0, 0, 0, 0x1376,
+ '\'', '6', 0, 0, 0, 0, 0x136e,
+ '\'', '6', '0', 0, 0, 0, 0x1377,
+ '\'', '7', 0, 0, 0, 0, 0x136f,
+ '\'', '7', '0', 0, 0, 0, 0x1378,
+ '\'', '8', 0, 0, 0, 0, 0x1370,
+ '\'', '8', '0', 0, 0, 0, 0x1379,
+ '\'', '9', 0, 0, 0, 0, 0x1371,
+ '\'', '9', '0', 0, 0, 0, 0x137a,
+ ',', 0, 0, 0, 0, 0, 0x1363,
+ ',', ',', 0, 0, 0, 0, ',',
+ '-', 0, 0, 0, 0, 0, '-',
+ '-', ':', 0, 0, 0, 0, 0x1365,
+ ':', 0, 0, 0, 0, 0, 0x1361,
+ ':', '-', 0, 0, 0, 0, 0x1366,
+ ':', ':', 0, 0, 0, 0, 0x1362,
+ ':', ':', ':', 0, 0, 0, ':',
+ ':', '|', ':', 0, 0, 0, 0x1368,
+ ';', 0, 0, 0, 0, 0, 0x1364,
+ ';', ';', 0, 0, 0, 0, ';',
+ '<', 0, 0, 0, 0, 0, '<',
+ '<', '<', 0, 0, 0, 0, 0x00AB,
+ '>', 0, 0, 0, 0, 0, '>',
+ '>', '>', 0, 0, 0, 0, 0x00BB,
+ '?', 0, 0, 0, 0, 0, '?',
+ '?', '?', 0, 0, 0, 0, 0x1367,
+ 'A', 0, 0, 0, 0, 0, 0x12A3,
+ 'A','A', 0, 0, 0, 0, 0x12D3,
+ SYLW('B', 0x1260)
+ SYLW('C', 0x1328)
+ SYLW('D', 0x12f8)
+ 'E', 0, 0, 0, 0, 0, 0x12A4,
+ 'E','E', 0, 0, 0, 0, 0x12D4,
+ SYLW1('F', 0x1348)
+ 'F', 'Y', 0, 0, 0, 0, 0x135A,
+ 'F', 'Y', 'A', 0, 0, 0, 0x135A,
+ 'F', 'Y', 'a', 0, 0, 0, 0x135A,
+ SYLW2('F', 0x1348)
+ SYL('G', 0x1318)
+ SYLW('H', 0x1210)
+ 'I', 0, 0, 0, 0, 0, 0x12A5,
+ 'I','A', 0, 0, 0, 0, 0x12A3,
+ 'I','E', 0, 0, 0, 0, 0x12A4,
+ 'I','I', 0, 0, 0, 0, 0x12D5,
+ 'I','I','E', 0, 0, 0, 0x12D4,
+ 'I','I','a', 0, 0, 0, 0x12D3,
+ 'I','I','e', 0, 0, 0, 0x12D0,
+ 'I','I','i', 0, 0, 0, 0x12D2,
+ 'I','I','o', 0, 0, 0, 0x12D6,
+ 'I','I','u', 0, 0, 0, 0x12D1,
+ 'I','O', 0, 0, 0, 0, 0x12A6,
+ 'I','U', 0, 0, 0, 0, 0x12A1,
+ 'I','W', 0, 0, 0, 0, 0x12A7,
+ 'I','a', 0, 0, 0, 0, 0x12A3,
+ 'I','e', 0, 0, 0, 0, 0x12A0,
+ 'I','i', 0, 0, 0, 0, 0x12A2,
+ 'I','o', 0, 0, 0, 0, 0x12A6,
+ 'I','u', 0, 0, 0, 0, 0x12A1,
+ SYLWW('K', 0x12b8)
+ SYLW('L', 0x1208)
+ SYLW1('M', 0x1218)
+ 'M', 'Y', 0, 0, 0, 0, 0x1359,
+ 'M', 'Y', 'A', 0, 0, 0, 0x1359,
+ 'M', 'Y', 'a', 0, 0, 0, 0x1359,
+ SYLW2('M', 0x1218)
+ SYLW('N', 0x1298)
+ 'O', 0, 0, 0, 0, 0, 0x12A6,
+ 'O','O', 0, 0, 0, 0, 0x12D6,
+ SYLW('P', 0x1330)
+ SYLWW('Q', 0x1250)
+ SYLW1('R', 0x1228)
+ 'R', 'Y', 0, 0, 0, 0, 0x1358,
+ 'R', 'Y', 'A', 0, 0, 0, 0x1358,
+ 'R', 'Y', 'a', 0, 0, 0, 0x1358,
+ SYLW2('R', 0x1228)
+ 'S', 0, 0, 0, 0, 0, 0x1338+5,
+ 'S', 'A', 0, 0, 0, 0, 0x1338+3,
+ 'S', 'E', 0, 0, 0, 0, 0x1338+4,
+ 'S', 'I', 0, 0, 0, 0, 0x1338+2,
+ 'S', 'O', 0, 0, 0, 0, 0x1338+6,
+ 'S', 'S', 0, 0, 0, 0, 0x1340+5,
+ 'S', 'S', 'A', 0, 0, 0, 0x1340+3,
+ 'S', 'S', 'E', 0, 0, 0, 0x1340+4,
+ 'S', 'S', 'I', 0, 0, 0, 0x1340+2,
+ 'S', 'S', 'O', 0, 0, 0, 0x1340+6,
+ 'S', 'S', 'U', 0, 0, 0, 0x1340+1,
+ 'S', 'S', 'a', 0, 0, 0, 0x1340+3,
+ 'S', 'S', 'e', 0, 0, 0, 0x1340,
+ 'S', 'S', 'e', 'e', 0, 0, 0x1340+4,
+ 'S', 'S', 'i', 0, 0, 0, 0x1340+2,
+ 'S', 'S', 'o', 0, 0, 0, 0x1340+6,
+ 'S', 'S', 'u', 0, 0, 0, 0x1340+1,
+ 'S', 'U', 0, 0, 0, 0, 0x1338+1,
+ 'S', 'W', 0, 0, 0, 0, 0x1338+7,
+ 'S', 'W', 'A', 0, 0, 0, 0x1338+7,
+ 'S', 'W', 'a', 0, 0, 0, 0x1338+7,
+ 'S', 'a', 0, 0, 0, 0, 0x1338+3,
+ 'S', 'e', 0, 0, 0, 0, 0x1338,
+ 'S', 'e', 'e', 0, 0, 0, 0x1338+4,
+ 'S', 'i', 0, 0, 0, 0, 0x1338+2,
+ 'S', 'o', 0, 0, 0, 0, 0x1338+6,
+ 'S', 'u', 0, 0, 0, 0, 0x1338+1,
+ 'S', 'w', 'w', 0, 0, 0, 0x1338+7,
+ 'S', 'w', 'w', 'a', 0, 0, 0x1338+7,
+ SYLW('T', 0x1320)
+ 'U', 0, 0, 0, 0, 0, 0x12A1,
+ 'U','U', 0, 0, 0, 0, 0x12D1,
+ SYLW('V', 0x1268)
+ SYL('W', 0x12c8)
+ SYLW('X', 0x1238)
+ SYL('Y', 0x12e8)
+ SYLW('Z', 0x12e0)
+
+ /* much, much work to be done for lone vowels */
+ 'a', 0, 0, 0, 0, 0, 0x12A0,
+ 'a','a', 0, 0, 0, 0, 0x12D3,
+ 'a','a','a', 0, 0, 0, 0x12D0,
+ 'a','a','a','a', 0, 0, 0x12A3,
+ 'a','a','a','a','a', 0, 0x12A0,
+ SYLW('b', 0x1260)
+ SYLW('c', 0x1278)
+ SYLW('d', 0x12f0)
+ 'e', 0, 0, 0, 0, 0, 0x12A5,
+ 'e','A', 0, 0, 0, 0, 0x12A3,
+ 'e','E', 0, 0, 0, 0, 0x12A4,
+ 'e','I', 0, 0, 0, 0, 0x12A2,
+ 'e','O', 0, 0, 0, 0, 0x12A6,
+ 'e','U', 0, 0, 0, 0, 0x12A1,
+ 'e','W', 0, 0, 0, 0, 0x12A7,
+ 'e','a', 0, 0, 0, 0, 0x12D0,
+ 'e','e', 0, 0, 0, 0, 0x12D5,
+ 'e','e','E', 0, 0, 0, 0x12D4,
+ 'e','e','a', 0, 0, 0, 0x12D3,
+ 'e','e','e', 0, 0, 0, 0x12D0,
+ 'e','e','i', 0, 0, 0, 0x12D2,
+ 'e','e','o', 0, 0, 0, 0x12D6,
+ 'e','e','u', 0, 0, 0, 0x12D1,
+ 'e','i', 0, 0, 0, 0, 0x12A2,
+ 'e','o', 0, 0, 0, 0, 0x12A6,
+ 'e','u', 0, 0, 0, 0, 0x12A1,
+ SYLW1('f', 0x1348)
+ 'f', 'Y', 0, 0, 0, 0, 0x135A,
+ 'f', 'Y', 'A', 0, 0, 0, 0x135A,
+ 'f', 'Y', 'a', 0, 0, 0, 0x135A,
+ SYLW2('f', 0x1348)
+ SYLWW('g', 0x1308)
+ 'h', 0, 0, 0, 0, 0, 0x1200+5,
+ 'h', 'A', 0, 0, 0, 0, 0x1200+3,
+ 'h', 'E', 0, 0, 0, 0, 0x1200+4,
+ 'h', 'I', 0, 0, 0, 0, 0x1200+2,
+ 'h', 'O', 0, 0, 0, 0, 0x1200+6,
+ 'h', 'U', 0, 0, 0, 0, 0x1200+1,
+ 'h', 'W', 0, 0, 0, 0, 0x1280+11,
+ 'h', 'W', '\'', 0, 0, 0, 0x1280+13,
+ 'h', 'W', 'A', 0, 0, 0, 0x1280+11,
+ 'h', 'W', 'E', 0, 0, 0, 0x1280+12,
+ 'h', 'W', 'I', 0, 0, 0, 0x1280+10,
+ 'h', 'W', 'U', 0, 0, 0, 0x1280+13,
+ 'h', 'W', 'a', 0, 0, 0, 0x1280+11,
+ 'h', 'W', 'e', 0, 0, 0, 0x1280+8,
+ 'h', 'W', 'e', 'e', 0, 0, 0x1280+12,
+ 'h', 'W', 'i', 0, 0, 0, 0x1280+10,
+ 'h', 'W', 'u', 0, 0, 0, 0x1280+13,
+ 'h', 'a', 0, 0, 0, 0, 0x1200+3,
+ 'h', 'e', 0, 0, 0, 0, 0x1200,
+ 'h', 'e', 'e', 0, 0, 0, 0x1200+4,
+ 'h', 'h', 0, 0, 0, 0, 0x1280+5,
+ 'h', 'h', 'A', 0, 0, 0, 0x1280+3,
+ 'h', 'h', 'E', 0, 0, 0, 0x1280+4,
+ 'h', 'h', 'I', 0, 0, 0, 0x1280+2,
+ 'h', 'h', 'O', 0, 0, 0, 0x1280+6,
+ 'h', 'h', 'O', 'O', 0, 0, 0x1280+8,
+ 'h', 'h', 'U', 0, 0, 0, 0x1280+1,
+ 'h', 'h', 'W', 0, 0, 0, 0x1280+11,
+ 'h', 'h', 'W', '\'', 0, 0, 0x1280+13,
+ 'h', 'h', 'W', 'A', 0, 0, 0x1280+11,
+ 'h', 'h', 'W', 'E', 0, 0, 0x1280+12,
+ 'h', 'h', 'W', 'I', 0, 0, 0x1280+10,
+ 'h', 'h', 'W', 'U', 0, 0, 0x1280+13,
+ 'h', 'h', 'W', 'a', 0, 0, 0x1280+11,
+ 'h', 'h', 'W', 'e', 0, 0, 0x1280+8,
+ 'h', 'h', 'W', 'e', 'e', 0, 0x1280+12,
+ 'h', 'h', 'W', 'i', 0, 0, 0x1280+10,
+ 'h', 'h', 'W', 'u', 0, 0, 0x1280+13,
+ 'h', 'h', 'a', 0, 0, 0, 0x1280+3,
+ 'h', 'h', 'e', 0, 0, 0, 0x1280,
+ 'h', 'h', 'e', 'e', 0, 0, 0x1280+4,
+ 'h', 'h', 'i', 0, 0, 0, 0x1280+2,
+ 'h', 'h', 'o', 0, 0, 0, 0x1280+6,
+ 'h', 'h', 'o', 'o', 0, 0, 0x1280+8,
+ 'h', 'h', 'u', 0, 0, 0, 0x1280+1,
+ 'h', 'h', 'w', 'w', 0, 0, 0x1280+11,
+ 'h', 'h', 'w', 'w', 'a', 0, 0x1280+11,
+ 'h', 'h', 'w', 'w', 0, 0, 0x1280+11,
+ 'h', 'h', 'w', 'w', '\'', 0, 0x1280+13,
+ 'h', 'h', 'w', 'w', 'E', 0, 0x1280+12,
+ 'h', 'h', 'w', 'w', 'a', 0, 0x1280+11,
+ 'h', 'h', 'w', 'w', 'e', 0, 0x1280+8,
+ /* 'h', 'h', 'w', 'w', 'e', 'e', 0, 0x1280+12, too long for now */
+ 'h', 'h', 'w', 'w', 'i', 0, 0x1280+10,
+ 'h', 'h', 'w', 'w', 'u', 0, 0x1280+13,
+ 'h', 'i', 0, 0, 0, 0, 0x1200+2,
+ 'h', 'o', 0, 0, 0, 0, 0x1200+6,
+ 'h', 'u', 0, 0, 0, 0, 0x1200+1,
+ 'h', 'w', 'w', 0, 0, 0, 0x1280+11,
+ 'h', 'w', 'w', 'a', 0, 0, 0x1280+11,
+ 'h', 'w', 'w', 0, 0, 0, 0x1280+11,
+ 'h', 'w', 'w', '\'', 0, 0, 0x1280+13,
+ 'h', 'w', 'w', 'E', 0, 0, 0x1280+12,
+ 'h', 'w', 'w', 'a', 0, 0, 0x1280+11,
+ 'h', 'w', 'w', 'e', 0, 0, 0x1280+8,
+ 'h', 'w', 'w', 'e', 'e', 0, 0x1280+12,
+ 'h', 'w', 'w', 'i', 0, 0, 0x1280+10,
+ 'h', 'w', 'w', 'u', 0, 0, 0x1280+13,
+ 'i', 0, 0, 0, 0, 0, 0x12A2,
+ 'i', 'i', 0, 0, 0, 0, 0x12D2,
+ SYLW('j', 0x1300)
+ SYLWW('k', 0x12a8)
+ SYLW('l', 0x1208)
+ SYLW1('m', 0x1218)
+ 'm', 'Y', 0, 0, 0, 0, 0x1359,
+ 'm', 'Y', 'A', 0, 0, 0, 0x1359,
+ 'm', 'Y', 'a', 0, 0, 0, 0x1359,
+ SYLW2('m', 0x1218)
+ SYLW('n', 0x1290)
+ 'o', 0, 0, 0, 0, 0, 0x12A6,
+ 'o','o', 0, 0, 0, 0, 0x12D6,
+ SYLW('p', 0x1350)
+ SYLWW('q', 0x1240)
+ SYLW1('r', 0x1228)
+ 'r', 'Y', 0, 0, 0, 0, 0x1358,
+ 'r', 'Y', 'A', 0, 0, 0, 0x1358,
+ 'r', 'Y', 'a', 0, 0, 0, 0x1358,
+ SYLW2('r', 0x1228)
+ 's', 0, 0, 0, 0, 0, 0x1230+5,
+ 's', 'A', 0, 0, 0, 0, 0x1230+3,
+ 's', 'E', 0, 0, 0, 0, 0x1230+4,
+ 's', 'I', 0, 0, 0, 0, 0x1230+2,
+ 's', 'O', 0, 0, 0, 0, 0x1230+6,
+ 's', 'U', 0, 0, 0, 0, 0x1230+1,
+ 's', 'W', 0, 0, 0, 0, 0x1230+7,
+ 's', 'W', 'A', 0, 0, 0, 0x1230+7,
+ 's', 'W', 'a', 0, 0, 0, 0x1230+7,
+ 's', 'a', 0, 0, 0, 0, 0x1230+3,
+ 's', 'e', 0, 0, 0, 0, 0x1230,
+ 's', 'e', 'e', 0, 0, 0, 0x1230+4,
+ 's', 'i', 0, 0, 0, 0, 0x1230+2,
+ 's', 'o', 0, 0, 0, 0, 0x1230+6,
+ 's', 's', 0, 0, 0, 0, 0x1220+5,
+ 's', 's', 'A', 0, 0, 0, 0x1220+3,
+ 's', 's', 'E', 0, 0, 0, 0x1220+4,
+ 's', 's', 'I', 0, 0, 0, 0x1220+2,
+ 's', 's', 'O', 0, 0, 0, 0x1220+6,
+ 's', 's', 'U', 0, 0, 0, 0x1220+1,
+ 's', 's', 'W', 0, 0, 0, 0x1220+7,
+ 's', 's', 'W', 'A', 0, 0, 0x1220+7,
+ 's', 's', 'W', 'a', 0, 0, 0x1220+7,
+ 's', 's', 'a', 0, 0, 0, 0x1220+3,
+ 's', 's', 'e', 0, 0, 0, 0x1220,
+ 's', 's', 'e', 'e', 0, 0, 0x1220+4,
+ 's', 's', 'i', 0, 0, 0, 0x1220+2,
+ 's', 's', 'o', 0, 0, 0, 0x1220+6,
+ 's', 's', 'u', 0, 0, 0, 0x1220+1,
+ 's', 's', 'w', 'w', 0, 0, 0x1220+7,
+ 's', 's', 'w', 'w', 'a', 0, 0x1220+7,
+ 's', 'u', 0, 0, 0, 0, 0x1230+1,
+ 's', 'w', 'w', 0, 0, 0, 0x1230+7,
+ 's', 'w', 'w', 'a', 0, 0, 0x1230+7,
+ SYLW('t', 0x1270)
+ 'u', 0, 0, 0, 0, 0, 0x12A1,
+ 'u','u', 0, 0, 0, 0, 0x12D1,
+ SYLW('v', 0x1268)
+ SYL('w', 0x12c8)
+ SYLW('x', 0x1238)
+ SYL('y', 0x12e8)
+ SYLW('z', 0x12d8)
+ GDK_Shift_L, GDK_space, 0, 0, 0, 0, 0x1361,
+ GDK_Shift_R, GDK_space, 0, 0, 0, 0, 0x1361,
+};
+
+static void
+am_et_class_init (GtkIMContextSimpleClass *class)
+{
+}
+
+static void
+am_et_init (GtkIMContextSimple *im_context)
+{
+ gtk_im_context_simple_add_table (im_context,
+ am_et_compose_seqs,
+ 5,
+ G_N_ELEMENTS (am_et_compose_seqs) / (5 + 2));
+}
+
+static const GtkIMContextInfo am_et_info = {
+ "am_et", /* ID */
+ N_("Amharic (EZ+)"), /* Human readable name */
+ "gtk+", /* Translation domain */
+ GTK_LOCALEDIR, /* Dir for bindtextdomain (not strictly needed for "gtk+") */
+ "am" /* Languages for which this module is the default */
+};
+
+static const GtkIMContextInfo *info_list[] = {
+ &am_et_info
+};
+
+void
+im_module_init (GTypeModule *module)
+{
+ am_et_register_type (module);
+}
+
+void
+im_module_exit (void)
+{
+}
+
+void
+im_module_list (const GtkIMContextInfo ***contexts,
+ int *n_contexts)
+{
+ *contexts = info_list;
+ *n_contexts = G_N_ELEMENTS (info_list);
+}
+
+GtkIMContext *
+im_module_create (const gchar *context_id)
+{
+ if (strcmp (context_id, "am_et") == 0)
+ return GTK_IM_CONTEXT (g_object_new (type_am_et_translit,NULL));
+ else
+ return NULL;
+}
diff --git a/modules/input/imti-er.c b/modules/input/imti-er.c
new file mode 100644
index 0000000000..c8220a682f
--- /dev/null
+++ b/modules/input/imti-er.c
@@ -0,0 +1,489 @@
+/* GTK - The GIMP Toolkit
+ * Copyright (C) 2000 Red Hat Software
+ * Copyright (C) 2000 SuSE Linux Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library 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.
+ *
+ * Original author: Owen Taylor <otaylor@redhat.com>
+ *
+ * Modified for Inuktitut - Robert Brady <robert@suse.co.uk>
+ *
+ * Modified for Tigrigna - Daniel Yacob <locales@geez.org>
+ *
+ */
+
+#include <string.h>
+
+#include <gdk/gdkkeysyms.h>
+
+#include "gtk/gtkintl.h"
+#include "gtk/gtkimcontextsimple.h"
+#include "gtk/gtkimmodule.h"
+
+#include<stdio.h>
+
+GType type_ti_er_translit = 0;
+
+static void ti_er_class_init (GtkIMContextSimpleClass *class);
+static void ti_er_init (GtkIMContextSimple *im_context);
+
+static void
+ti_er_register_type (GTypeModule *module)
+{
+ static const GTypeInfo object_info =
+ {
+ sizeof (GtkIMContextSimpleClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) ti_er_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GtkIMContextSimple),
+ 0,
+ (GtkObjectInitFunc) ti_er_init,
+ };
+
+ type_ti_er_translit =
+ g_type_module_register_type (module,
+ GTK_TYPE_IM_CONTEXT_SIMPLE,
+ "GtkIMContextTigrignaEritrea",
+ &object_info, 0);
+}
+
+#define SYL(a,b) \
+ a, 0, 0, 0, 0, 0, b+5, \
+ a, 'A', 0, 0, 0, 0, b+3, \
+ a, 'E', 0, 0, 0, 0, b+4, \
+ a, 'I', 0, 0, 0, 0, b+2, \
+ a, 'O', 0, 0, 0, 0, b+6, \
+ a, 'U', 0, 0, 0, 0, b+1, \
+ a, 'a', 0, 0, 0, 0, b+3, \
+ a, 'e', 0, 0, 0, 0, b, \
+ a, 'e', 'e', 0, 0, 0, b+4, \
+ a, 'i', 0, 0, 0, 0, b+2, \
+ a, 'o', 0, 0, 0, 0, b+6, \
+ a, 'u', 0, 0, 0, 0, b+1,
+
+#define SYLW1(a,b) \
+ a, 0, 0, 0, 0, 0, b+5, \
+ a, 'A', 0, 0, 0, 0, b+3, \
+ a, 'E', 0, 0, 0, 0, b+4, \
+ a, 'I', 0, 0, 0, 0, b+2, \
+ a, 'O', 0, 0, 0, 0, b+6, \
+ a, 'U', 0, 0, 0, 0, b+1, \
+ a, 'W', 0, 0, 0, 0, b+7, \
+ a, 'W', 'A', 0, 0, 0, b+7, \
+ a, 'W', 'a', 0, 0, 0, b+7,
+#define SYLW2(a,b) \
+ a, 'a', 0, 0, 0, 0, b+3, \
+ a, 'e', 0, 0, 0, 0, b, \
+ a, 'e', 'e', 0, 0, 0, b+4, \
+ a, 'i', 0, 0, 0, 0, b+2, \
+ a, 'o', 0, 0, 0, 0, b+6, \
+ a, 'u', 0, 0, 0, 0, b+1, \
+ a, 'w', 'w', 0, 0, 0, b+7, \
+ a, 'w', 'w', 'a', 0, 0, b+7,
+
+#define SYLW(a,b) \
+ SYLW1(a,b)\
+ SYLW2(a,b)
+
+#define SYLWW(a,b) \
+ a, 0, 0, 0, 0, 0, b+5, \
+ a, 'A', 0, 0, 0, 0, b+3, \
+ a, 'E', 0, 0, 0, 0, b+4, \
+ a, 'I', 0, 0, 0, 0, b+2, \
+ a, 'O', 0, 0, 0, 0, b+6, \
+ a, 'O', 'O', 0, 0, 0, b+8, \
+ a, 'O', 'o', 0, 0, 0, b+8, \
+ a, 'U', 0, 0, 0, 0, b+1, \
+ a, 'W', 0, 0, 0, 0, b+11, \
+ a, 'W', '\'', 0, 0, 0, b+13, \
+ a, 'W', 'A', 0, 0, 0, b+11, \
+ a, 'W', 'E', 0, 0, 0, b+12, \
+ a, 'W', 'I', 0, 0, 0, b+10, \
+ a, 'W', 'U', 0, 0, 0, b+13, \
+ a, 'W', 'a', 0, 0, 0, b+11, \
+ a, 'W', 'e', 0, 0, 0, b+8, \
+ a, 'W', 'e', 'e', 0, 0, b+12, \
+ a, 'W', 'i', 0, 0, 0, b+10, \
+ a, 'W', 'u', 0, 0, 0, b+13, \
+ a, 'a', 0, 0, 0, 0, b+3, \
+ a, 'e', 0, 0, 0, 0, b, \
+ a, 'e', 'e', 0, 0, 0, b+4, \
+ a, 'i', 0, 0, 0, 0, b+2, \
+ a, 'o', 0, 0, 0, 0, b+6, \
+ a, 'o', 'o', 0, 0, 0, b+8, \
+ a, 'u', 0, 0, 0, 0, b+1, \
+ a, 'w', 'w', 0, 0, 0, b+11, \
+ a, 'w', 'w', '\'', 0, 0, b+13, \
+ a, 'w', 'w', 'E', 0, 0, b+12, \
+ a, 'w', 'w', 'a', 0, 0, b+11, \
+ a, 'w', 'w', 'e', 0, 0, b+8, \
+ a, 'w', 'w', 'e', 'e', 0, b+12, \
+ a, 'w', 'w', 'i', 0, 0, b+10, \
+ a, 'w', 'w', 'u', 0, 0, b+13,
+
+static guint16 ti_er_compose_seqs[] = {
+ /* do punctuation and numerals here */
+
+ '\'', 0, 0, 0, 0, 0, GDK_dead_grave, /* hopefully this has no side effects */
+ '\'', '\'', 0, 0, 0, 0, GDK_apostrophe,
+ '\'', '1', 0, 0, 0, 0, 0x1369,
+ '\'', '1', '0', 0, 0, 0, 0x1372,
+ '\'', '1', '0', '0', 0, 0, 0x137b,
+ '\'', '1', '0', 'k', 0, 0, 0x137c,
+ /* '\'', '1', '0', '0', '0', 0, 0x137b,
+ '\'', '1', '0', '0', '0', '0', 0, 0x137c, */
+ '\'', '2', 0, 0, 0, 0, 0x136a,
+ '\'', '2', '0', 0, 0, 0, 0x1373,
+ '\'', '3', 0, 0, 0, 0, 0x136b,
+ '\'', '3', '0', 0, 0, 0, 0x1374,
+ '\'', '4', 0, 0, 0, 0, 0x136c,
+ '\'', '4', '0', 0, 0, 0, 0x1375,
+ '\'', '5', 0, 0, 0, 0, 0x136d,
+ '\'', '5', '0', 0, 0, 0, 0x1376,
+ '\'', '6', 0, 0, 0, 0, 0x136e,
+ '\'', '6', '0', 0, 0, 0, 0x1377,
+ '\'', '7', 0, 0, 0, 0, 0x136f,
+ '\'', '7', '0', 0, 0, 0, 0x1378,
+ '\'', '8', 0, 0, 0, 0, 0x1370,
+ '\'', '8', '0', 0, 0, 0, 0x1379,
+ '\'', '9', 0, 0, 0, 0, 0x1371,
+ '\'', '9', '0', 0, 0, 0, 0x137a,
+ ',', 0, 0, 0, 0, 0, 0x1363,
+ ',', ',', 0, 0, 0, 0, ',',
+ '-', 0, 0, 0, 0, 0, '-',
+ '-', ':', 0, 0, 0, 0, 0x1365,
+ ':', 0, 0, 0, 0, 0, 0x1361,
+ ':', '-', 0, 0, 0, 0, 0x1366,
+ ':', ':', 0, 0, 0, 0, 0x1362,
+ ':', ':', ':', 0, 0, 0, ':',
+ ':', '|', ':', 0, 0, 0, 0x1368,
+ ';', 0, 0, 0, 0, 0, 0x1364,
+ ';', ';', 0, 0, 0, 0, ';',
+ '<', 0, 0, 0, 0, 0, '<',
+ '<', '<', 0, 0, 0, 0, 0x00AB,
+ '>', 0, 0, 0, 0, 0, '>',
+ '>', '>', 0, 0, 0, 0, 0x00BB,
+ '?', 0, 0, 0, 0, 0, 0x1367,
+ '?', '?', 0, 0, 0, 0, '?',
+ 'A', 0, 0, 0, 0, 0, 0x12A0,
+ 'A','A', 0, 0, 0, 0, 0x12D0,
+ SYLW('B', 0x1260)
+ SYLW('C', 0x1328)
+ SYLW('D', 0x12f8)
+ 'E', 0, 0, 0, 0, 0, 0x12A4,
+ 'E','E', 0, 0, 0, 0, 0x12D4,
+ SYLW1('F', 0x1348)
+ 'F', 'Y', 0, 0, 0, 0, 0x135A,
+ 'F', 'Y', 'A', 0, 0, 0, 0x135A,
+ 'F', 'Y', 'a', 0, 0, 0, 0x135A,
+ SYLW2('F', 0x1348)
+ SYL('G', 0x1318)
+ SYLW('H', 0x1210)
+ 'I', 0, 0, 0, 0, 0, 0x12A5,
+ 'I','A', 0, 0, 0, 0, 0x12A3,
+ 'I','E', 0, 0, 0, 0, 0x12A4,
+ 'I','I', 0, 0, 0, 0, 0x12D5,
+ 'I','I','E', 0, 0, 0, 0x12D4,
+ 'I','I','a', 0, 0, 0, 0x12D3,
+ 'I','I','e', 0, 0, 0, 0x12D0,
+ 'I','I','i', 0, 0, 0, 0x12D2,
+ 'I','I','o', 0, 0, 0, 0x12D6,
+ 'I','I','u', 0, 0, 0, 0x12D1,
+ 'I','O', 0, 0, 0, 0, 0x12A6,
+ 'I','U', 0, 0, 0, 0, 0x12A1,
+ 'I','W', 0, 0, 0, 0, 0x12A7,
+ 'I','a', 0, 0, 0, 0, 0x12A3,
+ 'I','e', 0, 0, 0, 0, 0x12A0,
+ 'I','i', 0, 0, 0, 0, 0x12A2,
+ 'I','o', 0, 0, 0, 0, 0x12A6,
+ 'I','u', 0, 0, 0, 0, 0x12A1,
+ SYLWW('K', 0x12b8)
+ SYLW('L', 0x1208)
+ SYLW1('M', 0x1218)
+ 'M', 'Y', 0, 0, 0, 0, 0x1359,
+ 'M', 'Y', 'A', 0, 0, 0, 0x1359,
+ 'M', 'Y', 'a', 0, 0, 0, 0x1359,
+ SYLW2('M', 0x1218)
+ SYLW('N', 0x1298)
+ 'O', 0, 0, 0, 0, 0, 0x12A6,
+ 'O','O', 0, 0, 0, 0, 0x12D6,
+ SYLW('P', 0x1330)
+ SYLWW('Q', 0x1250)
+ SYLW1('R', 0x1228)
+ 'R', 'Y', 0, 0, 0, 0, 0x1358,
+ 'R', 'Y', 'A', 0, 0, 0, 0x1358,
+ 'R', 'Y', 'a', 0, 0, 0, 0x1358,
+ SYLW2('R', 0x1228)
+ 'S', 0, 0, 0, 0, 0, 0x1338+5,
+ 'S', 'A', 0, 0, 0, 0, 0x1338+3,
+ 'S', 'E', 0, 0, 0, 0, 0x1338+4,
+ 'S', 'I', 0, 0, 0, 0, 0x1338+2,
+ 'S', 'O', 0, 0, 0, 0, 0x1338+6,
+ 'S', 'S', 0, 0, 0, 0, 0x1340+5,
+ 'S', 'S', 'A', 0, 0, 0, 0x1340+3,
+ 'S', 'S', 'E', 0, 0, 0, 0x1340+4,
+ 'S', 'S', 'I', 0, 0, 0, 0x1340+2,
+ 'S', 'S', 'O', 0, 0, 0, 0x1340+6,
+ 'S', 'S', 'U', 0, 0, 0, 0x1340+1,
+ 'S', 'S', 'a', 0, 0, 0, 0x1340+3,
+ 'S', 'S', 'e', 0, 0, 0, 0x1340,
+ 'S', 'S', 'e', 'e', 0, 0, 0x1340+4,
+ 'S', 'S', 'i', 0, 0, 0, 0x1340+2,
+ 'S', 'S', 'o', 0, 0, 0, 0x1340+6,
+ 'S', 'S', 'u', 0, 0, 0, 0x1340+1,
+ 'S', 'U', 0, 0, 0, 0, 0x1338+1,
+ 'S', 'W', 0, 0, 0, 0, 0x1338+7,
+ 'S', 'W', 'A', 0, 0, 0, 0x1338+7,
+ 'S', 'W', 'a', 0, 0, 0, 0x1338+7,
+ 'S', 'a', 0, 0, 0, 0, 0x1338+3,
+ 'S', 'e', 0, 0, 0, 0, 0x1338,
+ 'S', 'e', 'e', 0, 0, 0, 0x1338+4,
+ 'S', 'i', 0, 0, 0, 0, 0x1338+2,
+ 'S', 'o', 0, 0, 0, 0, 0x1338+6,
+ 'S', 'u', 0, 0, 0, 0, 0x1338+1,
+ 'S', 'w', 'w', 0, 0, 0, 0x1338+7,
+ 'S', 'w', 'w', 'a', 0, 0, 0x1338+7,
+ SYLW('T', 0x1320)
+ 'U', 0, 0, 0, 0, 0, 0x12A1,
+ 'U','U', 0, 0, 0, 0, 0x12D1,
+ SYLW('V', 0x1268)
+ SYL('W', 0x12c8)
+ SYLW('X', 0x1238)
+ SYL('Y', 0x12e8)
+ SYLW('Z', 0x12e0)
+
+ /* much, much work to be done for lone vowels */
+ 'a', 0, 0, 0, 0, 0, 0x12A3,
+ 'a','a', 0, 0, 0, 0, 0x12D3,
+ 'a','a','a', 0, 0, 0, 0x12D0,
+ 'a','a','a','a', 0, 0, 0x12A0,
+ SYLW('b', 0x1260)
+ SYLW('c', 0x1278)
+ SYLW('d', 0x12f0)
+ 'e', 0, 0, 0, 0, 0, 0x12A5,
+ 'e','A', 0, 0, 0, 0, 0x12A3,
+ 'e','E', 0, 0, 0, 0, 0x12A4,
+ 'e','I', 0, 0, 0, 0, 0x12A2,
+ 'e','O', 0, 0, 0, 0, 0x12A6,
+ 'e','U', 0, 0, 0, 0, 0x12A1,
+ 'e','W', 0, 0, 0, 0, 0x12A7,
+ 'e','a', 0, 0, 0, 0, 0x12D0,
+ 'e','e', 0, 0, 0, 0, 0x12D5,
+ 'e','e','E', 0, 0, 0, 0x12D4,
+ 'e','e','a', 0, 0, 0, 0x12D3,
+ 'e','e','e', 0, 0, 0, 0x12D0,
+ 'e','e','i', 0, 0, 0, 0x12D2,
+ 'e','e','o', 0, 0, 0, 0x12D6,
+ 'e','e','u', 0, 0, 0, 0x12D1,
+ 'e','i', 0, 0, 0, 0, 0x12A2,
+ 'e','o', 0, 0, 0, 0, 0x12A6,
+ 'e','u', 0, 0, 0, 0, 0x12A1,
+ SYLW1('f', 0x1348)
+ 'f', 'Y', 0, 0, 0, 0, 0x135A,
+ 'f', 'Y', 'A', 0, 0, 0, 0x135A,
+ 'f', 'Y', 'a', 0, 0, 0, 0x135A,
+ SYLW2('f', 0x1348)
+ SYLWW('g', 0x1308)
+ 'h', 0, 0, 0, 0, 0, 0x1200+5,
+ 'h', 'A', 0, 0, 0, 0, 0x1200+3,
+ 'h', 'E', 0, 0, 0, 0, 0x1200+4,
+ 'h', 'I', 0, 0, 0, 0, 0x1200+2,
+ 'h', 'O', 0, 0, 0, 0, 0x1200+6,
+ 'h', 'U', 0, 0, 0, 0, 0x1200+1,
+ 'h', 'W', 0, 0, 0, 0, 0x1280+11,
+ 'h', 'W', '\'', 0, 0, 0, 0x1280+13,
+ 'h', 'W', 'A', 0, 0, 0, 0x1280+11,
+ 'h', 'W', 'E', 0, 0, 0, 0x1280+12,
+ 'h', 'W', 'I', 0, 0, 0, 0x1280+10,
+ 'h', 'W', 'U', 0, 0, 0, 0x1280+13,
+ 'h', 'W', 'a', 0, 0, 0, 0x1280+11,
+ 'h', 'W', 'e', 0, 0, 0, 0x1280+8,
+ 'h', 'W', 'e', 'e', 0, 0, 0x1280+12,
+ 'h', 'W', 'i', 0, 0, 0, 0x1280+10,
+ 'h', 'W', 'u', 0, 0, 0, 0x1280+13,
+ 'h', 'a', 0, 0, 0, 0, 0x1200+3,
+ 'h', 'e', 0, 0, 0, 0, 0x1200,
+ 'h', 'e', 'e', 0, 0, 0, 0x1200+4,
+ 'h', 'h', 0, 0, 0, 0, 0x1280+5,
+ 'h', 'h', 'A', 0, 0, 0, 0x1280+3,
+ 'h', 'h', 'E', 0, 0, 0, 0x1280+4,
+ 'h', 'h', 'I', 0, 0, 0, 0x1280+2,
+ 'h', 'h', 'O', 0, 0, 0, 0x1280+6,
+ 'h', 'h', 'O', 'O', 0, 0, 0x1280+8,
+ 'h', 'h', 'U', 0, 0, 0, 0x1280+1,
+ 'h', 'h', 'W', 0, 0, 0, 0x1280+11,
+ 'h', 'h', 'W', '\'', 0, 0, 0x1280+13,
+ 'h', 'h', 'W', 'A', 0, 0, 0x1280+11,
+ 'h', 'h', 'W', 'E', 0, 0, 0x1280+12,
+ 'h', 'h', 'W', 'I', 0, 0, 0x1280+10,
+ 'h', 'h', 'W', 'U', 0, 0, 0x1280+13,
+ 'h', 'h', 'W', 'a', 0, 0, 0x1280+11,
+ 'h', 'h', 'W', 'e', 0, 0, 0x1280+8,
+ 'h', 'h', 'W', 'e', 'e', 0, 0x1280+12,
+ 'h', 'h', 'W', 'i', 0, 0, 0x1280+10,
+ 'h', 'h', 'W', 'u', 0, 0, 0x1280+13,
+ 'h', 'h', 'a', 0, 0, 0, 0x1280+3,
+ 'h', 'h', 'e', 0, 0, 0, 0x1280,
+ 'h', 'h', 'e', 'e', 0, 0, 0x1280+4,
+ 'h', 'h', 'i', 0, 0, 0, 0x1280+2,
+ 'h', 'h', 'o', 0, 0, 0, 0x1280+6,
+ 'h', 'h', 'o', 'o', 0, 0, 0x1280+8,
+ 'h', 'h', 'u', 0, 0, 0, 0x1280+1,
+ 'h', 'h', 'w', 'w', 0, 0, 0x1280+11,
+ 'h', 'h', 'w', 'w', 'a', 0, 0x1280+11,
+ 'h', 'h', 'w', 'w', 0, 0, 0x1280+11,
+ 'h', 'h', 'w', 'w', '\'', 0, 0x1280+13,
+ 'h', 'h', 'w', 'w', 'E', 0, 0x1280+12,
+ 'h', 'h', 'w', 'w', 'a', 0, 0x1280+11,
+ 'h', 'h', 'w', 'w', 'e', 0, 0x1280+8,
+ /* 'h', 'h', 'w', 'w', 'e', 'e', 0, 0x1280+12, too long for now */
+ 'h', 'h', 'w', 'w', 'i', 0, 0x1280+10,
+ 'h', 'h', 'w', 'w', 'u', 0, 0x1280+13,
+ 'h', 'i', 0, 0, 0, 0, 0x1200+2,
+ 'h', 'o', 0, 0, 0, 0, 0x1200+6,
+ 'h', 'u', 0, 0, 0, 0, 0x1200+1,
+ 'h', 'w', 'w', 0, 0, 0, 0x1280+11,
+ 'h', 'w', 'w', 'a', 0, 0, 0x1280+11,
+ 'h', 'w', 'w', 0, 0, 0, 0x1280+11,
+ 'h', 'w', 'w', '\'', 0, 0, 0x1280+13,
+ 'h', 'w', 'w', 'E', 0, 0, 0x1280+12,
+ 'h', 'w', 'w', 'a', 0, 0, 0x1280+11,
+ 'h', 'w', 'w', 'e', 0, 0, 0x1280+8,
+ 'h', 'w', 'w', 'e', 'e', 0, 0x1280+12,
+ 'h', 'w', 'w', 'i', 0, 0, 0x1280+10,
+ 'h', 'w', 'w', 'u', 0, 0, 0x1280+13,
+ 'i', 0, 0, 0, 0, 0, 0x12A2,
+ 'i', 'i', 0, 0, 0, 0, 0x12D2,
+ SYLW('j', 0x1300)
+ SYLWW('k', 0x12a8)
+ SYLW('l', 0x1208)
+ SYLW1('m', 0x1218)
+ 'm', 'Y', 0, 0, 0, 0, 0x1359,
+ 'm', 'Y', 'A', 0, 0, 0, 0x1359,
+ 'm', 'Y', 'a', 0, 0, 0, 0x1359,
+ SYLW2('m', 0x1218)
+ SYLW('n', 0x1290)
+ 'o', 0, 0, 0, 0, 0, 0x12A6,
+ 'o','o', 0, 0, 0, 0, 0x12D6,
+ SYLW('p', 0x1350)
+ SYLWW('q', 0x1240)
+ SYLW1('r', 0x1228)
+ 'r', 'Y', 0, 0, 0, 0, 0x1358,
+ 'r', 'Y', 'A', 0, 0, 0, 0x1358,
+ 'r', 'Y', 'a', 0, 0, 0, 0x1358,
+ SYLW2('r', 0x1228)
+ 's', 0, 0, 0, 0, 0, 0x1230+5,
+ 's', 'A', 0, 0, 0, 0, 0x1230+3,
+ 's', 'E', 0, 0, 0, 0, 0x1230+4,
+ 's', 'I', 0, 0, 0, 0, 0x1230+2,
+ 's', 'O', 0, 0, 0, 0, 0x1230+6,
+ 's', 'U', 0, 0, 0, 0, 0x1230+1,
+ 's', 'W', 0, 0, 0, 0, 0x1230+7,
+ 's', 'W', 'A', 0, 0, 0, 0x1230+7,
+ 's', 'W', 'a', 0, 0, 0, 0x1230+7,
+ 's', 'a', 0, 0, 0, 0, 0x1230+3,
+ 's', 'e', 0, 0, 0, 0, 0x1230,
+ 's', 'e', 'e', 0, 0, 0, 0x1230+4,
+ 's', 'i', 0, 0, 0, 0, 0x1230+2,
+ 's', 'o', 0, 0, 0, 0, 0x1230+6,
+ 's', 's', 0, 0, 0, 0, 0x1220+5,
+ 's', 's', 'A', 0, 0, 0, 0x1220+3,
+ 's', 's', 'E', 0, 0, 0, 0x1220+4,
+ 's', 's', 'I', 0, 0, 0, 0x1220+2,
+ 's', 's', 'O', 0, 0, 0, 0x1220+6,
+ 's', 's', 'U', 0, 0, 0, 0x1220+1,
+ 's', 's', 'W', 0, 0, 0, 0x1220+7,
+ 's', 's', 'W', 'A', 0, 0, 0x1220+7,
+ 's', 's', 'W', 'a', 0, 0, 0x1220+7,
+ 's', 's', 'a', 0, 0, 0, 0x1220+3,
+ 's', 's', 'e', 0, 0, 0, 0x1220,
+ 's', 's', 'e', 'e', 0, 0, 0x1220+4,
+ 's', 's', 'i', 0, 0, 0, 0x1220+2,
+ 's', 's', 'o', 0, 0, 0, 0x1220+6,
+ 's', 's', 'u', 0, 0, 0, 0x1220+1,
+ 's', 's', 'w', 'w', 0, 0, 0x1220+7,
+ 's', 's', 'w', 'w', 'a', 0, 0x1220+7,
+ 's', 'u', 0, 0, 0, 0, 0x1230+1,
+ 's', 'w', 'w', 0, 0, 0, 0x1230+7,
+ 's', 'w', 'w', 'a', 0, 0, 0x1230+7,
+ SYLW('t', 0x1270)
+ 'u', 0, 0, 0, 0, 0, 0x12A1,
+ 'u','u', 0, 0, 0, 0, 0x12D1,
+ SYLW('v', 0x1268)
+ SYL('w', 0x12c8)
+ SYLW('x', 0x1238)
+ SYL('y', 0x12e8)
+ SYLW('z', 0x12d8)
+ GDK_Shift_L, GDK_space, 0, 0, 0, 0, 0x1361,
+ GDK_Shift_R, GDK_space, 0, 0, 0, 0, 0x1361,
+};
+
+static void
+ti_er_class_init (GtkIMContextSimpleClass *class)
+{
+}
+
+static void
+ti_er_init (GtkIMContextSimple *im_context)
+{
+ gtk_im_context_simple_add_table (im_context,
+ ti_er_compose_seqs,
+ 5,
+ G_N_ELEMENTS (ti_er_compose_seqs) / (5 + 2));
+}
+
+static const GtkIMContextInfo ti_er_info = {
+ "ti_er", /* ID */
+ N_("Tigrigna-Eritrean (EZ+)"), /* Human readable name */
+ "gtk+", /* Translation domain */
+ GTK_LOCALEDIR, /* Dir for bindtextdomain (not strictly needed for "gtk+") */
+ "ti" /* Languages for which this module is the default */
+};
+
+static const GtkIMContextInfo *info_list[] = {
+ &ti_er_info
+};
+
+void
+im_module_init (GTypeModule *module)
+{
+ ti_er_register_type (module);
+}
+
+void
+im_module_exit (void)
+{
+}
+
+void
+im_module_list (const GtkIMContextInfo ***contexts,
+ int *n_contexts)
+{
+ *contexts = info_list;
+ *n_contexts = G_N_ELEMENTS (info_list);
+}
+
+GtkIMContext *
+im_module_create (const gchar *context_id)
+{
+ if (strcmp (context_id, "ti_er") == 0)
+ return GTK_IM_CONTEXT (g_object_new (type_ti_er_translit, NULL));
+ else
+ return NULL;
+}
diff --git a/modules/input/imti-et.c b/modules/input/imti-et.c
new file mode 100644
index 0000000000..6d8acb4b8c
--- /dev/null
+++ b/modules/input/imti-et.c
@@ -0,0 +1,489 @@
+/* GTK - The GIMP Toolkit
+ * Copyright (C) 2000 Red Hat Software
+ * Copyright (C) 2000 SuSE Linux Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library 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.
+ *
+ * Original author: Owen Taylor <otaylor@redhat.com>
+ *
+ * Modified for Inuktitut - Robert Brady <robert@suse.co.uk>
+ *
+ * Modified for Tigrigna - Daniel Yacob <locales@geez.org>
+ *
+ */
+
+#include <string.h>
+
+#include <gdk/gdkkeysyms.h>
+
+#include "gtk/gtkintl.h"
+#include "gtk/gtkimcontextsimple.h"
+#include "gtk/gtkimmodule.h"
+
+#include<stdio.h>
+
+GType type_ti_et_translit = 0;
+
+static void ti_et_class_init (GtkIMContextSimpleClass *class);
+static void ti_et_init (GtkIMContextSimple *im_context);
+
+static void
+ti_et_register_type (GTypeModule *module)
+{
+ static const GTypeInfo object_info =
+ {
+ sizeof (GtkIMContextSimpleClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) ti_et_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GtkIMContextSimple),
+ 0,
+ (GtkObjectInitFunc) ti_et_init,
+ };
+
+ type_ti_et_translit =
+ g_type_module_register_type (module,
+ GTK_TYPE_IM_CONTEXT_SIMPLE,
+ "GtkIMContextTigrignaEthiopia",
+ &object_info, 0);
+}
+
+#define SYL(a,b) \
+ a, 0, 0, 0, 0, 0, b+5, \
+ a, 'A', 0, 0, 0, 0, b+3, \
+ a, 'E', 0, 0, 0, 0, b+4, \
+ a, 'I', 0, 0, 0, 0, b+2, \
+ a, 'O', 0, 0, 0, 0, b+6, \
+ a, 'U', 0, 0, 0, 0, b+1, \
+ a, 'a', 0, 0, 0, 0, b+3, \
+ a, 'e', 0, 0, 0, 0, b, \
+ a, 'e', 'e', 0, 0, 0, b+4, \
+ a, 'i', 0, 0, 0, 0, b+2, \
+ a, 'o', 0, 0, 0, 0, b+6, \
+ a, 'u', 0, 0, 0, 0, b+1,
+
+#define SYLW1(a,b) \
+ a, 0, 0, 0, 0, 0, b+5, \
+ a, 'A', 0, 0, 0, 0, b+3, \
+ a, 'E', 0, 0, 0, 0, b+4, \
+ a, 'I', 0, 0, 0, 0, b+2, \
+ a, 'O', 0, 0, 0, 0, b+6, \
+ a, 'U', 0, 0, 0, 0, b+1, \
+ a, 'W', 0, 0, 0, 0, b+7, \
+ a, 'W', 'A', 0, 0, 0, b+7, \
+ a, 'W', 'a', 0, 0, 0, b+7,
+#define SYLW2(a,b) \
+ a, 'a', 0, 0, 0, 0, b+3, \
+ a, 'e', 0, 0, 0, 0, b, \
+ a, 'e', 'e', 0, 0, 0, b+4, \
+ a, 'i', 0, 0, 0, 0, b+2, \
+ a, 'o', 0, 0, 0, 0, b+6, \
+ a, 'u', 0, 0, 0, 0, b+1, \
+ a, 'w', 'w', 0, 0, 0, b+7, \
+ a, 'w', 'w', 'a', 0, 0, b+7,
+
+#define SYLW(a,b) \
+ SYLW1(a,b)\
+ SYLW2(a,b)
+
+#define SYLWW(a,b) \
+ a, 0, 0, 0, 0, 0, b+5, \
+ a, 'A', 0, 0, 0, 0, b+3, \
+ a, 'E', 0, 0, 0, 0, b+4, \
+ a, 'I', 0, 0, 0, 0, b+2, \
+ a, 'O', 0, 0, 0, 0, b+6, \
+ a, 'O', 'O', 0, 0, 0, b+8, \
+ a, 'O', 'o', 0, 0, 0, b+8, \
+ a, 'U', 0, 0, 0, 0, b+1, \
+ a, 'W', 0, 0, 0, 0, b+11, \
+ a, 'W', '\'', 0, 0, 0, b+13, \
+ a, 'W', 'A', 0, 0, 0, b+11, \
+ a, 'W', 'E', 0, 0, 0, b+12, \
+ a, 'W', 'I', 0, 0, 0, b+10, \
+ a, 'W', 'U', 0, 0, 0, b+13, \
+ a, 'W', 'a', 0, 0, 0, b+11, \
+ a, 'W', 'e', 0, 0, 0, b+8, \
+ a, 'W', 'e', 'e', 0, 0, b+12, \
+ a, 'W', 'i', 0, 0, 0, b+10, \
+ a, 'W', 'u', 0, 0, 0, b+13, \
+ a, 'a', 0, 0, 0, 0, b+3, \
+ a, 'e', 0, 0, 0, 0, b, \
+ a, 'e', 'e', 0, 0, 0, b+4, \
+ a, 'i', 0, 0, 0, 0, b+2, \
+ a, 'o', 0, 0, 0, 0, b+6, \
+ a, 'o', 'o', 0, 0, 0, b+8, \
+ a, 'u', 0, 0, 0, 0, b+1, \
+ a, 'w', 'w', 0, 0, 0, b+11, \
+ a, 'w', 'w', '\'', 0, 0, b+13, \
+ a, 'w', 'w', 'E', 0, 0, b+12, \
+ a, 'w', 'w', 'a', 0, 0, b+11, \
+ a, 'w', 'w', 'e', 0, 0, b+8, \
+ a, 'w', 'w', 'e', 'e', 0, b+12, \
+ a, 'w', 'w', 'i', 0, 0, b+10, \
+ a, 'w', 'w', 'u', 0, 0, b+13,
+
+static guint16 ti_et_compose_seqs[] = {
+ /* do punctuation and numerals here */
+
+ '\'', 0, 0, 0, 0, 0, GDK_dead_grave, /* hopefully this has no side effects */
+ '\'', '\'', 0, 0, 0, 0, GDK_apostrophe,
+ '\'', '1', 0, 0, 0, 0, 0x1369,
+ '\'', '1', '0', 0, 0, 0, 0x1372,
+ '\'', '1', '0', '0', 0, 0, 0x137b,
+ '\'', '1', '0', 'k', 0, 0, 0x137c,
+ /* '\'', '1', '0', '0', '0', 0, 0x137b,
+ '\'', '1', '0', '0', '0', '0', 0, 0x137c, */
+ '\'', '2', 0, 0, 0, 0, 0x136a,
+ '\'', '2', '0', 0, 0, 0, 0x1373,
+ '\'', '3', 0, 0, 0, 0, 0x136b,
+ '\'', '3', '0', 0, 0, 0, 0x1374,
+ '\'', '4', 0, 0, 0, 0, 0x136c,
+ '\'', '4', '0', 0, 0, 0, 0x1375,
+ '\'', '5', 0, 0, 0, 0, 0x136d,
+ '\'', '5', '0', 0, 0, 0, 0x1376,
+ '\'', '6', 0, 0, 0, 0, 0x136e,
+ '\'', '6', '0', 0, 0, 0, 0x1377,
+ '\'', '7', 0, 0, 0, 0, 0x136f,
+ '\'', '7', '0', 0, 0, 0, 0x1378,
+ '\'', '8', 0, 0, 0, 0, 0x1370,
+ '\'', '8', '0', 0, 0, 0, 0x1379,
+ '\'', '9', 0, 0, 0, 0, 0x1371,
+ '\'', '9', '0', 0, 0, 0, 0x137a,
+ ',', 0, 0, 0, 0, 0, 0x1363,
+ ',', ',', 0, 0, 0, 0, ',',
+ '-', 0, 0, 0, 0, 0, '-',
+ '-', ':', 0, 0, 0, 0, 0x1365,
+ ':', 0, 0, 0, 0, 0, 0x1361,
+ ':', '-', 0, 0, 0, 0, 0x1366,
+ ':', ':', 0, 0, 0, 0, 0x1362,
+ ':', ':', ':', 0, 0, 0, ':',
+ ':', '|', ':', 0, 0, 0, 0x1368,
+ ';', 0, 0, 0, 0, 0, 0x1364,
+ ';', ';', 0, 0, 0, 0, ';',
+ '<', 0, 0, 0, 0, 0, '<',
+ '<', '<', 0, 0, 0, 0, 0x00AB,
+ '>', 0, 0, 0, 0, 0, '>',
+ '>', '>', 0, 0, 0, 0, 0x00BB,
+ '?', 0, 0, 0, 0, 0, '?',
+ '?', '?', 0, 0, 0, 0, 0x1367,
+ 'A', 0, 0, 0, 0, 0, 0x12A0,
+ 'A','A', 0, 0, 0, 0, 0x12D0,
+ SYLW('B', 0x1260)
+ SYLW('C', 0x1328)
+ SYLW('D', 0x12f8)
+ 'E', 0, 0, 0, 0, 0, 0x12A4,
+ 'E','E', 0, 0, 0, 0, 0x12D4,
+ SYLW1('F', 0x1348)
+ 'F', 'Y', 0, 0, 0, 0, 0x135A,
+ 'F', 'Y', 'A', 0, 0, 0, 0x135A,
+ 'F', 'Y', 'a', 0, 0, 0, 0x135A,
+ SYLW2('F', 0x1348)
+ SYL('G', 0x1318)
+ SYLW('H', 0x1210)
+ 'I', 0, 0, 0, 0, 0, 0x12A5,
+ 'I','A', 0, 0, 0, 0, 0x12A3,
+ 'I','E', 0, 0, 0, 0, 0x12A4,
+ 'I','I', 0, 0, 0, 0, 0x12D5,
+ 'I','I','E', 0, 0, 0, 0x12D4,
+ 'I','I','a', 0, 0, 0, 0x12D3,
+ 'I','I','e', 0, 0, 0, 0x12D0,
+ 'I','I','i', 0, 0, 0, 0x12D2,
+ 'I','I','o', 0, 0, 0, 0x12D6,
+ 'I','I','u', 0, 0, 0, 0x12D1,
+ 'I','O', 0, 0, 0, 0, 0x12A6,
+ 'I','U', 0, 0, 0, 0, 0x12A1,
+ 'I','W', 0, 0, 0, 0, 0x12A7,
+ 'I','a', 0, 0, 0, 0, 0x12A3,
+ 'I','e', 0, 0, 0, 0, 0x12A0,
+ 'I','i', 0, 0, 0, 0, 0x12A2,
+ 'I','o', 0, 0, 0, 0, 0x12A6,
+ 'I','u', 0, 0, 0, 0, 0x12A1,
+ SYLWW('K', 0x12b8)
+ SYLW('L', 0x1208)
+ SYLW1('M', 0x1218)
+ 'M', 'Y', 0, 0, 0, 0, 0x1359,
+ 'M', 'Y', 'A', 0, 0, 0, 0x1359,
+ 'M', 'Y', 'a', 0, 0, 0, 0x1359,
+ SYLW2('M', 0x1218)
+ SYLW('N', 0x1298)
+ 'O', 0, 0, 0, 0, 0, 0x12A6,
+ 'O','O', 0, 0, 0, 0, 0x12D6,
+ SYLW('P', 0x1330)
+ SYLWW('Q', 0x1250)
+ SYLW1('R', 0x1228)
+ 'R', 'Y', 0, 0, 0, 0, 0x1358,
+ 'R', 'Y', 'A', 0, 0, 0, 0x1358,
+ 'R', 'Y', 'a', 0, 0, 0, 0x1358,
+ SYLW2('R', 0x1228)
+ 'S', 0, 0, 0, 0, 0, 0x1338+5,
+ 'S', 'A', 0, 0, 0, 0, 0x1338+3,
+ 'S', 'E', 0, 0, 0, 0, 0x1338+4,
+ 'S', 'I', 0, 0, 0, 0, 0x1338+2,
+ 'S', 'O', 0, 0, 0, 0, 0x1338+6,
+ 'S', 'S', 0, 0, 0, 0, 0x1340+5,
+ 'S', 'S', 'A', 0, 0, 0, 0x1340+3,
+ 'S', 'S', 'E', 0, 0, 0, 0x1340+4,
+ 'S', 'S', 'I', 0, 0, 0, 0x1340+2,
+ 'S', 'S', 'O', 0, 0, 0, 0x1340+6,
+ 'S', 'S', 'U', 0, 0, 0, 0x1340+1,
+ 'S', 'S', 'a', 0, 0, 0, 0x1340+3,
+ 'S', 'S', 'e', 0, 0, 0, 0x1340,
+ 'S', 'S', 'e', 'e', 0, 0, 0x1340+4,
+ 'S', 'S', 'i', 0, 0, 0, 0x1340+2,
+ 'S', 'S', 'o', 0, 0, 0, 0x1340+6,
+ 'S', 'S', 'u', 0, 0, 0, 0x1340+1,
+ 'S', 'U', 0, 0, 0, 0, 0x1338+1,
+ 'S', 'W', 0, 0, 0, 0, 0x1338+7,
+ 'S', 'W', 'A', 0, 0, 0, 0x1338+7,
+ 'S', 'W', 'a', 0, 0, 0, 0x1338+7,
+ 'S', 'a', 0, 0, 0, 0, 0x1338+3,
+ 'S', 'e', 0, 0, 0, 0, 0x1338,
+ 'S', 'e', 'e', 0, 0, 0, 0x1338+4,
+ 'S', 'i', 0, 0, 0, 0, 0x1338+2,
+ 'S', 'o', 0, 0, 0, 0, 0x1338+6,
+ 'S', 'u', 0, 0, 0, 0, 0x1338+1,
+ 'S', 'w', 'w', 0, 0, 0, 0x1338+7,
+ 'S', 'w', 'w', 'a', 0, 0, 0x1338+7,
+ SYLW('T', 0x1320)
+ 'U', 0, 0, 0, 0, 0, 0x12A1,
+ 'U','U', 0, 0, 0, 0, 0x12D1,
+ SYLW('V', 0x1268)
+ SYL('W', 0x12c8)
+ SYLW('X', 0x1238)
+ SYL('Y', 0x12e8)
+ SYLW('Z', 0x12e0)
+
+ /* much, much work to be done for lone vowels */
+ 'a', 0, 0, 0, 0, 0, 0x12A3,
+ 'a','a', 0, 0, 0, 0, 0x12D3,
+ 'a','a','a', 0, 0, 0, 0x12D0,
+ 'a','a','a','a', 0, 0, 0x12A0,
+ SYLW('b', 0x1260)
+ SYLW('c', 0x1278)
+ SYLW('d', 0x12f0)
+ 'e', 0, 0, 0, 0, 0, 0x12A5,
+ 'e','A', 0, 0, 0, 0, 0x12A3,
+ 'e','E', 0, 0, 0, 0, 0x12A4,
+ 'e','I', 0, 0, 0, 0, 0x12A2,
+ 'e','O', 0, 0, 0, 0, 0x12A6,
+ 'e','U', 0, 0, 0, 0, 0x12A1,
+ 'e','W', 0, 0, 0, 0, 0x12A7,
+ 'e','a', 0, 0, 0, 0, 0x12D0,
+ 'e','e', 0, 0, 0, 0, 0x12D5,
+ 'e','e','E', 0, 0, 0, 0x12D4,
+ 'e','e','a', 0, 0, 0, 0x12D3,
+ 'e','e','e', 0, 0, 0, 0x12D0,
+ 'e','e','i', 0, 0, 0, 0x12D2,
+ 'e','e','o', 0, 0, 0, 0x12D6,
+ 'e','e','u', 0, 0, 0, 0x12D1,
+ 'e','i', 0, 0, 0, 0, 0x12A2,
+ 'e','o', 0, 0, 0, 0, 0x12A6,
+ 'e','u', 0, 0, 0, 0, 0x12A1,
+ SYLW1('f', 0x1348)
+ 'f', 'Y', 0, 0, 0, 0, 0x135A,
+ 'f', 'Y', 'A', 0, 0, 0, 0x135A,
+ 'f', 'Y', 'a', 0, 0, 0, 0x135A,
+ SYLW2('f', 0x1348)
+ SYLWW('g', 0x1308)
+ 'h', 0, 0, 0, 0, 0, 0x1200+5,
+ 'h', 'A', 0, 0, 0, 0, 0x1200+3,
+ 'h', 'E', 0, 0, 0, 0, 0x1200+4,
+ 'h', 'I', 0, 0, 0, 0, 0x1200+2,
+ 'h', 'O', 0, 0, 0, 0, 0x1200+6,
+ 'h', 'U', 0, 0, 0, 0, 0x1200+1,
+ 'h', 'W', 0, 0, 0, 0, 0x1280+11,
+ 'h', 'W', '\'', 0, 0, 0, 0x1280+13,
+ 'h', 'W', 'A', 0, 0, 0, 0x1280+11,
+ 'h', 'W', 'E', 0, 0, 0, 0x1280+12,
+ 'h', 'W', 'I', 0, 0, 0, 0x1280+10,
+ 'h', 'W', 'U', 0, 0, 0, 0x1280+13,
+ 'h', 'W', 'a', 0, 0, 0, 0x1280+11,
+ 'h', 'W', 'e', 0, 0, 0, 0x1280+8,
+ 'h', 'W', 'e', 'e', 0, 0, 0x1280+12,
+ 'h', 'W', 'i', 0, 0, 0, 0x1280+10,
+ 'h', 'W', 'u', 0, 0, 0, 0x1280+13,
+ 'h', 'a', 0, 0, 0, 0, 0x1200+3,
+ 'h', 'e', 0, 0, 0, 0, 0x1200,
+ 'h', 'e', 'e', 0, 0, 0, 0x1200+4,
+ 'h', 'h', 0, 0, 0, 0, 0x1280+5,
+ 'h', 'h', 'A', 0, 0, 0, 0x1280+3,
+ 'h', 'h', 'E', 0, 0, 0, 0x1280+4,
+ 'h', 'h', 'I', 0, 0, 0, 0x1280+2,
+ 'h', 'h', 'O', 0, 0, 0, 0x1280+6,
+ 'h', 'h', 'O', 'O', 0, 0, 0x1280+8,
+ 'h', 'h', 'U', 0, 0, 0, 0x1280+1,
+ 'h', 'h', 'W', 0, 0, 0, 0x1280+11,
+ 'h', 'h', 'W', '\'', 0, 0, 0x1280+13,
+ 'h', 'h', 'W', 'A', 0, 0, 0x1280+11,
+ 'h', 'h', 'W', 'E', 0, 0, 0x1280+12,
+ 'h', 'h', 'W', 'I', 0, 0, 0x1280+10,
+ 'h', 'h', 'W', 'U', 0, 0, 0x1280+13,
+ 'h', 'h', 'W', 'a', 0, 0, 0x1280+11,
+ 'h', 'h', 'W', 'e', 0, 0, 0x1280+8,
+ 'h', 'h', 'W', 'e', 'e', 0, 0x1280+12,
+ 'h', 'h', 'W', 'i', 0, 0, 0x1280+10,
+ 'h', 'h', 'W', 'u', 0, 0, 0x1280+13,
+ 'h', 'h', 'a', 0, 0, 0, 0x1280+3,
+ 'h', 'h', 'e', 0, 0, 0, 0x1280,
+ 'h', 'h', 'e', 'e', 0, 0, 0x1280+4,
+ 'h', 'h', 'i', 0, 0, 0, 0x1280+2,
+ 'h', 'h', 'o', 0, 0, 0, 0x1280+6,
+ 'h', 'h', 'o', 'o', 0, 0, 0x1280+8,
+ 'h', 'h', 'u', 0, 0, 0, 0x1280+1,
+ 'h', 'h', 'w', 'w', 0, 0, 0x1280+11,
+ 'h', 'h', 'w', 'w', 'a', 0, 0x1280+11,
+ 'h', 'h', 'w', 'w', 0, 0, 0x1280+11,
+ 'h', 'h', 'w', 'w', '\'', 0, 0x1280+13,
+ 'h', 'h', 'w', 'w', 'E', 0, 0x1280+12,
+ 'h', 'h', 'w', 'w', 'a', 0, 0x1280+11,
+ 'h', 'h', 'w', 'w', 'e', 0, 0x1280+8,
+ /* 'h', 'h', 'w', 'w', 'e', 'e', 0, 0x1280+12, too long for now */
+ 'h', 'h', 'w', 'w', 'i', 0, 0x1280+10,
+ 'h', 'h', 'w', 'w', 'u', 0, 0x1280+13,
+ 'h', 'i', 0, 0, 0, 0, 0x1200+2,
+ 'h', 'o', 0, 0, 0, 0, 0x1200+6,
+ 'h', 'u', 0, 0, 0, 0, 0x1200+1,
+ 'h', 'w', 'w', 0, 0, 0, 0x1280+11,
+ 'h', 'w', 'w', 'a', 0, 0, 0x1280+11,
+ 'h', 'w', 'w', 0, 0, 0, 0x1280+11,
+ 'h', 'w', 'w', '\'', 0, 0, 0x1280+13,
+ 'h', 'w', 'w', 'E', 0, 0, 0x1280+12,
+ 'h', 'w', 'w', 'a', 0, 0, 0x1280+11,
+ 'h', 'w', 'w', 'e', 0, 0, 0x1280+8,
+ 'h', 'w', 'w', 'e', 'e', 0, 0x1280+12,
+ 'h', 'w', 'w', 'i', 0, 0, 0x1280+10,
+ 'h', 'w', 'w', 'u', 0, 0, 0x1280+13,
+ 'i', 0, 0, 0, 0, 0, 0x12A2,
+ 'i', 'i', 0, 0, 0, 0, 0x12D2,
+ SYLW('j', 0x1300)
+ SYLWW('k', 0x12a8)
+ SYLW('l', 0x1208)
+ SYLW1('m', 0x1218)
+ 'm', 'Y', 0, 0, 0, 0, 0x1359,
+ 'm', 'Y', 'A', 0, 0, 0, 0x1359,
+ 'm', 'Y', 'a', 0, 0, 0, 0x1359,
+ SYLW2('m', 0x1218)
+ SYLW('n', 0x1290)
+ 'o', 0, 0, 0, 0, 0, 0x12A6,
+ 'o','o', 0, 0, 0, 0, 0x12D6,
+ SYLW('p', 0x1350)
+ SYLWW('q', 0x1240)
+ SYLW1('r', 0x1228)
+ 'r', 'Y', 0, 0, 0, 0, 0x1358,
+ 'r', 'Y', 'A', 0, 0, 0, 0x1358,
+ 'r', 'Y', 'a', 0, 0, 0, 0x1358,
+ SYLW2('r', 0x1228)
+ 's', 0, 0, 0, 0, 0, 0x1230+5,
+ 's', 'A', 0, 0, 0, 0, 0x1230+3,
+ 's', 'E', 0, 0, 0, 0, 0x1230+4,
+ 's', 'I', 0, 0, 0, 0, 0x1230+2,
+ 's', 'O', 0, 0, 0, 0, 0x1230+6,
+ 's', 'U', 0, 0, 0, 0, 0x1230+1,
+ 's', 'W', 0, 0, 0, 0, 0x1230+7,
+ 's', 'W', 'A', 0, 0, 0, 0x1230+7,
+ 's', 'W', 'a', 0, 0, 0, 0x1230+7,
+ 's', 'a', 0, 0, 0, 0, 0x1230+3,
+ 's', 'e', 0, 0, 0, 0, 0x1230,
+ 's', 'e', 'e', 0, 0, 0, 0x1230+4,
+ 's', 'i', 0, 0, 0, 0, 0x1230+2,
+ 's', 'o', 0, 0, 0, 0, 0x1230+6,
+ 's', 's', 0, 0, 0, 0, 0x1220+5,
+ 's', 's', 'A', 0, 0, 0, 0x1220+3,
+ 's', 's', 'E', 0, 0, 0, 0x1220+4,
+ 's', 's', 'I', 0, 0, 0, 0x1220+2,
+ 's', 's', 'O', 0, 0, 0, 0x1220+6,
+ 's', 's', 'U', 0, 0, 0, 0x1220+1,
+ 's', 's', 'W', 0, 0, 0, 0x1220+7,
+ 's', 's', 'W', 'A', 0, 0, 0x1220+7,
+ 's', 's', 'W', 'a', 0, 0, 0x1220+7,
+ 's', 's', 'a', 0, 0, 0, 0x1220+3,
+ 's', 's', 'e', 0, 0, 0, 0x1220,
+ 's', 's', 'e', 'e', 0, 0, 0x1220+4,
+ 's', 's', 'i', 0, 0, 0, 0x1220+2,
+ 's', 's', 'o', 0, 0, 0, 0x1220+6,
+ 's', 's', 'u', 0, 0, 0, 0x1220+1,
+ 's', 's', 'w', 'w', 0, 0, 0x1220+7,
+ 's', 's', 'w', 'w', 'a', 0, 0x1220+7,
+ 's', 'u', 0, 0, 0, 0, 0x1230+1,
+ 's', 'w', 'w', 0, 0, 0, 0x1230+7,
+ 's', 'w', 'w', 'a', 0, 0, 0x1230+7,
+ SYLW('t', 0x1270)
+ 'u', 0, 0, 0, 0, 0, 0x12A1,
+ 'u','u', 0, 0, 0, 0, 0x12D1,
+ SYLW('v', 0x1268)
+ SYL('w', 0x12c8)
+ SYLW('x', 0x1238)
+ SYL('y', 0x12e8)
+ SYLW('z', 0x12d8)
+ GDK_Shift_L, GDK_space, 0, 0, 0, 0, 0x1361,
+ GDK_Shift_R, GDK_space, 0, 0, 0, 0, 0x1361,
+};
+
+static void
+ti_et_class_init (GtkIMContextSimpleClass *class)
+{
+}
+
+static void
+ti_et_init (GtkIMContextSimple *im_context)
+{
+ gtk_im_context_simple_add_table (im_context,
+ ti_et_compose_seqs,
+ 5,
+ G_N_ELEMENTS (ti_et_compose_seqs) / (5 + 2));
+}
+
+static const GtkIMContextInfo ti_et_info = {
+ "ti_et", /* ID */
+ N_("Tigrigna-Ethiopian (EZ+)"), /* Human readable name */
+ "gtk+", /* Translation domain */
+ GTK_LOCALEDIR, /* Dir for bindtextdomain (not strictly needed for "gtk+") */
+ "ti" /* Languages for which this module is the default */
+};
+
+static const GtkIMContextInfo *info_list[] = {
+ &ti_et_info
+};
+
+void
+im_module_init (GTypeModule *module)
+{
+ ti_et_register_type (module);
+}
+
+void
+im_module_exit (void)
+{
+}
+
+void
+im_module_list (const GtkIMContextInfo ***contexts,
+ int *n_contexts)
+{
+ *contexts = info_list;
+ *n_contexts = G_N_ELEMENTS (info_list);
+}
+
+GtkIMContext *
+im_module_create (const gchar *context_id)
+{
+ if (strcmp (context_id, "ti_et") == 0)
+ return GTK_IM_CONTEXT (g_object_new (type_ti_et_translit, NULL));
+ else
+ return NULL;
+}
diff --git a/po/POTFILES.in b/po/POTFILES.in
index e82caeadbe..7604cb3ccc 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -84,10 +84,13 @@ gtk/gtkviewport.c
gtk/gtkwidget.c
gtk/gtkwindow.c
gtk/gtksizegroup.c
+modules/input/imam-et.c
modules/input/imcyrillic-translit.c
modules/input/iminuktitut.c
modules/input/imipa.c
modules/input/imthai-broken.c
+modules/input/imti-er.c
+modules/input/imti-et.c
modules/input/imviqr.c
modules/input/imxim.c
modules/input/imhangul.c