From 74c4f49f95a6a4df4012587011068878bff7fb8a Mon Sep 17 00:00:00 2001 From: Kierin Bell Date: Sun, 3 Nov 2024 15:19:09 -0500 Subject: [PATCH] New input methods for Northern Iroquoian languages * lisp/leim/quail/iroquoian.el: New file. (Bug#74170) * etc/NEWS: Announce the new input methods. (cherry picked from commit 04b055797a4b51392658548e4847cb7513354c67) --- etc/NEWS | 11 + lisp/leim/quail/iroquoian.el | 1051 ++++++++++++++++++++++++++++++++++ 2 files changed, 1062 insertions(+) create mode 100644 lisp/leim/quail/iroquoian.el diff --git a/etc/NEWS b/etc/NEWS index c28b8828b2c..44b73a6a984 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -123,6 +123,17 @@ characters. *** New language-environment and input method for Tifinagh. The Tifinagh script is used to write the Berber languages. +--- +*** 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’kéha / Onkwehonwehné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 +'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..ca06e61bfa3 --- /dev/null +++ b/lisp/leim/quail/iroquoian.el @@ -0,0 +1,1051 @@ +;;; 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 / Onkwehonwehnéha) +;; - Oneida (Onʌyota:ká: / Ukwehuwehnéha) +;; - Onondaga (Onųdaʔgegáʔ) +;; - Cayuga (Gayogo̱ho:nǫhnéha:ˀ) +;; - Seneca (Onödowá’ga:’) + +;; 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ù:ręʔ) +;; - Wendat (Huron) / Wyandot + +;;; Code: + +(require 'quail) +(require 'seq) +(require 'pcase) + + +;;; 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 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`" ?Ò) + + ("a''" ["a'"]) + ("a``" ["a`"]) + ("A''" ["A'"]) + ("A``" ["A`"]) + ("e''" ["e'"]) + ("e``" ["e`"]) + ("E''" ["E'"]) + ("E``" ["E`"]) + ("i''" ["i'"]) + ("i``" ["i`"]) + ("I''" ["I'"]) + ("I``" ["I`"]) + ("o''" ["o'"]) + ("o``" ["o`"]) + ("O''" ["O'"]) + ("O``" ["O`"])) + "Alist of rules for vowel letters in Mohawk input methods. +Entries are as with rules in `quail-define-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'.") + +(quail-define-package + "mohawk-postfix" "Mohawk" "MOH<" nil + "Mohawk (Kanien’kéha) input method with postfix modifiers + +Stress diacritics: + +| Key | Description | Example | +|------+--------------+---------| +| \\=' | Acute accent | a' -> á | +| \\=` | Grave accent | a` -> à | + +Doubling any of these postfixes separates the letter and the postfix. + +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. + +All Haudenosaunee languages, including Mohawk, can be input +simultaneously using the input method `haudenosaunee-postfix'." + nil t nil nil nil nil nil nil nil nil t) + +(pcase-dolist (`(,key ,trans) + (append iroquoian-mohawk-modifier-alist + iroquoian-mohawk-consonant-alist + iroquoian-mohawk-vowel-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'" ?Á) + ("e'" ?é) + ("E'" ?É) + ("i'" ?í) + ("I'" ?Í) + ("o'" ?ó) + ("O'" ?Ó) + ("u'" ?ú) + ("U'" ?Ú) + ("e/" ?ʌ) + ("e/'" ["ʌ́"]) + ("E/" ?Ʌ) + ("E/'" ["Ʌ́"]) + + ("a''" ["a'"]) + ("A''" ["A'"]) + ("e''" ["e'"]) + ("E''" ["E'"]) + ("i''" ["i'"]) + ("I''" ["I'"]) + ("o''" ["o'"]) + ("O''" ["O'"]) + ("u''" ["u'"]) + ("U''" ["U'"]) + ("e//" ["e/"]) + ("e/''" ["ʌ'"]) + ("E//" ["E/"]) + ("E/''" ["Ʌ'"])) + "Alist of rules for vowel letters in Oneida input methods. +Entries are as with rules in `quail-define-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-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ʌyota:ká:) input method with postfix modifiers + +Modifiers: + +| Key | Translation | Description | +|-----+-------------+--------------------------| +| :: | · | Vowel length | + +Stress diacritics: + +| Key | Description | Example | +|------+--------------+---------| +| \\=' | Acute accent | a' -> á | + +Doubling the postfix separates the letter and the postfix. + +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. + +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 the underscore twice. + +All Haudenosaunee languages, including Oneida, can be input +simultaneously using the input method `haudenosaunee-postfix'." + nil t nil nil nil nil nil nil nil nil t) + +(pcase-dolist (`(,key ,trans) + (append iroquoian-oneida-modifier-alist + iroquoian-oneida-consonant-alist + iroquoian-oneida-vowel-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 + '(("::" ?\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'" ?Á) + ("e'" ?é) + ("E'" ?É) + ("i'" ?í) + ("I'" ?Í) + ("o'" ?ó) + ("O'" ?Ó) + ("e," ?ę) + ("e,'" ["ę́"]) + ("E," ?Ę) + ("E,'" ["Ę́"]) + ("o," ?ǫ) + ("o,'" ["ǫ́"]) + ("O," ?Ǫ) + ("O,'" ["Ǫ́"]) + ("a\"" ?ä) + ("a\"'" ["ä́"]) + ("A\"" ?Ä) + ("A\"'" ["Ä́"]) + ;; From Woodbury (2003) orthography: + ("a/" ?æ) + ("a/'" ["ǽ"]) + ("A/" ?Æ) + ("A/'" ["Ǽ"]) + ("u," ?ų) + ("u,'" ["ų́"]) + ("U," ?Ų) + ("U,'" ["Ų́"]) + + ("a''" ["a'"]) + ("A''" ["A'"]) + ("e''" ["e'"]) + ("E''" ["E'"]) + ("i''" ["i'"]) + ("I''" ["I'"]) + ("o''" ["o'"]) + ("O''" ["O'"]) + ("e,," ["e,"]) + ("e,''" ["ę'"]) + ("E,," ["E,"]) + ("E,''" ["Ę'"]) + ("o,," ["o,"]) + ("o,''" ["ǫ'"]) + ("O,," ["O,"]) + ("O,''" ["Ǫ'"]) + ("a\"\"" ["a\""]) + ("a\"''" ["ä'"]) + ("A\"\"" ["A\""]) + ("A\"''" ["Ä'"]) + ("a//" ["a/"]) + ("a/''" ["æ'"]) + ("A//" ["A/"]) + ("A/''" ["Æ'"]) + ("u,," ["u,"]) + ("u,''" ["ų'"]) + ("U,," ["U,"]) + ("U,''" ["Ų'"])) + "Alist of rules for vowel letters in Onondaga input methods. +Entries are as with rules in `quail-define-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-" ?ñ) + ("n--" ["n-"]) + ("N-" ?Ñ) + ("N--" ["N-"])) + "Alist of rules for nasal modifier letters in Onondaga input methods. +Entries are as with rules in `quail-define-rules'.") + +(quail-define-package + "onondaga-postfix" "Onondaga" "ONO<" nil + "Onondaga (Onųdaʔgegáʔ) input method with postfix modifiers + +Modifiers: + +| Key | Translation | Description | +|-----+-------------+--------------------------| +| :: | · | Vowel length (alternate) | + +Stress diacritics: + +| Key | Description | Example | +|------+--------------+---------| +| \\=' | Acute accent | a' -> á | + +Doubling the postfix separates the letter and the postfix. + +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. + +All Haudenosaunee languages, including Onondaga, can be input +simultaneously using the input method `haudenosaunee-postfix'." + 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 + iroquoian-onondaga-vowel-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 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'" ?Á) + ("A-" ["A̱"]) + ("e'" ?é) + ("e-" ["e̱"]) + ("E'" ?É) + ("E-" ["E̱"]) + ("i'" ?í) + ("i-" ["i̱"]) + ("I'" ?Í) + ("I-" ["I̱"]) + ("o'" ?ó) + ("o-" ["o̱"]) + ("O'" ?Ó) + ("O-" ["O̱"]) + ("u'" ?ú) + ("u-" ["u̱"]) + ("U'" ?Ú) + ("U-" ["U̱"]) + ("e," ?ę) + ("e,'" ["ę́"]) + ("e,-" ["ę̱"]) + ("E," ?Ę) + ("E,'" ["Ę́"]) + ("E,-" ["Ę̱"]) + ("o," ?ǫ) + ("o,'" ["ǫ́"]) + ("o,-" ["ǫ̱"]) + ("O," ?Ǫ) + ("O,'" ["Ǫ́"]) + ("O,-" ["Ǫ̱"]) + + ("a''" ["a'"]) + ("a--" ["a-"]) + ("A''" ["A'"]) + ("A--" ["A-"]) + ("e''" ["e'"]) + ("e--" ["e-"]) + ("E''" ["E'"]) + ("E--" ["E-"]) + ("i''" ["i'"]) + ("i--" ["i-"]) + ("I''" ["I'"]) + ("I--" ["I-"]) + ("o''" ["o'"]) + ("o--" ["o-"]) + ("O''" ["O'"]) + ("O--" ["O-"]) + ("u''" ["u'"]) + ("u--" ["u-"]) + ("U''" ["U'"]) + ("U--" ["U-"]) + ("e,," ["e,"]) + ("e,''" ["ę'"]) + ("e,--" ["ę-"]) + ("E,," ["E,"]) + ("E,''" ["Ę'"]) + ("E,--" ["Ę-"]) + ("o,," ["o,"]) + ("o,''" ["ǫ'"]) + ("o,--" ["ǫ-"]) + ("O,," ["O,"]) + ("O,''" ["Ǫ'"]) + ("O,--" ["Ǫ-"])) + "Alist of rules for vowel letters in Cayuga input methods. +Entries are as with rules in `quail-define-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'.") + +(quail-define-package + "cayuga-postfix" "Cayuga" "CAY<" nil + "Cayuga (Gayogo̱ho:nǫhnéha:ˀ) input method with postfix modifiers + +Stress diacritics: + +| Key | Description | Example | +|------+--------------+---------| +| \\=' | Acute accent | a' -> á | + +Doubling the postfix separates the letter and the postfix. + +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. + +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, simply type the hyphen twice. + +All Haudenosaunee languages, including Cayuga, can be input +simultaneously using the input method `haudenosaunee-postfix'." + nil t nil nil nil nil nil nil nil nil t) + +(pcase-dolist (`(,key ,trans) + (append iroquoian-cayuga-modifier-alist + iroquoian-cayuga-consonant-alist + iroquoian-cayuga-vowel-alist)) + (quail-defrule key trans)) + + +;;; Seneca + +;; +;; The orthography for the Seneca language is fairly stable with only +;; minor variations, for example, vs. <š> (currently preferred in +;; community orthography) for the voiceless postalveolar fricative. +;; +;; In the common community orthography, I'm told that acute and grave +;; accents occur rarely and only on nasal vowels (personal +;; communication). However, in works by Wallace Chafe, stress is +;; indicated on non-nasal vowels, as well. The maximal set of letters +;; with accent diacritics is included for the input method, even though +;; many of them apparently don't occur in community orthographies. +;; +;; 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\"" ?ä) + ("a\"'" ["ä́"]) + ("a\"`" ["ä̀"]) + ("A\"" ?Ä) + ("A\"'" ["Ä́"]) + ("A\"`" ["Ä̀"]) + ("e\"" ?ë) + ("e\"'" ["ë́"]) + ("e\"`" ["ë̀"]) + ("E\"" ?Ë) + ("E\"'" ["Ë́"]) + ("E\"`" ["Ë̀"]) + ("o\"" ?ö) + ("o\"'" ["ö́"]) + ("o\"`" ["ö̀"]) + ("O\"" ?Ö) + ("O\"'" ["Ö́"]) + ("O\"`" ["Ö̀"]) + ;; Rare (e.g., niwú’u:h 'it is tiny' [Chafe 2015]): + ("u'" ?ú) + ("u`" ?ù) + ("U'" ?Ú) + ("U`" ?Ù) + + ("a''" ["a'"]) + ("a``" ["a`"]) + ("A''" ["A'"]) + ("A``" ["A`"]) + ("e''" ["e'"]) + ("e``" ["e`"]) + ("E''" ["E'"]) + ("E``" ["E`"]) + ("i''" ["i'"]) + ("i``" ["i`"]) + ("I''" ["I'"]) + ("I``" ["I`"]) + ("o''" ["o'"]) + ("o``" ["o`"]) + ("O''" ["O'"]) + ("O``" ["O`"]) + ("a\"\"" ["a\""]) + ("a\"''" ["ä'"]) + ("a\"``" ["ä`"]) + ("A\"\"" ["A\""]) + ("A\"''" ["Ä'"]) + ("A\"``" ["Ä`"]) + ("e\"\"" ["e\""]) + ("e\"''" ["ë'"]) + ("e\"``" ["ë`"]) + ("E\"\"" ["E\""]) + ("E\"''" ["Ë'"]) + ("E\"``" ["Ë`"]) + ("o\"\"" ["o\""]) + ("o\"''" ["ö'"]) + ("o\"``" ["ö`"]) + ("O\"\"" ["O\""]) + ("O\"''" ["Ö'"]) + ("O\"``" ["Ö`"]) + ("u''" ["u'"]) + ("u``" ["u`"]) + ("U''" ["U'"]) + ("U``" ["U`"])) + "Alist of rules for vowel letters in Seneca input methods. +Entries are as with rules in `quail-define-rules'.") + +(defconst iroquoian-seneca-consonant-alist + '((";;" ?\N{RIGHT SINGLE QUOTATION MARK}) + ("s/" ?š) + ("s//" ["s/"]) + ("S/" ?Š) + ("S//" ["S/"])) + "Alist of rules for consonant letters in Seneca input methods. +Entries are as with rules in `quail-define-rules'.") + +(quail-define-package + "seneca-postfix" "Seneca" "SEE<" nil + "Seneca (Onödowá’ga:’) input method with postfix modifiers + +Stress diacritics: + +| Key | Description | Example | +|------+--------------+---------| +| \\=' | Acute accent | a' -> á| +| \\=` | Grave accent | a` -> à| + +Doubling any of these postfixes separates the letter and the postfix. + +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. + +All Haudenosaunee languages, including Seneca, can be input +simultaneously using the input method `haudenosaunee-postfix'." + nil t nil nil nil nil nil nil nil nil t) + +(pcase-dolist (`(,key ,trans) + (append iroquoian-seneca-modifier-alist + iroquoian-seneca-consonant-alist + iroquoian-seneca-vowel-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 Hodínöhsö:ni:h 'they make +;; houses' or Hodínöhšo:ni:h 'People of the Long House'. Speakers of +;; Cayuga may prefer the word Hodinǫhsǫ:nih, and speakers of Mohawk may +;; prefer Rotinonhsón:ni or Rotinonhsíón: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 Onkwehonwehnéha (Mohawk), Ukwehuwehnéha +;; (Oneida), Ǫgwehǫwekhá’ (Onondaga), Ǫgwehǫwéhneha:ˀ (Cayuga), and +;; Ögwé’öwe:ka:’ (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 Onkwehonwehnéha. +;; +;; Iorihowá:nen ne aiónhnheke’ ne raotiwén:na’! +;; 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)) + "Alist of rules for modifier letters in Haudenosaunee input methods. +Entries are as with rules in `quail-define-rules'.") + +(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)) + "Alist of rules for vowel letters in Haudenosaunee input methods. +Entries are as with rules in `quail-define-rules'.") + +(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)))) + "Alist of rules for consonant letters in Haudenosaunee input methods. +Entries are as with rules in `quail-define-rules'.") + +(defconst iroquoian-haudenosaunee-devoicing-alist + '(("_" ?\N{COMBINING LOW LINE}) + ("__" ?_)) + "Alist of rules for devoicing characters in Haudenosaunee input methods. +Entries are as with rules in `quail-define-rules'.") + +(defconst iroquoian-haudenosaunee-nasal-alist iroquoian-onondaga-nasal-alist + "Alist of rules for nasal modifier letters in Haudenosaunee input methods. +Entries are as with rules in `quail-define-rules'.") + +(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’kéha / Onkwehonwehné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 (alternate) | + +Stress diacritics: + +| Key | Description | Example | +|------+--------------+---------| +| \\=' | Acute accent | a' -> á | +| \\=` | Grave accent | a` -> à | + +Doubling any of these postfixes separates the letter and the postfix. + +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) | + +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, the underscore twice. + +Macron below is commonly used in Cayuga to indicate devoiced vowels. + +To enter a plain hyphen after a vowel, simply type the hyphen twice. + +There are individual input methods for each of the languages that can be +entered with this input method: `mohawk-postfix', `oneida-postfix', +`onondaga-postfix', `cayuga-postfix', `seneca-postfix'." + 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 + iroquoian-haudenosaunee-vowel-alist + iroquoian-haudenosaunee-devoicing-alist)) + (quail-defrule key trans)) + +(provide 'iroquoian) +;;; iroquoian.el ends here -- 2.39.5