Created: Fri Mar 11 13:00:29 1994
Author:  Kuwada
Modified: Fri Mar 25 19:32:14 1994
Editor: Kuwada
Subject: multi-lingual-henkan
Summary: Mule $B>e$G$N%m!<%^;zB?9q8lJQ49%D!<%k(B (Ver. 0.5)


$B!Z%$%s%9%H!<%k![(B
     1) Mule + Egg $B$G;HMQ$9$k>l9g(B
        mlh.el, mlh+wnn4-egg.el $B$r(B load-path $B$ND%$C$F$"$k%G%#%l%/%H%j(B
        $B$K$*$$$F(B, byte-compile $B$7$F$/$@$5$$!%(B

     2) Mule + Canna $B$G;HMQ$9$k>l9g(B
        mlh.el, mlh+canna.el $B$r(B load-path $B$ND%$C$F$"$k%G%#%l%/%H%j(B
        $B$K$*$$$F(B, byte-compile $B$7$F$/$@$5$$!%(B

     3) Mule + SJ3 $B$G;HMQ$9$k>l9g(B
        mlh.el, mlh+sj3-egg.el $B$r(B load-path $B$ND%$C$F$"$k%G%#%l%/%H%j(B
        $B$K$*$$$F(B, byte-compile $B$7$F$/$@$5$$!%(B

     $BI,MW$K1~$8$F(B, mlh-ext.el, nihongo.el, ltn.el, hangul.el $B$b(B 
     byte-compile $B$7$F$/$@$5$$!%(B

     $B$3$N;~!$?7$7$$(B byte compiler $B$@$H(B free variable $B$K4X$7$F(B
     warning $B$,$G$^$9$,!$5$$K$9$kI,MW$O$"$j$^$;$s!%(B
     (mlh $B$O(B dynamic binding $B$NJQ?t$r$?$/$5$s;H$$$^$9(B) 

     $B!NCm0U!O(B
     1) mlh.el $B$N@hF,$K(B autoload $B$G5-=R$5$l$F$$$k$h$&$K%G%U%)%k%H(B
        $B$N@_Dj$G$O!$(Bnihongo.*, , ltn.*, hangul.*, greek.*,
        zhongwen.* $B$N3F%U%!%$%k$O(B load-path $B$ND%$C$F$"$k%G%#%l%/(B
        $B%H%j$K%5%V%G%#%l%/%H%j(B mlh $B$r:n@.$7$F$=$N2<$K$*$/I,MW$,(B
        $B$"$j$^$9!%(B

     2) Mule-1.0 $B$G;HMQ$9$k>l9g$O!$$3$N%Q%C%1!<%8$KImB0$N(B canna.el 
        $B$r;HMQ$7$F$/$@$5$$!%(B


$B!Z=`(B  $BHw![(B
   $B!&(B.emacs $B%U%!%$%kFb$K<!$N<0$r5-=R$7$^$9!%(B

     (load-library "mlh")
     (load-library "mlh+wnn4-egg")   ;Mule + Egg $B$G;HMQ(B
     ;;(load-library "mlh+canna")     ;Mule + Canna $B$G;HMQ(B
     ;;(load-library "mlh+sj3-egg")   ;Mule + SJ3 $B$G;HMQ(B
     (define-key global-map " "  'mlh-space-bar-backward-henkan)


$B!Z@b(B  $BL@![(B
   $B!&%m!<%^;zF~NO$r9T$J$C$FJQ49$7$?$$$H$3$m$G%9%i%C%7%e(B(/)$B$rF~NO(B
     $B$7$F!$%9%Z!<%9%-!<$rF~NO$9$l$P!$JQ49$r9T$J$$$^$9!%(B
     Egg $B$N$h$&$K(B C-\ $B$G%m!<%^;z$+$J%b!<%I$KF~$C$?$j!$(B
     Canna $B$N$h$&$K(B C-o $B$GF|K\8l%b!<%I$KF~$kI,MW$O$"$j$^$;$s!%(B

   $B!&%9%Z!<%9%-!<$NF~NOA0$NJ8;z$K$h$C$FJQ49$J$I$N=hM}$r<B9T$9$k$+(B
     $B$I$&$+$NH=CG$r9T$J$C$F$$$^$9!%(B
     $BJQ?t(B mlh-conversion-scheme-table $B$GDj5A$5$l$F$$$^$9!%(B

   $B!&(BUndo (C-_) $B$r<B9T$9$k$H3NDj8e$G$b%9%Z!<%9%-!<$rF~NO$9$kA0$N(B
     $B>uBV$KLa$j$^$9!%$3$l$O!$DL>o$N(B Egg $B$d(B Canna $B$G$N;HMQ$h$j$O(B
     $BJXMx$G$9!%(B


$B!ZJQ49@)8fJ8;z![(B
   $B!&0J2<$K%9%Z!<%9%-!<$NF~NOA0$NJ8;z$N0c$$$K$h$k=hM}$r<($7$^$9!%(B
     $B$3$l$i$OJQ?t(B mlh-conversion-scheme-table $B$GDj5A$5$l$F$$$^$9!%(B

	/	$B$=$l$h$j:8$NJ8;zNs$r%m!<%^;z$H8+$J$7$FJQ49!%(B
	H/	$B$=$l$h$j:8$N$R$i$,$JJ8;zNs$r4A;z$KJQ49!%(B(Hiragana)
          	$B$7$?7k2L(B $B$rA^F~!%(B(Lisp)
	L/	$B$=$l$h$j:8$NJ8;zNs$r(B Emacs-Lisp $B<0$H8+$J$7$F$=$l$r<B9T(B
	W/	$BB0$K$$$&A43Q$N6uGr$rA^F~!%(B(zenkaku White space)
	X/	$B$=$l$h$j:8$NJ8;zNs$rJQ49BP>]$K$7$J$$!%(B
		$B$?$@$7!$(Bq/ $B$H0c$$%9%Z!<%9$rA^F~!%(B(eXit)
	Z/	$BB0$K$$$&A43Q$KJQ49!%(B(Zenkaku)
	c/	$B$=$l$h$j:8$NJ8;zNs$N@hF,$rBgJ8;z$KJQ49!%(B(Capitalize)
	d/	$B:8$NJ8;zNs$r%f!<%6Dj5A<-=q(B(mlh-userdef-table)$B$r$b$H$K(B
          	$BJQ49!%(B (user Definition)
	f/	$B$R$i$,$JJQ49!%(B(Firagana ??)
	g/	$B:8$NJ8;zNs$r%.%j%7%cJ8;z$KJQ49!%(B(Greek letter)
	h/	$B:8$NJ8;zNs$r4Z9q8l$KJQ49!%(B(Hangul)
	j/	$B:8$NJ8;zNs$r(B 16 $B?J$N(BJIS $B%3!<%I$H8+$J$7$FJQ49!%(B(JIS-code)
	k/	$B%+%?%+%JJQ49!%(B(Katakana)
	l/	$B9g;zJQ49!%(B(Ligature)                $B!NL$%$%s%W%j%a%s%H!O(B
	p/	$B$=$l$h$j:8$NJ8;zNs$rBgJ8;z$KJQ49!%(B(uPcase)
	q/	$B$=$l$h$j:8$NJ8;zNs$rJQ49BP>]$K$7$J$$!%(B(Quit)
	s/	$BL5JQ49!%(B(Small letter)
	NUMBERw/
          	NUMBER $B8D$N%9%Z!<%9$rA^F~!%(B(White space)
	x/	$B$=$l$h$j:8$NJ8;zNs$r%f!<%6$,Dj5A$7$?4X?t(B 
          	mlh-userdef-function $B$rMQ$$$FJQ49(B($B0lHL%f!<%6$O;HMQ$9$k(B
          	$B$3$H$O$^$:$J$$(B)$B!%(B(eXecute)
	z/	$B$=$l$h$j:8$NJ8;zNs$r(B Zhongwen $B$KJQ49!%(B(Zhongwen)

   $B!&%9%Z!<%9%-!<$NF~NOA0$NJ8;z$,(B / $B$G!$(B / $B$NA0$K$OJQ49;X<(J8;z(B
     (H, L, W, X, Z, c, d, f, g, h, j, k, l, p, q, s, w, x, z) 
     $B$,$J$$>l9g!$(BEgg $B$G$$$&4A;zJQ49%b!<%I$K$J$j$^$9!%(B


$B!Z4A;zJQ49%b!<%IFb$N%3%^%s%I![(B
   $B!&(BEgg $B$d(B Canna $B$HF1$8$b$N(B
	RET     $B$9$Y$F$NJQ49$r3NDj(B
	SPC     $B<!8uJd(B
	C-SPC   $B<!8uJd(B             (Canna $B$N%G%U%)%k%H$G$OL$Dj5A(B)
	C-a	$B@hF,J8@a$X0\F0(B
	C-b	$BD>A0$NJ8@a$X0\F0(B
	C-e	$B:G=*J8@a$X0\F0(B
	C-f     $BD>8e$NJ8@a$X0\F0(B
	C-i	$BJ8@a$ND9$5$r=L>.(B
	C-l	$B$9$Y$F$NJQ49$r3NDj(B (Canna $B$N%G%U%)%k%H$H$O0[$J$k(B)
	C-n	$B<!8uJd(B
	C-o	$BJ8@a$ND9$5$r3HBg(B
	C-p	$BA08uJd(B
	M-s	$B8uJd$N0lMw$rI=<((B

   $B!&(BEgg $B$d(B Canna $B$H$O0[$J$k$b$N(B

  	DEL 	$BJQ49BP>]$NJ8;zNs$r:o=|$7$F!$4A;zJQ49%b!<%I$+$iC&=P(B
	C-c	$BJQ49BP>]$NJ8;zNs$r:o=|$7$F!$4A;zJQ49%b!<%I$+$iC&=P(B
                Canna $B$r;HMQ$7$F$$$k>l9g!$ItJ,L5JQ49%b!<%I$K0\9T(B
		Canna $B$N>l9g!$;HMQ$K:]$7$F$O@)Ls$N9`$r;2>H(B
	C-g	$BJQ49BP>]$NJ8;zNs$r:o=|$7$F!$4A;zJQ49%b!<%I$+$iC&=P(B
                Canna $B$r;HMQ$7$F$$$k>l9g!$(BCanna $B$N$H$j$d$a(B
	C-k     Canna $B$r;HMQ$7$F$$$k>l9g!$%+!<%=%k0LCV$+$i:8$NJ8;z(B
                $BNs$rItJ,3NDj$7$F!$9TKv$^$G$NJ8;zNs$r$R$i$,$J$KLa$9!%(B
                $B$=$l0J30$OL$Dj5A(B
	C-_     $B%9%Z!<%9%-!<$rF~NO$9$kA0$N>uBV$KLa$k!%(B(Undo)


$B!Z(Bspacing$B![(B
   $B!&(Bspacing ($B1Q?t;z$HF|K\8lEy$N4V$N6uGr$NA^F~(B)$B$N@)8f$O!$JQ?t(B
     mlh-syntax-table, mlh-space-control $B$G$G$-$^$9!%(B

   $B!&(Bmlh.el $B$KDj5A$5$l$F$$$k4X?t(B mlh-do-spacing $B$H(B Info $B$N(B Mule 
     $B$G(B char-syntax $B$H(B char-category $B$"$?$j$r;2>H$7$F$/$@$5$$!%(B


$B!Z%f!<%6Dj5A<-=q![(B
   $B!&%f!<%6Dj5A<-=q$r$b$H$KJQ49$9$k5!G=(B d/ $B$r;HMQ$9$k$?$a$K$O!$(B
     $BJQ?t(B mlh-userdef-table $B$K0J2<$N$h$&$K(B
     $B%3%s%9%;%k(B ("$BJQ49BP>]J8;zNs(B" . "$BJQ49J8;zNs(B")
     $B$^$?$O(B
     $B%j%9%H(B ("$BJQ49BP>]J8;zNs(B"  "$BJQ49J8;zNs(B1"  "$BJQ49J8;zNs(B2" ...)
     $B$N%j%9%H$r%P%$%s%I$7$F$*$/I,MW$,$"$j$^$9!%(B

      (setq mlh-userdef-table
            '(("maru" . "$B!;(B") ("kmaru" . "$B!|(B")
              ("star" "$B!y(B" "$B!z(B")
              ("hkakko"  "$B!J(B" "$B!L(B" "$B!N(B" "$B!P(B" "$B!R(B" "$B!T(B" "$B!V(B" "$B!X(B" "$B!Z(B")
              ("mkakko"  "$B!K(B" "$B!M(B" "$B!O(B" "$B!Q(B" "$B!S(B" "$B!U(B" "$B!W(B" "$B!Y(B" "$B![(B")
            ))


$B!Z%f!<%6Dj5A4X?t![(B
   $B!&(B x/ $B$G;HMQ$9$k%f!<%6Dj5A4X?t$O!$(B mlh-userdef-function $B$G$9!%(B
     $BJQ495!G=DI2C$N%F%9%H$J$I$K;HMQ$G$-$^$9!%%W%m%0%i%`$NCf?HEy(B
     $B$,$o$+$i$J$$$H$3$N4X?t$ODj5A$G$-$J$$$N$G!$0lHL%f!<%6$,Dj5A(B
     $B$9$k$3$H$O$^$:$J$$$G$7$g$&!%(B


$B!ZJQ495,B'![(B
   $B!&F~NOJ8;zNs$r$I$N$h$&$KJQ49$9$k$+$N5,B'$O!$4X?t(B mlh-defrule 
     $B$rMQ$$$FDj5A$G$-$^$9!%(B
     $BF|K\8l4X78!$4Z9q8l4X78!$%i%F%s7O8@8l4X78$O$=$l$>$l(B 
     nihongo.el, hangul.el, ltn.el $B$GDj5A$5$l$F$$$^$9!%(B

   $B!&=>Mh!$$3$l$i$NJQ495,B'$rJQ99$9$k>l9g$O!$>e5-$N%U%!%$%k$r=$@5(B
     $B$9$kI,MW$,$"$j!$%f!<%6$4$H$N%+%9%?%^%$%:$K$OITJX$G$7$?!%(B
     mlh-0.5 $B$+$i$O!$(Bmlh-defrule* $B4X?t$r?7$?$KMQ0U$7!$JQ495,B'$N(B
     $B:FDj5A!&DI2C!&:o=|$r2DG=$K$7$^$7$?!%(B

     $B!N4X?t(B mlh-defrule* $B$N;EMM!O(B
      mlh-defrule* input output &optional lang)

      $BF~NO$5$l$?%m!<%^;z(B INPUT $B$rJ8;zNs(B OUTPUT $B$KJQ49$9$k5,B'$r(B
      $BDj5A$7$^$9!%(BOUTPUT $B$,(B NIL $B$N>l9g$O!$JQ495,B'$r:o=|$7$^$9!%(B
      $BJQ495,B'$O:FDj5A!&DI2C$b2DG=$G$9!%(B
      $B%*%W%7%g%J%k0z?t(B LANG $B$OJ8;zNs(B "japanese", "hangul", "latin" 
      $B$N$$$:$l$+$G$9!%(BLANG $B$,$3$l$i0J30$+>JN,$5$l$?>l9g$O!$(B"japanese"
      $B$H$_$J$7$^$9!%(B

   $B!&$5$i$K!$JQ495,B'$K>r7o$r5-=R$G$-$k$h$&$K$7$^$7$?!%(B
     $B4X?t(B mlh-defrule-conditional $B$r;HMQ$7$^$9!%(B
     $B$3$N4X?t$OFbIt$G@h$N(B mlh-defrule* $B4X?t$rMQ$$$F$$$^$9$N$G!$(B
     mlh-defrule* $B4X?t$N5!G=(B($B:FDj5A!&DI2C!&:o=|(B)$B$,$=$N$^$^;HMQ(B
     $B$G$-$^$9!%(B

     $B!N4X?t(B mlh-defrule-conditional $B$N;EMM!O(B
     mlh-defrule-conditional input &optional lang &rest conds
     $B0z?t(B CONDS $B$O!$(B(COND1 OUTPUT1) ... (CONDn OUTPUTn) $B$N$h$&$K(B
     $B;XDj$7$^$9!%(B
     INPUT $B$,F~NO$5$l$?;~$K>r7o(B CONDi $B$r=g<!D4$Y!$@.N)$7$?;~$K$O(B 
     OUTPUTi $B$r=PNO$7$^$9!%BhFs0z?t$,%j%9%H$G$J$$>l9g!$$=$l$O%*%W(B
     $B%7%g%J%k0z?t(B LANG $B$,;XDj$5$l$?$b$N$H$_$J$7$^$9!%(B
     $B%*%W%7%g%J%k0z?t(B LANG $B$N;XDjJ}K!$O4X?t(B mlh-defrule* $B$HF1$8(B
     $B$G$9!%(B

   $B!&4X?t(B mlh-defrule-conditional $B$d(B mlh-defrule* $B$rMQ$$$FJQ49(B
     $B5,B'$r:FDj5AEy$9$k>l9g!$3:Ev$9$kJQ495,B'$r4^$`%U%!%$%k$r(B
     $BA0$b$C$F(B load $B$7$F$*$/I,MW$,$"$j$^$9!%(B
     LANG $B$N(B "japanese", "hangul", "latin" $B$=$l$>$l$KBP$7$F!$(B
     nihongo.el, hangul.el, ltn.el $B$,3:Ev$9$k%U%!%$%k$G$9!%(B

   $B!&!N;HMQNc!O(B
       ;;; $B6gFIE@$NJQ495,B'(B
       (load-library "nihongo")     ;need for redefinition of rule
       ;;(load "mlh-ext")           ;autoload
       (mlh-defrule-conditional "."
	 ((boundp 'use-kuten-for-period)
           (cond (use-kuten-for-period "$B!#(B")
	         ((numberp use-kuten-for-period) ". ")
	 	 ((null use-kuten-for-period)    "$B!%(B")
		 (t "$B!%(B")))
	 (t "$B!#(B"))

       (mlh-defrule-conditional ","
	 ((boundp 'use-touten-for-comma)
           (cond (use-touten-for-comma "$B!"(B")
		 ((numberp use-touten-for-comma) ", ")
		 ((null use-touten-for-comma)    "$B!$(B")
		 (t "$B!$(B")))
	 (t "$B!"(B"))

   $B!&!NCm0U!O(B
     $B6gFIE@$NJQ495,B'$K4X$7$F$O!$(Bmlh-0.5 $B$+$iJQ?t(B
     mlh-comma-period-style $B$,MQ0U$5$l$F$$$^$9$N$G!$$=$A$i$rMxMQ(B
     $B$9$k$3$H$b$G$-$^$9!%(B
     $B$3$NJQ?t$K<!$N%7%s%\%k$r@_Dj$9$k$3$H$K$h$j!$6gFIE@$NJQ495,B'(B
     $B$r@)8f$G$-$^$9!%(B

	$B%7%s%\%k(B        "," $B$KBP$9$k=PNO(B    "." $B$KBP$9$k=PNO(B 
       comma-maru           ", "   		"$B!#(B" (default)
       comma2-maru          "$B!$(B"   		"$B!#(B"
       comma-period         ", "   		". "
       comma-period2        ", "   		"$B!%(B"
       comma2-period        "$B!$(B"   		". "
       comma2-period2       "$B!$(B"   		"$B!%(B"
       ten-period2          "$B!"(B"   		"$B!%(B"
       ten-maru             "$B!"(B"   		"$B!#(B"


$B!ZJQ49Nc![(B
   $B!&(B/usr/local/bin/q/nif/bainarik/gaarimasu.f/
        		$B"-(B
     /usr/local/bin/ $B$K%P%$%J%j$,$"$j$^$9!%(B

   $B!&(BEmacsq/haookii./
          $B"-(B
     Emacs $B$OBg$-$$!%(B

   $B!&(Bemacsc/lispc/ha/maclispc/keino/lisps/desu./
               $B"-(B
     Emacs Lisp $B$O(B Maclisp $B7O$N(B lisp $B$G$9!%(B

   $B!&(Bgnup/toha/gnuc/'ss/notc/unixc/noryakudesu./
                $B"-(B
     GNU $B$H$O(B Gnu's Not Unix $B$NN,$G$9!%(B

   $B!&(Bgenzai,jikokuha/w/(current-time-string)L/w/desu./
                $B"-(B
     $B8=:_!$;~9o$O(B Fri Mar 25 19:32:05 1994 $B$G$9!%(B


$B!Z@)(B  $BLs![(B
   $B!&(BCanna $BMQ$N(B mlh $B$NItJ,L5JQ49(B($BJT=8(B)$B%b!<%I$O==J,$K5!G=$7$F(B
     $B$$$^$;$s!%(B
     $B%b!<%II=<($,(B "[$B4A;z(B]" $B$N>uBV$G(B C-c $B$GItJ,L5JQ49(B($BJT=8(B)
     $B%b!<%I(B($B%b!<%II=<($,(B "[$BJT=8(B]" $B$N>uBV(B)$B$KF~$k$H!$0lEY%-!<(B
     $BF~NO$r$7$FJQ49Ey$r9T$J$C$?8e!$3NDj$7$J$$$G%b!<%II=<($,(B 
     "[$BJT=8(B]" $B$N$^$^$G<!$NF~NO$r9T$J$&$H!$@5$7$/%-!<F~NO$G$-(B
     $B$J$/$J$k$3$H$,$"$j$^$9!%(B
     RET $B$G(B ^M $B$H$+@)8f%-!<$,$=$N$^$^%P%C%U%!$KA^F~$5$l$k$h$&$K(B
     $B$J$C$?$i!$(BC-l $B$rF~NO$7$F$_$F$/$@$5$$!%@5>o$J>uBV$KI|5"$9$k(B
     $B$O$:$G$9!%(B
     mlh $B$r(B Canna $B$G;HMQ$9$k>l9g(B C-c $B%3%^%s%I$K$O==J,Cm0U$7$F(B
     $B$/$@$5$$!%(B

   $B!&(Bmlh $B$N%f!<%6Dj5A<-=q$rMQ$$$?JQ49(B ("d/") $B$r9T$&>l9g!$(B
     $B%3%s%9%;%k$G$O$J$/%j%9%H$rMQ$$$FDj5A$7$F$"$k$H$-!$(B
     $B0[>o$J?6Iq$r$9$k$3$H$,$"$j$^$9!%(B
     $B$=$N$h$&$J>l9g$K$O!$(BC-m $B$rF~NO$9$l$P@5>o$KF0:n$7$^$9!%(B

     $B!N(Bmlh-userdef-table $B$K(B ("ten" "$B!&(B") $B$,Dj5A$5$l$F$$$k>l9g$NNc!O(B

        tuika/tend/sakujo/tend/saiteigi/
                    $B"-(B
        $B$D$$$+!&(Bsakujo/tend/saiteigi/ 
               $B",$3$3(B(s $B$N>e(B)$B$K%+!<%=%k$,$$$C$?>uBV$G%O%s%0%"%C%W(B
                 $B$7$?$h$&$J>uBV$K$J$j$^$9!%(B
                 $B$3$N>uBV$G(B C-m $B$rF~NO$9$k$H@5>o$JJQ49$r$7$^$9!%(B
                    $B"-(B
        $BDI2C!&:o=|!&:FDj5A(B

     $B$3$l$O(B recursive-edit $B$KF~$k$?$a$G$9!%(B

