Website in meerdere talen met verschillende domeinen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Danny Kater

Danny Kater

12/11/2012 20:23:40
Quote Anchor link
Ik heb een website in het Nederlands met een domeinnaam die Nederlandse woorden bevat. Deze website wil ik vertalen naar het Duits en Engels. De andere talen zullen dus ook hun eigen domeinnaam moeten krijgen.

Mijn vraag:
Hoe kan ik dit het beste aanpakken? Hoe creëer ik een structuur, waarin ik niet op elk domein alle bestanden moet aanpassen als ik een wijziging in de website maak?
 
PHP hulp

PHP hulp

24/12/2024 13:19:39
 
John D

John D

12/11/2012 20:36:47
Quote Anchor link
misschien op deze manier: teksten in alle talen in een tabel met voor elke taal een veld en voor elke pagina een record. Je checkt via php op welk domein men binnenkomt en haalt de juiste taal op.
 
Danny Kater

Danny Kater

12/11/2012 20:40:58
Quote Anchor link
Klinkt als een goede manier om de verschillende vertalingen te handlen.

En hoe de bestanden? Ik geloof dat het niet goed is om verschillende domeinnamen naar één domeinnaam met webhosting door te sturen? Google pakt dan alleen het domein met webhosting op toch?
 
John D

John D

12/11/2012 22:05:37
Quote Anchor link
Danny Kater op 12/11/2012 20:40:58:
Google pakt dan alleen het domein met webhosting op toch?
Ik heb geen idee hoe webhosting met domeinnamen omgaat. Ik beheer eigen Linux servers en in mijn httpd.conf regel ik de DocumentRoots en die kunnen op die manier naar dezelfde DocumentRoot wijzen en ik ga er van uit dat Google dat normaal afhandelt.
Wat je vraag over de bestanden betreft, die kunnen dan in 1 DocumentRoot. Maar nogmaals, ik weet niet hoe webhosting daarmee omgaat.
Gewijzigd op 12/11/2012 22:06:32 door John D
 
Danny Kater

Danny Kater

12/11/2012 22:25:18
Quote Anchor link
Iemand anders ervaring met meerdere domeinnamen i.c.m. een database met de vertalingen?

En het effect op zoekresultaten?
 
Marco PHPJunky

Marco PHPJunky

13/11/2012 02:33:53
Quote Anchor link
Bekijk het eens op deze manier:

Een normaal persoon die een computer heeft, heeft zijn of haar computer in 9 van de 10 keer in zijn eigen taal ingesteld staan (een Nederlander heeft een Nederlandse versie van Windows en IE of Firefox of anders, zo ook iemand uit Frankrijk of Duitsland.) je kan aan de hand van de taal / land instelling van de browser iemand doorsturen naar de website in zijn of haar taal.

Dit zou je kunnen doen d.m.v een .htaccess bestand.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
RewriteEngine on

RewriteCond %{HTTP:Accept-Language} (en) [NC]
RewriteRule .* www.website.com [L]

RewriteCond %{HTTP:Accept-Language} (de) [NC]
RewriteRule .* www.website.de [L]


En dan ook nog voor de zekerheid mocht dit fout gaan de bezoeker de optie bieden om zelf zijn of haar taal te kunnen kiezen ( door bijvoorbeeld op het vlaggetje van zijn land te klikken)

Mocht je voor deze optie gaan dan kan Google in je zoek resultaten misschien wel de goede taal versie neer zetten voor de persoon alleen word er wel gekeken in welke taal zijn/haar browser staat ingesteld en word
dan daarheen gestuurd.

Google zelf heeft dit zelf opzig 'mooi' gedaan.
Als je bijvoorbeeld naar google.it of google.de gaat laat hij alleen de main afbeelding van die taal zijn en laat de knoppen gewoon in het Nederlands staan (waarschijnlijk ook omdat de browser gewoon ingesteld is op Nederlands)

Maar dan heb je wel verschillende domeinnamen nodig hiervoor.

Wat je ook zou kunnen doen is hetzelfde idee maar het dan binnen 1 domeinnaam houden.
Hierin zijn ook weer 2 opties;

Of je bouwt dezelfde website voor elke taal die je wilt aanbieden
(dan krijg je dus www.website.com/de/ of www.website.com/nl/ of www.website.com/it/)
Dit kan overigens ook met bijna dezelfde .htaccess bestand.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ /de/index[L,R=301]

RewriteCond %{HTTP:Accept-Language} ^es [NC]
RewriteRule ^$ /es/index [L,R=301]

RewriteCond %{HTTP:Accept-Language} ^eng [NC]
RewriteRule ^$ /en/index [L,R=301]


Of je houd alles binnen 1 website en kijkt d.m.v PHP uit welk land de bezoeker komt en aan de hand daarvan laat je de taal uit je database ( of .ini files) met een eventuele Fallback taal.
En ook met de optie om van taal te wisselen.

