感谢sof的支持。
我在codeIgniter中开发了我的网站。现在我的客户想出了一个将网站用不同语言的要求。
我已经检查过
http://backlink-generator.arxiki.com/free-translate-translator-translation.html
它提供了一个翻译按钮。但是我很困惑它是否是完美的程序。请帮我解释这个概念。
我甚至检查了这个
How to setup CodeIgniter for a truly multi language website?
Mywebsite已经完全开发。我只是为了让它适用于不同的语言。
答案 0 :(得分:0)
没有一键解决方案。 您需要使用如下语言库:http://jeromejaglale.com/doc/php/codeigniter_i18n
然后在语言文件中获取所有文本,这意味着在语言文件夹下,您将为您支持的每种语言提供一个文件夹,在那里您将拥有包含所有页面文本的变量的PHP文件。这些文件将复制到每个语言文件夹,然后翻译内容。
在您的控制器上,您将加载正确的语言文件,然后在视图中您将只调用字符串变量名称,并根据用户当前所使用的语言从语言文件中提取字符串。
您的应用程序的网址将如下http:www.domain.com/en/controller
希望这会有所帮助
答案 1 :(得分:0)
将现有网站更改为多语言网站:codeigniter
为此,您可以使用语言课程。请参阅步骤
第1步:
在content_lang.php
中为英语创建一个新文件application/language/english/
。在content_lang.php
中为荷兰语创建另一个dutch
文件目录application/language/dutch
(如果不存在,则创建一个目录)。
在这个文件中,我们可以编写不同的语言。像,
<强>应用/语言/英语/ 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
,
像,
<强>应用/视图/ 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步:
在视图上切换语言的代码。 (应用/视图/ 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