言語処理の優先順位

fml8 チュートリアル (バージョン 7.99.1-20180910)
Prev |  | Next

# Chapter 37. 言語処理の優先順位

# 言語処理の諸問題

一番単純なモデルは 「このＭＬは日本人用と仮定している。 よって、自動応答メッセージは、つねに日本語で返す」 というものです。 もちろん、さまざまな問題が考えられます。

第一に、このモデルでは、ＭＬ作成時に何言語用かを指定する必要があります。

第二に、間違って(日本語が読めない人から)送られてきたメールに対しても、 日本語でエラーメッセージを返します。

第三に、日本人がメールを送ってきていたとしても、 今、メールを読んでいる環境で日本語が使えないかもしれませんし、

メールヘッダの Accept-Language: がアテになるでしょうか？

おそらく、少しはアテになるでしょう。 よって、メールヘッダの Accept-Language: を無視するのもよろしくありません。 ただし、きちんと Accept-Language: がつけられているとも限りません。

たとえば、 Accept-Language: ja などとしてある場合は ja が優先だと分かります。 しかしながら、そういったものがなく、かつ、「日本人が help というメール を送ってきた」場合、返事を us-ascii で返すべきなおんか？それとも iso-2022-jp で返すべきなのか？が、プログラムには判断できません。

たとえば、こんなメールでは、どう判断するのが正しいでしょう？

    例:

    From: rudo@example.co.jp
    Subject: help
    mime-version: 1.0
    content-type: text/plain; charset=us-ascii

    help

charset を素直に考えると、英語で返すべきですが、これは本文が英語だけな ので charset=us-ascii になっているだけです。しょうがないので、このＭＬ が(日本人相手のため)日本語優先と設定されているなら、日本語と英語のメッ セージ両方を返すべきでしょう。

英語のＭＬという想定なら、英語のメッセージを返すだけでいいはずです。

逆に、Accept-Lanaguage: が指定されていれば、それを尊重するべきです。 英語のＭＬ(language_preference_order = en)の場合でも、 Accept-Lanaguage: ja なら（できるだけ）日本語で返事をするべきでしょう。 fml8 標準のメッセージであれば、この動作が可能です。

Prev | Home | Next
recipes | Up | 日本語優先のＭＬ

fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml8/.
fml 4.0 project homepage is www.fml.org/software/fml4/.
about one floppy bsd routers, see www.bsdrouter.org/.
other free softwares are found at www.fml.org/software/.

author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.

For questions about FML, e-mail <fml-bugs@fml.org>.