Pådje po verifyî l' ortografeye d' on tecse e walon

Scripe: /var/www/walon/coridjoe/index.php ( côde sourdant )

Tecse a verifyî:

( hunspell)

Côde sourdant PHP:

<?php
// 2002-10-10 by Chris Snyder
// this script uses aspell, but not the internal php spelling functions which are somewhat crippled by only being able to check words, not whole documents (as of ~php 4.2.2)
// requires that aspell be installed and working at /usr/local/bin/aspell -- see http://aspell.sourceforge.net/

// 2003-01-19 -- updated tempfile to use PHP's tempfile creation mech., also bumped year
// 2003-01-24 -- fixed bug that caused improper handling of words with no suggested corrections (thanks, Dekeyzer Stephane!)
// 2003-05-06 -- fixed a bug causing bad things to happen when multiple instances of incorrect words were found on any given line  (thanks, Dallas Brown!)
//             -- also fixed script so that $opener and $closer work for custom labeling of errors (thanks again, Dallas Brown!)
// 2004-03-29 -- Adaptaedje pol walon pa Pablo Saratxaga <pablo@walon.org>
// 2016-02-20 -- Adaptaedje po hunspell pa Pablo Saratxaga <pablo@walon.org>
//         (hunspell in ispell compatibility mode (-a switch) does a very bad suggestion; and in native pipe mode it sends
//         some extra lines, that should be filtered out to get an output this scripts understands)
//         Also, in UTF-8 hunspell still returns *byte* indexes (while aspell returns character positions); so substr/mb_substr
//         have to be used depending on what we want to use, bytes or characters. 
//

