8768 sujets

Développement web côté serveur, CMS

Bonjour à tous,

voila cela fait pas mal de temps que je développe un site en plusieurs langues (anglais, français, espagnol & japonais) tout fonctionne sous IE, Opéra et Firefox mais Chrome (que je bascule dans la langue que je veux tester) ne reconnais pas aussi bien l'anglais, l'espagnol et le japonais.
Serait-ce parce que ce dernier ne se base pas sur 2 caractère type "en" mais 4 "en_US"? ou ai-je commis une erreur de codage que je n'arrive pas à relever.

voici mon code

<?php 
$locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
$locale=substr ($locale , 0 , 2);
if ($locale=='en')
{
	print"<br /><br /><a href='frame.php?Language=EN'><img src='img/introen.jpg' alt='Last Chronicle of Yrneh' /></a><br />";
	print"<br />Click on the picture to access website";
}
elseif ($locale=='ja')
{
	print"<br /><br /><a href='frame.php?Language=JP'><img src='img/introjp.jpg' alt='Yrneh ? ?? ? ??' /></a><br />";
	print"<br />??????????????????????????";
}
elseif ($locale=='es')
{
	print"<br /><br /><a href='frame.php?Language=ES'><img src='img/introes.jpg' alt='La &uacute;ltima cronica de Yrneh' /></a><br />";
	print"<br />Seleccionna la pelicula para accedar al sitio";
}
else
{
	print"<br /><br /><a href='frame.php?Language=FR'><img src='img/intro.jpg' alt=\"La derni&egrave;re chronique d'Yrneh\" /></a><br />";
	print"<br />Cliquez sur l'image pour acc&eacute;der au site";
}
 ?>


d'avance merci
Baldric a écrit :
Bonjour à tous,
voila cela fait pas mal de temps que je développe un site en plusieurs langues (anglais, français, espagnol &amp; japonais) tout fonctionne sous IE, Opéra et Firefox mais Chrome (que je bascule dans la langue que je veux tester) ne reconnais pas aussi bien l'anglais, l'espagnol et le japonais.
Serait-ce parce que ce dernier ne se base pas sur 2 caractère type "en" mais 4 "en_US"? ou ai-je commis une erreur de codage que je n'arrive pas à relever.
voici mon code

&lt;?php 
$locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
$locale=substr ($locale , 0 , 2);
if ($locale=='en')
{
	print"&lt;br /&gt;&lt;br /&gt;&lt;a href='frame.php?Language=EN'&gt;&lt;img src='img/introen.jpg' alt='Last Chronicle of Yrneh' /&gt;&lt;/a&gt;&lt;br /&gt;";
	print"&lt;br /&gt;Click on the picture to access website";
}
elseif ($locale=='ja')
{
	print"&lt;br /&gt;&lt;br /&gt;&lt;a href='frame.php?Language=JP'&gt;&lt;img src='img/introjp.jpg' alt='Yrneh ? ?? ? ??' /&gt;&lt;/a&gt;&lt;br /&gt;";
	print"&lt;br /&gt;??????????????????????????";
}
elseif ($locale=='es')
{
	print"&lt;br /&gt;&lt;br /&gt;&lt;a href='frame.php?Language=ES'&gt;&lt;img src='img/introes.jpg' alt='La &amp;uacute;ltima cronica de Yrneh' /&gt;&lt;/a&gt;&lt;br /&gt;";
	print"&lt;br /&gt;Seleccionna la pelicula para accedar al sitio";
}
else
{
	print"&lt;br /&gt;&lt;br /&gt;&lt;a href='frame.php?Language=FR'&gt;&lt;img src='img/intro.jpg' alt=\"La derni&amp;egrave;re chronique d'Yrneh\" /&gt;&lt;/a&gt;&lt;br /&gt;";
	print"&lt;br /&gt;Cliquez sur l'image pour acc&amp;eacute;der au site";
}
 ?&gt;


d'avance merci

Bonjour,
Perso je code en Java, mais ta problématique demeure inchangée.
Concernant les "locales", tu peux avoir deux caractères (langue principale) suffixés, éventuellement, de deux autres caractères (habituellement en majuscules) précisant un sous groupe.
Ex. "fr" pour le français standard / "fr-CA" pour le français en usage au Canada.
Il est donc important de ne pas faire un test d'égalité sur la chaîne reçue, mais de rechercher la présence éventuelle du séparateur "-" et, si présent, extraire le préfixe.
Par sécurité, le test d'égalité sur le résultat obtenu se fait sans distinction majuscules / minuscules, au cas où...