Rails的i18n在开发环境下可以工作,但在生产环境下无法正常工作。

9

在 Rails 3.0.3 项目中,i18n 已经配置好了:

config.i18n.default_locale = :fr

在我的开发环境中,一切都正常,以欧元为价格,并正确显示文本(如will_paginate中的下一页/上一页)。
在生产环境中,所有内容都是英文和美元。
我在哪里可以找到我的i18n问题?
我在生产环境中缺少什么i18n设置?
更多信息:
在生产服务器中的rails console production中:
irb(main):002:0> I18n.config.default_locale
=> :fr

第二次编辑

是否有一种方法可以在调试或视图中显示I18n属性或配置?


你是否查看过 config/environments/production.rb 文件,以确定默认的语言环境是否在此处被更改了? - m_x
我检查了一下,那里没有问题。 - Syl
你是否启用了从客户端浏览器设置中获取区域设置的选项?我曾经遇到过同样的问题,因为我的浏览器设置为英语。如果没有启用该选项,抱歉我不知道。 - m_x
不是,已在不同的计算机上测试过。 - Syl
检查 I18n.locale 是否已分配其他语言环境(en)。 - James Chen
3个回答

5
在我的application.rb文件中,除了默认的config.i18n.default_locale = :fr之外,添加config.i18n.locale = :fr,问题得到解决。

5

0

我曾经在Rails Admin中遇到过这个问题。但我相信这对任何Rails应用程序都是一样的。 一开始,我在application.eb中静态设置了locale。 后来,我通过从application.rb中删除它来解决了这个问题。

if ENV['language']
  config.i18n.default_locale = ENV['language']
else
  config.i18n.default_locale = :he
end    

只需将此留在rails_admin/application_controller.rb中 (或普通的Rails应用程序中的application_controller.rb)

before_action :set_locale

def set_locale
  I18n.locale = params[:locale] || 'he'
end

def default_url_options
  { locale: I18n.locale }
end

这里还有一个关于如何根据Url设置i18n语言环境的不错教程: https://dev.to/morinoko/setting-up-i18n-for-rails-with-locales-from-url-params-38pg


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接