?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
Language Class提供了用于檢索國際化目的的語言文件和文本行的功能。
在您的CodeIgniter 系統(tǒng)文件夾中,您將找到一個語言子目錄,其中包含一組英語成語的語言文件。該目錄中的文件(system / language / english /)定義了CodeIgniter框架不同部分的常規(guī)消息,錯誤消息和其他一般輸出項或表達式。
您可以根據(jù)需要創(chuàng)建或合并自己的語言文件,以提供特定于應(yīng)用程序的錯誤和其他消息,或者將核心消息翻譯成其他語言。這些翻譯或附加消息將進入您的應(yīng)用程序/語言/目錄,并為每個成語(例如“法語”或“德語”)分別設(shè)有子目錄。
CodeIgniter框架附帶一組“英語”習(xí)語的語言文件??梢栽贑odeIgniter 3翻譯庫中找到針對不同習(xí)語的額外批準翻譯。每個存儲庫處理一個單一的習(xí)慣用法。
當(dāng)CodeIgniter加載語言文件時,它將以system / language / first 加載它,然后在你的應(yīng)用程序/語言/目錄中尋找覆蓋。
注意
每種語言都應(yīng)該存儲在自己的文件夾中。例如,英文文件位于:system / language / english
處理多種語言
示例語言文件
切換語言的示例
國際化
使用語言課程
使用語言行作為表單標簽
創(chuàng)建語言文件
加載語言文件
獲取一行文本
- [Auto-loading Languages](about:blank#auto-loading-languages)
類參考
如果你想在應(yīng)用程序中支持多種語言,你可以在你的應(yīng)用程序/語言/目錄中為它們提供文件夾,你可以在你的application / config / config.php中指定默認語言。
該應(yīng)用程序/語言/英文/目錄將包含您的應(yīng)用程序所需的任何額外的語言文件,例如用于錯誤消息。
每個其他成語專用目錄都將包含您從翻譯庫獲得的核心語言文件,或者您自己翻譯的核心語言文件以及您的應(yīng)用程序需要的其他任何附加文件。
您可以將當(dāng)前正在使用的語言存儲在會話變量中。
system/ language/ english/ ... email_lang.php form_validation_lang.php ...application/ language/ english/ error_messages_lang.php french/ ... email_lang.php error_messages_lang.php form_validation_lang.php ...
$idiom = $this->session->get_userdata('language');$this->lang->load('error_messages', $idiom);$oops = $this->lang->line('message_key');
CodeIgniter中的Language類旨在提供一種輕松簡便的方式來支持應(yīng)用程序中的多語言。這并不意味著完全實施所謂的國際化和本地化。
我們使用術(shù)語“成語”來指代使用其通用名稱的語言,而不是使用任何國際標準,例如英語“en”,“en-US”或“en-CA-x-ca”和它的一些變體。
注意
沒有什么可以阻止您在您的應(yīng)用程序中使用這些縮寫!
語言文件必須以_lang.php作為文件擴展名來命名。例如,假設(shè)您想創(chuàng)建一個包含錯誤消息的文件。您可以將其命名為:error_lang.php
在這個文件中,你將把每一行文本分配給一個$lang
用這個原型調(diào)用的數(shù)組:
$lang['language_key'] = 'The actual message to be shown';
注意
對給定文件中的所有消息使用通用前綴以避免與其他文件中具有相似命名項目的沖突是一種很好的做法。例如,如果您正在創(chuàng)建錯誤消息,則可能會在錯誤消息前添加錯誤_
$lang['error_email_missing'] = 'You must submit an email address';$lang['error_url_missing'] = 'You must submit a URL';$lang['error_username_missing'] = 'You must submit a username';
為了從特定文件中獲取一行,您必須首先加載文件。使用以下代碼加載語言文件:
$this->lang->load('filename', 'language');
其中,filename是要加載的文件的名稱(不帶文件擴展名),language是包含它的語言集(即英語)。如果缺少第二個參數(shù),將使用在application / config / config.php文件中設(shè)置的默認語言。
您還可以通過傳遞一組語言文件作為第一個參數(shù)來同時加載多個語言文件。
$this->lang->load(array('filename1', 'filename2'));
注意
該語言的參數(shù)只能由字母。
一旦你想要的語言文件被加載,你可以使用這個函數(shù)訪問任何文本行:
$this->lang->line('language_key');
其中language_key是與您希望顯示的行對應(yīng)的數(shù)組鍵。
您可以選擇傳遞FALSE作為該方法的第二個參數(shù)來禁用錯誤日志記錄,以防您不確定該行是否存在:
$this->lang->line('misc_key', FALSE);
注意
該方法只是返回該行。它不會回應(yīng)它。
此功能已從語言庫中棄用,并已移至lang()
語言助手的功能。
如果您發(fā)現(xiàn)在整個應(yīng)用程序中需要全局特定的語言,您可以告訴CodeIgniter在系統(tǒng)初始化時自動加載它。這是通過打開application / config / autoload.php文件并將語言添加到自動裝載數(shù)組來完成的。
class CI_Langload($langfile[, $idiom = ''[, $return = FALSE[, $add_suffix = TRUE[, $alt_path = '']]]])
參數(shù): | $ langfile(mixed) - 要加載的語言文件或帶有多個文件的數(shù)組$ idiom(string) - 語言名稱(即'english')$ return(bool) - 是否返回加載的轉(zhuǎn)換數(shù)組$ add_suffix(bool) - 是否將'_lang'后綴添加到語言文件名稱$ alt_path(string) - 查找語言文件的替代路徑 |
---|---|
返回: | 如果$ return設(shè)置為TRUE,則為語言行數(shù)組,否則為void |
返回類型: | 雜 |
$ langfile(混合) - 要加載的語言文件或包含多個文件的數(shù)組
$ idiom(string) - 語言名稱(即'english')
$ return(bool) - 是否返回加載的翻譯數(shù)組
$ add_suffix(bool) - 是否將'_lang'后綴添加到語言文件名中
$ alt_path(string) - 查找語言文件的替代路徑
Returns: Array of language lines if $return is set to TRUE, otherwise void
Return type: mixed
Loads a language file.
line($line[, $log_errors = TRUE])
參數(shù): | $ line(string) - 語言行鍵名$ log_errors(bool) - 如果未找到該行,是否記錄錯誤 |
---|---|
返回: | 語言行字符串或FALSE失敗 |
返回類型: | 串 |
$ line(string) - 語言行鍵名
$ log_errors(bool) - 如果找不到該行,是否記錄錯誤
Returns: Language line string or FALSE on failure
Return type: string
根據(jù)線路名稱,從已經(jīng)加載的語言文件中獲取一條翻譯線。