Ik heb op DEZE website een tutorial gevonden over het gebruik van verschillende taalbestanden.

Heb de basis volgens mij goed gevolgd maar krijg het niet werkend. ziet iemand wat ik niet goed doe?

Mijn bestanden zien er zo uit:
index.php

<?php
session_start();
if(isset($_GET['lang'])) {
$_SESSION['lang'] = $_GET['lang'];
}
if(!isset($_SESSION['lang'])) {
$_SESSION['lang'] = 'en'; // default value
}
include($_SESSION['lang'] . 'php'); // include lang file
?>
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'/>
<title>title</title>

</head>
<body>

<h2><?php echo $lang['title']; ?></h2>

<p><?php echo $lang['intro']; ?></p>

</body>
</html>

en.php
$lang = array(
'title' => 'Some title',
'intro' => 'Enter intro text'
);


de.php
$lang = array(
'title' => 'Einige Titel',
'intro' => 'Geben Sie Introtext'
);


[size=xsmall]Toevoeging op 08/05/2016 09:29:33:[/size]

hmm zie nu dat de code van de index.php niet in 1 mooi kader staat. Het hoort dus wel allemaal bij elkaar.
Een wilde gok,


include($_SESSION['lang'] . 'php'); // include lang file


moet


include($_SESSION['lang'] . '.php'); // include lang file


worden ?

Verder, staan de taalbestanden in de root ?

tenslotte, gebruik include_once() i.p.v. include()

Ik heb de aanpassingen doorgevoerd.

De output op het scherm wordt echter ....

$lang = array( 'title' => 'Some title', 'intro' => 'Enter intro text' );


en niet de output die je zou verwachten.
Bron output:

$lang = array(
'title' => 'Some title',
'intro' => 'Enter intro text'
);<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'/>
<title>title</title>

</head>
<body>

<h2></h2>

<p></p>

</body>
</html>
En dat is weer omdat je geen <?php en ?> gebruikt in je taalbestanden.
Volgens mij wel. In de eerste post staat de
<?php en ?>

In de laatste post staat alleen de bron van de output, dus dat wat te zien is nadat de php-file geladen is.
Nee, in je post staat heel duidelijk dat en.php en de.php dit niet bevatten. En dat verklaart ook meteen waarom de bron van die bestanden rechtstreeks in je HTML verschijnt.
Je hebt helemaal gelijk.
Ik dacht zelf dat de fout in de index.php stond. Had dus een blinde vlek voor de language files zelf.
Het werkt.
Bedankt!
Voordat je allerlei data in je sessie kiepert wil je wellicht controleren (filteren) of deze data wel geldig is, bijvoorbeeld aan de hand van een whitelist (bijvoorbeeld een array van toegestane talen).

En op het moment dat je input niet voldoet wil je wellicht ook terugvallen op een geldige default(taal).
Radboud Prinsen op 08/05/2016 09:26:45


hmm zie nu dat de code van de index.php niet in 1 mooi kader staat. Het hoort dus wel allemaal bij elkaar.

Gelukkig hebben we code-tags hiervoor. Zie ook de 'Veel gestelde vragen'.

Reageren