многоязычный сайт по codeigniter с языком в ссылке - PullRequest
0 голосов
/ 31 августа 2018

Мне удалось сделать многоязычный веб-сайт на codeigniter, мне потребовалось некоторое время и много исследований, чтобы выяснить это, поэтому я также опубликую детали здесь на случай, если кто-то хочет сделать то же самое и Также вы можете помочь мне с моей проблемой .. Проблема в том, что я хочу, чтобы ссылки на мои сайты были такими:

http://www.example.com/
http://www.example.com/ru
http://www.example.com/it ...etc

Я использовал этот урок, чтобы сделать это: https://www.cloudways.com/blog/multi-language-codeigniter/

У меня есть переключатель языка в представлениях таким образом

<form method="POST" action="<?= base_url() ?>LanguageSwitcher/switchlang">
 <input type="hidden" name="uri" value="<?= uri_string(); ?>" />
   <select name="language" onchange="this.form.submit()">
     <option>Select language</option>  
     <option value="en">English</option>
     <option value="ru">Russian</option>
     <option value="it">Italian</option>
   </select>
</form>

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

и вот мой файл маршрутов

$route['news/(:any)'] = 'news/index/$1';
$route['news'] = 'news';
$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';

и вот мой конфигурационный файл, я пытался сделать это

    if (isset($_SESSION['site_lang'])) {
  if ($_SESSION['site_lang'] == "en") {
      $base_url = 'http://localhost/codeigniter/';
  }else{
      $base_url = 'http://localhost/codeigniter/'.$_SESSION['site_lang'].'/';
  }
}else{
  $base_url = 'http://localhost/codeigniter/';
}
   $config['base_url'] = $base_url;

но это не сработало, и даже если бы это сработало, URI даже не распознает, что находится в ссылке "/ ru" главный вопрос в том, есть ли способ сделать то, что я пытаюсь сделать в codeigniter, без использования моделей или создания различных методов lang для каждого lang в контроллерах?

есть ли способ, которым я мог бы просто выглядеть так: "example.com/ru" для каждого языка, так что это было бы хорошо для поисковых систем?

...