2012-02-27 163 views
2

我有一個受歡迎的控制器,它允許用戶選擇一種語言(en或fr),然後指向它的相應控制器(en或fr),因此url看起來像這樣www.xxx。 COM/EN /功能/ FUNC。我希望可以有一個可以改變語言的鏈接,我希望它能夠切換語言,但是保持在同一頁面上。只需從適當的語言文件中獲取相應的語言行。更改語言動態codeigniter

這是最好的方法嗎?

回答

2

你應該使用路由對於這一點,在你的routes.php你應該補充一點:

$route['([a-z]{2})/(:any)'] = 'yourdefaulthomecontroller/$2/lang/$1'; // rearrange as you like 

然後在您的默認控制器,你可以找到rsegment並用它對付任何你所需要的。

print_r($this->uri->rsegment_array()); // This will print out the routes 

在實際:

if($this->uri->rsegment(3) == 'lang' && $this->uri->rsegment(4)) 
{ 
    // Do something 
} 
+0

這就是我所做的 '<!--- Language Chooser - > <?php if($ this-> uri-> segment(1)==='fr') {this-> lang-> load('fr','french'); } else { $ this-> lang-> load('en','english'); } > < - 語言選擇結束 - >' 然後,只需 '朗>線( '你好')?!?; ?> 其中'你好'是我想拉的語言文件中的行 – JonYork 2012-02-27 21:39:42

0

簡單的方法是添加到您更改語言鏈接,您需要重新加載頁面後,必須保存

所以看在你的代碼的所有導航變量,只需將它們添加到您的語言變量鏈接

0

如何你目前是否達到了I18N? 每當我在網站上處理多種語言時,我都會使用解析器類,因爲它允許非常輕鬆地添加多種語言。

通過使用它,通過確定url中請求的語言切換語言非常簡單。

如果通過「實時」您的意思是改變語言,而不實現頁面,那麼這是另一回事。

+0

該網頁將不得不重新加載。基本上,一個鏈接,但我希望頁面是相同的,只是從右側語言的文件中提取的字詞 – JonYork 2012-02-27 19:56:00