別言語での Debian ウェブサイト


当然のことながら、世界中の誰もが同じ言語を使っているわけではありません。 ウェブが広まるにつれて、 複数の言語で読めるページもよく見かけるようになりました。 このため、content negotiation (内容交渉) と呼ばれる標準的な手法が導入されました。 この手法を用いれば、どの言語で書かれた文書を受け取りたいか、 その優先順位を設定できます。 実際にどのページが配信されるかは、ブラウザとサーバの間で交渉されます。 ブラウザが設定された言語の優先順位を送信すると、 サーバは送られてきた優先順位や、サーバ自体の設定、 どの言語で書かれたページが存在するか、 どのバージョンのドキュメントが利用可能かなどを調べて、 配信するページを決定します。

(ページ下の利用可能な言語リストから) 異なる言語を選択しても、 その言語で現在のページを表示するだけだということに注意してください。 デフォルトの言語を変更しているわけではありません。 もし別のページへのリンクをクリックすれば、再び元の言語で表示されるでしょう。 デフォルトの言語を変更するには、 以下で説明するようにブラウザの設定で優先言語を変更する必要があります。


間違った言語の Debian ウェブページになったら…

Debian ウェブサーバから受けとった文書が間違った言語になってしまう場合、 まず一つめの、かつ最もよくある原因は、ブラウザの設定が正しくない、です。 好みの言語に設定する方法についての節を 読んでください。

二つめの原因は、キャッシュが壊れていたり、設定が違っている、です。 ネットワークのトラフィックを減らす方法として、 多くの ISP がキャッシュを採用するにつれて、この問題は大きくなってきています。 キャッシュなんか使ってないと思っていても、 ウェブサーバのキャッシュについての注意 を読んでください。

三つめの原因は、 www.debian.org の方の問題です。 ここ数年で受けた、違う言語のページが見えるという報告のうち、 我々の問題だったのは指折り数えられるほどに過ぎませんでした。 ですので、我々に報告する前に上記の最初の二つの原因をよく調べてください。 https://www.debian.org/ は問題ないのに、 ミラーサイトにおかしなところを発見したら我々に報告してください。 我々がミラーの管理者に連絡します。

これらのいずれかの問題を修正した後は、再びそのページを見る前に、 ブラウザのローカルキャッシュ (ディスクもメモリも両方) を消してください。 テストには lynx を使うことをお薦めします。これは content negotiaion (内容交渉) に関する HTTP の仕様に 100% 従っているとわかっている唯一のブラウザです。

プロキシサーバによる潜在的な問題

プロキシサーバは基本的にはウェブサーバですが、 それ自身のコンテンツを持っていません。 プロキシサーバはユーザと本当のウェブサーバの間に置かれます。 ウェブページの要求をうけとり、そのページを取得します。 その後、ページをあなたに送ると同時に、以降にまた要求されるときに備えて、 ローカルにキャッシュ用のコピーを作成します。 多くのユーザが同じページを要求すると、 ネットワークのトラフィックを軽減できます。

これはほとんどの場合にとってすばらしいアイディアですが、キャッシュが バグっている時におかしなことになります。 特に、古いプロキシサーバは content negotiation (内容交渉) を理解して いません。そのようなキャッシュサーバは、ある言語でキャッシュすると、 あとで違う言語で要求されても、キャッシュしていたページを返してしまいます。 唯一の解決方法はそのキャッシュソフトウェアをアップグレードするか、 おきかえることです。

歴史的には、プロキシはブラウザで設定されたときに限って利用されました。 しかし、もはやこれは正しくありません。 ISP は透過的プロキシ (transparent proxy) を使って、 すべての HTTP リクエストをリダイレクトしているかもしれません。 もしプロキシが content negotiation (内容交渉) を正しく扱えないと、 キャッシュされていた違う言語のページを受けとってしまうことがあります。 これを直すためにあなたができることは、ISP に文句を言って、 それらをアップグレードするかおきかえてくれるよう頼むことだけです。


言語設定の方法

好みの言語には、あなたが理解する全ての言語を、好みの順序に設定しましょう。 英語 ('en') をバックアップとして (つまりリストの最後に) 追加しておくといいでしょう。 Debian ウェブページのオリジナルの言語は英語であり、 また全ての文書があなたの好みの言語に翻訳されているとは限らないからです。

例えば母国語が日本語の人は、言語の設定のところに、まず日本語 (言語コード 'ja') を設定し、その次に英語 (言語コード 'en') を置くようにするといいでしょう。

特定のブラウザでこれを行うための詳しい説明は以下を見てください。

実際にやってみるとわかりますが、 ほとんどのブラウザではなんらかのユーザインターフェースが提供されており、 それによって好みの言語を定義する手続きの詳細が隠蔽されています。 もしそのようになっていない場合、先の段落の説明では、 ひとつ重要なことが省略されているので注意してください。言語のリストを 'ja', 'en' のように並べただけでは好みを定義したことにはならず、 それらの選択肢を同じ重みとしたことになってしまうのです。このため、 サーバはこの並び順を無視して言語を決めてしまうこともありえます。 実際に好みを指定するには、「優先値 (quality value)」を用いなければなりません。 これは 0 から 1 の間の実数で、大きい値が高い優先度に対応します。よって、 上述の場合には、'ja; q=1.0, en; q=0.5' のような設定をすることになるでしょう。

なお、言語のサブカテゴリの指定には注意を払ってください。 例えば 'en-GB, ja' と指定すると、 たいていの (HTTP 仕様書を読んだことのない) 人にとって、 予想とは異なる結果をもたらします。

特に理由がない限り、 言語には国別の拡張指定を加えないことをおすすめします。 どうしても追加するならば、 拡張指定のない言語指定も忘れずに加えておくようにしてください。

