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.
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>
/*
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>
Dodano przez: mexis Ranga: 0 Punktów: 0
Komentarze użytkowników
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno