hi, it was already a long time ago I made this, see here the whole changed wdsoft.txt. Now I see I changed more, not so strange because it took me some evenings. when I have more time, I think I would do it different: translate after all the calculations are done.
But as I told you I am not the programmer, I just like to show the forecast in Dutch.
regards,
gerard
<?php
require("config.php");
# CREDIT - DO NOT REMOVE WITHOUT PERMISSION
# WX-SIM Online Forecast Display
# VERSION 1.16
# Author: Jordan Gerth
# Last modified: 01/05/2007
# Dutch translation by Gerard van 't Klooster
# last modified 03/21/2007
# Documentation:
http://www.wiscwx.com/jordan/wsofd/index.html# If you find this script useful, please consider a donation.
#####################################
?>
<?php
$ptf = @fopen( $slplaintxt, "r" ) or die("Error opening the plain text forecast. It may not exist or does not have read permissions.");
$wdt = @fopen( $slwxtypdat, "r" ) or die("Error opening the weather type file. It may not exist or does not have read permissions.");
$prc = @fopen( $slprecipam, "r" ) or die("Error opening the fallen precip file. It may not exist or does not have read permissions.");
while (!feof($ptf)) {
$tfc .= fgets($ptf, 1024);
}
fclose($ptf);
$txtforecast = str_replace("\r", "\n", str_replace("\r\n", "\n", $tfc));
$header = substr($txtforecast, 0, strpos($txtforecast, "\n "));
$header = str_replace( 'WXSIM text forecast for Doornenburg, initialized at', 'WXSIM tekst voorspelling voor Doornenburg weerstation, gemaakt op', $header);
$cstrst = substr($txtforecast, strpos($txtforecast, "__\n \n ") + 6);
$endtxt = strpos($cstrst, "\n * T");
$cstbdy = substr($cstrst, 0, $endtxt - 2);
if ($endtxt !== false) {
$footer = substr($cstrst, $endtxt + 2);
} else {
$footer = "Deze voorspelling is gemaakt met plaatselijke informatie en kan afwijken van de werkelijkheid.";
}
$castpd = explode("\n \n ", $cstbdy);
while (!feof($wdt)) {
$wxls .= fgets($wdt, 1024);
}
fclose($wdt);
$eachtype = explode("\n", $wxls);
for ($j=0; $j<count($eachtype); $j++) {
$oneline = explode("!", $eachtype[$j]);
$wxtype[$j] = $oneline[0];
if (strlen($oneline[0]) < 2) {
$oneline[0] = " ";
}
if (strlen($oneline[1]) < 2) {
$oneline[1] = "na";
}
$wxfldy[$j] = $oneline[1];
if (strlen($oneline[2]) < 2) {
$oneline[2] = "na";
}
$wxflnt[$j] = $oneline[2];
$wxflwd[$j] = $oneline[3];
}
while (!feof($prc)) {
$amln .= fgets($prc, 1024);
}
fclose($prc);
$eachamnt = explode("\n", $amln);
for ($p=0; $p<count($eachamnt); $p++) {
$pamount = explode("!", $eachamnt[$p]);
$pamfind[$p] = $pamount[0];
$pamshow[$p] = $pamount[1];
}
$kcounter = 0;
for ($k=0; $k<count($castpd); $k++) {
$spltcln = explode(":", $castpd[$k]);
$pdname = str_replace(' night', ' Night', $spltcln[0]);
$pdname = str_replace(' afternoon', ' Afternoon', $spltcln[0]);
$pdverb = str_replace("\n", "", $spltcln[1]);
$pdverb = str_replace('Cloudy in the morning', 'Bewolkt in de morgen', $pdverb);
$pdverb = str_replace('becoming', 'overgaand in ', $pdverb);
$pdverb = str_replace('dense overcast', 'dichte bewolking', $pdverb);
$pdverb = str_replace('then', 'dan', $pdverb);
$pdverb = str_replace('the', 'de', $pdverb);
$pdverb = str_replace('afternoon', 'middag', $pdverb);
$pdverb = str_replace('cloudy', 'bewolkt', $pdverb);
$pdverb = str_replace('Patchy', 'Gedeeltelijk', $pdverb);
$pdverb = str_replace('slight', 'kleine', $pdverb);
$pdverb = str_replace('light', 'lichte', $pdverb);
$pdverb = str_replace('fog', 'mist', $pdverb);
$pdverb = str_replace('Partly', 'Gedeeltelijk', $pdverb);
$pdverb = str_replace('to', 'tot', $pdverb);
$pdverb = str_replace('gusting', 'windvlagen', $pdverb);
$pdverb = str_replace('mostly', 'overwegend', $pdverb);
$pdverb = str_replace('after', 'na', $pdverb);
$pdverb = str_replace('midnight', 'middernacht', $pdverb);
$pdverb = str_replace('morning', 'morgen', $pdverb);
$pdverb = str_replace('Mostly', 'Overwegend', $pdverb);
$pdverb = str_replace('partly', 'gedeeltelijk', $pdverb);
$pdverb = str_replace('Light', 'Lichte', $pdverb);
$pdverb = str_replace('moderate', 'matige', $pdverb);
$pdverb = str_replace('evening', 'avond', $pdverb);
$pdverb = str_replace('Dense', 'Dichte', $pdverb);
$pdverb = str_replace('overcast', 'bewolking', $pdverb);
$pdverb = str_replace('Moderate', 'Matige', $pdverb);
$pdverb = str_replace('dense', 'dichte', $pdverb);
$pdverb = str_replace('sunny', 'zonnig', $pdverb);
$pdverb = str_replace('Rain likely', 'Grote kans op regen', $pdverb);
$pdverb = str_replace('rain', 'regen', $pdverb);
$pdverb = str_replace('A', 'Een', $pdverb);
$pdverb = str_replace('chance of', 'kans op', $pdverb);
$pdverb = str_replace('High', 'Maximum:', $pdverb);
$pdverb = str_replace('Low', 'Minimum :', $pdverb);
$pdverb = str_replace('but', 'maar', $pdverb);
$pdverb = str_replace('temperatures falling', 'temperatuur daalt', $pdverb);
$pdverb = str_replace('temperatures rising', 'temperatuur stijgt', $pdverb);
$pdverb = str_replace('north', 'noord', $pdverb);
$pdverb = str_replace('nordeast', 'noordoost', $pdverb);
$pdverb = str_replace('east-', 'oost-', $pdverb);
$pdverb = str_replace('down ', 'daalt ', $pdverb);
$pdverb = str_replace('or ', 'of ', $pdverb);
$pdverb = str_replace('east ', 'oost ', $pdverb);
$pdverb = str_replace('southeast', 'zuidoost', $pdverb);
$pdverb = str_replace('southwest', 'zuidwest', $pdverb);
$pdverb = str_replace('south ', 'zuid ', $pdverb);
$pdverb = str_replace('south-', 'zuid-', $pdverb);
$pdverb = str_replace('around', 'rond', $pdverb);
$pdverb = str_replace('kph', 'km/uur', $pdverb);
$pdverb = str_replace('Chance of precipitation', 'Kans op neerslag', $pdverb);
$pdverb = str_replace('near', 'bijna', $pdverb);
$pdverb = str_replace('percent', 'procent', $pdverb);
$pdverb = str_replace('less than', 'minder dan', $pdverb);
$pdverb = str_replace('snow', 'sneeuw', $pdverb);
$pdverb = str_replace('Precipitation (liquid equivalent)', 'Neerslag (gesmolten)', $pdverb);
$pdverb = str_replace('between', 'tussen', $pdverb);
$pdverb = str_replace('and', 'en', $pdverb);
$pdverb = str_replace('Precipitation', 'Neerslag', $pdverb);
$pdverb = str_replace('accumulation expected', 'ophoping verwacht', $pdverb);
$pdverb = str_replace('Little', 'Weinig', $pdverb);
$pdverb = str_replace('no ', 'geen ', $pdverb);
$pdverb = str_replace('snow ', 'sneeuw ', $pdverb);
$pdverb = str_replace('Snow accumulation', 'Sneeuw ophoping ', $pdverb);
$pdverb = str_replace('about', 'ongeveer', $pdverb);
$pdverb = str_replace('one', '1', $pdverb);
$pdverb = str_replace('overgaen', 'overgaand', $pdverb);
$pdverb = str_replace('soudoost', 'zuidoost', $pdverb);
$pdverb = str_replace('showery of intermittent', 'afwisselend droog met buien', $pdverb);
$pdverb = str_replace('No ', 'Geen ', $pdverb);
$pdverb = str_replace('Fair ', 'Bijna geen bewolking ', $pdverb);
$pdverb = str_replace('Cloudy', 'Bewolkt', $pdverb);
$pdverb = str_replace('calm', 'kalm', $pdverb);
$pdverb = str_replace('Clear', 'Helder', $pdverb);
$pdverb = str_replace('clear', 'helder', $pdverb);
$pdverb = str_replace('Sunny', 'Zonnig', $pdverb);
$pdverb = str_replace('dan a', 'dan een', $pdverb);
$pdverb = str_replace('ice', 'ijs', $pdverb);
$pdverb = str_replace('freezing', 'bevriezende', $pdverb);
$pdverb = str_replace('sleet', 'natte sneeuw', $pdverb);
$pdverb = str_replace('a mix of', 'een mix van', $pdverb);
$pdverb = str_replace('if any', 'tot geen', $pdverb);
$pdverb = str_replace('on ground', 'op de grond', $pdverb);
$pdverb = str_replace('patchy', 'gedeeltelijk', $pdverb);
$pdverb = str_replace('Thunderstotrms likely, some possibly severe.', 'Kans op (zware) onweersbuien.', $pdverb);
$pdverb = str_replace('Some thunder possible.', 'Kans op onweer. ', $pdverb);
$pdverb = str_replace('Some thunderstotrms likely', 'Kans op onweersbuien ', $pdverb);
$lwrpdvb = strtolower($pdverb);
#
# TRANSLATION DAYS IN DUTCH
# WX-SIM Online Forecast Display
# VERSION 1.12, revision A
# Author: Jordan Gerth
#
$pdname = str_replace('Sunday', 'Zondag', $pdname);
$pdname = str_replace('Monday', 'Maandag', $pdname);
$pdname = str_replace('Tuesday', 'Dinsdag', $pdname);
$pdname = str_replace('Wednesday', 'Woensdag', $pdname);
$pdname = str_replace('Thursday', 'Donderdag', $pdname);
$pdname = str_replace('Friday', 'Vrijdag', $pdname);
$pdname = str_replace('Saturday', 'Zaterdag', $pdname);
$pdname = str_replace('Today', 'Vandaag', $pdname);
$pdname = str_replace('Tonight', 'Vannacht', $pdname);
$pdname = str_replace('afternoon', 'vanmiddag', $pdname);
$pdname = str_replace('night', 'nacht', $pdname);
if (strlen($pdname) < 2) {
break;
}
$daypd = 0;
$gtpos = strpos($pdname, 'acht');
if ($gtpos === false) {
$daypd = 1;
}
$trenda = "";
$hghpos = strpos($pdverb, 'Maximum:');
if ($hghpos === false) {
$lowpos = strpos($pdverb, 'Minimum : ');
$maxmin = substr($pdverb, $lowpos + 10, strpos($pdverb, '. ', $lowpos) - $lowpos - 10);
} else {
$maxmin = substr($pdverb, $hghpos + 9, strpos($pdverb, '. ', $hghpos) - $hghpos - 9);
}
if (strlen($maxmin) > 4) {
if ($hghpos === false) {
$maxmin = substr($pdverb, $lowpos + 10, strpos($pdverb, ', maar ', $lowpos) - $lowpos - 10);
$fllpos = strpos($pdverb, 'temperatuur stijgt');
if ($fllpos !== false) {
$trenda = "\n".'<img src="'.$imglnkloc.'rising.gif" width="15" height="15" alt="Rising">';
}
} else {
$maxmin = substr($pdverb, $hghpos + 9, strpos($pdverb, ', maar ', $hghpos) - $hghpos - 9);
$fllpos = strpos($pdverb, 'temperatuur daalt');
if ($fllpos !== false) {
$trenda = "\n".'<img src="'.$imglnkloc.'falling.gif" width="15" height="15" alt="Falling">';
}
}
}
$pcppos = strpos($pdverb, 'Kans op neerslag ');
if ($pcppos === false) {
# hier zit nog ergens een grote fout
$percntg = 0;
$pladd = "";
} else {
$percntg = str_replace("bijna 100", "100", str_replace("minder dan", "<", substr($pdverb, $pcppos + 17, strpos($pdverb, 'procent', $pcppos) - $pcppos - 17)));
#dmprca = count($pamfind);
#$ppnum = 0;
#while ($ppnum < $dmprca) {
# $pppos = strpos($lwrpdvb, strtolower($pamfind[$ppnum]));
#if ($pppos === false) {
# $ppnum++;
# } else {
# break;
# }
#}
# $pladd = '<br><small>'.$pamshow[$ppnum].'</small>';
# if (strlen($pladd) < 11) {
# $pladd = "";
# }
# } else {
# $pladd = "";
#}
}
$lkpos = strpos($lwrpdvb, "waarschijnlijk");
$chpos = strpos($lwrpdvb, "kans op");
$dmwxty = count($wxtype);
$wxnum = 0;
while ($wxnum < $dmwxty) {
$wxpos = strpos($lwrpdvb, strtolower($wxtype[$wxnum]));
if ($wxpos === false) {
$wxnum++;
} else {
break;
}
}
$cellwidth = $imgwidth + 10;
$daytitle[$k]="\n";
$daytitle[$k].='<td bgcolor="'.$pdbgdclr.'" width="'.$cellwidth.'" align="center"><b><font face="'.$fontface.'" color="'.$pdtxtclr.'" size="-1">';
$daytitle[$k].=$pdname;
$daytitle[$k].='</font></b></td>';
$daypictu[$k]="\n";
$daypictu[$k].='<td bgcolor="'.$imgbackg.'" width="'.$cellwidth.'" align="center">';
if ($daypd == '0') {
$daypictu[$k].='<img src="'.$imglnkloc.$wxflnt[$wxnum].$imglnktyp.'" width="'.$imgwidth.'" height="'.$imgheight.'" alt="'.$wxflwd[$wxnum].'">';
} else {
$daypictu[$k].='<img src="'.$imglnkloc.$wxfldy[$wxnum].$imglnktyp.'" width="'.$imgwidth.'" height="'.$imgheight.'" alt="'.$wxflwd[$wxnum].'">';
};
$daypictu[$k].='</td>';
if ($lkpos !== false) {
$dayverbi[$k]=$wxflwd[$wxnum].' waarschijnlijk';
} elseif ($chpos !== false) {
$dayverbi[$k]='Kans op '.$wxflwd[$wxnum];
} else {
$dayverbi[$k]=$wxflwd[$wxnum];
}
$daytempr[$k]="\n";
if ($daypd == '0') {
$daytempr[$k].='<td bgcolor="'.$lowcolor.'" width="'.$cellwidth.'" align="center">';
} else {
$daytempr[$k].='<td bgcolor="'.$hghcolor.'" width="'.$cellwidth.'" align="center">';
};
$daytempr[$k].='<font face="'.$fontface.'" color="'.$fontcolr.'" size="+1">';
$daytempr[$k].=$maxmin.'°'.$trenda;
$daytempr[$k].='</font></td>';
$dayprecp[$k]="\n";
$dayprecp[$k].='<td bgcolor="'.$pcpcolor.'" width="'.$cellwidth.'" align="center"><font face="'.$fontface.'" size="+1">';
if ($percntg >= $boldpcp) {
$dayprecp[$k].='<b>';
}
$dayprecp[$k].=$percntg.'%';
if ($percntg >= $boldpcp) {
$dayprecp[$k].='</b>';
}
$dayprecp[$k].=$pladd;
$dayprecp[$k].='</font></td>';
$dayreman[$k]="\n";
$dayreman[$k].='<td bgcolor="'.$verbibgd.'" width="'.$verbiwid.'"><font face="'.$fontface.'" color="'.$fontcolr.'" size="-1">';
$dayreman[$k].=$pdverb;
$dayreman[$k].='</font></td>';
$kcounter = $k;
}
if ($horizmax > $kcounter) {
$horizmax = $kcounter;
}
$htbwidth = ($horizmax * (($imgwidth + 10) + 2)) + 2;
$vrtwidth = (($imgwidth + 10) * 4) + 12 + $verbiwid;
?>