カテゴリー
technology

MT コメントスパム対策の国際化

miyagawa さんの「blog.bulknews.net: MT コメントSPAM Blacklist ファイル更新」と NDO::Weblog の naoya さんの「NDO::Weblog: Hacking the Hack: MT コメントSPAM Blacklist ファイル更新」を参考にスパム対抗準備してたのですが、自分以外の人間も同じ MT を使っているのに告知するのを忘れていたために、意味の分からない人が間違ってコメント削除し blacklist 登録をしてしまう事件が発生してしまいました。
こんなところに力を使ってもと思いましたが、メッセージも英語のままだと分かりにくいのかしらと思い L10N 機能を利用してメッセージのローカライズをしてみました。


上記 2つのコメントスパム対抗策設置が済んでいる前提で lib/MT/App/Comment.pm の 247行目付近を以下のようにします。

$body = Text::Wrap::wrap('', '', $body) . "\n$link_url\n\n" .
$app->translate('IP Address:') . ' ' . $comment->ip . "\n" .
$app->translate('Name:') . ' ' . $comment->author . "\n" .
$app->translate('Email Address:') . ' ' . $comment->email . "\n" .
$app->translate('URL:') . ' ' . $comment->url . "\n\n" .
$app->translate('Comments:') . "\n\n" . $comment->text . "\n" .
"\n" .
$app->translate('Do you want to append this URL into your blacklist?') .
"\n" .
$app->base . $app->path . "mt-blacklist-append.cgi?password=blockblack&url="
.
MT::Util::encode_url($comment->url) . "&id=" . $comment->id;

日本語化されたメッセージカタログ lib/MT/L10N/ja.pm の 897行目辺りにメッセージを追加します。

# スパム対策
'Do you want to append this URL into your blacklist?' => 'このコメント(URL)を Blacklist に追加しますか?',
);
1;

これでコメント通知メイルの最後が

このコメント(URL)を Blacklist に追加しますか?
http://blog.bulknews.net/mt/mt-blacklist-append.cgi?password=blahblah&url=http://…….

となり、終了。満足。