2012-05-02 123 views
1

由于我使用的是导轨3,在生产环境中存在大量的翻译缺失记录,因为在导轨3中处理翻译缺少字符串的方式,例如翻译缺少的是现在:显示翻译在导轨3中缺少像导轨2的方式

<span class="translation_missing" title="translation missing: fr.admin.orders_logs.update.title">Title</span> 

在我们的应用中,我们看到“标题”,所以我们认为翻译是好,但逸岸翻译丢失,如果我的“M没有错显示的文字是”翻译丢失:FR。 admin.orders_logs.update.title“在Rails 2.X

我怎么能再次激活它,他告诉我的错误消息,而不是把它的理由t作为一个跨度的标题?

回答

1

这似乎是Rails中的一个特性。请参阅:https://gist.github.com/rails/rails/issues/6489

一个可能的解决方法是通过将这样的事情application.rb中覆盖的罪魁祸首:

module ActiveModel 
    module Translation 
    def human_attribute_name(attribute, options = {}) 
     defaults = [] 
     parts  = attribute.to_s.split(".", 2) 
     attribute = parts.pop 
     namespace = parts.pop 

     if namespace 
     lookup_ancestors.each do |klass| 
      defaults << :"#{self.i18n_scope}.attributes.#{klass.model_name.i18n_key}/#{namespace}.#{attribute}" 
     end 
     defaults << :"#{self.i18n_scope}.attributes.#{namespace}.#{attribute}" 
     else 
     lookup_ancestors.each do |klass| 
      defaults << :"#{self.i18n_scope}.attributes.#{klass.model_name.i18n_key}.#{attribute}" 
     end 
     end 

     defaults << :"attributes.#{attribute}" 
     defaults << options.delete(:default) if options[:default] 
     defaults << "MISSING TRANSLATION"+defaults.to_yaml # defaults << attribute.humanize 

     options.reverse_merge! :count => 1, :default => defaults 
     I18n.translate(defaults.shift, options) 
    end 
    end 
end 
0

您是否尝试将i18n.fallbacks配置设置为false?

# 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 = false 
+0

是的,我把线在我的development.rb环境文件,但它不会改变任何东西。 – SteenhouwerD

+0

您是否重新启动服务器? –

+0

是的,我重新启动我的服务器 – SteenhouwerD