Ik ben op dit ogenblik bezig met een meer-talige website. Nu loop ik hierin vast met mijn .htaccess.
Als de bezoeker voor het eerst komt moet hij 'doorgestuurd' worden naar 'www.domein.nl/nl/' omdat de bezoeker nog geen keuze heeft gemaakt.
Mijn vraag nu is van hoe zorg ik ervoor dat Nederlands als standaard taal aangesproken wordt en indien er gekozen is voor Engels dat de URL automatisch 'www.domein.nl/en/' wordt? en dat deze ook meegezonden wordt naar de 'normale url' zoals ik hieronder doe?.
Je zult dan met PHP moeten bijhouden welke taal de gebruiker heeft geselecteerd. Dat kan met bijvoorbeeld sessies. Als er geen sessie bestaat met dan is 'nl' de default:
Als iemand de taal wil veranderen pas je de sessie aan. De links veranderen dan dus ook. Je kan dan gewoon de RewriteRule gebruiken die je zelf had gepost. Het voordeel van een sessie is dat onthouden kan worden wat mensen hadden gekozen voor taal. ALs mensen dus later terugkomen op jewebsite.nl dan zou je ze meteen de goede taal kunnen voorschotelen. Daarom zou ik ook niet alle bezoekers die op de hoofdpagina komen meteen laten doorsturen naar jewebsite.nl/nl.
Het voordeel van een sessie is dat onthouden kan worden wat mensen hadden gekozen voor taal. ALs mensen dus later terugkomen op jewebsite.nl dan zou je ze meteen de goede taal kunnen voorschotelen.
Kan, hoef niet. Cookies en het nieuwe HTML5 Local Storage kunnen die variabelen langer vasthouden.
.htaccess is niet primair bedoeld voor dit soort redirects.
Als je nu een taal hebt gekozen, bijvoorbeeld Nederlands, dan zou je achter elke url '/nl/' moeten krijgen ook als een bezoek op een later tijdsstip terug keert.
Dit zal toch door middel van .htaccess dan moeten? Want als ik in mijn tekst editor een link aanmaak naar '/wereken-in-groningen/' dan zal hij toch automatisch '/nl/' ervoor moeten zetten.
Of je geeft het NIET mee in de URL en je gaat de taalbestanden ophalen afhankelijk van de waarde van de sessie. En je kunt het dan uitbreiden met bijvoorbeeld .com en .de extensies.
<?php
# Snel en onveilig voorbeeldje:
include "includes/languages/" . $_SESSION['UserLanguage'] . ".php";
?>
Ja dat kan in php zelf ja, maar wat nu als je het via een editor (wysiwyg) doet? hoe zorg ik er dan voor dat door middel van de gekozen of standaard taal dat die automatisch erachteraan komt?
Bart, dan zul je misschien iets moeten proberen met str_replace.
Even een klein voorbeeldje, heb het niet getest en je moet het nog uitwerken omdat hij niet volledig is en nu alleen de URL pakt. Maar eigenlijk moet je de hele content van de editor onderzoeken: