From: Kierin Bell <fernseed@fernseed.me>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 74170@debbugs.gnu.org
Subject: bug#74170: [PATCH] Add input methods for Northern Iroquoian languages
Date: Sat, 02 Nov 2024 23:45:34 -0400 [thread overview]
Message-ID: <87o72xou8x.fsf@fernseed.me> (raw)
In-Reply-To: <871pztq91x.fsf@fernseed.me> (Kierin Bell's message of "Sat, 02 Nov 2024 23:40:26 -0400")
[-- Attachment #1: Type: text/plain, Size: 95 bytes --]
Apologies, the patch likely did not attach properly in the previous
email. Here it is again.
[-- Attachment #2: 0001-Add-input-methods-for-Northern-Iroquoian-languages.patch --]
[-- Type: text/x-patch, Size: 36967 bytes --]
From 6125fcedf4dac3e1c23dfe28e1cef19d9fef0e94 Mon Sep 17 00:00:00 2001
From: Kierin Bell <fernseed@fernseed.me>
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.
+
\f
----------------------------------------------------------------------
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 <fernseed@fernseed.me>
+;; 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 <https://www.gnu.org/licenses/>.
+
+;;; 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))))
+
+\f
+;;; 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 <i>
+;; in Eastern/Central dialects and <y> 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-translation-keymap>\\[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))
+
+\f
+;;; 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-translation-keymap>\\[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))
+
+\f
+;;; 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-translation-keymap>\\[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))
+
+\f
+;;; 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-translation-keymap>\\[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-translation-keymap>\\[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))
+
+\f
+;;; Seneca
+
+;;
+;; The orthography for the Seneca language is fairly stable with only
+;; minor variations (for example, <š> vs. <sy> 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-translation-keymap>\\[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))
+
+\f
+;;; 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-translation-keymap>\\[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-translation-keymap>\\[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
[-- Attachment #3: Type: text/plain, Size: 16 bytes --]
Thanks,
Kierin
next prev parent reply other threads:[~2024-11-03 3:45 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-02 2:34 bug#74170: [PATCH] Add input methods for Northern Iroquoian languages Kierin Bell
2024-11-02 8:16 ` Eli Zaretskii
2024-11-03 3:40 ` Kierin Bell
2024-11-03 3:45 ` Kierin Bell [this message]
2024-11-03 7:10 ` Eli Zaretskii
2024-11-03 16:43 ` Kierin Bell
2024-11-03 18:52 ` Eli Zaretskii
2024-11-03 20:46 ` Kierin Bell
2024-11-07 4:07 ` Kierin Bell
2024-11-07 9:25 ` Eli Zaretskii
2024-11-07 9:34 ` Robert Pluim
2024-11-07 13:10 ` Kierin Bell
2024-11-07 13:48 ` Robert Pluim
2024-11-07 16:20 ` Robert Pluim
2024-11-03 22:11 ` bug#74170: [PATCH] Add input methods for Northern Iroquoian Kierin Bell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87o72xou8x.fsf@fernseed.me \
--to=fernseed@fernseed.me \
--cc=74170@debbugs.gnu.org \
--cc=eliz@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).