login  Naam:   Wachtwoord: 
Registreer je!
 Tutorials

Tutorials > PHP


Gegevens:
Geschreven door:
Nrzonline
Moeilijkheidsgraad:
Gemakkelijk
Hits:
11744
Punten:
Aantal punten:
 (4)
Aantal stemmen:
3
Stem:
Niet ingelogd
Nota's:
 Lees de nota's (20)
 


Tutorial:

Meerdere Talen Systeem

1. Inleiding
2. Mappen en Bestanden
3. Talen Bestanden
4. Gebruikers Voorkeur
5. Talen Keuze Menu
6. Talen Systeem Gebruiken
7. Nawoord

1. Inleiding


In deze tutorial gaan we er voor zorgen dat de website in meerdere talen kan worden bekeken. Wij gaan er voor zorgen dat de website in het Nederlands en in het Engels kan worden bekenen. De bezoeker kan zelf kiezen aan welke taal hij de voorkeur geeft. Elke taal krijgt zijn eigen bestand. Hierdoor blijft het overzichtelijk, en is het gemakkelijk aan te passen. Mocht je de website in nog meer talen willen maken, dan kan je die altijd zelf toevoegen!

We zullen eerst de benodigde mappen en bestanden aanmaken. Daarna een aantel zinnen in de talen-bestanden plaatsen. Elk bestand heeft zijn eigen vertaling. We zullen ook een script maken die de gebruiker zijn voorkeur bijhoud, qua taalvoorkeur. Dit met behulp van cookies. Daarvoor zullen we een menu moet maken met alle beschikbare talen waar de gebruiker uit kan kiezen. Als laatst natuurlijk de website met het tekst dat in meerdere talen kan worden weergegeven.

Veel Plezier en succes met deze tutorial. Mocht je iets niet snappen, laat mij het dan weten via een nota!

top


2. Mappen en Bestanden

Laten we beginnen met het aanmaken van de map met de bijbehorende talen. Maak in je rootfolder de map "talen" aan. In deze map maak je ook het bestand "nederlands.lang.php" en "engels.lang.php" aan. In de rootfolder zelf maak je ook het bestand "index.php" aan. De boom van de website ziet er nu als volgt uit:

Root
   + > talen
   |        | > nederlands.lang.php
   |        | > engels.lang.php
   |
   | > index.php

top
3. Talen Bestanden (Nederlands en Engels)

We gaan nu het bestand nederlands.lang.php een beetje voorbereiden. We beginnen elke variabel in dit bestand met $_LANG voor de duidelijkheid. Dit voorkomt verwarringen tijdens het scripten. De namen van de variabelen moet in beide bestanden in één taal worden geschreven. Dus enkel in het nederlands of het engels. Dit is aan jouw de keuze. Ik kies nu voor Nederlandse variabelnamen.
<?PHP
$_LANG
['TITEL']['SITE'] = "Sitemasters"// Website naam
$_LANG['TITEL']['UITLEG'] = "Alles voor de webmaster"// Website 'slogan'

$_LANG['WELKOM'] = "Welkom bij sitemasters!";
$_LANG['PLEZIER'] = "Wij wensesn u veel plezier toe";
?>

Dit gaan we ook doen met engels.lang.php, maar dan het tekst in het engels. De variabelen blijven in het Nederlands! Anders kan je ze straks niet meer aanroepen, zodra je van taal veranderd. Dat zal betekenen dat je geen tekst meer krijgt te zien.
<?PHP
$_LANG
['TITEL']['SITE'] = "Sitemasters"// Website naam
$_LANG['TITEL']['UITLEG'] = "Everything for the webmaster "// Website 'slogan'

$_LANG['WELKOM'] = "Welcome at sitemasters!";
$_LANG['PLEZIER'] = "We hope you enjoy your stay";
?>

top
4. Gebruikers Voorkeur

We beginnen met het maken van een array met de beschikbare talen. In dit geval dus Nederlands en Engels. De benaming van de talen in de array moet gelijk zijn aan de naam van het bestand wat er voor ".lang.php" staat. Is dit niet het geval, zal er een verkeerd en niet bestaan bestand worden geinclude. Aangezien wij nederlands.lang.php en engels.lang.php hebben, moet er "nederlands" en "engels" in de array komen te staan.
<?PHP
# We gaan straks cookies gebruiken, dus ob_start() is vereist!
ob_start ();
# De talen array
$aTalen = array ("nederlands""engels");
?> 
Nu gaan we een stukje script maken, die er voor zorgt dat de gebruiker zijn gekozen taal ook wordt gebruikt en onthouden. Mocht er nog nooit een taal zijn gekozen, dan gebruikt de site standaard de nederlandse taal. Om de gebruiker zijn voorkeur te onthouden gebruiken we een cookie, genaamd $_COOKIE['taal'].

