「WordPressで学ぶPHP(3)関数編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」の続編にあたり、PHP組み込みの関数や、独自の関数を作る方法などを解説します。
Kindle本で、定価400円です。
プラグインの多言語対応にl10n_xx.yamlを使う
最近気づいたことですが、Movable Type 5では、プラグインを多言語対応にする際に、翻訳用の辞書をyamlで書くことができます。
Movable Type 4.xまででは、プラグインを多言語対応にする場合、翻訳用の辞書はPerlのモジュール(L10N/ja.pmなど)で作っていました。
モジュールの中に、翻訳元と翻訳先の対応をハッシュで記述する形です。
一方、Movable Type 5で、テーマの機能が追加されました。
テーマを多言語化対応にする際には、従来のPerlのモジュールを使うこともできますが、yaml形式で書くこともできます。
Perlのモジュールよりも、yamlの方が書き方がシンプルで、作業が若干楽になります。
Melody用テーマの移植の作業中に、Movable Typeのテーマ関係のソースを見ていたところ、「Movable Type 5では、テーマだけでなく、プラグインでもl10n_xx.yamlが使えるのでは?」ということに気付きました。
実際試してみると、特に問題なくl10n_xx.yamlを使うことができました。
l10n_xx.yamlで多言語対応を行う手順は、L10N/ja.pm等のPerlのモジュールを使う場合とほぼ同じです。
プラグインのソースの中で、多言語対応にしたい部分は、translateメソッドを使って翻訳を行います。
また、管理画面のテンプレート等の中で多言語対応にしたい部分は、<__trans phrase="○○○">の書き方を使います。
そして、プラグインのconfig.yamlに「l10n_lexicon」のキーを作り、その値として、各言語用の辞書ファイルの名前を書きます。
辞書ファイルは、config.yamlと同じディレクトリに入れます。
例えば、「Foo」という名前のプラグインを作り、日本語用の辞書として「l10n_ja.yaml」を使いたいとします。
この場合、config.yamlファイルの先頭部分を以下のように書きます。
name: Foo id: Foo ・・・ l10n_lexicon: ja: l10n_ja.yaml ・・・