語言(Language)類別
語言(Language)類別提供了函式去解析語言文件和文本行(lines of text)以實現多國語言語系製作。
在您的 CodeIgniter 系統底下,您會找到 language 目錄,裡面包含了各種語系的檔案。 當您為了顯示另外一種語言的錯誤訊息或者其他一些訊息,您可以建立屬於您自己的語言檔案。
語系檔案一般都是放在 system/language 目錄底下。或者是您可以在 application 目錄底下建立 language 目錄。 CodeIgniter 會首先找尋 application/language 目錄,如果上述的目錄不存在或者是要搜尋的檔案找不到,CodeIgniter 就會全域的找尋 system/language 目錄。
注意: 每一種語言都有各自的目錄。例如,英文語系檔案將會放在底下目錄: system/language/english
建立語言檔案
語言檔案的命名最後必須是 _lang.php。例如,您想建立一個錯誤訊息的語言檔案,您可以這樣命名:error_lang.php
在此文件中,在每一行語言您都可以賦予 $lang 陣列方式表示:
$lang['language_key'] = "這裡填入您想要顯示的資料";
注意: 為了避免和其他檔案變數名稱重複,最好把同一個文件的變數字首前端都加上相同名稱,例如,可以把每個錯誤訊息字首都加上 error_
$lang['error_email_missing'] = "您必須填入電子郵件";
$lang['error_url_missing'] = "您必須填入完整網址";
$lang['error_username_missing'] = "您必須填入帳號名稱";
讀取單一語言檔案
使用檔案資料之前,您必須先將檔案載入,利用下面方式取得資料:
$this->lang->load('filename','language');
filename 是你要讀取的檔案名稱(不需要加上副檔名),language 是哪個語言所包含的檔案 (例如,english). 假如沒有設定第二個參數,將會使用 application/config/config.php 的預設語言。
取出資料
一旦語言檔案被載入,您可以利用底下方式取得其中任一值:
$this->lang->line('language_key');
language_key 是您要顯示字串的索引值。
注意: 這個函數只是簡單回傳返回值。它並非是顯示值(It does not echo it for you).
使用語言作為表單 Label
This feature has been deprecated from the language library and moved to the lang() function of the Language helper.
自動載入語系檔案
如果要在整個程式架構載入一個特定的語言,您可以在 CodeIgniter 系統初始化的時候 自動載入 語言檔案,可以修改 application/config/autoload.php 檔案,並且加入您想要預設載入的語言。