Bonsoir,
Je tente de faire un site multi langues en php.
Pour cela j'ai créé deux fichiers simples :
fr-lang.php et en-lang.php ou sont définies mes constantes.
Exemple :
Dans mon index.php j'ai au tout debut de mon fichier un appel a :
Code : Sélectionner tout - Visualiser dans une fenêtre à part define('LIEN_ACCUEIL', 'Accueil');
Ce fichier decide-lang.php est construit comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <? require("decide-lang.php"); ?>
Et pour finir j'appel dans mon index.php mes constantes comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <?php if (isset($HTTP_COOKIE_VARS['lang'])) { $lang = $HTTP_COOKIE_VARS['lang']; } else { // si aucune langue n'est déclarée on tente de reconnaitre la langue par défaut du navigateur $lang = substr($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'], 0, 2); } //script d'origine if ($lang == 'fr') { // si la langue est 'fr' (français) on inclut le fichier fr-lang.php include('fr-lang.php'); } elseif ($lang == 'en') { // si la langue est 'en' (anglais) on inclut le fichier en-lang.php include('en-lang.php'); } else { include('fr-lang.php'); } //fin du script d'origine //définition de la durée du cookie (1 an) $expire = 365 * 24 * 3600; //enregistrement du cookie au nom de lang setcookie("lang", $lang, time() + $expire); ?>
Seulement j'ai autant de NOTICE que de constantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <?php echo LIEN_ACCUEIL; ?>
Mes constantes sont donc non définies, mais je ne vois pas le problème :/Notice: Use of undefined constant LIEN_ACCUEIL - assumed 'LIEN_ACCUEIL' in C:\wamp\www\site\index.php on line 44
LIEN_ACCUEIL
Si quelqu'un peut m'aider, je lui en serait très reconnaissant
Merci
EDIT : J'ai mis tous les fichiers au même niveau de hiérarchie dans mon dossier (a la racine de celui-ci).
Partager