説明: サーバがある文書への要求を、 優先言語 'en-GB, ja' とともに受け取ると、 英語 ('en') 版の文書は日本語版よりも優先されません。 サーバは言語拡張として 'en-gb' がつけられた版のファイルがある場合に限って、 日本語よりも英語を優先して提供します。

すなわち、ブラウザの設定は 'en-GB, en, ja' とするか、 あるいは単に 'en, ja' を送るようにすべきです。 この場合は異なる動作をし、例えば en が要求された時にサーバは en-us を送信することができます。

preferred_language 変数の設定に関するより詳しい情報は、 content negotiation (内容交渉) に関する Apache のドキュメントを 参照してください。

ブラウザで優先言語を設定する

ブラウザでデフォルトの言語を設定するには、 ウェブサーバに渡される変数を設定しなければなりません。 この方法は、あなたがどのブラウザ使っているかによって異なります。

Mozilla / Netscape 4.x とそれ以降のバージョン
     Edit -> Preferences -> Navigator -> Languages
  
注意: Netscape 4.x では、提供されている選択肢の中から言語を 選ばなければなりません。言語を手で入力したために問題が生じたとの報告が、 たくさんの人から寄せられています。
Mozilla Firefox
バージョン 3.0 より新しいもの:
Linux:
     編集 -> 設定 -> コンテンツ -> 言語 -> 言語設定...
  
Windows:
     ツール -> オプション -> コンテンツ -> 言語 -> 言語設定...
  
Mac OS:
     Firefox -> Preferences -> Content -> Languages -> Choose...
  

バージョン 1.5 より新しいもの:
Linux:
     編集 -> 設定 -> 詳細 -> 一般 -> 言語設定
  
Windows:
     ツール -> オプション -> 詳細 -> 一般 -> 言語設定
  

バージョン 0.9 より新しいもの:
Linux:
     編集 -> 設定 -> 一般 -> 言語
  
Windows:
     ツール -> オプション -> 一般 -> 言語
  
より古いバージョンでは、about:config へ行って intl.accept_languages の値を変更する必要があります。
Iceweasel
     Edit -> Preferences -> Content -> Languages -> Choose
  
Internet Explorer
Windows:
     Tools または View または Extras -> Internet Options -> (General) Languages
  
Mac OS:
     Edit -> Preferences -> Web Browser -> Language/Fonts
  
Pocket Internet Explorer
     HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\
     に文字列のレジストリキー「AcceptLanguage」を作成し、値を「ja; q=1.0, en; q=0.5」にします。
  
Opera
ほとんどのバージョン:
     File -> Preferences -> Languages
  
Linux/*BSD versions 5.x および 6.x:
     File -> Preferences -> Document -> Languages
  
Nokia 770 Web Browser: /home/user/.opera/opera.ini ファイルを編集して、[Adv User Prefs] セクションに以下の行を追加します:
     HTTP Accept Languages=ja;q=1.0,en;q=0.5
  
Galeon
     Settings -> Preferences -> Rendering -> Languages
  
Epiphany
     編集 -> 設定 -> 言語 -> 言語
  
Konqueror
言語をひとつだけ選ぶことは、バグ #358459 が修正されさえすれば簡単にできます。単に、KDE Control Center で言語を選び、変更を有効にするために KDE セッションをリスタートするだけです。
複数の言語を使いたい、あるいは報告されたバグを回避したい場合には、いまのところ、 ~/.kde/share/config/kio_httprc ファイルを編集して、 以下のような行を書くしかありません:
     Languages=ja;q=1.0, en;q=0.5
  
lynx
.lynxrc にある preferred_language の値を編集するか、lynx 上で 'O' コマンドを使いその値を設定してください。

例えば次の行を自分の .lynxrc で用いてください。

  preferred_language=ja; q=1.0, en; q=0.5
  
W3 (emacs ベースのウェブブラウザ)
(setq url-mime-language-string  "preferred_language=ja; q=1.0, en; q=0.5")
あるいはカスタムパッケージを用いて (URL バージョン p4.0pre.14 の場合):
Hypermedia -> URL -> Mime -> Mime Language String...
iCab
     Edit -> Preferences -> Browser -> Fonts,Languages
  
W3M
     Options (o) -> Other Behavior -> Accept-Language
  
Safari
Safari は、Mac OS X のシステム環境設定を利用して、 あなたの好みの言語を決定しています。
    システム環境設定 -> 言語環境 -> 言語
  
ELinks
デフォルトのインタフェース言語は以下で設定できます。
    Setup -> Language
  
これにより、ウェブサイトに要求する言語も一緒に変更されます。 この動作を変更することもできます。 以下の操作によって、表示可能な言語の HTTP 変数を調整してください。
    Setup -> Options manager -> Protocols -> HTTP
  
Netscape 3.x
     *httpAcceptLanguage: [preferred_language string]
  
を Netscape の app-defaults ファイルか ~/.Xresources に追加します。
IBrowse
「Preferences」、「Settings」から「Network」へ行きます。「Accept language」 の下にデフォルトの「*」が表示されていると思います。「Locale」ボタンをクリックすると、 その言語が好みの言語として追加されるはずです。 もし追加されなければ、手動で追加してください。その後、「OK」をクリックします。
Voyager
「Settings」から「Languages」に行きます。手で入力するか、「Get from locale」 をクリックします。「OK」をクリックすれば設定完了です。
Chromium
Customize and control Chromium -> Settings -> Show advanced settings -> Languages -> Language and input settings

以上にリストされているもの以外のブラウザにおける設定について 情報をお持ちのかたは、その情報を debian-www@lists.debian.org までお寄せください。