Rails I18n, check if translation exists?

agmcleod picture agmcleod · Sep 10, 2012 · Viewed 32.6k times · Source

Working on a rails 3 app where I want to check if a translation exists before outputting it, and if it doesn't exist fall back to some static text. I could do something like:

if I18n.t("some_translation.key").to_s.index("translation missing")

But I feel like there should be a better way than that. What if rails in the future changes the "translation missing" to "translation not found". Or what if for some weird reason the text contains "translation missing". Any ideas?

Answer

Chris Salzberg picture Chris Salzberg · Sep 10, 2012

Based on what you've described, this should work:

I18n.t("some_translation.key", :default => "fallback text")

See the documentation for details.