created: 2019-06-28 24:00, tags: php, ios, laravel,
iPhone の言語設定を Laravel で取得する
iOS の言語設定をブラウジングの際に Laravel で取得、システム側で利用、反映したい事がある。
結論から言うと、言語設定は Accept-Language というヘッダに載せられてブラウザから HTTP リクエストが送信されるため、そちらを取得すれば良い。
- Accept-Language - HTTP | MDN - Mozilla https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Accept-Language
取得方法
$lang = $request->header('Accept-Language');
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
上記のどちらでも取得は可能 (PHP の元々の機能で取得するか、Laravel で取得するかの違い)。
他の言語、環境でもヘッダに Accept-Language が入っているのを確認して取得するだけなのでやる事は変わらない。