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