このエントリーをはてなブックマークに追加

更新日: 2016年2月25日

実行時間: 0.0077

CI_Lang

 「 CI_Lang 」は、Webサイトの多言語化をサポートするクラスです。
 ページ内のメニュー名やタイトルなどの文言を指定した言語で表示させるのに使われます。

 CodeIgniterの「 CI_Lang 」クラスの持つ機能は、言語(辞書)ファイルを読み込み、 その言語(辞書)ファイルから指定した言語の文言を返すというシンプルなものです。

言語(辞書)ファイル作成

 この機能を利用するには、まず、言語(辞書)ファイルを作成する必要があります。
 言語(辞書)ファイルは、通常「application/language/」配下にそれぞれの言語のサブディレクトリを作り そのサブディレクトリの中に、拡張子を「_lang.php」として作成していきます。

    application/language/english/greeting_lang.php
    application/language/japanese/greeting_lang.php
    application/language/chinese/greeting_lang.php

 言語(辞書)ファイルには、連想配列「$lang」を定義していきます。
 「$lang」連想配列の添え字(インデックスキー)に、文言を識別する文字列(英語)で指定し、 それに対応する各言語の文言を値としてセットしていきます。

  • application/language/english/greeting_lang.php
  • <?php
    $lang['hello'] = 'Hellow';
    $lang['good_morning'] = 'Good morning';
  • application/language/japanese/greeting_lang.php
  • <?php
    $lang['hello'] = 'こんにちは';
    $lang['good_morning'] = 'おはようございます';
  • application/language/chinese/greeting_lang.php
  • <?php
    $lang['hello'] = '你好';
    $lang['good_morning'] = '早上好';

言語(辞書)ファイルの読込

 作成した言語ファイルを読み込みます。

load($langfile = '', $idiom = '', $return = FALSE, $add_suffix = TRUE, $alt_path = '')

 第一引数に読み込みたい言語(辞書)ファイルの拡張子「_lang.php」を除いたファイル名を指定します。
 第二引数は読み込みたい言語(サブディレクトリ名)を指定します。第二引数が指定されなかった場合は、 「application/config/config.php」 の「$config['language']」の値が利用されます。
 第三引数に「TRUE」を指定すると「$lang」連想配列をリターン値として返します。
 (第三引数に「TRUE」を指定すると 「line()」メソッドが利用できなくなります。)  言語(辞書)ファイルが、拡張子「_lang.php」付きではない場合は、第四引数に 「FALSE」を指定します。
 第五引数は、「language/」ディレクトリを「application/」ディレクトリ以外に設置している場合に そのディレクトリパスを指定します。

    $this->lang->load('greeting', 'japanese');
  • line()メソッドを利用しない場合
  • $lang = $this->lang->load('greeting', 'japanese', TRUE);
    echo $lang['hellow'];
    //=> こんにちは

文言の読込

 読み込んだ言語(辞書)ファイルから文言を取得します。

line($line = '')

 引数に「$lang」連想配列の添え字(インデックスキー)を指定すると、その対応する文言が取得できます。

    $this->lang->load('greeting', 'japanese');
    $hello = $this->lang->line('hello');
    echo $hello;
    //=> こんにちは