Tweetaligheid verder geperfectioneerd

Ik wilde nog een kleinigheidje in mijn webiste, gebaseerd op ‘Website Baker’ met een ‘Andreas01′ template: De banner – het eerste plaatje bovenaan – bevat tekst. Het is prettig dat de browser het plaatje met tekst in de overeenkomstige taal van keuze vertoont.

Ik had eerder al wat gedaan voor automatische taalherkenning van de browser, het script bleek niet goed te werken met Firefox-browsers, dat is en passant opgelost.
Allereerst heb ik dus mijn banner in twee talen gemaakt, de bestanden ENIF_website_banner_en.png en ENIF_website_banner_nl.png. En natuurlijk geplaatst in de directory /images.

Dan is het nog nodig dat de template automatisch wordt aangepast om de banner met de juiste taal te laden. Daarvoor maak ik gebruik van een zelf gekozen variable, $_SETLANG. De variabele wordt bij het bestand intro.php bij het eerste website bezoek geïnitialiseerd met de waarde van de taal instelling van de browser.  Een bezoeker kan de taal later veranderen met een klik op het vlaggetje bovenaan de website.

Om de banner echter steeds goed te laden is het van belang dat ieder php-bestand in de talen directories steeds  de  variable $_SETLANG met de juiste taal initialiseren. Zie voor voorbeelden verderop van en/home.php en nl/home.php..

Aangepast: intro.php


$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$lang = substr($lang, 0, 2);
if ($_SETLANG == "") {
 switch($lang) {
   case "nl":
    $_SETLANG = "nl";
    header("Location: http://www.enif.nl/page/nl/home.php");
    break;
  default:
    $_SETLANG = "en";
    header("Location: http://www.enif.nl/page/en/home.php");
    break;
  }
}
?>

Aangepast: templates/andreas01/index.php

<img id="frontphoto" src="<?php echo TEMPLATE_DIR;
print "/images/ENIF_website_banner_".$_SETLANG.".png";
?>
" width="760" height="175" alt="logo" />

 

Aangepast: nl/home.php


$_SETLANG = "nl";

Aangepast: en/home.php


$_SETLANG = "en";