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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
<?php
include('config/config.php');
require('incl/OutilTraductiongoogle.class.php');
include('incl/func.php');
// Création du nom de fichier à utiliser pour le cache (le nom du fichier est composé de la ou les crépertoires où se trouve le fichier exp: dir/test.php?id=1)
$nom_fichier = $_SERVER['REQUEST_URI'];
$nom_fichier = str_replace($site, '', $nom_fichier);
$chaine = '|(.*?)/'.$_GET['langue'].'/|i';
$nom_fichier = preg_replace($chaine,'',$nom_fichier);
// Hasher le nom du fichier à inclure dans le cache
$md5 = md5($nom_fichier);
// déterminer le chemin pour parvenir au cache
$cache = 'langues/'.$_GET['langue'].'/'.$md5;
// La date d'expiration du cache (pour modifier cette date reportez vous à config/config.php)
$expire = time() - ($jours_cache * 3600 * 24) ;
// Déterminer l'url qu'on va traduire
$url = $_SERVER['REQUEST_URI'];
//On supprime $_GET['langue'] par exemple ("/en" de l'adresse "/en/dir/test.php") pour déterminer l'url à traduire
$url = str_replace('/'.$_GET['langue'], '', $url);
if(url_exists($site.$url))
{
//Si l'url existe, que le fichier cache existe et que la date d'expiration n'a pas encore été atteinte nous lisont directement le fichier en cache
if(file_exists($cache) && filemtime($cache) > $expire)
{
readfile($cache);
}
//sinon nous créont le fihier cache
else
{
ob_start(); // ouverture du tampon
// Initialiser le traducteur avec la configuration "Français -> $_GET['langue']"
$traducteur = new OutilTraductiongoogle('fr',$_GET['langue']);
$result = $traducteur->traduire_URL($site.$url);
//Gestion des erreurs 403 et 302
if ( $result===false ) echo $traducteur->return_error();
elseif (strpos($result,'<title> 403 Forbidden'))
{
echo "Google indique une erreur. (Title: 403).<br /><br />Nous rencontrons un problème temporaire avec la l'outil de traduction. Veuillez s'il vous plaît ré-essayer de nouveau plus tard. Nous vous prions de nous excuser pour le désagrément encouru.<br /><br />
Sorry / Scuzi / Perdon / Nay canne doo tha laddy / Excuseer / Das is Nicht Gud / Sori
";
}
elseif (strpos($result,'<title> 302 Moved'))
{
echo "Google indique une erreur. (Title: 302).<br /><br />Nous rencontrons un problème temporaire avec la l'outil de traduction. Veuillez s'il vous plaît ré-essayer de nouveau plus tard. Nous vous prions de nous excuser pour le désagrément encouru.
<br /><br />
Sorry / Scuzi / Perdon / Nay canne doo tha laddy / Excuseer / Das is Nicht Gud / Sori
";
}
else {
echo Parse($result, $site, $_GET['langue']);
$page = ob_get_contents(); // copie du contenu du tampon dans une chaîne
ob_end_clean(); // effacement du contenu du tampon et arrêt de son fonctionnement
file_put_contents($cache, $page) ; // on écrit la chaîne précédemment récupérée ($page) dans un fichier ($cache)
echo $page ; // on affiche notre page
}
}
}
else {
header(
"Status: 404 Not Found ", false, 404);
header(
"Location:" .$site.$url);
exit();
}
?> |
Partager