ごとうです。
In message <m33c0swbj8.wl@namazu.org>,
`Satoru Takabayashi <satoru@namazu.org>' wrote:
> たとえば、foo.html へのアクセスに対して、 Accept-Language:
> ja を渡すブラウザに対しては、foo.html.ja を返し、en を渡すブ
> ラウザには foo.html.en を返す、といったことができます。
>
> WEBrick::HTTPUtils::mime_type と
> WEBRick::HTTPServlet::FileHander::set_filename を置き換える
> というやや強引な方法を取っています。
なるほど。
でも、script_nameを書き換えるのはよくないような気がします。
例えば、#{DocumentRoot}/foo/index.html.jaがあるときの、/foo/
へのアクセスは、
filename: #{DocumentRoot}/foo/index.index.ja
script_name: /foo/index.html.ja
path_info: nil
になって、#{DocumentRoot}/foo/bar.cgi.jaがあるときの、
/foo/bar.cgi/bazへのアクセスは、
filename: #{DocumentRoot}/foo/bar.cgi.ja
script_name: /foo/bar.cgi.ja
path_info: /baz
になるのがいいと思いますが、どうでしょう。
#{DocumentRoot}/foo.htmlと#{DocumentRoot}/foo.html.jaがある
ときの/foo.htmlへのアクセスは、#{DocumentRoot}/foo.html.jaが
優先されてもいいような気がするのですが、そういうものではない
んですね。
> もしよければ、WEBrick 本体の FileHandler で Accept-Language:
> に対応していただけると助かります。FileHandler のオプションに
> :AcceptLanguage => true を指定するとAccept-Language を見る、
> といった感じで指定できると便利だと思います。
いつも有効だと困るケースってありますかねえ。
> # FIXME: Apache のように AddLanguage した言語だけを認識す
> # る、という実装の方がいいかも
> # FIXME: Accept-Language が渡されないときの優先順位は
> # Apache の LanguagePriority のように指定できる方がいいかも
言語名の登録とフォールバックの優先順位を兼ねて、
:AcceptableLanguages => ["en", "ja"]
とかできるといいのかもしれません。
--
ごとうゆうぞう