I18n gem のカスタム例外ハンドラーを作成しようとしています。これは、デフォルトの「翻訳がありません」というエラーをオーバーライドし、ロケールが見つからない場合やトップレベルの名前空間が見つからない場合などの特別な場合にノイズの多い例外をスローします。ロケールの欠落は if をチェックするだけの問題ですがavailable_locales.include?(locale)
、名前空間が定義されているかどうかを確認するにはどうすればよいですか? 基本的に、次の機能が必要です。
def caption
begin
I18n.t("event.welcome", :locale => :en)
rescue MissingNamespace # should be thrown when "event" doesn't exist as a key under :en, (I18n would normally overspecify and say that "event.welcome" as a full key doesn't exist"
"Namespace is missing"
rescue
#other stuff
end
end
これを行う方法はありますか?または、キーに基づいて検索することしかできませんか?