2014-12-04 82 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