Rails 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-адресу, например: 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. Но текст остался на английском. А в разработке все работает нормально. Кто-нибудь знает об этом?

оставлю пару фото

производство/нас производство/наспроизводство/cl production/cl development/cl development/cl


person fespinozacast    schedule 28.12.2012    source источник


Ответы (1)


Дело в том, что файл 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, и я просто удаляю эти строки, и проблема была решена

person fespinozacast    schedule 07.01.2013