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: Sat, 02 Nov 2024 23:45:34 -0400 Message-ID: <87o72xou8x.fsf@fernseed.me> References: <87froas6s7.fsf@fernseed.me> <86r07uyrs9.fsf@gnu.org> <871pztq91x.fsf@fernseed.me> 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="13954"; 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 04:47:13 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 1t7Ra4-0003Py-UI for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 03 Nov 2024 04:47:13 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t7RZy-0000jg-Le; Sat, 02 Nov 2024 23:47:06 -0400 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 1t7RZv-0000jV-JE for bug-gnu-emacs@gnu.org; Sat, 02 Nov 2024 23:47:04 -0400 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 1t7RZv-0000db-A1 for bug-gnu-emacs@gnu.org; Sat, 02 Nov 2024 23:47:03 -0400 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=XyDCm5+w38dbc7jD6iRLxNVuWqvkZ/RIvfg19N8x1+I=; b=IygXN5vwOTQWq2HBRgsLCyM98Ry+1D7AaDfUviT3W+zrQSObE5VRWvzMlJ/JxCjuvzTX4q0izhE21g94iQWRJ6rnWtAFtUf0pB4B3Shm1Jmjh9kTCmAAXZWSrkJtVOhxUyQgj7DqkligVCgPZqebWJ0d60YO3V4BNCP5nfCSHOt9MlS+6GZXGkmpRaigvVVdGQaEjQxHf9M2F8jJexBrzIP3aeDCHEZMZ/4GunGugHeRhvDEv5XQLaDutIPhYZsdUAuFECNc1+1NIcBx43sNBNC2u0U5jbXcXS5UdHopTdghNoGmwhPWilMMRc6b3onFV0WS5bqF6sE3F31QzQoYSg==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t7RZu-0004oY-3e for bug-gnu-emacs@gnu.org; Sat, 02 Nov 2024 23:47:02 -0400 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 03:47: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.173060558318481 (code B ref 74170); Sun, 03 Nov 2024 03:47:02 +0000 Original-Received: (at 74170) by debbugs.gnu.org; 3 Nov 2024 03:46:23 +0000 Original-Received: from localhost ([127.0.0.1]:57497 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7RZG-0004o1-0x for submit@debbugs.gnu.org; Sat, 02 Nov 2024 23:46:23 -0400 Original-Received: from mout-p-201.mailbox.org ([80.241.56.171]:51438) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7RZC-0004nr-FD for 74170@debbugs.gnu.org; Sat, 02 Nov 2024 23:46:20 -0400 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-201.mailbox.org (Postfix) with ESMTPS id 4Xh0qm62Tdz9sbl; Sun, 3 Nov 2024 04:45:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fernseed.me; s=MBO0001; t=1730605540; 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=z8ZLYdgyKtInV/xWSHH9AXxbPtyD+CqSk9ZZ95Evkss=; b=FxW+4EjOJw3o1LMKQrExL+uYRhzL5wf2fNNhthHtFNlms8M+JX4rBn3kuidsDdKoE8a8FM nUUrsDzp6FiN+yn1tTCiaQ4Fg9gdnM2VTOkm44kxZe0rgXlLkKu3FudMLOsg+dnyzZaGRL glrmo4siRyDubEsPSIlofsnAlf/mlhv7/HqCAqJwOyNajZOYJ1qOXlw79fMiEJCIBPzJZt lwN5y0ounIlP+gSV5XSgVQRdlscOsjWtcfOSYMFTc2qx6F5HKGigkt64hsHitKaT8HWJDJ u09ufGSCp1NIrCPc2+5Igw9cQC4tW10/UEXBPesNzJeGVEuRoONsm9ge8p/4hQ== In-Reply-To: <871pztq91x.fsf@fernseed.me> (Kierin Bell's message of "Sat, 02 Nov 2024 23:40:26 -0400") X-Rspamd-Queue-Id: 4Xh0qm62Tdz9sbl 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:294781 Archived-At: --=-=-= Content-Type: text/plain Apologies, the patch likely did not attach properly in the previous email. Here it is again. --=-=-= 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 6125fcedf4dac3e1c23dfe28e1cef19d9fef0e94 Mon Sep 17 00:00:00 2001 From: Kierin Bell Date: Fri, 1 Nov 2024 21:56:36 -0400 Subject: [PATCH] Add input methods for Northern Iroquoian languages --- etc/NEWS | 11 + lisp/leim/quail/iroquoian.el | 959 +++++++++++++++++++++++++++++++++++ 2 files changed, 970 insertions(+) create mode 100644 lisp/leim/quail/iroquoian.el diff --git a/etc/NEWS b/etc/NEWS index 22f11037453..9b8908e82ef 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -815,6 +815,17 @@ DirectWrite rendering parameters. To show color Emoji in Emacs, customize the default fontset to use a color Emoji font installed on your system for the 'emoji' script. =20 +--- +** New input methods for Northern Iroquoian languages. +Input methods are now implemented for all Five Nations Iroquois +languages in the Northern Iroquoian language family: 'mohawk-postfix' +(Mohawk [Kanien=E2=80=99k=C3=A9ha / Onkwehonwe=E2=80=99n=C3=A9ha]), 'oneid= a-postfix' (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 +`seneca-postfix' [On=C3=B6dow=C3=A1=E2=80=99ga:=E2=80=99]). Additionally,= there is a +general-purpose 'iroquoian-postfix' input method to facilitate writing +in the orthographies of the five languages simultaneously. + ---------------------------------------------------------------------- This file is part of GNU Emacs. diff --git a/lisp/leim/quail/iroquoian.el b/lisp/leim/quail/iroquoian.el new file mode 100644 index 00000000000..e205f22f759 --- /dev/null +++ b/lisp/leim/quail/iroquoian.el @@ -0,0 +1,959 @@ +;;; 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) +;; - 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) + +;; 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 + '((":" ?:))) + +(defconst iroquoian-mohawk-vowel-alist + '(("a" ?a) + ("A" ?A) + ("e" ?e) + ("E" ?E) + ("i" ?i) + ("I" ?I) + ("o" ?o) + ("O" ?O))) + +(defconst iroquoian-mohawk-consonant-alist + '((";;" ?\N{RIGHT SINGLE QUOTATION MARK}) + ("h" ?h) + ("H" ?H) + ("k" ?k) + ("K" ?K) + ("m" ?m) + ("M" ?M) + ("n" ?n) + ("N" ?N) + ("r" ?r) + ("R" ?R) + ("s" ?s) + ("S" ?S) + ("t" ?t) + ("T" ?T) + ("w" ?w) + ("W" ?W) + ("Y" ?Y) + ("y" ?y) + ;; Rare (ideophones and loan words): + ("b" ?b) + ("B" ?B) + ("m" ?m) + ("M" ?M))) + +(defconst iroquoian-mohawk-diacritic-alist + '(("'" ?\N{COMBINING ACUTE ACCENT}) + ("`" ?\N{COMBINING GRAVE ACCENT}))) + +(quail-define-package + "mohawk-postfix" "Mohawk" "MOH<" nil + "Mohawk 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}) + ;; Alternative vowel length modifier: + (":" ?:))) + +(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))) + +(defconst iroquoian-oneida-consonant-alist + '((";;" ?\N{MODIFIER LETTER GLOTTAL STOP}) + (";'" ?\N{RIGHT SINGLE QUOTATION MARK}) + ("h" ?h) + ("H" ?H) + ("k" ?k) + ("K" ?K) + ("l" ?l) + ("L" ?L) + ("n" ?n) + ("N" ?N) + ("s" ?s) + ("S" ?S) + ("t" ?t) + ("T" ?T) + ("w" ?w) + ("W" ?W) + ("y" ?y) + ("Y" ?Y))) + +(defconst iroquoian-oneida-diacritic-alist + '(("'" ?\N{COMBINING ACUTE ACCENT}))) + +(defconst iroquoian-oneida-devoicing-alist + '(("_" ?\N{COMBINING LOW LINE}) + ("__" ?_))) + +(quail-define-package + "oneida-postfix" "Oneida" "ONE<" nil + "Oneida 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 + '((":" ?:) + ;; Alternative vowel length modifier: + ("::" ?\N{MIDDLE DOT}))) + +(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))) + +(defconst iroquoian-onondaga-consonant-alist + '((";;" ?\N{RIGHT SINGLE QUOTATION MARK}) + (";:" ?\N{LATIN LETTER GLOTTAL STOP}) + ("c" ?c) + ("C" ?C) + ("d" ?d) + ("D" ?D) + ("g" ?g) + ("G" ?G) + ("h" ?h) + ("H" ?H) + ("j" ?j) + ("J" ?J) + ("k" ?k) + ("K" ?K) + ("n" ?n) + ("N" ?N) + ("s" ?s) + ("S" ?S) + ("t" ?t) + ("T" ?T) + ("w" ?w) + ("W" ?W) + ("y" ?y) + ("Y" ?Y))) + +(defconst iroquoian-onondaga-nasal-alist + '(("n-" ?=C3=B1) + ("N-" ?=C3=91))) + +(defconst iroquoian-onondaga-diacritic-alist + '(("'" ?\N{COMBINING ACUTE ACCENT}))) + +(quail-define-package + "onondaga-postfix" "Onondaga" "ONO<" nil + "Onondaga input method with postfix modifiers + +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 + '((":" ?:))) + +(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))) + +(defconst iroquoian-cayuga-consonant-alist + '((";;" ?\N{MODIFIER LETTER GLOTTAL STOP}) + (";'" ?\N{RIGHT SINGLE QUOTATION MARK}) + ("d" ?d) + ("D" ?D) + ("g" ?g) + ("G" ?G) + ("h" ?h) + ("H" ?H) + ("j" ?j) + ("J" ?J) + ("k" ?k) + ("K" ?K) + ("n" ?n) + ("N" ?N) + ("r" ?r) + ("R" ?R) + ("s" ?s) + ("S" ?S) + ("t" ?t) + ("T" ?T) + ("w" ?w) + ("W" ?W) + ("y" ?y) + ("Y" ?Y) + ;; Rare (examples?) + ("f" ?f) + ("F" ?F))) + +(defconst iroquoian-cayuga-diacritic-alist + '(("'" ?\N{COMBINING ACUTE ACCENT}) + ("-" ?\N{COMBINING MACRON BELOW}))) + +(quail-define-package + "cayuga-postfix" "Cayuga" "CAY<" nil + "Cayuga input method with postfix 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 + '((":" ?:))) + +(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'): + ("u" ?u) + ("U" ?U))) + +(defconst iroquoian-seneca-consonant-alist + `((";;" ?\N{RIGHT SINGLE QUOTATION MARK}) + ("d" ?d) + ("D" ?D) + ("g" ?g) + ("G" ?G) + ("h" ?h) + ("H" ?H) + ("j" ?j) + ("J" ?J) + ("k" ?k) + ("K" ?K) + ("n" ?n) + ("N" ?N) + ("s" ?s) + ("S" ?S) + ("s/" ?=C5=A1) + ("S/" ?=C5=A0) + ("t" ?t) + ("T" ?T) + ("w" ?w) + ("W" ?W) + ("y" ?y) + ("Y" ?Y) + ("z" ?z) + ("Z" ?Z) + ;; Rare (e.g., ideophones: ba=E2=80=99s, plo=E2=80=99ts; nicknames: G= =C3=B3=E2=80=99bit, Dagam, + ;; Jita:m): + ("b" ?b) + ("m" ?m) + ("p" ?p))) + +(defconst iroquoian-seneca-diacritic-alist + '(("'" ?\N{COMBINING ACUTE ACCENT}) + ("`" ?\N{COMBINING GRAVE ACCENT}))) + +(quail-define-package + "seneca-postfix" "Seneca" "SEE<" nil + "Seneca 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: + +| 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)) + + +;;; Composite Iroquoian + +;; +;; This input method represents a composite input method for all of the +;; Northern Iroquoian languages included above. +;; + +(defconst iroquoian-composite-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-composite-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-composite-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-composite-diacritic-alist + '(("'" ?\N{COMBINING ACUTE ACCENT}) + ("`" ?\N{COMBINING GRAVE ACCENT}) + ("-" ?\N{COMBINING MACRON BELOW}))) + +(defconst iroquoian-composite-devoicing-alist + '(("_" ?\N{COMBINING LOW LINE}) + ("__" ?_))) + +(defconst iroquoian-composite-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 + "iroquoian-postfix" "Iroquoian" "IRO<" nil + "Composite input method for Northern Iroquoian languages + +This input method can be used to enter the following Northern Iroquoian +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-composite-modifier-alist + iroquoian-composite-consonant-alist + iroquoian-composite-nasal-alist + (quail-iroquoian-permute-rules + iroquoian-composite-vowel-alist + iroquoian-composite-diacritic-alist) + iroquoian-composite-devoicing-alist)) + (quail-defrule key trans)) + +(provide 'iroquoian) +;;; iroquoian.el ends here --=20 2.46.0 --=-=-= Content-Type: text/plain Thanks, Kierin --=-=-=--