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。但是文字还是英文的。在开发中一切正常。有人对此有任何想法吗?

我会留下几张图片

生产/ 生产/我们 美国生产/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 回答