rendered paste body<?php// create langpack_french based on the wiki entries$version='0.04.22b';//File counter eingefügt, Zeilen 192-207 // def stuff if(!defined('PATH')) define('PATH',realpath(dirname(__FILE__))); $vars['path_wiki']='/'; $vars['path_wiki_data']=PATH.'/data/pages/langpack'; $vars['path_temp']=PATH.'/temp'; /* ------------------ no edits needed below --------------------------- */ini_set('short_open_tag',"1");(strtolower(substr(PHP_OS, 0, 3) == 'win')) ? $PS=';' : $PS=':';ini_set('include_path',ini_get('include_path').$PS.PATH);//require_once("./create_langpack/html.php");require_once("./create_langpack/ConvertCharset.class.php"); if(@file_exists($vars['path_wiki']."inc/utf8.php")){ //get some dokuwiki includes require_once($vars['path_wiki']."/conf/dokuwiki.php"); require_once($vars['path_wiki']."/inc/common.php"); require_once($vars['path_wiki']."/inc/search.php"); require_once($vars['path_wiki']."/inc/utf8.php"); } //check if encoding was given $lp_select = $_POST['output']; //// parameter checkif ($_GET['check']==1) { xhtml_head(); $flg=check_structure(); xhtml_foot();}elseif ($_GET['save_stable']==1) { xhtml_head(); $flg=0; $flg=check_structure(); if ($flg>0) {echo'<b>Fehler in der Sprachdatei. keine Speicherung</b>';} else { echo "<br />Speicherung läuft..."; action("1"); echo "<br />... fertig"; } xhtml_foot();}elseif(!$lp_select){ xhtml_head(); xhtml_hello(); xhtml_foot();}else{ // It will be called langpack_french.txt header("Content-Type: x-type/subtype");// header('Content-Disposition: attachment; filename="langpack_french.txt"'); header("Content-Disposition: attachment; filename=\"langpack_french.txt\""); action("0"); //xhtml_finished();} exit(); function action($flg_save) { // Zusammenstellen des langpacks global $version; global $vars; $files_langpack=read_dir(); $files_langpack_sort=sort($files_langpack); $i=0; unset($langpack_french); unset($langpack); for ($i=0;$i < sizeof($files_langpack);$i++){ if($files_langpack[$i] == "core.txt") { if (file_exists($vars['path_wiki_data'].'/'.$files_langpack[$i].'.asc')) { // ISO File $core=read_langpack($files_langpack[$i].'.asc'); // langpack core -> $core $core=remove_non_lp($core); // alles nicht <file>...</file> raus } else { //UTF-8 $core=read_langpack($files_langpack[$i]); // langpack core -> $core $core=remove_non_lp($core); // alles nicht <file>...</file> raus $core=convert_from_utf($core); } } elseif ($files_langpack[$i] == "common.txt") { $files=ereg_replace("(\.txt)$","",$files_langpack[$i]); $flg_ok=$_POST[$files]; if(isset($flg_ok) or isset($_POST['alles']) or isset($flg_save)) { $file_time=filectime($vars['path_wiki_data'].'/'.$files_langpack[$i]); if (file_exists($vars['path_wiki_data'].'/'.$files_langpack[$i].'.asc')) { // ISO File $common=read_langpack($files_langpack[$i].'.asc'); // langpack core -> $core $common=remove_non_lp($common); // alles nicht <file>...</file> raus } else { $common=read_langpack($files_langpack[$i]); // langpack core -> $core $common=remove_non_lp($common); // alles nicht <file>...</file> raus $common=convert_from_utf($common); } $common=array_merge("; start of langpack ASC: ".$files.", last update: ".gmdate("d.M.Y H:i:s", $file_time)." (".$file_time.")\r\n",$common); $common=array_merge($common,"; ##############################################\r\n; end of langpack: ".$files."\r\n; ##############################################\r\n\r\n"); } } elseif (ereg("(\.txt)$",$files_langpack[$i])){ $files=ereg_replace("(\.txt)$","",$files_langpack[$i]); $flg_ok=$_POST[$files]; if(isset($flg_ok) or isset($_POST['alles']) or isset($flg_save)) { $file_time=filectime($vars['path_wiki_data'].'/'.$files_langpack[$i]); if (file_exists($vars['path_wiki_data'].'/'.$files_langpack[$i].'.asc')) { // ISO File $langpack=read_langpack($files_langpack[$i].'.asc'); $langpack=remove_non_lp($langpack); if ($langpack != "") { $langpack_french=array_merge($langpack_french,"; start of langpack ASC: ".$files.", last update: ".gmdate("d.M.Y H:i:s", $file_time)." (".$file_time.")\r\n"); $langpack_french=array_merge($langpack_french,$langpack); // langpack nach restl. lp hängen $langpack_french=array_merge($langpack_french,"; ##############################################\r\n; end of langpack: ".$files."\r\n; ##############################################\r\n\r\n"); } } else { // UTF-8 file $langpack=read_langpack($files_langpack[$i]); $langpack=remove_non_lp($langpack); if ($langpack != "") { $langpack=convert_from_utf($langpack); $langpack_french=array_merge($langpack_french,"; start of langpack: ".$files.", last update: ".gmdate("d.M.Y H:i:s", $file_time)." (".$file_time.")\r\n"); $langpack_french=array_merge($langpack_french,$langpack); // langpack nach restl. lp hängen $langpack_french=array_merge($langpack_french,"; ##############################################\r\n; end of langpack: ".$files."\r\n; ##############################################\r\n\r\n"); } } } } } $core=array_merge($core,$common); // common an core hängen $langpack_french=array_merge($core,$langpack_french); // common an core hängen // Header einfügen $lp_header=array("Miranda Language Pack Version 1\r\n","Language: French (fr-FR)\r\n","Locale: 040c\r\n","Last-Modified-Using: Miranda IM 0.5\r\n","Authors: Dagobert_78, a7 et la comunautée miranda-fr.net\r\n","Author-email: dago.bert@wanadoo.fr & postmaster@miranda-fr.net\r\n","X-Langpack-creation-date: ".date("d M Y H:i:s")."\r\n","X-Langpack-creator: Langpack creator v".$version."\r\n"); $lp_flid=array("\r\n","; FLID: French Language Pack ".date("0.y.m.d")."\r\n"); $lp_hinweis=array("\r\n","; du texte ici :o \r\n","\r\n\r\n; ###########################\r\n; end of Header\r\n; ###########################\r\n\r\n"); $included_files=""; for ($i=0;$i < sizeof($files_langpack);$i++){ $files=ereg_replace("(\.txt)$","",$files_langpack[$i]); $flg_ok=$_POST[$files]; if(isset($flg_ok) or isset($_POST['alles']) or isset($_GET['save_stable'])) { $included_files=$included_files.' '.$files; } } $lp_plugins=array("; Plugins-included:".$included_files."\r\n"); $langpack_french=array_merge($lp_hinweis,$langpack_french); // Hinweis vor lp hängen $langpack_french=array_merge($lp_flid,$langpack_french); // flid vor lp hängen $langpack_french=array_merge($lp_plugins,$langpack_french); // Pluginnamen vor lp hängen $langpack_french=array_merge($lp_header,$langpack_french); // Header vor lp hängen // // Ausgabe der Datei if ($flg_save) { $datei=@fopen("/var/www/web29/files/langpack_french.txt", "w"); @flock($datei,2); $zp = gzopen("/var/www/web29/files/langpack_french.txt.gz", "w9"); } for ($i=0;$i < sizeof($langpack_french);$i++){ $langpack_french[$i]=preg_replace("(\r\r\n)", "\r\n", preg_replace("(\n)", "\r\n", $langpack_french[$i])); // DFYX :-) if ($flg_save) { @fputs($datei, $langpack_french[$i]); // Schreibe den String in die Datei gzwrite($zp, $langpack_french[$i]); } else { echo $langpack_french[$i]; //'<br />'; } } if ($flg_save) { @fputs($datei, "\r\n\r\n".'; total lines: '.sizeof($langpack_french).' end of file langpack_french.txt'."\r\n"); gzwrite($zp, "\r\n\r\n".'; total lines: '.sizeof($langpack_french).' end of file langpack_french.txt'."\r\n"); } else { echo "\r\n\r\n".'; total lines: '.sizeof($langpack_french).' end of file langpack_french.txt'."\r\n"; } echo "; Plugins-included:".$included_files."\r\n"; if ($flg_save) { @fputs($datei, "; Plugins-included:".$included_files."\r\n"); gzwrite($zp, "; Plugins-included:".$included_files."\r\n"); // Schließe die Datei gzclose($zp); @flock($datei,3); @fclose($datei); } $countfile="counterfile".date("dm").".txt"; if (!file_exists($countfile)) // Look if file exists { $fp = fopen($countfile,"w"); //if it dosen't create it fputs ($fp,"0" ); // lets add a 0 in it } else { $fp = fopen($countfile,"r+"); }; $numcountaction= fread($fp,filesize($countfile)); fclose($fp); $numcountaction++; $fp = fopen($countfile,"w"); fputs ($fp,$numcountaction); fclose($fp); } // end action() function read_dir (){ global $vars; $verz=opendir($vars['path_wiki_data']); while ($file = readdir ($verz)) { if(ereg("(\.txt)$",$file)) { $files[$i]=$file; $i++; } } closedir($verz); return ($files);} function read_langpack ($file){ global $vars; $fp = fopen($vars['path_wiki_data'].'/'.$file,"r"); // abs Pfad $text = file($vars['path_wiki_data'].'/'.$file); fclose($fp); return ($text);} // end read_langpack function remove_non_lp ($text) { $flg_lp=0;$j=0; for($i=0;$i < sizeof($text);$i++) { if ($flg_lp==1) { if (ereg("\<\/file\>", $text[$i])) { $flg_lp=0;} else{$txt[$j]=$text[$i];$j++;} } if (ereg("\<file\>", $text[$i])) { $flg_lp=1;} } return($txt);} // remove_non_lp function convert_from_utf($text){ $conv = new ConvertCharset; // objekt der Klasse erstellen $txt = $conv->Convert($text,'utf-8','windows-1252',false); // Zugriff auf Funktion in Objekt return($txt);} // convert_from_utf function xhtml_head(){global $version; header('Content-Type: text/html; charset=windows-1252'); print '<?xml version="1.0"?>'; print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"'; print ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';?><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr"><head> <title>Langpack Creator <?=$version?></title> <meta http-equiv="Content-Type" content="text/html; charset=utf8" /> <meta name="generator" content="Langpack Creator <?=$version;?>" /> <link rel="stylesheet" media="screen" type="text/css" href="create_langpack/style.css" /></head><body><div class="page"><?} function xhtml_foot(){?></div></body></html><?} function xhtml_hello(){ global $conf;?><!-- <p>Dieses Skript soll dazu dienen die Fleißarbeit der Eingabe in das Sprachdatei- <a href="http://wiki.splitbrain.org/">Wiki</a> zu belohnen indem es das Wiki ausliest und eine Sprachdatei zum runterladen erstellt. Das Skript basiert auf dem <a href="http://wiki.splitbrain.org/wiki:utf8update">wiki:utf8update</a> und nutzt teilweise dessen Routinen.</p><p style="font-weight:bold">Dies ist eine der ersten Versionen und nicht voll lauffähig!</p> --> <?xhtml_langpack_selection($files_langpack);} function xhtml_finished(){?><p>Okay, hier die gespeicherten Sprachdateien</p><?} function xhtml_langpack_selection(){$files=read_dir();$files_langpack_sort=sort($files);?> <p style="font-weight:bold">Veuillez sélectionner les langpacks | <a href='create_langpack.php?check=1'><font size="-2">Contrôler tout les langpacks</font></a></p> <form action="<?=$_SERVER['PHP_SELF']?>" method="post" name="tablesForm"> <input type="radio" name="core" value="core" checked="checked" /><a href="doku.php?id=langpack:core" target="_blank">Miranda IM 0.5 (Core) <img src="img/core.gif"/></a><br /> <!-- <input type="radio" name="core_0.3" value="core_0.3" /><a href="doku.php?id=langpack:core_0.3" target="_blank">Miranda IM v0.3.x (Kern) - z.Zt. nicht unterstützt</a><br /> --> <!-- <br /> <a href="create_langpack.php?alles=1">Tout sélectionner</a> / <a href="create_langpack.php?alles=0">Tout désélectionner</a> <br /> <input type="submit" value="Sprachdatei erstellen" /><br /> --><br /> <p><img src="img/addons.gif"/> Plugins traduits :</p><?for ($i=0;$i < sizeof($files);$i++){if (ereg("(\.txt)$",$files[$i]) and !ereg("^(core)",$files[$i])and !ereg("^(_)",$files[$i])){ $files[$i]=ereg_replace("(\.txt)$","",$files[$i]); echo '<input type="checkbox" name="'.$files[$i].'" value="'.$files[$i].'"'; if($_GET['alles']==1) {echo ' checked="checked"';} echo'/><a href="doku.php?id=langpack:'.$files[$i].'" target="_blank">'.$files[$i].'</a><br />'."\n";} // end if}?> <br /> <a href="create_langpack.php?alles=1">Tout sélectionner</a> / <a href="create_langpack.php?alles=0">Tout désélectionner</a><br /> <input type="hidden" name="output" value="astxt" /> <input type="submit" value="Créer le langpack" /></form> <?} function check_structure () { $files_langpack=read_dir(); $files_langpack_sort=sort($files_langpack); $i=0; unset($langpack_french); for ($i=0;$i < sizeof($files_langpack);$i++){ $file=ereg_replace("(\.txt)$","",$files_langpack[$i]); if (ereg("(\.txt)$",$files_langpack[$i])){ // echo '<b>'.$files_langpack[$i].'</b>'; if(ereg("^(core)",$files_langpack[$i])) { $core=read_langpack($files_langpack[$i]); // langpack core -> $core $core=remove_non_lp($core); // alles nicht <file>...</file> raus $flg_error=check_file($core, 0,$files_langpack[$i]); if ($flg_error) {echo '<a href="doku.php?id=langpack:'.$file.'" target="_blank">'.$file.'</a> - <font color="red">Erreur(s) trouvée(s)</font><br />';} else{echo'core - <font color="green">OK</font><br />';} unset($core); } else { $files=ereg_replace("(\.txt)$","",$files_langpack[$i]); $flg_ok=1; //var_dump($_POST); if(isset($flg_ok) or isset($_POST['alles'])) { //echo $i.": ".$files."<br />"; unset($langpack); $langpack=read_langpack($files_langpack[$i]); $langpack=remove_non_lp($langpack); $flg_error=check_file($langpack, 0,$files_langpack[$i]); echo $file; //echo $files_langpack[$i]; if ($flg_error>0) {echo ' - <font color="red">Erreur(s) trouvée(s)</font><br />';} else{echo ' - <font color="green">OK</font><br />';} } } // else }// end if } // end for if ($flg_error) {echo 'Es wurden '.$flg_error.' Erreur(s) trouvée(s). Le langpack n\'est probablement pas valide ';} else{ echo'<br />Le contrôle s\'est passé sans erreurs. <a href="create_langpack.php">Retour au choix des Plugins </a>';} if (isset($flg_error)){return($flg_error);}} // end func function check_file($lines, $start, $file){ $flg_error=0; $flg_en=1; for ($i=$start;$i < sizeof($lines);$i++){ $lines[$i]=chop($lines[$i]); $zeile=$lines[$i]; $zeile=ereg_replace("\W","",$zeile); $zeile=ereg_replace(" ","",$zeile); $zeile=ereg_replace("(;*)$",";",$zeile); $zeile=ereg_replace("(]*)$","]",$zeile); if ($lines[$i]!="" and $zeile!="" and strlen($zeile)>1 and (!eregi("^(Plugins-included:)",$lines[$i])) and (!eregi("^(X-)",$lines[$i]))) { if (ereg("^(;)", $zeile)) { } else { if ($flg_en==1) { if (!(ereg("^(\[)",$lines[$i]) and ereg("(\])$",$zeile))) { $flg_error++; if ($flg_error==1){ $file=ereg_replace("(\.txt)$","",$file); echo '<b><a href="doku.php?id=langpack:'.$file.'" target="_blank">'.$file.'</a></b><ul>'; } echo "<li> Fehler in Zeile $i: <b>englische</b> La ligne attend ->".$lines[$i].'<-</li>'; } else{$flg_en=0;} } else { if ((ereg("^(\[)",$lines[$i]) and ereg("(\])$",$zeile))) { $flg_error++; if ($flg_error==1){ $file=ereg_replace("(\.txt)$","",$file); echo '<b><a href="doku.php?id=langpack:'.$file.'" target="_blank">'.$file.'</a></b><ul>'; } echo "<li> Erreur dans la ligne $i: <b>french</b> la ligne attend ->".$lines[$i].'<-</li>'; } else{$flg_en=1;} } // else } }// end if } // end for if ($flg_error>0){echo '</ul>';} return ($flg_error);} // end func