Quoting Jeffrey L. Taylor <ror@abluz.dyndns.org>:
Quoting Clemens <clemens.wyss@helbling.ch>:
>
> 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.
This is what I did to migrate from Globalite to Rails 2.2 I18N:
0) Be sure all tests pass.
1) Install the latest rails gem:
gem install rails
2) Update the app:
rake rails:update
This likely modifies config/boot.rb and may update the Javascripts and may add
scripts to script/ directory.
3) Uninstall you I18N plugin/gem/package. For me:
script/plugin remove globalite
4) Watch the I18N Railscast:
5) Skim various I18n guides
http://rails-i18n.org/wiki/pages/i18n-rails-guide
6) Make the translations directory:
mkdir config/locales
7) 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.
8) Check running Rails 2.2 and I18n:
script/console test
Loading test environment (Rails 2.2.2)
I18n.t 'time.am'
=> "am"
quit
8) 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