summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormkanat%bugzilla.org <>2006-09-19 03:56:38 +0200
committermkanat%bugzilla.org <>2006-09-19 03:56:38 +0200
commitfef6f78c2c8b9441dfd268257d40691ec79ef9a1 (patch)
tree897795c8eac444026eeff03a1eb62d79447297ed
parent5750cad16151bf7ad028f7dc79a8ab39b2f9a07a (diff)
downloadbugzilla-fef6f78c2c8b9441dfd268257d40691ec79ef9a1.tar.gz
bugzilla-fef6f78c2c8b9441dfd268257d40691ec79ef9a1.tar.xz
Bug 223880: "marked a duplicate" messages cannot be localized
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=myk
-rw-r--r--Bugzilla.pm11
-rw-r--r--Bugzilla/BugMail.pm2
-rw-r--r--Bugzilla/Template.pm6
-rw-r--r--Bugzilla/Util.pm2
-rwxr-xr-xprocess_bug.cgi13
-rw-r--r--template/en/default/global/messages.html.tmpl9
6 files changed, 32 insertions, 11 deletions
diff --git a/Bugzilla.pm b/Bugzilla.pm
index c4300b0b5..ef67643af 100644
--- a/Bugzilla.pm
+++ b/Bugzilla.pm
@@ -146,6 +146,12 @@ sub template {
return request_cache()->{template};
}
+sub template_inner {
+ my $class = shift;
+ $class->request_cache->{template_inner} ||= Bugzilla::Template->create();
+ return $class->request_cache->{template_inner};
+}
+
sub cgi {
my $class = shift;
request_cache()->{cgi} ||= new Bugzilla::CGI();
@@ -452,6 +458,11 @@ that.
The current C<Template> object, to be used for output
+=item C<template_inner>
+
+If you ever need a L<Bugzilla::Template> object while you're already
+processing a template, use this.
+
=item C<cgi>
The current C<cgi> object. Note that modules should B<not> be using this in
diff --git a/Bugzilla/BugMail.pm b/Bugzilla/BugMail.pm
index 35b05d231..2fc8b0f72 100644
--- a/Bugzilla/BugMail.pm
+++ b/Bugzilla/BugMail.pm
@@ -645,7 +645,7 @@ sub sendMail {
};
my $msg;
- my $template = Bugzilla::Template->create();
+ my $template = Bugzilla->template_inner;
$template->process("email/newchangedmail.txt.tmpl", $vars, \$msg)
|| ThrowTemplateError($template->error());
diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm
index a60a453d6..b54c4a0f2 100644
--- a/Bugzilla/Template.pm
+++ b/Bugzilla/Template.pm
@@ -331,7 +331,8 @@ sub quoteUrls {
# we have to do this in one pattern, and so this is semi-messy.
# Also, we can't use $bug_re?$comment_re? because that will match the
# empty string
- my $bug_re = qr/bug\s*\#?\s*(\d+)/i;
+ my $bug_word = get_text('term', { term => 'bug' });
+ my $bug_re = qr/\Q$bug_word\E\s*\#?\s*(\d+)/i;
my $comment_re = qr/comment\s*\#?\s*(\d+)/i;
$text =~ s~\b($bug_re(?:\s*,?\s*$comment_re)?|$comment_re)
~ # We have several choices. $1 here is the link, and $2-4 are set
@@ -340,7 +341,8 @@ sub quoteUrls {
"<a href=\"$current_bugurl#c$4\">$1</a>")
~egox;
- # Old duplicate markers
+ # Old duplicate markers. These don't use $bug_word because they are old
+ # and were never customizable.
$text =~ s~(?<=^\*\*\*\ This\ bug\ has\ been\ marked\ as\ a\ duplicate\ of\ )
(\d+)
(?=\ \*\*\*\Z)
diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm
index c051a987f..8457c8df8 100644
--- a/Bugzilla/Util.pm
+++ b/Bugzilla/Util.pm
@@ -400,7 +400,7 @@ sub clean_text {
sub get_text {
my ($name, $vars) = @_;
- my $template = Bugzilla->template;
+ my $template = Bugzilla->template_inner;
$vars ||= {};
$vars->{'message'} = $name;
my $message;
diff --git a/process_bug.cgi b/process_bug.cgi
index 4ca02b17b..1824dd7f3 100755
--- a/process_bug.cgi
+++ b/process_bug.cgi
@@ -1147,8 +1147,8 @@ SWITCH: for ($cgi->param('knob')) {
ChangeStatus('RESOLVED');
ChangeResolution('DUPLICATE');
my $comment = $cgi->param('comment');
- $comment .= "\n\n*** This bug has been marked " .
- "as a duplicate of bug $duplicate ***";
+ $comment .= "\n\n"
+ . get_text('bug_duplicate_of', { dupe_of => $duplicate });
$cgi->param('comment', $comment);
last SWITCH;
};
@@ -2025,11 +2025,10 @@ foreach my $id (@idlist) {
$dbh->do(q{INSERT INTO cc (who, bug_id) VALUES (?, ?)},
undef, $reporter, $duplicate);
}
- # Bug 171639 - Duplicate notifications do not need to be private.
- AppendComment($duplicate, $whoid,
- "*** Bug " . $cgi->param('id') .
- " has been marked as a duplicate of this bug. ***",
- 0, $timestamp);
+ my $dupe_comment = get_text('bug_has_duplicate',
+ { dupe => $cgi->param('id') });
+ # Bug 171639 - Duplicate notifications do not need to be private.
+ AppendComment($duplicate, $whoid, $dupe_comment, 0, $timestamp);
$dbh->do(q{INSERT INTO duplicates VALUES (?, ?)}, undef,
$duplicate, $cgi->param('id'));
diff --git a/template/en/default/global/messages.html.tmpl b/template/en/default/global/messages.html.tmpl
index 21c79b8ac..3d05214dc 100644
--- a/template/en/default/global/messages.html.tmpl
+++ b/template/en/default/global/messages.html.tmpl
@@ -121,6 +121,12 @@
Please add your attachment by clicking the "Create a New Attachment" link
below.
+ [% ELSIF message_tag == "bug_duplicate_of" %]
+ *** This [% terms.bug %] has been marked as a duplicate of [% terms.bug %] [%+ dupe_of FILTER html %] ***
+
+ [% ELSIF message_tag == "bug_has_duplicate" %]
+ *** [% terms.Bug %] [%+ dupe FILTER html %] has been marked as a duplicate of this [% terms.bug %]. ***
+
[% ELSIF message_tag == "buglist_adding_field" %]
[% title = "Adding field to search page..." %]
[% link = "Click here if the page does not redisplay automatically." %]
@@ -386,6 +392,9 @@
The cookie that was remembering your login is now gone.
[% END %]
+ [% ELSIF message_tag == "term" %]
+ [% terms.$term FILTER html %]
+
[% ELSIF message_tag == "user_match_failed" %]
You entered a username that did not match any known
[% terms.Bugzilla %] users, so we have instead left