0

If cookie is set in browser get cookies and append to URL

if cookie language=english

redirect to https://example.com/en

or

if cookie language=deutch

redirect to

https://example.com/de

or

if possible for all Accept-Language

for each value of cookie

cookie language=/en/Accept-Language

redirect to their language page

View

  <h5>Translate this page:</h5>
        <div class="lang-holder">
                          <a href="#" class="topbar-menu-toggle" data-toggle="button">

                             <img src="<?php echo base_url();?>assets/img/lang/<?php if ($this->input->cookie('language') != '') 
                            {
                               echo $this->input->cookie('language');
                            } 
                            else 
                            {
                            $language = $this->settings_lib->item('site.default_language');

                              echo $language;
                            } ?>.png">
                          </a>
                        </div>

<div id="topbar-dropmenu" class="animated animated-short slideInDown">
      <div class="topbar-menu row">

            <?php if ($handle = opendir('application/language/')) 
              {

                while (false !== ($entry = readdir($handle))) 
                {
                  if ($entry != "." && $entry != "..") 
                  { ;?>

                    <div class="col-xs-2 col-sm-1">
                      <a href="<?php echo base_url() ?>home/language/<?php echo $entry; ?>">
                        <img class="h30" src="<?php echo base_url();?>assets/img/lang/<?php echo $entry; ?>.png">
                        <span class="fs14 hidden-xs"><?php echo ucfirst($entry); ?></span>
                      </a>
                    </div>
                    <?php
                  }
                }

                closedir($handle);
              } ?>



      </div>

Controller

    public function language($lang = false)
{
    $folder = 'application/language/';
    $languagefiles = scandir($folder);
    if (in_array($lang, $languagefiles)) {
        $cookie = array(
            'name' => 'language',
            'value' => $lang,
            'expire' => '31536000',
        );

        $this->input->set_cookie($cookie);
    }
    redirect($this->input->server('HTTP_REFERER'));
}
Cœur
  • 37,241
  • 25
  • 195
  • 267

1 Answers1

0

Use this concept:

RewriteEngine on

RewriteCond %{HTTP_COOKIE} ^lang=/en/en$ [NC]
RewriteRule .* https://example.com/en [R=301,L]

RewriteCond %{HTTP_COOKIE} ^lang=/en/ca$ [NC]
RewriteRule .* https://example.com/ca [R=301,L]

RewriteEngine on

RewriteCond %{HTTP_COOKIE} ^lang=/en/(.*)$ [NC]
RewriteRule .* https://example.com/%1 [R=301,L]
Ωmega
  • 42,614
  • 34
  • 134
  • 203