Tcl/Tk 8.0.5 日本語化パッチにおける Windows 対応部分について by Atsushi Nemoto (anemo@mba.sphere.ne.jp) * コンパイル コンパイルの方法はオリジナルと同じです。ただしソースディレクトリの名前 は tcl8.0.5jp, tk8.0.5jp としておく必要があります。コンパイルは VC++5.0 (makefile.vc)でのみ確認しました。makefile.bc も変更してありま すが、正しく動作するかどうかは未確認です。 NODEBUG=0 でコンパイルすると警告が出て make に失敗するかもしれません。 その場合はコンパイルフラグから -WX オプション(警告をエラーとして扱う) を外してください。 # VC++ 4.0 には、tk8.0.5jp/win/tkWinX.c が参照している zmouse.h が付属 # していないようなので、VC++ のバージョンを見て上記ヘッダを参照するか # しないか決めています。 * Win32版に固有の変更、注意点 - 参照するレジストリのキーはオリジナルと同じです。 - ライブラリはインストールディレクトリの lib\tcl8.0jp および lib\tk8.0jp を参照します。 - 実行ファイル、DLL の名前には "jp" がつきます(ex. wish80jp.exe)。 - コンパウンドフォントが使用可能です。UNIX 版と同様に ascii フォント と kanji フォントを使い分けてテキストを描画します。 - ネイティブフォントに "defaultgui" を追加してあります。これは日本語 Windows では 9 ポイントの "MS Pゴシック" フォントになります。 - 全てのウィジェットのデフォルトフォントは "defaultgui" です。 - failsafe コマンドで指定できるのはネイティブフォント(system, oemfixed, defaultgui, etc.)のみです。デフォルトの failsafe フォント は "defaultgui" になっています。 - Canvas の Postscript 出力では、名前に "ゴシック" が含まれているフォ ントを使っている漢字に対しては GothicBBB-Medium-EUC-H 、それ以外の 漢字では Ryumin-Light-EUC-H を使用します。 - IME による漢字の入力が可能です。漢字を入力する場合、フォーカスのあ るウィジェットが entry または text なら挿入カーソルのある位置、それ 以外ではウィジェットの下端に IME 編集ウィンドウが表示されます。また entry および text ではそのウィジェットのフォントの大きさにあわせて IME のフォントの大きさが設定されます。コンパイルオプション IME_AWARE を定義しない場合、これらの IME の制御は行われません(IME による入力そのものは可能です)。IME_AWARE はデフォルトで定義されてい ます。 - ウィンドウタイトル、ファイル名、レジストリキーなどに漢字を使用する ことが可能です。漢字コードに関しては、Tk は Win32 API に渡す文字列 が常に SJIS になるように変換しますが、Tcl はこのような変換を行いま せん。つまり、ウィンドウタイトルやフォント名等に使用する文字列は自 動的に SJIS に変換されますがファイル名やレジストリキー等の指定に使 用する文字列は変換されません。内部コードを SJIS 以外にする場合や SJIS 以外のデータファイルから読み込んだ文字列を使用したりする場合に は注意してください。 - jp1.5 から導入された日本語の禁則処理は Windows 版でも使用可能です。 ただし、Text 以外のウィジェットでは、漢字と ASCII 文字との間では禁 則ルールが無視される、という制限があります。例えば '。', '.' が行頭 禁則文字である場合、"あ。" は 'あ' と '。' の間で改行されませんが、 "あ." は 'あ' と '.' の間で改行されてしまいます。