上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

10日でおぼえる Ruby on Rails入門教室
arton
翔泳社
売り上げランキング: 30588

結構いろんな人がお勧めしているRails超入門本ですが、本のRailsは1.2系。しかしすでに2.3.4が最新なのが現状ということでいろいろ勝手が違う・・・しかもSnowLeopar + Xcodeで修行しています。

第3日/4時限目●Ruby-GetTextの組み込みではまったのでメモ

GetTextの組み込み方が古い方法だったので(多分下記がもとねた)

本家の2.3.2以降を参考にした

そのまえにgettextのインストール
gem install gettext_rails

最初

gem install gettext
でインストールしていたが、Rails関連のパッケージが足りないのでgettext_railsを使う。
gem install gettext_rails
でつくったgettext.rakeはこんな感じ。
PROJECT_NAME = Dir.pwd.split("/").last
ENVIRONMENT_RB = 'config/environment.rb'
APPLICATION_RB = 'app/controllers/application_controller.rb'

task :init_gettext do
  require 'fileutils'
  next if /config.gem "locale"/ =~ IO.read(ENVIRONMENT_RB)
  FileUtils.cp ENVIRONMENT_RB, "#{ENVIRONMENT_RB}.bak"
  File.open(ENVIRONMENT_RB, 'w') do |f|
    File.open("#{ENVIRONMENT_RB}.bak", 'r').each_line do |line|
      f.puts line
      if /Rails::Initializer/ =~ line
        f.puts %q{config.gem "locale"}
        f.puts %q{config.gem "locale_rails", :version => '2.0.5'}
        f.puts %q{config.gem "gettext"}
        f.puts %q{config.gem "gettext_activerecord", :version => '2.1.0'}
        f.puts %q{config.gem "gettext_rails", :version => '2.1.0'}
      end
    end
  end

  FileUtils.cp APPLICATION_RB, "#{APPLICATION_RB}.bak"
  File.open(APPLICATION_RB, 'w') do |f|
    File.open("#{APPLICATION_RB}.bak", 'r').each_line do |line|
      f.puts line
      if /class ApplicationController/ =~ line
        f.puts " init_gettext '#{PROJECT_NAME}'"
      end
    end.close
  end
end

task :void_gettext do
  FileUtils.cp "#{ENVIRONMENT_RB}.bak", ENVIRONMENT_RB
  FileUtils.cp "#{APPLICATION_RB}.bak", APPLICATION_RB
end

task :load_gettext do
  require 'gettext/utils'
end

task :update_po => [:load_gettext] do
  GetText.update_profiles PROJECT_NAME,Dir.glob('{app,config,components,lib}/**/*.{rb,rhtml}'), "#{PROJECT_NAME} 1.0.0"
  unless File.exist? 'po/ja'
    Dir.mkdir 'po/ja'
    Dir.chdir 'po/ja'
    system "msginit -i ..¥¥#{PROJECT_NAME}.pot -o #{PROJECT_NAME}.po"
    Dir.chdir '../..'
  end
end

task :make_mo => [:load_gettext] do
  GetText.create_mofiles true, "po", "locale"
end
既に実行済みかどうかは $KCODEではなく、config.gem "locale"で判断する感じです。 Related Posts Plugin for WordPress, Blogger...


ブログランキングに参加しています。気にっていただけたらクリックお願いします。


ブログ内検索&SPONSORS

Bose OE2i audio headphones

検索&共有

その他の検索

Info.

katoiek

Author:katoiek
Live in Tokyo
Year of Birth : 1978
Luv : Trip, Snowboarding, Surfing, PC, Sleeping, Spiritual その他いろいろ

カテゴリー

リンク

月別アーカイブ

最新記事

最近のトラックバック

RSSフィード


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。