/*
spellcheck.php -- aspell-based spellchecker implemented in PHP
Copyright (C) 2003 by Chris Snyder (csnyder@chxo.com)
    
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/

$text$_POST["text"];
$showsource$_GET['showsource'];

//
// file paths and the aspell command have moved down below line 58
//

// show source code part I
if ($showsource$sourceinfo"Scripe: $_SERVER[SCRIPT_FILENAME] ( <a href='#source'>côde sourdant</a> )";
else 
$sourceinfo"<a href='$_SERVER[SCRIPT_NAME]?showsource=1#source'>Vey li côde sourdant PHP</a>";
if (
trim($text)!="") {
    
$showsource0;
    
$sourceinfo"";
    }

print 
"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'
'http://www.w3.org/TR/html401/loose.dtd'>
<html lang=wa>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<meta http-equiv='Content-Language' content='text/html; language=wa'>
<title>
$uripath</title>
<style type='text/css'>
    body { font-family: Verdana, Geneva, sans-serif; font-size: 12px; line-height: 18px; background-color: #ffffdd;}
    table { font-family: Verdana, Geneva, sans-serif; font-size: 12px; }
    .heading { font-size: 12px; font-weight: bold; background-color: #666677; color: #dddddd; border: 1px; border-style: solid; }
    .oddrow { background-color: #ffffff; }
    .evenrow { background-color: #eeffee; }
</style>
</head>
<body>
<h1>Pådje po verifyî l'&nbsp;ortografeye d'&nbsp;on tecse e walon</h1>
<p>
$sourceinfo</p>";

$text stripslashes(stripslashes($text)); // boo
// if text+check is supplied, first open and create $temptext, then spell check
if (trim($text)!="" && ($_POST['submit']=="verifyî" || $_POST['submit']=="riverifyî")) {
    
    
// HERE'S WHERE YOU MIGHT NEED TO CHANGE FILE PATHS, etc.
    //
    // set up some vars and create a tempfile
    // tempnam() is a PHP function that creates a unique tempfile in the specified path,
    //    with the specified prefix
    
$temptexttempnam("/tmp""spelltext");
    
    
// if you spellcheck alot of HTML, add the -H flag to aspell to put it in SGML mode
    
$aspellcommand"cat $temptext | /usr/bin/aspell --encoding=utf-8 --lang=wa -H -a";
    
$hunspellcommand"cat $temptext | /usr/bin/hunspell -i utf-8 -d wa_BE -H";
    if (
$_POST['hunspell'] == "hunspell") {
        
$hunspell "hunspell";
        
$spellcommand $hunspellcommand;
        
$hunspellhack true;
        
$hunspellchecked "checked";
        
$mysubstr substr
        
$mystrlen strlen
    } else {
        
$spellcommand $aspellcommand;
        
$hunspellhack false;
        
$hunspellchecked "";
        
$mysubstr mb_substr
        
$mystrlen mb_strlen
    }

    
// these three determine how errors are flagged ($indicator is a description of what $opener and $closer do)
    
$indicator"cråssès letes";
    
$opener"<b>";
    
$closer"</b>";
    
//
    // END OF CONFIGURATION


    
if ($fd=fopen($temptext,"w")) {
        
$textarrayexplode("\n",$text);
        
fwrite($fd,"!\n");
        foreach(
$textarray as $key=>$value) {
            
// adding the carat to each line prevents the use of aspell commands within the text...
            
fwrite($fd,"^$value\n");
            }
        
fclose($fd);
        
        
// next create tempdict and temprepl (skipping for now...)
        
        // next run aspell
        
$returnshell_exec($spellcommand);

    
// hunspell returns strange things (extra lines with only an asterisk)
    
if ($hunspellhack$return preg_replace("/\*\n/"""$return);

    
// now unlink that tempfile
    
$ureturnunlink($temptext);
        
        
//next parse $return and $text line by line, eh?
        
$returnarrayexplode("\n",$return);
    
// hunspell hack returns extra line after version line, remove it
    
if ($hunspellhack) { unset($returnarray[1]); };
    
$returnlinescount($returnarray);
        
$textlinescount($textarray);
        
        
//print "text has $textlines lines and return has $returnlines lines.";
        
$lineindex= -1;
        
$poscorrect0;
        
$counter0;
        foreach(
$returnarray as $key=>$value) {
            
// if there is a correction here, processes it, else move the $textarray pointer to the next line
            
if (mb_substr($value,0,1)=="&") {
                
//print "Line $lineindex correction:".$value."<br>";
                
$correctionexplode(" ",$value);
                
$word$correction[1];
        
$abspositionmb_substr($correction[3],0,-1)-1;
                
$position$absposition+$poscorrect;
                
$niceposition$lineindex.",".$absposition;
                
$suggstartmb_strpos($value,":")+2;
                
$suggestionsmb_substr($value,$suggstart);
                
$suggestionarrayexplode(", ",$suggestions);
                
//print "I found <b>$word</b> at $position. Will suggest $suggestions.<br>";
                
                // highlight in text
                
$beforeword$mysubstr($textarray[$lineindex],0,$position);
                
$afterword$mysubstr($textarray[$lineindex],$position+$mystrlen($word));
                
$textarray[$lineindex]= $beforeword."$opener$word$closer".$afterword;
                
                
// kludge for multiple words in one line ("<b></b>" adds 7 chars to subsequent positions, for instance)
                
$poscorrect$poscorrect+strlen("$opener$closer");
                
                
// build the correction form
                
$counter$counter+1;
                
$formbody.= "<tr>
                                <td align='right'>
$word</td>
                                <td>
                                    <input type='hidden' name='position
$counter' value='$niceposition'>
                                    <input type='hidden' name='incorrect
$counter' value=\"$word\">
                                    <select name='suggest
$counter' onChange=\"document.corrector.correct$counter.value=this.value;\">
                                    <option value=\"
$word\" selected>$word (el wårder)</option>
                                    "
;
                foreach (
$suggestionarray as $key=>$value) {
                    
$formbody.= "<option value=\"$value\">$value</option>
                                "
;
                    }
                
$inputlen$mystrlen($word)+5;
                
$formbody.= "<option value=''>a vosse môde:</option>
                                    </select>
                                    <input type='text' name='correct
$counter' value=\"$word\" size='$inputlen'>
                                </td>
                              </tr>"
;
                }
                
            elseif (
mb_substr($value,0,1)=="#") {
                
//print "Line $lineindex unknown:".$value."<br>";
                
$correctionexplode(" ",$value);
                
$word$correction[1];
                
$absposition$correction[2] - 1;
                
$position$absposition+$poscorrect;
                
$niceposition$lineindex.",".$absposition;
                
$suggestions"pont d'&nbsp;sudjestions";
                
$suggestionarrayexplode(", ",$suggestions);
                
//print "I found <b>$word</b> at $position. Will suggest $suggestions.<br>";
                
                // highlight in text
                
$beforeword$mysubstr($textarray[$lineindex],0,$position);
                
$afterword$mysubstr($textarray[$lineindex],$position+$mystrlen($word));
                
$textarray[$lineindex]= $beforeword."$opener$word$closer".$afterword;
                
                
// kludge for multiple words in one line ("<b></b>" adds 7 chars to subsequent positions)
                
$poscorrect$poscorrect+strlen("$opener$closer");
                
                
// build the correction form
                
$counter$counter+1;
                
$formbody.= "<tr>
                                <td align='right'>
$word</td>
                                <td>
                                    <input type='hidden' name='position
$counter' value='$niceposition'>
                                    <input type='hidden' name='incorrect
$counter' value=\"$word\">
                                    <select name='suggest
$counter' onChange=\"document.corrector.correct$counter.value=this.value;\">
                                    <option value=\"
$word\" selected>$word (el wårder)</option>
                                    "
;
                
$inputlen$mystrlen($word)+3;
                
$formbody.= "<option value=''>a vosse môde:</option>
                                    </select>
                                    <input type='text' name='correct
$counter' value=\"$word\" size='$inputlen'>
                                </td>
                              </tr>"
;
                }
                
            else {
                
//print "Done with line $lineindex, next line...<br><br>";
                
$poscorrect=0;
                
$lineindex$lineindex+1;
                }
            }
        }
    print 
"<hr>Tecse nén coridjî (avou les possibès flotches e $opener$indicator$closer):<blockquote>";
    foreach (
$textarray as $key=>$value) {
        print 
$value."<br>";
        }
    print 
"</b><!-- comment catcher --></blockquote>";
        
    
$htmltextstripslashes(htmlentities($text));
    if (
$formbody==""$formbody"<tr><td>&nbsp;</td><td><br><b>Nole flotche!</b><br><br>&nbsp;</td></tr>";
    print 
"<hr><h3>Menus di coridjaedje:</h3>
    <p>Clitchîz so «coridjî» po raler sol boesse di tecse tot fjhant les
    coridjaedjes tchoezis;<br>ou so «rifé menus» po rmete les valixhances
    di dvant.</p>
    <form name='corrector' action='index.php' method='post'>
    <input type='hidden' name='text' value=\"
$htmltext\">
    <table>
    
$formbody
    <tr>
      <td>&nbsp;</td>
      <td><input type='submit' name='submit' value='coridjî'>
          <input type='reset' name='reset' value='rifé menus'>
          <input type='hidden' name='hunspell' value='
$hunspell' >
      </td>
    </tr>
    </table>
    </form>"
;
    
    
//print "<hr>Return:".nl2br($return);
    
}
    
// or if text+correct is specified, make the indicated corrections
elseif (trim($text)!="" && $_POST['submit']=="coridjî") {
    if (
$_POST['hunspell'] == "hunspell") {
        
$hunspell "hunspell";
        
$hunspellchecked "checked";
        
$mysubstr substr
        
$mystrlen strlen
    } else {
        
$hunspellchecked "";
        
$mysubstr mb_substr
        
$mystrlen mb_strlen
    }
    
$textarrayexplode("\n",$text);
    
    
$index1;
    
$lastlineindex0;
    
$poscorrect0;
    
    
// look through list of positions and make corrections
    
while (isset($_POST["position$index"])) {
        
$positionarrayexplode(",",$_POST["position$index"]);
        
$lineindex$positionarray[0];
        
$absposition$positionarray[1];
        
        if (
$lastlineindex==$lineindex) {
            
$position$absposition+$poscorrect;
            }
        else {
            
$poscorrect0;
            
$position$absposition;
            }
        
$lastlineindex$lineindex;   
        
$correct stripslashes(stripslashes($_POST["correct$index"]));
        
$incorrect stripslashes(stripslashes($_POST["incorrect$index"]));
        
//print "Found correction at $lineindex,$absposition. Replacing ";
        
        
$before$mysubstr($textarray[$lineindex],0,$position);
        
$after$mysubstr($textarray[$lineindex],$position+$mystrlen($incorrect));
        
$textarray[$lineindex]= $before.$correct.$after;
        
        
$poscorrect= ($mystrlen($correct)-$mystrlen($incorrect))+$poscorrect;
        
// print "Position correction is now $poscorrect.<br>";
        
$index$index+1;
        }
    
    
//print "Original text:<br>";
    //print nl2br($text);
    //print "<hr>";
    
    
foreach ($textarray as $key=>$value) {
        
$newtext.=$value;
        }
    
$newtext stripslashes(stripslashes($newtext));
    print 
"
    <form action='index.php' method='post'>
        <h3>Vosse tecse coridjî:</h3><br>
        <textarea name='text' cols='60' rows='10'>
$newtext</textarea><br>
        (<input type='checkbox' name='hunspell' 
$hunspellchecked value='hunspell'> hunspell)
        <input type='submit' name='submit' value='riverifyî'> | <a href='index.php'>Netyî/Renonder</a> | <a href='index.php?showsource=1#source'>Mostrer l'&nbsp;côde sourdant</a>
    </form>"
;
    }
    
// otherwise, show the initial form
else {
    
$newtext stripslashes($newtext);    
    print 
"
    <form action='index.php' method='post'>
        Tecse a verifyî:<br>
        <textarea name='text' cols='60' rows='10'>
$newtext</textarea><br>
        (<input type='checkbox' name='hunspell' 
$hunspellchecked value='hunspell'> hunspell)
        <input type='submit' name='submit' value='verifyî'>
    </form>"
;
    }
    
// show source code part II
if ($showsource) {
    print 
"<hr><a name='source'> </a><h1>Côde sourdant PHP:</h1>";
    
$voidshow_source($_SERVER['SCRIPT_FILENAME']);
    }
        
print 
"
<hr>
spellcheck.php Copyright © 2003 pa Chris Snyder; ratournaedje e walon 2004-2006 Pablo Saratxaga
; adaptaedje po hunspell 2016 Pablo Saratxaga<br>
Ci programe ci vént SINS NOLE  WAERANTEYE.  Çouchal, c'&nbsp;est on libe
programe; vos l' poloz bén spåde et vos l' poloz bén candjî tot shuvant
li <a href='http://www.gnu.org/licenses/gpl.html'>Licince Publike Djeneråle
(GPL) di GNU</a>.
<hr>
    <a href='http://validator.w3.org/check?uri=referer'><img
        src='http://www.w3.org/Icons/valid-html401'
        alt='Valid HTML 4.01 Transitional' height='31' width='88'></a>
    <a href='http://6bone.informatik.uni-leipzig.de/ipv6/stats/stats.php3'><img
        src='http://6bone.informatik.uni-leipzig.de/ipv6/stats/log.php3?URL=sushi.walon.org&amp;ImageId=4&amp;AltV4=6' alt=''></a>
</body>
</html>"
;
?>

spellcheck.php Copyright © 2003 pa Chris Snyder; ratournaedje e walon 2004-2006 Pablo Saratxaga ; adaptaedje po hunspell 2016 Pablo Saratxaga
Ci programe ci vént SINS NOLE WAERANTEYE. Çouchal, c' est on libe programe; vos l' poloz bén spåde et vos l' poloz bén candjî tot shuvant li Licince Publike Djeneråle (GPL) di GNU.
Valid HTML 4.01 Transitional