むとうさん作の、Ruby-GetText-1.10.0をRails 2.0.2で使っていたのだが、GetText.update_pofiles(内部では、GetText.rgettextを呼び出し)によるmsgidの抽出がうまく動作しなかったので、ソースを見た所、パース対象のファイルの拡張子で適用すべきパーサーを識別しているが、lib/gettext/parser/erb.rbでは、.rhtmlのみ適用となっていたため、Rails 2系の*.html.erb拡張子はパース対象に入っていなかった。.erb拡張子もerubyパーサーに追加するパッチです。
% cd RUBY_GETTEXT_INSTALL_PATH
% sudo patch lib/gettext/parser/erb.rb < add_erb_extension.patch
add_erb_extension.patch
*** erb.rb.org 2008-01-16 12:53:36.000000000 +0000
--- erb.rb 2008-01-16 12:53:58.000000000 +0000
***************
*** 15,21 ****
module GetText
module ErbParser
@config = {
! :extnames => ['.rhtml']
}
module_function
--- 15,21 ----
module GetText
module ErbParser
@config = {
! :extnames => ['.rhtml', '.erb']
}
module_function
追記
確認したら、最新のCVSでは対応済みとの事です。パッチを当てる以外にもRake taskでGetText::ErbParser.initを呼び出せば対応可能なので、こちらの方がよさそうです。
# For new Erb template of Rails 2.x
GetText::ErbParser.init(:extnames => ['.rhtml', '.erb'])
desc "Update pot/po files."
task :updatepo do
require 'gettext/utils'
GetText.update_pofiles('myapp',
Dir.glob("{app,config,components,lib}/**/*.{rb,erb,rhtml}"),
'myapp 1.0.0')
end
desc "Create mo-fileds"
task :makemo do
require 'gettext/utils'
GetText.create_mofiles(true, "po", "locale")
end
l'essentiel est invisible pour les yeux