vine-users ML アーカイブ



[vine-users:070690] qdial(tkppxp) の日本語メッセージ

  • From: Masaki Shinomiya <shino@xxxxxx>
  • Subject: [vine-users:070690] qdial(tkppxp) の日本語メッセージ
  • Date: Sun, 6 Mar 2005 16:23:08 +0900
シノバーです

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