rails6 パラメーターで表示する言語を切り替える

rails6 パラメーターで表示する言語を切り替える

rails6でrails-i18nを使用して、パラメーターで表示する言語を切り替えて多言語対応を行うまでの手順を記述してます。Railsのバージョンは6.1.1を使用してます。

環境

  • OS CentOS Linux release 7.9.2009 (Core)
  • Ruby 2.7.2
  • Rails 6.1.1
  • rbenv 1.1.2-40-g62d7798

rails-i18nインストール

Gemfileに以下を追加して、

rails-i18nをインストールを実行します。

言語切り替え

まず言語を切り替えるため「config/locales」配下に「ja.yml」という名前でファイルを以下の内容で作成します。

同じ階層にある「en.yml」も編集しておきます。

次に「config」配下にある「application.rb」に以下を追加します。

「app/controllers」配下にある「application_controller.rb」に以下の関数を追加して、「locale」パラメーターにより言語を切り替えられるようにします。

「config」配下の「routes.rb」も対象のページを以下のように、scopeで囲みます。

これでrailsを再起動すれば、言語の切り替えを行うことが可能です。

Viewで表示

viewで利用する場合は、以下のコードを追加します。

表示結果「http://localhost/disp」

切り替える場合は、URLにパラメーター
「http://localhost/disp?locale=en」を追加します。