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. +--- +** 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’kéha / Onkwehonwe’néha]), 'oneida-postfix' (Oneida +[Onʌyota:ká: / Ukwehuwehnéha]), 'cayuga-postfix' (Cayuga +[Gayogo̱ho:nǫhnéha:ˀ]), 'onondaga-postfix (Onondaga [[Onųdaʔgegáʔ]), and +`seneca-postfix' [Onödowá’ga:’]). 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’kéha / Onkwehonwe’néha) +;; - Oneida (Onʌyota:ká: / Ukwehuwehnéha) +;; - Cayuga (Gayogo̱ho:nǫhnéha:ˀ) +;; - Onondaga (Onųdaʔgegáʔ) +;; - Seneca (Onödowá’ga:’) + +;; Input methods are not yet implemented for the remaining Northern +;; Iroquoian languages, including: + +;; - Tuscarora (Skarù:ręʔ) +;; - 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à:ke, Kanehsatà:ke, Wáhta) and Central (Ahkwesahsne) dialects +;; of Mohawk: +;; +;; Lazore, Dorothy Karihwénhawe. 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é: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 | +|------+--------------+---------| +| \\=' | Acute accent | a' -> á | +| \\=` | Grave accent | a` -> à | + +Vowels: + +a, e, i, and o are bound to a single key. + +Consonants: + +| Key | Translation | Description | +|-----+-------------+--------------| +| ;; | \\=’ | 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 terminate 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/" ?ʌ) + ("E/" ?Ʌ))) + +(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 | +|-----+-------------+--------------------------| +| :: | · | Vowel length | +| : | : | Vowel length (alternate) | + +Stress diacritics: + +| Key | Description | Example | +|------+--------------+---------| +| \\=' | Acute accent | a' -> á| + +Vowels: + +| Key | Translation | Description | +|-----+-------------+-----------------------------------| +| e/ | ʌ | Mid central nasal vowel | +| E/ | Ʌ | Mid central nasal vowel (capital) | + +a, e, i, o, and u are bound to a single key. + +Consonants: + +| Key | Translation | Description | +|-----+-------------+--------------------------| +| ;; | ˀ | Glottal stop | +| ;\\=' | \\=’ | 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 terminate the translation and then type the +apostrophe. + +Devoicing: + +| Key | Description | Example | +|-----+--------------------+----------| +| _ | Combining low line | a_ -> a̲ | + +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 (ęand ǫat Six Nations of the Grand +;; River, eñ and oñ at Onondaga in New York, and ęand ųfollowing +;; Woodbury's dictionary), the low front rounded vowel (äat Six Nations +;; and Onondaga Nation and æ following Woodbury), vowel length (: +;; [colon] after a vowel in community orthographies and · [middle dot] +;; following Woodbury), and glottal stops (’ [right single quotation +;; mark] in community orthographies and ʔ [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," ?ę) + ("E," ?Ę) + ("o," ?ǫ) + ("O," ?Ǫ) + ("a\"" ?ä) + ("A\"" ?Ä) + ;; From Woodbury (2003) orthography: + ("a/" ?æ) + ("A/" ?Æ) + ("u," ?ų) + ("U," ?Ų))) + +(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-" ?ñ) + ("N-" ?Ñ))) + +(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 | +| :: | · | Vowel length (alternate) | + +Stress diacritics: + +| Key | Description | Example | +|------+--------------+---------| +| \\=' | Acute accent | a' -> á| + +Vowels: + +| Key | Translation | Description | +|-----+-------------+---------------------------------------| +| Six Nations of the Grand River orthography | +|-----------------------------------------------------------| +| e, | ę | Mid front nasal vowel | +| E, | Ę | Mid front nasal vowel (capital) | +| o, | ǫ | Back high nasal vowel | +| O, | Ǫ | Back high nasal vowel (capital) | +| a\" | ä | Low front rounded vowel | +| A\" | Ä | Low front rounded vowel (capital) | +|-----------------------------------------------------------| +| Onondaga Nation, New York orthography | +|-----------------------------------------------------------| +| en- | eñ | Mid front nasal vowel | +| EN- | EÑ | Mid front nasal vowel (capital) | +| on- | oñ | Back high nasal vowel | +| ON- | OÑ | Back high nasal vowel (capital) | +| a\" | ä | Low front rounded vowel | +| A\" | Ä | Low front rounded vowel (capital) | +|-----------------------------------------------------------| +| Dictionary orthography (Hanni Woodbury, 2003) | +|-----------------------------------------------------------| +| e, | ę | Mid front nasal vowel | +| E, | Ę | Mid front nasal vowel (capital) | +| u, | ų | Back high nasal vowel | +| U, | Ų | Back high nasal vowel (capital) | +| a/ | æ | Low front rounded vowel | +| A/ | Æ | Low front rounded vowel (capital) | + +a, e, i, and o are bound to a single key. + +Consonants: + +| Key | Translation | Description | +|-----+-------------+--------------------------| +| ;; | \\=’ | Glottal stop | +| ;: | ʔ | 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 terminate 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 <ˀ> [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̱hó:nǫˀ (Cayuga) (Estudios de +;; Lingüística 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," ?ę) + ("E," ?Ę) + ("o," ?ǫ) + ("O," ?Ǫ))) + +(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 | +|------+--------------+---------| +| \\=' | Acute accent | a' -> á| + +Vowels: + +| Key | Translation | Description | +|-----+-------------+---------------------------------| +| e, | ę | Mid front nasal vowel | +| E, | Ę | Mid front nasal vowel (capital) | +| o, | ǫ | Mid back nasal vowel | +| O, | Ǫ | Mid back nasal vowel (capital) | + +a, e, i, o, and u are bound to a single key. + +Consonants: + +| Key | Translation | Description | +|-------+-------------+--------------------------| +| ;; | ˀ | Glottal stop | +| ;\\=' | \\=’ | 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 terminate the translation and then type the +apostrophe. + +Devoicing: + +| Key | Description | Example | +|-----+------------------------+----------| +| - | Combining macron below | a- -> a̱ | + +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, <š> 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\"" ?ä) + ("A\"" ?Ä) + ("e\"" ?ë) + ("E\"" ?Ë) + ("o\"" ?ö) + ("O\"" ?Ö) + ;; Rare (e.g., niwú’u: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/" ?š) + ("S/" ?Š) + ("t" ?t) + ("T" ?T) + ("w" ?w) + ("W" ?W) + ("y" ?y) + ("Y" ?Y) + ("z" ?z) + ("Z" ?Z) + ;; Rare (e.g., ideophones: ba’s, plo’ts; nicknames: Gó’bit, 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 | +|------+--------------+---------| +| \\=' | Acute accent | a' -> á| +| \\=` | Grave accent | a` -> à| + +Vowels: + +| Key | Translation | Description | +|-----+-------------+------------------------------------| +| e\" | ë | Mid front nasal vowel | +| E\" | Ë | Mid front nasal vowel (capital) | +| o\" | ö | Low-mid back nasal vowel | +| O\" | Ö | Low-mid back nasal vowel (capital) | +| a\" | ä | Low front vowel | +| A\" | Ä | Low front vowel (capital) | + +a, e, i, o, and u are bound to a single key. + +Consonants: + +| Key | Translation | Description | +|-------+-------------+--------------------------------------------| +| ;; | \\=’ | Glottal stop | +| s/ | š | Voiceless postalveolar fricative | +| S/ | Š | 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 terminate 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~" ?ñ) + ("N~" ?Ñ))) + +(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’kéha / Onkwehonwe’néha) +- Oneida (Onʌyota:ká: / Ukwehuwehnéha) +- Cayuga (Gayogo̱ho:nǫhnéha:ˀ) +- Onondaga (Onųdaʔgegáʔ) +- Seneca (Onödowá’ga:’) + +Modifiers: + +| Key | Translation | Description | +|-----+-------------+--------------------------| +| : | : | Vowel length | +| :: | · | Vowel length (alternate) | + +Stress diacritics: + +| Key | Description | Example | +|------+--------------+---------| +| \\=' | Acute accent | a' -> á| +| \\=` | Grave accent | a` -> à| + +Vowels: + +| Key | Translation | Description | +|----------------------------------------------------------------------| +| Mohawk | +| -------------------------------------------------------------------- | +| Single-key vowels: a e i o | +|----------------------------------------------------------------------| +| Oneida | +| -------------------------------------------------------------------- | +| e/ | ʌ | Mid central nasal vowel | +| E/ | Ʌ | Mid central nasal vowel (capital) | +| Single-key vowels: a e i o u | +|----------------------------------------------------------------------| +| Onondaga | +| (Six Nations of the Grand River) | +| -------------------------------------------------------------------- | +| e, | ę | Mid front nasal vowel | +| E, | Ę | Mid front nasal vowel (capital) | +| o, | ǫ | Back high nasal vowel | +| O, | Ǫ | Back high nasal vowel (capital) | +| a\" | ä | Low front rounded vowel | +| A\" | Ä | Low front rounded vowel (capital) | +| -------------------------------------------------------------------- | +| (Onondaga Nation, New York) | +| -------------------------------------------------------------------- | +| en~ | eñ | Mid front nasal vowel | +| EN~ | EÑ | Mid front nasal vowel (capital) | +| on~ | oñ | Back high nasal vowel | +| ON~ | OÑ | Back high nasal vowel (capital) | +| a\" | ä | Low front rounded vowel | +| A\" | Ä | Low front rounded vowel (capital) | +| -------------------------------------------------------------------- | +| (Hanni Woodbury, 2003) | +| -------------------------------------------------------------------- | +| e, | ę | Mid front nasal vowel | +| E, | Ę | Mid front nasal vowel (capital) | +| u, | ų | Back high nasal vowel | +| U, | Ų | Back high nasal vowel (capital) | +| a/ | æ | Low front rounded vowel | +| A/ | Æ | Low front rounded vowel (capital) | +| -------------------------------------------------------------------- | +| (all) | +| -------------------------------------------------------------------- | +| Single-key vowels: a e i o | +|----------------------------------------------------------------------| +| Cayuga | +| -------------------------------------------------------------------- | +| e, | ę | Mid front nasal vowel | +| E, | Ę | Mid front nasal vowel (capital) | +| o, | ǫ | Mid back nasal vowel | +| O, | Ǫ | Mid back nasal vowel (capital) | +| Single-key vowels: a e i o u | +|----------------------------------------------------------------------| +| Seneca | +| -------------------------------------------------------------------- | +| e\" | ë | Mid front nasal vowel | +| E\" | Ë | Mid front nasal vowel (capital) | +| o\" | ö | Low-mid back nasal vowel | +| O\" | Ö | Low-mid back nasal vowel (capital) | +| a\" | ä | Low front vowel | +| A\" | Ä | Low front vowel (capital) | +| Single-key vowels: a e i o u | + +Consonants: + +| Key | Translation | Description | +|----------------------------------------------------------------------| +| Mohawk | +| -------------------------------------------------------------------- | +| ;; | \\=’ | Glottal stop | +| Single-key consonants: h k n r s t w y (b m p) | +|----------------------------------------------------------------------| +| Oneida | +| -------------------------------------------------------------------- | +| ;\\=' | ˀ | Glottal stop | +| ;; | \\=’ | Glottal stop (alternate) | +| Single-key consonants: h k l n s t w y | +|----------------------------------------------------------------------| +| Onondaga | +| -------------------------------------------------------------------- | +| ;; | \\=’ | Glottal stop | +| ;: | ʔ | Glottal stop (alternate) | +| Single-key consonants: c d g h j k n s t w y | +|----------------------------------------------------------------------| +| Cayuga | +| -------------------------------------------------------------------- | +| ;\\=' | ˀ | Glottal stop | +| ;; | \\=’ | Glottal stop (alternate) | +| Single-key consonants: d g h j k n r s t w y (f) | +|----------------------------------------------------------------------| +| Seneca | +| -------------------------------------------------------------------- | +| ;; | \\=’ | Glottal stop | +| s/ | š | Voiceless postalveolar fricative | +| S/ | Š | 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 terminate the translation and then type the +apostrophe. + +Devoicing: + +| Key | Description | Examples | +|-----+------------------------+------------------------------| +| _ | Combining low line | a_ -> a̲, · -> ·̲ | +| - | Combining macron below | a- -> a̱(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 -- 2.46.0