プラグイン:MultiCounterXの紹介4

 最後にローカライゼーションについて記載してMultiCounterXの紹介を終了します。
 今後は、既に一部のページで稼働している旧イメージカウンターと生成するアクセスログが同じ構造なので、以前作った集計グラフアプリを本プラグインカウンターから起動できるようにしたいと思います。

7.ローカライゼーション

(1)方針
 本プラグインは設定したメッセージを設定したフォントや色でそのままpngイメージに変換して出力するだけですので、基本的にローカライゼーション(多言語対応)を考えるのは設定画面のみということになります。設定画面はブログレベルのみ定義していますので、ブログレベルの設定画面について多言語対応します。個人能力の理由から英語と日本語のみの対応ということにしています。

(2)mc_setting_blog.tmpl
 紹介2で記載した通り、このファイルには、設定項目全てのラベルにローカライゼーション用の__trans phraseタグが埋め込んであります。このタグの右辺が辞書ファイルのキー(下記朱書き部分)になというのがMT流です。

<mtapp:setting
 id="MCFontfile"
 label="<__trans phrase='_MCXFont'>">
    <input type="text" name="MCFontfile" id="MCFontfile" value="<mt:var name="MCFontfile" escape="html">" size="30" />
</mtapp:setting>
.........

(3)辞書ファイル
 辞書ファイルは、plugins/MultiCounterX/lib/MultiCounterX/L10Nにある、ja.pmとen_us.pmです。en_us.pmはMultiCounterX::L10Nの派生パッケージ、ja.pmはMultiCounterX::L10N::en_usの派生パッケージということになります。
 各々のパッケージの中でパッケージ変数%Lexiconハッシュに(2)で定義したキーに対応する値として変換文章を定義します。en_us.pmでは値を英語で、ja.pmでは値を日本語で定義します。
 ユーザーダッシュボード-ユーザー情報の編集 画面の言語設定を変更すると、上記辞書が切り替わります。
 L10N.pmはMT::Plugin::L10Nの派生パッケージとする記述だけです。

<L10N.pm>

package MultiCounterX::L10N;
use strict;
use base 'MT::Plugin::L10N';
1;

<en_us.pm>

package MultiCounterX::L10N::en_us;
use strict;
use base 'MultiCounterX::L10N';
use vars qw( %Lexicon );
%Lexicon = (
    'MultiCounterX plugin config' => 'Multi CounterX',
    '_PLUGIN_DESCRIPTION' => 'Session Controled Counter , Yesterday/Today Counter',
    '_PLUGIN_AUTHOR' => 'webkoza.com',
    '_MCXFont' => 'Font File Full Path',
    '_MCXCGI' => 'Counter CGI URL',
    '_MCXSesTout' => 'Session Duration Time  sec ',
    '_MCXOwner' => 'Owner Name',
    '_MCXFrameWidth' => 'Display Frame Width  px ',
    '_MCXFrameHight' => 'Display Frame Hight  px ',
    '_MCXFrameBGColor' => 'Display Frame Back Ground Color:***,***,***',
    '_MCXFrameBDColor' => 'Display Frame Border Color:***,***,***',
    '_MCXFontSize' => 'Messages Font Size',
    '_MCXMessage1' => 'Message1:Including Yesterday/Today/Total Number of Visitors',
    '_MCXMessage1FontColor' => 'Font Color of Message1:***,***,***',
・・・省略・・・
); 1;

<ja.pm>

package MultiCounterX::L10N::ja;
use strict;
use base 'MultiCounterX::L10N::en_us';
use vars qw( %Lexicon );
%Lexicon = (
    'MultiCounterX plugin config' => 'Multi CounterX',
    '_PLUGIN_DESCRIPTION' => 'セッション管理型カウンター・昨日今日カウンター',
    '_PLUGIN_AUTHOR' => 'webkoza.com',
    '_MCXFont' => '使用するフォントファイル',
    '_MCXCGI' => 'カウンターCGIのURL',
    '_MCXSesTout' => 'セッション継続時間 sec ',
    '_MCXOwner' => 'カウンター管理者名',
    '_MCXFrameWidth' => 'フレーム幅 px ',
    '_MCXFrameHight' => 'フレーム高さ px ',
    '_MCXFrameBGColor' => 'フレーム背景色(***,***,***)',
    '_MCXFrameBDColor' => 'フレーム枠色(***,***,***)',
    '_MCXFontSize' => 'メッセージフォントサイズ',
    '_MCXMessage1' => 'メッセージ1(昨日・今日・合計の人数埋め込み)',
    '_MCXMessage1FontColor' => 'メッセージ1フォント色(***,***,***)',
・・・省略・・・
);
1;