schwarzの雑記 このページをアンテナに追加 RSSフィード

06/02/24 (Fri)2月24日の雑記

[] 22:08 2月24日の雑記 - schwarzの雑記 を含むブックマーク

Deutschquiz Version 2

(ドイチュクヴィス ヴェルズィオーン ツヴァイ)

を公開しました。


前のバージョンは、ドイツ語でプログラムを書くのでいっぱいいっぱいで、基本中の基本機能しかつけられませんでした。しかし今作はかなり力を入れています。単語も900語程度収録しました。



さて、このDeutschquizは日本語文と欧文が入り混じるわけですが、それぞれ別のフォントで出したいなあと思っていました。それを自動化してくれるプログラムを書いて、導入しておきました。おかげで(少なくとも自分の環境では)綺麗に見えます。

class Bitmap
  unless $@
    alias original_draw_text draw_text
  end  
  #--------------------------------------------------------
  # ● draw_text再定義(文字によってフォント切り替え)
  #--------------------------------------------------------
  def draw_text(*args)
    if args[0].kind_of?(Rect)
      text = args[1]
    else
      text = args[4]
    end
    # テキストに多バイト文字があるか(ウムラウト除く)
    if text.mbchar? && text !~ /[äöüÄÖÜß]/
      # 日本語
      self.font.name = ["HG明朝B", "MS UI Gothic",]
    else
      # 欧文
      self.font.name = ["Times New Roman", "MS UI Gothic",]
    end
    original_draw_text(*args)
  end
end

ちなみに、「jcode」をrequireしている必要があります。