Railsで、ユーザーの環境にあった言語を表示する
やりたいこと
- 言語設定が英語の人には英語、日本語の人には日本語を表示したい
- HTTPのAccept-Languageヘッダに応じて切り替えたい
手順
Rack::Localeミドルウェアを使うと、Accept-Languageヘッダに応じてI18n.localeを設定してくれる。
1. Rack::Localeミドルウェアを導入する
bundle add rack-contrib
config/application.rb(任意environment.rbや、initializerの中でも良いです)
config.middleware.use Rack::Locale
2. 訳文を設定する
config/locales配下に、言語ごとのファイルを作り、コードに訳文のキーを設定します。 詳しくは下記を参照