Ruby on rails Rails i18n:翻译缺失问题,未定义区域设置

Ruby on rails Rails i18n:翻译缺失问题,未定义区域设置,ruby-on-rails,internationalization,locale,Ruby On Rails,Internationalization,Locale,我对Rails 2.3.8应用程序有问题。我正在使用rails i18n以不同的语言创建站点。除了一个地方外,任何地方的一切都很完美 成功注册后,我会: flash[:notice] = t 'path.to.locale.key' 就像我在其他地方做的一样 但这会导致以下情况: translation missing: 'locale.path.to.locale.key' not found 它似乎没有加载当前的语言环境(或者它会说“en”或“es”或其他什么而不是“locale”) 你

我对Rails 2.3.8应用程序有问题。我正在使用rails i18n以不同的语言创建站点。除了一个地方外,任何地方的一切都很完美

成功注册后,我会:

flash[:notice] = t 'path.to.locale.key'
就像我在其他地方做的一样

但这会导致以下情况:

translation missing: 'locale.path.to.locale.key' not found
它似乎没有加载当前的语言环境(或者它会说“en”或“es”或其他什么而不是“locale”)

你知道是什么原因造成的吗


谢谢

尝试在应用程序控制器中设置默认区域设置,例如使用before\u过滤器:

I18n.locale = params[:locale] || 'en'

也许你在yml文件的某个地方覆盖了它。也许你筑巢太多了。也许那个键有子键

删除该locale.yml中的所有内容并仅放置该消息,然后查看它是否有效


你遇到的问题时不时地发生在我身上,我总是在yml文件中把它弄糟。

好吧,这发生在我升级到Rails 4.1后的mailer类中。它在Rails3上工作正常,yml文件没有任何更改。不知何故,i18n没有看到默认的语言环境。 所以我在mailer类中添加了这一行来解决这个问题

 I18n.locale = I18n.default_locale

class ProviderMailer < ActionMailer::Base
  include Resque::Mailer
  default from: APP_CONFIG.mailer.from

  def registration_email(provider)
    @provider = provider
    I18n.locale = I18n.default_locale
    @provider_url  = "#{APP_CONFIG.base_url}/hizmetsgl/#{provider['_id']}"
    @howto_url  = "#{APP_CONFIG.base_url}/hizmetverenler"
    mail(to: provider["business_email"], subject: t('provider_mailer.registration_email.subject')) 
  end

end
I18n.locale=I18n.default\u locale
类ProviderMailer