roy - 09/03/2005 13:23 (laatste wijziging 09/03/2005 14:49)
PHP gevorderde
Hallo,
Ik ga mijn website vertalen in 5 talen.
Dat beteken dat ik 5x het bestand x.php krijg.
Als er in dat bestand iets gewijzigd(in het script) moet worden, dan zou ik dat 5x moeten doen.
Is er een mogelijkheid om 1x het bestand x.php te hebben, en via een soort include 5 talen erin te zetten. (aan de hand van welke gekozen wordt).
Ik weet dat het in sommige software programma's met XML gebeurd. (heb ik zelf gemaakt, die bestanden) Kan dat ook voor de website? en hoe moet ik dat doen dan?
je kan TemplatePower eens proberen.... )rnrnDan moet het wel lukken.rnrnDe bestandjes die je toevoegd, laat je verwijzen naar map . $taal . bestandje.tpl zo kan je dan verschillende talen gebruiken ;)rnrnP.S. ik zal wel eens een artikeltje over templatepower schrijven als dit er nog niet is!
roy - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
PHP gevorderde
Wow dat klinkt makkelijker dan het is zie ik alrnrnhttpwww.sitemasters.bepagina=tutorialstutorials&cat=4&id=58 rn
if ($taal==NL)rn{rndit is nederlandsrn}rnelseif($taal==EN)rn{rnthis is english rn}rnzo
roy - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
PHP gevorderde
nee, TemplatePower dit zou mooi zijn om te gebruiken.rnrnIk heb nu een script, PHP + HTML door elkaar, de tekst die er instaat wil ik via een template laten verschijnen.. (eerst voor 1 taal dan maar om te kijken of het werk.rnrnmet een template heb je een PHP en een TPL bestand.rnin het PHP bestand komen mijn vertalen, en in het TPL bestand staat normaal gesproken alleen HTML maar ik wil heel mijn script erin. Dat werkt niet... rnrnWeet iemand een systeem hoe het wel werkt TemplatePower spreekt mij wel aan!
Het is goed om TemplatePower te gebruiken, maar niet voor zoiets.rnTemplatePower gebruik je voor templates, en niet voor talen.rnrnJe kunt het zo doenrnrnNL.phprn[code]phprn$lang['WELKOMSTBERICHT'] = 'Hoi';rn$lang['ERROR_001'] = 'Er is een error opgetreden';rn[code]rnrnEN.phprn[code]phprn$lang['WELKOMSTBERICHT'] = 'Hi';rn$lang['ERROR_001'] = 'An error occurred';rn[code]rnrnen dan in je codernrn[code]phprninclude($_SESSION['lang'] . '.php');rnrnif(error)rn{rnecho $lang['ERROR_001'];rn}elsern{rnecho $lang['WELKOMSTBERICHT'];rn}rn[code]
roy - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
PHP gevorderde
ok ik ga het proberen!rnrn$lang['WELKOMSTBERICHT'] = 'Hi';rndeze regels kan ik zo ver mogelijk uitbreidenrnrn[code]phprninclude($_SESSION['lang'] . '.php');rnrnif(error)rn{rnecho $lang['ERROR_001'];rn}elsern{rnecho $lang['WELKOMSTBERICHT'];rnin deze else komt toch gewoon de rest van mijn scriptrn}rn[code]
roy - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
PHP gevorderde
Hallo,rnrnBedankt, ik heb nog een vraag.rnrn[code]phprnif(isset($_GET['taal'])) {rn er staat een taal in de URLrn switch($_GET['taal']) {rn engelsrn case en include(langenglish.php); break;rn nederlandsrn case nl include(langdutch.php); break;rn onbekendrn default include(langdutch.php); break;rn }rn} else {rn geen taal ingevuld, pak de defaultrn include(langdutch.php);rn}rn[code]rnrnik wil een meerkeuzelijstje en dan zoiets, maar de taal moet opgeslagen worden in een session of cookie, liever een session, hoe moet ik dat doenrnrnMet vriendelijke Groet,rnRoy de Kleijn
Die if is maar een voorbeeld.rnrnJe kunt het uit de url halen door ditrn[code]rnphprnrnalle talen die je hebtrn$talen = array('NL', 'EN');rnrnif(isset($_GET['taal']) && in_array($_GET['taal'], $talen))rn{rn$_SESSION['lang'] = $_GET['taal'];rn}rnrncontrolernif(empty($_SESSION['lang']))rn{rn$_SESSION['lang'] = 'NL';rn}rnrninclude($_SESSION['lang'] . '.php');rnrn[code]rnrnroep je zo aanrnrnpagina.phplang=NL
die if was gewoon een voorbeeld.rnrnDit is trouwens iets voor constanten. Constanten zijn een soort variabelen, maar je kunt ze niet wijzigen (vandaar ook de naam constante).rnDe talen zet je in een taalbestand (include) zoals Fenrir zegt, maar je wijzigt ze daarna niet meer. Daar is een constante dus voor. Variabelen heten niet voor niets variabelen, die kun je steeds wijzigen, maar das niet nodig.rnrnnl.phprn[code]phprndefine('WELKOMSTBERICHT', 'Hoi');rndefine('ERROR_001', 'Er is een error opgetreden');rn[code]rnrnen dan in je scriptrn[code]phprnecho WELKOMSTBERICHT;rn[code]rnrnen dan kun je bijv. een prefix gebruiken voor de overzichtelijkheidrnrnGB_NEW = plaats een nieuw berichtrnGB_ERROR = je moet alle velden invullenrnFORUM_REPLY = plaats reactiernFORUM_ACTIVE = actieve forumberichtenrnrnMet een array kan natuurlijk ook wel, maar constanten is net iets mooier (vind ik iig).
roy - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
PHP gevorderde
[b]ik krijg deze foutmelding[b]rnWarning main(El.php) failed to open stream No such file or directory in varwwwhtmlChrisindex.php on line 21rnrnWarning main() Failed opening 'El.php' for inclusion (include_path='.phpincludesusrsharephp') in varwwwhtmlChrisindex.php on line 21 rnrndeze staat op de index.phprn[code]phprnrnalle talen die je hebtrn$talen = array('NL', 'en');rnrnif(isset($_GET['taal']) && in_array($_GET['taal'], $talen))rn{rn$_SESSION['lang'] = $_GET['taal'];rn}rnrncontrolernif(empty($_SESSION['lang']))rn{rn$_SESSION['lang'] = 'NL';rn}rnrninclude($_SESSION['lang'] . '.php');rn[code]rnrnHier roep ik hem aanrna href=index.phplang=NLDutcharnrnHoe kom El.php in die foutmeldingrn
Ik denk dat je beter dit kunt doenrn[code]phprnrnalle talen die je hebtrn$talen = array('NL', 'en');rnrnverandering 1rnif(isset($_GET['taal']) && $_GET['taal']'' && in_array($_GET['taal'], $talen))rn{rn$_SESSION['lang'] = $_GET['taal'];rn}rnrncontrolernverandering 2rnif(!isset($_SESSION['lang']) $_SESSION['lang']'')rn{rn$_SESSION['lang'] = 'NL';rn}rnrninclude($_SESSION['lang'] . '.php');rn[code]
haha ik zie het alrnje roept die pagina aan met [i]index.phplang=NL[i] maar het moet [i]index.phptaal=NL[i] zijn
roy - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
PHP gevorderde
goed het werkt nog niet.rnrn[b]dit staat op de index[b]rn[code] rnsession_start(); rnob_start(); rn rnphprnrnalle talen die je hebtrn$talen = array('NL', 'EN');rnrnverandering 1rnif(isset($_GET['taal']) && $_GET['taal']'' && in_array($_GET['taal'], $talen))rn{rn$_SESSION['lang'] = $_GET['taal'];rn}rnrncontrolernverandering 2rnif(!isset($_SESSION['lang']) $_SESSION['lang']'')rn{rn$_SESSION['lang'] = 'NL';rn}rnrninclude($_SESSION['lang'] . '.php');rn[code]rnrn[b]zo roep ik hem aan[b]rnindex.phptaal=ENrnindex.phptaal=NLrn
@prosoft jouw code doet precies hetzelfde, maar hij is langer.rnrnIk heb het getest, en het werkt bij mij.rnProbeer eens letterlijk deze codernrn index.phprn[code]phprnrnsession_start();rnrnalle talen die je hebtrn$talen = array('NL', 'EN');rnrnif(isset($_GET['taal']) && in_array($_GET['taal'], $talen))rn{rn$_SESSION['lang'] = $_GET['taal'];rn}rnrncontrolernif(empty($_SESSION['lang']))rn{rn$_SESSION['lang'] = 'NL';rn}rnrninclude($_SESSION['lang'] . '.php');rnrn[code]rnrn EN.phprn[code]EN[code] rnrn NL.phprn[code]NL[code]rnrnDit is het resulaatrnindex.php NLrnindex.phplang=EN ENrnrnen als je dat dan veranderd, dan blijft toch de taal die je het laats gekozen had, door de session.rn