シノバーです
ちょっと古い話で恐縮ですが
[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/