From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Kierin Bell Newsgroups: gmane.emacs.bugs Subject: bug#74170: [PATCH] Add input methods for Northern Iroquoian languages Date: Sun, 03 Nov 2024 15:46:38 -0500 Message-ID: <87jzdkniz5.fsf@fernseed.me> References: <87froas6s7.fsf@fernseed.me> <86r07uyrs9.fsf@gnu.org> <871pztq91x.fsf@fernseed.me> <87o72xou8x.fsf@fernseed.me> <86plncx06e.fsf@gnu.org> <87plncnu7s.fsf@fernseed.me> <86bjyww3o2.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="34951"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 74170@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Nov 03 21:48:17 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1t7hWC-0008ux-8S for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 03 Nov 2024 21:48:16 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t7hW1-0001ac-Nq; Sun, 03 Nov 2024 15:48:05 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t7hVy-0001Z4-U6 for bug-gnu-emacs@gnu.org; Sun, 03 Nov 2024 15:48:02 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t7hVy-0004GZ-MB for bug-gnu-emacs@gnu.org; Sun, 03 Nov 2024 15:48:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:Date:References:In-Reply-To:From:To:Subject; bh=vlrutFKjJBXJb2eF7lOuKQKeFm361jsZezV+tJ7/zYA=; b=NjZJw7q8pgWpvhBqc+7jhT+Lqda+0ecr0jnzYnfJU2hLjrL0IGfyYKSC9cw82/QXe/LxdcADaClz/sP5c2PsRcz9WlHb7tgMD24VcjfP2US21GjMW5wNujrFr5UH9FdpsKTxgxfPYaviUZjDSxhB77W1CRDNC01fV/8wpAXfdSxRJR4ymoKpGN0uqLuelEkEMg8e1zOb46xxeRUtvJNf0mP4Mxr6fXtnaN8Pyc2Vm9B5xKinYg6sczsAsgB4xttSJ3T22rF7WJHf0PCE7I1N91IPUteatwiWiiONc3BmypgvPtBEyLRk129csjG64+dVP+YKVKMGrVeufW8uQnhRzg==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t7hVy-0004X2-7d for bug-gnu-emacs@gnu.org; Sun, 03 Nov 2024 15:48:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Kierin Bell Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 03 Nov 2024 20:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 74170 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 74170-submit@debbugs.gnu.org id=B74170.173066685117392 (code B ref 74170); Sun, 03 Nov 2024 20:48:02 +0000 Original-Received: (at 74170) by debbugs.gnu.org; 3 Nov 2024 20:47:31 +0000 Original-Received: from localhost ([127.0.0.1]:34603 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7hVR-0004WR-Hd for submit@debbugs.gnu.org; Sun, 03 Nov 2024 15:47:31 -0500 Original-Received: from mout-p-202.mailbox.org ([80.241.56.172]:37568) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7hVN-0004WH-QC for 74170@debbugs.gnu.org; Sun, 03 Nov 2024 15:47:28 -0500 Original-Received: from smtp102.mailbox.org (smtp102.mailbox.org [IPv6:2001:67c:2050:b231:465::102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4XhRTx1zRtz9sqr; Sun, 3 Nov 2024 21:46:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fernseed.me; s=MBO0001; t=1730666805; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=0cDIwDeEyj1y3Lyqv+9HBQrf5CTtlMRCtDSbhN4ehg8=; b=G/G+1WF5z2dB31elw116csrO9FKoQpVjPGtGR0sKApZyUyJCMG4Ch0DzmM2IYke7vd6Hm3 VrVz2kHLGMAow20XIkb8fSLzR8+kCvPGHD+CveP08gY23RpO4ZpmvXPuyI1szzIzVkjZwn jOGB5mqCHXBLfD+73W7Xozxcv6iYiIO+ALZWw0SuIPlV72ddURCW4Q0Cic9YyCBXT7upEj 5s72+KHD6A9Az63DE5WlF6hFWiEstGXUXJWbodVhFpJJ8CrfqEbinWk6HxbRvpwuU7WXKX c26eSuvSAJD5R8PUCPSN6nsYsRSk7t8FYV7up8IuYjZaZbeXim9wvRtemq3xmw== In-Reply-To: <86bjyww3o2.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 03 Nov 2024 20:52:29 +0200") X-Rspamd-Queue-Id: 4XhRTx1zRtz9sqr X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:294819 Archived-At: --=-=-= Content-Type: text/plain Eli Zaretskii writes: >> From: Kierin Bell Cc: 74170@debbugs.gnu.org >> Date: Sun, 03 Nov 2024 11:43:51 -0500 >> >> I would like to propose that I add aliases for the six input methods >> derived from autonyms --- or at least for the 'iroqouian-postfix' >> method. I am wondering: 1) Is there a built-in way to define aliases for >> input methods? (I can implement a quick macro that defines two input >> methods simultaneously if not.) 2) Is there a convention or argument >> against declaring multiple input methods with different names that >> basically do the same thing? > > I don't think we have precedents for any of these. > > In general, input method names are AFAIR always plain-ASCII, but the > mnemonics shown on the mode line when an input method is active use > non-ASCII characters indicative of the language. > > Using several names for a single input method could be confusing, so > if you can find a single name that cannot cause negative sentiments, > using such a name is a better alternative, I think. Thank you for your input, Eli. I opted to rename `iroquoian-postfix' to `haudenosaunee-postfix' and leave the other input methods as-is. I have also included a (relatively lengthy) explanatory comment that will hopefully be helpful for those asking similar questions in the future. Patch is attached. --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-Add-input-methods-for-Northern-Iroquoian-languages.patch Content-Transfer-Encoding: quoted-printable >From e3ceffa02cc49bd0579752437f16ac93d4f23865 Mon Sep 17 00:00:00 2001 From: Kierin Bell Date: Sun, 3 Nov 2024 15:19:09 -0500 Subject: [PATCH] Add input methods for Northern Iroquoian languages --- etc/NEWS | 11 + lisp/leim/quail/iroquoian.el | 981 +++++++++++++++++++++++++++++++++++ 2 files changed, 992 insertions(+) create mode 100644 lisp/leim/quail/iroquoian.el diff --git a/etc/NEWS b/etc/NEWS index 41a76d1cd95..bf6322f1a47 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -177,6 +177,17 @@ characters. *** New language-environment and input method for Tifinagh. The Tifinagh script is used to write the Berber languages. =20 +--- +*** New input methods for Northern Iroquoian languages. +Input methods are now implemented for Haudenosaunee languages in the +Northern Iroquoian language family: 'mohawk-postfix' (Mohawk +[Kanien=E2=80=99k=C3=A9ha / Onkwehonwe=E2=80=99n=C3=A9ha]), 'oneida-postfi= x' (Oneida [On=CA=8Cyota:k=C3=A1: +/ Ukwehuwehn=C3=A9ha]), 'cayuga-postfix' (Cayuga [Gayogo=CC=B1ho:n=C7=ABhn= =C3=A9ha:=CB=80]), +'onondaga-postfix (Onondaga [[On=C5=B3da=CA=94geg=C3=A1=CA=94]), and `sene= ca-postfix' +[On=C3=B6dow=C3=A1=E2=80=99ga:=E2=80=99]). Additionally, there is a gener= al-purpose +'haudenosaunee-postfix' input method to facilitate writing in the +orthographies of the five languages simultaneously. + --- ** 'visual-wrap-prefix-mode' now supports variable-pitch fonts. When using 'visual-wrap-prefix-mode' in buffers with variable-pitch diff --git a/lisp/leim/quail/iroquoian.el b/lisp/leim/quail/iroquoian.el new file mode 100644 index 00000000000..c63bcd13083 --- /dev/null +++ b/lisp/leim/quail/iroquoian.el @@ -0,0 +1,981 @@ +;;; iroquoian.el --- Quail packages for inputting Iroquoian languages -*-= lexical-binding: t; coding: utf-8; -*- + +;; Copyright (C) 2024 Free Software Foundation, Inc. + +;; Author: Kierin Bell +;; Keywords: i18n + +;; This file is part of GNU Emacs. + +;; This program 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, either version 3 of the License, or +;; (at your option) any later version. + +;; This program 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 . + +;;; Commentary: + +;; This file implements input methods for Northern Iroquoian languages. + +;; Input methods are implemented for all Five Nations Iroquois +;; languages: + +;; - Mohawk (Kanien=E2=80=99k=C3=A9ha / Onkwehonwe=E2=80=99n=C3=A9ha) +;; - Oneida (On=CA=8Cyota:k=C3=A1: / Ukwehuwehn=C3=A9ha) +;; - Onondaga (On=C5=B3da=CA=94geg=C3=A1=CA=94) +;; - Cayuga (Gayogo=CC=B1ho:n=C7=ABhn=C3=A9ha:=CB=80) +;; - Seneca (On=C3=B6dow=C3=A1=E2=80=99ga:=E2=80=99) + +;; A composite input method for all of the languages above is also +;; defined: `haudenosaunee-postfix'. + +;; Input methods are not yet implemented for the remaining Northern +;; Iroquoian languages, including: + +;; - Tuscarora (Skar=C3=B9:r=C4=99=CA=94) +;; - Wendat (Huron) / Wyandot + +;;; Code: + +(require 'quail) +(require 'seq) +(require 'pcase) + +(defun quail-iroquoian-permute-rules (letters modifiers) + "Return rules from all permutations of LETTERS and MODIFIERS + +LETTERS and MODIFIERS are lists or rules where each entry is of the +form: + +(KEY TRANSLATION) + +KEY is a string containing the sequence of keys to be translated. +TRANSLATE is a character representing the translation for KEY." + (let (result) + (pcase-dolist (`(,l-k ,l-t) letters) + (pcase-dolist (`(,m-k ,m-t) modifiers) + ;; Converting translation into vector ensures that keys that are + ;; equal to prefixes of another key will not overshadow it. + (push (list (concat l-k m-k) (vector (string l-t m-t))) + result))) + (append letters + (nreverse result)))) + + +;;; Mohawk + +;; +;; There are several orthographies used today to write Mohawk in +;; different communities, but differences are small and mainly involve +;; differences in representation of the palatal glide [j] (written +;; in Eastern/Central dialects and in Western dialects). The +;; following input method should work for all of variants. +;; +;; Reference work for orthographies used by speakers of Eastern +;; (Kahnaw=C3=A0:ke, Kanehsat=C3=A0:ke, W=C3=A1hta) and Central (Ahkwesahs= ne) dialects +;; of Mohawk: +;; +;; Lazore, Dorothy Karihw=C3=A9nhawe. 1993. The Mohawk language +;; Standardisation Project, Conference Report. Ontario: Literacy +;; Ontario. +;; +;; Reference work for the orthography commonly used by speakers of +;; Western dialects of Mohawk (Tyendinaga, Ohsw=C3=A9:ken): +;; +;; Brian Maracle. 2021. 1st Year Adult Immersion Program 2020-21. +;; Ohsweken, ON, Canada: Onkwawenna Kentyohkwa. Unpublished curriculum +;; document written by staff for the Okwawenna Kentyohkwa adult +;; immersion program. +;; + +(defconst iroquoian-mohawk-modifier-alist nil + "Alist of rules for modifier letters in Mohawk input methods. +Entries are as with rules in `quail-define-rules'.") + +(defconst iroquoian-mohawk-vowel-alist + '(("a" ?a) + ("A" ?A) + ("e" ?e) + ("E" ?E) + ("i" ?i) + ("I" ?I) + ("o" ?o) + ("O" ?O)) + "Alist of rules for vowel letters in Mohawk input methods. + +Each entry is of the form: + +(KEY TRANSLATION) + +KEY must be a string representing a key sequence to be translated. + +TRANSLATION must be a character representing the translation for KEY. + +This variable is meant to be used as the first argument to +`quail-iroquoian-permute-rules'.") + +(defconst iroquoian-mohawk-consonant-alist + '((";;" ?\N{RIGHT SINGLE QUOTATION MARK})) + "Alist of rules for consonant letters in Mohawk input methods. +Entries are as with rules in `quail-define-rules'.") + +(defconst iroquoian-mohawk-diacritic-alist + '(("'" ?\N{COMBINING ACUTE ACCENT}) + ("`" ?\N{COMBINING GRAVE ACCENT})) + "Alist of rules for combining diacritics in Mohawk input methods. +Entries are as with `iroquoian-mohawk-vowel-alist', which see.") + +(quail-define-package + "mohawk-postfix" "Mohawk" "MOH<" nil + "Mohawk (Kanien=E2=80=99k=C3=A9ha) input method with postfix modifiers + +Modifiers: + +| Key | Translation | Description | +|-----+-------------+--------------| +| : | : | Vowel length | + +Stress diacritics: + +| Key | Description | Example | +|------+--------------+---------| +| \\=3D' | Acute accent | a' -> a=CC=81 | +| \\=3D` | Grave accent | a` -> a=CC=80 | + +Vowels: + +a, e, i, and o are bound to a single key. + +Consonants: + +| Key | Translation | Description | +|-----+-------------+--------------| +| ;; | \\=3D=E2=80=99 | Glottal stop | + +h, k, n, r, s, t, w, and y are bound to a single key. + +b, m, and p are used rarely in ideophones and loan words. They are also +each bound to a single key. + +Alternatively, an apostrophe can represent a glottal stop. To enter an +apostrophe directly after a vowel without adding an acute accent to that +vowel, first use \\\\[quail-select-current] to t= erminate the translation and then type the +apostrophe." + nil t nil nil nil nil nil nil nil nil t) + +(pcase-dolist (`(,key ,trans) + (append iroquoian-mohawk-modifier-alist + iroquoian-mohawk-consonant-alist + (quail-iroquoian-permute-rules + iroquoian-mohawk-vowel-alist + iroquoian-mohawk-diacritic-alist))) + (quail-defrule key trans)) + + +;;; Oneida + +;; +;; There are slight variations in the orthographies used today to write +;; Oneida. The differences mainly involve in representation of vowel +;; length and glottal stops. +;; +;; Reference work for Oneida orthography: +;; +;; Michelson, K., Doxtator, M. and Doxtator, M.A.. 2002. +;; Oneida-English/English-Oneida dictionary. Toronto: University of +;; Toronto Press. +;; +;; Orthographic variation from personal familiarity with community +;; language programs and curricula. +;; + +(defconst iroquoian-oneida-modifier-alist + '(("::" ?\N{MIDDLE DOT})) + "Alist of rules for modifier letters in Oneida input methods. +Entries are as with rules in `quail-define-rules'.") + +(defconst iroquoian-oneida-vowel-alist + '(("a" ?a) + ("A" ?A) + ("e" ?e) + ("E" ?E) + ("i" ?i) + ("I" ?I) + ("o" ?o) + ("O" ?O) + ("u" ?u) + ("U" ?U) + ("e/" ?=CA=8C) + ("E/" ?=C9=85)) + "Alist of rules for vowel letters in Oneida input methods. + +Each entry is of the form: + +(KEY TRANSLATION) + +KEY must be a string representing a key sequence to be translated. + +TRANSLATION must be a character representing the translation for KEY. + +This variable is meant to be used as the first argument to +`quail-iroquoian-permute-rules'.") + +(defconst iroquoian-oneida-consonant-alist + '((";;" ?\N{MODIFIER LETTER GLOTTAL STOP}) + (";'" ?\N{RIGHT SINGLE QUOTATION MARK})) + "Alist of rules for consonant letters in Oneida input methods. +Entries are as with rules in `quail-define-rules'.") + +(defconst iroquoian-oneida-diacritic-alist + '(("'" ?\N{COMBINING ACUTE ACCENT})) + "Alist of rules for combining diacritics in Oneida input methods. +Entries are as with `iroquoian-oneida-vowel-alist', which see.") + +(defconst iroquoian-oneida-devoicing-alist + '(("_" ?\N{COMBINING LOW LINE}) + ("__" ?_)) + "Alist of rules for devoicing characters in Oneida input methods. +Entries are as with rules in `quail-define-rules'.") + +(quail-define-package + "oneida-postfix" "Oneida" "ONE<" nil + "Oneida (On=CA=8Cyota:k=C3=A1:) input method with postfix modifiers + +Modifiers: + +| Key | Translation | Description | +|-----+-------------+--------------------------| +| :: | =C2=B7 | Vowel length | +| : | : | Vowel length (alternate) | + +Stress diacritics: + +| Key | Description | Example | +|------+--------------+---------| +| \\=3D' | Acute accent | a' -> a=CC=81| + +Vowels: + +| Key | Translation | Description | +|-----+-------------+-----------------------------------| +| e/ | =CA=8C | Mid central nasal vowel | +| E/ | =C9=85 | Mid central nasal vowel (capital) | + +a, e, i, o, and u are bound to a single key. + +Consonants: + +| Key | Translation | Description | +|-----+-------------+--------------------------| +| ;; | =CB=80 | Glottal stop | +| ;\\=3D' | \\=3D=E2=80=99 | Glottal stop (alternate) | + +h, k, l, n, s, t, w, and y are bound to a single key. + +Alternatively, an apostrophe can represent a glottal stop. To enter an +apostrophe directly after a vowel without adding an acute accent to that +vowel, first use \\\\[quail-select-current] to t= erminate the translation and then type the +apostrophe. + +Devoicing: + +| Key | Description | Example | +|-----+--------------------+----------| +| _ | Combining low line | a_ -> a=CC=B2 | + +Note: Not all fonts can properly display a combining low line on all +letters. + +Underlining is commonly used in Oneida to indicate devoiced syllables on +pre-pausal forms (also called utterance-final forms). Alternatively, +markup or other methods can be used to create an underlining effect. + +To enter a plain underscore, type _ twice." + nil t nil nil nil nil nil nil nil nil t) + +(pcase-dolist (`(,key ,trans) + (append iroquoian-oneida-modifier-alist + iroquoian-oneida-consonant-alist + (quail-iroquoian-permute-rules + iroquoian-oneida-vowel-alist + iroquoian-oneida-diacritic-alist) + iroquoian-oneida-devoicing-alist)) + (quail-defrule key trans)) + + +;;; Onondaga + +;; +;; There are three main orthographies for Onondaga in contemporary use: +;; the community orthography used at Six Nations of the Grand River, the +;; community orthography used at Onondaga Nation in New York, and the +;; orthography used by Hanni Woodbury in her 2003 dictionary (see +;; below). The latter is included because of its adoption in academia +;; and also by some contemporary second-language learners. +;; Additionally, Woodbury's dictionary provides a helpful description of +;; the community orthographies that is still applicable today. +;; +;; The differences between the orthographies are small, involving +;; representation of nasal vowels (e=CC=A8and o=CC=A8at Six Nations of the= Grand +;; River, e=C3=B1 and o=C3=B1 at Onondaga in New York, and e=CC=A8and u=CC= =A8following +;; Woodbury's dictionary), the low front rounded vowel (a=CC=88at Six Nati= ons +;; and Onondaga Nation and =C3=A6 following Woodbury), vowel length (: +;; [colon] after a vowel in community orthographies and =C2=B7 [middle dot] +;; following Woodbury), and glottal stops (=E2=80=99 [right single quotati= on +;; mark] in community orthographies and =CA=94 [latin letter glottal stop] +;; following Woodbury). The input method here aims to accommodate all +;; three of these orthographies. +;; +;; Reference work for Onondaga orthography: +;; +;; Hanni Woodbury. 2003. Onondaga-English/English-Onondaga +;; Dictionary. Toronto: University of Toronto Press. +;; + +(defconst iroquoian-onondaga-modifier-alist + '(("::" ?\N{MIDDLE DOT})) + "Alist of rules for modifier letters in Onondaga input methods. +Entries are as with rules in `quail-define-rules'.") + +(defconst iroquoian-onondaga-vowel-alist + '(("a" ?a) + ("A" ?A) + ("e" ?e) + ("E" ?E) + ("i" ?i) + ("I" ?I) + ("o" ?o) + ("O" ?O) + ("e," ?=C4=99) + ("E," ?=C4=98) + ("o," ?=C7=AB) + ("O," ?=C7=AA) + ("a\"" ?=C3=A4) + ("A\"" ?=C3=84) + ;; From Woodbury (2003) orthography: + ("a/" ?=C3=A6) + ("A/" ?=C3=86) + ("u," ?=C5=B3) + ("U," ?=C5=B2)) + "Alist of rules for vowel letters in Onondaga input methods. + +Each entry is of the form: + +(KEY TRANSLATION) + +KEY must be a string representing a key sequence to be translated. + +TRANSLATION must be a character representing the translation for KEY. + +This variable is meant to be used as the first argument to +`quail-iroquoian-permute-rules'.") + +(defconst iroquoian-onondaga-consonant-alist + '((";;" ?\N{RIGHT SINGLE QUOTATION MARK}) + (";:" ?\N{LATIN LETTER GLOTTAL STOP})) + "Alist of rules for consonant letters in Onondaga input methods. +Entries are as with rules in `quail-define-rules'.") + +(defconst iroquoian-onondaga-nasal-alist + '(("n-" ?=C3=B1) + ("N-" ?=C3=91)) + "Alist of rules for nasal modifier letters in Onondaga input methods. +Entries are as with rules in `quail-define-rules'.") + +(defconst iroquoian-onondaga-diacritic-alist + '(("'" ?\N{COMBINING ACUTE ACCENT})) + "Alist of rules for combining diacritics in Onondaga input methods. +Entries are as with `iroquoian-onondaga-vowel-alist', which see.") + +(quail-define-package + "onondaga-postfix" "Onondaga" "ONO<" nil + "Onondaga (On=C5=B3da=CA=94geg=C3=A1=CA=94) input method with postfix mod= ifiers + +Modifiers: + +| Key | Translation | Description | +|-----+-------------+--------------------------| +| : | : | Vowel length | +| :: | =C2=B7 | Vowel length (alternate) | + +Stress diacritics: + +| Key | Description | Example | +|------+--------------+---------| +| \\=3D' | Acute accent | a' -> a=CC=81| + +Vowels: + +| Key | Translation | Description | +|-----+-------------+---------------------------------------| +| Six Nations of the Grand River orthography | +|-----------------------------------------------------------| +| e, | =C4=99 | Mid front nasal vowel | +| E, | =C4=98 | Mid front nasal vowel (capital) | +| o, | =C7=AB | Back high nasal vowel | +| O, | =C7=AA | Back high nasal vowel (capital) | +| a\" | =C3=A4 | Low front rounded vowel | +| A\" | =C3=84 | Low front rounded vowel (capital) | +|-----------------------------------------------------------| +| Onondaga Nation, New York orthography | +|-----------------------------------------------------------| +| en- | e=C3=B1 | Mid front nasal vowel | +| EN- | E=C3=91 | Mid front nasal vowel (capital) | +| on- | o=C3=B1 | Back high nasal vowel | +| ON- | O=C3=91 | Back high nasal vowel (capital) | +| a\" | =C3=A4 | Low front rounded vowel | +| A\" | =C3=84 | Low front rounded vowel (capital) | +|-----------------------------------------------------------| +| Dictionary orthography (Hanni Woodbury, 2003) | +|-----------------------------------------------------------| +| e, | =C4=99 | Mid front nasal vowel | +| E, | =C4=98 | Mid front nasal vowel (capital) | +| u, | =C5=B3 | Back high nasal vowel | +| U, | =C5=B2 | Back high nasal vowel (capital) | +| a/ | =C3=A6 | Low front rounded vowel | +| A/ | =C3=86 | Low front rounded vowel (capital) | + +a, e, i, and o are bound to a single key. + +Consonants: + +| Key | Translation | Description | +|-----+-------------+--------------------------| +| ;; | \\=3D=E2=80=99 | Glottal stop | +| ;: | =CA=94 | Glottal stop (alternate) | + +c, d, g, h, j, k, n, s, t, w, and y are bound to a single key. + +Alternatively, an apostrophe can represent a glottal stop. To enter an +apostrophe directly after a vowel without adding an acute accent to that +vowel, first use \\\\[quail-select-current] to t= erminate the translation and then type the +apostrophe." + nil t nil nil nil nil nil nil nil nil t) + +(pcase-dolist (`(,key ,trans) + (append iroquoian-onondaga-modifier-alist + iroquoian-onondaga-consonant-alist + iroquoian-onondaga-nasal-alist + (quail-iroquoian-permute-rules + iroquoian-onondaga-vowel-alist + iroquoian-onondaga-diacritic-alist))) + (quail-defrule key trans)) + + +;;; Cayuga + +;; +;; The primary community orthography used for the Cayuga language is +;; called the Henry orthography, after important language revitalist +;; Reginald Henry. There are slight variations, particularly in which +;; letter is used to represent the glottal stop. While the most common +;; seems to be <=CB=80> [modifier letter glottal stop], this input method +;; provides mappings for other glottal stop letters in common use. +;; Other common orthographies should be covered by this input method as +;; well. +;; +;; Reference work for Cayuga orthography: +;; +;; Carrie Dyck, Frances Froman, Alfred Keye & Lottie Keye. 2024. A +;; grammar and dictionary of Gayogo=CC=B1h=C3=B3:n=C7=AB=CB=80 (Cayuga) (E= studios de +;; Ling=C3=BC=C3=ADstica Amerindia 1). Berlin: Language Science Press. +;; + +(defconst iroquoian-cayuga-modifier-alist nil + "Alist of rules for modifier letters in Cayuga input methods. +Entries are as with rules in `quail-define-rules'.") + +(defconst iroquoian-cayuga-vowel-alist + '(("a" ?a) + ("A" ?A) + ("e" ?e) + ("E" ?E) + ("i" ?i) + ("I" ?I) + ("o" ?o) + ("O" ?O) + ("u" ?u) + ("U" ?U) + ("e," ?=C4=99) + ("E," ?=C4=98) + ("o," ?=C7=AB) + ("O," ?=C7=AA)) + "Alist of rules for vowel letters in Cayuga input methods. + +Each entry is of the form: + +(KEY TRANSLATION) + +KEY must be a string representing a key sequence to be translated. + +TRANSLATION must be a character representing the translation for KEY. + +This variable is meant to be used as the first argument to +`quail-iroquoian-permute-rules'.") + +(defconst iroquoian-cayuga-consonant-alist + '((";;" ?\N{MODIFIER LETTER GLOTTAL STOP}) + (";'" ?\N{RIGHT SINGLE QUOTATION MARK})) + "Alist of rules for consonant letters in Cayuga input methods. +Entries are as with rules in `quail-define-rules'.") + +(defconst iroquoian-cayuga-diacritic-alist + '(("'" ?\N{COMBINING ACUTE ACCENT}) + ("-" ?\N{COMBINING MACRON BELOW})) + "Alist of rules for combining diacritics in Cayuga input methods. +Entries are as with `iroquoian-cayuga-vowel-alist', which see.") + +(quail-define-package + "cayuga-postfix" "Cayuga" "CAY<" nil + "Cayuga (Gayogo=CC=B1ho:n=C7=ABhn=C3=A9ha:=CB=80) input method with postf= ix modifiers + +Modifiers: + +| Key | Translation | Description | +|-----+-------------+--------------------------| +| : | : | Vowel length | + +Stress diacritics: + +| Key | Description | Example | +|------+--------------+---------| +| \\=3D' | Acute accent | a' -> a=CC=81| + +Vowels: + +| Key | Translation | Description | +|-----+-------------+---------------------------------| +| e, | =C4=99 | Mid front nasal vowel | +| E, | =C4=98 | Mid front nasal vowel (capital) | +| o, | =C7=AB | Mid back nasal vowel | +| O, | =C7=AA | Mid back nasal vowel (capital) | + +a, e, i, o, and u are bound to a single key. + +Consonants: + +| Key | Translation | Description | +|-------+-------------+--------------------------| +| ;; | =CB=80 | Glottal stop | +| ;\\=3D' | \\=3D=E2=80=99 | Glottal stop (alternate) | + +d, g, h, j, k, n, r, s, t, w, y, and f are bound to a single key. + +Alternatively, an apostrophe can represent a glottal stop. To enter an +apostrophe directly after a vowel without adding an acute accent to that +vowel, first use \\\\[quail-select-current] to t= erminate the translation and then type the +apostrophe. + +Devoicing: + +| Key | Description | Example | +|-----+------------------------+----------| +| - | Combining macron below | a- -> a=CC=B1 | + +Note: Not all fonts can properly display a combining macron low on all +vowels. + +To enter a plain hyphen after a vowel, first use \\\\[quail-select-current] to terminate the +translation and then type the hyphen." + nil t nil nil nil nil nil nil nil nil t) + +(pcase-dolist (`(,key ,trans) + (append iroquoian-cayuga-modifier-alist + iroquoian-cayuga-consonant-alist + (quail-iroquoian-permute-rules + iroquoian-cayuga-vowel-alist + iroquoian-cayuga-diacritic-alist))) + (quail-defrule key trans)) + + +;;; Seneca + +;; +;; The orthography for the Seneca language is fairly stable with only +;; minor variations (for example, <=C5=A1> vs. for the voiceless +;; postalveolar fricative). +;; +;; Reference works for Seneca orthography: +;; +;; Phyllis E. Wms. Bardeau. 2002. Onondowa'ga:' Gawe:no': New Reference +;; Edition. Salamanca, NY: The Seneca Nation of Indians Allegany +;; Education Department. +;; +;; Wallace Chafe. 2015. A Grammar of the Seneca Language. Oakland, CA: +;; University of California Press. +;; + +(defconst iroquoian-seneca-modifier-alist nil + "Alist of rules for modifier letters in Seneca input methods. +Entries are as with rules in `quail-define-rules'.") + +(defconst iroquoian-seneca-vowel-alist + '(("a" ?a) + ("A" ?A) + ("e" ?e) + ("E" ?E) + ("i" ?i) + ("I" ?I) + ("o" ?o) + ("O" ?O) + ("a\"" ?=C3=A4) + ("A\"" ?=C3=84) + ("e\"" ?=C3=AB) + ("E\"" ?=C3=8B) + ("o\"" ?=C3=B6) + ("O\"" ?=C3=96) + ;; Rare (e.g., niw=C3=BA=E2=80=99u:h 'it is tiny' [Chafe 2015]): + ("u" ?u) + ("U" ?U)) + "Alist of rules for vowels in Seneca input methods. + +Each entry is of the form: + +(KEY TRANSLATION) + +KEY must be a string representing a key sequence to be translated. + +TRANSLATION must be a character representing the translation for KEY. + +This variable is meant to be used as the first argument to +`quail-iroquoian-permute-rules'.") + +(defconst iroquoian-seneca-consonant-alist + '((";;" ?\N{RIGHT SINGLE QUOTATION MARK}) + ("s/" ?=C5=A1) + ("S/" ?=C5=A0)) + "Alist of rules for consonant letters in Seneca input methods. +Entries are as with rules in `quail-define-rules'.") + +(defconst iroquoian-seneca-diacritic-alist + '(("'" ?\N{COMBINING ACUTE ACCENT}) + ("`" ?\N{COMBINING GRAVE ACCENT})) + "Alist of rules for combining diacritics in Seneca input methods. +Entries are as with `iroquoian-seneca-vowel-alist', which see.") + +(quail-define-package + "seneca-postfix" "Seneca" "SEE<" nil + "Seneca (On=C3=B6dow=C3=A1=E2=80=99ga:=E2=80=99) input method with postfi= x modifiers + +Modifiers: + +| Key | Translation | Description | +|-----+-------------+--------------------------| +| : | : | Vowel length | + +Stress diacritics: + +| Key | Description | Example | +|------+--------------+---------| +| \\=3D' | Acute accent | a' -> a=CC=81| +| \\=3D` | Grave accent | a` -> a=CC=80| + +Vowels: + +| Key | Translation | Description | +|-----+-------------+------------------------------------| +| e\" | =C3=AB | Mid front nasal vowel | +| E\" | =C3=8B | Mid front nasal vowel (capital) | +| o\" | =C3=B6 | Low-mid back nasal vowel | +| O\" | =C3=96 | Low-mid back nasal vowel (capital) | +| a\" | =C3=A4 | Low front vowel | +| A\" | =C3=84 | Low front vowel (capital) | + +a, e, i, o, and u are bound to a single key. + +Consonants: + +| Key | Translation | Description | +|-------+-------------+--------------------------------------------| +| ;; | \\=3D=E2=80=99 | Glottal stop = | +| s/ | =C5=A1 | Voiceless postalveolar fricative | +| S/ | =C5=A0 | Voiceless postalveolar fricative (capital) | + +d, g, h, j, k, n, s, t, w, y, and z are bound to a single key. + +b, m, and p are used rarely in ideophones and nicknames. They are also +each bound to a single key. + +Alternatively, an apostrophe can represent a glottal stop. To enter an +apostrophe directly after a vowel without adding an acute accent to that +vowel, first use \\\\[quail-select-current] to t= erminate the translation and then type the +apostrophe." + nil t nil nil nil nil nil nil nil nil t) + +(pcase-dolist (`(,key ,trans) + (append iroquoian-seneca-modifier-alist + iroquoian-seneca-consonant-alist + (quail-iroquoian-permute-rules + iroquoian-seneca-vowel-alist + iroquoian-seneca-diacritic-alist))) + (quail-defrule key trans)) + + +;;; Haudenosaunee (composite Northern Iroquoian) + +;; +;; This input method represents a composite input method for all of the +;; Northern Iroquoian languages included above. +;; +;; Although the "Iroquoian languages" is a standard term employed by +;; linguists and scholars, some believe the term "Iroquois" to be of +;; derogatory origin (see Dyck 2024). Hence, some prefer to refer to +;; what are collectively termed by linguists the "Five Nations Iroquois" +;; languages (Mohawk, Oneida, Onondaga, Cayuga, Seneca) by the autonym +;; "Haudenosaunee" (e.g., "Haudenosaunee languages"). +;; +;; However, it should be noted that the term "Haudenosaunee" is itself +;; an Anglicized form, probably from Seneca Hodi=CC=81n=C3=B6hs=C3=B6:ni:h= 'they make +;; houses' or Hodi=CC=81n=C3=B6h=C5=A1o:ni:h 'People of the Long House'. = Speakers of +;; Cayuga may prefer the word Hodin=C7=ABhs=C7=AB:nih, and speakers of Moh= awk may +;; prefer Rotinonhs=C3=B3n:ni or Rotinonhsi=CC=81=C3=B3n:ni. These terms = themselves +;; collectively relate to the confederacy of Indigenous nations that has +;; existed in what is now known as New York State in Northeastern North +;; America for many centuries, the founding of which is retold in oral +;; tradition in the story of The Peacemaker. +;; +;; It should also be noted that while Tuscarora and Wendat languages are +;; both sometimes included under the "Haudenosaunee languages" umbrella +;; (and by implication, those groups as a part of the Haudenosaunee +;; Confederacy), the exact extent of what defines "Haudenosaunee" has +;; occasionally caused controversy. +;; +;; Additionally, some prefer to collectively refer to the "Haudenosaunee +;; languages" using the terms Onkwehonwe=E2=80=99n=C3=A9ha (Mohawk), Ukweh= uwehn=C3=A9ha +;; (Oneida), =C7=AAgweh=C7=ABwekh=C3=A1=E2=80=99 (Onondaga), =C7=AAgweh=C7= =ABwe=CC=81hneha:=CB=80 (Cayuga), and +;; =C3=96gwe=CC=81=E2=80=99=C3=B6we:ka:=E2=80=99 (Seneca), which all mean = 'in the manner of the Original +;; People'. +;; +;; Bearing all of this in mind, I have opted to retain the term +;; "Iroquoian" in the name of this file (`iroquoian.el') (and hence, in +;; the symbol names in its namespace), while using "Haudenosaunee" in +;; the name of the input method that encompasses all of the languages so +;; far implemented: "haudenosaunee-postfix" --- this is the name shown +;; as a completion candidate after users enter M-x set-input-method RET. +;; Note that those searching for input methods for the individual +;; languages should have no problem finding them knowing only their +;; Anglicized names (e.g., Mohawk, Oneida, etc.), as these have been +;; retained in the names of the corresponding input methods. +;; +;; Above all, I hope that these decisions help those who wish to speak, +;; read, and write Onkwehonwe=E2=80=99n=C3=A9ha. +;; +;; Iorihow=C3=A1:nen ne ai=C3=B3nhnheke=E2=80=99 ne raotiw=C3=A9n:na=E2=80= =99! +;; It is important that the language continues to live! +;; + +(defconst iroquoian-haudenosaunee-modifier-alist + (seq-uniq (append iroquoian-mohawk-modifier-alist + iroquoian-oneida-modifier-alist + iroquoian-onondaga-modifier-alist + iroquoian-cayuga-modifier-alist + iroquoian-seneca-modifier-alist))) + +(defconst iroquoian-haudenosaunee-vowel-alist + (seq-uniq (append iroquoian-mohawk-vowel-alist + iroquoian-oneida-vowel-alist + iroquoian-onondaga-vowel-alist + iroquoian-cayuga-vowel-alist + iroquoian-seneca-vowel-alist))) + +(defconst iroquoian-haudenosaunee-consonant-alist + (seq-uniq (append + '((";;" ?\N{RIGHT SINGLE QUOTATION MARK}) + (";'" ?\N{MODIFIER LETTER GLOTTAL STOP}) + (";:" ?\N{LATIN LETTER GLOTTAL STOP})) + iroquoian-mohawk-consonant-alist + iroquoian-oneida-consonant-alist + iroquoian-onondaga-consonant-alist + iroquoian-cayuga-consonant-alist + iroquoian-seneca-consonant-alist) + (lambda (c1 c2) + (equal (car c1) (car c2))))) + +(defconst iroquoian-haudenosaunee-diacritic-alist + '(("'" ?\N{COMBINING ACUTE ACCENT}) + ("`" ?\N{COMBINING GRAVE ACCENT}) + ("-" ?\N{COMBINING MACRON BELOW}))) + +(defconst iroquoian-haudenosaunee-devoicing-alist + '(("_" ?\N{COMBINING LOW LINE}) + ("__" ?_))) + +(defconst iroquoian-haudenosaunee-nasal-alist + ;; Use ~ modifier instead of - (in contrast with `onondaga-postfix'), + ;; because the obtrusiveness of not being able to input literal + ;; hyphens after n outweighs benefits of being able to type a + ;; relatively obscure orthography easily. + '(("n~" ?=C3=B1) + ("N~" ?=C3=91))) + +(quail-define-package + "haudenosaunee-postfix" "Haudenosaunee" "HOD<" nil + "Composite input method for Haudenosaunee (Northern Iroquoian) languages + +This input method can be used to enter the following languages: + +- Mohawk (Kanien=E2=80=99k=C3=A9ha / Onkwehonwe=E2=80=99n=C3=A9ha) +- Oneida (On=CA=8Cyota:k=C3=A1: / Ukwehuwehn=C3=A9ha) +- Cayuga (Gayogo=CC=B1ho:n=C7=ABhn=C3=A9ha:=CB=80) +- Onondaga (On=C5=B3da=CA=94geg=C3=A1=CA=94) +- Seneca (On=C3=B6dow=C3=A1=E2=80=99ga:=E2=80=99) + +Modifiers: + +| Key | Translation | Description | +|-----+-------------+--------------------------| +| : | : | Vowel length | +| :: | =C2=B7 | Vowel length (alternate) | + +Stress diacritics: + +| Key | Description | Example | +|------+--------------+---------| +| \\=3D' | Acute accent | a' -> a=CC=81| +| \\=3D` | Grave accent | a` -> a=CC=80| + +Vowels: + +| Key | Translation | Description | +|----------------------------------------------------------------------| +| Mohawk | +| -------------------------------------------------------------------- | +| Single-key vowels: a e i o | +|----------------------------------------------------------------------| +| Oneida | +| -------------------------------------------------------------------- | +| e/ | =CA=8C | Mid central nasal vowel = | +| E/ | =C9=85 | Mid central nasal vowel (capital) = | +| Single-key vowels: a e i o u | +|----------------------------------------------------------------------| +| Onondaga | +| (Six Nations of the Grand River) | +| -------------------------------------------------------------------- | +| e, | =C4=99 | Mid front nasal vowel = | +| E, | =C4=98 | Mid front nasal vowel (capital) = | +| o, | =C7=AB | Back high nasal vowel = | +| O, | =C7=AA | Back high nasal vowel (capital) = | +| a\" | =C3=A4 | Low front rounded vowel = | +| A\" | =C3=84 | Low front rounded vowel (capital) = | +| -------------------------------------------------------------------- | +| (Onondaga Nation, New York) | +| -------------------------------------------------------------------- | +| en~ | e=C3=B1 | Mid front nasal vowel = | +| EN~ | E=C3=91 | Mid front nasal vowel (capital) = | +| on~ | o=C3=B1 | Back high nasal vowel = | +| ON~ | O=C3=91 | Back high nasal vowel (capital) = | +| a\" | =C3=A4 | Low front rounded vowel = | +| A\" | =C3=84 | Low front rounded vowel (capital) = | +| -------------------------------------------------------------------- | +| (Hanni Woodbury, 2003) | +| -------------------------------------------------------------------- | +| e, | =C4=99 | Mid front nasal vowel = | +| E, | =C4=98 | Mid front nasal vowel (capital) = | +| u, | =C5=B3 | Back high nasal vowel = | +| U, | =C5=B2 | Back high nasal vowel (capital) = | +| a/ | =C3=A6 | Low front rounded vowel = | +| A/ | =C3=86 | Low front rounded vowel (capital) = | +| -------------------------------------------------------------------- | +| (all) | +| -------------------------------------------------------------------- | +| Single-key vowels: a e i o | +|----------------------------------------------------------------------| +| Cayuga | +| -------------------------------------------------------------------- | +| e, | =C4=99 | Mid front nasal vowel = | +| E, | =C4=98 | Mid front nasal vowel (capital) = | +| o, | =C7=AB | Mid back nasal vowel = | +| O, | =C7=AA | Mid back nasal vowel (capital) = | +| Single-key vowels: a e i o u | +|----------------------------------------------------------------------| +| Seneca | +| -------------------------------------------------------------------- | +| e\" | =C3=AB | Mid front nasal vowel = | +| E\" | =C3=8B | Mid front nasal vowel (capital) = | +| o\" | =C3=B6 | Low-mid back nasal vowel = | +| O\" | =C3=96 | Low-mid back nasal vowel (capital) = | +| a\" | =C3=A4 | Low front vowel = | +| A\" | =C3=84 | Low front vowel (capital) = | +| Single-key vowels: a e i o u | + +Consonants: + +| Key | Translation | Description | +|----------------------------------------------------------------------| +| Mohawk | +| -------------------------------------------------------------------- | +| ;; | \\=3D=E2=80=99 | Glottal stop = | +| Single-key consonants: h k n r s t w y (b m p) | +|----------------------------------------------------------------------| +| Oneida | +| -------------------------------------------------------------------- | +| ;\\=3D' | =CB=80 | Glottal stop = | +| ;; | \\=3D=E2=80=99 | Glottal stop (alternate) = | +| Single-key consonants: h k l n s t w y | +|----------------------------------------------------------------------| +| Onondaga | +| -------------------------------------------------------------------- | +| ;; | \\=3D=E2=80=99 | Glottal stop = | +| ;: | =CA=94 | Glottal stop (alternate) = | +| Single-key consonants: c d g h j k n s t w y | +|----------------------------------------------------------------------| +| Cayuga | +| -------------------------------------------------------------------- | +| ;\\=3D' | =CB=80 | Glottal stop = | +| ;; | \\=3D=E2=80=99 | Glottal stop (alternate) = | +| Single-key consonants: d g h j k n r s t w y (f) | +|----------------------------------------------------------------------| +| Seneca | +| -------------------------------------------------------------------- | +| ;; | \\=3D=E2=80=99 | Glottal stop = | +| s/ | =C5=A1 | Voiceless postalveolar fricative = | +| S/ | =C5=A0 | Voiceless postalveolar fricative (capital) = | +| Single-key consonants: d g h j k n s t w y z (b m p) | + +Alternatively, an apostrophe can represent a glottal stop. To enter an +apostrophe directly after a vowel without adding an acute accent to that +vowel, first use \\\\[quail-select-current] to t= erminate the translation and then type the +apostrophe. + +Devoicing: + +| Key | Description | Examples | +|-----+------------------------+------------------------------| +| _ | Combining low line | a_ -> a=CC=B2, =C2=B7 -> =C2=B7=CC=B2 = | +| - | Combining macron below | a- -> a=CC=B1(after vowels only) | + +Note: Not all fonts can properly display a combining low line on all +letters and a combining macron below on all vowels. + +Underlining is commonly used in Oneida to indicate devoiced syllables on +pre-pausal forms (also called utterance-final forms). Alternatively, +markup or other methods can be used to create an underlining effect. + +To enter a plain underscore, type _ twice. + +Macron below is commonly used in Cayuga to indicate devoiced vowels. + +To enter a plain hyphen after a vowel, first use \\\\[quail-select-current] to terminate the +translation and then type the hyphen. After any other character, simply +type a hyphen (it will not be translated into a combining macron below)." + nil t nil nil nil nil nil nil nil nil t) + +(pcase-dolist (`(,key ,trans) + (append iroquoian-haudenosaunee-modifier-alist + iroquoian-haudenosaunee-consonant-alist + iroquoian-haudenosaunee-nasal-alist + (quail-iroquoian-permute-rules + iroquoian-haudenosaunee-vowel-alist + iroquoian-haudenosaunee-diacritic-alist) + iroquoian-haudenosaunee-devoicing-alist)) + (quail-defrule key trans)) + +(provide 'iroquoian) +;;; iroquoian.el ends here --=20 2.46.0 --=-=-= Content-Type: text/plain Thanks, Kierin --=-=-=--