やりたいこと
- ブラウザの設定言語に合わせて表示言語を変更する
問題・再現手順
- ブラウザの設定言語を
日本語
に設定する - 対象のサイトをブラウザで表示する(
日本語
で表示される) - ブラウザの設定言語を
英語
に変更する - 2の画面をリロードする
・期待する表示:英語
・実際の表示:日本語
原因
- 初回表示時は、ブラウザの設定言語を検出しLocalStorageに保存する
(ブラウザの設定言語で表示される) - 2回目以降は、LocalStorageに保存された言語で表示される
(ブラウザの設定言語は見ない)
-> ブラウザの設定言語を変更しても表示言語が変わらない
対応策
- ブラウザの設定言語の優先度を上げる
import LanguageDetector from 'i18next-browser-languagedetector';
const detector = new LanguageDetector(null, {
order: ['navigator', 'localStorage']
});