I18n.t の翻訳言語を明示的に変更する

目的

表題を Rails app で実現する

前提

  • app のデフォルト言語は ja になっている

config/application.rb

 16 module Sampapp
 17   class Application < Rails::Application
 18     config.i18n.default_locale = :ja
 19   end
 20 end
  • locales/*.yml に各言語の文言が用意されている

config/locales/ja.yml

ja:
  hello: こんにちは

config/locales/en.yml

en:
  hello: hello

config/locales/ja.yml

ru:
  hello: спасибо

何をするか

I18n.t('リソースID', locale: '目的の言語')

を実行する

app/views/users/index.html

= I18n.t('hello') #=> こんにちは
= I18n.t('hello', locale: 'en') #=> hello
= I18n.t('hello', locale: 'ru') #=> спасибо 

View でなくとも、I18n.t を呼び出すなら Controller, Model, spec, どこでも可