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> <?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> <?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> <?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>
在我看來,這個你接近,在應用程序語言不應成爲會議的基礎上,而是在錯誤的添加相應參數類型URL/en,/ ar等的原則。就您的示例而言,嘗試刪除舊的索引語言會話,以及所有顯示var_dump($ this-> session-> get_userdata( ))在這兩種語言形成方法之前 – rad11
我嘗試但不工作仍然是同樣的問題,但是當我更改$ config ['language'] \t ='ar';在config.php中,他現在很好,如何根據存儲在sesssion中的語言進行更改 –