言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

Squeak のフォントについて色々考える。

今日一日色々調べていたにも関わらず何も出来なかったわけだが、とりあえず考えをまとめる。やりたい事は、英語版の Squeakland イメージで日本語を含むプロジェクトを開いた時、まともに表示させるためにはどうするべきかという事だ。また、同時に日本語版の Squeak を配布する際に、いかに少ない手間で英語版のイメージから日本語版を作成するかという事にも繋がる。

  • フォント: 単に日本語のプロジェクトを表示させるためなら、フォントを動的にダウンロードする事で対応出来る。Squeak の文字には一つ一つ leadingChar が付くので、これをキーに最低限必要なフォントをダウンロードするようにすれば良い。
  • 辞書: 日本語を表示させるだけではなく、日本語のメニュー等を使いたい場合は辞書が必要になる。これは現行の仕組みでも起動時に外部の辞書を読むようになっているのでそのまま使える。加えて、辞書がテキスト形式でも問題なく動作するパッチを作成済だ。

辞書は兎も角、フォントの仕組みを僕は全く知らないのでそこから始めている。良く考えるとフォントをインストールするだけなら深い仕組みを理解する必要は無さそうなのだが、ついでだ。良く分からないのが、フォントを表現する為に StrikeFont、StrikeFontSet、TextStyle、FontSet 等様々なクラスがあるのだが、どう使い分ければよいやらサッパリだ。

とりあえず StrikeFont が一つのビットマップフォントを表現し、StrikeFontSet が複数言語ごとに切り替えられる StrikeFont である事、TextStyle は良く分からないが、とりあえずalt+k でフォントを指定するためには、TextStyle を作って TextConstants に登録する必要がある所まで分かった。とりあえず BDF 丸文字の読み込みくらいはすぐ出来ると思ったのだが、まだ全然である。