login  Naam:   Wachtwoord: 
Registreer je!
 Forum

taalkeuze

Offline Fliten - 16/01/2005 20:44
Avatar van FlitenNieuw lid Hoi

Weet er soms iemand waar je zo'n voorbeeld kunt vinden van zo'n talenscript. Datgene wat je bv. ziet index.php?lang=nl

greetz

18 antwoorden

Gesponsorde links
Offline Fenrir - 16/01/2005 20:49 (laatste wijziging 16/01/2005 20:49)
Avatar van Fenrir PHP expert Je moet dan een file maken waarin alle woorden/zinnen in staan die je site gebruikt:

  1. //NL.inc.php
  2. <?php
  3. $lang['errormsg1'] = '404 error, de pagina kon niet gevonden worden';
  4.  
  5. //etc..
  6. ?>
  7.  
  8. //EN.inc.php
  9. <?php
  10. $lang['errormsg1'] = '404 error, the page could not be found';
  11.  
  12. //etc..
  13. ?>


en dan include je de juiste taal, en dan gebruik je in je script steeds $lang:

if(!isset($data))
{
echo $lang['errormsg1']
}else
{
Offline wouter - 16/01/2005 20:55 (laatste wijziging 16/01/2005 20:56)
Avatar van wouter PHP interesse dat is niet zo moeilijk hoor, het werkt volgens de volgende code:
  1. <?
  2. if (isset($_GET['lang']) && $_GET['lang'] == 'nl') {
  3. echo "Dit is de nederlandstalige pagina";
  4. }
  5. elseif (isset($_GET['lang']) && $_GET['lang'] == 'eng') {
  6. echo "This is the same page but in english";
  7. }
  8. elseif (isset($_GET['lang']) && $_GET['lang'] == 'fr') {
  9. echo "La même chose en français";
  10. }
  11. elseif (isset($_GET['lang']) && $_GET['lang'] == 'de') {
  12. echo "Das site in deutsch";
  13. }
  14. else {
  15. echo "Kies hier je taal<br>Chose your language<br>Choissi votre language<br>etc";
  16. }
  17. ?>

Srry duurde ff tegen dat die stuff getypt was waardoor je me voor was 
Offline Dennisvb - 16/01/2005 20:56 (laatste wijziging 16/01/2005 20:57)
Avatar van Dennisvb MySQL ver gevorderde De juiste taal includen kan bijvoorbeeld op de volgende manier:
  1. <?php
  2. //in je config kan je dit plaatsen
  3. if($_GET['taal'] == '') {
  4. include('talen/nl.inc.php'); //default
  5. } else {
  6. include('talen/'.$_GET['taal'].'.inc.php'); //includen wanneer bestaat
  7. }
  8. ?>

Dit zou moeten werken. Je kunt ook nog beveiliging ahv file_exists() kunnen kijken of de taal wel bestaat, maar dat l;aat ik aan jouw over ;)
Offline Fliten - 16/01/2005 21:21
Avatar van Fliten Nieuw lid en dus in die .inc files moeten die zinnen op dezelfde plaats staan dan?
Offline Dennisvb - 16/01/2005 21:25
Avatar van Dennisvb MySQL ver gevorderde Dat hoeft niet, maar is wel handig. je kunt het beste alles goed indelen met goede variabelen namen, bijvoorbeeld:


$taal['error']['404'] = 'De pagina kan niet worden gevonden';

zolang de namen van de variabelen goed zijn maakt het niet uit waar ze staat in dat bestand
Offline twopeak - 16/01/2005 21:35
Avatar van twopeak Gouden medaille

PHP ver gevorderde
je zou dat ook allemaal in een database kunnen steken; waarin je verschillende "inhoud"stabellen hebt (inhoud_nl, inhoud_fr, inhoud_xx)
Als je wat code maakt, kun je daar zelfs een krachtige admin rond maken waarin je gemakkelijk bijvoegt of verbeterd!
Offline Fenrir - 17/01/2005 16:59
Avatar van Fenrir PHP expert Je kunt dan beter een andere structuur gebruiken:

