3

たくさんのロケールを使用するこのアプリがあります (アプリのドメインにより適したものになるように調整されています。例: es-MX を使用する代わりに、ロケールとして mx を使用するだけです)。

そして、application.rbでフォールバックを構成しました

config.i18n.default_locale = :en
config.i18n.fallbacks = {
  # sites
  'cl' => 'es',
  'mx' => 'es',
  'lat' => 'es',
  'br' => 'en',
  'us' => 'en',

  # lang
  'es' => 'en',
  'pt' => 'br',
}

そして、URL ex: localhost:3001/cl (チリのロケールの場合) でロケールを設定します。

これが app_controller の私のコードです

 before_filter :set_locale

  private

  def set_locale
    if supported_locale?(params[:locale])
      I18n.locale = params[:locale]
    end
  end

そして私のルート

  # public urls for sites
  scope '/:locale' do

    # index
    match '/' => 'main#index', via: :get, as: :site
  end

したがって、本番環境では localhost:3001/cl があり、 _logo.cl.html.erb パーシャルを呼び出し、コンソールに表示されるロケールはclです。しかし、テキストはまだ英語です。そして、開発中はすべて正常に動作します。誰でもこれについて何か考えがありますか?

画像を数枚残しておきます

production/us 生産/私たち production/cl 生産量/cl 開発/cl 開発/cl

4

1 に答える 1

3

production.rb問題は、ファイルが定義することでした

# Enable locale fallbacks for I18n (makes lookups for any locale fall back to       
# the I18n.default_locale when a translation can not be found)
config.i18n.fallbacks = true

で定義したカスタム フォールバック ルールを上書きし、application.rbそれらの行を削除するだけで問題は解決しました

于 2013-01-07T10:54:01.703 に答える