2013-02-08 243 views
2

我使用本教程http://sumonbd.wordpress.com/2009/09/16/develop-multilingual-site-using-codeigniter-i18n-library/多語言codeigniter。多種語言設置codeigniter

我遵循正確列出的說明。它沒有給我任何錯誤,但我不能說它正常工作。 當我運行mysite.com/en/about和mysite.com/fr/about時,它總是給我默認的語言,這是英語。我想知道是否有任何配置需要設置才能正常工作。

我想着這在config.php

$配置[ '語言']

這autoload.php

$自動加載[ '語言']

我必須配置這些嗎?或任何其他配置正確工作多語言。

回答

1

在分析了CI的代碼和博客中的代碼之後,我已經提出了這個解決方案。

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class About extends CI_Controller { 

    function index() 
    { 
     // you might want to just autoload these two helpers 
     $this->load->helper('language'); 
     $this->load->helper('url'); 

    $this->getLang(); 
     $this->load->view('about'); 
    } 

    function getLang(){ 
     $url = $_SERVER['REQUEST_URI']; 
     $lang = explode("/", $url); 

     if($lang[2] == 'en'){ 
     // load language file 
      return $loadLang = $this->lang->load('english','english'); 
     } 
     else if($lang[2] == 'fr'){ 
     // load language file 
      return $loadLang = $this->lang->load('french','french'); 
     } 
     else{ 
      // load language file 
      return $loadLang = $this->lang->load('english','english'); 
     } 

     return false; 
    } 


} 

我創建了功能getLang()中,我加載語言文件。

$this->lang->load('language_file','language_folder'); 
1

對不起,您沒有提供足夠的有關您所做的事情的信息。但我會試着回答。

我試過更新的教程,它的作品就像一個魅力。

enter image description here

首先,你指向一個徹頭徹尾的最新教程。這是你的鏈接與更新來源:source

,與MY_(默認配置)前綴文件是核心類(見Core Classes)不是圖書館和應放在應用程序/核心目錄。

,在你的視圖文件,儘量避免使用PHP短標記(<?=$variabel;?>),因爲不是所有的服務器配置使PHP短標記。使用正常的echo標籤代替<?php echo $var; ?>。更長,但值得你寫標準模式。

正如我之前所說,如果你按照更新的教程,你的腳本應該像我一樣工作。我希望這個幫助。對不起,我的英文,如果我錯了,請糾正我。