Lang クラス

Lang クラスは、アプリケーション内の言語ファイルを使用して言語の変数をセットすることができます。

デフォルトの言語は、app/config/config.php の中で en と設定されています。 値を変更するには、Config の set メソッド を使用してください。

Config::set('language', 'cy');

フォールバック言語を設定の中で言語コードや言語コードの配列として定義することもできます。 言語ファイルを読み込むときに指定した言語ファイルが存在しなければ、 フォールバック言語が使用されます。

多言語サポート

Lang クラスは同時に使うことができる多数の言語をサポートしています。 デフォルトでは、ファイルの読み込みと言語文字列の取得は現在設定されている言語で行われます。 しかし、上記のメソッドを使うか、または必要な言語コードを Lang クラスのメソッドで呼び出すことによって動的に切り替えることができます。

言語ファイルの種類

言語ファイルを保存するのに、さまざまなファイルレイアウトを使用できます。レイアウトの種類は、ファイルの拡張子で決められます。

ファイルの種類を指定しない場合、Lang::load() はデフォルトの 'php' を使用します。

load($file, $group = null, $language = null, $overwrite = false, $reload = false)

load メソッドは、言語ファイルを読み込むことができます。

静的 はい
パラメータ
パラメータ デフォルト 説明
$file 必須 求めるファイルへのパス。読み込まれたパッケージやモジュールから読み込むために、名前空間のプレフィックスを付けることができます。
$group
null
使用する言語グループをセットします。
$language
null
読み込みたい指定の言語をセットします。
$overwrite false (オプション) true にセットしたならば、読み込んだ言語アイテムは既にある読み込まれたアイテムと非再帰的な方法でマージされます。多次元配列である場合は、マージするのではなく配列の値が上書きされます。
$reload false (オプション) true にセットしたならば、要求された言語ファイルは再読み込みが強制され、読み込まれている言語ファイルに関連した言語アイテムのキャッシュが削除されます。
返り値 void
// 言語ファイルの例:
return array(
	'hello' => 'Hello :name',
	'something'=> 'something :name!',
	'test'=> array('hello' => 'Hello', 'something' => 'Plop') // グループ
);

// example.php を読み込む。
// 注意: 設定に言語がセットされていないならば、英語が代わりに使われます。
Lang::load('example');

// 'test' グループの中の指定したファイルが読み込まれます。
Lang::load('example', 'test');

// プロパティの出力
$this->output = Lang::get('test.test.something');

// 'bar' グループの中の 'foo' モジュールから example 言語ファイルが読み込まれます。
Lang::load('foo::example', 'bar');

// イタリア語の言語ファイル example が読み込まれます。
// 存在しなかったならば、設定されている言語が読み込まれます
Lang::load('foo::example', 'bar', 'it');

get($line, $params = array(), $default = null, $language = null)

get メソッドは、言語ファイルから指定した行を取得します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$line 必須 求める行の識別子。
$parameters
array()
行へ渡されるパラメータの配列をセットします。
$default
null
$line が見つからなければ返す値。
$language
null
この行で取得したい言語コード。与えられないならば、現在アクティブな言語が使用されます。
返り値 mixed 。見つかれば String 、見つからなければ false
// この言語ファイルを与える
return array('hello' => 'Hello :name');
// Hello world を出力
$this->output = Lang::get('hello', array('name' => 'world'));

// プロパティの出力
$this->output = Lang::get('test.something');

set($line, $value, $group = null, $language = null)

set メソッドは、指定した行を言語ファイルにセットすることができます。

静的 はい
パラメータ
パラメータ デフォルト 説明
$line 必須 求める行の識別子。
$value
array()
行の値をセットする。
$group
null
使用する言語グループをセットする。
$language
null
この行でセットしたい言語コード。与えられないならば、現在アクティブな言語が使用されます。
返り値 void
// true を返す
Lang::set('hello', 'Ahoy!');

// グループを使って
Lang:set('hello', 'Ahoy!', 'test');

// 上と同じ様な動作
Lang::load('test', 'test');
Lang::set('hello', 'Ahoy!');

save($file, $lang, $language = null)

save メソッドは、システムの中に言語ファイルを保存します。要求されたファイルの言語ディレクトリを検索します。 もしファイルが見つからないならば、APPPATH の lang ディレクトリに言語ファイルを作成します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$file 必須 設定ファイルのパスは、config ディレクトリに対する相対パスです。ファイル拡張子を含まないでください (拡張子として ".php" であることが決め打ちされています) 。読み込まれたパッケージやモジュールの設定ファイルを読み込むために、名前空間のプレフィックスを付けることが出来ます。
$lang 必須 文字列ならばグループ名を指定して保存します。配列ならば、言語文字列が含まれているとして保存します。
$language null ファイルに保存される言語コード。指定されないならば、現在セットされている言語コードで保存されます。
返り値 言語ファイルが保存されたら true 、エラーが発生したら false
// これは、"foo" という名前のグループにある言語ファイル "custom" を読み込む。
Lang::load('custom', 'foo');

// 言語のアイテムを更新する
Lang::set('foo.key', $value);

// 更新された言語グループ 'foo' を保存 (注意: グループの中の全てのものが保存されます!)
Lang::save('custom', 'foo');

// 更新された言語グループ 'foo' を モジュール 'foo' の中の 言語ファイル 'custom' に保存
Lang::save('foo::custom', 'bar');

delete($item, $group = null, $language = null)

delete メソッドは、読み込まれた 言語ファイルから指定された行を削除します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$item 必須 求める行の識別子。
$group
null
使いたい言語グループをセットします。
$language
null
削除する行の言語コード。与えられないならば、現在アクティブな言語が使用されます。
返り値 void
// 言語キー 'hello' を削除
Lang::delete('hello');

language クラスに格納された言語アイテムを削除するのであって、ディスクにある言語ファイルから削除しないことに注意してください。

get_lang()

get_lang メソッドは、現在アクティブな言語を取得します。一般的に、Config::get('language') と同じ結果になります。

静的 はい
パラメータ なし
返り値 String 現在アクティブな言語。
// 現在アクティブな言語を返す。大抵は 'en' になるだろう
Lang::get_lang();

手続き型ヘルパー

__($string, $params = array())

The __ 関数は、Lang::get の別名です。

パラメータ
パラメータ デフォルト 説明
$string 必須 求める行の識別子。
$parameters
array()
行に渡されるパラメータの配列。
返り値 string 。Lang::get からの結果
// Hello world を出力
$this->output = __('hello', array('name' => 'world');

// プロパティを出力
$this->output = __('test.something');