--- loncom/interface/londocs.pm	2003/09/17 21:20:15	1.80
+++ loncom/interface/londocs.pm	2003/10/04 20:49:40	1.85
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Documents
 #
-# $Id: londocs.pm,v 1.80 2003/09/17 21:20:15 albertel Exp $
+# $Id: londocs.pm,v 1.85 2003/10/04 20:49:40 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -38,6 +38,7 @@ use Apache::lonxml;
 use Apache::loncreatecourse;
 use HTML::Entities;
 use GDBM_File;
+use Apache::lonlocal;
 
 my $iconpath;
 
@@ -114,10 +115,11 @@ sub dumpbutton {
     my $output='</td><td bgcolor="#DDDDCC">';
     if ($home) {
 	return '</td><td bgcolor="#DDDDCC">'.
-	    '<input type="submit" name="dumpcourse" value="Dump Course DOCS to Construction Space" />';
+	    '<input type="submit" name="dumpcourse" value="'.
+	    &mt('Dump Course DOCS to Construction Space').'" />';
     } else {
 	return'</td><td bgcolor="#DDDDCC">'.
-      'Dump Course DOCS to Construction Space: available on other servers';
+     &mt('Dump Course DOCS to Construction Space: available on other servers');
     }
 }
 
@@ -185,7 +187,7 @@ sub dumpcourse {
 # Input form
 	unless ($home==1) {
 	    $r->print(
-		      '<h3>Select the Construction Space</h3><select name="authorspace">');
+		      '<h3>'.&mt('Select the Construction Space').'</h3><select name="authorspace">');
 	}
 	foreach (sort keys %outhash) {
 	    if ($_=~/^home_(.+)$/) {
@@ -203,9 +205,9 @@ sub dumpcourse {
 	my $title=$origcrsdata{'description'};
 	$title=~s/\s+/\_/gs;
 	$title=~s/\W//gs;
-	$r->print('<h3>Folder in Construction Space</h3><input type="text" size="50" name="authorfolder" value="'.$title.'" /><br />');
+	$r->print('<h3>'.&mt('Folder in Construction Space').'</h3><input type="text" size="50" name="authorfolder" value="'.$title.'" /><br />');
 	&tiehash();
-	$r->print('<h3>Filenames in Construction Space</h3><table border="2"><tr><th>Internal Filename</th><th>Title</th><th>Save as ...</th></tr>');
+	$r->print('<h3>'.&mt('Filenames in Construction Space').'</h3><table border="2"><tr><th>'.&mt('Internal Filename').'</th><th>'.&mt('Title').'</th><th>'.&mt('Save as ...').'</th></tr>');
 	foreach (&Apache::loncreatecourse::crsdirlist($origcrsid,'userfiles')) {
 	    $r->print('<tr><td>'.$_.'</td>');
 	    my ($ext)=($_=~/\.(\w+)$/);
@@ -223,7 +225,7 @@ sub dumpcourse {
 	$r->print("</table>\n");
 	&untiehash();
 	$r->print(
-  '<p><input type="submit" name="dumpcourse" value="Dump Course DOCS" /></p></form>');
+  '<p><input type="submit" name="dumpcourse" value="'.&mt('Dump Course DOCS').'" /></p></form>');
     }
 }
 
@@ -393,7 +395,7 @@ sub entryline {
 	) { 
             $foldertitle=&Apache::lontexconvert::msgtexconverted($4);
             $renametitle=$4;
-            $title='<i>'.localtime($1).'</i> '.
+            $title='<i>'.&Apache::lonlocal::locallocaltime($1).'</i> '.
                 &Apache::loncommon::plainname($2,$3).': <br>'.
 		$foldertitle;
 	}
@@ -498,7 +500,7 @@ sub checkonthis {
                  for (my $i=0;$i<=$level*5;$i++) {
                      $r->print('&nbsp;');
                  }
-                 $r->print('- Rendering: ');
+                 $r->print('- '.&mt('Rendering').': ');
                  my $oldpath=$ENV{'request.filename'};
                  $ENV{'request.filename'}=&Apache::lonnet::filelocation('',$url);
                  &Apache::lonxml::xmlparse($r,'web',
@@ -513,7 +515,8 @@ sub checkonthis {
                      }
 		     if ($Apache::lonxml::warningcount) {
                         $r->print('<font color="blue">'.
-			  $Apache::lonxml::warningcount.' warning(s)</font>');
+			  $Apache::lonxml::warningcount.' '.
+				  &mt('warning(s)').'</font>');
                      }
                  } else {
                      $r->print('<font color="green">ok</font>');
@@ -528,11 +531,11 @@ sub checkonthis {
                  }
              }
           } elsif ($result==HTTP_SERVICE_UNAVAILABLE) {
-             $r->print('<font color="red"><b>connection down</b></font>');
+             $r->print('<font color="red"><b>'.&mt('connection down').'</b></font>');
           } elsif ($result==HTTP_NOT_FOUND) {
-             $r->print('<font color="red"><b>not found</b></font>');
+             $r->print('<font color="red"><b>'.&mt('not found').'</b></font>');
           } else {
-             $r->print('<font color="red"><b>access denied</b></font>');
+             $r->print('<font color="red"><b>'.&mt('access denied').'</b></font>');
           }
       }
    }
