ちと調べてみた。 gettext ライブラリではなく Tcl 8.2 から用意されている msgcat パッケージを使うのが良いらしい。メッセージカタログのフォーマットが独自なのと、メッセージカタログを UTF-8 で書かないとダメぽなのが注意である。
$ cat test.tcl #!/usr/bin/tclsh package require msgcat proc _ {s} {return [::msgcat::mc $s]} ::msgcat::mcload "." puts stdout [_ "Hello World"]
$ nkf ja.msg ::msgcat::mcset ja "Hello World" "こんにちわ、世界"
$ LANG=C ./test.tcl Hello World $ LANG=ja_JP.eucJP ./test.tcl こんにちわ、世界
LANG が ja_JP.ShiftJIS にしたりすると、ちゃんとShiftJIS出力されるようである。わりかしちゃんとしてる模様。