[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00092] Re: Q:tserver & EUC-TW Locale



片山@PFUです。

Date: Fri, 13 Aug 1999 00:50:10 +0900
From: Tsukasa Kishi <t-kishi@sol.dti.ne.jp>

>んーSunOS&X11R5ですか、この組合わせは、XLOCALEを使っているんでしょうか?

これは -DX_LOCALE でコンパイルしているかという意味でしょうか。そ
うでしたら、yes です。

>だとしたら、うちも一度、X11R5時代のLinuxパッケージを入れて実験してみる必要
>があるかなー?

SunOS + X11R5 の xwnmo を X11R6 サーバー上で動かして、X11R6 の 
kterm で入力できるか試してみたのですが、ダメでした。

クライアントも X11R5 なら入力できましたので、全クライアントを 
X11R5 にするなら意味があると思いますが、、、

>>FreeBSD もあるのですが、こちらは zh_TW は手つかずです。

>以前に、libcの国際化については、linuxよりもFreeBSDの方が進んでいると聞いた
>ことがあるんですが、zh_TWは、まだなんですね。

FreeBSD の場合、何故か -DX_LOCALE が付きませんので、setlocale は 
libc のものを使い、そのため /usr/share/locale を見に行きます。

/usr/share/locale には zh_CN、zh_TW ともに入っていませんでした。
zh_CN の方は man mklocale のサンプルを見て作りました。

# xwnmo では中身は何でもいいみたいで、ja_JP にリンクするだけで
#も動きました(^^;

X11R6/lib/X11/locale には zh も zh_TW もあるのですが、どちらもマッ
トウな locale です。つまり、cWnn で使っている omron_udc_zh(四声
と注音の文字集合)が入っていません。

xwnmo や X のクライアントは、こちらも見に行きますので、zh の 
XLC_LOCALE に omron_udc_zh の定義を追加してみたのですが、X11R5 
のクライアントのためかうまくいかず、FreeBSD 2.1.7 の時の 
XLC_LOCALE で無理矢理動かしています。

# X11R5 と FreeBSD 2.1.7 の時の X は wchar が 16 ビットなのです
#が、今の FreeBSD の X の wchar は 32 ビットです

#でも、ja_JP と ko_kR は動いているのが不思議、、、

ここの FreeBSD + X11R6 で make した xwnmo は、kterm から繋ぐと大
抵落ちてしまうなど、動作が安定していませんので、きちんと make で
きていないのかも知れません。

こんな状況なので、zh_TW は手つかずままというわけです。(^^;;;

>それから、Linuxのglibc2では、
>WCSとして、Unicodeがつかわれていますが、FreeBSDではどうなんでしょうか?

まだ調べていないのですが、man mklocale を見ると EUC と UTF2 をサ
ポートしているようです。で、man utf2 を見ると、UCS-2 の範囲しか
サポートしていないようです。:-(

>すいません、間違って書いてますね私。ここらへんは、手元にある「マルチリンガル
>環境の実現」しか頼れる資料が無いんですよね。

この本には Wnn で使っているコードについて書かれていないようです。
僅かに“EUC プロセスコード”と“Yincode”という記述がありますが、
詳しい記述はないようです。

#本を戴いておきながら、文句言って済みません(_ _)>戸村さん

>>CS3 に第2面を割り当てているのは Big5 との変換のためですが、Wnn 4.2 の辞書
>>は第1面の文字しか使っていないようです。

>ここなんですが、もしも、辞書ファイルを直接イジって、第2面の文字を追加したい
>ときには、通常のEUC-TWとして、3バイトコードを使うのでしょうか、それとも、0x8E
>を使った2バイトコードでファイルを作成するんでしょうか?また、私のところでは、

次のような EUC エンコードになります。

    G0 (0x20 〜 0x7f)                      ASCII
    G1 (0xa1 0xa1 〜 0xfe 0xfe)            CNS 11643-1
    G2 (0x8e 0xa1 〜 0x8e 0xfe)            omron_udc_zh
    G3 (0x8f 0xa1 0xa1 〜 0x8f 0xfe 0xfe)  CNS 11643-2

#個人的には euc-twnn と呼んでいます(^^;

>EUC-TWを表示できるTerminalが無く、Emacs20.3においてもEUC-TWのファイルが編集
>出来ないのですが、片山さんのところでは、どういったツールを使っているのか教えて
>頂きたいです。

cWnn で使っている EUC については coding-system を自作して使って
います。

――――ここから――――ここから――――ここから――――ここから――――
(cond
 ;; Mule 3.0 (Emacs 20)
 ((>= (aref mule-version 0) ?3)
  (make-coding-system
   'cwnn-iso-8bit 2 ?C
   "ISO 2022 based EUC encoding for cWnn"
   '(ascii chinese-gb2312 chinese-sisheng nil
	   short ascii-eol ascii-cntl nil nil single-shift)
   '((safe-charsets ascii chinese-gb2312 chinese-sisheng)))
  (define-coding-system-alias 'euc-cwnn 'cwnn-iso-8bit)

  (make-coding-system
   'twnn-iso-8bit 2 ?T
   "ISO 2022 based EUC encoding for tWnn"
   '(ascii chinese-cns11643-1 chinese-sisheng chinese-cns11643-2
	   short ascii-eol ascii-cntl nil nil single-shift)
   '((safe-charsets ascii chinese-cns11643-1 chinese-cns11643-2 chinese-sisheng)))
  (define-coding-system-alias 'euc-twnn 'twnn-iso-8bit))

 ;; Mule 2.3
 (t
  (make-coding-system
   '*euc-taiwan* 2
   ?T "Coding-system of Tiwanese CNS 11643 EUC"
   t
   (list lc-ascii lc-cns1 lc-sisheng lc-cns2
	 'short 'ascii-eol 'ascii-cntl))))
――――ここまで――――ここまで――――ここまで――――ここまで――――

euc-twnn(Mule 2.3 では *euc-taiwan*)が、それです。

euc-cwnn に対応する Mule 2.3 の coding-system がありませんが、
*euc-china* で lc-sisheng が使えるようになっているからです。

#ですから、*euc-china* はEUC-CN より拡張された形になっています

EUC-TW のファイルは見たことがありませんので、その coding-system 
は作っていません。作っても大したことではないのですが、、、
--
片山@PFU