Ich verstehe, dass Sie mehrsprachige Anwendung erstellen und die Sprache von URL identifizieren möchten, nicht wahr?
Wenn ja, empfehle ich Ihnen, einen Controller in Ihrer Anwendung/Kern erstellen
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);
}
}
Sie eine ausgewählte Sprache in der Kopfzeile o so etwas haben, wen Sie klicken in einer bestimmten Sprache machen, werden Sie rufen die uri Homepage/ändern/{$ language} Ihre normalen Controller
class HomePage extends MY_Controller{
public function change ($language = '', $uri = NULL){
$this->redirect($language);
redirect($uri, 'refresh');
}
}
Nur eine Vermutung. Vor der Umleitung: if (substr ($ _ SERVER ['HTTP_REFERER'], - 2)! = $ Lang_code) – Andreas
Hallo Andreas, danke für die Antwort. In meinem Fall zumindest hat es nicht funktioniert :( – Nan