Мультиязычный кодигнитор на контроллере

Я использую многоязычный codeigniter, и он отлично работает. Проблема в том, что когда я пытаюсь сделать мультиязычность в URL … как я могу это сделать?

Я имею в виду, что контроллер должен быть файлом с именем и его функциями тоже … поэтому я не могу понять, как я могу это сделать.

Я подумал, что единственная альтернатива — создавать одинаковые контроллеры для каждого языка, который мне нужен … но это много повторяющихся кодов только для изменения названия контроллера и функций … и обслуживание будет большой проблемой.

Любая помощь?

0

Решение

Передайте языковой индикатор как значение «GET» для функций вашего контроллера:
например.

base_url/controller/inventory/en

Затем используйте это в вашем контроллере:

    /**
* @desc This will get called when no method specified
* Will show home page (list of items)
*/
function inventory($lang="en",$from=0){

// load proper language file
$this->lang->load('language_filename', $lang);

// generate db where clause
$where = array(
"published"=>"1",
"language"=>$lang
);

// paging
$this->_setPagingLinks($this->newsModel->getTotalRecordsNumber($where),10,4,"inventory/".$lang,$lang);

// loading items from db
$this->data["news"] = $this->newsModel->getRecords($where,$from,10,"time");

// load the view according to language
$this->data["content"] = $this->load->view("$lang/news",$this->data,TRUE);
$this->load->view("$lang/container",$this->data);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]