モジュールを作ろう!(10) 文を追加する

モジュールの体裁を整えていると,そのうち見出しや注意書き,説明文を追加したくなってきます。

Cubson の Wizard コマンドを使えば,項目名やエラーメッセージなど,だいたい十分な単語を言語定数ファイルに出力してくれますが,それだけでは足りなくなることもしばしばあります。

そのような場合,最も簡単な(そして後々困る)やり方は,/templates/xxx_yyy_view.html などのテンプレートファイルに「半角英数で記入ください」など,直接日本語を書き込んでしまう方法です。

推奨されるやり方は,/languages 以下にある main.php などに言語定数として追加する方法です。多少手間はかかりますが,次のようなメリットを持ちます。

  • 多言語対応可能。あなたの得意な言語(日本語とか)だけでなく,英語,中国語,フランス語など,言語ファイルさえ用意してやれば多言語に対応可能。テンプレートファイルに直接書き込む方法では事実上,多言語対応は困難です(バージョンアップしてテンプレートファイルに変更が入ったときの作業を考えてみましょう)。
  • 仮に「自分しか使わないしぃ」というモジュールであっても,文字コードごとの対応を考えると人ごとではなくなります。今は EUC でも,将来的に UTF-8 に変えざるを得ない状況が発生する可能性は大いにあります。あるんですよ?
  • 項目名を変えたくなったときに一気に漏れなく変えることが出来る。例えば,submit ボタンの表示を「送信」から「登録」に変えたくなったとき,言語定数を使っていれば1カ所変えれば済みますが,直接テンプレートに書き込んでいるとその全てを変えなければならなくなります。上手く一括で置換できればいいですが,「送信記録」なんて項目があったりすると,一括で「送信」→「登録」に置換するとたいへんなことになります。

言語定数を追加するには

言語定数を追加するには,/languages/(言語名)/main.php

define('_MD_XXX_LANG_SEND', "送信");

のような行を追加してやれば良いのですが,言語の数だけ追加する必要があったりして結構面倒です。
Cubson には,この言語ファイルに定数を追加するコマンドがありますので,これを使うと /languages 以下の全ての言語ファイルに追加されるので便利です。

addlang lang send

というコマンドを打つと,モジュール xxx の言語ファイルに以下の言語定数が追加されます。

define('_MD_XXX_LANG_SEND', "SEND");

あとは,このファイルを開いて "SEND" を "送信" など表示したい単語に書き換えてください。