<?PHP
// De gebruiker heeft zijn voorkeur veranderd door een taal te kiezen uit
// het menu, en op de knop te drukken
if (isset ($_POST['kiezen']))
{
    
# Cookie met de gekozen taal met de duur van 1 jaar aanmaken
    
setcookie ("taal"$_POST['taalkeuze'], time()+60*60*24*7*52);
    # De pagina moet gerefreshed worden voordat de cookie goed werkt bij een $_POST
    header (
"Location: index.php");
}

// Heeft de gebruiker nog geen voorkeur-cookie? Maak dan een cookie aan
// met de nederlandse taal
if (!isset ($_COOKIE['taal']))
{
    
# Cookie met de nederlandse taal met de duur van 1 jaar aanmaken
    
setcookie ("taal""nederlands"time()+60*60*24*7*52);
}
// Als de cookie wel is gezet, maar niet geldig is, maak dan een nieuwe
//
 cookie aan met de nederlandse taal
elseif (!in_array ($_COOKIE['taal'], $aTalen))
{
    
# Cookie met de nederlandse taal met de duur van 1 jaar aanmaken
    
setcookie ("taal""nederlands"time()+60*60*24*7*52);
}
// De cookie is nu hoe dan ook geldig, en kan gebruikt worden
else
{
    
# Include de gekozen (indien nodig: -aangewezen) taal
    
include ("talen/" $_COOKIE['taal'] . ".lang.php");
}
?>


top
5. Talen Keuze Menu

Nu gaan we de talenkeuze menu maken. Elke beschikbare taal krijgt zijn eigen plekje in het menu. Het menu wordt samengesteld met behulp van de array en een for-loop. Dit stukje code komt straks direct na de <body> tag in het index.php bestand! Bij paragraaf 6 staat dit stukje code al op de goede plek.
<!-- Een HTML formulier met een PHP for-loop erin verwerkt -->
<!-- Hier kunnen we uit de beschikbare talen kiezen -->

<form action="" method="post">
    <select name="taalkeuze">
        <?PHP
        
# De for-loop maakt per taal een nieuwe <option></option> aan
        
for ($i=0$i count ($aTalen); $i++)
        {
        
?>
            <option value="<?=$aTalen[$i];?>"><?=$aTalen[$i];?></option>
        <?PHP
        
}
        
?>
    </select>
    <input name="kiezen" type="submit" value="Kies Taal" />
</form>

top
6. Talen Systeem Gebruiken (index.php)

Nu gaan we een pagina maken (index.php) die de verschillende talen moet ondersteunen, zonder deze pagina zelf aan te hoeven passen. Hier gebruiken we de $_LANG variabelen van het bestand wat is geinclude bij pagagraaf 5. Als nederlands.lang.php is geinclude, pakt hij met behulp van variabelen de nederlandse vertalingen. En met engels.lang.php is het precies zo, maar dan met de engelse vertalingen.

<html>
    <head>
        <title><?=$_LANG['TITEL']['SITE'] . " - " $_LANG['TITEL']['UITLEG'];?></title>
    </head>
    <body>

        <form action="" method="post">
            <select name="taalkeuze">
                <?PHP
       
         for ($i=0$i count ($aTalen); $i++)
       
         {
       
         ?>
                    <option value="<?=$aTalen[$i];?>"><?=$aTalen[$i];?></option>
                <?PHP
       
         }
       
         ?>
            </select>
            <input name="kiezen" type="submit" value="Kies Taal" />
        </form>
        <?PHP
        
echo $_LANG['WELKOM'] . "<br />";
        echo 
$_LANG['PLEZIER'] . "<br />";
        
?>
    </body>
</html>

Als de taal op nederlands ingesteld zou staan, zou de titel van de website zijn:
Sitemasters - Alles voor de webmaster
En op de pagina zelf zou komen te staan:
Welkom bij sitemasters
Wij wensen u veel plezier toe

Als de taalkeuze op engels zou staan, zou het tekst op de website natuurlijk in het engels verschijnen!

top
7. Nawoord

Ik hoop dat deze tutorial je een eind opweg heeft geholpen met het maken van je website in meerdere talen. Mocht je vragen en/of opmerkingen hebben, kun je die altijd plaatsen bij de nota's. Mocht iets nog niet helemaal duidelijk zijn, laat mij dit dan even weten. Ik zal dan zo spoedig mogelijk het probleem verhelpen zodat vrijwel iedereen met een beetje basiskennis van PHP deze tutorial kan gebruiken.
Mocht je een taal willen toevoegen, zorg er dan voor dat de $aTalen array de taalnaam erbij krijgt, en dat je taalnaam.lang.php aanmaakt in de map met de taalbestanden.
top





« Vorige tutorial : Nieuwsbriefsysteem Volgende tutorial : TemplatePower: Meerdere Templates Ondersteunen »

© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.011s