Изменение языка страницы при нажатии на ссылку - PullRequest
0 голосов
/ 21 марта 2012

На моей веб-странице есть ссылка на три разных языка

Я хочу, чтобы, когда пользователь нажимает на ссылку на любом языке, текст на этой странице меняется на соответствующий язык.

Возможно ли, что я вызываю один из методов из моего контроллера, скажем, «changeLanguage», он меняет язык и затем перезагружает ту же страницу с текстом на другом языке

Любая идея, как я могу сделать это эффективно

Мои ссылки отображаются, и я использую codeigniter

Спасибо

Ответы [ 4 ]

1 голос
/ 21 марта 2012

Есть много способов сделать это, но это фактически сводится к тому, как настроен ваш сайт. Лучшей отправной точкой будет использование PHP для получения запроса $ _GET и отображения содержимого на основе запроса.

Ваши ссылки будут ссылаться на http://yoursite.com/index.php?lang=en... К которому вы можете конвертировать (используя htaccess или web.config) http://yoursite.com/en

Что-то вроде:

// Set the default language to english if the language request is not set
$language = isset($_GET['lang']) ? $_GET['lang'] : 'en';

// Show the content base on the language
switch($_GET['lang']){
    case 'en':
        $content = "This is English";
    break;  
    case 'pt':
        $content = "Isto é Português";
    break;  
}
1 голос
/ 22 марта 2012

VIEW

<a href=<?php echo site_url('home?language=indonesian');?>>Indonesian language</a>

CONTROLLER

class Home extends CI_Controller {

    public function index()
    {
        $language = $this->input->get('language');
        if($language){
            // Put your code
            $this->session->set_userdata('language', $language);
            redirect('home');
        }

        if($this->session->userdata('language'))
        {
            var_dump($this->session->userdata('language'));
        }
        echo 'Hello World!';
    }

}

Источник

1 голос
/ 21 марта 2012

Вы можете в случае события обновить свой веб-сайт с помощью Get [HTTP] www.mywebsite.com?lg=eng

0 голосов
/ 11 сентября 2013
 //first here are your switching links
 <?php $base_url =  site_url()."/"; ?>
 <li>
      <a href='<?php echo $base_url; ?>langswitch/switchLanguage/arabic?redirect_to=<?php echo urlencode(current_url())?>'>العربية</a>
      </li>
      <li>
      <a href='<?php echo $base_url; ?>langswitch/switchLanguage/english?redirect_to=<?php echo urlencode(current_url())?>'>English</a>
      </li>

  //----------------------then you need to write your controller like this
 class LangSwitch extends CI_Controller {

private $redirect_to = '';

public function __construct() {
    parent::__construct();
    $this->redirect_to = base_url();
    $redirect_to = isset($_GET["redirect_to"])?$_GET["redirect_to"]:"";
    if(!empty($redirect_to)){
        $this->redirect_to = urldecode($redirect_to);
    }
    $this->load->helper('url');
}

function switchLanguage($language = "") {
    $language = ($language != "") ? $language : "english";
    $this->session->set_userdata('site_lang', $language);
    redirect($this->redirect_to);
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...