0

Hello論壇,與CI 2.0.3和國際化(i18n)庫一起工作時,我遇到了這個問題。我在這裏看過類似的帖子,但是他們沒有解決我的問題。希望這裏的某個人能指引我走向正確的方向。CodeIgniter和i18n庫

的routes.php文件:

$route['default_controller'] = "home"; 
$route['404_override'] = ''; 
$route['scaffolding_trigger'] = ""; 

// '/en', '/de', '/ru' URIs -> use default controller 
$route['^(en|de|ru)$'] = $route['default_controller']; 

// URI like '/en/about' -> use controller 'about' 
$route['^(en|de|ru)/(:any)'] = "$2"; 

這工作完全,但我已經被稱爲「博客」的區域,博客是CI_Controller裏面,抓住從數據庫中的文章的功能:

public function article() 
{ 
    $this->db->where('id', $this->uri->segment(4)); 
    $data['query']= $this->db->get('blogentries'); 

    $this->load->view('article_view',$data); 
} 

美妙,作品也。結果是一個像/ zh/blog/article/1這樣的URL。 在語言文件,我有我的變量保存的是這樣的:

$lang['menu.blog'] = "Blog"; 

在博客查看$ LANG變量加載:

<?=lang('menu.blog')?> 

的問題,同時打開一篇文章從occures,該變種語言文件根本沒有加載。 http://localhost/而不是「博客」。我想它與路由有關。因此,如果對於像/ EN /博客的網址,我將有:

$route['^(en|de|ru)/(:any)'] = "$2"; 

其他所有網址完美地工作,並正確加載的語言文件中的變量。

但是我該如何處理URL/zh/blog/article/1?我在朝着正確的方向思考? 建議表示讚賞。

謝謝。

回答

0

我可能不會理解你問什麼,但它好像你可以這樣做:

$route['^(en|de|ru)/blog/article/(:any)'] 

這應該掌握不同的語言,但仍路線您通過ID的博客文章。