Xman Version 3.1.6 (I18N) - X11R6 1)はじめに X11R5の時代には,その contribution に I18N(Internationalization)の実装実験 を行なった,いくつかのクライアントプログラムが含まれていました.オリジナルの xman-i18nもこのようなプログラムの一つです. これらのプログラムにはX11R6でも配布されているプログラム(xeditなど)もありま すが,残念ながら xman の i18n は削られてしまいました. そこで X11R5のxman-i18nに実装されたI18Nの部分を,X11R6のxmanに加えてやれば X11R6でもxman-i18nを利用できるようになるのでは? と考えて,試しに手がけてみ たところ,思ったよりも簡単に実現できました. 本パッチはオリジナルのxman-i18nから以下のファイルをそのまま拝借しています. ScrollByL.c ScrollByL.h ScrollByLP.h buttons.c Xman-jis.ad Xman-mscode.ad Xman-ujis.ad Xman.ad (Xman-latin1.ad にリネーム) 2)パッチ&インストール 本パッチはXFree86.3.1.2に含まれる,xmanのソースに適用します.X11R6/R6.1に 含まれるxmanはヴァージョンは同じですがXFree86でいくつか拡張が行なわれていま すので,パッチがリジェクトしますので注意して下さい.(XFree86でないX11R6/R6.1 の環境の方は,XFree86のcontributionに対するパッチ (XFree86-contrib-3.1.2.diff.gz)を手に入れ,xmanのソースにパッチを当てておい て下さい.XFree86のcontributionに対するパッチは例えば, ftp://ftp.iij.ad.jp/pub/X/XFree86/XFree86/3.1.2/patches/XFree86-contrib-3.1.2.diff.gz などにありますので,各自御用意下さい) 本パッチをxmanのディレクトリにcdして当てて下さい. patch -p1 < xman-3.1.6-i18n++.patch あとは 普通に xmkmf make でコンパイルします.念のためテストしましょう.Xman-mscode.ad, Xman-ujis.ad, Xman-jis.ad いずれか自分が使用しているコードにのものを"~/Xman"としてコピー します. リソースデータベース(~/.Xresource,~/.Xdefaults)に Xman*international: TRUE Xman*fontSet: -*--16-*,-*--14-* を忘れずに入れましょう.(~/Xman でも良いです) xman -xnllanguage ja_JP.EUC で,適切にフォーマットされて表示されるでしょうか? ("ja_JP.EUC"の部分は自分の 環境に合わせて読み変えて下さい) OSによっては問題が残るかも知れません(後述).問題がなければ make install make install.man で実行形式をインストール後,手で install -c -m 0444 Xman-xxxxx.ad (XLIB)/(your-locale)/app-defaults/Xman して下さい.(XLIB)は"/usr/X11R6/lib/X11"などです. xxxxxは日本語でJISコードならjis, EUCコードならujis, MS-KANJIコードならmscode です.(your-locale)の部分は "ja_JP.EUC,ja_JP.SJIS,ja_JP.ujis,ja_JP.sjis, japanese" などOSにより指定できるものが決まっていますので,自分の環境に合わせて 読み変えて下さい. 3)動作確認済みのプラットフォーム FreeBSD 2.1.0R + XFree86 3.1.2 Linux(slackware 1.x + kernel 1.2.13) + XFree86 3.1.2 4)バグ等 私は日本語に関してはmanをcatにフォーマットしたものを,表示させているので, xmanで呼び出したnroffフォーマッタの結果の表示に関しては,検証を行なっていま せん.OSよっては正しくフォーマットされないことがあるかも知しれません.そのと きはリソースファイルXmanの *commandTbl: tbl *commandEqn: neqn *commandRoff: nroff の部分に設定するコマンド+オプションの変更をしてみて下さい. また i18n を語っていますが,オリジナル(R5版)でサポートされている日本語以外 の言語(big5,ugb,laten1)やR6のシステムでサポートされている他の言語(koreanなど) については全くテストをしていません.どなたかテストしてレポートして下さい. 5)その他 本パッチはほとんどX11R5版からのMergeとなっていますので 佐藤(hsato@onosokki.co.jp)のオリジナリティはほとんどありません. と,言ってしまうのは悲しいので,FreeBSD2.xに関してオリジナルコードを入れまし た. FreeBSD2.xはBSD4.4系なのですが,manコマンドのMANPATHサーチパスの設定に関し て,"/etc/man.conf"から"/etc/manpath.conf"に変っています. オリジナルのxmanは/etc/man.confを読み出すようにコーディングされていますが, これを"manpath(1)"コマンドを呼び出すようにポートしてみました.お試し下さい. ※"/etc/manpath.conf"がFreeBSDのどのヴァージョンから使われるようになったのか 把握していないので,一応 osreldate.h を見て,(__FreeBSD_version >= 199500) とやっていますが,正しい値をご存知な方はご報告下さい. また Linux(slackware{2|3}, RedHat)では"/usr/lib/man.config"がつかわれている ようです.こちらもmanpath(man --path)でマニュアルサーチパスが取り出せるようで すので,同じ機能を組み込んでみました.あまりテストしていませんがいいみたいで す. ※次のような御協力をいただける方を募集しています. 1.FreeBSD,Linux以外のプラットフォームでの動作確認. 2.Latin-1,ugb,big5 などのコード系での動作確認. 3. 2.以外のコード系でのポート/テスト 4.その他の 改良/バグ潰し 6)著作権などについて I18N化にあたり,上記のX11R5版から拝借したコード(ScrollByL.c, ScrollByL.h, ScrollByLP.h, buttons.c, e.t.c. )の著作権は基本的にX11R5版を作られた方 (Li Yuhong氏)に帰すと考えます. 私が手を入れた部分に関しては(含む"manpath(1)"の呼び出しコード), 改良が行なわれた場合,(freesoft,PDSは問いませんが)無償で公開して下さる ことを条件に,私の著作権を放棄しますので自由に改変して構いません. それ以外はXの公開ポリシーに従って下さい. また私が書いたコードによって,損害を受けられても責任は取れませんので 御了承下さい. === 神奈川県 相模原市 (Sagamihara-si, Knagawa-ken) == hsato@onosokki.co.jp == == hsato@ba2.so-net.or.jp == 佐藤 宏明 (Hiroaki Satoh)