summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--etc/NEWS1
-rw-r--r--lisp/international/fontset.el2
-rw-r--r--lisp/language/indonesian.el30
-rw-r--r--lisp/leim/quail/indonesian.el113
4 files changed, 145 insertions, 1 deletions
diff --git a/etc/NEWS b/etc/NEWS
index 8f877f40ac9..3065fa85d3b 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -824,6 +824,7 @@ corresponding language environments are:
**** Tagbanwa script and language environment
**** Limbu script and language environment
**** Balinese script and language environment
+**** Javanese 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 a7d7109c8d5..6b511256298 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -203,7 +203,7 @@
(han #x5B57)
(yi #xA288)
(syloti-nagri #xA807 #xA823 #xA82C)
- (javanese #xA980)
+ (javanese #xA98F #xA9B4 #xA9CA)
(cham #xAA00)
(tai-viet #xAA80)
(hangul #xAC00)
diff --git a/lisp/language/indonesian.el b/lisp/language/indonesian.el
index 9a86135d89b..994be2484a7 100644
--- a/lisp/language/indonesian.el
+++ b/lisp/language/indonesian.el
@@ -36,6 +36,15 @@
(documentation . "\
Balinese language and its script are supported in this language environment.")))
+(set-language-info-alist
+ "Javanese" '((charset unicode)
+ (coding-system utf-8)
+ (coding-priority utf-8)
+ (input-method . "javanese")
+ (sample-text . "Javanese (ꦲꦏ꧀ꦱꦫꦗꦮ) ꦲꦭꦺꦴ")
+ (documentation . "\
+Javanese language and its script are supported in this language environment.")))
+
;; Balinese composition rules
(let ((consonant "[\x1B13-\x1B33\x1B45-\x1B4B]")
@@ -59,6 +68,27 @@ Balinese language and its script are supported in this language environment.")))
vowel "?" modifier-above "?" musical-symbol "?")
1 'font-shape-gstring))))
+;; Javanese composition rules
+(let ((consonant "[\xA98F-\xA9B2]")
+ (independent-vowel "[\xA984-\xA98E]")
+ (telu "\xA9B3")
+ (vowel "[\xA9B4-\xA9BC]")
+ (dependant-consonant "[\xA9BD-\xA9BF]")
+ (modifier-above "[\xA980-\xA983]")
+ (pangkon "\xA9C0"))
+ (set-char-table-range composition-function-table
+ '(#xA9B3 . #xA9C0)
+ (list (vector
+ ;; Consonant based syllables
+ (concat consonant telu "?" "\\(?:" pangkon consonant
+ telu "?\\)*\\(?:" pangkon "\\|" vowel "*" telu
+ "?" modifier-above "?" dependant-consonant "?\\)")
+ 1 'font-shape-gstring)
+ (vector
+ ;; Vowels based syllables
+ (concat independent-vowel telu "?" pangkon "?"
+ vowel "?" modifier-above "?" dependant-consonant "?")
+ 1 'font-shape-gstring))))
(provide 'indonesian)
;;; indonesian.el ends here
diff --git a/lisp/leim/quail/indonesian.el b/lisp/leim/quail/indonesian.el
index 46dafc89f52..82d0a2c2694 100644
--- a/lisp/leim/quail/indonesian.el
+++ b/lisp/leim/quail/indonesian.el
@@ -173,5 +173,118 @@
("`m" ?ᬁ)
("`M" ?ᬀ))
+(quail-define-package
+ "javanese" "Javanese" "ꦄ" t "Javanese 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" ?ꦼ)
+ ("y" ?ꦪ)
+ ("Y" ?ꦾ)
+ ("u" ?ꦸ)
+ ("U" ?ꦹ)
+ ("`u" ?ꦈ)
+ ("`U" ?ꦅ)
+ ("i" ?ꦶ)
+ ("I" ?ꦷ)
+ ("`i" ?ꦆ)
+ ("`I" ?ꦇ)
+ ("o" ?ꦎ)
+ ("p" ?ꦥ)
+ ("P" ?ꦦ)
+ ("`p" ?ꦉ)
+ ("a" ?ꦴ)
+ ("A" ?ꦄ)
+ ("`a" ?ꦵ)
+ ("s" ?ꦱ)
+ ("S" ?ꦯ)
+ ("d" ?ꦢ)
+ ("D" ?ꦣ)
+ ("f" ?꧀)
+ ("F" ?ꦽ)
+ ("`f" ?ꦉ)
+ ("g" ?ꦒ)
+ ("G" ?ꦓ)
+ ("h" ?ꦲ)
+ ("H" ?ꦃ)
+ ("j" ?ꦗ)
+ ("J" ?ꦙ)
+ ("`j" ?ꦘ)
+ ("k" ?ꦏ)
+ ("K" ?ꦑ)
+ ("`k" ?ꦐ)
+ ("l" ?ꦭ)
+ ("L" ?ꦊ)
+ ("`l" ?ꦋ)
+ ("z" ?ꦚ)
+ ("Z" ?ꦔ)
+ ("x" ?ꦰ)
+ ("X" ?꦳)
+ ("c" ?ꦕ)
+ ("C" ?ꦖ)
+ ("`c" #x200C) ; ZWNJ
+ ("v" ?ꦮ)
+ ("V" ?ᭉ)
+ ("b" ?ꦧ)
+ ("B" ?ꦨ)
+ ("n" ?ꦤ)
+ ("N" ?ꦟ)
+ ("m" ?ꦩ)
+ ("M" ?ꦁ)
+ ("`m" ?ꦀ))
+
(provide 'indonesian)
;;; indonesian.el ends here