2014-12-04 81 views
0

我使用框架Codeigniter。 我已經寫了一個庫(類)翻譯與四種語言的數組單詞。Codeigniter中的多語言

class Translate 
{ 

public function __construct(){ 

     $this->CI =& get_instance(); 
     $this->CI->load->library("countrylang"); 
     $this->settings = $this->CI->countrylang->GetSettings(); 
     $this->words = array(

     'news feed' => array(20 => 'Leunta', 153 => 'Laita', 3 => 'News feed', 109 => 'Leuita')); 

} 
} 

在控制器我加載這個庫:

$this->data['lang'] = $this->load->library('translate'); 

後,我可以接觸到的話從view像爲:

<?=$lang['news feed']?> 

問題是,在助手文件有一個還必須在所選語言上翻譯的詞語:

function Calendar($type = 'articles'){ 
     $number = ($daysRepeat[$i] > 0) ? ' data-original-title = "'.count($daysRepeat[$i]).' записей"' : ''; 
} 

因此,在助手Codeigniter中,必須替換所選語言並返回視圖。

我該怎麼做?

+0

這一行:'$這個 - >數據['lang'] = $ this-> load-> library('translate');'沒有任何意義。加載器的庫方法只返回false或null – oliakaoil 2014-12-04 15:15:16

回答

0

如果您想訪問模式,從一個輔助文件庫等,只需創建全球CI對象的引用,就像您在其他地方:

function someHelperFunction() 
{ 
    $CI =& get_instance(); 
    $CI->load->library('somelibrary'); 
    $CI->somelibrary->doSomething(); 

    // .... 
} 
+0

這是一個好的解決方案嗎?你會如何改變它? – Alexandr 2014-12-04 15:38:20

+0

是的,這是一個很好的解決方案。真的沒有一個好的替代方法。 – oliakaoil 2014-12-04 15:52:46