現在,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