class method
self.translate
Ruby on Rails 2.2.3
Since v2.2.3 Last seen in v2.3.18Available in: v2.2.3 v2.3.18
Signature
self.translate(key, options = {})
Translates, pluralizes and interpolates a given key using a given locale, scope, and default, as well as interpolation values.
LOOKUP
Translation data is organized as a nested hash using the upper-level keys as namespaces. E.g., ActionView ships with the translation: :date => {:formats => {:short => "%b %d"}}.
Translations can be looked up at any level of this hash using the key argument and the scope option. E.g., in this example I18n.t :date returns the whole translations hash {:formats => {:short => "%b %d"}}.
Key can be either a single key or a dot-separated key (both Strings and Symbols work). E.g., the short format can be looked up using both:
I18n.t 'date.formats.short' I18n.t :'date.formats.short'
Scope can be either a single key, a dot-separated key or an array of keys or dot-separated keys. Keys and scopes can be combined freely. So these examples will all look up the same short date format:
I18n.t 'date.formats.short' I18n.t 'formats.short', :scope => 'date' I18n.t 'short', :scope => 'date.formats' I18n.t 'short', :scope => %w(date formats)
INTERPOLATION
Translations can contain interpolation variables which will be replaced by values passed to #translate as part of the options hash, with the keys matching the interpolation variable names.
E.g., with a translation :foo => "foo {{bar}}" the option value for the key bar will be interpolated into the translation:
I18n.t :foo, :bar => 'baz' # => 'foo baz'
PLURALIZATION
Translation data can contain pluralized translations. Pluralized translations are arrays of singluar/plural versions of translations like ['Foo', 'Foos'].
Note that I18n::Backend::Simple only supports an algorithm for English pluralization rules. Other algorithms can be supported by custom backends.
This returns the singular version of a pluralized translation:
I18n.t :foo, :count => 1 # => 'Foo'
These both return the plural version of a pluralized translation:
I18n.t :foo, :count => 0 # => 'Foos' I18n.t :foo, :count => 2 # => 'Foos'
The :count option can be used both for pluralization and interpolation. E.g., with the translation :foo => ['{{count}} foo', '{{count}} foos'], count will be interpolated to the pluralized translation:
I18n.t :foo, :count => 1 # => '1 foo'
DEFAULTS
This returns the translation for :foo or default if no translation was found:
I18n.t :foo, :default => 'default'
This returns the translation for :foo or the translation for :bar if no translation for :foo was found:
I18n.t :foo, :default => :bar
Returns the translation for :foo or the translation for :bar or default if no translations for :foo and :bar were found.
I18n.t :foo, :default => [:bar, 'default']
BULK LOOKUP
This returns an array with the translations for :foo and :bar.
I18n.t [:foo, :bar]
Can be used with dot-separated nested keys:
I18n.t [:'baz.foo', :'baz.bar']
Which is the same as using a scope option:
I18n.t [:foo, :bar], :scope => :baz
Parameters
-
keyreq -
optionsopt = {}
Source
# File activesupport/lib/active_support/vendor/i18n-0.0.1/i18n.rb, line 158
def translate(key, options = {})
locale = options.delete(:locale) || I18n.locale
backend.translate(locale, key, options)
rescue I18n::ArgumentError => e
raise e if options[:raise]
send(@@exception_handler, e, locale, key, options)
end
Defined in activesupport/lib/active_support/vendor/i18n-0.0.1/i18n.rb line 158
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in I18n