ローカリゼーション ファイルのルックアップが失敗した場合、デフォルトの I18n 設定をルックアップに使用できますか?
Rails の一部として、 http: //guides.rubyonrails.org/i18n.html#how-i18n-in-ruby-on-rails-works
このソリューションの一環として、Rails フレームワークのすべての静的文字列 (Active Record 検証メッセージ、時刻と日付の形式など) は国際化されているため、Rails アプリケーションのローカライズはこれらのデフォルトを「オーバーライド」することを意味します。
そのため、独自のローカリゼーション ファイルを追加すると、ActiveRecord のデフォルトの Rails エラー テキストが失われます。たとえば、モデル内で次のコードが与えられた場合
validates_length_of :name, :maximum => 50
これが失敗すると、私は得る
translation missing: en-gb, activerecord, errors, models, model_name, attributes, name, too_long
2 つの可能な修正:
:message
すべてのvalidates_*
メソッドに追加しますか? 例えばvalidates_length_of :name, :maximum => 50, :message => "is too long (maximum is %{count} characters)"
これに関する問題は、かなりの数の呼び出しがあり、新しいコードを追加する人は、テキストを追加することを覚えておく必要があることです。(そして、変数置換がここで機能するとは思いません!)
Railsがすべてのロケール構成ファイルで使用するデフォルトのセットを追加します。
errors: messages: less_than: must be less than %{count}
ここでの問題は、すべてのロケール ファイルに同じテキストを追加する必要があることです (これらを翻訳することに興味がないため)。これはそれほど大きな問題ではありませんが、奇妙に思えます。
もしあれば、どのルートが推奨されますか? 他のアイデアや提案はありますか?
I18n が使用するデフォルト/フォールバック ファイルはありませんか? つまり、ルックアップがロケール ファイルに見つからない場合は?
(レール 2.3.5 を使用)