mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-06-14 04:21:24 +00:00
Add language-environment and input methods for Syriac
* lisp/leim/quail/syriac.el: New file
* lisp/language/misc-lang.el: ("Syriac"): New language environment.
("Arabic"): Add comment explaining usage of `arabic-shape-gstring'
for Syriac as well as Arabic.
* etc/NEWS: Announce the new language environment and input methods.
* etc/HELLO: Add a Syriac greeting.
(Bug#80451)
This commit is contained in:
parent
fe1d9562f1
commit
39202daedd
4 changed files with 260 additions and 1 deletions
|
|
@ -12,7 +12,7 @@ Non-ASCII examples:
|
||||||
Europe: <x-charset><param>latin-iso8859-1</param>¡Hola!, Grüß Gott, Hyvää päivää,</x-charset> Tere õhtust,<x-charset><param>latin-iso8859-3</param> Bonġu
|
Europe: <x-charset><param>latin-iso8859-1</param>¡Hola!, Grüß Gott, Hyvää päivää,</x-charset> Tere õhtust,<x-charset><param>latin-iso8859-3</param> Bonġu
|
||||||
Cześć!,</x-charset><x-charset><param>latin-iso8859-2</param> Dobrý den,</x-charset><x-charset><param>cyrillic-iso8859-5</param> Здравствуйте!,</x-charset><x-charset><param>greek-iso8859-7</param> Γειά σας,</x-charset> გამარჯობა
|
Cześć!,</x-charset><x-charset><param>latin-iso8859-2</param> Dobrý den,</x-charset><x-charset><param>cyrillic-iso8859-5</param> Здравствуйте!,</x-charset><x-charset><param>greek-iso8859-7</param> Γειά σας,</x-charset> გამარჯობა
|
||||||
Africa: <x-charset><param>ethiopic</param>ሠላም</x-charset>
|
Africa: <x-charset><param>ethiopic</param>ሠላም</x-charset>
|
||||||
Middle/Near East:<x-charset><param>hebrew-iso8859-8</param> שָׁלוֹם,</x-charset> السّلام عليكم
|
Middle/Near East:<x-charset><param>hebrew-iso8859-8</param> שָׁלוֹם,</x-charset> السّلام عليكم, ܣܠܡܐ
|
||||||
South Asia: નમસ્તે, नमस्ते, ನಮಸ್ಕಾರ, നമസ്കാരം, ନମସ୍କାର,
|
South Asia: નમસ્તે, नमस्ते, ನಮಸ್ಕಾರ, നമസ്കാരം, ନମସ୍କାର,
|
||||||
ආයුබෝවන්, வணக்கம், నమస్కారం,<x-charset><param>tibetan</param> བཀྲ་ཤིས་བདེ་ལེགས༎</x-charset>
|
ආයුබෝවන්, வணக்கம், నమస్కారం,<x-charset><param>tibetan</param> བཀྲ་ཤིས་བདེ་ལེགས༎</x-charset>
|
||||||
South East Asia: ជំរាបសួរ,<x-charset><param>lao</param> ສະບາຍດີ,</x-charset> မင်္ဂလာပါ,<x-charset><param>thai-tis620</param> สวัสดีครับ,</x-charset><x-charset><param>vietnamese-viscii-lower</param> </x-charset><x-charset><param>vietnamese-viscii-upper</param>C</x-charset><x-charset><param>vietnamese-viscii-lower</param>hào bạn</x-charset>
|
South East Asia: ជំរាបសួរ,<x-charset><param>lao</param> ສະບາຍດີ,</x-charset> မင်္ဂလာပါ,<x-charset><param>thai-tis620</param> สวัสดีครับ,</x-charset><x-charset><param>vietnamese-viscii-lower</param> </x-charset><x-charset><param>vietnamese-viscii-upper</param>C</x-charset><x-charset><param>vietnamese-viscii-lower</param>hào bạn</x-charset>
|
||||||
|
|
@ -107,6 +107,7 @@ Spanish (español) ¡Hola!
|
||||||
Sundanese (ᮃᮊ᮪ᮟᮛᮞᮥᮔ᮪ᮓ) ᮞᮙ᮪ᮕᮥᮛᮞᮥᮔ᮪
|
Sundanese (ᮃᮊ᮪ᮟᮛᮞᮥᮔ᮪ᮓ) ᮞᮙ᮪ᮕᮥᮛᮞᮥᮔ᮪
|
||||||
Swedish (svenska) Hej / Goddag / Hallå
|
Swedish (svenska) Hej / Goddag / Hallå
|
||||||
Syloti Nagri (ꠍꠤꠟꠐꠤ ꠘꠣꠉꠞꠤ) ꠀꠌ꠆ꠍꠣꠟꠣꠝꠥ ꠀꠟꠣꠁꠇꠥꠝ / ꠘꠝꠡ꠆ꠇꠣꠞ
|
Syloti Nagri (ꠍꠤꠟꠐꠤ ꠘꠣꠉꠞꠤ) ꠀꠌ꠆ꠍꠣꠟꠣꠝꠥ ꠀꠟꠣꠁꠇꠥꠝ / ꠘꠝꠡ꠆ꠇꠣꠞ
|
||||||
|
Syriac (ܣܘܪܝܝܐ) ܫܠܡܐ
|
||||||
Tamil (தமிழ்) வணக்கம்
|
Tamil (தமிழ்) வணக்கம்
|
||||||
Telugu (తెలుగు) నమస్కారం
|
Telugu (తెలుగు) నమస్కారం
|
||||||
Tagalog (ᜊᜌ᜔ᜊᜌᜒᜈ᜔) ᜃᜓᜋᜓᜐ᜔ᜆ
|
Tagalog (ᜊᜌ᜔ᜊᜌᜒᜈ᜔) ᜃᜓᜋᜓᜐ᜔ᜆ
|
||||||
|
|
|
||||||
5
etc/NEWS
5
etc/NEWS
|
|
@ -819,6 +819,11 @@ writing in the orthographies of the six languages simultaneously.
|
||||||
*** New input methods for languages based on Burmese.
|
*** New input methods for languages based on Burmese.
|
||||||
These include: Burmese, Burmese (visual order), Shan, and Mon.
|
These include: Burmese, Burmese (visual order), Shan, and Mon.
|
||||||
|
|
||||||
|
---
|
||||||
|
*** New input methods for Syriac languages.
|
||||||
|
Language environment and input methods are implemented now for languages
|
||||||
|
using the Syriac script: Syriac and Syriac (phonetic)
|
||||||
|
|
||||||
---
|
---
|
||||||
** 'visual-wrap-prefix-mode' now supports variable-pitch fonts.
|
** 'visual-wrap-prefix-mode' now supports variable-pitch fonts.
|
||||||
When using 'visual-wrap-prefix-mode' in buffers with variable-pitch
|
When using 'visual-wrap-prefix-mode' in buffers with variable-pitch
|
||||||
|
|
|
||||||
|
|
@ -135,6 +135,9 @@ thin (i.e. 1-dot width) space."
|
||||||
(error (push err arabic-shape-log)))
|
(error (push err arabic-shape-log)))
|
||||||
gstring)
|
gstring)
|
||||||
|
|
||||||
|
;;; `arabic-shape-gstring' is used for shaping of Arabic (range
|
||||||
|
;;; #x600–#x6ff) and Syriac (range #x700–#x74f) on account of their
|
||||||
|
;;; identical shaping requirements.
|
||||||
(set-char-table-range
|
(set-char-table-range
|
||||||
composition-function-table
|
composition-function-table
|
||||||
'(#x600 . #x74F)
|
'(#x600 . #x74F)
|
||||||
|
|
@ -146,6 +149,20 @@ thin (i.e. 1-dot width) space."
|
||||||
(list (vector "[\u200C\u200D][\u0600-\u074F\u200C\u200D]+"
|
(list (vector "[\u200C\u200D][\u0600-\u074F\u200C\u200D]+"
|
||||||
0 #'arabic-shape-gstring)))
|
0 #'arabic-shape-gstring)))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Syriac
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
(set-language-info-alist
|
||||||
|
"Syriac" '((charset unicode)
|
||||||
|
(coding-system utf-8)
|
||||||
|
(coding-priority utf-8)
|
||||||
|
(input-method . "syriac")
|
||||||
|
(sample-text . "Syriac ܫܠܡܐ")
|
||||||
|
(documentation . "\
|
||||||
|
Language environment for Classical Syriac, Aramaic, and other languages
|
||||||
|
using the Syriac script.")))
|
||||||
|
|
||||||
;; The Egyptian Hieroglyph Format Controls were introduced in Unicode
|
;; The Egyptian Hieroglyph Format Controls were introduced in Unicode
|
||||||
;; Standard v12.0. Apparently, they are not yet well supported in
|
;; Standard v12.0. Apparently, they are not yet well supported in
|
||||||
;; existing fonts, as of late 2020. But there's no reason for us not
|
;; existing fonts, as of late 2020. But there's no reason for us not
|
||||||
|
|
|
||||||
236
lisp/leim/quail/syriac.el
Normal file
236
lisp/leim/quail/syriac.el
Normal file
|
|
@ -0,0 +1,236 @@
|
||||||
|
;;; syriac.el --- Quail package for inputting Syriac -*- coding: utf-8; lexical-binding:t -*-
|
||||||
|
|
||||||
|
;; Copyright (C) 2026 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
;; Author: Lee Thompson <lee.p.thomp@gmail.com>
|
||||||
|
;; Keywords: multilingual, input method, Syriac
|
||||||
|
|
||||||
|
;; This file is part of GNU Emacs.
|
||||||
|
|
||||||
|
;; GNU Emacs 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.
|
||||||
|
|
||||||
|
;; GNU Emacs 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 GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(require 'quail)
|
||||||
|
|
||||||
|
(quail-define-package
|
||||||
|
"syriac" "Syriac" "ܣ" nil "Syriac input method.
|
||||||
|
|
||||||
|
Based on Syriac table in X Keyboard Configuration DB
|
||||||
|
" nil t t t t nil nil nil nil nil t)
|
||||||
|
|
||||||
|
;; ̮ 1! 2̊ 3̥ 4݉ 5♰ 6♱ 7܊ 8» 9) 0( -« =+
|
||||||
|
;; ܔܰ ܨܳ ܖܶ ܩܺ ܦܽ ܜ݀ ܥ݁ ܗ̈ ܞ̄ ܚ̇ ܓ̃ ܕ݊ <>
|
||||||
|
;; ܫܱ ܣܴ ܝܷ ܒܻ ܠܾ ܐܑ ܬـ ܢ̤ ܡ̱ ܟ̣ ܛ̰ ܆:
|
||||||
|
;; ]ܲ [ܵ ܤܸ ܪܼ ܧܿ ܀ܹ .݂ ܘ، ܙ؛ ܇؟
|
||||||
|
;;
|
||||||
|
|
||||||
|
(quail-define-rules
|
||||||
|
("`" ?)
|
||||||
|
("~" ?̮)
|
||||||
|
|
||||||
|
("!" ?!)
|
||||||
|
("@" ?̊)
|
||||||
|
("#" ?̥)
|
||||||
|
("$" ?݉)
|
||||||
|
("%" ?♰)
|
||||||
|
("^" ?♱)
|
||||||
|
("&" ?܊)
|
||||||
|
("*" ?»)
|
||||||
|
("(" ?\))
|
||||||
|
(")" ?\()
|
||||||
|
("_" ?«)
|
||||||
|
("+" ?+)
|
||||||
|
|
||||||
|
("Q" ?ܰ)
|
||||||
|
("W" ?ܳ)
|
||||||
|
("E" ?ܶ)
|
||||||
|
("R" ?ܺ)
|
||||||
|
("T" ?ܽ)
|
||||||
|
("Y" ?݀)
|
||||||
|
("U" ?݁)
|
||||||
|
("I" ?̈)
|
||||||
|
("O" ?̄)
|
||||||
|
("P" ?̇)
|
||||||
|
("{" ?̃)
|
||||||
|
("}" ?݊)
|
||||||
|
|
||||||
|
("A" ?ܱ)
|
||||||
|
("S" ?ܴ)
|
||||||
|
("D" ?ܷ)
|
||||||
|
("F" ?ܻ )
|
||||||
|
("G" ?ܾ)
|
||||||
|
("H" ?ܑ)
|
||||||
|
("J" ?ـ)
|
||||||
|
("K" ?̤)
|
||||||
|
("L" ?̱)
|
||||||
|
(":" ?̣)
|
||||||
|
("\"" ?̰)
|
||||||
|
("|" ?:)
|
||||||
|
|
||||||
|
|
||||||
|
("Z" ?ܲ)
|
||||||
|
("X" ?ܵ)
|
||||||
|
("C" ?ܸ)
|
||||||
|
("V" ?ܼ)
|
||||||
|
("B" ?ܿ)
|
||||||
|
("N" ?ܹ)
|
||||||
|
("M" ?݂)
|
||||||
|
("<" ?،)
|
||||||
|
(">" ?؛)
|
||||||
|
("?" ?؟)
|
||||||
|
|
||||||
|
("q" ?ܔ)
|
||||||
|
("w" ?ܨ)
|
||||||
|
("e" ?ܖ)
|
||||||
|
("r" ?ܩ)
|
||||||
|
("t" ?ܦ)
|
||||||
|
("y" ?ܜ)
|
||||||
|
("u" ?ܥ)
|
||||||
|
("i" ?ܗ)
|
||||||
|
("o" ?ܞ)
|
||||||
|
("p" ?ܚ)
|
||||||
|
("[" ?ܓ)
|
||||||
|
("]" ?ܕ)
|
||||||
|
|
||||||
|
("a" ?ܫ)
|
||||||
|
("s" ?ܣ)
|
||||||
|
("d" ?ܝ)
|
||||||
|
("f" ?ܒ)
|
||||||
|
("g" ?ܠ)
|
||||||
|
("h" ?ܐ)
|
||||||
|
("j" ?ܬ)
|
||||||
|
("k" ?ܢ)
|
||||||
|
("l" ?ܡ)
|
||||||
|
(";" ?ܟ)
|
||||||
|
("'" ?ܛ)
|
||||||
|
("\\" ?܆)
|
||||||
|
|
||||||
|
("z" ?\])
|
||||||
|
("x" ?\[)
|
||||||
|
("c" ?ܤ)
|
||||||
|
("v" ?ܪ)
|
||||||
|
("b" ?ܧ)
|
||||||
|
("n" ?܀)
|
||||||
|
("m" ?.)
|
||||||
|
("," ?ܘ)
|
||||||
|
("." ?ܙ)
|
||||||
|
("/" ?܇))
|
||||||
|
|
||||||
|
(quail-define-package
|
||||||
|
"syriac-phonetic" "Syriac" "ܦ" nil "Phonetic input method for Syriac.
|
||||||
|
|
||||||
|
Based on Syriac (phonetic) table in X Keyboard Configuration DB
|
||||||
|
" nil t t t t nil nil nil nil nil t)
|
||||||
|
|
||||||
|
;; ̮ 1! 2̊ 3̥ 4݉ 5♰ 6♱ 7܊ 8» 9) 0( -« =+
|
||||||
|
;; ܩܰ ܘܳ ܖܶ ܪܺ ܬܽ ܝ݀ ܜ݁ ܥ̈ ܧ̄ ܦ̇ ]̃ [݊
|
||||||
|
;; ܐܱ ܣܴ ܕܷ ܔܻ ܓܾ ܗܑ ܛـ ܟ̤ ܠ̱ ܚ̣ ܞ̰ ܆:
|
||||||
|
;; ܙܲ ܨܵ ܤܸ ܫܼ ܒܿ ܢܹ ܡ݂ ܀، .؛ ܇؟
|
||||||
|
|
||||||
|
(quail-define-rules
|
||||||
|
("`" ?)
|
||||||
|
("~" ?̮)
|
||||||
|
|
||||||
|
("!" ?!)
|
||||||
|
("@" ?̊)
|
||||||
|
("#" ?̥)
|
||||||
|
("$" ?݉)
|
||||||
|
("%" ?♰)
|
||||||
|
("^" ?♱)
|
||||||
|
("&" ?܊)
|
||||||
|
("*" ?»)
|
||||||
|
("(" ?\))
|
||||||
|
(")" ?\()
|
||||||
|
("_" ?«)
|
||||||
|
("+" ?+)
|
||||||
|
|
||||||
|
("Q" ?ܰ)
|
||||||
|
("W" ?ܳ)
|
||||||
|
("E" ?ܶ)
|
||||||
|
("R" ?ܺ)
|
||||||
|
("T" ?ܽ)
|
||||||
|
("Y" ?݀)
|
||||||
|
("U" ?݁)
|
||||||
|
("I" ?̈)
|
||||||
|
("O" ?̄)
|
||||||
|
("P" ?̇)
|
||||||
|
("{" ?̃)
|
||||||
|
("}" ?݊)
|
||||||
|
|
||||||
|
("A" ?ܱ)
|
||||||
|
("S" ?ܴ)
|
||||||
|
("D" ?ܷ)
|
||||||
|
("F" ?ܻ)
|
||||||
|
("G" ?ܾ)
|
||||||
|
("H" ?ܑ)
|
||||||
|
("J" ?ـ)
|
||||||
|
("K" ?̤)
|
||||||
|
("L" ?̱)
|
||||||
|
(":" ?̣)
|
||||||
|
("\"" ?̰)
|
||||||
|
("|" ?:)
|
||||||
|
|
||||||
|
("Z" ?ܲ)
|
||||||
|
("X" ?ܵ)
|
||||||
|
("C" ?ܸ)
|
||||||
|
("V" ?ܼ)
|
||||||
|
("B" ?ܿ)
|
||||||
|
("N" ?ܹ)
|
||||||
|
("M" ?݂)
|
||||||
|
("<" ?،)
|
||||||
|
(">" ?؛)
|
||||||
|
("?" ?؟)
|
||||||
|
|
||||||
|
("q" ?ܩ)
|
||||||
|
("w" ?ܘ)
|
||||||
|
("e" ?ܖ)
|
||||||
|
("r" ?ܪ)
|
||||||
|
("t" ?ܬ)
|
||||||
|
("y" ?ܝ)
|
||||||
|
("u" ?ܜ)
|
||||||
|
("i" ?ܥ)
|
||||||
|
("o" ?ܧ)
|
||||||
|
("p" ?ܦ)
|
||||||
|
("[" ?\])
|
||||||
|
("]" ?\[)
|
||||||
|
|
||||||
|
("a" ?ܐ)
|
||||||
|
("s" ?ܣ)
|
||||||
|
("d" ?ܕ)
|
||||||
|
("f" ?ܔ)
|
||||||
|
("g" ?ܓ)
|
||||||
|
("h" ?ܗ)
|
||||||
|
("j" ?ܛ)
|
||||||
|
("k" ?ܟ)
|
||||||
|
("l" ?ܠ)
|
||||||
|
(";" ?ܚ)
|
||||||
|
("\\" ?܆)
|
||||||
|
("'" ?ܞ)
|
||||||
|
|
||||||
|
("z" ?ܙ)
|
||||||
|
("x" ?ܨ)
|
||||||
|
("c" ?ܤ)
|
||||||
|
("v" ?ܫ)
|
||||||
|
("b" ?ܒ)
|
||||||
|
("n" ?ܢ)
|
||||||
|
("m" ?ܡ)
|
||||||
|
("," ?܀)
|
||||||
|
("." ?.)
|
||||||
|
("/" ?܇)
|
||||||
|
)
|
||||||
|
|
||||||
|
;;; syriac.el ends here
|
||||||
Loading…
Reference in a new issue