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, どこでも可