言語クラス
言語クラスには、国際化の目的のため、言語ファイルとその中の行を読み取るメソッドが用意されています。
CodeIgniter のシステムフォルダのなかに、言語ファイルが入っている language という名前のフォルダがあるのがわかると思います。他の言語で、エラーメッセージやその他のメッセージを表示させるために、必要なユーザ定義の言語ファイルを作成することができます。
言語ファイルは通常は、system/language ディレクトリに保管されています。かわりに application フォルダの中に language という名前のフォルダを作って保管することもできます。CodeIgniterでは、system/application/language ディレクトの中が最初に認識されます。もしディレクトリが存在しないか、指定の言語がその中にない場合は、かわりにグローバルな system/language フォルダの中を探します。
Note: 各言語はそれぞれ各言語ごとのフォルダに保管される必要があります。たとえば、英語(English) のファイルは次の場所にあります: system/language/english
言語ファイルの作成
言語ファイルは、_lang.php という拡張子 [訳注:およびサフィックス] をつけて名前を付ける必要がります。たとえば、エラーメッセージ用のファイルを作りたいのなら、それを次のような名前にします: error_lang.php
ファイルの中で、次の例のように$langという名前の配列にテキストの各行を代入します:
$lang['language_key'] = "実際に表示されるメッセージ";
Note: 他のファイルで使われている同じ名前の項目と衝突しないように、同じファイル中では、共通のプリフィックス(接頭辞)を使うというのは、良いプラクティスです。たとえば、エラーメッセージを作成しているなら error_ というプリフィックスを付けます。
$lang['error_email_missing'] = "メールアドレスを入力してください";
$lang['error_url_missing'] = "URLを入力してください";
$lang['error_username_missing'] = "ユーザ名を入力してください";
言語ファイルの読み込み
特定のファイルから文字(ライン)を読み取るには、まずファイルを読み込む必要があります。次のコードを使って言語を読み込むことができます:
$this->lang->load('filename', 'language');
ここでの filename は、読み込みたいファイルの名前(拡張子は除く)になります。language のところは、そのファイルの言語 (たとえば english) になります。第2引数が指定されていなばい、application/config/config.php ファイルでセットされているデフォルトの言語が使用されます。
テキストの行を読み取る
使いたい言語ファイルが読み込まれたら、次のメソッドを使って、どのテキストにもアクセスできます:
$this->lang->line('language_key');
ここでの language_key は、表示したい行に関連付けられた配列のキーになります。
Note: このメソッドは、単純にテキストを返します。出力(echo)はしません。
フォームのレーベルを出力
この機能は重複していたため言語ヘルパの lang() ファンクションに統一されました。
言語の自動読み込み
特定の言語がアプリケーション全体でグローバルに必要になったら、システムの初期化のときに 自動読み込み させるようにCodeIgniter に知らせることができます。application/config/autoload.php ファイルを開き、自動読み込み配列に言語を追加することで、そうすることができます。