您可以向我展示如何编写多语言网站的方法,不仅可以更改菜单以及文章的标题和内容。
基本上,我认为每次写一篇文章,我都会单独将它写成2种语言,然后将其插入到mysql中。当我改变前端的语言时,一切都会变成另一种语言并保持该语言直到我改回来
所以,任何人都会向我展示一个最好的方法。请我急需
提前致谢
答案 0 :(得分:0)
H,
使用codeigniter语言课程http://ellislab.com/codeigniter/user_guide/libraries/language.html
这里有一些较旧的帖子。看看the best way to make codeigniter website multi-language. calling from lang arrays depends on lang session?
此致
iijb
答案 1 :(得分:0)
内容如:菜单,按钮,消息不必转到数据库。 使用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'));
}