【问题标题】:How to make codeIgniter website in different languages如何制作不同语言的codeIgniter网站
【发布时间】:2015-07-09 15:09:08
【问题描述】:

感谢sof的支持。

我在 codeIgniter 中开发了我的网站。现在我的客户提出了一个要求,将网站以不同的语言显示。

我已经确认了

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

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

我什至检查过这个

How to setup CodeIgniter for a truly multi language website?.

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

【问题讨论】:

    标签: codeigniter


    【解决方案1】:

    不会有一个一键式的解决方案。 您将需要使用这样的语言库:http://jeromejaglale.com/doc/php/codeigniter_i18n

    然后在语言文件中获取所有文本,这意味着在语言文件夹下,您将有一个文件夹用于您支持的每种语言,并且在那里您将拥有 PHP 文件,其中包含将保存所有页面文本的变量.此文件将复制到每个语言文件夹,然后翻译内容。

    在您的控制器上,您将加载正确的语言文件,然后在视图中您只需调用字符串变量名称,并根据用户当前使用的语言从语言文件中提取字符串。

    您的应用程序的 url 将是这样的http:www.domain.com/en/controller

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      将现有网站更改为多语言网站: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

      【讨论】:

        猜你喜欢
        • 2013-01-17
        • 1970-01-01
        • 2011-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 1970-01-01
        相关资源
        最近更新 更多