codeigniter 國(guó)際化
codeigniter 中的語言類提供了一種簡(jiǎn)單的方法來支持多種語言的國(guó)際化。在某種程度上,我們可以使用不同的語言文件來顯示多種不同語言的文本。
我們可以在 application/language 目錄下放置不同的語言文件。系統(tǒng)語言文件可以在 system/language 目錄中找到,但是要將您自己的語言添加到您的應(yīng)用程序中,您應(yīng)該在 application/language 目錄中為每種語言創(chuàng)建一個(gè)單獨(dú)的文件夾。
創(chuàng)建文件語言
要?jiǎng)?chuàng)建語言文件,您必須以 _lang.php 結(jié)尾。例如,您要為法語創(chuàng)建一個(gè)語言文件,則必須使用 french_lang.php 保存它。在此文件中,您可以將所有語言文本存儲(chǔ)在 $lang 數(shù)組中的鍵值組合中,如下所示。
$lang[‘key’] = ‘val’;
正在加載語言文件
要在您的應(yīng)用程序中使用任何一種語言,您必須首先加載該特定語言的文件以檢索存儲(chǔ)在該文件中的各種文本。您可以使用以下代碼加載語言文件。
$this->lang->load('filename', 'language');
- filename-它是您要加載的文件的名稱。此處不要使用文件擴(kuò)展名,而只使用文件名。
- language-包含它的語言集。
獲取語言文本
要從語言文件中提取一行,只需執(zhí)行以下代碼。
$this->lang->line('language_key');
其中 language_key是用于獲取加載的語言文件中鍵值的鍵參數(shù)。
自動(dòng)加載語言
如果你需要一些全局語言,那么你可以在 application/config/autoload.php 文件中自動(dòng)加載它,如下所示。
|----------------------------------------------------------------------- | auto-load language files |----------------------------------------------------------------------- | prototype: | $autoload['language'] = array('lang1', 'lang2'); | | note: do not include the "_lang" part of your file. for example | "codeigniter_lang.php" would be referenced as array('codeigniter'); | */ $autoload['language'] = array();
簡(jiǎn)單地說,傳遞要由 codeigniter 自動(dòng)加載的不同語言。
示例
創(chuàng)建一個(gè)名為 lang_controller.php 的控制器并將其保存在 application/controller/lang_controller.php
class lang_controller extends ci_controller { public function index(){ //load form helper $this--->load->helper('form'); //get the selected language $language = $this->input->post('language'); //choose language file according to selected lanaguage if($language == "french") $this->lang->load('french_lang','french'); else if($language == "german") $this->lang->load('german_lang','german'); else $this->lang->load('english_lang','english'); //fetch the message from language file. $data['msg'] = $this->lang->line('msg'); $data['language'] = $language; //load the view file $this->load->view('lang_view',$data); } } ?>
創(chuàng)建一個(gè)名為 lang_view.php 的視圖文件并將其保存在 application/views/lang_view.php
codeigniter internationalization example echo form_open('/lang'); $lang = array('english'=-->"english",'french'=>"french",'german'=>"german"); foreach($lang as $key=>$val) { if($key == $language) echo "".$val.""; else echo "".$val.""; } ?> form_close(); echo $msg;
在 application/language中創(chuàng)建三個(gè)分別名為english、french、german的文件夾,如下圖。
復(fù)制下面給定的代碼并將其保存在 application/language/english文件夾中的 english_lang.php文件中。
$lang['msg'] = "codeigniter internationalization example.";
復(fù)制下面給定的代碼并將其保存在 application/language/french文件夾中的 french_lang.php文件中。
$lang['msg'] = "exemple codeigniter internationalisation.";
復(fù)制下面給定的代碼并將其保存在 application/language/german文件夾中的 german_lang.php文件中。
$lang['msg'] = "codeigniter internationalisierung beispiel.";
更改 application/config/routes.php 中的 routes.php 文件,為上述控制器添加路由,并在文件末尾添加以下行。
$route['lang'] = "lang_controller";
在瀏覽器中執(zhí)行下面的 url 來執(zhí)行上面的例子。
http://yoursite.com/index.php/lang
它將產(chǎn)生一個(gè)輸出,如下面的屏幕截圖所示。如果更改下拉列表中的語言,下拉列表下方的句子的語言也會(huì)相應(yīng)更改。
- CodeIgniter 應(yīng)用程序架構(gòu)
- CodeIgniter MVC 框架
- CodeIgniter 基本概念
- CodeIgniter 配置
- CodeIgniter 使用數(shù)據(jù)庫
- CodeIgniter 庫
- CodeIgniter 錯(cuò)誤處理
- CodeIgniter 文件上傳
- CodeIgniter 發(fā)送電子郵件
- CodeIgniter Flashdata
- CodeIgniter 臨時(shí)數(shù)據(jù)
- CodeIgniter Cookie管理
- CodeIgniter 添加JS和CSS
- Laravel 驗(yàn)證
- Laravel Facades
- Laravel 契約
- Laravel CSRF保護(hù)
- Laravel 認(rèn)證
- Laravel 加密
- Laravel 歷史版本記錄