From 80e80c90f7f1c2167462fc98d06f64653fd0887d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=A4=B8=E0=A4=AE=E0=A5=80=E0=A4=B0=20=E0=A4=B8=E0=A4=BF?= =?UTF-8?q?=E0=A4=82=E0=A4=B9=20Sameer=20Singh?= Date: Fri, 20 May 2022 03:37:38 +0530 Subject: [PATCH] Add support for the Tagalog script * lisp/language/philippine.el ("Tagalog"): New language environment. Add composition rules for Tagalog. Add sample text and input method. * lisp/international/fontset.el (script-representative-chars) (setup-default-fontset): Support Tagalog. * lisp/leim/quail/philippine.el ("tagalog"): New input method. * lisp/loadup.el: load the lisp/language/philippine.el file. * etc/HELLO: Add a Tagalog greeting. * etc/NEWS: Announce the new language environment and its input method. --- etc/HELLO | 2 ++ etc/NEWS | 1 + lisp/international/fontset.el | 2 ++ lisp/language/philippine.el | 59 +++++++++++++++++++++++++++++++ lisp/leim/quail/philippine.el | 65 +++++++++++++++++++++++++++++++++++ lisp/loadup.el | 1 + 6 files changed, 130 insertions(+) create mode 100644 lisp/language/philippine.el create mode 100644 lisp/leim/quail/philippine.el diff --git a/etc/HELLO b/etc/HELLO index dc5ac9a28e..a52a56903e 100644 --- a/etc/HELLO +++ b/etc/HELLO @@ -90,6 +90,7 @@ Swedish (svenska) Hej / Goddag / Hallå Syloti Nagri (ꠍꠤꠟꠐꠤ ꠘꠣꠉꠞꠤ) ꠀꠌ꠆ꠍꠣꠟꠣꠝꠥ ꠀꠟꠣꠁꠇꠥꠝ / ꠘꠝꠡ꠆ꠇꠣꠞ Tamil (தமிழ்) வணக்கம் Telugu (తెలుగు) నమస్కారం +Tagalog (ᜊᜌ᜔ᜊᜌᜒᜈ᜔) ᜃᜓᜋᜓᜐ᜔ᜆ TaiViet (ꪁꪫꪱꪣ ꪼꪕ) ꪅꪰꪙꫂ ꪨꪮꫂ ꪁꪫꪱ / ꪅꪽ ꪨꪷ ꪁꪫꪱ Thai (ภาษาไทย) สวัสดีครับ / สวัสดีค่ะ Tibetan (བོད་སྐད་) བཀྲ་ཤིས་བདེ་ལེགས༎ diff --git a/etc/NEWS b/etc/NEWS index 190620619f..4331968ba7 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -810,6 +810,7 @@ corresponding language environments are: **** Siddham script and language environment **** Syloti Nagri script and language environment **** Modi script and language environment +**** Baybayin script and Tagalog language environment --- *** The "Oriya" language environment was renamed to "Odia". diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el index 40499f42d0..1fcad765a1 100644 --- a/lisp/international/fontset.el +++ b/lisp/international/fontset.el @@ -182,6 +182,7 @@ font-encoding-charset-alist (canadian-aboriginal #x14C0) (ogham #x168F) (runic #x16A0) + (tagalog #x1700) (khmer #x1780) (mongolian #x1826) (tai-le #x1950) @@ -748,6 +749,7 @@ setup-default-fontset cham ogham runic + tagalog symbol braille yi diff --git a/lisp/language/philippine.el b/lisp/language/philippine.el new file mode 100644 index 0000000000..4feb8fab63 --- /dev/null +++ b/lisp/language/philippine.el @@ -0,0 +1,59 @@ +;;; philippine.el --- Philippine languages support -*- coding: utf-8; lexical-binding: t; -*- + +;; Copyright (C) 2022 Free Software Foundation, Inc. + +;; Author: समीर सिंह Sameer Singh +;; Keywords: multilingual, input method, i18n, Philippines + +;; 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 . + +;;; Commentary: + +;; This file contains definitions of Philippine language environments, and +;; setups for displaying the scripts used there. + +;;; Code: + +(set-language-info-alist + "Tagalog" '((charset unicode) + (coding-system utf-8) + (coding-priority utf-8) + (input-method . "tagalog") + (sample-text . "Tagalog (ᜊᜌ᜔ᜊᜌᜒᜈ᜔) ᜃᜓᜋᜓᜐ᜔ᜆ") + (documentation . "\ +Tagalog which uses the Baybayin script is supported in +this language environment."))) + +;; Tagalog composition rules +(let ((akshara "[\x1700-\x1711\x171F]") + (vowel "[\x1712\x1713]") + (virama "\x1714") + (pamudpod "\x1715")) + (set-char-table-range composition-function-table + '(#x1714 . #x1714) + (list (vector + ;; Akshara virama syllables + (concat akshara virama vowel "?") + 1 'font-shape-gstring))) + (set-char-table-range composition-function-table + '(#x1715 . #x1715) + (list (vector + ;; Akshara pamudpod syllables + (concat akshara pamudpod vowel "?") + 1 'font-shape-gstring)))) + +(provide 'philippine) +;;; philippine.el ends here diff --git a/lisp/leim/quail/philippine.el b/lisp/leim/quail/philippine.el new file mode 100644 index 0000000000..6f11b317d6 --- /dev/null +++ b/lisp/leim/quail/philippine.el @@ -0,0 +1,65 @@ +;;; philippine.el --- Quail package for inputting Philippine characters -*- lexical-binding: t; -*- + +;; Copyright (C) 2022 Free Software Foundation, Inc. + +;; Author: समीर सिंह Sameer Singh +;; Keywords: multilingual, input method, i18n, Philippines + +;; 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 . + +;;; Commentary: + +;; This input method supports scripts like Tagalog, Hanunoo, Buhid and +;; Tagbanwa. + +;;; Code: + +(require 'quail) + +(quail-define-package + "tagalog" "Tagalog" "ᜊ" nil "Baybayin phonetic input method." + nil t t t t nil nil nil nil nil t) + +(quail-define-rules + ("q" ?₱) + ("w" ?ᜏ) + ("r" ?ᜍ) + ("R" ?ᜟ) + ("t" ?ᜆ) + ("y" ?ᜌ) + ("u" ?ᜓ) + ("U" ?ᜂ) + ("i" ?ᜒ) + ("I" ?ᜁ) + ("p" ?ᜉ) + ("a" ?ᜀ) + ("s" ?ᜐ) + ("d" ?ᜇ) + ("f" ?᜔) + ("g" ?ᜄ) + ("h" ?ᜑ) + ("j" ?᜵) + ("J" ?᜶) + ("k" ?ᜃ) + ("l" ?ᜎ) + ("v" ?᜕) + ("b" ?ᜊ) + ("n" ?ᜈ) + ("N" ?ᜅ) + ("m" ?ᜋ)) + +(provide 'philippine) +;;; philippine.el ends here diff --git a/lisp/loadup.el b/lisp/loadup.el index 6ca699f901..9f1da4c0f9 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -245,6 +245,7 @@ (load "language/khmer") (load "language/burmese") (load "language/cham") +(load "language/philippine") (load "indent") (let ((max-specpdl-size (max max-specpdl-size 1800))) -- 2.36.1