summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Bugzilla/Install/Util.pm4
-rwxr-xr-xchecksetup.pl6
2 files changed, 9 insertions, 1 deletions
diff --git a/Bugzilla/Install/Util.pm b/Bugzilla/Install/Util.pm
index 233e08e19..6621a7a41 100644
--- a/Bugzilla/Install/Util.pm
+++ b/Bugzilla/Install/Util.pm
@@ -265,6 +265,8 @@ sub install_string {
die "No language defines the string '$string_id'"
if !defined $string_template;
+ utf8::decode($string_template) if !utf8::is_utf8($string_template);
+
$vars ||= {};
my @replace_keys = keys %$vars;
foreach my $key (@replace_keys) {
@@ -281,7 +283,7 @@ sub install_string {
}
$string_template =~ s/\Q##$key##\E/$replacement/g;
}
-
+
return $string_template;
}
diff --git a/checksetup.pl b/checksetup.pl
index 8993ff08d..a27446e0c 100755
--- a/checksetup.pl
+++ b/checksetup.pl
@@ -62,6 +62,12 @@ use Bugzilla::Install::Util qw(install_string get_version_and_os init_console);
# When we're running at the command line, we need to pick the right
# language before ever displaying any string.
init_console();
+# Required for displaying strings from install_string, which are always
+# in UTF-8, in every language. For other scripts, Bugzilla::init_page
+# handles this, but here we just need to assume that checksetup.pl output
+# is always UTF-8 in order for install_string to work properly in other
+# languages.
+binmode STDOUT, ':utf8';
my %switch;
GetOptions(\%switch, 'help|h|?', 'check-modules', 'no-templates|t',