2013-04-04 144 views
0

我一直在研究幾個小時,但我找不到一個清晰,高效的方式來解決我的問題。如何使codeigniter網站多語言阿拉伯語和法語

我有2個模板(標題+內容+頁腳)阿拉伯語&法語。對於每種語言,不同的頁面和不同的功能在我的控制器中。我怎樣才能建立一個多語言網站?

要在我的鏈接?lang=fr?lang=ar通過不影響我的鏈接,類似於:localhost/site/controleur/method/id

PS:我使用的是MySQL數據庫。

回答

1

是的,你可以創建一個單獨lang文件夾(每種語言),具有具有類似鍵的文件,但值(文本)將根據語言類型。然後按標識符請求包含該特定語言文件(文件夾)。

+0

什麼文字位置?我們在右邊讀了阿拉伯語,在左邊讀了法語.. – 2013-04-04 23:00:33

+1

我認爲在這種情況下,您必須加載所有'lang'庫並定製'lang'文件,方法是向左側添加一個位置爲 的位置,然後其每個鍵將會從LEFT_KEY_NAME開始。 並使用'if'子句可以確定文本的位置。動態的意思是你可以切換'lang'位置 希望這對你有意義:) – MaNKuR 2013-04-05 07:21:57

+0

我會試試這個謝謝:) – 2013-04-05 16:33:50

0

爲什麼不根據語言爲您的控制器使用sub-folders

controllers/ar/my_controller.php 
controllers/fr/my_controller.php 

http://www.example.com/fr/home 
http://www.example.com/ar/home 
+0

多數民衆贊成說如何我繼續,但我的老闆想用Multilangue的codeigniter ... – 2013-04-05 16:35:43

0

爲什麼你需要不同的網頁爲您的網站?國際海事組織,你需要切換模板或根據語言加載不同的控制器

以防萬一,如果你剛開始你的項目,你可能會發現Bonfire更適合這個。它以更簡單的方式支持模板和國際化。

+0

謝謝你的回答,我需要不同的頁面,因爲我在閱讀時使用2種不同的語言,我們從右邊讀阿拉伯語,左,所以我們給了我2個不同的模板與不同的css – 2013-04-04 17:21:46

0

笨已經提供了多語言能力,它的國際化支持,

所有你需要的是一個控制器,語言文件和查看。

根據所選語言,您的控制器將加載相應的語言文件,視圖文件將顯示用語言文件編寫的模板。

你的語言文件將是這個樣子

$lang['language_key'] = "The actual message to be shown"; 

你的控制器中,siteLang的值可以被檢索無論是從URL,或者你可以把它存儲在瀏覽器cookie。

function home(){ 
    $this->lang->load('home', $this->siteLang); 
} 

您的視圖看起來像這樣,通過此值,language_key將顯示在該控制器上。

<?php echo $this->lang->line('language_key'); ?> 

一些關鍵點,就像郎文件的nomencalature等,你可以找到更多關於它,在下面的鏈接 http://ellislab.com/codeigniter/user-guide/libraries/language.html