Movable Typeのプラグインで管理画面のローカライズを行う方法

Movable Typeのプラグインで管理画面のローカライズを行う方法

Posted at March 17,2015 12:03 AM
Tag:[Developer, MovableType, Plugin]

Movable Typeのプラグインで管理画面のローカライズを行う方法を紹介します。

プラグイン開発でいつも失念してしまうので備忘録として残しておきます。

プラグイン開発の基礎的な内容は省いていますので予めご了承ください。

1.問題点

プラグインでtemplate_sourceフックポイントを用いて任意の管理画面テンプレートを書き換える際、次のような文字列を挿入するものとします。

<__trans phrase="test">

この文字列は、「"test"というフレーズに対応した文字を後述の辞書定義(または辞書ファイル)から読み込み、<__trans>タグごと書き換える」ための特殊タグです。

通常であれば、この「test」という文字列はconfig.yaml(またはL10N/ja.pm)に記述された

l10n_lexicon:
    ja:
        test: テスト

という辞書定義を元に、「test→テスト」という辞書変換を行い、管理画面に「テスト」という文字を出力するはずなのですが、元の「test」という文字が出力されてしまいます。

2.原因

管理画面ではプラグイン独自のローカライズが有効になっていないことが原因です。

3.対処

1項で示した特殊タグを、次のように「__trans_section」という特殊テンプレートタグで括ります。

<__trans_section component="プラグイン名"><__trans phrase="test"></__trans_section>

componentモディファイアには、ローカライズを行いたいプラグイン名を記述します。

なお、厳密には__trans_sectionタグで括る必要はなく、

<__trans_section component="プラグイン名"><__trans phrase="test">

とするだけでも動作するようです。

4.内部動作

MT::Component::load_tmplで、管理画面テンプレートに__trans_sectionタグが含まれる場合、テンプレート全体をその__trans_sectionタグで括っているようです。

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


コメントする
greeting

*必須

*必須(非表示)


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

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

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

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