]追加された行はこの色です。削除された行はこの色です。第7回はプラグインを国際化(多言語化)する方法を解説します。Bootstrapで呼び出される機能を多言語化の方法も解説します。//勉強会の模様をアップしました。勉強会の模様をアップしました。//Ustreamのチャンネルはこちら。Ustreamのチャンネルはこちら。ご感想、ご質問などあればお気軽にどうぞ。頂けるととても励みになります。//単に対象のファンクションタグの出力を‘’で囲むだけのプラグインです。//グローバルフィルターの実装例としてご参考ください。Typeの管理画面は、表示する内容を定義した「テンプレート・ファイル」をテンプレート・エンジンが解析、処理して表示されます。DefaultLanguageの値)をもとに、辞書ファイルから翻訳結果を抽出して表示しています。辞書ファイルは以下のように配置する慣例があります。各ファイルの構造は以下のようになります。仮にプラグイン名をMyPluginとします。MyPlugin::L10N::jaと継承しています。これによって日本語の辞書定義が存在しない場合でも英語の定義が使われ、それもなければMT::Plugin::L10Nの定義が利用されます。言語別の辞書ファイルには他にも、fr.pm(フランス語)、de.pm(ドイツ語)、es.pm(スペイン語)、nl.pm(オランダ語)が定義できます。辞書定義の書式は%Lexiconというハッシュのキーに対象の文字列(フレーズ)を、値に変換結果を定義して並べる形になっています。英語(en_us.pm)以外の言語の辞書ファイルはen_us.pmを継承して定義します。することで、先に述べましたが、対象のキーに対する訳がない場合でも、英語のフレーズが使われます。ようにl10n_classに辞書ファイルのパッケージ(MT::Plugin::L10Nを継承したパッケージ)を指定します。テンプレートエンジンはphraseの値に対応する辞書定義を探し、あれば翻訳、なければphraseの値をそのまま出力します。_で始まるフレーズ((キーワードと呼ぶらしいです))は英語にも定義されていなければエラーになります。スクリプト内でも翻訳処理を呼び出すことができます。MT::Pluginのtranslateメソッドを利用します。プラグインの辞書ファイルを利用します。Bootstrapで次のようにMyCGIというクラスが起動されるとします。plugins/MyCGI/MyCGI.pmでプラグインオブジェクトの参照を取得します。後は、このプラグインオブジェクトの参照を使って、出力を返す前にtranslateしてあげます。次回はregistryメソッドのリファレンスを一通り見ていきたいと思います。長くなると思いますので、2〜3回にわけると思います。