CommentSubscribeプラグインの導入と日本語化

Movable Typeで、コメントに返信した際にそのことをコメント元の人にメールで通知するには、プラグインを使います。

Movable Type 3.xの頃はChad Everett氏が開発した「MT-Notifier」というプラグインを使いました。
かつては無償で使うことができましたが、Movable Type 3.3用のバージョン3.4.6以降は有償化されています。
また、Movable Type 4用のMT-Notifierもリリースされましたが、機能強化に伴って料金が値上げされています(個人利用は24$、商用利用は48$)。

このような中で、Robert Synnott氏が、MT-Notifierの機能を単純化したような「CommentSubscribe」というプラグインを発表しました。
こちらのプラグインは無償で利用することができます。
そこで、このプラグインの導入と日本語化の方法を紹介します。

1.CommentSubscribeプラグインのインストール

まず、CommentSubscribeプラグインの解説ページから、プラグインのZipファイルをダウンロードします。
zipファイルを解凍すると「CommentSubscribe」というフォルダができますので、それをMovable Typeの「plguins」ディレクトリにアップロードします。

2.GetQueryParamプラグインのインストール

この後で、コメント入力フォームに、返信メールを送信するかどうかのチェックボックスを追加します。
コメント確認ページでそのチェックボックスが正しく動作するようにするために、拙作のGetQueryParamプラグインをインストールします。

プラグインは以下からダウンロードすることができます。

GetQueryParam_1_11.zip

3.コメント入力フォームの書き換え

次に、「コメント入力フォーム」のテンプレートモジュールで、フォーム内に以下のようなタグを追加します。
コメント入力欄の後あたりに追加すると良いでしょう。

<div id="comment-form-subscribe">
    <label for="comment-subscribe"><input type="checkbox" id="comment-subscribe" name="subscribe" <MTIf name="comment_preview_template"><MTIfQueryParam name="subscribe" value=""><MTElse> checked="checked"</MTIfQueryParam></MTIf> />
    コメントに返信があったときにメールで通知</label>
</div>

タグの追加が終わったら、ブログ記事アーカイブを再構築します。

4.日本語化用辞書ファイルのアップロード

ここまでの状態で、コメント入力フォームで「コメントに返信があったときにメールで通知」のチェックボックスをオンにしてコメントを送信し、そのブログ記事に再度コメントをすると、チェックをオンにしたときのメールアドレスに通知メールが送信されるようになります。
ただ、通知メールは英文になります。

通知メールを日本語化するために、まず日本語化用辞書ファイルをアップロードします。
ファイルは以下からダウンロードすることができます。

CommentSubscribe-ja_1_00.zip

zipファイルを解凍すると、「CommentSubscribe」フォルダができます。
このフォルダを、Movable Typeの「plugins」ディレクトリにアップロードします。

5.CommentSubscribe.plファイルの書き換え

最後に、CommentSubscribeプラグインのCommentSubscribe.plファイルを書き換えて、日本語化の処理を追加し、アップロードし直します。
以下の各箇所を書き換えます。

・13行目
書き換え前

description => "Allows viewers to subscribe to recieve emails every time a comment is posted for a given entry.",

書き換え後

description => '<__trans phrase="Allows viewers to subscribe to recieve emails every time a comment is posted for a given entry.">',

・19~20行目
書き換え前

    plugin_link => "http://myblog.rsynnott.com/software/commentsubscribe.html",
});

書き換え後

    plugin_link => "http://myblog.rsynnott.com/software/commentsubscribe.html",
    l10n_class => 'CommentSubscribe::L10N',
});

・100~101行目
書き換え前

# load_tmpl loads it from the plugin's tmpl directory
my $body = $app->build_page($plugin->load_tmpl('commentsubscribe_notify.tmpl'), $param);

書き換え後

# load_tmpl loads it from the plugin's tmpl directory
my $tmpl = $plugin->load_tmpl('commentsubscribe_notify.tmpl');
$tmpl->text($plugin->translate_templatized($tmpl->text));
my $body = $app->build_page($tmpl, $param);