如何使用不同语言编写codeIgniter网站

时间:2015-04-30 04:11:26

标签: codeigniter

感谢sof的支持。

我在codeIgniter中开发了我的网站。现在我的客户想出了一个将网站用不同语言的要求。

我已经检查过

http://backlink-generator.arxiki.com/free-translate-translator-translation.html

它提供了一个翻译按钮。但是我很困惑它是否是完美的程序。请帮我解释这个概念。

我甚至检查了这个

How to setup CodeIgniter for a truly multi language website?

Mywebsite已经完全开发。我只是为了让它适用于不同的语言。

2 个答案:

答案 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