'.
@@ -763,28 +781,23 @@ sub verifyreceipt {
if ($receiptparts) {
$contents.='
'.$part.'
';
}
- $contents.='
'."\n";
+ $contents.=
+ &Apache::loncommon::end_data_table_row()."\n";
$matches++;
}
}
}
if ($matches == 0) {
- $string = $title.'No match found for the above receipt.';
+ $string = $title.&mt('No match found for the above receipt.');
} else {
$string = &jscriptNform($symb).$title.
- 'The above receipt matches the following student'.
- ($matches <= 1 ? '.' : 's.')."\n".
- '
'."\n".
- '
'."\n".
- '
Fullname
'."\n".
- '
Username
'."\n".
- '
Domain
';
- if ($receiptparts) {
- $string.='
Problem Part
';
- }
- $string.='
'."\n".$contents.
- '
'."\n";
+ '
'.
+ &mt('The above receipt matches the following [numerate,_1,student].',$matches).
+ '
'.$viewgrade.
- ' Submissions for a Student or a Group of Students
';
+ my $result='
'.
+ &mt($viewgrade.' Submissions for a Student or a Group of Students')
+ .'
';
my ($table,undef,$hdgrade,$partlist,$handgrade) = &showResourceInfo($symb,$env{'form.probTitle'},($env{'form.showgrading'} eq 'yes'));
+ my %lt = ( 'multiple' =>
+ "Please select a student or group of students before clicking on the Next button.",
+ 'single' =>
+ "Please select the student before clicking on the Next button.",
+ );
+ %lt = &Apache::lonlocal::texthash(%lt);
$request->print(<
function checkSelect(checkBox) {
@@ -822,15 +842,15 @@ sub listStudents {
ctr++;
}
}
- sense = "a student or group of students";
+ sense = '$lt{'multiple'}';
} else {
if (checkBox.checked) {
ctr = 1;
}
- sense = "the student";
+ sense = '$lt{'single'}';
}
if (ctr == 0) {
- alert("Please select "+sense+" before clicking on the Next button.");
+ alert(sense);
return false;
}
document.gradesub.submit();
@@ -850,30 +870,49 @@ LISTJAVASCRIPT
my $checkhdgrade = ($env{'form.handgrade'} eq 'yes' && scalar(@$partlist) > 1 ) ? 'checked="checked"' : '';
my $checklastsub = $checkhdgrade eq '' ? 'checked="checked"' : '';
my $gradeTable=''."\n";
+ 'value="'.&mt('Next->').'" />'."\n";
if ($ctr == 0) {
my $num_students=(scalar(keys(%$fullname)));
if ($num_students eq 0) {
- $gradeTable=' There are no students currently enrolled.';
+ $gradeTable=' '.&mt('There are no students currently enrolled.').'';
} else {
my $submissions='submissions';
if ($submitonly eq 'incorrect') { $submissions = 'incorrect submissions'; }
if ($submitonly eq 'graded' ) { $submissions = 'ungraded submissions'; }
if ($submitonly eq 'queued' ) { $submissions = 'queued submissions'; }
$gradeTable=' '.
- 'No '.$submissions.' found for this resource for any students. ('.$num_students.
- ' students checked for '.$submissions.') ';
+ &mt('No '.$submissions.' found for this resource for any students. ([_1] students checked for '.$submissions.')',
+ $num_students).
+ ' ';
}
} elsif ($ctr == 1) {
$gradeTable =~ s/type="checkbox"/type="checkbox" checked="checked"/;
@@ -1079,9 +1120,9 @@ sub check_script {
}
sub check_buttons {
- my $buttons.='';
- $buttons.=' ';
- $buttons.='';
+ my $buttons.='';
+ $buttons.=' ';
+ $buttons.='';
$buttons.=' ';
return $buttons;
}
@@ -1616,8 +1657,7 @@ sub get_increment {
sub gradeBox {
my ($request,$symb,$uname,$udom,$counter,$partid,$record) = @_;
my $checkIcon = '';
+ '" src="'.&Apache::loncommon::lonhttpdurl($request->dir_config('lonIconsURL').'/check.gif').'" height="16" border="0" />';
my $wgt = &Apache::lonnet::EXT('resource.'.$partid.'.weight',$symb,$udom,$uname);
my $wgtmsg = ($wgt > 0) ? &mt('(problem weight)')
: ''.&mt('problem weight assigned by computer').'';
@@ -1632,41 +1672,47 @@ sub gradeBox {
if ($last_resets{$partid}) {
$aggtries = &get_num_tries($record,$last_resets{$partid},$partid);
}
- $result.='
'.
- 'Part: '.$display_part.' Points:
'."\n";
+ $result.='
';
my $ctr = 0;
my $thisweight = 0;
my $increment = &get_increment();
- $result.='
'."\n"; # display radio buttons in a nice table 10 across
+
+ my $radio.='
'."\n"; # display radio buttons in a nice table 10 across
while ($thisweight<=$wgt) {
- $result.= '
'."\n";
$result.=&handback_box($symb,$uname,$udom,$counter,$partid,$record);
return $result;
}
@@ -1707,7 +1752,7 @@ sub handback_box {
''.$file_disp.'');
$result.=''."\n";
$result.=' ';
- $result.='(File will be uploaded when you click on Save & Next below.) ';
+ $result.='('.&mt('File will be uploaded when you click on Save & Next below.').') ';
$file_counter++;
}
}
@@ -1853,8 +1898,8 @@ sub submission {
if ($env{'form.handgrade'} eq 'yes' && &files_exist($request, $symb)) {
&download_all_link($request, $symb);
}
- $request->print('
Submission Record
'."\n".
- '
Resource: '.$env{'form.probTitle'}.'
'."\n");
+ $request->print('
'.&mt('Submission Record').'
'."\n".
+ '
'.&mt('Resource: [_1]',$env{'form.probTitle'}).'
'."\n");
# option to display problem, only once else it cause problems
# with the form later since the problem has a form.
@@ -2219,7 +2264,7 @@ KEYWORDS
# print end of form
if ($counter == $total) {
my $endform='
'."\n";
- $endform.=' '."\n";
my $ntstu =''."\n";
my $nsel = ($env{'form.NTSTU'} ne '' ? $env{'form.NTSTU'} : '1');
$ntstu =~ s/
';
+ $endform.='';
$endform.=&show_grading_menu_form($symb);
$request->print($endform);
}
@@ -2575,9 +2620,9 @@ sub processHandGrade {
$ctr++;
}
if ($total < 0) {
- my $the_end = '
LON-CAPA User Message
'."\n";
- $the_end.='Message: No more students for this section or class.
'."\n";
- $the_end.='Click on the button below to return to the grading menu.
'."\n";
+ my $the_end = '
'.&mt('LON-CAPA User Message').'
'."\n";
+ $the_end.=&mt('Message: No more students for this section or class.').'
'."\n";
+ $the_end.=&mt('Click on the button below to return to the grading menu.').'
'."\n";
$the_end.=&show_grading_menu_form($symb);
$request->print($the_end);
}
@@ -3148,7 +3193,7 @@ sub viewgrades {
&Apache::lonnet::clear_EXT_cache_status();
my $result='
'."\n";
#view individual student submission form - called using Javascript viewOneStudent
$result.=&jscriptNform($symb);
@@ -3166,13 +3211,15 @@ sub viewgrades {
my $sectionClass;
my $section_display = join (", ",&Apache::loncommon::get_env_multiple('form.section'));
if ($env{'form.section'} eq 'all') {
- $sectionClass='Class ';
+ $sectionClass='Class';
} elsif ($env{'form.section'} eq 'none') {
- $sectionClass=&mt('Students in no Section').'';
+ $sectionClass='Students in no Section';
} else {
- $sectionClass=&mt('Students in Section(s) [_1]',$section_display).'';
+ $sectionClass='Students in Section(s) [_1]';
}
- $result.='
'.&mt('Assign Common Grade To [_1]',$sectionClass);
+ $result.=
+ '
'.
+ &mt("Assign Common Grade To $sectionClass",$section_display).'
';
$result.= &Apache::loncommon::start_data_table();
#radio buttons/text box for assigning points for a section or class.
#handles different parts of a problem
@@ -3190,48 +3237,52 @@ sub viewgrades {
my $wgt = &Apache::lonnet::EXT('resource.'.$partid.'.weight',$symb);
$weight{$partid} = $wgt eq '' ? '1' : $wgt;
- $result.=&Apache::loncommon::start_data_table_row().'
',$display_part,$radio,$line).
+ &Apache::loncommon::end_data_table_row()."\n";
$ctsparts++;
}
$result.=&Apache::loncommon::end_data_table()."\n".
'';
- $result.='';
#table listing all the students in a section/class
#header of table
- $result.= '
Assign Grade to Specific Students in '.$sectionClass;
+ $result.= '
'.&mt('Assign Grade to Specific Students in '.$sectionClass,
+ $section_display).'
'."\n";
}
$result.=&Apache::loncommon::end_data_table_header_row();
@@ -3275,14 +3333,14 @@ sub viewgrades {
}
$result.=&Apache::loncommon::end_data_table();
$result.=''."\n";
- $result.=''."\n";
if (scalar(%$fullname) eq 0) {
my $colspan=3+scalar(@parts);
my $section_display = join (", ",&Apache::loncommon::get_env_multiple('form.section'));
my $stu_status = join(' or ',&Apache::loncommon::get_env_multiple('form.Status'));
$result=''.
- &mt('There are no students in section(s) [_1] with enrollment status [_2] to modify or grade',
+ &mt('There are no students in section(s) [_1] with enrollment status [_2] to modify or grade.',
$section_display, $stu_status).
'';
}
@@ -3338,9 +3396,9 @@ sub viewstudentgrade {
$result.=' '."\n";
- $result.= (($status eq 'excused') ? ''
- : '')."\n";
- $result.='';
+ $result.= (($status eq 'excused') ? ''
+ : '')."\n";
+ $result.='';
$result.=" \n";
} else {
$result.=' '.
- 'Manual Grading by Page or Sequence
';
+ &mt('Manual Grading by Page or Sequence').'';
$result.=''."\n";
+ 'onClick="javascript:checkPickOne(this.form);" value="'.&mt('Next->').'" />'."\n";
$studentTable.=&show_grading_menu_form($symb);
$request->print($studentTable);
@@ -4178,15 +4249,15 @@ sub displayPage {
&Apache::lonnet::clear_EXT_cache_status();
if (!&canview($usec)) {
- $request->print('Unable to view requested student.('.$env{'form.student'}.')');
+ $request->print(''.&mt('Unable to view requested student. ([_1])',$env{'form.student'}).'');
$request->print(&show_grading_menu_form($symb));
return;
}
my $result='
';
+ $studentTable.=' '.&mt('Note: Problems graded correct by the computer are marked with a [_1] symbol.',$checkIcon)."\n".
+ &Apache::loncommon::start_data_table().
+ &Apache::loncommon::start_data_table_header_row().
+ '
';
my %form = ('CODE' => $env{'form.CODE'},);
if ($env{'form.vProb'} eq 'yes' ) {
@@ -4257,14 +4333,14 @@ sub displayPage {
# $request->print('match='.$1." \n");
# }
# $companswer =~ s|
|
|g;
- $studentTable.=' '.$title.' Correct answer: '.$companswer;
+ $studentTable.=' '.$title.' '.&mt('Correct answer: [_1]',$companswer);
}
my %record = &Apache::lonnet::restore($symbx,$env{'request.course.id'},$udom,$uname);
if ($env{'form.lastSub'} eq 'datesub') {
if ($record{'version'} eq '') {
- $studentTable.=' No recorded submission for this problem ';
+ $studentTable.=' '.&mt('No recorded submission for this problem.').' ';
} else {
my %responseType = ();
foreach my $partid (@{$parts}) {
@@ -4300,8 +4376,8 @@ sub displayPage {
$curRes = $iterator->next();
}
- $studentTable.='
'."\n".
- ''."\n".
+ ''.
''."\n";
$studentTable.=&show_grading_menu_form($symb);
@@ -4381,13 +4457,13 @@ sub displaySubByDates {
}
}
if (exists($$record{"$where.$partid.checkedin"})) {
- $displaySub[1].='Checked in by '.
- $$record{"$where.$partid.checkedin"}.' into slot '.
- $$record{"$where.$partid.checkedin.slot"}.
- ' ';
+ $displaySub[1].=&mt('Checked in by [_1] into slot [_2]',
+ $$record{"$where.$partid.checkedin"},
+ $$record{"$where.$partid.checkedin.slot"}).
+ ' ';
}
if (exists $$record{"$where.$partid.award"}) {
- $displaySub[1].='Part: '.$display_part.' '.
+ $displaySub[1].=''.&mt('Part:').' '.$display_part.' '.
lc($$record{"$where.$partid.award"}).' '.
$mark{$$record{"$where.$partid.solved"}}.
' ';
@@ -4449,12 +4525,14 @@ sub updateGradeByPage {
my $iterator = $navmap->getIterator($map->map_start(),
$map->map_finish());
- my $studentTable='
'.
- '
'.
- '
Prob.
'.
- '
Title
'.
- '
Previous Score
'.
- '
New Score
';
+ my $studentTable=
+ &Apache::loncommon::start_data_table().
+ &Apache::loncommon::start_data_table_header_row().
+ '
'.&mt('Prob.').'
'.
+ '
'.&mt('Title').'
'.
+ '
'.&mt('Previous Score').'
'.
+ '
'.&mt('New Score').'
'.
+ &Apache::loncommon::end_data_table_header_row();
$iterator->next(); # skip the first BEGIN_MAP
my $curRes = $iterator->next(); # for "current resource"
@@ -4467,8 +4545,12 @@ sub updateGradeByPage {
my $parts = $curRes->parts();
my $title = $curRes->compTitle();
my $symbx = $curRes->symb();
- $studentTable.='
';
+ $studentTable.=&Apache::loncommon::end_data_table();
$studentTable.=&show_grading_menu_form($env{'form.symb'});
my $grademsg=($changeflag == 0 ? 'No score was changed or updated.' :
'The scores were changed for '.
@@ -4819,52 +4901,48 @@ sub scantron_selectphase {
# Chunk of form to prompt for a file to grade and how:
- $result.= <
-
-
-
-SCANTRONFORM
+ '.&Apache::loncommon::end_data_table_row().'
+ '.&Apache::loncommon::end_data_table().'
+
+';
$r->print($result);
@@ -4873,84 +4951,74 @@ SCANTRONFORM
# Chunk of form to prompt for a scantron file upload.
- $r->print(<
-
-SCANTRONFORM
+');
my $default_form_data=&defaultFormData(&get_symb($r,1));
my $cdom= $env{'course.'.$env{'request.course.id'}.'.domain'};
my $cnum= $env{'course.'.$env{'request.course.id'}.'.num'};
- $r->print(<print('
-
-SCANTRONFORM
+ '.&Apache::loncommon::end_data_table_row().'
+ '.&Apache::loncommon::end_data_table().'
+');
}
# Chunk of the form that prompts to view a scoring office file,
# corrected file, skipped records in a file.
- $r->print(<
-
');
$r->print($grading_menu_button);
return
}
@@ -5116,7 +5184,8 @@ sub username_to_idmap {
sub scantron_fixup_scanline {
my ($scantron_config,$scan_data,$line,$whichline,$field,$args)=@_;
-
+
+
if ($field eq 'ID') {
if (length($args->{'newid'}) > $$scantron_config{'IDlength'}) {
return ($line,1,'New value too large');
@@ -5147,28 +5216,58 @@ sub scantron_fixup_scanline {
$$scantron_config{'CODElength'})=$args->{'CODE'};
}
} elsif ($field eq 'answer') {
- my $length=$scantron_config->{'Qlength'};
+ &scantron_get_maxbubble(); # Need the bubble counter info.
+ my $length =$scantron_config->{'Qlength'};
my $off=$scantron_config->{'Qoff'};
my $on=$scantron_config->{'Qon'};
- my $answer=${off}x$length;
- if ($args->{'response'} eq 'none') {
- &scan_data($scan_data,
- "$whichline.no_bubble.".$args->{'question'},'1');
- } else {
- if ($on eq 'letter') {
- my @alphabet=('A'..'Z');
- $answer=$alphabet[$args->{'response'}];
- } elsif ($on eq 'number') {
- $answer=$args->{'response'}+1;
- if ($answer == 10) { $answer = '0'; }
+ my $question_number = $args->{'question'} -1;
+ my $first_position = $first_bubble_line{$question_number};
+ my $bubble_count = $bubble_lines_per_response{$question_number};
+ my $bubbles_per_line= $$scantron_config{'Qlength'};
+ my $answer=${off}x($bubbles_per_line*$bubble_count);
+ my $final_answer;
+ if ($$scantron_config{'Qon'} eq 'letter' ||
+ $$scantron_config{'Qon'} eq 'number') {
+ $bubbles_per_line = 10;
+ }
+ if (defined $args->{'response'}) {
+
+ if ($args->{'response'} eq 'none') {
+ &scan_data($scan_data,
+ "$whichline.no_bubble.".$args->{'question'},'1');
} else {
- substr($answer,$args->{'response'},1)=$on;
+ my ($bubble_line, $bubble_number) = split(/:/,$args->{'response'});
+ if ($on eq 'letter') {
+ my @alphabet=('A'..'Z');
+ $answer=$alphabet[$bubble_number];
+ } elsif ($on eq 'number') {
+ $answer= $bubble_number+1;
+ if ($answer == 10) { $answer = '0'; }
+ } else {
+ substr($answer,$bubble_number+$bubble_line*$bubbles_per_line,1)=$on;
+ $final_answer = $answer;
+ }
+ &scan_data($scan_data,
+ "$whichline.no_bubble.".$args->{'question'},undef,'1');
+
+ # Positional notation already has the right final answer length..
+
+ if (($on eq 'letter') || ($on eq 'number')) {
+ for (my $l = 0; $l < $bubble_count; $l++) {
+ if ($l eq $bubble_line) {
+ $final_answer .= $answer;
+ } else {
+ $final_answer .= ' ';
+ }
+ }
+ }
}
- &scan_data($scan_data,
- "$whichline.no_bubble.".$args->{'question'},undef,'1');
+ # $where=$length*($args->{'question'}-1)+$scantron_config->{'Qstart'};
+ #substr($line,$where-1,$length)=$answer;
+ substr($line,
+ $scantron_config->{'Qstart'}+$first_position-1,
+ $bubbles_per_line*$length) = $final_answer;
}
- my $where=$length*($args->{'question'}-1)+$scantron_config->{'Qstart'};
- substr($line,$where-1,$length)=$answer;
}
return $line;
}
@@ -5307,10 +5406,9 @@ sub scantron_parse_scanline {
my $answer_length = $$scantron_config{'Qlength'} * $answers_needed;
-
$questnum++;
my $currentquest = substr($questions,0,$answer_length);
- $questions = substr($questions,0,$answer_length)='';
+ $questions = substr($questions,$answer_length);
if (length($currentquest) < $answer_length) { next; }
# Qon letter implies for each slot in currentquest we have:
@@ -5320,7 +5418,6 @@ sub scantron_parse_scanline {
if ($$scantron_config{'Qon'} eq 'letter') {
-
if ($currentquest =~ /\?/
|| $currentquest =~ /\*/
|| (&occurence_count($currentquest, "[A-Z]") > 1)) {
@@ -5349,7 +5446,8 @@ sub scantron_parse_scanline {
}
} else {
for (my $ans = 0; $ans < $answers_needed; $ans++) {
- $record{"scantron.$ansnum.answer"} = substr($currentquest, $ans, 1);
+ my $bubble = substr($currentquest, $ans, 1);
+ $record{"scantron.$ansnum.answer"} = $bubble;
$ansnum++;
}
}
@@ -5415,11 +5513,15 @@ sub scantron_parse_scanline {
if (!&scan_data($scan_data,"$whichline.no_bubble.$questnum")) {
push(@{$record{"scantron.missingerror"}},$questnum);
}
- } elsif (scalar(@array) lt 2) {
+
+
+
+ } elsif (scalar(@array) eq 2) {
my $location = length($array[0]);
- my $line_num = $location / $$scantron_config{'Qlength'};
+ my $line_num = int($location / $$scantron_config{'Qlength'});
my $bubble = $alphabet[$location % $$scantron_config{'Qlength'}];
+
for (my $ans = 0; $ans < $answers_needed; $ans++) {
if ($ans eq $line_num) {
@@ -5705,7 +5807,7 @@ sub remember_current_skipped {
sub check_for_error {
my ($r,$result)=@_;
if ($result ne 'ok' && $result ne 'not_found' ) {
- $r->print("An error occurred ($result) when trying to Remove the existing corrections.");
+ $r->print(&mt("An error occurred ([_1]) when trying to remove the existing corrections.",$result));
}
}
@@ -5729,25 +5831,25 @@ sub scantron_warning_screen {
$CODElist=$env{'form.scantron_CODElist'};
if ($env{'form.scantron_CODElist'} eq '') { $CODElist='None'; }
$CODElist=
- '
List of CODES to validate against:
'.
+ '
'.&mt('List of CODES to validate against:').'
'.
$env{'form.scantron_CODElist'}.'
';
}
- return (<
-Please double check the information
- below before clicking on '$button_text'
+
+'.&mt('Please double check the information below before clicking on \'[_1]\'',&mt($button_text)).'
-
Sequence to be Graded:
$title
-
Data File that will be used:
$env{'form.scantron_selectfile'}
-$CODElist
+
'.&mt('Sequence to be Graded:').'
'.$title.'
+
'.&mt('Data File that will be used:').'
'.$env{'form.scantron_selectfile'}.'
+'.$CODElist.'
-
If this information is correct, please click on '$button_text'.
-
If something is incorrect, please click the 'Grading Menu' button to start over.
+
'.&mt('If this information is correct, please click on \'[_1]\'.',&mt($button_text)).'
+
'.&mt('If something is incorrect, please click the \'Grading Menu\' button to start over.').'
');
$r->rflush();
my $which="scantron_validate_".$validate_phases[$currentphase];
{
@@ -5893,12 +5995,12 @@ sub scantron_validate_file {
}
if (!$stop) {
my $warning=&scantron_warning_screen('Start Grading');
- $r->print(<
-$warning
-
+ $r->print('
+'.&mt('Validation process complete.').'
+'.$warning.'
+
-STUFF
+');
} else {
$r->print('');
@@ -5906,15 +6008,15 @@ STUFF
}
if ($stop) {
if ($validate_phases[$currentphase] eq 'sequence') {
- $r->print('');
- $r->print(' this error ');
+ $r->print('');
+ $r->print(' '.&mt('this error').' ');
- $r->print("
Or click the 'Grading Menu' button to start over.
");
+ $r->print("
".&mt("Or click the 'Grading Menu' button to start over.")."
");
} else {
- $r->print('');
- $r->print(' using corrected info ');
- $r->print("");
- $r->print(" this scanline saving it for later.");
+ $r->print('');
+ $r->print(' '.&mt('using corrected info').' ');
+ $r->print("");
+ $r->print(" ".&mt("this scanline saving it for later."));
}
}
$r->print(" ".&show_grading_menu_form($symb));
@@ -5975,7 +6077,10 @@ sub scantron_remove_scan_data {
}
my $result;
if (@todelete) {
- $result=&Apache::lonnet::del('nohist_scantrondata',\@todelete,$cdom,$cname);
+ $result = &Apache::lonnet::del('nohist_scantrondata',
+ \@todelete,$cdom,$cname);
+ } else {
+ $result = 'ok';
}
return $result;
}
@@ -6395,30 +6500,32 @@ sub scantron_get_correction {
#to show both the current line and the previous one and allow skipping
#the previous one or the current one
- $r->print("
An error was detected ($error)");
if ( $$scan_record{'scantron.PaperID'} =~ /\S/) {
- $r->print(" for PaperID ".
- $$scan_record{'scantron.PaperID'}." \n");
+ $r->print("
".&mt("An error was detected ($error)".
+ " for PaperID [_1]",
+ $$scan_record{'scantron.PaperID'})."
\n");
} else {
- $r->print(" in scanline $i
".
- $line."
\n");
- }
- my $message="
The ID on the form is ".
- $$scan_record{'scantron.ID'}." \n".
- "The name on the paper is ".
- $$scan_record{'scantron.LastName'}.",".
- $$scan_record{'scantron.FirstName'}."
";
+ $r->print("
".&mt("An error was detected ($error)".
+ " in scanline [_1]
[_2]
",
+ $i,$line)." \n");
+ }
+ my $message="
".&mt("The ID on the form is [_1] ".
+ "The name on the paper is [_2],[_3]",
+ $$scan_record{'scantron.ID'},
+ $$scan_record{'scantron.LastName'},
+ $$scan_record{'scantron.FirstName'})."
";
$r->print(''."\n");
$r->print(''."\n");
if ($error =~ /ID$/) {
if ($error eq 'incorrectID') {
- $r->print("The encoded ID is not in the classlist\n");
+ $r->print("
".&mt("The encoded ID is not in the classlist").
+ "
\n");
} elsif ($error eq 'duplicateID') {
- $r->print("The encoded ID has also been used by a previous paper $arg\n");
+ $r->print("
".&mt("The encoded ID has also been used by a previous paper [_1]",$arg)."
\n");
}
$r->print($message);
- $r->print("
How should I handle this? \n");
+ $r->print("
".&mt("How should I handle this?")." \n");
$r->print("\n
");
#FIXME it would be nice if this sent back the user ID and
#could do partial userID matches
@@ -6431,14 +6538,14 @@ sub scantron_get_correction {
$r->print('
The encoded CODE has also been used by a previous paper ".join(', ',@{$arg}).", and CODEs are supposed to be unique
\n");
+ $r->print("
".&mt("The encoded CODE has also been used by a previous paper [_1], and CODEs are supposed to be unique.",join(', ',@{$arg}))."
\n");
}
- $r->print("
The CODE on the form is '".
- $$scan_record{'scantron.CODE'}."' \n");
+ $r->print("
".&mt("The CODE on the form is '[_1]'",
+ $$scan_record{'scantron.CODE'})." \n");
$r->print($message);
- $r->print("
How should I handle this? \n");
+ $r->print("
".&mt("How should I handle this?")." \n");
$r->print("\n ");
my $i=0;
if ($error eq 'incorrectCODE'
@@ -6448,7 +6555,13 @@ sub scantron_get_correction {
foreach my $testcode (@{$closest}) {
my $checked='';
if (!$i) { $checked=' checked="checked" '; }
- $r->print(" Use the similar CODE ".$testcode." instead.");
+ $r->print("
+
+
+ ".&mt("Use the similar CODE [_1] instead.",
+ "".$testcode."")."
+
+ ");
$r->print("\n ");
$i++;
}
@@ -6456,7 +6569,12 @@ sub scantron_get_correction {
}
if ($$scan_record{'scantron.CODE'}=~/\S/ ) {
my $checked; if (!$i) { $checked=' checked="checked" '; }
- $r->print(" Use the CODE ".$$scan_record{'scantron.CODE'}." that is was on the paper, ignoring the error.");
+ $r->print("
+
+
+ ".&mt("Use the CODE [_1] that is was on the paper, ignoring the error.",
+ "".$$scan_record{'scantron.CODE'}."")."
+ ");
$r->print("\n ");
}
@@ -6478,17 +6596,27 @@ ENDSCRIPT
"&curCODE=".&escape($$scan_record{'scantron.CODE'}).
"&scantron_selectfile=".&escape($env{'form.scantron_selectfile'});
if ($env{'form.scantron_CODElist'} =~ /\S/) {
- $r->print("Select a CODE from the list of all CODEs and use it. Selected CODE is ");
+ $r->print("
+
+
+ ".&mt("[_1]Select[_2] a CODE from the list of all CODEs and use it.",
+ "","")."
+
+ ".&mt("Selected CODE is [_1]",""));
$r->print("\n ");
}
- $r->print(" Use as the CODE.");
+ $r->print("
+
+
+ ".&mt("Use [_1] as the CODE.",
+ ""));
$r->print("\n
Please indicate which bubble should be used for grading
");
+ $r->print("
".&mt("Please indicate which bubble should be used for grading")."
");
foreach my $question (@{$arg}) {
my $selected = &get_response_bubbles($scan_record, $question);
my @select_array = split(/:/,$selected);
@@ -6496,10 +6624,10 @@ ENDSCRIPT
@select_array);
}
} elsif ($error eq 'missingbubble') {
- $r->print("
There have been no bubbles scanned for some question(s)
\n");
+ $r->print("
".&mt("There have been no bubbles scanned for some question(s)")."
\n");
$r->print($message);
- $r->print("
Please indicate which bubble should be used for grading
");
- $r->print("Some questions have no scanned bubbles\n");
+ $r->print("
".&mt("Please indicate which bubble should be used for grading.")."
");
+ $r->print(&mt("Some questions have no scanned bubbles")."\n");
$r->print('');
foreach my $question (@{$arg}) {
@@ -6546,6 +6674,7 @@ sub scantron_bubble_selector {
my $total_lines = $lines*2;
my @alphabet=('A'..'Z');
+
$r->print("
$quest
");
for (my $l = 0; $l < $lines; $l++) {
@@ -6569,7 +6698,7 @@ sub scantron_bubble_selector {
my $lspan = $total_lines * 2; # 2 table rows per bubble line.
$r->print('
No bubble
');
+ $quest.'" value="none" /> '.&mt('No bubble').' ');
}
@@ -6579,9 +6708,10 @@ sub scantron_bubble_selector {
# multiline questions (different values e.g..).
for (my $i=0;$i<$max;$i++) {
+ my $value = "$l:$i"; # Relative bubble line #: Bubble in line.
$r->print("\n".
'
');
@@ -6829,7 +6959,6 @@ sub scantron_get_maxbubble {
my $bubble_line = 0;
foreach my $resource (@resources) {
my $symb = $resource->symb();
- &Apache::lonxml::clear_bubble_lines_for_part();
my $result=&Apache::lonnet::ssi($resource->src(),
('symb' => $resource->symb()),
('grade_target' => 'analyze'),
@@ -6845,9 +6974,10 @@ sub scantron_get_maxbubble {
foreach my $part_id (@{$analysis{'parts'}}) {
-
my $lines = $analysis{"$part_id.bubble_lines"};;
+
+
# TODO - make this a persistent hash not an array.
@@ -7059,7 +7189,7 @@ sub scantron_upload_scantron_data {
my $domsel=&Apache::loncommon::select_dom_form($env{'request.role.domain'},
'domainid');
my $default_form_data=&defaultFormData(&get_symb($r,1));
- $r->print(<print('
-
-$default_form_data
+
+'.$default_form_data.'
-
$select_link
-
Course ID:
-
Course Name:
-
Domain:
$domsel
-
File to upload:
+
'.$select_link.'
+
'.&mt('Course ID:').'
+
+
'.&mt('Course Name:').'
+
+
'.&mt('Domain:').'
+
'.$domsel.'
+
'.&mt('File to upload:').'
+
-
-
+
+
-UPLOAD
+');
return '';
}
@@ -7101,12 +7235,12 @@ sub scantron_upload_scantron_data_save {
my $doanotherupload=
'
'."\n".
''."\n".
- ''."\n".
+ ''."\n".
'
'."\n";
if (!&Apache::lonnet::allowed('usc',$env{'form.domainid'}) &&
!&Apache::lonnet::allowed('usc',
$env{'form.domainid'}.'_'.$env{'form.courseid'})) {
- $r->print("You are not allowed to upload Scantron data to the requested course. ");
+ $r->print(&mt("You are not allowed to upload Scantron data to the requested course.")." ");
if ($symb) {
$r->print(&show_grading_menu_form($symb));
} else {
@@ -7115,7 +7249,7 @@ sub scantron_upload_scantron_data_save {
return '';
}
my %coursedata=&Apache::lonnet::coursedescription($env{'form.domainid'}.'_'.$env{'form.courseid'});
- $r->print("Doing upload to ".$coursedata{'description'}." ");
+ $r->print(&mt("Doing upload to [_1]",$coursedata{'description'})." ");
my $fname=$env{'form.upfile.filename'};
#FIXME
#copied from lonnet::userfileupload()
@@ -7133,13 +7267,18 @@ sub scantron_upload_scantron_data_save {
my $uploadedfile=$fname;
$fname='scantron_orig_'.$fname;
if (length($env{'form.upfile'}) < 2) {
- $r->print("Error: The file you attempted to upload, ".&HTML::Entities::encode($env{'form.upfile.filename'},'<>&"').", contained no information. Please check that you entered the correct filename.");
+ $r->print(&mt("Error: The file you attempted to upload, [_1] contained no information. Please check that you entered the correct filename.",''.&HTML::Entities::encode($env{'form.upfile.filename'},'<>&"').""));
} else {
my $result=&Apache::lonnet::finishuserfileupload($env{'form.courseid'},$env{'form.domainid'},'upfile',$fname);
if ($result =~ m|^/uploaded/|) {
- $r->print("Success: Successfully uploaded ".(length($env{'form.upfile'})-1)." bytes of data into location ".$result."");
+ $r->print(&mt("Success: Successfully uploaded [_1] bytes of data into location [_2]",
+ (length($env{'form.upfile'})-1),
+ ''.$result.""));
} else {
- $r->print("Error: An error (".$result.") occurred when attempting to upload the file, ".&HTML::Entities::encode($env{'form.upfile.filename'},'<>&"')."");
+ $r->print(&mt("Error: An error ([_1]) occurred when attempting to upload the file, [_2]",
+ $result,
+ ''.&HTML::Entities::encode($env{'form.upfile.filename'},'<>&"').""));
+
}
}
if ($symb) {
@@ -7183,11 +7322,11 @@ sub scantron_download_scantron_data {
my $cdom=$env{'course.'.$env{'request.course.id'}.'.domain'};
my $file=$env{'form.scantron_selectfile'};
if (! &valid_file($file)) {
- $r->print(<print('
- The requested file name was invalid.
+ '.&mt('The requested file name was invalid.').'
- Original file as uploaded by the scantron office.
+ '.&mt('[_1]Original[_2] file as uploaded by the scantron office.',
+ '','').'
- Corrections, a file of corrected records that were used in grading.
+ '.&mt('[_1]Corrections[_2], a file of corrected records that were used in grading.',
+ '','').'
- Skipped, a file of records that were skipped.
+ '.&mt('[_1]Skipped[_2], a file of records that were skipped.',
+ '','').'
The server encountered an internal error or
misconfiguration and was unable to complete
your request.
Please contact the server administrator at
root@localhost to inform them of the time this error occurred,
and the actions you performed just before this error.
More information about this error may be available
in the server error log.