TypeKey サイン・インのメッセージを変更する
個別エントリーアーカイブ/コメント・プレビュー/コメント・エラーの各コメント欄を整形しました。コメント欄にあるTypekeyバナーの配置は、以前から気に入っていた Ogawa::Memoranda さんのコメント欄のアイデアを勝手ながらそのまま拝借させて頂きました。ありがとうございます。
またTypeKeyサイン・イン後の日本語ニックネームが文字化けする件が残っていましたので、TypeKeyでサイン・インしても表示が変わらない問題を対処を参考に対処しました。
整形に伴って、TypeKeyサイン・イン前後のメッセージをそれぞれ
TypeKey ID を使ってサイン・インしてください。
↓
TypeKeyサイン・イン
サイン・インを確認しました、hogehogeさん。コメントしてください。 (サイン・アウト)
↓
hogehogeさんのサイン・インを確認しました(サイン・アウト)
に変更してみました(青色はリンクを示しています)。
ということで、ここではTypeKeyサイン・インのメッセージのカスタマイズ方法を載せましたので参考になれば幸いです。なおこのカスタマイズはTypekeyの設定が有効かつ、サイン・インしなくてもコメントが可能になっている状態が前提です。
個別エントリーアーカイブ
個別エントリーアーカイブにあるメッセージを変更する場合、個別エントリーアーカイブの赤色部分を青色に修正します。修正前の状態はデフォルトテンプレートと公開テンプレートの2種類について掲載しておきます(若干違ってましたらお許しを)。
デフォルトテンプレート(抜粋:変更前)
<MTIfRegistrationAllowed>
<script type="text/javascript" src="<MTCGIPath><MTCommentScript>?__mode=cmtr_name_js"></script>
<script language="javascript" type="text/javascript">
<!--
if (commenter_name) {
document.write('サイン・インを確認しました、', commenter_name, 'さんのサイン・インを確認しました (<a href="<$MTRemoteSignOutLink static="1"$>">サイン・アウト</a>)');
} else {
document.write('TypeKey ID を使って <a href="<$MTRemoteSignInLink static="1"$>"> TypeKey サイン・インする</a> ');
}
// -->
</script>
</MTIfRegistrationAllowed>
公開テンプレート(抜粋:変更前)
<MTIfRegistrationAllowed>
<script type="text/javascript" src="<MTCGIPath><MTCommentScript>?__mode=cmtr_name_js"></script>
<script language="javascript" type="text/javascript">
<!--
if (commenter_name) {
document.write('サイン・インを確認しました、', commenter_name, 'さん。コメントしてください。 (<a href="<$MTRemoteSignOutLink static="1"$>">サイン・アウト</a>)');
} else {
document.write('TypeKey ID を使って <a href="<$MTRemoteSignInLink static="1"$>"> サイン・イン</a> してください。');
}
// -->
</script>
</MTIfRegistrationAllowed>
変更後
<MTIfRegistrationAllowed>
<script type="text/javascript" src="<MTCGIPath><MTCommentScript>?__mode=cmtr_name_js"></script>
<script language="javascript" type="text/javascript">
<!--
if (commenter_name) {
document.write(commenter_name, 'さんのサイン・インを確認しました(<a href="<$MTRemoteSignOutLink static="1" encode_html="1"$>">サイン・アウト</a>)');
} else {
document.write('<a href="<$MTRemoteSignInLink static="1" encode_html="1"$>">TypeKey サイン・イン</a>');
}
// -->
</script>
</MTIfRegistrationAllowed>
コメント・プレビュー/コメント・エラー
個別エントリーアーカイブはテンプレートの変更だけで可能ですが、コメント・プレビュー/コメント・エラーにあるメッセージを変更する場合、プログラム(context.pm)と言語変換用のファイル(ja.pm)を修正する必要があります。カスタマイズ前にファイルのバックアップをとるか、エディタで履歴を戻せるようにしておいてください。
まず lib/MT/Template/Context.pm の1335行目辺り(3.171-ja の場合)にある下記のスクリプトの赤色部分を削除します。
if ($rem_auth_token && $registration_allowed) {
$result .= $javascript;
$result .= MT->translate_templatized(<<HTML);
<script language="javascript" type="text/javascript">
<!--
if (getCookie("commenter_name")) {
document.write('<MT_TRANS phrase="Thanks for signing in,"> ', '$commenter_name', '<MT_TRANS phrase=". Now you can comment."> (<a href="$path$comment_script?__mode=handle_sign_in&$static_arg&entry_id=$entry_id&logout=1"><MT_TRANS phrase="sign out"></a>)');
} else {
document.write('<MT_TRANS phrase="If you have a TypeKey identity, you can " escape="singlequotes"><a href="$signon_url$lang$needs_email&t=$rem_auth_token&v=$tk_version&_return=$path$comment_script%3f__mode=handle_sign_in%26$static_arg%26entry_id=$entry_id"> <MT_TRANS phrase="sign in" escape="singlequotes"></a> <MT_TRANS phrase="to use it here." escape="singlequotes">');
}
// -->
</script>
HTML
削除したら一旦サイトからコメントの確認を実行してエラーが出ないことを確認してください。もしエラーが出てコメント・プレビュー画面が正常に表示されなくなった場合は削除部分を一旦元に戻します(一番最初の状態に戻せばきちんと表示されます)。そして削除箇所に誤りがないか確認して再度行ってください(「'」の有無に気をつけてください)。
正常に動作するようになったら、次に lib/MT/L10N/ja.pm を編集します。その前に日本語変換の仕組みについて説明します。
例えば「?さん。コメントしてください。」というメッセージは、上のスクリプトの青色
<MT_TRANS phrase=". Now you can comment.">
の部分にあたります。"MT_TRANS" は言語変換用のタグです。このタグの phrase 属性に記述された 「. Now you can comment.」をキーにして、ja.pm に記述された
'. Now you can comment.' => 'さん。コメントしてください。',
という行を探し、「. Now you can comment.」を「さん。コメントしてください。」に変換し、画面に表示します。
なお Context.pm には日本語を直接記述しないでください(文字化けします)。
さて、Context.pm の編集で最初のメッセージから下記の赤色部分が削除されました。
TypeKey ID を使ってサインインしてください。
サイン・インを確認しました、hogehogeさん。コメントしてください。 (サイン・アウト)
後はサイン・イン後のメッセージ「さん。コメントしてください。」を「さんのサイン・インを確認しました」に変更するだけです。これは ja.pm にある
'. Now you can comment.' => 'さん。コメントしてください。',
を
'. Now you can comment.' => 'さんのサイン・インを確認しました',
に変更すればOKです。なお同じキーが何ヶ所かありますが、変更する文字列の少し上に
## lib/MT/Template/Context.pm
と書かれてありますのでその下にある一番近い該当の文字列を変更してみてください。もし変換されないようでしたら他の箇所も検索して変更してみてください。
以上です。なお、MT_TRANS タグの phrase 属性値、つまりキーとなる英文のメッセージを新しく作ることも可能です。つまり、それに対応する日本語が追加できます。あと ja.pm は行の前にTAB文字が入っていますが、TABがなくても問題ありません。
またコメント・プレビュー/コメント・エラーのコメント欄付近は Context.pm の内容を変更することでレイアウトをやメッセージの追加・変更が可能です。腕に自信のある方はチャレンジしてみてください。変更箇所のポイントは
sub _hdlr_comment_fields {
:
}
の中に
:
return MT->translate_templatized(<<HTML);
:
(タグ)
:
HTML
$result .= MT->translate_templatized(<<HTML);
:
(タグ)
:
HTML
:
(略)
と、「<<HTML」と「HTML」で括られた部分に、実際に表示されるタグ等が記述されていますので、ここにHTMLタグやメッセージ変換用タグを記述することができます。括られていない他の部分はプログラムですのでご注意ください。
- Movable Typeのコメント完了ページの内容を記事ごとに振り分ける方法
- Movable Typeで特定カテゴリのコメントを表示する方法
- Movable TypeでreCaptchaを利用する
- Movable Typeでカテゴリ別+ブログ記事別に新着コメントを表示する
- Movable Type 5でコメント投稿フォームをポップアップする
- Movable TypeのコメントでFacebookアカウント認証を有効にする
- Yahoo! JAPAN OpenID を省略表示する(その2)
- コメントにHTMLタグ挿入ボタンをつける(MT4/MT5版)
- コメント投稿にTwitterのOAuth認証を導入
- Movable Type 5でのMTCommentsタグの動作
- ブログ記事とコメントをひとつのフィードで配信する
- Movable Typeのコメント一覧からウェブページのコメントを除外して表示する
- Movable Typeのコメントにimg要素を許容する
- Movable Type(MT)のコメント投稿者の承認と禁止について
- Movable Type 5(MT5)のコメントのページ分割機能(その2:カスタマイズ)
how can i do if i do not want to use typekey.means every one can leave a commend to me.
>lmlb
Hello.
Please see the following image.
http://www.koikikukan.com/images/20051207_comment.jpg
every one can leave a comment to you.
Basic(.htpasswd)認証を使って、会員登録用の認証を済みました。後はページのリンクからブログを
立ち上げてコメントを入力するようにしたいんです。
そこで、サインインをBasic認証で使用したメールアドと名前を利用したいんですが、
方法がありますか。
>khsmonadさん
こんにちは。
ご質問の件ですが、TypeKey サイン・インのログイン名・パスワードは個人単位で登録するものです。かたや Basic 認証はページ(ディレクトリ)へ単位でのアクセスで、AuthName は一意と思いますのでご要望のような設定は実現できないのではないかと考えます。
ご質問の解釈が誤っていたらお許しください。
それではよろしくお願い致します。