read())) { if (is_file($d->path."/".$entry."/strings.php")){ $LANGS[] = $entry; } } $d->close(); class A{ var $strings = Array(); } function loadstrings($lang = NULL){ global $FRIENDIKA_PATH; if (is_null($lang)) { $path = $FRIENDIKA_PATH."/util/strings.php"; } else { $path = $FRIENDIKA_PATH."/view/$lang/strings.php"; } $a = new A(); include_once($path); return $a->strings; } function savestrings($lang, $strings){ global $FRIENDIKA_PATH; $path = $FRIENDIKA_PATH."/view/$lang/strings.php"; $f = fopen($path,"w"); fwrite($f, "<"); fwrite($f, "?php\n"); foreach($strings as $k=>$v){ $k=str_replace("'","\'", $k); $k=str_replace("\\\\'","\'", $k); $k=str_replace("\n","\\n", $k); $k=str_replace("\r","\\r", $k); $v=str_replace("'","\'", $v); $v=str_replace("\\\\'","\'", $v); $v=str_replace("\n","\\n", $v); $v=str_replace("\r","\\r", $v); fwrite( $f, '$a->strings[\''.$k.'\'] = \''. $v .'\';'."\n" ); #echo '$a->strings[\''.$k.'\'] = \''. $v .'\''."\n" ; } fwrite($f, "?"); fwrite($f, ">\n"); fclose($f); } function hexstr($hexstr) { $hexstr = str_replace(' ', '', $hexstr); $hexstr = str_replace('\x', '', $hexstr); $retstr = pack('H*', $hexstr); return $retstr; } function strhex($string) { $hexstr = unpack('H*', $string); return array_shift($hexstr); } echo "

Translator

"; echo "Utility to translate string.php file."; echo " Need write permission to language file you want to modify"; echo "

Installed languages:"; foreach($LANGS as $l){ echo "$l, "; } echo "

"; $strings['en'] = loadstrings(); if (isset($_GET['lang'])){ $lang = $_GET['lang']; $strings[$lang] = loadstrings($lang); $n1 = count($strings['en']); $n2 = count($strings[$lang]); echo "
";
	echo "Translate en to $lang
"; //echo "Translated $n2 over $n1 strings
"; echo "

"; if (isset($_POST['save'])){ echo "saving..."; foreach ($_POST as $k=>$v){ if ($k!="save" && $k!="from"){ $k=hexstr($k); $strings[$lang][$k] = $v; } } savestrings($lang, $strings[$lang]); echo "ok.
"; } if (!isset($_POST['from'])){ $from=0; } else { $from = $_POST['from']; if ($_POST['save']=="Next") $from += 10; if ($_POST['save']=="Prev") $from -= 10; } $count = count($strings['en']); $len = 10; if ($from+$len>$count) $len=$count-$from; $thestrings = array_slice($strings['en'], $from, $len, true); echo "
"; if ($from>0) echo ""; echo ""; if ($from+$len<$count) echo ""; foreach($thestrings as $k=>$v){ $id = strhex($k); $translation = $strings[$lang][$k]; $v=str_replace("\n","\\n", $v); $v=str_replace("\r","\\r", $v); $translation=str_replace("\n","\\n", $translation); $translation=str_replace("\r","\\r", $translation); $istranslate = $translation != '' ? 'yes':'no'; echo "
"; echo "
"; echo "
"; echo "
"; } echo ""; if ($from>0) echo ""; echo ""; if ($from+$len<$count) echo ""; echo "
"; } ?>