Chr*_*ung 0 php multilingual codeigniter
我目前正在使用codeigniter 2.1.2构建一个网站.现在我遇到了有效构建多语言网站的问题.
我已经阅读了语言课程教程和助手,我已经存储了两个语言文件夹"Chinese"和"English".
我打算做的是我想要一个名为"lang"的语言会话变量.我想要以下内容:
我是PHP和Codeigniter的新手,我现在能想到的就是以下内容.任何人都能发挥一些亮点,因为我如何有效地允许用户更改我的网站上的语言?
我不知道如何在用户的点击事件中更改会话变量.
// Load Language Files
if(!$this->session->userdata('lang')) {
$this->session->set_userdata('lang','english');
$lang = 'english';
} else {
$lang = 'chinese';
}
$this->lang->load('pages/header',$lang);
Run Code Online (Sandbox Code Playgroud)
我创建了一个语言控制器并设置了会话变量,然后将页面重定向回上一页.这是一个好方法吗?
<?php
Class language Extends CI_Controller {
function index() {
if(!$this->session->userdata('lang')) {
$this->session->set_userdata('lang','english');
} else {
$lang = $this->session->userdata('lang');
if ($lang =="chinese") {
$this->session->set_userdata('lang','english');
} elseif ($lang == "english") {
$this->session->set_userdata('lang','chinese');
} else {
$this->session->set_userdata('lang','english');
}
}
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
}
Run Code Online (Sandbox Code Playgroud)
做一个语言控制器.当用户点击语言链接http://www.yoursite.com/language/english用于英语时,将用户引导至相关方法 ,类似于中文.我使用cookie而不是会话变量.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Language extends CI_Controller{
function __construct(){
parent::__construct();
}
public function index(){
$this->english();
}
public function english(){
$this->lang->load('labels', 'english');
//$this->session->set_userdata("LANGUAGE","english");
$cookie = array(
'name' => 'LANGUAGE',
'value' => 'english',
'expire' => 604800
);
$this->input->set_cookie($cookie);
header("location: ".$_GET["ref"]);
}
public function chinese(){
$this->lang->load('labels', 'chinese');
//$this->session->set_userdata("LANGUAGE","chinese");
$cookie = array(
'name' => 'LANGUAGE',
'value' => 'chinese',
'expire' => 604800
);
$this->input->set_cookie($cookie);
header("location: ".$_GET["ref"]);
}
}
?>
Run Code Online (Sandbox Code Playgroud)