日本語キャラクタセット対応 (日本語でなくてもいいけど)

| トラックバック(0)
日本語環境では複数のキャラクタセットが使われるわけだが、SqWebMail の開発本流ではなかなか対応されない。 そこで、HTTP とメール送信についてフィルタをでっちあげて対応することにする。

以下の説明に出てくるファイルをまとめてダウンロード

  • 以下、
    • SqWebMail の prefix を $prefix、
    • 言語テンプレートの場所を $htmllibdir、
  • と表記する。また、設定例にする言語は日本語。

以下の動作は SqWebMail 5.1.1 で確認した。

SqWebMail もともとの設定

SqWebMail で自分の使いたい言語のディレクトリを用意する。仮に日本語だとすると

# cd $htmllibdir
# mkdir ja-jp
# ln -s ja-jp ja
# cp (必要なファイル...) ja-jp/
などと なる。

日本語を UTF-8 で利用するよう設定する。 つまり、$htmllibdir/ja-jp 内の

  • CHARSET には "UTF-8"
  • LANGUAGE には "ja-jp"
  • LOCALE には適当なロケール名 ("ja_jp.eucJP" など)
を記述する。

日本語で動作することを確認する。

HTTP フィルタ、MIMEフィルタの設定

それぞれコピーする (sendit.sh はもともとの配布物に入っていたものを上書きする)。

HTTPCHARSETSMIMECHARSETS には、それぞれ HTTP アクセスで使用したいキャラクタセット、メールで使用したいキャラクタセットを 空白区切りで書きならべる (先に書いたものが優先される)。これらを $htmllibdir に置く。

sqconfig.py を適当に修正する:

  • PREFIX: $prefix の値。
  • CGIDIR: もともとの CGI がある場所。
  • DEFAULTLANGUAGE: content negotiation が失敗した場合の言語
  • DEFAULTCHARSET: content negotiation が失敗した場合のキャラクタセット

Apache の設定。次のような記述を Apache の設定ファイルに追加する:

ScriptAlias /SqWebMail $prefix/share/sqwebmial/sqwebmail.cgi
SetEnv PYTHONPATH $prefix/etc
そして、Apache を reload する。

確認

もともとの CGI ではなく、sqwebmail.cgi にアクセスする。たとえば上の例だと

http://hatuka.nezumi.nu/SqWebMail
などになるだろう。

以上。これで Shift_JIS、EUC-JP、ISO-2022-JP などで HTTP アクセスできるし、 メールを出すと ISO-2022-JP に変換されて送られる。

備考

  • メールフィルタは、メールの本体が US-ASCII のみであった場合、正しく Content-Type を US-ASCII としてくれる。
  • この対策は、RFC2646 問題を解決しない。
  • この対策は、RFC2231 問題を解決しない。
  • (これはオリジナルの SqWebMail の動作だが) LOCALE ファイルに記述するロケールのキャラクタセットは、UTF-8 以外であってもかまわない。
  • Python (たぶん 2.3 以降) が必要である。書いてなかったな。

トラックバック(0)

トラックバックURL: http://hatuka.nezumi.nu/cgi-bin/mt/mt-tb.cgi/20

このブログ記事について

このページは、Hatuka*nezumiが2006年4月22日 15:46に書いたブログ記事です。

ひとつ前のブログ記事は「check_sender_ns_access」です。

次のブログ記事は「翻訳作業の補助」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。