Я только что создал переключатель языка в codeigniter, где пользователь может выбрать один из четырех типов языков:
1. арабский
2. английский
3. французский
4. немецкий
Я создал message_lang.php во всех этих папках следующим образом:
$lang['welcome_message'] = 'أهلا بك';
$lang['welcome_message'] = 'Welcome';
$lang['welcome_message'] = 'Bienvenue';
$lang['welcome_message'] = 'Willkommen in CodexWorld';
Это файл вида, из которого я меняю язык:
<select onchange="javascript:window.location.href='<?php echo base_url(); ?>users/switchLang/'+this.value;">
<option value="english" <?php if($this->session->userdata('site_lang') == 'english') echo 'selected="selected"'; ?>>English</option>
<option value="french" <?php if($this->session->userdata('site_lang') == 'french') echo 'selected="selected"'; ?>>French</option>
<option value="german" <?php if($this->session->userdata('site_lang') == 'german') echo 'selected="selected"'; ?>>German</option>
<option value="arabic" <?php if($this->session->userdata('site_lang') == 'arabic') echo 'selected="selected"'; ?>>Arabic</option>
</select>
<p><?php echo $this->lang->line('welcome_message'); ?></p>
Этоhook:
class LanguageLoader
{
function initialize() {
$ci =& get_instance();
$ci->load->helper('language');
$siteLang = $ci->session->userdata('site_lang');
if ($siteLang) {
$ci->lang->load('message',$siteLang);
} else {
$ci->lang->load('message','english');
}
}
}
Это функция переключения языка:
public function switchLang($language = "") {
$language = ($language != "") ? $language : "english";
$this->session->set_userdata('site_lang', $language);
redirect($_SERVER['HTTP_REFERER']);
}
Язык меняется, но URL-адрес не меняется, например.это URL:
http://localhost/ci_login/users
Но я хочу что-то вроде этого:
http://localhost/ci_login/users/en/
Как этого достичь?