BlueJ 2.0 をダウンロードして使ってみたところ、日本語モードにして動作させるとダイアログメッセージが文字化けしていた。dialoguesファイルがUnicodeエスケープされていないからなので、Java2 SE にあるnative2asciiコマンドツールで変換してあげれば良い。
bashの場合は次のようにすればいい。もちろん、環境変数BLUEJ_HOMEはbluejをインストールしたディレクトリを設定するので、ユーザによって変わるはずだ。
$ cp $BLUEJ_HOME/lib/japanese/dialogues \
$BLUEJ_HOME/lib/japanese/dialogues.sjis
$ native2ascii -encoding Shist_JIS \
$BLUEJ_HOME/lib/japanese/dialogues.sjis \
> $BLUEJ_HOME/lib/japanese/dialogues
Windowsの場合は次のようになる。環境変数BLUEJ_HOMEはbashの場合と同じで、ユーザの環境に応じて書き変えて使うこと。また、表示の都合上改行しているが各コマンドは1行で入力しないといけない。プロンプトをみて判断してもらいたい。
> copy %BLUEJ_HOME%\lib\japanese\dialogues
%BLUEJ_HOME%\lib\japanese\dialogues.sjis
> native2ascii -encoding Shist_JIS %BLUEJ_HOME%\lib\japanese\dialogues.sjis >
%BLUEJ_HOME%lib\japanese\dialogues
ところで、LinuxでBlueJを利用すると、新しいクラスを作成した場合に文字化けが発生する。tmplファイルがShift_JISコードで保存されているので、EUC-JPコードへ変換してあげればいい。とりあえず、BlueJのMLへ投稿しておかなければ…
シェルスクリプトを作成してみた。$BLUEJ_HOME/lib へ make.japanese.euc.sh という名前で作成しよう。
mkdir japanese.euc
mkdir japanese.euc/templates
mkdir japanese.euc/templates/newclass
native2ascii -encoding Shift_JIS japanese/dialogues > japanese.euc/dialogues
nkf -e japanese/exception.help > japanese.euc/exception.help
nkf -e japanese/javac.help > japanese.euc/javac.help
nkf -e japanese/jikes.help > japanese.euc/jikes.help
cp japanese/labels japanese.euc/labels
nkf -e japanese/moe.help > japanese.euc/moe.help
nkf -e japanese/readme.txt > japanese.euc/readme.txt
nkf -e japanese/templates/README \
> japanese.euc/templates/README
nkf -e japanese/templates/html.tmpl \
> japanese.euc/templates/html.tmpl
nkf -e japanese/templates/method.tmpl \
> japanese.euc/templates/method.tmpl
nkf -e japanese/templates/readme.tmpl \
> japanese.euc/templates/readme.tmpl
nkf -e japanese/templates/readmeexp.tmpl \
> japanese.euc/templates/readmeexp.tmpl
nkf -e japanese/templates/newclass/README \
> japanese.euc/templates/newclass/README
nkf -e japanese/templates/newclass/abstract.tmpl \
> japanese.euc/templates/newclass/abstract.tmpl
nkf -e japanese/templates/newclass/appletj.tmpl \
> japanese.euc/templates/newclass/appletj.tmpl
nkf -e japanese/templates/newclass/enum.tmpl \
> japanese.euc/templates/newclass/enum.tmpl
nkf -e japanese/templates/newclass/interface.tmpl \
> japanese.euc/templates/newclass/interface.tmpl
nkf -e japanese/templates/newclass/stdclass.tmpl \
> japanese.euc/templates/newclass/stdclass.tmpl
nkf -e japanese/templates/newclass/unittest.tmpl \
> japanese.euc/templates/newclass/unittest.tmpl
ファイルを作成したら実行可能にして、実行すればいい。
$ ./make.japanese.euc.sh
$BLUEJ_HOME/lib/japanese.eucというディレクトリができあがっているので、$BLUEJ_HOME/lib/bluej.defs のbluej.language=englishをコメントアウトして、 bluej.language=japanese.eucを追加すればよい。以下に、該当部分を抜粋した。
#bluej.language=afrikaans
#bluej.language=chinese
#bluej.language=czech
#bluej.language=french
#bluej.language=german
#bluej.language=italian
#bluej.language=japanese
bluej.language=japanese.euc
#bluej.language=korean