Movable Typeのプラグインで管理画面のローカライズを行う方法
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タグで括っているようです。
Posted by yujiro このページの先頭に戻る
- Movable Typeに追加した独自オブジェクトをダイナミックパブリッシングで出力する方法
- Movable Typeに独自オブジェクトを追加する方法
- Movable Typeの一覧画面にリストアクションを追加する
- Movable TypeのプラグインオブジェクトをPerlで作成するときのバリエーション
- Movable Typeのプラグインファイル構成について
トラックバックURL
コメントする
greeting