Naast dit verhaal kan je er ook voor kiezen om het bijvoorbeeld in een $_SESSION op te slaan.
Dat bijvoorbeeld de taal iso/id in een aparte sessie word gezet en aan de hand daarvan de taal word geladen.
Als men dan op een andere taal klikt of wenst (d.m.v. op een andere vlaggetje te klikken) zet je de nieuwe taal iso/id in de sessie en de nieuwe taal word geladen.
Dan hoef je ook niet op elke pagina te kijken welke taal er geladen hoeft te worden maar zodra iemand een andere taal wenst dan pas de andere taal laden en anders gewoon de taal van de website of de zelf ingestelde taal.

Maar voor alsnog zou ik kijken naar de http header Accept-Language van de browser want 9 van de 10 keer is deze hetzelfde als die van het OS (samen met de mensen zelf de optie van taal keuze geven). als je aan de hand daarvan de taal laad zit je bijna altijd goed want een IP != land en daarnaast een land kan meerdere talen hebben, kijk eens naar België.
Voor iemand uit België (op basis van ip) laat je dan Frans, Nederlands, Vlaams of Duits ?

Misschien zijn sommige voorbeelden niet op jou situatie van toepassing maar het geeft je wel weer wat om over na te denken.

Greets.
Gewijzigd op 13/11/2012 02:54:51 door Marco PHPJunky
 
Stefan WM

Stefan WM

13/11/2012 12:01:21
Quote Anchor link
Google heeft een hele tabel met welke ip-ranges uit welk land komen, misschien is het een idee om hier gebruik van te maken? Dus aan de hand van het ip de taal bepalen.
 
Kris Peeters

Kris Peeters

13/11/2012 12:17:37
Quote Anchor link
Stefan van den Broek op 13/11/2012 12:01:21:
Google heeft een hele tabel met welke ip-ranges...


Je moet eens googlen: "ip2country"

Je kan die volledige lijst downloaden als SQL-export. Het is trouwens een belachelijk lange lijst; waarschijnlijk is het beter om een ip2country service te vinden.
Gewijzigd op 13/11/2012 12:18:13 door Kris Peeters
 
Marco PHPJunky

Marco PHPJunky

13/11/2012 13:06:32
Quote Anchor link
@ Kris, Stefan, TS, All;

ip2country werk bij lange na niet altijd correct!

want als je enkel op ip adres gaat kijken uit welk land iemand komt en aan de hand daarvan het taal bestand inladen zal in 7/8 van de 10 gevallen goed werken alleen vergeet niet dat er ook mensen zijn die eventueel achter een proxy, firewall, vpn kunnen zitten.

Dus als ik dan hier in Nederland zit en via een proxy of vpn naar jou website ga kan ik een IP-adres uit bijvoorbeeld Amerika hebben (de normale gebruiker zal dit waarschijnlijke niet gebruiken maar het is iets om over na te denken.)

Maar voor alsnog zou ik kijken naar de http header Accept-Language van de browser want 9 van de 10 keer is deze hetzelfde als die van het OS (samen met de mensen zelf de optie van taal keuze geven). als je aan de hand daarvan de taal laad zit je bijna altijd goed want een IP !== land en daarnaast een land kan meerdere talen hebben, kijk eens naar België.
Voor iemand uit België (op basis van ip) laat je dan Frans, Nederlands, Vlaams of Duits ?

Je kan veel beter kijken (of in combinatie) naar de de taal instelling van de browser kijken dan heb je in elk geval de taal waarvoor de persoon zelf voor heeft gekozen en kan hij altijd een andere taal kiezen.
Gewijzigd op 13/11/2012 13:07:38 door Marco PHPJunky
 
Kris Peeters

Kris Peeters

13/11/2012 13:16:49
Quote Anchor link
Marco PHPJunky op 13/11/2012 13:06:32:
...daarnaast een land kan meerdere talen hebben, kijk eens naar België.
Voor iemand uit België (op basis van ip) laat je dan Frans, Nederlands, Vlaams of Duits ?
...


Geef met een ip2postcode en ik antwoord op die vraag :)
Trouwens ... je hebt eentalige gebieden, tweetalige gebieden (= Brussel), een aantal gebieden met faciliteiten.
Maak daar maar eens iets logisch voor.
Gewijzigd op 13/11/2012 13:17:32 door Kris Peeters
 
Marco PHPJunky

Marco PHPJunky

13/11/2012 13:29:04
Quote Anchor link
dan heb je 2/3 slagen nodig en eventueel alle postcodes in je database of een postcode service (buitenom dat je dan van de postcodes afhankelijk bent en de gratis versies zijn bij lange na niet up-to-date) en dan hou je de betaalde versies over en daar word je ook niet altijd vrolijk van en dat terwijl het ook in 1 keer kan en in 1 slag en gratis.

Het is maar net waar je zelf je voorkeur aan geeft.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.