emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 4677ff4361: Add support for the Balinese script (bug#55648)


From: Eli Zaretskii
Subject: master 4677ff4361: Add support for the Balinese script (bug#55648)
Date: Thu, 26 May 2022 11:43:01 -0400 (EDT)

branch: master
commit 4677ff436110d3142183017451146b31ac1b46ef
Author: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Commit: Eli Zaretskii <eliz@gnu.org>

    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.
---
 etc/HELLO                     |   1 +
 etc/NEWS                      |   1 +
 lisp/international/fontset.el |   2 +
 lisp/language/indonesian.el   |  64 +++++++++++++++
 lisp/leim/quail/indonesian.el | 177 ++++++++++++++++++++++++++++++++++++++++++
 lisp/loadup.el                |   1 +
 6 files changed, 246 insertions(+)

diff --git a/etc/HELLO b/etc/HELLO
index 31f753c73a..248c02b7ab 100644
--- a/etc/HELLO
+++ b/etc/HELLO
@@ -27,6 +27,7 @@ LANGUAGE (NATIVE NAME)        HELLO
 Amharic (አማርኛ) ሠላም
 Arabic (العربيّة)      السّلام عليكم
 Armenian (հայերեն)     Բարև ձեզ
+Balinese (ᬅᬓ᭄ᬱᬭᬩᬮᬶ)    ᬒᬁᬲ᭄ᬯᬲ᭄ᬢ᭄ᬬᬲ᭄ᬢᬸ
 Belarusian (беларуская)        Прывітанне
 Bengali (বাংলা)        নমস্কার
 Brahmi (𑀩𑁆𑀭𑀸𑀳𑁆𑀫𑀻)      𑀦𑀫𑀲𑁆𑀢𑁂
diff --git a/etc/NEWS b/etc/NEWS
index 4ebaf6e07a..8f877f40ac 100644
--- 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".
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index 42fbedae1d..a7d7109c8d 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -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
diff --git a/lisp/language/indonesian.el b/lisp/language/indonesian.el
new file mode 100644
index 0000000000..9a86135d89
--- /dev/null
+++ b/lisp/language/indonesian.el
@@ -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
index 0000000000..46dafc89f5
--- /dev/null
+++ b/lisp/leim/quail/indonesian.el
@@ -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
diff --git a/lisp/loadup.el b/lisp/loadup.el
index 9f1da4c0f9..aa15a3bbe8 100644
--- a/lisp/loadup.el
+++ b/lisp/loadup.el
@@ -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)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]