Ruby on Rails/第7回勉強会 - gettextを使ったvalidationエラーの日本語化 http://www.ark-web.jp/sandbox/wiki/185.html
Ruby on Rails/第7回勉強会 - gettextを使ったvalidationエラーの日本語化
Ruby on Rails勉強会一覧 †
- Ruby on Rails
- Ruby on Rails/2.1.0を使ってみて「お!変わってる」と思ったところ
- Ruby on Rails/ActiveRecord::Observer
- Ruby on Rails/ActiveRecordのfind
- Ruby on Rails/ActiveRecordをライブラリとして利用する
- Ruby on Rails/Ajaxのパフォーマンスをあげる5つの方法の部分的超訳メモ
- Ruby on Rails/apache2+FastCGIでBASIC認証
- Ruby on Rails/check_boxにデフォルトcheckedをセットする
- Ruby on Rails/cronから日本語メールを送るには
- Ruby on Rails/Cucumberを試してみる
- Ruby on Rails/emacs-railsのインストール
- Ruby on Rails/Fedra Core5でApache2+FastCGIのセットアップ
- Ruby on Rails/gettext_scaffoldのconfirm_update
- Ruby on Rails/has_manyのdependentオプション
- Ruby on Rails/jpmobileで機種に応じた画像を出力
- Ruby on Rails/JSONPで受け取ったデータをEUC-JPのWebページに埋め込むには?
- Ruby on Rails/lighttpdの設定
- Ruby on Rails/PostgresSQLを使う
- Ruby on Rails/Rails 2.0.2にアップグレード
- Ruby on Rails/Rails3を試してみる
- Ruby on Rails/Rails3関連
- Ruby on Rails/Railsプロジェクトを作るときに最初にやること
- Ruby on Rails/Rails勉強会@東京第15回
- Ruby on Rails/RESTfulAuthenticationに権限管理を追加する「role_requirement」プラグイン
- Ruby on Rails/rspec + autotest + emacs の環境構築
- Ruby on Rails/rvm+passenger+mod_proxyの設定
- Ruby on Rails/Text Drive Shared Hosting使用感
- Ruby on Rails/TextDriveでRailsが利用できるようになるまで
- Ruby on Rails/「No route matches」が出る
- Ruby on Rails/プラグイン/aasm
- Ruby on Rails/プラグイン/acts_as_favorite
- Ruby on Rails/プラグイン/file_column
- Ruby on Rails/プラグイン/restful-authentication
- Ruby on Rails/プラグイン/ssl_requirement
- Ruby on Rails/メモリの問題とか
- Ruby on Rails/第1回集中勉強会
- Ruby on Rails/第1回勉強会 - TodoListTutorial
- Ruby on Rails/第2回勉強会 - Routing: Native Ruby Rewriting
- Ruby on Rails/第3回勉強会 - Components: Pursuing the Pipe Dream
- Ruby on Rails/第3回勉強会 - Components: Pursuing the Pipe Dream/動画
- Ruby on Rails/第3回勉強会 - Components: Pursuing the Pipe Dream/動画/その1
- Ruby on Rails/第3回勉強会 - Components: Pursuing the Pipe Dream/動画/その2
- Ruby on Rails/第4回勉強会 - Active Record Reference Documentation
- Ruby on Rails/第4回勉強会 - Active Record Reference Documentation/動画
- Ruby on Rails/第4回勉強会 - Active Record Reference Documentation/動画/その1
- Ruby on Rails/第4回勉強会 - Active Record Reference Documentation/動画/その2
- Ruby on Rails/第4回勉強会 - Active Record Reference Documentation/動画/その3
- Ruby on Rails/第5回勉強会 - ActiveRecord::Associations
- Ruby on Rails/第6回勉強会 - ActiveRecord::Validations
- Ruby on Rails/第7回勉強会 - gettextを使ったvalidationエラーの日本語化
- Ruby on Rails/第8回勉強会 - ActionView::Helpers
- Ruby on Rails/第9回勉強会 - ActionView::Helpers(2)
- Ruby on Rails/第10回勉強会 - ActionView::Helpers(3)
- Ruby on Rails/第11回勉強会 - RESTful Rails Development
- Ruby on Rails/第12回勉強会 - necoったーの中身解説
- Ruby on Rails/第12回勉強会 - Rspec概要
- Ruby on Rails/第13回勉強会 - Rspecを使ってみる
- Ruby on Rails/第14回勉強会 - Rails上でRspecを使う
- Ruby on Rails/第15回勉強会 - Rolling with Rails 2.0 - The First Full Tutorial - Part 1
- Ruby on Rails/第15回勉強会 - 認証プラグインActs as Authenticatedについて
- Ruby on Rails/動的条件でhas_oneしEagerLoad
- Ruby on Rails/任意のRailsのバージョンでアプリを動かすように設定したい場合の対応
- Ruby on Rails/備忘:ミニTips
第7回勉強会のネタ †
ネタもとは下記です。
- Ruby on Railsで日本語しか使わない場合でもRuby-GetText-Packageを使う理由
http://www.yotabanana.com/lab/20060505.html - Ruby-GetText-Packageとは?
http://www.yotabanana.com/hiki/ja/ruby-gettext.html - GetTextのrdoc
http://www.yotabanana.com/gettextapi/ - Rails API ドキュメント ActionView::Helpers::ActiveRecordHelper
http://railsapi.masuidrive.jp/module/ActionView%3A%3AHelpers%3A%3AActiveRecordHelper
日時 †
- 2006/11/24(金)
参加者 †
久末さん、どうもありがとうございます!また参加してねーー。
動画 †
gettextとは †
- WikiPedia.ja:Gettext
- poファイル
#: app/controllers/application.rb:11 msgid "The errors are:" msgstr "エラーがあります。"
Ruby-GetTextとは? †
- GetText::Rails
- gem
gem install gettext
作業のながれ †
- コーディングする
echo _("The errors are:")
- msgidはソースコードから自動的に抽出。
http://www.yotabanana.com/gettextapi/classes/GetText.html#M000045#: app/controllers/application.rb:11 msgid "The errors are:" msgstr ""
- msgstrを翻訳
#: app/controllers/application.rb:11 msgid "The errors are:" msgstr ""
- moを生成
http://www.yotabanana.com/gettextapi/classes/GetText.html#M000049 - コーディングを続ける
- po再生成
updatepo
http://www.yotabanana.com/gettextapi/classes/GetText.html#M000050 - msgstrを翻訳してmoを生成
- コーディングを続ける...
Ruby-GetTextのrailsへの組み込み †
- config/environment.rbの先頭に
$KCODE = 'u' # UTF-8の場合。's' = SJIS, 'e' = EUC-JPなど require 'jcode' # Stringクラスのメソッドなどを$KCODEに指定した # 文字コードで適切に動作するように置き換えます
- config/environment.rbの末尾に
require 'gettext/rails' # Ruby-GetText-Packageを使う宣言です。
- app/controllers/application.rbに
class ApplicationController < ActionController::Base init_gettext "sample" end
http://www.yotabanana.com/gettextapi/classes/ActionController/Base.html#M000016
msgidを指定しながらコーディング †
コントローラ †
http://www.yotabanana.com/hiki/ja/ruby-gettext-howto-ror.html#Controller
- 「_」または「n_」
ビュー †
http://www.yotabanana.com/hiki/ja/ruby-gettext-howto-ror.html#Views/ActionMailer
- 「_」または「n_」
モデル †
http://www.yotabanana.com/hiki/ja/ruby-gettext-howto-ror.html#Models
- validates_xxx_of でのエラーメッセージ
- 「N_」または「Nn_」
- validateでのエラーメッセージ
- 「_」または「n_」
errors.add("title", _("%{fn} is not correct: %{title}") % {:title => title})
- 「_」または「n_」
- %{fn}
- フィールド名
- %{d}
- 長さチェックなどの境界値
- %{title}
- タイトル名
error_messages_forのタイトルの日本語化 †
http://www.yotabanana.com/hiki/ja/ruby-gettext-howto-ror.html#%A5%A8%A5%E9...
ActionView::Helpers::ActiveRecordHelper::L10n.set_error_message_title( N_("An error was found in %{record}"), N_("%{num} errors were found in %{record}")) ActionView::Helpers::ActiveRecordHelper::L10n.set_error_message_explanation( N_("The error is:"), N_("The errors are:"))
potファイルの生成 †
- lib/tasks/gettext.rakeにtaskを追加
desc "Update pot/po files." task :updatepo do require 'gettext/utils' GetText.update_pofiles( "blog", #テキストドメイン名(init_gettextで使用した名前) Dir.glob("{app,config,components,lib}/**/*.{rb,rhtml}"), #ターゲットとなるファイル "blog 1.0.0" #アプリケーションのバージョン) end desc "Create mo-files" task :makemo do require 'gettext/utils' GetText.create_mofiles(true, "po", "locale") end
- rakeからupdatepoタスクを実行
$ rake updatepo $ ls po/sample.pot
- 日本語用のpoファイルの生成
$ mkdir po/ja $ cp po/sample.pot po/ja/sample.po
moファイルの生成 †
$ rake makemo $ ls locale/ja/LC_MESSAGES/sample.mo
tag: Ruby on Rails, gettext, 勉強会