- 2014年5月1日
- jQuery & JavaScript
JavaScript でブラウザの言語設定を取得
HTTP_ACCEPT_LANGUAGE をクライアントサイドの JavaScript で取得することはできないので、代わりにブラウザ依存の Javascript コードでブラウザの言語設定を取得します。
各ブラウザでの言語設定を取得するコード
|
1 2 3 4 5 6 7 8 9 10 |
// Internet Explorer window.navigator.userLanguage // Firefox, Opera, 他 window.navigator.language // Internet Explorer, Opera, 他 window.navigator.browserLanguage var language = window.navigator.userLanguage || window.navigator.language || window.navigator.browserLanguage; |
こんな感じのコードで取得できます。
私は Firefox 28.0 を使用していますが、window.navigator.language でブラウザの設定言語を取得できました。以下、Firefox 開発ツールのコンソールで試した結果。
|
1 2 3 4 5 6 7 8 |
> window.navigator.userLanguage undefined > window.navigator.browserLanguage undefined > window.navigator.language "ja" |
ブラウザの言語設定を en-US に変更した後試すと…
|
1 2 3 4 |
> window.navigator.language "en-US" |
ちゃんと取れてます。
日本語だったら ja を返し、それ以外なら en を返すコード
日本語と英語のみに対応した JavaScript のブックマークレットを作りたかったので、ja か en を返すコードを書きました。ブラウザの言語設定が日本語(ja)だったら ja を返し、それ以外だったら en を返すようにします。
|
1 |
var language = (window.navigator.userLanguage || window.navigator.language || window.navigator.browserLanguage).substr(0,2) == "ja" ? "ja" : "en"; |
substr で頭2文字を取得して判定。
上記 JavaScript で言語設定を取得するコードは、あくまでもブラウザで設定されている最優先のデフォルト言語1個を取得するので、Ruby や PHP などサーバーサイドで取得できる HTTP_ACCEPT_LANGUAGE の値(ブラウザが表示可能な言語一覧)とは値が異なる点には注意が必要です。
- - 参考リンク -
- javascript – How to detect user’s language – Stack Overflow
- ブラウザの言語をJavascriptから調べる。 | @masuidrive blog
オライリーのJavaScritp本(通称サイ本)は、昔かなり読み込みました。
>> 次の記事 : ブックマークレットをいつでもJavaScriptのメンテが可能な状態で配布する
<< 前の記事 : Google 検索を便利にするブックマークレット3つ
- - 関連記事 -
- マウスオーバーでリンク先URLページをプレビューするjQueryプラグインまとめ
- ブックマークレットをいつでもJavaScriptのメンテが可能な状態で配布する
- Google 検索を便利にするブックマークレット3つ
- トラックバックURL
Leave Your Message!