我有一個受歡迎的控制器,它允許用戶選擇一種語言(en或fr),然後指向它的相應控制器(en或fr),因此url看起來像這樣www.xxx。 COM/EN /功能/ FUNC。我希望可以有一個可以改變語言的鏈接,我希望它能夠切換語言,但是保持在同一頁面上。只需從適當的語言文件中獲取相應的語言行。更改語言動態codeigniter
這是最好的方法嗎?
我有一個受歡迎的控制器,它允許用戶選擇一種語言(en或fr),然後指向它的相應控制器(en或fr),因此url看起來像這樣www.xxx。 COM/EN /功能/ FUNC。我希望可以有一個可以改變語言的鏈接,我希望它能夠切換語言,但是保持在同一頁面上。只需從適當的語言文件中獲取相應的語言行。更改語言動態codeigniter
這是最好的方法嗎?
你應該使用路由對於這一點,在你的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
}
簡單的方法是添加到您更改語言鏈接,您需要重新加載頁面後,必須保存
所以看在你的代碼的所有導航變量,只需將它們添加到您的語言變量鏈接
如何你目前是否達到了I18N? 每當我在網站上處理多種語言時,我都會使用解析器類,因爲它允許非常輕鬆地添加多種語言。
通過使用它,通過確定url中請求的語言切換語言非常簡單。
如果通過「實時」您的意思是改變語言,而不實現頁面,那麼這是另一回事。
該網頁將不得不重新加載。基本上,一個鏈接,但我希望頁面是相同的,只是從右側語言的文件中提取的字詞 – JonYork 2012-02-27 19:56:00
這就是我所做的 '<!--- 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