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 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/usproduction/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