Rails 2.2.2 and globalize - undefined method `render_file' for class `ActionView::Base' (NameError)

Looks like globalize (1.2) is not compatible with rails 2.2.2. I am
getting:

=> Booting Mongrel (use ‘script/server webrick’ to force WEBrick)
=> Rails 2.2.2 application starting on http://0.0.0.0:3003
=> Call with -d to detach
=> Ctrl-C to shutdown server
** Starting Mongrel listening at 0.0.0.0:3003
** Starting Rails with development environment…
D:/projects/passdate2009/src/vendor/rails/activesupport/lib/
active_support/dependencies.rb:159:in require': undefined method render_file’ for class ActionView::Base' (NameError) Exiting from D:/projects/passdate2009/src/vendor/rails/railties/lib/ commands/server.rb:49 from D:/projects/passdate2009/src/vendor/rails/railties/lib/ commands/server.rb:27:in require’
from D:/NetBeans/ruby2/jruby-1.1.4/lib/ruby/site_ruby/1.8/
rubygems/custom_require.rb:27:in `require’
from script\server:3

gloablize rewrites render_file (in order to cache templates).
render_file does not more exist, though…

How can this be resolved?

Thx
Clemens

Hi…,

it depends how you installed rails or ruby…!

If you install in drive:c and and trying to run application in drive:D

Then it will give error…

Enjoy and Gud luck

Regards
Hafeez

first:
both on D:

second:
this is IMHO not the problem. As mentioned above:
globalize aliases/overrides render_file (in order to cache
templates).
render_file does not more exist, though…

A somehow equal problem was/is discussed here:
http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/89491f198080e272/fc7642a2f7e2193b

Any hints? Will globalize 1.2 be adopted for Rails 2.2.x?

Thx in advance
Clemens

Clemens,

Rails 2.2 has I18n support built in and you don’t need to use
additional plugins.

Ryan B.
Freelancer

Rayn,
sounds tempting, BUT my (2 year-old-legacy) app is built on Globalize
and I would prefer to stay with Globalize, at least with this app…
Should I go back to Rails 2.1.x?

Regards
Clemens

Quoting C. [email protected]:

Rayn,
sounds tempting, BUT my (2 year-old-legacy) app is built on Globalize
and I would prefer to stay with Globalize, at least with this app…
Should I go back to Rails 2.1.x?

I would suggest yes. I am/was using Globalite and it is incompatible
with
Rails 2.2.2. Almost any internationalization (I18N) package had to
reach deep
inside Rails and change things the new built-in I18N will also be
changing. I
suspect that the immediate problem you were seeing would only be the
first of
many. Lock your app to 2.1.x or start the change to the built-in. I
will be
doing the changes today and will post how hard it was when it’s
completed.

Just my $0.02USD,
Jeffrey

has anybody migrated from Globalize to i8n?

Quoting Jeffrey L. Taylor [email protected]:

Rails 2.2.2. Almost any internationalization (I18N) package had to reach deep
inside Rails and change things the new built-in I18N will also be changing. I
suspect that the immediate problem you were seeing would only be the first of
many. Lock your app to 2.1.x or start the change to the built-in. I will be
doing the changes today and will post how hard it was when it’s completed.

This is what I did to migrate from Globalite to Rails 2.2 I18N:

  1. Be sure all tests pass.

  2. Install the latest rails gem:

gem install rails

  1. Update the app:

rake rails:update

This likely modifies config/boot.rb and may update the Javascripts and
may add
scripts to script/ directory.

  1. Uninstall you I18N plugin/gem/package. For me:

script/plugin remove globalite

  1. Watch the I18N Railscast:
  1. Skim various I18n guides

http://rails-i18n.org/wiki/pages/i18n-rails-guide

  1. Make the translations directory:

mkdir config/locales

  1. Download any needed example translation files from:

Note: English is built-in, only application specific translations needed
in
config/locales/en.yml, config/locales/en-US.yml, etc.

  1. Check running Rails 2.2 and I18n:

script/console test
Loading test environment (Rails 2.2.2)

I18n.t ‘time.am’
=> “am”
quit

  1. Convert translation calls to I18n.t() and add translations to
    config/locales/en.yml or whatever.

For example, Globalite calls:

:hello.l t(:hello)
:logged_in.l_with_args(:user => ‘Jeff’) t(:logged_in, :user =>
‘Jeff’)

Translation file for above:
en:
hello: “Hello, world!”
user: “{{user}} logged in.”

It took me 2 1/2 hours from start to all automated tests passing. 5
controllers, 12 models, approximately 1400 LOC. Another 10-15 minutes
fixing
things the automated tests didn’t catch.

HTH,
Jeffrey

Quoting C. [email protected]:
[snip]

Any hints? Will globalize 1.2 be adopted for Rails 2.2.x?

Check out Globalize2.

Jeffrey

Just a heads up. The Spanish translation on
rails-i18n/rails/locale at master · svenfuchs/rails-i18n · GitHub use
incorrect
or obsolete syntax for plurals. Global search and replace ‘:many’ to
‘:other’ (without the quotes).

Jeffrey

P.S. Bug report e-mailed to Sven F. and the original author of the
file.