[PHP en .htaccess] Eenvoudig meertalige website maken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Storm90
  • Registratie: September 2008
  • Laatst online: 09-09 15:23
Hallo Allemaal,

Ik ben al een tijdje opzoek naar een manier om mbv .htaccess eenvoudig je website multilanguage te maken. Ik wil graag dat als mensen naar mijn site gaan (blablabla.com) ze automatisch doorverwezen worden naar blablabla.com/nl/ of blablabla.com/en/, net als je op www.samsung.com kunt zien. Op dit moment gebruik ik het volgende:

code:
1
2
3
4
5
6
7
8
9
10
#Nederlands
RewriteRule ^nl/home/?$ index.php?lang=nl&p=home [L,QSA]
RewriteRule ^nl/contact/?$ index.php?lang=nl&p=contact [L,QSA]
RewriteRule ^nl/artikelen/?$ index.php?lang=nl&p=artikelen [L,QSA]
RewriteRule ^nl/artikelen/(\d+)/(.*)$ nl/artikelen/?a=$1 [L,QSA]


#English
RewriteRule ^en/home/?$ index.php?lang=en&p=home [L,QSA]
RewriteRule ^en/contact/?$ index.php?lang=en&p=contact [L,QSA]


Aan de bovenstaande code zitten natuurlijk nadelen. Je wordt namelijk niet meteen doorverwezen naar /en/ of /nl/ als je op mijn site komt en ik moet nu in elke link aangeven over welke taal het gaat. Hoe dan ook, ik vind het een waardeloze oplossing.

Ik wil nu gebruik gaan maken van dit, dit wil al lukken, maar het doorverwijzen nog altijd niet. Ik wil niet dat gefrot met javascript enzo, want volgens mij moet het ook heel goed lukken met .htaccess (dit is naar mijn mening ook wel wat netter dan een hele lap javascript code erachter te zetten).

Ik heb op internet al heel wat afgezocht maar kom elke keer bij een oplossing van 3 PHP pagina's icm .htaccess of een .htaccess van hier tot tokyo. Ik ben op zoek naar een eenvoudige oplossing maar kan die helaas niet vinden.

Mijn vraag nu dan eindelijk, heeft iemand een passende oplossing, zijn er mensen die ook een multilanguage site hebben of ooit hebben gemaakt en hebben diegene een oplossing voor mij?

Acties:
  • 0 Henk 'm!

  • flashin
  • Registratie: Augustus 2002
  • Laatst online: 17-12-2023
En wat doe je voor mensen achter een proxy oid?

Kun je niet gewoon via een index.php bepalen waar iemand vandaan komt en dan doorsturen naar /nl/ ? Dan zet je in iedere aparte directory een kleine .htaccess

[ Voor 23% gewijzigd door flashin op 03-03-2010 13:36 ]


Acties:
  • 0 Henk 'm!

  • Memori
  • Registratie: Augustus 2008
  • Laatst online: 26-08 14:54
flashin schreef op woensdag 03 maart 2010 @ 13:34:
En wat doe je voor mensen achter een proxy oid?
Kan je verder weinig aan doen. Gewoon zorgen dat er handmatig naar een andere taal kan worden gegaan. Maar inderdaad, ik zou in de eerste instantie gewoon PHP laten bepalen waar iemand vandaan komt en zet dit in een sessie variable, bijvoorbeeld: $_SESSION["lang"] = "nl";
Heb je al gezocht naar een kant en klare PHP class die MaxMind gebruikt? En anders kijk je naar welke browser taal de bezoeker heeft? ( met $_SERVER["HTTP_ACCEPT_LANGUAGE"]; )

Probeer anders gewoon eens in de .htaccess de taalcode (nl,en), pagina (home/contact/artikelen) en al het andere als variable te plakken in de redirect URL? Ik weet niet zeker of dit het juiste regex code is, en ik heb nog nooit met RewriteRule gewerkt, maar als ik dit zo lees moet dit werken:

code:
1
RewriteRule ^((?!NL|EN)+)/([^/]+) index.php?lang=$1&p=$2 [L,QSA]

Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Nu online
Memori schreef op woensdag 03 maart 2010 @ 14:34:
[...]

En anders kijk je naar welke browser taal de bezoeker heeft? ( met $_SERVER["HTTP_ACCEPT_LANGUAGE"]; )
Dat zou ik sowieso doen. Het land waar iemand zit zegt niets over de voorkeurstaal. Welke taal geef je terug aan een Belg? De voorkeurstaal staat in de browser ingesteld en krijg je binnen bij elk request. En laat de bezoeker inderdaad ook de taal aanpassen. Die voorkeur kun je bewaren in een sessie.

Ik gebruik zelf Zend_Locale daarvoor, en er zijn genoeg andere oplossingen.

Ik kijk eerst wat iemands taalvoorkeur is in de sessie. Als die er niet is kijk ik naar de browserinstelling van de bezoeker. Als ik daar geen voorkeur uit kan halen dan val ik terug op de default instelling van de site.

Acties:
  • 0 Henk 'm!

  • Storm90
  • Registratie: September 2008
  • Laatst online: 09-09 15:23
Bedankt voor jullie reacties, ik ga even het een en ander proberen.
Ik heb deze oplossing al overwogen maar die wil maar niet lukken. Ik zit nu met een ander probleem (wat een veel hogere prioriteit heeft) waar ik niet uitkom. Hier heb ik nu een ander topic voor geopend.