"Français",
"en" => "English",
);
$locales=array("fr" => "fr_FR.UTF-8",
"en" => "en_GB.UTF-8",
);
$uri=trim($_SERVER["REQUEST_URI"],"/");
// auto lang redirect:
if (!$uri) {
$lang="en";
if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])) {
$l=substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
if (isset($otherlang[$l])) {
$lang=$l;
}
}
header("Location: /Home-".$lang."");
exit();
}
if (preg_match('#^(.*)-([^-]*)$#',$uri,$mat)) {
$lang=$mat[2];
$uri=$mat[1];
}
if (!isset($otherlang[$lang])) {
header("HTTP/1.0 404 Not Found");
echo "
Lang not supported
";
exit();
}
// set locales:
putenv("LC_MESSAGES=".$locales[$lang]);
putenv("LANG=".$locales[$lang]);
putenv("LANGUAGE=".$locales[$lang]);
// this locale MUST be selected in "dpkg-reconfigure locales"
setlocale(LC_ALL,$locales[$lang]);
unset($otherlang[$lang]);
header("Content-Type: text/html; charset=UTF-8");
if (!file_exists("../pages/".$uri."-".$lang.".md")) {
header("HTTP/1.0 404 Not Found");
echo "File not found
";
exit();
}
// automatic compilation / caching of HTML pages
if (!file_exists("../pages/".$uri."-".$lang.".html") ||
filemtime("../pages/".$uri."-".$lang.".html") < filemtime("../pages/".$uri."-".$lang.".md") ) {
passthru("github-markup ".escapeshellarg("../pages/".$uri."-".$lang.".md")." >".escapeshellarg("../pages/".$uri."-".$lang.".html")." 2>&1");
}
$f=fopen("../pages/".$uri."-".$lang.".html","rb");
$headings=array();
$cur=array(); $id=""; $name="";
$first=true;
while ($s=fgets($f,1024)) {
if (preg_match('#([^<]*)
#',$s,$mat)) {
if ($first) { $title=$mat[2]; $first=false; }
if ($id) $headings[]=array("id"=>$id, "name"=>$name, "cur"=>$cur);
$id=$mat[1]; $name=$mat[2];
$cur=array();
}
if (preg_match('#([^<]*)
#',$s,$mat)) {
$cur[]=array("id"=>$mat[1], "name"=>$mat[2]);
}
}
if ($id) $headings[]=array("id"=>$id, "name"=>$name, "cur"=>$cur);
ob_start();
foreach($headings as $v) {
?>
">