TypeKey サイン・インのメッセージを変更する

TypeKey サイン・インのメッセージを変更する

Posted at July 26,2005 11:58 PM
Tag:[Customize, MovableType, TypeKey]

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タグやメッセージ変換用タグを記述することができます。括られていない他の部分はプログラムですのでご注意ください。

関連記事
zenback
人気エントリー
トラックバックURL


コメント

how can i do if i do not want to use typekey.means every one can leave a commend to me.

[1] Posted by lmlb : December 6, 2005 9:17 PM

>lmlb
Hello.
Please see the following image.

http://www.koikikukan.com/images/20051207_comment.jpg

every one can leave a comment to you.

[2] Posted by yujiro : December 7, 2005 11:58 PM

Basic(.htpasswd)認証を使って、会員登録用の認証を済みました。後はページのリンクからブログを
立ち上げてコメントを入力するようにしたいんです。
そこで、サインインをBasic認証で使用したメールアドと名前を利用したいんですが、
方法がありますか。

[3] Posted by khsmonad : July 4, 2006 5:03 PM

>khsmonadさん
こんにちは。
ご質問の件ですが、TypeKey サイン・インのログイン名・パスワードは個人単位で登録するものです。かたや Basic 認証はページ(ディレクトリ)へ単位でのアクセスで、AuthName は一意と思いますのでご要望のような設定は実現できないのではないかと考えます。
ご質問の解釈が誤っていたらお許しください。
それではよろしくお願い致します。

[4] Posted by yujiro : July 5, 2006 11:14 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)