Loading:

Promocja Helion.pl

Zmiana Języka Strony + Cookie

Witam, przedstawię dziś prosty i funkcjonalny skrypt zmiany języka strony w php.

 

Kod skryptu zalecam dodać w górze strony zapisanej w .php oraz umieszczeniu linków zmiany języka w widocznym miejscu strony.

 

Nowe zmienne (czyli słowa, zdania itp.) dodajemy jak za pomocą przykładu i wyświetlamy w danym miejscu za pomocą: <?php echo lang('nazwa/zmienna'); ?>

 

To teraz czas na kod - można oczywiście zmienić czas trzymania cookie, który jest na początku kodu.



Napisz Artykuł

Listing

<?php
/*
Autor Skryptu:          Mexis
Przykłady i Pomoc:     Adi13089
*/


//-------------I: Zapisywanie i Sprawdzanie------------------

///////////////////////////////////////
// godzina - time()+3600
// dzień - time()+86400
// miesiąc - time()+30*86400
// około dwóch lat - time()+24*2592000
///////////////////////////////////////
if ($_GET['lang']){ //jeśli wybrano zmianę języka, aktualizuje ciastko.
        setcookie('lang', $_GET['lang'], time()+24*2592000);
        };
if (!isset($_COOKIE['lang']) && !isset($_GET['lang'])){ setcookie('lang', substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2), time()+24*2592000);}

function lang($zm){
      if (isset($_COOKIE['lang']) && !isset($_GET['lang'])) { //sprawdzamy czy osoba posiada cookie LANG i czy nie wysłano polecenia zmiany języka. Jeśli się zgadza to ustawiamy zmienną na zawartość cookie.
                $j = $_COOKIE['lang'];
        }
        elseif($_GET['lang']){ //jeśli wykonano polecenie zmiany, robimy ją bez potrzeby odświeżania
                $j = $_GET['lang'];
        } else {  //jeżeli dokonano wcześniej zmiany
             $j = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
};
//------------II: Dostępne Języki------------------
        switch ($j) {
        case 'pl': $j = 0; break;
        case 'en': $j = 1; break;
        case 'de': $j = 2; break;
//dodawanie kolejnych języków: case '#skrot#': $j = #numer#; break;

        default: $j = 0; break;
        };
//------------III: Zmienne (słowa, zdania itp.) dla Języków------------------
$jezyk  = Array(
'nazwa' => array('pl', 'en', 'de'),

// przykład
'zmien_jezyk' => array('Zmiana Języka', 'Change Language', 'Sprache ändern'),

//'nazwa' => array('pl', 'en', 'de'),//
      );
     return $jezyk[$zm][$j];

};
?>

<div>
<?php /* wyswietlamy zmienną dla danego języka */ echo lang('zmien_jezyk') ?><a href="&lang=en" >English</a> | <a href="&lang=pl">Polski</a> | <a href="&lang=de">Deutsch</a>
</div>

<div style="width: 300px; border-top:1px solid red; margin-top: 20px;">Kontrolka:
<?php
echo '<br />';
echo 'Aktualny Język:<b> '.substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2).'</b>';
echo '<br />';
if (isset($_COOKIE['lang'])) {echo 'Od: '.$_COOKIE['lang'].'<br />';};
?>
</div>


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=3&t=12183

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: mexis Ranga: Poziom 3 Punktów: 50
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors