Rails 3:生产环境更改区域设置但不翻译文本[带自定义后备]

时间:2012-12-28 17:38:16

标签: ruby-on-rails-3 production-environment rails-i18n

我有这个应用程序,其中我使用了一堆语言环境(调整为更适合应用程序的域,例如:而不是使用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 partial和控制台中打印的区域设置 cl 。 但文本仍然是英文。在开发过程中一切正常。有人对此有任何想法吗?

我会留下一些图片

生产/我们 production/us 生产/ CL production/cl 开发/ CL development/cl

1 个答案:

答案 0 :(得分: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中定义的自定义备用规则,我只删除了那些行,问题就解决了