@@ -559,7 +562,7 @@ sub verifycontent {
        }
    }
    &untiehash();
-   $r->print('<h1>Done.</h1>');
+   $r->print('<h1>'.&mt('Done').'.</h1>');
 }
 
 # -------------------------------------------------------------- Check Versions
@@ -578,7 +581,8 @@ sub checkversions {
        unless ($ENV{'form.timerange'}) {
 	   $ENV{'form.timerange'}=604800;
        }
-       my $seltext='during the last '.$ENV{'form.timerange'}.' seconds';
+       my $seltext=&mt('during the last').' '.$ENV{'form.timerange'}.' '
+	   .&mt('seconds');
        my $startsel='';
        my $monthsel='';
        my $weeksel='';
@@ -590,31 +594,41 @@ sub checkversions {
        }
        my $starttime=time-$ENV{'form.timerange'};
        if ($ENV{'form.timerange'}==2592000) {
-           $seltext='during the last month ('.localtime($starttime).')';
+           $seltext=&mt('during the last month').' ('.&Apache::lonlocal::locallocaltime($starttime).')';
            $monthsel='selected';
        } elsif ($ENV{'form.timerange'}==604800) {
-           $seltext='during the last week ('.localtime($starttime).')';
+           $seltext=&mt('during the last week').' ('.&Apache::lonlocal::locallocaltime($starttime).')';
            $weeksel='selected';
        } elsif ($ENV{'form.timerange'}==86400) {
-           $seltext='since yesterday ('.localtime($starttime).')';
+           $seltext=&mt('since yesterday').' ('.&Apache::lonlocal::locallocaltime($starttime).')';
            $daysel='selected';
        }
-
+       my %lt=&Apache::lonlocal::texthash
+	      ('st' => 'Since Start of Course',
+	       'lm' => 'Last Month',
+	       'lw' => 'Last Week',
+	       'sy' => 'Since Yesterday',
+	       'di' => 'Display',
+               'cc' => 'Content changed',
+	       'fi' => 'File',
+	       'md' => 'Modification Date',
+	       've' => 'Version',
+	       'di' => 'Differences');
        $r->print(<<ENDHEADERS);
 <form action="/adm/coursedocs" method="post">
 <select name="timerange">
-<option value="-1" $startsel>Since Start of Course</option>
-<option value="2592000" $monthsel>Last Month</option>
-<option value="604800" $weeksel>Last Week</option>
-<option value="86400" $daysel>Since Yesterday</option>
+<option value="-1" $startsel>$lt{'st'}</option>
+<option value="2592000" $monthsel>$lt{'lm'}</option>
+<option value="604800" $weeksel>$lt{'lw'}</option>
+<option value="86400" $daysel>$lt{'sy'}</option>
 </select>
-<input type="submit" name="versions" value="Display" />
+<input type="submit" name="versions" value="$lt{'di'}" />
 </form>
-<h3>Content changed $seltext</h3>
+<h3>$lt{'cc'} $seltext</h3>
 <table border="2">
 <tr>
-<th>File</th><th>Modification Date</th>
-<th>Version</th><th>Differences</th></tr>
+<th>$lt{'fi'}</th><th>$lt{'md'}</th>
+<th>$lt{'ve'}</th><th>$lt{'di'}</th></tr>
 ENDHEADERS
        foreach (keys %changes) {
 	  if ($changes{$_}>$starttime) {
@@ -624,7 +638,7 @@ ENDHEADERS
              $r->print(
                  '<tr><td><a href="'.$linkurl.'" target="cat">'.$linkurl.
                  '</a></td><td>'.
-                 localtime($changes{$_}).'</td><td>'.$currentversion.'</td>'.
+                 &Apache::lonlocal::locallocaltime($changes{$_}).'</td><td>'.$currentversion.'</td>'.
 		       '<td>');
              my $lastold=1;
              for (my $prevvers=1;$prevvers<$currentversion;$prevvers++) {
@@ -637,8 +651,8 @@ ENDHEADERS
             for (my $prevvers=$lastold;$prevvers<$currentversion;$prevvers++) {
                  my $url=$root.'.'.$prevvers.'.'.$extension;
                  $r->print('<a href="'.&Apache::lonnet::clutter($url).
-                   '">Version '.$prevvers.' ('.
-                 localtime(&Apache::lonnet::metadata($url,'lastrevisiondate')).
+                   '">'.&mt('Version').' '.$prevvers.' ('.
+                 &Apache::lonlocal::locallocaltime(&Apache::lonnet::metadata($url,'lastrevisiondate')).
                  ')</a>');
                  if (&Apache::loncommon::fileembstyle($extension) eq 'ssi') {
                     $r->print(' <a href="/adm/diff?filename='.
@@ -652,9 +666,9 @@ ENDHEADERS
           }
        }
        $r->print('</table>');
-       $r->print('<h1>Done.</h1>');
+       $r->print('<h1>'.&mt('Done').'.</h1>');
    } else {
-       $r->print('<p>No content modifications yet.</p>');
+       $r->print('<p>'.&mt('No content modifications yet.').'</p>');
    }
    &untiehash();
 }
@@ -662,10 +676,11 @@ ENDHEADERS
 # ================================================================ Main Handler
 sub handler {
     my $r = shift;
-    $r->content_type('text/html');
+    &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;
     return OK if $r->header_only;
 
+    &Apache::lonlocal::clearreroutetrans();
 # --------------------------------------------- Initialize help topics for this
   foreach ('Adding_Course_Doc','Main_Course_Documents',
            'Adding_External_Resource','Navigate_Content',
@@ -836,6 +851,28 @@ ENDNEWSCRIPT
             &Apache::loncommon::bodytag('Course Documents','',$events,
 					'','',$showdoc));
   unless ($showdoc) {
+# -----------------------------------------------------------------------------
+       my %lt=&Apache::lonlocal::texthash(
+                'uplm' => 'Upload a new main course document',
+                'upls' => 'Upload a new supplemental course document',
+                'impp' => 'Import a published document',
+                'spec' => 'Special documents',
+                'upld' => 'Upload Document',
+                'srch' => 'Search',
+                'impo' => 'Import',
+                'selm' => 'Select Map',
+                'load' => 'Load Map',
+                'newf' => 'New Folder',
+                'extr' => 'External Resource',
+                'syll' => 'Syllabus',
+                'navc' => 'Navigate Contents',
+                'sipa' => 'Simple Page',
+                'sipr' => 'Simple Problem',
+                'scuf' => 'Score Upload Form',
+                'bull' => 'Bulletin Board',
+                'mypi' => 'My Personal Info'
+					  );
+# -----------------------------------------------------------------------------
     if ($allowed) {
        my $dumpbut=&dumpbutton();
        $r->print(<<ENDCOURSEVERIFY);
@@ -864,7 +901,7 @@ ENDCOURSEVERIFY
 # --------------------------------------------------------- Standard documents
     $r->print('<table border=2 cellspacing=4 cellpadding=4>');
     if (($standard) && ($allowed) && (!$forcesupplement)) {
-       $r->print('<tr><td bgcolor="#BBBBBB"><h2>Main Course Documents'.
+       $r->print('<tr><td bgcolor="#BBBBBB"><h2>'.&mt('Main Course Documents').
   ($allowed?' '.$help{'Main_Course_Documents'}:'').'</h2>');
        my $folder=$ENV{'form.folder'};
        unless ($folder=~/^default/) { $folder='default'; }
@@ -880,18 +917,20 @@ ENDCOURSEVERIFY
 	   $r->print(
 '<script>function reinit(tf) { tf.submit();'.$postexec.' }</script>'. 
 '<form method="post" action="/adm/roles" target="loncapaclient">'.
-'<input type="hidden" name="orgurl" value="/adm/coursedocs" /><input type="hidden" name="selectrole" value="1" /><h3><font color="red">Changes will become active for your current session after <input type="hidden" name="'.
-$ENV{'request.role'}.'" value="1" /><input type="button" value="re-initializing course" onClick="reinit(this.form)"/>, or the next time you log in.'.
+'<input type="hidden" name="orgurl" value="/adm/coursedocs" /><input type="hidden" name="selectrole" value="1" /><h3><font color="red">'.
+&mt('Changes will become active for your current session after').
+' <input type="hidden" name="'.
+$ENV{'request.role'}.'" value="1" /><input type="button" value="'.
+&mt('re-initializing course').'" onClick="reinit(this.form)"/>'.&mt(', or the next time you log in.').
 $help{'Caching'}.'</font></h3></form>');
        }
        my $folderseq='/uploaded/'.$coursedom.'/'.$coursenum.'/default_'.time.
                      '.sequence';
-
        $r->print(<<ENDFORM);
 <table cellspacing=4 cellpadding=4><tr>
-<th bgcolor="#DDDDDD">Upload a new main course document</th>
-<th bgcolor="#DDDDDD">Import a published document</th>
-<th bgcolor="#DDDDDD">Special documents</th>
+<th bgcolor="#DDDDDD">$lt{'uplm'}</th>
+<th bgcolor="#DDDDDD">$lt{'impp'}</th>
+<th bgcolor="#DDDDDD">$lt{'spec'}</th>
 </tr>
 <tr><td bgcolor="#DDDDDD">
 File:<br />
@@ -903,7 +942,7 @@ Title:<br />
 <input type="hidden" name="folder" value="$folder">
 <input type="hidden" name="foldername" value="$ENV{'form.foldername'}">
 <input type="hidden" name="cmd" value="upload_default">
-<input type="submit" value="Upload Document">
+<input type="submit" value="$lt{'upld'}">
 <nobr>
  $help{'Uploading_From_Harddrive'}
 </nobr>
@@ -914,10 +953,10 @@ Title:<br />
 <input type="hidden" name="folder" value="$folder">
 <input type="hidden" name="foldername" value="$ENV{'form.foldername'}">
 <input type=button onClick=
-"javascript:document.forms.simpleedit.folder.value='$folder';groupsearch()" value="Search">
+"javascript:document.forms.simpleedit.folder.value='$folder';groupsearch()" value="$lt{'srch'}">
 <nobr>
 <input type=button onClick=
-"javascript:document.forms.simpleedit.folder.value='$folder';groupimport();" value="Import">
+"javascript:document.forms.simpleedit.folder.value='$folder';groupimport();" value="$lt{'impo'}">
 $help{'Importing_LON-CAPA_Resource'}
 </nobr>
 <p>
@@ -925,7 +964,7 @@ $help{'Importing_LON-CAPA_Resource'}
 <input type="text" size="20" name="importmap"><br />
 <nobr><input type=button 
 onClick="javascript:openbrowser('simpleeditdefault','importmap','sequence,page','')"
-value="Select Map"> <input type="submit" name="loadmap" value="Load Map">
+value="$lt{'selm'}"> <input type="submit" name="loadmap" value="$lt{'load'}">
 $help{'Load_Map'}</nobr>
 </p>
 </form>
@@ -937,7 +976,7 @@ $help{'Load_Map'}</nobr>
 <nobr>
 <input name="newfolder" type="button"
 onClick="javascript:makenewfolder(this.form,'$folderseq');"
-value="New Folder" />$help{'Adding_Folders'}
+value="$lt{'newf'}" />$help{'Adding_Folders'}
 </nobr>
 </form>
 <form action="/adm/coursedocs" method="post" name="newext">
@@ -946,7 +985,7 @@ value="New Folder" />$help{'Adding_Folde
 <input type=hidden name="importdetail" value="">
 <nobr>
 <input name="newext" type="button" onClick="javascript:makenewext('newext');"
-value="External Resource" /> $help{'Adding_External_Resource'}
+value="$lt{'extr'}" /> $help{'Adding_External_Resource'}
 </nobr>
 </form>
 <form action="/adm/coursedocs" method="post" name="newsyl">
@@ -955,7 +994,7 @@ value="External Resource" /> $help{'Addi
 <input type=hidden name="importdetail" 
 value="Syllabus=/public/$coursedom/$coursenum/syllabus">
 <nobr>
-<input name="newsyl" type="submit" value="Syllabus" /> 
+<input name="newsyl" type="submit" value="$lt{'syll'}" /> 
  $help{'Syllabus'}
 </nobr>
 </form>
@@ -965,7 +1004,7 @@ value="Syllabus=/public/$coursedom/$cour
 <input type=hidden name="importdetail" 
 value="Navigate Content=/adm/navmaps">
 <nobr>
-<input name="newnav" type="submit" value="Navigate Content" />
+<input name="newnav" type="submit" value="$lt{'navc'}" />
 $help{'Navigate_Content'}
 </nobr>
 </form>
@@ -974,7 +1013,7 @@ $help{'Navigate_Content'}
 <input type="hidden" name="foldername" value="$ENV{'form.foldername'}">
 <input type=hidden name="importdetail" value="">
 <nobr>
-<input name="newsmppg" type="button" value="Simple Page"
+<input name="newsmppg" type="button" value="$lt{'sipa'}"
 onClick="javascript:makesmppage();" /> $help{'Simple Page'}
 </nobr>
 </form>
@@ -983,7 +1022,7 @@ onClick="javascript:makesmppage();" /> $
 <input type="hidden" name="foldername" value="$ENV{'form.foldername'}">
 <input type=hidden name="importdetail" value="">
 <nobr>
-<input name="newsmpproblem" type="button" value="Simple Problem"
+<input name="newsmpproblem" type="button" value="$lt{'sipr'}"
 onClick="javascript:makesmpproblem();" />$help{'Simple Problem'}
 </nobr>
 </form>
@@ -992,7 +1031,7 @@ onClick="javascript:makesmpproblem();" /
 <input type="hidden" name="foldername" value="$ENV{'form.foldername'}">
 <input type=hidden name="importdetail" value="">
 <nobr>
-<input name="newexamupload" type="button" value="Score Upload Form"
+<input name="newexamupload" type="button" value="$lt{'scuf'}"
 onClick="javascript:makeexamupload();" />
 $help{'Score_Upload_Form'}
 </nobr>
@@ -1002,7 +1041,7 @@ $help{'Score_Upload_Form'}
 <input type="hidden" name="foldername" value="$ENV{'form.foldername'}">
 <input type=hidden name="importdetail" value="">
 <nobr>
-<input name="newbulletin" type="button" value="Bulletin Board"
+<input name="newbulletin" type="button" value="$lt{'bull'}"
 onClick="javascript:makebulboard();" />
 $help{'Bulletin Board'}
 </nobr>
@@ -1013,7 +1052,7 @@ $help{'Bulletin Board'}
 <input type=hidden name="importdetail" 
 value="$plainname=/adm/$udom/$uname/aboutme">
 <nobr>
-<input name="newaboutme" type="submit" value="My Personal Info" />
+<input name="newaboutme" type="submit" value="$lt{'mypi'}" />
 $help{'My Personal Info'}
 </nobr>
 </form>
@@ -1025,7 +1064,7 @@ ENDFORM
 # ----------------------------------------------------- Supplemental documents
     if (!$forcestandard) {
        $r->print(
-  '<tr><td bgcolor="#BBBBBB"><h2>Supplemental Course Documents'.
+  '<tr><td bgcolor="#BBBBBB"><h2>'.&mt('Supplemental Course Documents').
   ($allowed?' '.$help{'Supplemental'}:'').'</h2>');
        my $folder=$ENV{'form.folder'};
        unless ($folder=~/supplemental/) { $folder='supplemental'; }
@@ -1037,9 +1076,9 @@ ENDFORM
 
           $r->print(<<ENDSUPFORM);
 <table cellspacing=4 cellpadding=4><tr>
-<th bgcolor="#DDDDDD">Upload a new supplemental course document</th>
-<th bgcolor="#DDDDDD">Import a published document</th>
-<th bgcolor="#DDDDDD">Special documents</th>
+<th bgcolor="#DDDDDD">$lt{'upls'}</th>
+<th bgcolor="#DDDDDD">$lt{'impp'}</th>
+<th bgcolor="#DDDDDD">$lt{'spec'}</th>
 </tr>
 <tr><td bgcolor="#DDDDDD">
 <form action="/adm/coursedocs" method="post" enctype="multipart/form-data">
@@ -1051,7 +1090,7 @@ ENDFORM
 <input type="hidden" name="foldername" value="$ENV{'form.foldername'}">
 <input type="hidden" name="cmd" value="upload_supplemental">
 <nobr>
-<input type="submit" value="Upload Document">
+<input type="submit" value="$lt{'upld'}">
  $help{'Uploading_From_Harddrive'}
 </nobr>
 </form>
@@ -1062,15 +1101,15 @@ ENDFORM
 <input type="hidden" name="foldername" value="$ENV{'form.foldername'}">
 <input type=hidden name="importdetail" value="">
 <input type=button onClick=
-"javascript:document.forms.simpleedit.folder.value='$folder';groupsearch()" value="Search">
+"javascript:document.forms.simpleedit.folder.value='$folder';groupsearch()" value="$lt{'srch'}">
 <input type=button onClick=
-"javascript:document.forms.simpleedit.folder.value='$folder';groupimport();" value="Import">$help{'Importing_LON-CAPA_Resource'}
+"javascript:document.forms.simpleedit.folder.value='$folder';groupimport();" value="$lt{'impo'}">$help{'Importing_LON-CAPA_Resource'}
 <p>
 <hr />
 <input type="text" size="20" name="importmap">
 <input type=button 
 onClick="javascript:openbrowser('simpleeditsupplement','importmap','sequence,page','')"
-value="Select Map"><input type="submit" name="loadmap" value="Load Map">
+value="$lt{'selm'}"><input type="submit" name="loadmap" value="$lt{'load'}">$help{'Load_Map'}
 </p>
 </form>
 </td><td bgcolor="#DDDDDD">
@@ -1081,7 +1120,7 @@ value="Select Map"><input type="submit"
 <nobr>
 <input name="newfolder" type="button"
 onClick="javascript:makenewfolder(this.form,'$folderseq');"
-value="New Folder" /> $help{'Adding_Folders'}
+value="$lt{'newf'}" /> $help{'Adding_Folders'}
 </nobr>
 </form>
 <form action="/adm/coursedocs" method="post" name="supnewext">
@@ -1091,7 +1130,7 @@ value="New Folder" /> $help{'Adding_Fold
 <nobr>
 <input name="newext" type="button" 
 onClick="javascript:makenewext('supnewext');"
-value="External Resource" /> $help{'Adding_External_Resource'}
+value="$lt{'extr'}" /> $help{'Adding_External_Resource'}
 </nobr>
 </form>
 <form action="/adm/coursedocs" method="post" name="supnewsyl">
@@ -1100,7 +1139,7 @@ value="External Resource" /> $help{'Addi
 <input type=hidden name="importdetail" 
 value="Syllabus=/public/$coursedom/$coursenum/syllabus">
 <nobr>
-<input name="newsyl" type="submit" value="Syllabus" />
+<input name="newsyl" type="submit" value="$lt{'syll'}" />
 $help{'Syllabus'}
 </nobr>
 </form>
@@ -1110,7 +1149,7 @@ $help{'Syllabus'}
 <input type=hidden name="importdetail" 
 value="$plainname=/adm/$udom/$uname/aboutme">
 <nobr>
-<input name="newaboutme" type="submit" value="My Personal Info" />
+<input name="newaboutme" type="submit" value="$lt{'mypi'}" />
 $help{'My Personal Info'}
 </nobr>
 </form>
@@ -1125,11 +1164,12 @@ ENDSUPFORM
     $r->print('</table>');
   } else {
 # -------------------------------------------------------- This is showdoc mode
-      $r->print("<h1>Uploaded Document</h1><p>It is recommended that you use an up-to-date virus scanner before handling this file.</p><p><table>".
-         &entryline(0,"Click to download or use your browser's Save Link function",$showdoc).'</table></p>');
+      $r->print("<h1>".&mt('Uploaded Document').'</h1><p>'.
+&mt('It is recommended that you use an up-to-date virus scanner before handling this file.')."</p><p><table>".
+         &entryline(0,&mt("Click to download or use your browser's Save Link function"),$showdoc).'</table></p>');
   }
  }
- $r->print('</body></html>');
+ $r->print(&Apache::lonlocal::endreroutetrans().'</body></html>');
  return OK;
 }