Mercurial > hg > lukkari
changeset 64:6900beff8789
Improve multi-language support.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 24 Oct 2012 03:23:04 +0300 |
parents | 6635246b70d9 |
children | 2cfb0a7eac9b |
files | index.php |
diffstat | 1 files changed, 22 insertions(+), 28 deletions(-) [+] |
line wrap: on
line diff
--- a/index.php Wed Oct 24 02:54:10 2012 +0300 +++ b/index.php Wed Oct 24 03:23:04 2012 +0300 @@ -2,14 +2,13 @@ // // Yes, this is horrible. :| // +$pageLang = "fi"; $pageCharset = "utf-8"; $internalCharset = "utf-8"; $classDefault = "TTE9SNO"; $classFile = "luokat.txt"; $cacheFile = "coursecache.txt"; $baseURI = "http://tnsp.org/luk/"; -//$infoURI = "http://www.oamk.fi/opiskelijalle/rakenne/opinto-opas/koulutusohjelmat/?sivu=oj&kieli=FI&opas=2010-2011&vuosi=10S11K&koodi1="; -$infoURI = "http://www.oamk.fi/opiskelijalle/rakenne/opinto-opas/koulutusohjelmat/?sivu=oj&kieli=FI&koodi1="; $pageCSSData = array("cookie" => "lukcss", "prefix" => $baseURI."luk"); $pageCSSAlts = array("blue" => "1", "old" => "2", "purple" => "3"); @@ -33,8 +32,8 @@ ), "beta" => array( - "en" => " NOTICE! Lukkari v2.0beta is not yet finished. Features present in the previous version but currently missing (mini-mode) will return soon.", - "fi" => " HUOM! Lukkari v2.0beta on vielä keskeneräinen. Vanhassa versiossa olleet puuttuvat ominaisuudet (mini-moodi) palaavat piakkoin.", + "en" => " NOTICE! Lukkari v2.0beta is still under development. There may be bugs. Some old features (mini-mode) may not return.", + "fi" => " HUOM! Lukkari v2.0beta on vielä keskeneräinen. Bugeja voi olla. Jotkut vanhat ominaisuudet (mini-moodi) eivät välttämättä tule takaisin.", ), "viikossa" => array( @@ -62,9 +61,6 @@ { global $lukTranslations, $pageLang; - if (!isset($pageLang)) - $pageLang = "fi"; - if (isset($lukTranslations[$msg]) && isset($lukTranslations[$msg][$pageLang])) $str = $lukTranslations[$msg][$pageLang]; else @@ -82,9 +78,6 @@ { global $lukDayNames, $pageLang; - if (!isset($pageLang)) - $pageLang = "fi"; - if (isset($lukDayNames[$pageLang]) && isset($lukDayNames[$pageLang][$day])) return $lukDayNames[$pageLang][$day]; else @@ -146,29 +139,35 @@ function lukMatchCourse($id) { - global $cache, $infoURI, $cacheDirty, $internalCharset; + global $cache, $cacheDirty, $internalCharset, $pageLang; + + $uri = "http://www.oamk.fi/opiskelijalle/rakenne/opinto-opas/koulutusohjelmat/?sivu=oj&kieli=".strtoupper($pageLang)."&koodi1=".$id; + + // Create the index + if (!isset($cache[$id])) + $cache[$id] = array(); // Check if course exists in cache - if (!isset($cache[$id])) + if (!isset($cache[$id][$pageLang])) { // Not cached, try to fetch data $cacheDirty = TRUE; - $data = @file_get_contents($infoURI.$id); + $data = @file_get_contents($uri); if ($data !== FALSE) { $data = iconv("iso-8859-1", $internalCharset, $data); - if (preg_match("#<td class=\"smallheadercell\"><strong>(.+?)\s+(\d+)\s*op\s*</strong></td>#", $data, $m)) + if (preg_match("#<td class=\"smallheadercell\"><strong>(.+?)\s+(\d+)\s*(op|ECTS\s+cr)\s*</strong></td>#", $data, $m)) { // Add data to cache - $cache[$id] = array("desc" => $m[1], "op" => intval($m[2])); + $cache[$id][$pageLang] = array("desc" => $m[1], "op" => intval($m[2])); } } } - if (isset($cache[$id])) + if (isset($cache[$id]) && isset($cache[$id][$pageLang])) { - return "<a target=\"_blank\" title=\"".lukChEntities($id." - ".$cache[$id]["op"]." op"). - "\" href=\"".lukChEntities($infoURI.$id)."\">".lukChEntities($cache[$id]["desc"])."</a>"; + return "<a target=\"_blank\" title=\"".lukChEntities($id." - ".$cache[$id][$pageLang]["op"]." op"). + "\" href=\"".lukChEntities($uri)."\">".lukChEntities($cache[$id][$pageLang]["desc"])."</a>"; } else return lukChEntities($id); @@ -455,9 +454,9 @@ echo "<div id=\"footer\">". lukMsg("contact"). -"<span style=\"color: red;\">". +"<div style=\"color: red;\">". lukMsg("beta"). -"</span> +"</div> </div> <div id=\"csssel\"> <div id=\"ctitle\">Lukkari v2.0 beta</div> @@ -478,14 +477,9 @@ // Dump the course data cache, but only if it has changed -if ($cacheDirty) { - // Create string containing the data - $str = "<?\n\$cache = array(\n"; - foreach ($cache as $id => $data) { - $str .= " \"".addslashes($id)."\" => array(\"desc\" => \"". - addslashes($data["desc"])."\", \"op\" => ".$data["op"]."),\n"; - } - $str .= ");\n?>"; +if ($cacheDirty) +{ + $str = "<?\n\$cache = ".var_export($cache, TRUE)."\n?>"; // Use locking to prevent concurrent access and dump data if (file_put_contents($cacheFile, $str, LOCK_EX) === FALSE) {