嗨誰能告訴我如何編碼一個多語言網站的方法,不僅改變菜單以及文章的標題和內容。多語言codeigniter php,mysql的最佳途徑
基本上,我認爲每次我寫一篇文章時,我會分別將它寫入2種語言,然後將其插入到mysql中。當我在前端更改語言時,一切都將更改爲另一種語言,並保持該語言的狀態,直到我將其更改回
因此,任何人都可以向我展示最佳方法。請我需要提前
嗨誰能告訴我如何編碼一個多語言網站的方法,不僅改變菜單以及文章的標題和內容。多語言codeigniter php,mysql的最佳途徑
基本上,我認爲每次我寫一篇文章時,我會分別將它寫入2種語言,然後將其插入到mysql中。當我在前端更改語言時,一切都將更改爲另一種語言,並保持該語言的狀態,直到我將其更改回
因此,任何人都可以向我展示最佳方法。請我需要提前
內容,如:菜單,按鈕,郵件唐噸要到數據庫中。 使用CI和語言類來處理這些。
如果您有動態內容(如博客文章或新聞和文章),請將數據庫用於不同的語言。
控制器會是這樣的:
class Language extends CI_Controller{
function Language(){
parent::__construct();
}
function change($language = null){
$language = urldecode($language);
switch($language){
case "English":
$this->session->set_userdata('lang_id', 2);
$this->session->set_userdata('lang_name', 'english');
redirect($_SERVER['HTTP_REFERER'], 'refresh');
break;
case "Deutsch":
$this->session->set_userdata('lang_id', 3);
$this->session->set_userdata('lang_name', 'deutsch');
redirect($_SERVER['HTTP_REFERER'], 'refresh');
break;
default:
$this->session->set_userdata('lang_id', 3);
$this->session->set_userdata('lang_name', 'deutsch');
redirect($_SERVER['HTTP_REFERER'], 'refresh');
break;
}
}
}
,並訪問某個網頁/分類的索引:
//LOAD LANGUAGE SETTINGS
$lang = $this->session->userdata('lang_name');
if($lang != ''){
//load default language folder
$this->lang->load('home');
$this->lang->load('extra_menu');
$this->lang->load('base_menu');
$this->lang->load('breadcrumbs');
}else{
//load language file and folder
$this->lang->load('home', $this->session->userdata('lang_name'));
$this->lang->load('extra_menu', $this->session->userdata('lang_name'));
$this->lang->load('base_menu', $this->session->userdata('lang_name'));
$this->lang->load('breadcrumbs', $this->session->userdata('lang_name'));
}
我覺得你的做法是正確的。我有一些類似的網站。 – m4t1t0
我通常對每種語言都有單獨的視圖,並根據URL字符串確定要加載哪個視圖以及從數據庫中提取哪些數據。 – Jeemusu