Delegates to I18n#translate
but also performs three additional
functions.
First, it will ensure that any thrown MissingTranslation
messages will be turned into inline spans that:
* have a "translation-missing" class set, * contain the missing key as a title attribute and * a titleized version of the last key segment as a text.
E.g. the value returned for a missing translation key :âblog.post.titleâ will be <span class=âtranslation_missingâ title=âtranslation missing: en.blog.post.titleâ>Title</span>. This way your views will display rather reasonable strings but it will still be easy to spot missing translations.
Second, it'll scope the key by the current partial if the key starts
with a period. So if you call translate(".foo")
from
the people/index.html.erb
template, you'll actually be
calling I18n.translate("people.index.foo")
. This
makes it less repetitive to translate many keys within the same partials
and gives you a simple framework for scoping them consistently. If you
don't prepend the key with a period, nothing is converted.
Third, it'll mark the translation as safe HTML if the key has the suffix â_htmlâ or the last element of the key is the word âhtmlâ. For example, calling translate(âfooter_htmlâ) or translate(âfooter.htmlâ) will return a safe HTML string that won't be escaped by other HTML helper methods. This naming convention helps to identify translations that include HTML tags so that you know what kind of output to expect when you call translate in a template.
Please login to continue.