Scripting

EN NL TR

Het vorige artikel

De index

Het volgende artikel

Hoe men de taal moet detecteren indien de site meertalig is

Wat is het doel?

Het hier gepresenteerde PHP-script zal de taalvoorkeur van de gebruiker detecteren.  Vanzodra u de taal kent, kan u, de scripter, de inhoud van de site doen verschillen.  De uiteindelijk actie hangt van u af, u kan de correcte taalpagina includen of u kan bijvoorbeeld d.m.v. een META-TAG de gebruiker redirecten naar de gepaste gelocaliseerde pagina.  Het script gaat er wel vanuit dat je een lijst opgeeft met de ondersteunde talen.

Het script zal ook de landcode detecteren indien deze aanwezig is.
 

Hoe te gebruiken...

U include het script in uw programma en het script zal automatisch de taal- en landcode van de gebruiker detecteren.

# Geef de ondersteunde talen aan... (de talen in de $knownlangs-array worden als geldig aanschouwd)
$knownlangs = array("nl", "en", "tr"); # indien je NULL opgeeft, dan zal het script de array zelf instellen met alle gekende talen
$deflang = "en";  # indien gewenst, kan je ook $deflang = "en-us"; of $default = "en-uk"; enz. schrijven

# Detecteer de taal
include("languagedetection.php");

# Na het uitvoeren van het script zijn de ondersteunde variablen aangemaakt
echo "$lclist ";     # $lclist : de lijst met de talen zoals deze door de browser werd doorgegeven
echo "$lctag ";     # $lctag : de gevonden taalcode tag (inclusief de landcode indien deze er is)
echo "$quality ";  # $quality : de prioriteit zoals deze werd doorgegeven door de browser
echo "$lang ";      # $lang : de taalcode
echo "$country "; # $country : de landcode (indien deze er is)
 

De code...

De PHP-code is vrij duidelijk gedocumenteerd (in het engels), dus als je PHP en engels kunt zou je er geen problemen moeten mee hebben om te begrijpen wat er gebeurt.  De basistruk is om de HTTP_ACCEPT_LANGUAGE-variable te parsen (welke de browser doorgeeft via de GET/POST-aanvraag).  We gaan eigenlijk op zoek naar de ondersteunde taal met de hoogste prioriteit (quality).

Sommige taalcodes bevatten ook een landcode (bijvoorbeeld en-us en en-uk (respectievelijk United States en United Kingdom).  Indien deze informatie bestaat, dan zal het script deze via een variable doorgeven.
 

Het script bekijk de broncode  
Een voorbeeldscript bekijk de broncode test het script op deze server
Een ander voorbeeldscript bekijk de broncode test het script op deze server

NOTA: de hierboven aangeboden scripts zijn gedocumenteerd in het engels
 

Indien het niet werkt...

... dan is er waarschijnlijk een reden voor.  Indien je het probleem niet kunt vinden, contacteer me dan op fibergeek @ codegurus.be.  BELANGRIJK : Het script vereist de preg_match-functie welke niet ondersteund wordt door oudere PHP-versies, lees uw PHP-handleiding er eens op na!

 

Versie-informatie

U kan meer gedetaileerde uitleg over de wijzigingen in de broncode van het script terugvinden.

2003-12-18 - Versie 1
2004-01-07 - Versie 2
 

Externe links

How To Make Your Web Site Respond To Browser Language Requests
2-letter Language Codes (ISO 639)

 

Het vorige artikel

De index

Het volgende artikel