簡単に日本語を使ってみたい、ActiveHeartに頼ってみる。

今まで、とっても日本語を使いたかったのだが、コードの中では英語のみで耐えていた...。でも、そろそろ日本語表示にも対応してみたい。いろいろな方法が紹介されているが、一番導入し易そうなActiveHeartでやってみることにした。
ActiveHeartについては、Rubyist Magazine - RubyOnRails を使ってみる 【第 5 回】 ActiveHeartで詳細に紹介されている。参考にさせて頂いて、早速、作業開始。

文字コードは何にするか?

webブラウザの表示メニューから選ぶ、テキストエンコーディングとか、文字エンコーディングとかで選択するあれだ。Shift JIS、ISO 2022-JP、EUCUTF-8等いろいろあるが、Railsで日本語を使うにはUTF-8を利用するのが良さそうだ。

Ruby on Railsの設定

environment.rb
config/environment.rb
$KCODE = 'u'
# Be sure to restart your web server when you modify this file.

# Uncomment below to force Rails into production mode when 
# you don't control web/app server and can't set it the proper way
# ENV['RAILS_ENV'] ||= 'production'

# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '1.1.6'
...(以下省略)...
  • 一番最初の行に$KCODE = 'u'を追加した。Rubyの処理環境はUTF-8ということを設定しているらしい。
コントローラ application.rb
class ApplicationController < ActionController::Base
  before_filter :set_charset
  
  private
  def set_charset
    headers['Content-Type'] = "text/html; charset=utf-8" unless request.xhr?
  end
end

以上、二つの設定は日本語をUTF-8で利用する場合はお決まりのようだ。今後は日本語を使うための呪文と思うことにした。

RadRailsの設定

Ruby on RailsUTF-8に設定したら、コードエディタであるRadRailsも同じエンコーディングに合わせておく必要がある。

  • 環境設定のGeneralのWorkspaceをUTF-8に設定した。
  • ついでに、改行コードはUnixを選択しておいた。

ActiveHeartのインストール

 $ script/plugin install http://svn.rails2u.com/public/plugins/trunk/active_heart/

ターミナルを起動して、~/railsapp/softwarebook2/フォルダへ移動し、上記スクリプトを実行したが、どうも上手くいかない...。こうなったら力ずくだ。自動インストールは諦めて、ActiveHeartフォルダの中をブラウザで移動して、pluginsフォルダの中に同じ構成ファイルを作って、コピーペーストしたみた。
まずはこのページがActiveHeartのトップページ
webブラウザで行ったり来たりしながら確認すると、ファイル構成は以下のようになっている。(太字はフォルダ)

  • active_heart
    • init.rb
    • lib
      • active_record_messages_ja.rb
      • iso2022jp_mailer.rb
      • trans_sid.rb

上記と同じファイル名とフォルダ名の構成を、RadRailsプロジェクトのvender/plugins以下に作成した。(地道に右クリックしてファイルやフォルダの追加)

ActiveHeartのトップページからwebブラウザでファイルをクリックするとコードが表示されるので、それをコピーして、RadRailsの同じ名前のファイルにペースト。4ファイルあるので4 回繰り返せば、手動インストールは完了。

果たして、日本語は表示されたか?

こんないい加減なインストールでちゃんと出来るのか疑問だったが、とりあえず試してみた。
まずは、WEBrickサーバーを再起動する。
webブラウザで、New Softwareをクリックして、新規作成の状態で何も入力しないでCreateボタンを押すと... お、エラー表示が日本語化されている!

さらに、データベースフィールド名の対応する日本語も設定してみた。

モデル software.rb
class Software < ActiveRecord::Base
  set_field_names :title => 'タイトル', :description => '説明', :url => 'URL'
...(以下省略)...


エラー表示については、見事に日本語化が成功。ActiveHeart、素晴らしいです! 感謝です。

      • でも、script/pluginが上手く機能しないのはなぜか、もうちょっと調べる必要ありだなー。