シノバーです ちょっと古い話で恐縮ですが [vine-users:069562] On Sun, 09 Jan 2005 11:46:54 +0900 (JST) KITA Toshihiro <t-kita@xxxxxxxxxxxxxxxxxxx> wrote: > そういえば、表示、メッセージはすべて英語ですね。 > # resources/qdial_message.ja の中には日本語のも書いてあるようですが。 が気になったので取り組んでみました。 Vine Linux 3.x でqdialの日本語が表示されなくなったのはtclのバージョンが変わったため。 対処としては日本語メッセージとしてこれまでのeuc-jpだけでなくUTF-8コードのものを用意し、 ロケールとtclのバージョンに応じてメッセージ・ファイルを使い分けるというものです。 以下にパッチを記します。ビルドにはnkfのバージョン2.0以上が必要です。 diff -ur console.org/tcltk/tkppxp/Makefile.in console/tcltk/tkppxp/Makefile.in --- console.org/tcltk/tkppxp/Makefile.in 2000-12-04 21:24:40.000000000 +0900 +++ console/tcltk/tkppxp/Makefile.in 2005-03-06 15:07:46.000000000 +0900 @@ -19,7 +19,8 @@ RESOURCEDIR = $(TKPPXPDIR)/resources TKPPXP = tkppxp ALIASES = qdial -TARGETS = $(TKPPXP) +MESSAGE = resources/qdial_message.ja +TARGETS = $(TKPPXP) $(MESSAGE).UTF-8 SCRIPTS = $(wildcard scripts/*.tcl) WIDGETS = $(wildcard widgets/*.tcl) @@ -35,6 +36,8 @@ -e 's:%PPXPLOG%:$(PPXPLOG):g' \ $< > $@ -chmod 755 $@ +$(MESSAGE).UTF-8: $(MESSAGE) + nkf --utf8 $< > $@ || : install: -$(INSTALLDIR) $(TKPPXPDIR) diff -ur console.org/tcltk/tkppxp/scripts/qdial.tcl console/tcltk/tkppxp/scripts/qdial.tcl --- console.org/tcltk/tkppxp/scripts/qdial.tcl 2005-03-06 15:10:34.000000000 +0900 +++ console/tcltk/tkppxp/scripts/qdial.tcl 2005-03-06 16:09:36.000000000 +0900 @@ -21,13 +21,27 @@ set env(LANG) "C" } -if {[info commands kanji] == "kanji" && [regexp {^ja} $env(LANG)]} { - set qdial_help_wrap char - option readfile [file join $RESOURCEDIR qdial_message.ja] -} else { - set qdial_help_wrap word - option readfile [file join $RESOURCEDIR qdial_message] +# support Tcl 8.1 up: Mar 6 2005 by Masaki Shinomiya <shino@xxxxxx> +set langs { C } +if {[regexp {^ja} $env(LANG)]} { + if {[info commands kanji] == "kanji"} { + set langs { ja C } + } elseif {[info commands encoding] == "encoding"} { + set langs { ja.UTF-8 C } + } } +foreach lang $langs { + set f [file join $RESOURCEDIR qdial_message] + if { "$lang" == "C" } { + set qdial_help_wrap word + } else { + set qdial_help_wrap char + set f $f.$lang + } + if [ file exists $f ] break +} +option readfile $f + proc qdial:title_frame {frame} { set f [frame $frame] -- Masaki SHINOMIYA <shino@xxxxxx> The Bar Master, Shino's Bar - Contemporary Art and Spirits http://Paper.Cup.Com/