]> git.eshelyaron.com Git - emacs.git/commitdiff
Add support for the Balinese script (bug#55648)
authorसमीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Thu, 26 May 2022 00:04:30 +0000 (05:34 +0530)
committerEli Zaretskii <eliz@gnu.org>
Thu, 26 May 2022 15:40:37 +0000 (18:40 +0300)
* 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.

etc/HELLO
etc/NEWS
lisp/international/fontset.el
lisp/language/indonesian.el [new file with mode: 0644]
lisp/leim/quail/indonesian.el [new file with mode: 0644]
lisp/loadup.el

index 31f753c73a81eaf6ee89b997f731c3f98ec5794b..248c02b7ab6eb54aaf2130db3b5c066f83fe6c50 100644 (file)
--- a/etc/HELLO
+++ b/etc/HELLO
@@ -27,6 +27,7 @@ LANGUAGE (NATIVE NAME)        HELLO
 Amharic (አማርኛ) ሠላም
 Arabic (العربيّة)      السّلام عليكم
 Armenian (հայերեն)      Բարև ձեզ
+Balinese (ᬅᬓ᭄ᬱᬭᬩᬮᬶ)    ᬒᬁᬲ᭄ᬯᬲ᭄ᬢ᭄ᬬᬲ᭄ᬢᬸ
 Belarusian (беларуская)      Прывітанне
 Bengali (বাংলা)      নমস্কার
 Brahmi (𑀩𑁆𑀭𑀸𑀳𑁆𑀫𑀻)      𑀦𑀫𑀲𑁆𑀢𑁂
index 4ebaf6e07ada3c3173af80315d6bbac1a730adda..8f877f40ac9a4d020cbfc8ada1a6aac954e5a709 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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".
index 42fbedae1d4059a2e85c1ac36872396fe8604046..a7d7109c8d554c2b3bb17fcd4acb8f44993341aa 100644 (file)
        (khmer #x1780)
        (mongolian #x1826)
         (limbu #x1901 #x1920 #x1936)
+        (balinese #x1B13 #x1B35 #x1B5E)
         (tai-le #x1950)
         (tai-lue #x1980)
         (tai-tham #x1A20 #x1A55 #x1A61 #x1A80)
                     buhid
                     tagbanwa
                     limbu
+                    balinese
                    symbol
                    braille
                    yi
diff --git a/lisp/language/indonesian.el b/lisp/language/indonesian.el
new file mode 100644 (file)
index 0000000..9a86135
--- /dev/null
@@ -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
diff --git a/lisp/leim/quail/indonesian.el b/lisp/leim/quail/indonesian.el
new file mode 100644 (file)
index 0000000..46dafc8
--- /dev/null
@@ -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
index 9f1da4c0f9d3608bf7456e1b7069c2e6dc67a9b1..aa15a3bbe8fda50fef5107044fe2d09c55e8e0e5 100644 (file)
 (load "language/burmese")
 (load "language/cham")
 (load "language/philippine")
+(load "language/indonesian")
 
 (load "indent")
 (let ((max-specpdl-size (max max-specpdl-size 1800)))