CodeIgniter и библиотека i18n - PullRequest
0 голосов
/ 20 января 2012

Hello Forum, при работе с CI 2.0.3 и библиотекой интернационализации (i18n) я столкнулся с этой проблемой.Я читал подобные посты здесь, но они не решили мою проблему.Надеюсь, что кто-то здесь может указать мне правильное направление.

Routes.php:

$route['default_controller'] = "home";
$route['404_override'] = '';
$route['scaffolding_trigger'] = "";

// '/en', '/de', '/ru' URIs -> use default controller
$route['^(en|de|ru)$'] = $route['default_controller'];  

// URI like '/en/about' -> use controller 'about'
$route['^(en|de|ru)/(:any)'] = "$2";  

Это прекрасно работает, но у меня есть область под названием «блог», внутри блога CI_Controllerфункция, которая берет статью из базы данных:

public function article()
 {
  $this->db->where('id', $this->uri->segment(4));
  $data['query']= $this->db->get('blogentries');

  $this->load->view('article_view',$data); 
 }  

Замечательно, работает также.Результатом является URL, например / en / blog / article / 1.В языковых файлах мои переменные сохраняются следующим образом:

$lang['menu.blog'] = "Blog"; 

В виде блога загружается переменная $ lang:

<?=lang('menu.blog')?> 

Проблема возникает при открытии статьи,var из языкового файла вообще не загружается.http://localhost/ вместо «Блог».Я думаю, это связано с маршрутизацией.Так что если для URL-адреса, например / en / blog, у меня будет:

$route['^(en|de|ru)/(:any)'] = "$2"; 

Все остальные URL-адреса работают отлично и корректно загружают переменные из языкового файла.

Но как я могу обрабатывать URL-адреса?как / en / blog / article / 1?Думаю ли я в правильном направлении?Предложения приветствуются.

Спасибо.

1 Ответ

0 голосов
/ 10 мая 2012

Возможно, я не понимаю, о чем вы спрашиваете, но кажется, что вы могли бы сделать:

$route['^(en|de|ru)/blog/article/(:any)']

Это должно охватить другой язык, но все же направить вас к статье блога через идентификатор.

...