2008年9月| 1 2 3 4 56789101112131415161718192021222324252627282930
トップ > Movable Type > 今日のMovable Type 4.2:MT4.1用に作った『テンプレートセット』のプラグインがMT4.2でエラーの出る件について

今日のMovable Type 4.2:MT4.1用に作った『テンプレートセット』のプラグインがMT4.2でエラーの出る件について

2008年6月 7日 03:10

エラー表示

エラーが出るのは、MT4.2のja.pmからは、MT4.1独自のテンプレートモジュール名は削除されているからだ。

昨日のブログに「MT4.1で使えたカスタムテンプレートのプラグインは、MT4.2ではテンプレートの構造が変わったので、使えない場合がある。」と書いた。この現象はテンプレートのモジュール名を日本語で書き、config.yamlのlabel表記が英文の場合に起こる。
本日いろいろと検証した結果、エラーの原因は、MT4.2のja.pmから、MT4.1独自のテンプレートもモジュール名が削除されているころが理由であることがわかった。
※jm.pmは英語を日本語に置き換えるファイル

対応方法として、MT4.1用に作った『テンプレートセット』を、MT4.2のテンプレート構造に合わせて作り直し、config.yamlも書き換えるのが最もよいが、早急に作り直しができないという方のために対応方法を解説する。
MT4.1用の『テンプレートセット』のプラグインを作った人は、必ず読んでほしい。

◆エラーの現象

エラー内容を見ると、概ねはこんな感じだ。

テンプレート「ウェブページ」の再構築中にエラーが発生しました:
<mtInclude>タグでエラーがありました:
「ヘッダー」というモジュールテンプレートが見つかりませんでした。

「テンプレートを編集」をクリックすると、該当テンプレートが開くのだが、読み込まれているはずの、「ヘッダー」「フッター」が(新規作成)となっている。

上記のエラー表示がおきた場合は、テンプレートモジュールの管理画面を確認してみよう。

テンプレートモジュール管理画面

MT4.1では確かに日本語で表示されていたモジュール名が英文表記になっている。

もしや、ja.pmから、MT4.1独自のモジュール名が削除されているのではと思い、/lib\MT\L10N/ja.pmを調べると、該当ファイル名がない。

ではどうするか?3つの方法がある

◆対応方法

1. ja.pmにMT4.1独自のモジュール名を追加する

/lib\MT\L10N/ja.pmの184行目から192行目以降にテンプレートファイル名が書かれているので、その後に下記ソースを追加する

     'Comment Detail' => 'コメント詳細',
    'Entry Detail' => 'ブログ記事の詳細',
    'Entry Metadata' => 'ブログ記事のメタデータ',
    'Footer' => 'フッター',
    'Header' => 'ヘッダー',
    'Page Detail' => 'ウェブページの詳細',

ただしこのやり方はリスクが大きいのでお勧めはできない。プラグインで追加するコンテンツの日本語訳は、プラグインでおこなうのがベストだ。

2. テンプレート内で読み込んでいるモジュールの名前を、config.yamlに書いているlabelと揃える。

たとえば、こんな感じ。

◇ソース

<$MTInclude module="ヘッダー"$>

◇config.yaml

header:
label: ヘッダー

英字表示と日本語表示が混ざってしまうのがまずいと思うなら、プラグインに L10N を持たせてやる方法を利用するといい。
※L10Nを持たせる方法は上ノ郷谷さんに教えてもらった。

3.テンプレート内で読み込んでいる日本語表記のモジュールの名前を、__trans phrase="英文ファイル名"に変換する。

たとえば、

<$MTInclude module="ヘッダー"$>

<$MTInclude module="<__trans phrase="Header">"$>

と変換してやる。

なお、この文章を書くにあたっては、シックス・アパート株式会社の上ノ郷谷さんと書簡のやりとりを行い、幾多のアドバイスをいただいた。というのは知らなかった。上ノ郷谷さんに感謝。

MT4.2やMTOS4.2に特化した、『カスタムテンプレートセット』のプラグインは、正規版が出てから作る必要があるので、気が向いたら解説する予定。
#あくまでも気が向いたらだが…:-p

参考になれば幸い。

投稿者: Dakiny 日時: 2008年6月 7日 03:10 | このエントリーをはてなブックマークに追加 このエントリーのはてなブックマーク被リンク数 |  このエントリをdel.icio.usに追加 | このエントリをlivedoorクリップに追加 このエントリーのlivedoorクリップ被リンク数 |  | コメント(0)  | トラックバック (0)

トラックバック

このエントリーのトラックバックURL:
http://www.dakiny.com/mtos/mt-tb.cgi/1642
※文章内容と関係のないトラックバックは固くお断り。

コメントを投稿

Search


キャッシュ使用
Powered by 暴想

Download

Categories

ArchiveList

Trackbacks

Comments