egg-980309.
[elisp/egg.git] / egg-mlh.el
index 588e9db..9331575 100644 (file)
@@ -6,6 +6,7 @@
 ;; Project Leader: Satoru Tomura <tomura@etl.go.jp>
 
 ;; Author: NIIBE Yutaka <gniibe@mri.co.jp>
+;;         KATAYAMA Yoshio <kate@pfu.co.jp>      ; Multilingual Enhancement
 ;; Maintainer: NIIBE Yutaka <gniibe@mri.co.jp>
 ;; Keywords: mule, multilingual, input method
 
@@ -39,6 +40,7 @@ Or else, execute command that space-bar invokes usually."
   (interactive)
   (let ((henkan-begin nil)
         (inhibit-henkan t))
+    (its-select-hiragana)    ;; force to Japanese
     (mlh-backward-henkan)
     (if henkan-begin
         (if (or inhibit-henkan (= henkan-begin (point)))
@@ -46,7 +48,6 @@ Or else, execute command that space-bar invokes usually."
           (progn
             (message "Converting...")
             (sit-for 0)
-           (put-text-property henkan-begin (point) 'its-lang "Japanese")
            (egg-convert-region henkan-begin (point))
             (message "") ))
       (setq this-command 'self-insert-command)
@@ -91,7 +92,7 @@ Or else, execute command that space-bar invokes usually."
     (?q . mlh-quit)
 ;    (?r . mlh-)
     (?s . mlh-small-letter)
-;    (?t . mlh-)
+    (?t . mlh-zhongwen-tw)
     (?u . mlh-kanji)
 ;    (?v . mlh-)
     (?w . mlh-white-space)
@@ -444,7 +445,7 @@ CHAR.  MNEMONIC             CONVERSION SCHEME
   (setq beg (point))
   (goto-char end-marker)
   (forward-char -1)
-  (its-translate-region beg (point))
+  (its-translate-region-internal beg (point))
   (delete-region (point) end-marker)
   (if (null henkan-begin)
       (setq henkan-begin beg)))
@@ -456,7 +457,7 @@ CHAR.  MNEMONIC             CONVERSION SCHEME
   (setq beg (point))
   (goto-char end-marker)
   (forward-char -2)
-  (its-translate-region beg (point))
+  (its-translate-region-internal beg (point))
   (delete-region (point) end-marker)
   (setq henkan-begin (point)))
 
@@ -478,7 +479,7 @@ CHAR.  MNEMONIC             CONVERSION SCHEME
   (setq beg (point))
   (goto-char end-marker)
   (forward-char -2)
-  (its-translate-region beg (point))
+  (its-translate-region-internal beg (point))
   (insert (mlh-hira-to-kata
           (prog1
               (buffer-substring beg (point))
@@ -507,5 +508,50 @@ CHAR.  MNEMONIC             CONVERSION SCHEME
       (setq i (+ i 3)))
     result))
 
+(defun mlh-hangul ()
+  (forward-char -1)
+  (skip-chars-backward "a-zEO-RTW,.[]")
+  (mlh-backward-henkan)
+  (setq beg (point))
+  (setq inhibit-henkan nil)
+  (goto-char end-marker)
+  (forward-char -2)
+  (let (its-current-map its-current-language)
+    (its-select-hangul t)
+    (its-translate-region-internal beg (point)))
+  (delete-region (point) end-marker)
+  (if (null henkan-begin)
+      (setq henkan-begin beg)))
+
+(defun mlh-zhongwen ()
+  (forward-char -1)
+  (skip-chars-backward "a-z0-4 ,.[]")
+  (mlh-backward-henkan)
+  (setq beg (point))
+  (setq inhibit-henkan nil)
+  (goto-char end-marker)
+  (forward-char -2)
+  (let (its-current-map its-current-language)
+    (its-select-pinyin-cn t)
+    (its-translate-region-internal beg (point)))
+  (delete-region (point) end-marker)
+  (if (null henkan-begin)
+      (setq henkan-begin beg)))
+
+(defun mlh-zhongwen-tw ()
+  (forward-char -1)
+  (skip-chars-backward "a-z0-4,.[]")
+  (mlh-backward-henkan)
+  (setq beg (point))
+  (setq inhibit-henkan nil)
+  (goto-char end-marker)
+  (forward-char -2)
+  (let (its-current-map its-current-language)
+    (its-select-pinyin-tw t)
+    (its-translate-region-internal beg (point)))
+  (delete-region (point) end-marker)
+  (if (null henkan-begin)
+      (setq henkan-begin beg)))
+
 (provide 'egg-mlh)
 ;;; egg-mlh.el ends here.