将现有网站更改为多语言网站:codeigniter
为此,您可以使用语言类。看步骤,
第 1 步:
在application/language/english/ 中为英语创建一个新文件content_lang.php。为application/language/dutch中的荷兰语创建另一个content_lang.php文件目录dutch(如果不存在则创建一个目录)。
在这个文件中,我们可以编写不同的语言。喜欢,
应用程序/语言/english/content_lang.php
<?php
$lang['key']='en';
$lang['home']="Home";
$lang['about']="About Us";
$lang['login']="Sign In";
?>
应用程序/语言/荷兰语/content_lang.php
<?php
$lang['key']='dh';
$lang['home']="huis";
$lang['about']="over ons";
$lang['login']="Aanmelden";
?>
第 2 步:
将语言值放在位置文本的视图中。 application/views,
喜欢,
application/views/index.php
<ul>
<li class="current_page_item"><a href="#"><?php echo $language['home'];?></a></li>
<li><a href="#"><?php echo $language['about']?></a></li>
<li><a href="#"><?php echo $language['login']?></a></li>
</ul>
第 3 步:
在您的控制器中,您可以加载语言文件,例如,
应用程序/控制器/users.php
function Index()
{ $languages = $this->session->userdata('languages');
$lg=$languages['language'];
if($lg=='en'){
$this->lang->load('content','english');
}
elseif($lg=='dh'){
$this->lang->load('content','dutch');
}
else{
$this->lang->load('content','english');
}
$data['language']=array(
'home'=>$this->lang->line('home'),
'about'=>$this->lang->line('about'),
'login'=>$this->lang->line('login')
);
$lg=$this->lang->line('key');
$data['val']=array(
'lang'=>$lg
);
$this->load->view('index',$data);
}
这里我们可以传递两种语言数据和它们的键值来切换语言来查看。 $data['language'] 和 $data['val']。
更改语言,(application/controllers/users.php)
function changeLanguage(){
if(isset($_POST)){
$this->session->unset_userdata('languages');
$lg=$this->input->post('sel_lang');
$lang=array(
'language'=>$lg
);
$this->session->set_userdata(array('languages'=>$lang));
redirect('users/Index');
}
}
第 4 步:
在视图上切换语言的代码。 (应用程序/views/index.php)
<form id="frm_lg" action="changeLanguage" method="post">
<?php echo $language['lang_select'];?>
<select id="sel_lang" name="sel_lang">
<option value='en' <?php if($lang=='en'){?> selected <?php } ?>>English</option>
<option value='dh' <?php if($lang=='dh'){?> selected <?php } ?>>Nederlands</option>
</select>
</form>
这样我们可以加载任意数量的语言。
下载示例代码Github