Я понимаю, что вы хотите сделать многоязычное приложение и идентифицировать язык по URL-адресу, не так ли?
Если да, то я рекомендую вам создать контроллер в вашем приложении/ядра
class MY_Controller extends CI_Controller{
public function redirect($language = NULL){
$this->_set_language($language);
$uri = array(
'direcotry' => $this->_get_directory(),
'class' => $this->_get_class(),
'method' => $this->_get_method(),
'language' => $this->get_language()
);
return $uri;
}
public function get_language(){
$this->language = (empty($this->session->userdata('language'))) ? substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) : $this->session->userdata('language');
return $this->language;
}
private function _set_language($language){
$this->session->set_userdata('language', $language);
$this->_set_lang_language();
}
private function _set_lang_language($language = ''){
switch($language){
case 'en':
$new = 'english';
break;
case 'es':
$new = 'spanish';
break;
default:
$new = 'english';
break;
}
$this->lang->load('calendar', $new);
$this->lang->load('date', $new);
$this->lang->load('db', $new);
$this->lang->load('email', $new);
$this->lang->load('form_validation', $new);
$this->lang->load('ftp', $new);
$this->lang->load('imglib', $new);
$this->lang->load('number', $new);
$this->lang->load('profiler', $new);
$this->lang->load('unit_test', $new);
$this->lang->load('upload', $new);
}
}
Вы будете иметь выбранный язык в своем заголовке о чем-то подобном, вэнь вы делаете щелчок на определенном языке, вы будете называют УИР домашнюю страницу/изменение/{$} язык ваш обычный контроллер
class HomePage extends MY_Controller{
public function change ($language = '', $uri = NULL){
$this->redirect($language);
redirect($uri, 'refresh');
}
}
Просто догадаться. Перед перенаправлением: if (substr ($ _ SERVER ['HTTP_REFERER'], - 2)! = $ Lang_code) – Andreas
Привет, Андреас, спасибо за ответ. В моем случае, по крайней мере, это не сработало :( – Nan