Ik wil mijn website (php/mysql) meertalig maken: engels en nederlands. Voor de woorden en korte zinnen op de website heb ik losse bestanden gemaakt met een paar arrays (dit wordt door veel forums ook gedaan) en voor de inhoud heb ik extra tabellen gemaakt in de database (en_content + nl_content etc) waar ik de data uit kan halen. Probleem waar ik nu een beetje mee zit is hoe ik de taalselectie het beste kan implementeren. Ik wil eigenlijk een automatische taalselectie, maar een gebruiker moet natuurlijk wel kunnen switchen als hij/zij dat wil.
het eerste probleem: in welke taal moet de website weergegeven worden?
optie - kijk naar de taalinstelling van de browser - $_SERVER['HTTP_ACCEPT_LANGUAGE'] zal "nl" teruggeven bij nederlandstalige browsers, maar bij nederlandse mensen met een engelstalige browser geeft het geen nl terug (tenzij de gebruiker die instelling handmatig heeft veranderd) wat dus een probleem is.
optie - download een ip-to-country database, vergelijk het ip adres van de gebruiker met de gegevens in de database en haal de landcode uit de database. Nadeel hiervan is dat de webmaster (ikzelf in dit geval) die database goed moet bijhouden en dat zie ik niet echt zitten en daarnaast de hogere serverlast vergeleken met de vorige optie
tweede probleem: taal of voorkeur van de gebruiker opslaan/onthouden
optie - als cookie opslaan, als er nog geen cookie is bovenstaande taaldetectie uitvoeren. Geeft alleen problemen bij mensen die cookies uit hebben staan.
optie - eerst een cookietest doen, wanneer een cookie niet kan worden gemaakt een sessievariabele gebruiken. nadeel is dat bij elk bezoek, van iemand die cookies uit heeft staan, de taaldetectie moet worden uitgevoerd en de gebruiker moet switchen naar een andere taal (wellicht eigen schuld in dit geval, maargoed)
Zijn er meer manieren/oplossingen voor deze problemen, ben ik iets vergeten of zijn er gebruikers met ervaring op het gebied van meertalige websites? graag jullie input
p.s. ik weet dat apache zelf ook een taalselectie kan uitvoeren, maar ook daar wordt alleen gekeken naar de taalinstelling van de browser, dus dan kan ik net zo goed een klein stukje php coden.
het eerste probleem: in welke taal moet de website weergegeven worden?
optie - kijk naar de taalinstelling van de browser - $_SERVER['HTTP_ACCEPT_LANGUAGE'] zal "nl" teruggeven bij nederlandstalige browsers, maar bij nederlandse mensen met een engelstalige browser geeft het geen nl terug (tenzij de gebruiker die instelling handmatig heeft veranderd) wat dus een probleem is.
optie - download een ip-to-country database, vergelijk het ip adres van de gebruiker met de gegevens in de database en haal de landcode uit de database. Nadeel hiervan is dat de webmaster (ikzelf in dit geval) die database goed moet bijhouden en dat zie ik niet echt zitten en daarnaast de hogere serverlast vergeleken met de vorige optie
tweede probleem: taal of voorkeur van de gebruiker opslaan/onthouden
optie - als cookie opslaan, als er nog geen cookie is bovenstaande taaldetectie uitvoeren. Geeft alleen problemen bij mensen die cookies uit hebben staan.
optie - eerst een cookietest doen, wanneer een cookie niet kan worden gemaakt een sessievariabele gebruiken. nadeel is dat bij elk bezoek, van iemand die cookies uit heeft staan, de taaldetectie moet worden uitgevoerd en de gebruiker moet switchen naar een andere taal (wellicht eigen schuld in dit geval, maargoed)
Zijn er meer manieren/oplossingen voor deze problemen, ben ik iets vergeten of zijn er gebruikers met ervaring op het gebied van meertalige websites? graag jullie input
p.s. ik weet dat apache zelf ook een taalselectie kan uitvoeren, maar ook daar wordt alleen gekeken naar de taalinstelling van de browser, dus dan kan ik net zo goed een klein stukje php coden.