//table talen:
int ID
varchar Taal

//table taalinhoud:
int ID
int TaalID //zie id van vorige tabel
varchar Name //de naar waarmee je hem in je phpscript aanroept, bijv. errormsg_98.
varchar Content //de zin/woord, bijv. '404 error, de pagina kon niet gevonden worden'
Offline Fliten - 17/01/2005 22:27
Avatar van Fliten Nieuw lid Hier ben ik, weer, al druk bezig geweest, maar zoals je verwacht werkt het niet .

even tonen wat ik al heb:

test.php
  1. <? $taal['aanbouw'] ?>


taalkeuze.php
  1. <?
  2. if($_GET['lang'] == '') {
  3. include('talen/nl/nl.inc.php'); //default
  4. }
  5. elseif ($_GET['lang'] == 'nl') {
  6. include('talen/nl/nl.inc.php'); //nederlandstalig bestand
  7. }
  8. elseif ($_GET['lang'] == 'fr') {
  9. include('talen/fr/fr.inc.php'); //franstalig bestand
  10. }
  11. elseif ($_GET['lang'] == 'en') {
  12. include('talen/en/en.inc.php'); //engelstalig bestand
  13. }
  14. ?>


nl.inc.php
  1. <? $taal['aanbouw'] = 'Deze website is in aanbouw'; ?>



Zit er soms een foutje ergens of zo? 

Greetz
Offline Maarten - 17/01/2005 22:35 (laatste wijziging 18/01/2005 08:43)
Avatar van Maarten Erelid
  1. <? $taal['aanbouw'] ?>
Daar mss? Moet dat niet ECHO $taal['aanbouw']; zijn ?

of <?= $taal['aanbouw']; ?>
Offline Fliten - 18/01/2005 17:27
Avatar van Fliten Nieuw lid Twil dus maar niet lukken, ie wil die $taal['aanbouw'] niet tonen.
Offline numlockrond - 18/01/2005 17:40
Avatar van numlockrond Onbekend dan moet je er dus wel echo voor zetten, zoals murfy zegt.
Offline Fliten - 18/01/2005 17:40
Avatar van Fliten Nieuw lid werkt ook niet 
Offline Fliten - 19/01/2005 19:22
Avatar van Fliten Nieuw lid Kvind het echt niet.

Maar je zegt echo, maar moet diene variabele dan nie tussen aanhalingstekens staan of zo?
Offline numlockrond - 19/01/2005 19:31
Avatar van numlockrond Onbekend variabelen moeten nooit tussen aanhalingsteken staan

  1. <?php
  2.  
  3. echo $taal['aanbouw'];
  4.  
  5. ?>
Offline VonDutch - 19/01/2005 20:24 (laatste wijziging 19/01/2005 20:25)
Avatar van VonDutch PHP interesse Je kan ook een language bestand maken met allemaal constanten erin,
bijv. lang_nl.php
  1. <?php
  2. define('_404_ERROR','Deze pagina bestaat niet!');
  3. define('_PAGINA_AANBOUW','Deze pagina is nog in aanbouw!');
  4. ?>

en dan kan je gewoon
  1. <?php
  2. echo _404_ERROR;
  3. ?>

gebruiken. Zo werkt het in Mambo Open Source 
Offline Fliten - 19/01/2005 21:35
Avatar van Fliten Nieuw lid uhm, dan geeft hij gewoon _404_ERROR weer op de pagina 
Offline Fenrir - 19/01/2005 21:37
Avatar van Fenrir PHP expert Ja, maar dan zet je ipv die 404 een zin van je site.
Offline VonDutch - 19/01/2005 21:39
Avatar van VonDutch PHP interesse =/
heb je t zonder quotes gedaan? t zal vast niet uitmaken, maar misschien is het wel DEFINE
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.3s