[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:000830] Re: dennou ruby homepage



皆様
豊田です。

ちょいと dennou-ruby でないかもしれませんが、せっかく話がでたので、ちょっと
実験してみました。

★ content negotiation のリファレンスは

    http://httpd.apache.org/docs/content-negotiation.html

ですが、要すれば、簡単なやりかた (MultiViews) とめんどいやりかた (typemap
 ファイル) があるのです。

★簡単なやりかた (MultiViews)

・apache の設定ファイルで「Options MultiViews」を設定する。

・今までのハイパーリンクは壊れない。つまり、URI から直訳されるファイル名が実
在すれば、もちろんそれが表示される。

・そいつが実在しないとき、今までなら 404 File Not Exist エラーになるところ
が、 MultiViews オプションは力を発揮する。

    - たとえば、"test.txt" が要求された場合、ブラウザが英語を期待している場
合、 test.txt.en が応答として送信され、ブラウザが日本語を期待している場合、
test.txt.ja が応答として送信される。

    - ブラウザがサーバに期待を伝えるのは HTTP 1.0 以降の Accept-Language
 ヘッダによる。いまどきの言語コンシャスなブラウザは全部これを送出していると
考えてよい。

    - ブラウザから言語を教えてもらえない場合、apache サーバ設定の
LanguagePriority 指示子で指定された順序で言語が選択される。

    - URI が test.txt を指示してしまったら test.*.txt は探索対象には入らな
い。ので、常識的に test.txt を URI にしたければ、test.en.txt はダメ。

といったところです。実験して作ってみたものが

    http://toyoda.gfd-dennou.org/projects/content-nego/test.txt

においてあります。MSIE だったら [ツール|インターネットオプション] で言語設定
をいじってリロードすると言語が変わります。

Windows 的に test.txt.en は「.en って何のファイルや」になってしまうのが泣き
です。どうせ file: で見れなくなったついでに発想を変えて「全部拡張子とっぱず
した URI をリンクに書く」ことにすると、test.en.txt も使えるようになって、
Windows 的にもうれしいです。

★ typemap ファイル

上記「file: では参照できなくなる」問題が嫌なら typemap という機能を使えばい
いらしいのです。この場合、ファイルごとに Language を説明したファイルを置くの
だそうで、ドキュメントにも書式が書いてあるのですが、どういうわけだかそのファ
イル名が書いてないのでまだ試せてません。

----- Original Message -----
From: HAYASHI Yoshi-Yuki <shosuke@xxxxxx>
To: <dennou-ruby@xxxxxx>; <horinout@xxxxxx>
Sent: Wednesday, September 12, 2001 11:24 PM
Subject: [dennou-ruby:000820] Re: dennou ruby homepage


>
> 林です
>
> 堀之内さん, おねがいがあります.
>
> デフォルトの index.html は 日本語にしてくださいませ.  index.en.html ッ
> てするんだっっけかな, を英語ページになってくれるとうれいしいです.
>
> apache 設定いじると content negotiation が使えて、index.html で終わる
> URI を指示すると英語版のブラウザ使っている人には index.en.html が、そ
> うでない人には index.html が出るなんて芸当ができます。
>
> ですって(豊田説)