Namazu-devel-ja(旧)


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

content negotiation of namazu.cgi



現在,namazu.cgi の出力の言語は,

  (1) .namazurc で指定された言語
  (2) CGI の query で指定された言語

によって決まっていますが,ブラウザの request も参照して欲しいなあと思っ
たので,Apache によって設定される HTTP_ACCEPT_LANGUAGE 環境変数を参照
するパッチを書いてみました.

;; Content Negotiation については,RFC2616 の 14.4 節や,apache の付属
;; 文書などを参照してください.

一応,ブラウザの指定した(最良の)言語を使うところまでは作業したのですが,
ちょっと問題があって困っています.例えば,もっとも得意な言葉はデンマー
ク語で,次に得意な言葉はフランス語,3番目は英語というようなユーザーを
考えてみてください.この場合,ブラウザの送信する Accept-Language は,

    Accept-Language: da, fr;q=0.9, en;q=0.8, *

のようになっているでしょう.このような Accept-Language を受け取った場
合,私の書いたパッチは,単に nmz_set_lang("da") を行います.しかし,デ
ンマーク語に翻訳されたメッセージファイルはありませんから,
nmz_choose_msgfile_suffix() によって,言語 suffix は削られて,「英語」
のメッセージが選択されます.この指定の場合,本当はフランス語のメッセー
ジが選択されるべきだと思うのですが,そこまで実装しようとすると,改変の
範囲がかなり大きくなりそうだったので,見送りました.

よろしくご検討をお願いします.

-- 
土屋 雅稔 ( TSUCHIYA Masatoshi )

Attachment: cgi.diff
Description: Binary data