レール2.3.xはi18n gemを無視します
-
24-10-2019 - |
質問
Railsのローカリゼーション機能を使用するRails 2.3.5プロジェクトがあります。また、たまたまRails 3ベータがインストールされています(I18N GEMに依存します)。 Rails 2.3.5は、独自のローカリゼーションを喜んで処理します(I18Nがインストールされていません)が、I18N GEMが利用可能な場合、それを利用します。
最近、宝石をアップグレードしましたが、I18Nのバージョン0.3.7と0.4.0がインストールされています。もちろん、Railsは、私のプロジェクトにエラーを引き起こしている最新バージョンをロードして使用したいと考えています。 Webアプリのエラーを回避するGEMバージョンを0.3.7に設定してみました。ただし、ResqueとResque_Mailerを使用して、メッセージの送信を遅らせています。労働者がキューからメーラーの仕事を拾うと、環境で私のconfig.gem要件を無視し、とにかくバージョン0.4.0を使用します。
理想的には、i18n gemをまったく使用しないようにRailsに伝えたいと思います。それ、どうやったら出来るの?
アップデート: ベータ4の時点で、Rails 3にはI18Nバージョン0.4.1が必要になりました。 Rails 2とRails 3の両方がインストールされている場合、今ではこの問題に遭遇していない人がいなくなっていないのはわかりません。
解決
他のヒント
- Railsバージョンをフリーズします:
rake VERSION=2.3.5 rails:freeze:gems
- ファイルベンダー/Rails/ActiveSupport/lib/Active_support/vendor.rb Line 24のバージョンを次のように修正します。
gem 'i18n', '>= 0.1.3', '< 0.4.0'
または編集するだけです: /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/vendor.rb
そしてターンします gem 'i18n', '>= 0.1.3'
の中へ gem 'i18n', '0.1.3'