Skip to content

Commit c4b7997

Browse files
committed
Translate the feedback email templates.
1 parent f8a7d9c commit c4b7997

File tree

2 files changed

+131
-122
lines changed

2 files changed

+131
-122
lines changed

templates/ContentGenerator/Feedback/feedback_email.html.ep

Lines changed: 76 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,18 @@
11
% use WeBWorK::Utils qw(decodeAnswers);
22
% use WeBWorK::Utils::Sets qw(format_set_name_display);
33
%
4+
% my $yes = maketext('yes');
5+
% my $no = maketext('no');
6+
%
47
<html>
58
<body>
69
<p>
7-
% if ($problem) {
8-
Message from <%= $user->full_name %> (<%= $user->user_id %>) via WeBWorK at
9-
<%= $ce->{institutionName} %> (sent from
10-
<%= link_to format_set_name_display($set->set_id) . ', #' . $problem->problem_id => $emailableURL %>).
11-
% } elsif ($set) {
12-
Message from <%= $user->full_name %> (<%= $user->user_id %>) via WeBWorK at
13-
<%= $ce->{institutionName} %>
14-
(sent from <%= link_to format_set_name_display($set->set_id) => $emailableURL %>)
15-
% } else {
16-
Message from <%= $user->full_name %> (<%= $user->user_id %>) via WeBWorK at
17-
<%= $ce->{institutionName} %> (sent from <%= link_to 'this page' => $emailableURL %>).
18-
% }
10+
<%== maketext('Message from [_1] ([_2]) via WeBWorK at [_3] (sent from [_4]).',
11+
$user->full_name, $user->user_id, $ce->{institutionName},
12+
$problem ? link_to(format_set_name_display($set->set_id) . ', #' . $problem->problem_id, $emailableURL)
13+
: $set ? link_to(format_set_name_display($set->set_id), $emailableURL)
14+
: link_to('this page', $emailableURL)
15+
) =%>
1916
</p>
2017
% if ($feedback) {
2118
<div style="border: 1px solid lightgray; padding: 1rem; margin-bottom: 1rem; border-radius: 0.375rem">
@@ -32,19 +29,20 @@
3229
<table style="border-collapse: collapse; margin-bottom: 1rem">
3330
<thead>
3431
<tr><th style="text-align: left; padding: 0.25rem; border: 1px solid black;
35-
background-color: lightgray" colspan="2">Data about the problem</th></tr>
32+
background-color: lightgray" colspan="2"><%= maketext('Data about the problem') %></th></tr>
3633
</thead>
3734
<tbody>
3835
% my @rows = (
39-
% [ 'Problem ID', $problem->problem_id ],
40-
% [ 'Source file', $problem->source_file ],
41-
% [ 'Value', $problem->value ],
42-
% [ 'Max attempts', $problem->max_attempts == -1 ? 'unlimited' : $problem->max_attempts ],
43-
% [ 'Random seed', $problem->problem_seed ],
44-
% [ 'Status', $problem->status ],
45-
% [ 'Attempted', $problem->attempted ? 'yes' : 'no' ],
46-
% [ 'Correct attempts', $problem->num_correct ],
47-
% [ 'Incorrect attempts', $problem->num_incorrect ]
36+
% [ maketext('Problem ID'), $problem->problem_id ],
37+
% [ maketext('Source file'), $problem->source_file ],
38+
% [ maketext('Value'), $problem->value ],
39+
% [ maketext('Max attempts'),
40+
% $problem->max_attempts == -1 ? 'unlimited' : $problem->max_attempts ],
41+
% [ maketext('Random seed'), $problem->problem_seed ],
42+
% [ maketext('Status'), $problem->status ],
43+
% [ maketext('Attempted'), $problem->attempted ? $yes : $no ],
44+
% [ maketext('Correct attempts'), $problem->num_correct ],
45+
% [ maketext('Incorrect attempts'), $problem->num_incorrect ]
4846
% );
4947
% for (@rows) {
5048
<tr>
@@ -54,20 +52,26 @@
5452
% }
5553
% my %last_answer = decodeAnswers($problem->last_answer);
5654
<tr style="border-top: solid 1pt">
57-
<th style="text-align: left; padding: 0.25rem; vertical-align: baseline">Last submission:</th>
55+
<th style="text-align: left; padding: 0.25rem; vertical-align: baseline">
56+
<%= maketext('Last submission:') =%>
57+
</th>
5858
% if (%last_answer) {
59-
<td style="text-align: left; padding: 0.25rem; padding-top: 0"><table style="border-collapse: collapse">
60-
% for my $key (sort keys %last_answer) {
61-
% if ($last_answer{$key}) {
62-
<tr>
63-
<td style="text-align: left; padding: 0.25rem"><%= $key %>:</td>
64-
<td style="text-align: left; padding: 0.25rem"><%= $last_answer{$key} %></td>
65-
</tr>
66-
% }
67-
% }
68-
</table></td>
59+
<td style="text-align: left; padding: 0.25rem; padding-top: 0">
60+
<table style="border-collapse: collapse">
61+
% for my $key (sort keys %last_answer) {
62+
% if ($last_answer{$key}) {
63+
<tr>
64+
<td style="text-align: left; padding: 0.25rem"><%= $key %>:</td>
65+
<td style="text-align: left; padding: 0.25rem">
66+
<%= $last_answer{$key} %>
67+
</td>
68+
</tr>
69+
% }
70+
% }
71+
</table>
72+
</td>
6973
% } else {
70-
<td style="text-align: left; padding: 0.25rem">none</td>
74+
<td style="text-align: left; padding: 0.25rem"><%= maketext('none') %></td>
7175
% }
7276
</tr>
7377
</tbody>
@@ -77,28 +81,28 @@
7781
<table style="border-collapse: collapse; margin-bottom: 1rem">
7882
<thead>
7983
<tr><th style="text-align: left; padding: 0.25rem; border: 1px solid black;
80-
background-color: lightgray" colspan="2">Data about the assignment</th></tr>
84+
background-color: lightgray" colspan="2"><%= maketext('Data about the assignment') %></th></tr>
8185
</thead>
8286
<tbody>
8387
% my @rows = (
84-
% [ 'Set ID', $set->set_id ],
85-
% [ 'Set header file', $set->set_header ],
86-
% [ 'Hardcopy header file', $set->hardcopy_header ],
87-
% [ 'Open date', $c->formatDateTime($set->open_date) ],
88-
% [ 'Close date', $c->formatDateTime($set->due_date) ],
89-
% [ 'Answer date', $c->formatDateTime($set->answer_date) ],
90-
% [ 'Visible', $set->visible ? 'yes' : 'no' ],
91-
% [ 'Assignment type', $set->assignment_type ]
88+
% [ maketext('Set ID'), $set->set_id ],
89+
% [ maketext('Set header file'), $set->set_header ],
90+
% [ maketext('Hardcopy header file'), $set->hardcopy_header ],
91+
% [ maketext('Open date'), $c->formatDateTime($set->open_date) ],
92+
% [ maketext('Close date'), $c->formatDateTime($set->due_date) ],
93+
% [ maketext('Answer date'), $c->formatDateTime($set->answer_date) ],
94+
% [ maketext('Visible'), $set->visible ? $yes : $no ],
95+
% [ maketext('Assignment type'), $set->assignment_type ]
9296
% );
9397
% if ($set->assignment_type =~ /gateway/) {
9498
% push @rows, (
95-
% [ 'Attempts per version', $set->attempts_per_version ],
96-
% [ 'Time interval', $set->time_interval ],
97-
% [ 'Versions per interval', $set->versions_per_interval ],
98-
% [ 'Version time limit', $set->version_time_limit ],
99-
% [ 'Version creation time', $c->formatDateTime($set->version_creation_time) ],
100-
% [ 'Problem randorder', $set->problem_randorder ],
101-
% [ 'Version last attempt time', $set->version_last_attempt_time ]
99+
% [ maketext('Attempts per version'), $set->attempts_per_version ],
100+
% [ maketext('Time interval'), $set->time_interval ],
101+
% [ maketext('Versions per interval'), $set->versions_per_interval ],
102+
% [ maketext('Version time limit'), $set->version_time_limit ],
103+
% [ maketext('Version creation time'), $c->formatDateTime($set->version_creation_time) ],
104+
% [ maketext('Problem randorder'), $set->problem_randorder ],
105+
% [ maketext('Version last attempt time'), $set->version_last_attempt_time ]
102106
% );
103107
% }
104108
% for (@rows) {
@@ -113,16 +117,20 @@
113117
% if ($problem && $verbosity >= 1) {
114118
<table style="border-collapse: collapse; margin-bottom: 1rem">
115119
<thead>
116-
<tr><th style="text-align: left; padding: 0.25rem; border: 1px solid black;
117-
background-color: lightgray" colspan="2">Data about the problem processor</th></tr>
120+
<tr>
121+
<th style="text-align: left; padding: 0.25rem; border: 1px solid black;
122+
background-color: lightgray" colspan="2">
123+
<%= maketext('Data about the problem processor') =%>
124+
</th>
125+
</tr>
118126
</thead>
119127
<tbody>
120128
% my @rows = (
121-
% [ 'Display Mode', param('displayMode') ],
122-
% [ 'Show Old Answers', param('showOldAnswers') ? 'yes' : 'no' ],
123-
% [ 'Show Correct Answers', param('showCorrectAnswers') ? 'yes' : 'no' ],
124-
% [ 'Show Hints', param('showHints') ? 'yes' : 'no' ],
125-
% [ 'Show Solutions', param('showSolutions') ? 'yes' : 'no' ]
129+
% [ maketext('Display Mode'), param('displayMode') ],
130+
% [ maketext('Show Old Answers'), param('showOldAnswers') ? $yes : $no ],
131+
% [ maketext('Show Correct Answers'), param('showCorrectAnswers') ? $yes : $no ],
132+
% [ maketext('Show Hints'), param('showHints') ? $yes : $no ],
133+
% [ maketext('Show Solutions'), param('showSolutions') ? $yes : $no ]
126134
% );
127135
% for (@rows) {
128136
<tr>
@@ -138,26 +146,26 @@
138146
<table style="border-collapse: collapse; margin-bottom: 1rem">
139147
<thead>
140148
<tr><th style="text-align: left; padding: 0.25rem; border: 1px solid black;
141-
background-color: lightgray" colspan="2">Data about the user</th></tr>
149+
background-color: lightgray" colspan="2"><%= maketext('Data about the user') %></th></tr>
142150
</thead>
143151
<tbody>
144152
% my @rows = (
145-
% [ 'User ID', $user->user_id ],
146-
% [ 'Name', $user->full_name ],
147-
% [ 'Email', $user->email_address ]
153+
% [ maketext('User ID'), $user->user_id ],
154+
% [ maketext('Name'), $user->full_name ],
155+
% [ maketext('Email'), $user->email_address ]
148156
% );
149157
% unless ($ce->{blockStudentIDinFeedback}) { push @rows, ['Student ID', $user->student_id]; }
150158
% my $status_name = $ce->status_abbrev_to_name($user->status);
151159
% my $status_string =
152160
% defined $status_name
153161
% ? "$status_name ('" . $user->status . q{')}
154-
% : $user->status . ' (unknown status abbreviation)';
162+
% : maketext('[_1] (unknown status abbreviation)', $user->status);
155163
% push @rows, (
156-
% [ 'Status', $status_string ],
157-
% [ 'Section', $user->section ],
158-
% [ 'Recitation', $user->recitation ],
159-
% [ 'Comment', $user->comment ],
160-
% [ 'IP Address', $remote_host ]
164+
% [ maketext('Status'), $status_string ],
165+
% [ maketext('Section'), $user->section ],
166+
% [ maketext('Recitation'), $user->recitation ],
167+
% [ maketext('Comment'), $user->comment ],
168+
% [ maketext('IP Address'), $remote_host ]
161169
%);
162170
% for (@rows) {
163171
<tr>
@@ -172,7 +180,7 @@
172180
<table style="border-collapse: collapse">
173181
<thead>
174182
<tr><th style="text-align: left; padding: 0.25rem; border: 1px solid black;
175-
background-color: lightgray" colspan="2">Data about the environment</th></tr>
183+
background-color: lightgray" colspan="2"><%= maketext('Data about the environment') %></th></tr>
176184
</thead>
177185
<tbody>
178186
<tr><td style="text-align: left; padding: 0.25rem"><pre><%= dumper($ce) %></pre></td></tr>
Lines changed: 55 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,104 +1,105 @@
11
% use WeBWorK::Utils qw(decodeAnswers);
22
% use WeBWorK::Utils::Sets qw(format_set_name_display);
33
%
4-
Message from <%= $user->full_name %> (<%= $user->user_id %>) via WeBWorK at <%= $ce->{institutionName} %>.
4+
<%= maketext('Message from [_1] ([_2]) via WeBWorK at [_3].',
5+
$user->full_name, $user->user_id, $ce->{institutionName}) %>
56

67
% if ($problem) {
7-
Feedback sent from <%= format_set_name_display($set->set_id) . ', #' . $problem->problem_id %>:
8+
<%= maketext('Feedback sent from [_1]:', format_set_name_display($set->set_id) . ', #' . $problem->problem_id) %>
89
% } elsif ($set) {
9-
Feedback sent from <%= format_set_name_display($set->set_id) %>:
10+
<%= maketext('Feedback sent from [_1]:', format_set_name_display($set->set_id)) %>
1011
% } else {
11-
Feedback sent from:
12+
<%= maketext('Feedback sent from:') %>
1213
% }
1314
<%== $emailableURL %>
1415

1516
% if ($feedback) {
16-
<%== $user->full_name %> (<%== $user->user_id %>) wrote:
17+
<%= maketext('[_1] ([_2]) wrote:', $user->full_name, $user->user_id) %>
1718

1819
<%== $feedback %>
1920

2021
% }
2122
% if ($problem && $verbosity >= 1) {
2223

23-
***** Data about the problem: *****
24+
***** <%= maketext('Data about the problem:') %> *****
2425

25-
Problem ID: <%== $problem->problem_id %>
26-
Source file: <%== $problem->source_file %>
27-
Value: <%== $problem->value %>
28-
Max attempts <%== $problem->max_attempts == -1 ? 'unlimited' : $problem->max_attempts %>
29-
Random seed: <%== $problem->problem_seed %>
30-
Status: <%== $problem->status %>
31-
Attempted: <%== $problem->attempted ? 'yes' : 'no' %>
32-
Number of correct attempts: <%== $problem->num_correct %>
33-
Number of incorrect attempts: <%== $problem->num_incorrect %>
26+
<%= maketext('Problem ID:') %> <%== $problem->problem_id %>
27+
<%= maketext('Source file:') %> <%== $problem->source_file %>
28+
<%= maketext('Value:') %> <%== $problem->value %>
29+
<%= maketext('Max attempts') %> <%== $problem->max_attempts == -1 ? 'unlimited' : $problem->max_attempts %>
30+
<%= maketext('Random seed:') %> <%== $problem->problem_seed %>
31+
<%= maketext('Status:') %> <%== $problem->status %>
32+
<%= maketext('Attempted:') %> <%== $problem->attempted ? 'yes' : 'no' %>
33+
<%= maketext('Number of correct attempts:') %> <%== $problem->num_correct %>
34+
<%= maketext('Number of incorrect attempts:') %> <%== $problem->num_incorrect %>
3435
% my %last_answer = decodeAnswers($problem->last_answer);
3536
% if (%last_answer) {
36-
Last submission:
37-
% for my $key (sort keys %last_answer) {
38-
% if ($last_answer{$key}) {
37+
<%= maketext('Last submission:') %>
38+
% for my $key (sort keys %last_answer) {
39+
% if ($last_answer{$key}) {
3940
<%== $key %>: <%== $last_answer{$key} %>
41+
% }
4042
% }
41-
% }
4243
% } else {
43-
Last submission: none
44+
<%= maketext('Last submission:') =%> <%= maketext('none') %>
4445
% }
4546
% }
4647
% if ($set && $verbosity >= 1) {
4748

48-
***** Data about the assignment: *****
49+
***** <%= maketext('Data about the assignment:') %> *****
4950

50-
Set ID: <%== $set->set_id %>
51-
Set header file: <%== $set->set_header %>
52-
Hardcopy header file: <%== $set->hardcopy_header %>
53-
Open date: <%== $c->formatDateTime($set->open_date) %>
54-
Due date: <%== $c->formatDateTime($set->due_date) %>
55-
Answer date: <%== $c->formatDateTime($set->answer_date) %>
56-
Visible: <%== $set->visible ? 'yes' : 'no' %>
57-
Assignment type: <%== $set->assignment_type %>
51+
<%= maketext('Set ID:') %> <%== $set->set_id %>
52+
<%= maketext('Set header file:') %> <%== $set->set_header %>
53+
<%= maketext('Hardcopy header file:') %> <%== $set->hardcopy_header %>
54+
<%= maketext('Open date:') %> <%== $c->formatDateTime($set->open_date) %>
55+
<%= maketext('Due date:') %> <%== $c->formatDateTime($set->due_date) %>
56+
<%= maketext('Answer date:') %> <%== $c->formatDateTime($set->answer_date) %>
57+
<%= maketext('Visible:') %> <%== $set->visible ? 'yes' : 'no' %>
58+
<%= maketext('Assignment type:') %> <%== $set->assignment_type %>
5859
% if ($set->assignment_type =~ /gateway/) {
59-
Attempts per version: <%== $set->attempts_per_version %>
60-
Time interval: <%== $set->time_interval %>
61-
Versions per interval: <%== $set->versions_per_interval %>
62-
Version time limit: <%== $set->version_time_limit %>
63-
Version creation time: <%== $c->formatDateTime($set->version_creation_time) %>
64-
Problem randorder: <%== $set->problem_randorder %>
65-
Version last attempt time: <%== $set->version_last_attempt_time %>
60+
<%= maketext('Attempts per version:') %> <%== $set->attempts_per_version %>
61+
<%= maketext('Time interval:') %> <%== $set->time_interval %>
62+
<%= maketext('Versions per interval:') %> <%== $set->versions_per_interval %>
63+
<%= maketext('Version time limit:') %> <%== $set->version_time_limit %>
64+
<%= maketext('Version creation time:') %> <%== $c->formatDateTime($set->version_creation_time) %>
65+
<%= maketext('Problem randorder:') %> <%== $set->problem_randorder %>
66+
<%= maketext('Version last attempt time:') %> <%== $set->version_last_attempt_time %>
6667
% }
6768
% }
6869
% if ($problem && $verbosity >= 1) {
6970

70-
***** Data about the problem processor: *****
71+
***** <%= maketext('Data about the problem processor:') %> *****
7172

72-
Display Mode: <%== param('displayMode') %>
73-
Show Old Answers: <%== param('showOldAnswers') ? 'yes' : 'no' %>
74-
Show Correct Answers: <%== param('showCorrectAnswers') ? 'yes' : 'no' %>
75-
Show Hints: <%== param('showHints') ? 'yes' : 'no' %>
76-
Show Solutions: <%== param('showSolutions') ? 'yes' : 'no' %>
73+
<%= maketext('Display Mode:') %> <%== param('displayMode') %>
74+
<%= maketext('Show Old Answers:') %> <%== param('showOldAnswers') ? 'yes' : 'no' %>
75+
<%= maketext('Show Correct Answers:') %> <%== param('showCorrectAnswers') ? 'yes' : 'no' %>
76+
<%= maketext('Show Hints:') %> <%== param('showHints') ? 'yes' : 'no' %>
77+
<%= maketext('Show Solutions:') %> <%== param('showSolutions') ? 'yes' : 'no' %>
7778
% }
7879
% if ($user && $verbosity >= 1) {
7980

80-
***** Data about the user: *****
81+
***** <%= maketext('Data about the user:') %> *****
8182

82-
User ID: <%== $user->user_id %>
83-
Name: <%== $user->full_name %>
84-
Email: <%== $user->email_address %>
83+
<%= maketext('User ID:') %> <%== $user->user_id %>
84+
<%= maketext('Name:') %> <%== $user->full_name %>
85+
<%= maketext('Email:') %> <%== $user->email_address %>
8586
% unless ($ce->{blockStudentIDinFeedback}) {
86-
Student ID: <%== $user->student_id %>
87+
<%= maketext('Student ID:') %> <%== $user->student_id %>
8788
% }
8889
% my $status_name = $ce->status_abbrev_to_name($user->status);
8990
%my $status_string =
9091
% defined $status_name
9192
% ? "$status_name ('" . $user->status . q{')}
92-
% : $user->status . ' (unknown status abbreviation)';
93-
Status: <%== $status_string %>
94-
Section: <%== $user->section %>
95-
Recitation: <%== $user->recitation %>
96-
Comment: <%== $user->comment %>
97-
IP Address: <%== $remote_host %>:<%== $c->tx->remote_port || 'UNKNOWN' %>
93+
% : maketext('[_1] (unknown status abbreviation)', $user->status);
94+
<%= maketext('Status:') %> <%== $status_string %>
95+
<%= maketext('Section:') %> <%== $user->section %>
96+
<%= maketext('Recitation:') %> <%== $user->recitation %>
97+
<%= maketext('Comment:') %> <%== $user->comment %>
98+
<%= maketext('IP Address:') %> <%== $remote_host %>:<%== $c->tx->remote_port || 'UNKNOWN' %>
9899
% }
99100
% if ($verbosity >= 2) {
100101

101-
Data about the environment
102+
<%= maketext('Data about the environment') %>
102103

103104
<%== dumper($ce) %>
104105
% }

0 commit comments

Comments
 (0)