Index: [Article Count Order] [Thread]

Date: Thu, 07 Oct 2004 17:11:37 +0900 (JST)
From: GOTOU Yuuzou <gotoyuzo@notwork.org>
Subject: [webrickja:119] Re: Accept-Language: の対応
To: webrickja@notwork.org
Message-Id: <20041007.171137.607952698.gotoyuzo@sawara.does.notwork.org>
In-Reply-To: <m33c0swbj8.wl@namazu.org>
References: <m33c0swbj8.wl@namazu.org>
X-Mail-Count: 00119

ごとうです。

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"]

とかできるといいのかもしれません。

-- 
ごとうゆうぞう