簡単に日本語を使ってみたい、ActiveHeartに頼ってみる。
今まで、とっても日本語を使いたかったのだが、コードの中では英語のみで耐えていた...。でも、そろそろ日本語表示にも対応してみたい。いろいろな方法が紹介されているが、一番導入し易そうなActiveHeartでやってみることにした。
ActiveHeartについては、Rubyist Magazine - RubyOnRails を使ってみる 【第 5 回】 ActiveHeartで詳細に紹介されている。参考にさせて頂いて、早速、作業開始。
文字コードは何にするか?
webブラウザの表示メニューから選ぶ、テキストエンコーディングとか、文字エンコーディングとかで選択するあれだ。Shift JIS、ISO 2022-JP、EUC、UTF-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' ...(以下省略)...
- コントローラ 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 RailsをUTF-8に設定したら、コードエディタであるRadRailsも同じエンコーディングに合わせておく必要がある。
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が上手く機能しないのはなぜか、もうちょっと調べる必要ありだなー。
-