忍者ブログ

EDA Blog

Verilog、SystemVerilog、SystemCなど、ハードウェア記述言語についてのブログです。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

tclでgettext

Tkのテキストを日英両方の対応にしたかったので、gettextを使ってみました。

まず、ここからWindows用のバイナリをダウンロードします。
ダウンロードが終わったら、ダウンロードした.exeを実行してインストールします。
インストール後、C:\Program Files (x86)\GnuWin32\binにパスを通しておきます。

下記がサンプルコードです。
ボタンが2つだけです。
toplevel .top
package require msgcat
namespace import msgcat::*
proc _ {s} {return [::msgcat::mc $s]}
msgcat::mcload [file join [file dirname [info script]] msg]

package require msgcat
namespace import msgcat::*
msgcat::mcload [file join [file dirname [info script]] msg]
set hoge "close"
pack [button .top.b -text [_ "Push Me"]]
pack [button .top.b2 -text [format [_ "Close %s"] $hoge]]

tkwait window .top
上記サンプルコードをsample.tclとして保存し、xgettext -k_ sample.tclと実行します。
messages.poというファイルが生成されますので、これを編集します。
CHARSET=UTF-8に設定し、UTF-8で保存しておきます。

message.poを編集して"Push Me"と"Close %s"に対応する日本語を追加後、msgfmt --tcl -l ja_jp -d msg messages.poと実行します。
msg/ja_jp.msgが作成されます。
localeがjp_JPになっている状態でsample.tclを実行するとボタンは日本語で表示され、それ以外のlocaleの場合には英語で表示されるようになります。

拍手[0回]

PR

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

フリーエリア

最新CM

[04/11 なつたん]

最新TB

プロフィール

HN:
aston_martin
性別:
非公開

ブログ内検索

カウンター

アクセス解析