2016-07-13 86 views
0


我有多種語言codeigiter應用程序工作正常,但我有問題
我有2個語言文件阿拉伯語和英語
當開關從AR來連接所有事物運行良好,但在我的導航,他是保持朗朗。當我點擊菜單項時,他將改爲朗朗。其他人留在阿朗。如果我點擊其他菜單項,他將改爲ar lang。並對en lang進行了新的更改。
的config.php笨自動更新

$config['language'] = 'ar'; 

autoload.php

$autoload['language'] = array('contactus', 'footer', 'gallery', 'header', 'member', 'news', 'papers', 'product', 'services', 'words'); 

控制器languagee.php

class Languagee extends Web_Controller { 
 
    public function __construct() { 
 
\t \t \t parent::__construct(); 
 
\t } 
 
    public function setARLang() 
 
    { 
 
    $session_data['lang'] = "ar"; 
 
    $this->session->set_userdata($session_data); 
 
    redirect(base_url()); 
 
    } 
 
    public function setENLang() 
 
    { 
 
    $session_data['lang'] = "en"; 
 
    $this->session->set_userdata($session_data); 
 
    redirect(base_url()); 
 
    } 
 
}

和MY_Lang.php

// default language: first element of $this->languages 
 
function default_lang() 
 
{ 
 
    $browser_lang = $this->session->userdata('lang'); 
 
    $browser_lang = substr($browser_lang, 0,2); 
 
    if(array_key_exists($browser_lang, $this->languages)) 
 
    return $browser_lang; 
 
    else{ 
 
    reset($this->languages); 
 
    return key($this->languages); 
 
    } 
 
}

並鑑於的header.php

\t \t \t <a href="<?php echo site_url()?>services/showServices"><i class="fa fa-cogs fa-fw fa-2x" aria-hidden="true"></i>&nbsp;<?php echo lang('services.pageTitle')?></a> 
 
\t \t \t </li> 
 
\t \t \t <li> 
 
\t \t \t \t <a href="<?php echo site_url()?>factory/gallery"><i class="fa fa-picture-o fa-fw fa-2x" aria-hidden="true"></i>&nbsp;<?php echo lang('gallery.pageTitle')?></a> 
 
\t \t \t </li> 
 
\t \t \t <li> 
 
\t \t \t \t <a href="<?php echo site_url()?>contactUs"><i class="fa fa-phone-square fa-fw fa-2x" aria-hidden="true"></i>&nbsp;<?php echo lang('contactus.pageTitle') ?></a> 
 
\t \t \t </li> 
 
\t \t </ul> 
 
\t \t <div class="lang-bar <?php echo ($this->session->userdata('lang')=='ar') ? 'pull-left' : 'pull-right'?>"> 
 
\t \t \t <!-- Multiple Radios --> 
 
\t \t \t <ul class="list-unstyled"> 
 
<li><a href="<?php echo site_url('Languagee/setARLang');?>" class="btn 
 
\t <?php echo ($this->session->userdata('lang')=='ar') ? 'btn-success' : 'btn-default'?> 
 
\t ">Ar</a></li> 
 
<li><a href="<?php echo site_url('Languagee/setENLang')?>" class="btn <?php echo ($this->session->userdata('lang')=='en') ? 'btn-success' : 'btn-default'?>">En</a></li> 
 
</ul> 
 
</div>

+0

在我看來,這個你接近,在應用程序語言不應成爲會議的基礎上,而是在錯誤的添加相應參數類型URL/en,/ ar等的原則。就您的示例而言,嘗試刪除舊的索引語言會話,以及所有顯示var_dump($ this-> session-> get_userdata( ))在這兩種語言形成方法之前 – rad11

+0

我嘗試但不工作仍然是同樣的問題,但是當我更改$ config ['language'] \t ='ar';在config.php中,他現在很好,如何根據存儲在sesssion中的語言進行更改 –

回答

0

是的,我解決它由位溶液
我使用如果爲每個項目NAV像

<?php echo ($this->session->userdata('lang')=='ar') ? "فريق العمل":"Team work" ;?> 

但我還是搜索一下更好的解決方案 感謝所有您的幫助