Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
 Re: content negotiation of namazu.cgi
寺西です。
TSUCHIYA Masatoshi wrote:
> 
> >今、手元にソースがないのできちんとチェックできていませんが、これは
> >nmz_choose_msgfile_suffix() で、"da" が見つからずに、"en" になってし
> >まうということでしょうか。
> 
> いいえ.nmz_choose_msgfile_suffix() は,
> 
>     NMZ.tips.ja_JP.ISO-2022-JP
>     NMZ.tips.ja_JP
>     NMZ.tips.ja
>     NMZ.tips
> 
> の順番にファイルを検索して,見つかったものを言語 suffix として使用しま
> す.この例では,
いや、だから、
     NMZ.tips.ja_JP.ISO-2022-JP
     NMZ.tips.ja_JP
     NMZ.tips.ja
までで見つかったら 1 を返し、見つからなかったら 0 を返すという
nmz_chose_msgfile_suffix() に似た関数を用意すれば良いだけでは?
という話をしているのです。
(NMZ.tips のチェックはしないということです。)
 
>     NMZ.tips.da
>     MNZ.tips
> 
> の2つが順に調べられて,NMZ.tips.da が存在しないから,NMZ.tips が選ばれ,
> 出力は英語になるということです.
この例だと、NMZ.tips.da があれば 1 を返し、なければ 0 を返すようになって
いれば、1 を返す場合はそのまま nmz_set_lang() を呼び、0 の場合は次の
言語をチェックというようにすれば良いでしょう。
すべての言語が見つからなければ、最後に nmz_set_lang("en") を呼べば
良いだけですから
for(i = 0; i < n; i++) {
  if (xxxx_choose_msgfile_suffix(buf[i].name)) {
    nmz_set_lang(buf[i].name);
    break;
  }
}
if (i == n) {
    nmz_set_lang("en");
}
という感じのプログラムで済むでしょう。('*' の処理は必要ですけど)
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E