Wat het gemakkelijkst te doen is, is voor elke taal een andere tabel aanmaken, waarom -> Stel dat je ooit Frans als taal toe wilt voegen, dat is niet gemakkelijk bij de huidige opzet.
Stel je hebt een pagina nieuws.php, die uit de tabel nieuws wat op zou halen, de gebruiker heeft als taal Engels (en) ingesteld, de taalsessie variabele heb je opgeslagen in $taal. (bevat dus en)
<?
$table=$taal.'nieuws';
$query = "SELECT * from $table";
?>
Qua onderhoud is het gemakkelijker, je houd nog veel meer overzicht, omdat niet alle talen bij elkaar in die 1e tabel staan.
(wanneer je wilt gaan bewerken, kan je ook voor elke taal een tekstvak maken, als je de talen in een array hebt staan:
<?php
$talen=array("nl","en","de");
$editpage=$_GET['edit'];//bevat de naam van de te bewerken tabel
foreach($talen as $tekstlang){
$createlang=$tekstlang.$editpage;
echo '<textarea name="'.$createlang.'"></textarea>';
}
?>
(wanneer je wilt gaan bewerken, kan je ook voor elke taal een tekstvak maken, als je de talen in een array hebt staan:
<?php
$talen=array("nl","en","de");
$editpage='$_GET['edit'];//bevat de naam van de te bewerken tabel
foreach($talen as $tekstlang){
$createlang=$tekstlang.$editpage;
echo '<textarea name="'.$createlang.'"></textarea>';
}
?>
Snap je het?
En: Ik moet er dan dus wel op een een of andere manier voor zorgen dat altijd de juiste tekst wordt opgehaald wanneer een menuitem gekozen wordt. Ik MOET er dus voor zorgen dat de id's van de content van elke taal hetzelfde is, of moet ik dit nog netjes aan elkaar koppelen met een aparte tabel?
het scriptje wat je niet snapt, maakt op je edit pagina, waar je in je url de naam hebt van de te bewerken tabel, bijvoorbeeld [taalnaam]."nieuws". (alleen nieuws staat dan in de url, omdat die alle talen moet kunnen bewerken he ;)
Dan maakt die voor elke taal een aparte textarea aan, waarin je dan nieuws kan toevoegen in een taal. ;)
(hoop dat dat wat duidelijker is)
VRAAG 2:
Neej, niks geen gekoppel, je tabelopzet is voor de talen overal hetzelfde (in nieuws verwacht ik bijv wel een datumveld)
Elke tabel, is dan hetzelfde als het origineel, alleen bevat het een andere taal..
om op je site bij te houden welke taal hij steeds moet gebruiken kan je gebruik maken van $_SESSION['lang'] waarin je de taal zet.
en als je van taal wil switchen vervang je dan simpelweg de waarde in die session
Hmmm, oke. Ik kan dan dus ook per taal een UPDATE query uitvoeren en kijken wie wanneer het laatst geupdate heeft.
Dat heeft voordelen inderdaad. Wel is het dan noodzaak dat elke content hetzelfde id heeft maar dat tegen te gaan/op te lossen.
Bedankt Robert! Ik ga even wat opzetten!
Wat is dat toch met de ID? Als je ervoor zorgt dat je bij een aantal dingen een datum hebt staan.. en als je voor de links wil, zorg dan dat je overal een naam hebt voor die link (bijvoorbeeld home, of pics) die in elke tabel weer hetzelfde is, dat scheelt onderhoud.. VEEL onderhoud..