[英]Rails i18n: Translation missing problem, locale not defined
我有一个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')。
任何可能导致这种情况的想法?
谢谢
也许你在yml文件的某处覆盖它。 也许你做了太多的筑巢。 也许那个键有子键。
从该locale.yml中删除所有内容,并仅放置该消息并查看其是否有效。
你遇到的问题时不时发生在我身上,而且总是我在yml文件中搞砸了。
尝试在ApplicationController中设置默认语言环境,例如使用before_filter:
I18n.locale = params[:locale] || 'en'
好吧,在升级到Rails 4.1之后,我在邮件程序中遇到了这种情况。 它在Rails 3上运行正常,yml文件没有变化。 不知怎的,i18n没有看到默认的语言环境。 所以我在邮件程序类中添加了这一行来修复。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.