X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/8f50130c565eaf0ad7c49e4ad044c3291ecdfa71..ba3189039adc8ec5eba5ed3e21d42019a4616b7c:/lisp/language/lao-util.el diff --git a/lisp/language/lao-util.el b/lisp/language/lao-util.el index 2a33950440..8884b37baa 100644 --- a/lisp/language/lao-util.el +++ b/lisp/language/lao-util.el @@ -1,6 +1,6 @@ -;;; lao-util.el --- utilities for Lao -*- coding: iso-2022-7bit; -*- +;;; lao-util.el --- utilities for Lao -*- coding: utf-8; -*- -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2014 Free Software Foundation, Inc. ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, ;; 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) @@ -38,100 +38,100 @@ (define-category ?v "Lao upper/lower vowel" lao-category-table) (define-category ?t "Lao tone" lao-category-table) -(let ((l '((?(1!(B consonant "LETTER KOR KAI'" "CHICKEN") - (?(1"(B consonant "LETTER KHOR KHAI'" "EGG") - (?(1#(B invalid nil) - (?(1$(B consonant "LETTER QHOR QHWARGN" "BUFFALO") - (?(1%(B invalid nil) +(let ((l '((?ກ consonant "LETTER KOR KAI'" "CHICKEN") + (?ຂ consonant "LETTER KHOR KHAI'" "EGG") + (?຃ invalid nil) + (?ຄ consonant "LETTER QHOR QHWARGN" "BUFFALO") + (?຅ invalid nil) (? invalid nil) - (?(1'(B consonant "LETTER NGOR NGUU" "SNAKE") - (?(1((B consonant "LETTER JOR JUA" "BUDDHIST NOVICE") - (?(1)(B invalid nil) - (?(1*(B consonant "LETTER XOR X\"ARNG" "ELEPHANT") - (?(1+(B invalid nil) - (?(1,(B invalid nil) - (?(1-(B consonant "LETTER YOR YUNG" "MOSQUITO") - (?(1.(B invalid nil) - (?(1.(B invalid nil) - (?(1.(B invalid nil) - (?(1.(B invalid nil) - (?(1.(B invalid nil) - (?(1.(B invalid nil) - (?(14(B consonant "LETTER DOR DANG" "NOSE") - (?(15(B consonant "LETTER TOR TAR" "EYE") - (?(16(B consonant "LETTER THOR THUNG" "TO ASK,QUESTION") - (?(17(B consonant "LETTER DHOR DHARM" "FLAG") - (?(18(B invalid nil) - (?(19(B consonant "LETTER NOR NOK" "BIRD") - (?(1:(B consonant "LETTER BOR BED" "FISHHOOK") - (?(1;(B consonant "LETTER POR PAR" "FISH") - (?(1<(B consonant "LETTER HPOR HPER\"" "BEE") - (?(1=(B consonant "LETTER FHOR FHAR" "WALL") - (?(1>(B consonant "LETTER PHOR PHUU" "MOUNTAIN") - (?(1?(B consonant "LETTER FOR FAI" "FIRE") - (?(1@(B invalid nil) - (?(1A(B consonant "LETTER MOR MAR\"" "HORSE") - (?(1B(B consonant "LETTER GNOR GNAR" "MEDICINE") - (?(1C(B consonant "LETTER ROR ROD" "CAR") - (?(1D(B invalid nil) - (?(1E(B consonant "LETTER LOR LIING" "MONKEY") - (?(1F(B invalid nil) - (?(1G(B consonant "LETTER WOR WII" "HAND FAN") - (?(1H(B invalid nil) - (?(1I(B invalid nil) - (?(1J(B consonant "LETTER SOR SEA" "TIGER") - (?(1K(B consonant "LETTER HHOR HHAI" "JAR") - (?(1L(B invalid nil) - (?(1M(B consonant "LETTER OR OOW" "TAKE") - (?(1N(B consonant "LETTER HOR HEA" "BOAT") - (?(1O(B special "ELLIPSIS") - (?(1P(B vowel-base "VOWEL SIGN SARA A") - (?(1Q(B vowel-upper "VOWEL SIGN MAI KAN") - (?(1R(B vowel-base "VOWEL SIGN SARA AR") - (?(1S(B vowel-base "VOWEL SIGN SARA AM") - (?(1T(B vowel-upper "VOWEL SIGN SARA I") - (?(1U(B vowel-upper "VOWEL SIGN SARA II") - (?(1V(B vowel-upper "VOWEL SIGN SARA EU") - (?(1W(B vowel-upper "VOWEL SIGN SARA UR") - (?(1X(B vowel-lower "VOWEL SIGN SARA U") - (?(1Y(B vowel-lower "VOWEL SIGN SARA UU") - (?(1Z(B invalid nil) - (?(1[(B vowel-upper "VOWEL SIGN MAI KONG") - (?(1\(B semivowel-lower "SEMIVOWEL SIGN LO") - (?(1](B vowel-base "SEMIVOWEL SIGN SARA IA") - (?(1^(B invalid nil) - (?(1_(B invalid nil) - (?(1`(B vowel-base "VOWEL SIGN SARA EE") - (?(1a(B vowel-base "VOWEL SIGN SARA AA") - (?(1b(B vowel-base "VOWEL SIGN SARA OO") - (?(1c(B vowel-base "VOWEL SIGN SARA EI MAI MUAN\"") - (?(1d(B vowel-base "VOWEL SIGN SARA AI MAI MAY") - (?(1e(B invalid nil) - (?(1f(B special "KO LA (REPETITION)") - (?(1g(B invalid nil) - (?(1h(B tone "TONE MAI EK") - (?(1i(B tone "TONE MAI THO") - (?(1j(B tone "TONE MAI TI") - (?(1k(B tone "TONE MAI JADTAWAR") - (?(1l(B tone "CANCELLATION MARK") - (?(1m(B vowel-upper "VOWEL SIGN SARA OR") - (?(1n(B invalid nil) - (?(1o(B invalid nil) - (?(1p(B special "DIGIT ZERO") - (?(1q(B special "DIGIT ONE") - (?(1r(B special "DIGIT TWO") - (?(1s(B special "DIGIT THREE") - (?(1t(B special "DIGIT FOUR") - (?(1u(B special "DIGIT FIVE") - (?(1v(B special "DIGIT SIX") - (?(1w(B special "DIGIT SEVEN") - (?(1x(B special "DIGIT EIGHT") - (?(1y(B special "DIGIT NINE") - (?(1z(B invalid nil) - (?(1{(B invalid nil) - (?(1|(B consonant "LETTER NHOR NHUU" "MOUSE") - (?(1}(B consonant "LETTER MHOR MHAR" "DOG") - (?(1~(B invalid nil))) + (?ງ consonant "LETTER NGOR NGUU" "SNAKE") + (?ຈ consonant "LETTER JOR JUA" "BUDDHIST NOVICE") + (?ຉ invalid nil) + (?ຊ consonant "LETTER XOR X\"ARNG" "ELEPHANT") + (?຋ invalid nil) + (?ຌ invalid nil) + (?ຍ consonant "LETTER YOR YUNG" "MOSQUITO") + (?ຎ invalid nil) + (?ຎ invalid nil) + (?ຎ invalid nil) + (?ຎ invalid nil) + (?ຎ invalid nil) + (?ຎ invalid nil) + (?ດ consonant "LETTER DOR DANG" "NOSE") + (?ຕ consonant "LETTER TOR TAR" "EYE") + (?ຖ consonant "LETTER THOR THUNG" "TO ASK,QUESTION") + (?ທ consonant "LETTER DHOR DHARM" "FLAG") + (?ຘ invalid nil) + (?ນ consonant "LETTER NOR NOK" "BIRD") + (?ບ consonant "LETTER BOR BED" "FISHHOOK") + (?ປ consonant "LETTER POR PAR" "FISH") + (?ຜ consonant "LETTER HPOR HPER\"" "BEE") + (?ຝ consonant "LETTER FHOR FHAR" "WALL") + (?ພ consonant "LETTER PHOR PHUU" "MOUNTAIN") + (?ຟ consonant "LETTER FOR FAI" "FIRE") + (?ຠ invalid nil) + (?ມ consonant "LETTER MOR MAR\"" "HORSE") + (?ຢ consonant "LETTER GNOR GNAR" "MEDICINE") + (?ຣ consonant "LETTER ROR ROD" "CAR") + (?຤ invalid nil) + (?ລ consonant "LETTER LOR LIING" "MONKEY") + (?຦ invalid nil) + (?ວ consonant "LETTER WOR WII" "HAND FAN") + (?ຨ invalid nil) + (?ຩ invalid nil) + (?ສ consonant "LETTER SOR SEA" "TIGER") + (?ຫ consonant "LETTER HHOR HHAI" "JAR") + (?ຬ invalid nil) + (?ອ consonant "LETTER OR OOW" "TAKE") + (?ຮ consonant "LETTER HOR HEA" "BOAT") + (?ຯ special "ELLIPSIS") + (?ະ vowel-base "VOWEL SIGN SARA A") + (?ັ vowel-upper "VOWEL SIGN MAI KAN") + (?າ vowel-base "VOWEL SIGN SARA AR") + (?ຳ vowel-base "VOWEL SIGN SARA AM") + (?ິ vowel-upper "VOWEL SIGN SARA I") + (?ີ vowel-upper "VOWEL SIGN SARA II") + (?ຶ vowel-upper "VOWEL SIGN SARA EU") + (?ື vowel-upper "VOWEL SIGN SARA UR") + (?ຸ vowel-lower "VOWEL SIGN SARA U") + (?ູ vowel-lower "VOWEL SIGN SARA UU") + (?຺ invalid nil) + (?ົ vowel-upper "VOWEL SIGN MAI KONG") + (?ຼ semivowel-lower "SEMIVOWEL SIGN LO") + (?ຽ vowel-base "SEMIVOWEL SIGN SARA IA") + (?຾ invalid nil) + (?຿ invalid nil) + (?ເ vowel-base "VOWEL SIGN SARA EE") + (?ແ vowel-base "VOWEL SIGN SARA AA") + (?ໂ vowel-base "VOWEL SIGN SARA OO") + (?ໃ vowel-base "VOWEL SIGN SARA EI MAI MUAN\"") + (?ໄ vowel-base "VOWEL SIGN SARA AI MAI MAY") + (?໅ invalid nil) + (?ໆ special "KO LA (REPETITION)") + (?໇ invalid nil) + (?່ tone "TONE MAI EK") + (?້ tone "TONE MAI THO") + (?໊ tone "TONE MAI TI") + (?໋ tone "TONE MAI JADTAWAR") + (?໌ tone "CANCELLATION MARK") + (?ໍ vowel-upper "VOWEL SIGN SARA OR") + (?໎ invalid nil) + (?໏ invalid nil) + (?໐ special "DIGIT ZERO") + (?໑ special "DIGIT ONE") + (?໒ special "DIGIT TWO") + (?໓ special "DIGIT THREE") + (?໔ special "DIGIT FOUR") + (?໕ special "DIGIT FIVE") + (?໖ special "DIGIT SIX") + (?໗ special "DIGIT SEVEN") + (?໘ special "DIGIT EIGHT") + (?໙ special "DIGIT NINE") + (?໚ invalid nil) + (?໛ invalid nil) + (?ໜ consonant "LETTER NHOR NHUU" "MOUSE") + (?ໝ consonant "LETTER MHOR MHAR" "DOG") + (?ໞ invalid nil))) elm) (while l (setq elm (car l) l (cdr l)) @@ -185,115 +185,115 @@ (defconst lao-transcription-consonant-alist (sort '(;; single consonants - ("k" . "(1!(B") - ("kh" . "(1"(B") - ("qh" . "(1$(B") - ("ng" . "(1'(B") - ("j" . "(1((B") - ("s" . "(1J(B") - ("x" . "(1*(B") - ("y" . "(1-(B") - ("d" . "(14(B") - ("t" . "(15(B") - ("th" . "(16(B") - ("dh" . "(17(B") - ("n" . "(19(B") - ("b" . "(1:(B") - ("p" . "(1;(B") - ("hp" . "(1<(B") - ("fh" . "(1=(B") - ("ph" . "(1>(B") - ("f" . "(1?(B") - ("m" . "(1A(B") - ("gn" . "(1B(B") - ("l" . "(1E(B") - ("r" . "(1C(B") - ("v" . "(1G(B") - ("w" . "(1G(B") - ("hh" . "(1K(B") - ("O" . "(1M(B") - ("h" . "(1N(B") - ("nh" . "(1|(B") - ("mh" . "(1}(B") - ("lh" . ["(1K\(B"]) + ("k" . "ກ") + ("kh" . "ຂ") + ("qh" . "ຄ") + ("ng" . "ງ") + ("j" . "ຈ") + ("s" . "ສ") + ("x" . "ຊ") + ("y" . "ຍ") + ("d" . "ດ") + ("t" . "ຕ") + ("th" . "ຖ") + ("dh" . "ທ") + ("n" . "ນ") + ("b" . "ບ") + ("p" . "ປ") + ("hp" . "ຜ") + ("fh" . "ຝ") + ("ph" . "ພ") + ("f" . "ຟ") + ("m" . "ມ") + ("gn" . "ຢ") + ("l" . "ລ") + ("r" . "ຣ") + ("v" . "ວ") + ("w" . "ວ") + ("hh" . "ຫ") + ("O" . "ອ") + ("h" . "ຮ") + ("nh" . "ໜ") + ("mh" . "ໝ") + ("lh" . ["ຫຼ"]) ;; double consonants - ("ngh" . ["(1K'(B"]) - ("yh" . ["(1K](B"]) - ("wh" . ["(1KG(B"]) - ("hl" . ["(1KE(B"]) - ("hy" . ["(1K-(B"]) - ("hn" . ["(1K9(B"]) - ("hm" . ["(1KA(B"]) + ("ngh" . ["ຫງ"]) + ("yh" . ["ຫຽ"]) + ("wh" . ["ຫວ"]) + ("hl" . ["ຫລ"]) + ("hy" . ["ຫຍ"]) + ("hn" . ["ຫນ"]) + ("hm" . ["ຫມ"]) ) (function (lambda (x y) (> (length (car x)) (length (car y))))))) (defconst lao-transcription-semi-vowel-alist - '(("r" . "(1\(B"))) + '(("r" . "ຼ"))) (defconst lao-transcription-vowel-alist - (sort '(("a" . "(1P(B") - ("ar" . "(1R(B") - ("i" . "(1T(B") - ("ii" . "(1U(B") - ("eu" . "(1V(B") - ("ur" . "(1W(B") - ("u" . "(1X(B") - ("uu" . "(1Y(B") - ("e" . ["(1`P(B"]) - ("ee" . "(1`(B") - ("ae" . ["(1aP(B"]) - ("aa" . "(1a(B") - ("o" . ["(1bP(B"]) - ("oo" . "(1b(B") - ("oe" . ["(1`RP(B"]) - ("or" . "(1m(B") - ("er" . ["(1`T(B"]) - ("ir" . ["(1`U(B"]) - ("ua" . ["(1[GP(B"]) - ("uaa" . ["(1[G(B"]) - ("ie" . ["(1`Q]P(B"]) - ("ia" . ["(1`Q](B"]) - ("ea" . ["(1`VM(B"]) - ("eaa" . ["(1`WM(B"]) - ("ai" . "(1d(B") - ("ei" . "(1c(B") - ("ao" . ["(1`[R(B"]) - ("aM" . "(1S(B")) + (sort '(("a" . "ະ") + ("ar" . "າ") + ("i" . "ິ") + ("ii" . "ີ") + ("eu" . "ຶ") + ("ur" . "ື") + ("u" . "ຸ") + ("uu" . "ູ") + ("e" . ["ເະ"]) + ("ee" . "ເ") + ("ae" . ["ແະ"]) + ("aa" . "ແ") + ("o" . ["ໂະ"]) + ("oo" . "ໂ") + ("oe" . ["ເາະ"]) + ("or" . "ໍ") + ("er" . ["ເິ"]) + ("ir" . ["ເີ"]) + ("ua" . ["ົວະ"]) + ("uaa" . ["ົວ"]) + ("ie" . ["ເັຽະ"]) + ("ia" . ["ເັຽ"]) + ("ea" . ["ເຶອ"]) + ("eaa" . ["ເືອ"]) + ("ai" . "ໄ") + ("ei" . "ໃ") + ("ao" . ["ເົາ"]) + ("aM" . "ຳ")) (function (lambda (x y) (> (length (car x)) (length (car y))))))) ;; Maa-sakod is put at the tail. (defconst lao-transcription-maa-sakod-alist - '(("k" . "(1!(B") - ("g" . "(1'(B") - ("y" . "(1-(B") - ("d" . "(14(B") - ("n" . "(19(B") - ("b" . "(1:(B") - ("m" . "(1A(B") - ("v" . "(1G(B") - ("w" . "(1G(B") + '(("k" . "ກ") + ("g" . "ງ") + ("y" . "ຍ") + ("d" . "ດ") + ("n" . "ນ") + ("b" . "ບ") + ("m" . "ມ") + ("v" . "ວ") + ("w" . "ວ") )) (defconst lao-transcription-tone-alist - '(("'" . "(1h(B") - ("\"" . "(1i(B") - ("^" . "(1j(B") - ("+" . "(1k(B") - ("~" . "(1l(B"))) + '(("'" . "່") + ("\"" . "້") + ("^" . "໊") + ("+" . "໋") + ("~" . "໌"))) (defconst lao-transcription-punctuation-alist - '(("\\0" . "(1p(B") - ("\\1" . "(1q(B") - ("\\2" . "(1r(B") - ("\\3" . "(1s(B") - ("\\4" . "(1t(B") - ("\\5" . "(1u(B") - ("\\6" . "(1v(B") - ("\\7" . "(1w(B") - ("\\8" . "(1x(B") - ("\\9" . "(1y(B") - ("\\\\" . "(1f(B") - ("\\$" . "(1O(B"))) + '(("\\0" . "໐") + ("\\1" . "໑") + ("\\2" . "໒") + ("\\3" . "໓") + ("\\4" . "໔") + ("\\5" . "໕") + ("\\6" . "໖") + ("\\7" . "໗") + ("\\8" . "໘") + ("\\9" . "໙") + ("\\\\" . "ໆ") + ("\\$" . "ຯ"))) (defconst lao-transcription-pattern (concat @@ -332,39 +332,39 @@ "Regexp of Roman transcription pattern for one Lao syllable.") (defconst lao-vowel-reordering-rule - '(("(1P(B" (0 ?(1P(B) (0 ?(1Q(B)) - ("(1R(B" (0 ?(1R(B)) - ("(1T(B" (0 ?(1U(B)) - ("(1U(B" (0 ?(1U(B)) - ("(1V(B" (0 ?(1V(B)) - ("(1W(B" (0 ?(1W(B)) - ("(1X(B" (0 ?(1X(B)) - ("(1Y(B" (0 ?(1Y(B)) - ("(1`P(B" (?(1`(B 0 ?(1P(B) (?(1`(B 0 ?(1Q(B)) - ("(1`(B" (?(1`(B 0)) - ("(1aP(B" (?(1a(B 0 ?(1P(B) (?(1a(B 0 ?(1Q(B)) - ("(1a(B" (?(1a(B 0)) - ("(1bP(B" (?(1b(B 0 ?(1P(B) (0 ?(1[(B) (?(1-(B ?(1b(B 0 ?(1Q(B) (?(1G(B ?(1b(B 0 ?(1Q(B)) - ("(1b(B" (?(1b(B 0)) - ("(1`RP(B" (?(1`(B 0 ?(1R(B ?(1P(B) (0 ?(1Q(B ?(1M(B)) - ("(1m(B" (0 ?(1m(B) (0 ?(1M(B)) - ("(1`T(B" (?(1`(B 0 ?(1T(B)) - ("(1`U(B" (?(1`(B 0 ?(1U(B)) - ("(1[GP(B" (0 ?(1[(B ?(1G(B ?(1P(B) (0 ?(1Q(B ?(1G(B)) - ("(1[G(B" (0 ?(1[(B ?(1G(B) (0 ?(1G(B)) - ("(1`Q]P(B" (?(1`(B 0 ?(1Q(B ?(1](B ?(1P(B) (0 ?(1Q(B ?(1](B)) - ("(1`Q](B" (?(1`(B 0 ?(1Q(B ?(1](B) (0 ?(1](B)) - ("(1`VM(B" (?(1`(B 0 ?(1V(B ?(1M(B)) - ("(1`WM(B" (?(1`(B 0 ?(1W(B ?(1M(B)) - ("(1d(B" (?(1d(B 0)) - ("(1c(B" (?(1c(B 0)) - ("(1`[R(B" (?(1`(B 0 ?(1[(B ?(1R(B)) - ("(1S(B" (0 ?(1S(B))) + '(("ະ" (0 ?ະ) (0 ?ັ)) + ("າ" (0 ?າ)) + ("ິ" (0 ?ີ)) + ("ີ" (0 ?ີ)) + ("ຶ" (0 ?ຶ)) + ("ື" (0 ?ື)) + ("ຸ" (0 ?ຸ)) + ("ູ" (0 ?ູ)) + ("ເະ" (?ເ 0 ?ະ) (?ເ 0 ?ັ)) + ("ເ" (?ເ 0)) + ("ແະ" (?ແ 0 ?ະ) (?ແ 0 ?ັ)) + ("ແ" (?ແ 0)) + ("ໂະ" (?ໂ 0 ?ະ) (0 ?ົ) (?ຍ ?ໂ 0 ?ັ) (?ວ ?ໂ 0 ?ັ)) + ("ໂ" (?ໂ 0)) + ("ເາະ" (?ເ 0 ?າ ?ະ) (0 ?ັ ?ອ)) + ("ໍ" (0 ?ໍ) (0 ?ອ)) + ("ເິ" (?ເ 0 ?ິ)) + ("ເີ" (?ເ 0 ?ີ)) + ("ົວະ" (0 ?ົ ?ວ ?ະ) (0 ?ັ ?ວ)) + ("ົວ" (0 ?ົ ?ວ) (0 ?ວ)) + ("ເັຽະ" (?ເ 0 ?ັ ?ຽ ?ະ) (0 ?ັ ?ຽ)) + ("ເັຽ" (?ເ 0 ?ັ ?ຽ) (0 ?ຽ)) + ("ເຶອ" (?ເ 0 ?ຶ ?ອ)) + ("ເືອ" (?ເ 0 ?ື ?ອ)) + ("ໄ" (?ໄ 0)) + ("ໃ" (?ໃ 0)) + ("ເົາ" (?ເ 0 ?ົ ?າ)) + ("ຳ" (0 ?ຳ))) "Alist of Lao vowel string vs the corresponding re-ordering rule. Each element has this form: (VOWEL NO-MAA-SAKOD-RULE WITH-MAA-SAKOD-RULE (MAA-SAKOD-0 RULE-0) ...) -VOWEL is a vowel string (e.g. \"(1`Q]P(B\"). +VOWEL is a vowel string (e.g. \"ເັຽະ\"). NO-MAA-SAKOD-RULE is a rule to re-order and modify VOWEL following a consonant. It is a list vowel characters or 0. The element 0 @@ -375,8 +375,8 @@ following a consonant and preceding a maa-sakod character. If it is nil, NO-MAA-SAKOD-RULE is used. The maa-sakod character is always appended at the tail. -For instance, rule `(\"(1`WM(B\" (?(1`(B t ?(1W(B ?(1M(B))' tells that this vowel -string following a consonant `(1!(B' should be re-ordered as \"(1`!WM(B\". +For instance, rule `(\"ເືອ\" (?ເ t ?ື ?ອ))' tells that this vowel +string following a consonant `ກ' should be re-ordered as \"ເກືອ\". Optional (MAA-SAKOD-n RULE-n) are rules specially applied to maa-sakod character MAA-SAKOD-n.")