8797 sujets

Développement web côté serveur, CMS

Bonjour je suis novice en php mais j'ai quelques petite bases!
Voilà j'ai un souci je souhaite faire une page en PHP multilingue FR et UK

et j'ai un problème au niveau du menu car les liens ne mène nulle part, par exemple le lien "accueil" j'assigne son chemin vers un lien http (par exemple google juste pour tester)

et voilà le message d'erreur

"Not Found
The requested URL /nc multinlingue_2/http//:www.google.fr was not found on this server."

voilà comment ce compose mes fichier php:

le 1er => index.php (page avec son contenu)
le 2eme =>decide-lang.php (permet le choix des langues)
le 3eme et 4eme fr-lang.php et uk-lang.php ( contiennent les texte)

cette méthode je l'ai tester et ça marche nickel sauf avec les liens pour les menus qui posent problème HELP PLEASE


index.php

<!--<?php require("decide-lang.php"); ?>-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style1 {font-size: 36px}
.Style2 {font-size: 36px; color: #FF0000; }
-->
</style>
</head>

<body>

<p><a href="index.php?lang=fr" class="Style1">FR </a>| <a href="index.php?lang=en" class="Style2">EN</a><br>
</p>
<div id="menu"><?php echo TXT_menu; ?></div>
<p>  <?php echo TXT_ACCUEIL_INDEX; ?><br>
  <br>
  
  <?php echo TXT_METEO; ?><br>
  <br>
  
  <?php echo TXT_CONSEIL_INDEX; ?><br>
  <br>
  
  
</p>
</body> 
</html>



decide-lang.php

<?php
 	 
if ($_GET['lang']=='fr') {           // si la langue est 'fr' (français) on inclut le fichier fr-lang.php
include('lang/fr-lang.php');
} 
	 
else if ($_GET['lang']=='en') {      // si la langue est 'en' (anglais) on inclut le fichier en-lang.php
include('lang/en-lang.php');
}
 
else {                       // si aucune langue n'est déclarée on inclut le fichier fr-lang.php par défaut
include('lang/fr-lang.php');
}
?> 


fr-lang.php

 <?php
	 
//---------------------------------------------------------
// index.php pour la page index
//---------------------------------------------------------
	 
define('TXT_ACCUEIL_INDEX', 'TXT (Ordinateur) est le texte inaugural du numéro 2, qui paraît en 1970 dans une charmante version ronéo-stylobiquée (bien avant donc que la typo "Courrier" ne revienne à la mode ; c’est aussi ça l’avant-garde). Court texte programmatique, on y devine les principales références de ce qui s’impose rétrospectivement comme le "premier TXT" (1969 - 1974 (chronologie subjective)) : Tel Quel, la sémiotique de Kristeva (Sémèiôtikè paraît la même année au Seuil) et plus largement les approches intertextuelles, le carnavalesque, la désarticulation du langage ou la nécessité de l’activisme politique. Introduction à un numéro fort dénué sur le plan théorique, ce texte illustre le volontarisme sans moyens de jeunes gens, satellites occupés à se chercher sur une des orbites intellectuelles de l’époque.');


define('TXT_METEO', 'Pour établir une vue générale du temps aujourd’hui, il faut en premier lieu parcourir l’histoire de ce concept, qui fait lui-même notre Histoire. Quelques remarques générales permettent d’aborder ce problème du temps de façon pragmatique.
');



define('TXT_CONSEIL_INDEX', 'Dernière modification de cette page le 31 décembre 2008 à 02:32.
Droit d Politique de confidentialité<br><br><br><br><h1>lÀ propos de Wikipédia</h1>');

define('TXT_menu', '<a href="http//:www.google.fr" target="_blank">accueil</a>   |    collection    |     contact');

?> 


page uk

 <?php
	 
//---------------------------------------------------------
// index.php pour la page index
//---------------------------------------------------------
	 
define('TXT_ACCUEIL_INDEX', 'TXT (PC) is the opening text of paragraph 2, which appeared in 1970 in a charming version mimeo-stylobiquée (although before that the typo "E" will return to fashion, it is also the vanguard) . Program short text, we guess the main reference for what is right in retrospect as the first TXT "(1969 - 1974 (chronology subjective)): Tel Quel, Kristeva of semiotics (Sémèiôtikè seems the same year the Threshold) and wider intertextual approaches, the carnival, the lack of language or the need for political activism. Introduction to a strong free number on the theoretical level, it illustrates the determination without means of young people occupied satellites to seek an intellectual orbits of "time".');




define('TXT_METEO', 'To establish a general view of the time today, we must first look through the history of this concept, which itself is our history. Some general observations can address this problem of time in a pragmatic way.');




define('TXT_CONSEIL_INDEX', 'This page was last modified December 31 2008 at 02:32. 
Right of Privacy policy About Wikipedia');

define('TXT_menu', 'HOME   |    COLLECTION   |     EMAIL');
?> 
Merci Keran oui là dessus le lien marche, parcontre l'autre problème qui se pose est :

comment fait ton pour que langue choisi reste la même lors de la naviguation ?
je m'explique, je choisi la langue UK et lorsque je change de page il faut que les textes soit en UK ? Smiley confus
ou tu passes et teste à chaque fois le get ou tu choisis, ce que fait moi même, un cookie ou une session avec referer, ip et tout le reste. une classe serait bienvenue je crois, au boulôt Smiley cligne
Smiley bawling merci Keran mais je suis novice ! a tu une source ou je suis voir ? ca serai trop gentil Smiley bawling

pour moi c'est dur Smiley bawling

// à inclure à chaque fois
session_start();
// index par défaut, première ouverture
if (!empty($_GET['lang']) && empty($_SESSION['langue'])) {
	trim(strip_tags($_GET['lang']));
	if ($_GET['lang'] === 'fr') {
		$_SESSION['langue'] = 'fr';
	}
	elseif ($_GET['lang'] === 'en')	{
		$_SESSION['langue'] = 'en';
	}
	else {
		$_SESSION['langue'] = 'fr';
	}
} 


ensuite tu testes la variable langue sur les pages et inclus en fonction


session_start();
if (!empty($_SESSION['langue']) && empty($_GET['lang'])) {
	switch ($_SESSION['langue']) {
		case 'fr':
			//include_once('lang/fr-lang.php');
			echo 'page fr <br />';
			echo 'langue enregistrée '.$_SESSION['langue'];
			break;
		case 'en':
			echo 'page en <br />';
			echo 'langue enregistrée '.$_SESSION['langue'];
			//include_once('lang/fr-lang.php');
		default:
			// todo
			break;
	}
} else {
	die('paramètres invalides + un lien');
	// ou
	// include_once('lang/fr-lang.php');
}

Modifié par keran (22 Oct 2009 - 23:00)