Scripts

Taal selectie script

Klein scriptje aan te passen naar wens met externe taal bestanden. Eenvoudig om talen bij te voegen al moet ik daar ook nog enkele aanpassingen maken om dit eenvoudiger te laten gebeuren. Alle opmerkingen en aanpassingen zijn steeds meer dan welkom. download link: http://www.jb-web.org/downloads/scripts/php/languageselect.zip

taal-selectie-script
[code]<?php
// Taalvoorkeuren lezen uit de variabele 'lang' in de URL:
if (isset($_GET['lang'])) {
    $taalvoorkeuren = $_GET['lang'];
} else {
    $taalvoorkeuren = "";
}

// Bevat de URL-variabele 'lang' niet minstens 2 tekens voor een
// korte taalcode, gebruik dan de HTTP-header 'Accept-Language':
if ((strlen($taalvoorkeuren) < 2) and (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))) {
    $taalvoorkeuren = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
}

// $taalvoorkeuren omzetten in kleine letters:
$taalvoorkeuren = strtolower($taalvoorkeuren);

// Zijn de taalvoorkeuren hierna nog steeds onbekend,
// gebruik dan Engels ($taal = 0) als de standaardtaal:
if (strlen($taalvoorkeuren) < 2) {
    $taal = 0;
// Gebruik vervolgens een snelle en eenvoudige controle
// voor een korte taalcode van 2 letters:
} elseif (strlen($taalvoorkeuren) == 2) {
    if ($taalvoorkeuren == "fr" ) {
        $taal = 1; // Frans
    } elseif ($taalvoorkeuren == "nl") {
        $taal = 2; // Nederlands
	} elseif ($taalvoorkeuren == "de") {
        $taal = 3; // Duits
    } else {
        $taal = 0; // Engels is de standaardinstelling
    }
// Gebruik tot slot reguliere expressies om langere taalvoorkeuren
// te verwerken. Daarbij gaan we ervan uit dat de meeste informatie
// beschikbaar is in de standaardtaal Engels en er meer informatie 
// beschikbaar is in de wereldtaal Frans dan het Nederlands:
} else {
    if (ereg("en", $taalvoorkeuren)) {
        $taal = 0; // Engels
    } elseif (ereg("fr", $taalvoorkeuren)) {
        $taal = 1; // Frans
    } elseif (ereg("nl", $taalvoorkeuren)) {
        $taal = 2; // Nederlands
	} elseif (ereg("de", $taalvoorkeuren)) {
        $taal = 3; // Duits
    } else {
        $taal = 0; // Engels
    }
}

// Taalcode voor HTTP en HTML, en paginatitel instellen:
switch ($taal) {
    case 1: // Frans
        $taalcode = "fr";
        $titel    = "Les langues en Europe";
        break;
    case 2: // Nederlands
        $taalcode = "nl";
        $titel    = "Talen in Europa";
        break;
	case 3: // Duits
        $taalcode = "de";
        $titel    = "Sprachen in Europa";
        break;
    default: // Engels is de standaardinstelling
        $taalcode = "en";
        $titel    = "Languages in Europe";
}

// HTTP-headers instellen:
if (!headers_sent()) {
    header("Content-Language: " . $taalcode);
    header("Content-Type: text/html; charset=iso-8859-1");
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="<?php echo $taalcode; ?>">
<head>
<meta http-equiv="Content-Language" content="<?php echo $taalcode; ?>">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title><?php echo $titel; ?></title>
<link href="winxpvg.css" rel="stylesheet" type="text/css">
</style>
</head>
<body lang="<?php echo $taalcode; ?>">
<p>
  <a href="getlang.php?lang=en" hreflang="en" <?php
      if ($taal == 0) {
          echo "style=\"font-weight: bold;\" ";
      }
  ?>title="English">English</a> |
  <a href="getlang.php?lang=fr" hreflang="fr" <?php
      if ($taal == 1) {
          echo "style=\"font-weight: bold;\" ";
      }
  ?>title="Fran&ccedil;ais">Fran&ccedil;ais</a> |
  <a href="getlang.php?lang=nl" hreflang="nl" <?php
      if ($taal == 2) {
          echo "style=\"font-weight: bold;\" ";
      }
  ?>title="Nederlands">Nederlands</a> |
  <a href="getlang.php?lang=de" hreflang="de" <?php
      if ($taal == 3) {
          echo "style=\"font-weight: bold;\" ";
      }
  ?>title="German">German</a>
</p>
<?php
switch ($taal) {
  case 1: // Frans
    require_once("include/languages/fr.inc.php");
    break;
  case 2: // Nederlands
    require_once("include/languages/nl.inc.php");
    break;
  case 3: // Duits
    require_once("include/languages/de.inc.php");
    break;
  default: // Engels is de standaardinstelling
    require_once("include/languages/fr.inc.php");
}
?>
<b><u><?php echo($title); ?></u></b>
<p><?php echo($text); ?></p>
</body>
</html>[/code]

Reacties

0
Nog geen reacties.