1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-23 07:19:15 +00:00

Add support for the Balinese script (bug#55648)

* lisp/language/indonesian.el ("Balinese"): New language environment.
Add composition rules for Balinese.  Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Balinese.
* lisp/leim/quail/indonesian.el ("balinese"): New input method.
* lisp/loadup.el: Preload lisp/language/indonesian.el.

* etc/HELLO: Add a Balinese greeting.
* etc/NEWS: Announce the new language environment and its
input method.
This commit is contained in:
समीर सिंह Sameer Singh 2022-05-26 05:34:30 +05:30 committed by Eli Zaretskii
parent e05acb07d3
commit 4677ff4361
6 changed files with 246 additions and 0 deletions

View File

@ -27,6 +27,7 @@ LANGUAGE (NATIVE NAME) HELLO
Amharic (አማርኛ) ሠላም
Arabic (العربيّة) السّلام عليكم
Armenian (հայերեն) Բարև ձեզ
Balinese (ᬅᬓ᭄ᬱᬭᬩᬮᬶ) ᬒᬁᬲ᭄ᬯᬲ᭄ᬢ᭄ᬬᬲ᭄ᬢᬸ
Belarusian (беларуская) Прывітанне
Bengali (বাংলা) নমস্কার
Brahmi (𑀩𑁆𑀭𑀸𑀳𑁆𑀫𑀻) 𑀦𑀫𑀲𑁆𑀢𑁂

View File

@ -823,6 +823,7 @@ corresponding language environments are:
**** Buhid script and language environment
**** Tagbanwa script and language environment
**** Limbu script and language environment
**** Balinese script and language environment
---
*** The "Oriya" language environment was renamed to "Odia".

View File

@ -189,6 +189,7 @@
(khmer #x1780)
(mongolian #x1826)
(limbu #x1901 #x1920 #x1936)
(balinese #x1B13 #x1B35 #x1B5E)
(tai-le #x1950)
(tai-lue #x1980)
(tai-tham #x1A20 #x1A55 #x1A61 #x1A80)
@ -758,6 +759,7 @@
buhid
tagbanwa
limbu
balinese
symbol
braille
yi

View File

@ -0,0 +1,64 @@
;;; indonesian.el --- Indonesian languages support -*- coding: utf-8; lexical-binding: t; -*-
;; Copyright (C) 2022 Free Software Foundation, Inc.
;; Author: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
;; Keywords: multilingual, input method, i18n, Indonesia
;; 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:
;; This file contains definitions of Indonesia language environments, and
;; setups for displaying the scripts used there.
;;; Code:
(set-language-info-alist
"Balinese" '((charset unicode)
(coding-system utf-8)
(coding-priority utf-8)
(input-method . "balinese")
(sample-text . "Balinese (ᬅᬓ᭄ᬱᬭᬩᬮᬶ) ᬒᬁᬲ᭄ᬯᬲ᭄ᬢ᭄ᬬᬲ᭄ᬢᬸ")
(documentation . "\
Balinese language and its script are supported in this language environment.")))
;; Balinese composition rules
(let ((consonant "[\x1B13-\x1B33\x1B45-\x1B4B]")
(independent-vowel "[\x1B05-\x1B12]")
(rerekan "\x1B34")
(vowel "[\x1B35-\x1B43]")
(modifier-above "[\x1B00-\x1B04]")
(adeg-adeg "\x1B44")
(musical-symbol "[\x1B6B-\x1B73]"))
(set-char-table-range composition-function-table
'(#x1B34 . #x1B44)
(list (vector
;; Consonant based syllables
(concat consonant rerekan "?" "\\(?:" adeg-adeg consonant
rerekan "?\\)*\\(?:" adeg-adeg "\\|" vowel "*" rerekan
"?" modifier-above "?" musical-symbol "?\\)")
1 'font-shape-gstring)
(vector
;; Vowels based syllables
(concat independent-vowel rerekan "?" adeg-adeg "?"
vowel "?" modifier-above "?" musical-symbol "?")
1 'font-shape-gstring))))
(provide 'indonesian)
;;; indonesian.el ends here

View File

@ -0,0 +1,177 @@
;;; indonesian.el --- Quail package for inputting Indonesian characters -*- lexical-binding: t; -*-
;; Copyright (C) 2022 Free Software Foundation, Inc.
;; Author: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
;; Keywords: multilingual, input method, i18n, Indonesia
;; 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:
;; Input methods for Indonesian languages.
;;; Code:
(require 'quail)
;; This input method supports languages like Buginese, Balinese, Sundanese and
;; Javanese.
(quail-define-package
"balinese" "Balinese" "" t "Balinese phonetic input method.
`\\=`' is used to switch levels instead of Alt-Gr.
" nil t t t t nil nil nil nil nil t)
(quail-define-rules
("1" ?᭑)
("`1" ?1)
("`!" ?᭫)
("2" ?᭒)
("`2" ?2)
("`@" ?᭬)
("3" ?᭓)
("`3" ?3)
("`#" ?᭭)
("4" ?᭔)
("`4" ?4)
("`$" ?᭮)
("5" ?᭕)
("`5" ?5)
("`%" ?᭯)
("6" ?᭖)
("`6" ?6)
("`^" ?᭰)
("7" ?᭗)
("`7" ?7)
("`&" ?᭱)
("8" ?᭘)
("`8" ?8)
("`*" ?᭲)
("9" ?᭙)
("`9" ?9)
("`\(" ?᭳)
("0" ?᭐)
("`0" ?0)
("`\)" ?᭼)
("`\\" ?᭞)
("`|" ?᭟)
("`" ?ᬝ)
("q" ?ᬝ)
("Q" ?ᬞ)
("`q" ?᭚)
("`Q" ?᭽)
("w" ?ᬟ)
("W" ?ᬠ)
("`w" ?᭛)
("`W" ?᭾)
("e" ?ᬾ)
("E" ?ᬿ)
("`e" ?ᬏ)
("`E" ?ᬐ)
("r" ?ᬭ)
("R" ?ᬃ)
("`r" ?ᬺ)
("`R" ?ᬋ)
("t" ?ᬢ)
("T" ?ᬣ)
("`t" ?᭜)
("`T" ?᭝)
("y" ?ᬬ)
("Y" ?ᭂ)
("`y" ?ᭃ)
("`Y" ?᭴)
("u" ?ᬸ)
("U" ?ᬹ)
("`u" ?ᬉ)
("`U" ?ᬊ)
("i" ?ᬶ)
("I" ?ᬷ)
("`i" ?ᬇ)
("`I" ?ᬈ)
("o" ?ᭀ)
("O" ?ᭁ)
("`o" ?ᬑ)
("`O" ?ᬒ)
("p" ?ᬧ)
("P" ?ᬨ)
("`p" ?ᭈ)
("`P" ?᭠)
("a" ?ᬵ)
("A" ?ᬆ)
("`a" ?ᬅ)
("`A" ?᭵)
("s" ?ᬲ)
("S" ?ᬰ)
("`s" ?᭡)
("`S" ?᭢)
("d" ?ᬤ)
("D" ?ᬥ)
("`d" ?᭣)
("`D" ?᭤)
("f" ?᭄)
("F" ?ᬻ)
("`f" ?ᬌ)
("`F" ?᭶)
("g" ?ᬕ)
("G" ?ᬖ)
("`g" ?᭥)
("`G" ?᭦)
("h" ?ᬳ)
("H" ?ᬄ)
("`h" ?᭧)
("`H" ?᭨)
("j" ?ᬚ)
("J" ?ᬛ)
("`j" ?ᭌ)
("`J" ?᭩)
("k" ?ᬓ)
("K" ?ᬔ)
("`k" ?ᭅ)
("`K" ?ᭆ)
("l" ?ᬮ)
("L" ?ᬼ)
("`l" ?ᬍ)
("`L" ?᭪)
("z" ?ᭊ)
("Z" ?ᬽ)
("`z" ?ᬎ)
("`Z" ?᭷)
("x" ?ᬱ)
("X" ?᬴)
("`x" ?᭸)
("c" ?ᬘ)
("C" ?ᬙ)
("`c" #x200C) ; ZWNJ
("v" ?ᬯ)
("V" ?ᭉ)
("`v" ?᭹)
("`V" ?᭺)
("b" ?ᬩ)
("B" ?ᬪ)
("`b" ?᭻)
("n" ?ᬦ)
("N" ?ᬡ)
("`n" ?ᬗ)
("`N" ?ᬜ)
("m" ?ᬫ)
("M" ?ᬂ)
("`m" ?ᬁ)
("`M" ?ᬀ))
(provide 'indonesian)
;;; indonesian.el ends here

View File

@ -246,6 +246,7 @@
(load "language/burmese")
(load "language/cham")
(load "language/philippine")
(load "language/indonesian")
(load "indent")
(let ((max-specpdl-size (max max-specpdl-size 1800)))