login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Language systeem

Offline Romic - 31/05/2009 21:20
Avatar van RomicNieuw lid Hallo,

Ik ben een nieuwe website aan het maken, en met het oog op de toekomst zou ik deze graag meertalig maken. Weet iemand wat de beste manier (=snelse, minst belastend voor server) is hiervoor.

Ik dacht al een php bestand met allemaal constants, maar zijn er nog andere manieren?

10 antwoorden

Gesponsorde links
Offline vinTage - 31/05/2009 21:49
Avatar van vinTage Nieuw lid Dit is een voorbeeldje met maar 2 opties (nederlands/engels) maar als je er meer wilt kun je $language gewoon opvragen met een if/else loopje.

  1. <?php
  2. $language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) == 'nl' ? 'nederlands' : 'engels';
  3.  
  4. $qry = mysql_query("select * from tabel where taal = '".mysql_real_escape_string($language)."'") or die(mysql_error());
  5. ?>
Offline Romic - 31/05/2009 22:01
Avatar van Romic Nieuw lid Hoe ik de taal enal te weten kom, weet ik al, maar het is mijn vraag wat het minst belastent is voor de server, een php bestand met allemaal constants, alles opvragen van de database,...
Offline Koen - 31/05/2009 22:18
Avatar van Koen PHP expert waarom "mysql_real_escape_string($language)" als $language enkel nederlands of engels kan zijn? 
Offline Joost - 31/05/2009 22:34
Avatar van Joost PHP expert
Romic schreef:
Hoe ik de taal enal te weten kom, weet ik al, maar het is mijn vraag wat het minst belastent is voor de server, een php bestand met allemaal constants, alles opvragen van de database,...
Ik denk dat je het best een array kan maken in aparte files, en dan aan de hand van de taal het juiste bestand met taal includen.
Offline vinTage - 31/05/2009 22:52
Avatar van vinTage Nieuw lid
Koen schreef:
waarom "mysql_real_escape_string($language)" als $language enkel nederlands of engels kan zijn? 


Dat was omdat ik em eerst een if elsje wou geven met daarin het rechtstreekse resultaat 
Maar dat vond ik teveel werk en is er gewoon in blijven staan 
Offline Bart - 31/05/2009 22:53 (laatste wijziging 31/05/2009 22:53)
Avatar van Bart PHP expert
Medieval schreef:
[..quote..]Ik denk dat je het best een array kan maken in aparte files, en dan aan de hand van de taal het juiste bestand met taal includen.

http://www.site...en_Systeem
Offline dododedodo - 01/06/2009 17:38
Avatar van dododedodo Lid ik zelf zou aanraden om het in een database te zetten zodat je het via een scriptje kan bijwerken, en niet in een array hoeft te gaan zitten kloten, als je daar dan 1 ding per ongeluk in veranderd dan kan je weer gaan zoeken waar de fout zit (wat lang kan gaan duren bij een zeer uitgebreide site) en je hebt het probleem niet dat als er meerdere admins tegelijk aan het systeem bezig zijn om spelfouten eruit te halen dat dan de bestanden over elkaar worden gezet, en alleen de laatste is verwerk.
Offline Joost - 01/06/2009 18:04 (laatste wijziging 01/06/2009 18:27)
Avatar van Joost PHP expert
dododedodo schreef:
ik zelf zou aanraden om het in een database te zetten zodat je het via een scriptje kan bijwerken, en niet in een array hoeft te gaan zitten kloten, als je daar dan 1 ding per ongeluk in veranderd dan kan je weer gaan zoeken waar de fout zit (wat lang kan gaan duren bij een zeer uitgebreide site) en je hebt het probleem niet dat als er meerdere admins tegelijk aan het systeem bezig zijn om spelfouten eruit te halen dat dan de bestanden over elkaar worden gezet, en alleen de laatste is verwerk.
Zeker met een grote site is niet slim het uit de database te halen, denk aan de load die dit veroorzaakt. Je zult dan misschien zeggen "cache", maar dat is niets anders dan de load ergens anders naar verschuiven. Met arrays die de tekst bevatten heb je weinig load, en wanneer je dat goed modulair opbouwt, is daar prima aan te werken met meerdere mensen.

Zoals hieronder ook staat, zo werk ik zelf ook. Ik gebruik sinds kort frameworks om websites te ontwikkelen, en dan heb je altijd een controller en een action, zodat je link is http://domein/conroller/action/, bijvoorbeeld: /blog/add/. Dan maak ik een map voor elke taal(en, nl), waarin ik een map blog maak. Inn de map blog maak ik een bestand add.php, en daar zet ik de array met tekst in. Dan heb je een erg gestructureerd systeem, waar je met meerdere mensen aan kan werken.
Offline Martijn - 01/06/2009 18:15
Avatar van Martijn Crew PHP je zou, als je wilt, zelf per pagina een bestand kunnen maken met daarin de teksten. Maar database zou ik afraden idd met de hierbovenstaande motivatie
Offline dododedodo - 01/06/2009 18:54 (laatste wijziging 01/06/2009 18:55)
Avatar van dododedodo Lid Inderdaad, zo had ik het nog niet bekeken. Voor het beheer ervan zou ik dan een read/write script aanmaken, als al een admin met die pagina bezig is kan een andere er niet meer in of een waarschuwing (om stom toeval te voorkomen).
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.232s