2013年9月12日木曜日

FIrefoxとnavigator.languageとgeneral.useragent.locale

FirefoxでJavascirptのnavigator.languageで表示される言語は、configのgeneral.useragent.locale(要はメニューの表示言語)だと今までは思っていた。だが、この認識が誤っているのに気づき、調べた結果、以下内容になった。

==ここから==

Firefoxでの言語設定には2種類ある。かいつまんで記載すると、

  1. ブラウザのメニューとダイアログの表示に使用される設定
  2. ウェブページの表示に使用する言語に対する優先順位の設定

となる。各々の設定は、下記方法で行う。

  1. 表示したい言語の言語パックをインストールした後に、about:configでgeneral.useragent.localeに希望の言語を設定してFirefoxを再起動。(言語パック->ココを参照)
  2. メニュー:ツール > オプション > コンテンツ > 言語 > 言語設定 で現れる画面で、ウェブページで使う言語の優先度を最高位にする。
2.の意味がよく分からない場合は、優先度を変えた後にココ(https://addons.mozilla.org/)にアクセスするといいと思う。優先度が高い言語で表示されるはず。

さて、上記2個の各々の設定を変えながら、navigator.languageの値を見てみると、

  1. メニューの言語が何であれ、navigator.languageの値は変わらない。つまり、general.useragent.localeの値には依存していない。
  2. 優先度が最も高い言語がnavigator.languageに設定されている。
という結果になった。
ちなみに、Chromeで同様の確認を行ったところ、意外にも異なる結果になった。
Chromeでの結果->http://amor2k.blogspot.jp/2013/09/chromenavigatorlanguage.html


<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <script type="text/javascript">
      function  check(){
        alert(navigator.language);
      }
    </script>
  </head>
  <body>
    <input type="button" id="btn" value="show" onclick="check();">
  </body>
</html>

OS: Windows 7 Progessional(64bit) Service Pack1
Firefox: 23.0.1

以上

0 件のコメント:

コメントを投稿