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