1

Rails 3を使用しているため、本番環境では、翻訳が欠落している文字列がRails 3で処理される方法のために、多くの翻訳が欠落しているレコードがあります。たとえば、翻訳が欠落している出力は次のようになります。

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

私たちのアプリケーションでは「タイトル」が表示されているので、翻訳は問題ないと思いますが、実際には翻訳がありません。間違っていない場合、表示されるテキストはRails2の「translationmissing:fr.admin.orders_logs.update.title」でした。バツ

スパンのタイトルとして表示するのではなく、エラーメッセージを表示するように、これを再度アクティブにするにはどうすればよいですか?

4

2 に答える 2

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
于 2012-06-09T11:42:43.650 に答える
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
于 2012-05-02T12:08:55.947 に答える