Commit 52c4af9c authored by Frédéric Buclin's avatar Frédéric Buclin

Bug 830467: Don't call _wanted_languages() when only one is available

r=glob a=LpSolit
parent d8643908
...@@ -28,7 +28,7 @@ use Bugzilla::Extension; ...@@ -28,7 +28,7 @@ use Bugzilla::Extension;
use Bugzilla::DB; use Bugzilla::DB;
use Bugzilla::Install::Localconfig qw(read_localconfig); use Bugzilla::Install::Localconfig qw(read_localconfig);
use Bugzilla::Install::Requirements qw(OPTIONAL_MODULES); use Bugzilla::Install::Requirements qw(OPTIONAL_MODULES);
use Bugzilla::Install::Util qw(init_console); use Bugzilla::Install::Util qw(init_console include_languages);
use Bugzilla::Template; use Bugzilla::Template;
use Bugzilla::User; use Bugzilla::User;
use Bugzilla::Error; use Bugzilla::Error;
...@@ -420,6 +420,10 @@ sub languages { ...@@ -420,6 +420,10 @@ sub languages {
return Bugzilla::Install::Util::supported_languages(); return Bugzilla::Install::Util::supported_languages();
} }
sub current_language {
return $_[0]->request_cache->{current_language} ||= (include_languages())[0];
}
sub error_mode { sub error_mode {
my ($class, $newval) = @_; my ($class, $newval) = @_;
if (defined $newval) { if (defined $newval) {
...@@ -912,6 +916,10 @@ The main database handle. See L<DBI>. ...@@ -912,6 +916,10 @@ The main database handle. See L<DBI>.
Currently installed languages. Currently installed languages.
Returns a reference to a list of RFC 1766 language tags of installed languages. Returns a reference to a list of RFC 1766 language tags of installed languages.
=item C<current_language>
The currently active language.
=item C<switch_to_shadow_db> =item C<switch_to_shadow_db>
Switch from using the main database to using the shadow database. Switch from using the main database to using the shadow database.
......
...@@ -371,7 +371,10 @@ sub include_languages { ...@@ -371,7 +371,10 @@ sub include_languages {
# Basically, the way this works is that we have a list of languages # Basically, the way this works is that we have a list of languages
# that we *want*, and a list of languages that Bugzilla actually # that we *want*, and a list of languages that Bugzilla actually
# supports. # supports. If there is only one language installed, we take it.
my $supported = supported_languages();
return @$supported if @$supported == 1;
my $wanted; my $wanted;
if ($params->{language}) { if ($params->{language}) {
# We can pass several languages at once as an arrayref # We can pass several languages at once as an arrayref
...@@ -382,7 +385,6 @@ sub include_languages { ...@@ -382,7 +385,6 @@ sub include_languages {
else { else {
$wanted = _wanted_languages(); $wanted = _wanted_languages();
} }
my $supported = supported_languages();
my $actual = _wanted_to_actual_languages($wanted, $supported); my $actual = _wanted_to_actual_languages($wanted, $supported);
return @$actual; return @$actual;
} }
......
...@@ -881,14 +881,9 @@ sub create { ...@@ -881,14 +881,9 @@ sub create {
# Currently logged in user, if any # Currently logged in user, if any
# If an sudo session is in progress, this is the user we're faking # If an sudo session is in progress, this is the user we're faking
'user' => sub { return Bugzilla->user; }, 'user' => sub { return Bugzilla->user; },
# Currenly active language # Currenly active language
# XXX Eventually this should probably be replaced with something 'current_language' => sub { return Bugzilla->current_language; },
# like Bugzilla->language.
'current_language' => sub {
my ($language) = include_languages();
return $language;
},
# If an sudo session is in progress, this is the user who # If an sudo session is in progress, this is the user who
# started the session. # started the session.
...@@ -899,7 +894,7 @@ sub create { ...@@ -899,7 +894,7 @@ sub create {
# Allow templates to access docs url with users' preferred language # Allow templates to access docs url with users' preferred language
'docs_urlbase' => sub { 'docs_urlbase' => sub {
my ($language) = include_languages(); my $language = Bugzilla->current_language;
my $docs_urlbase = Bugzilla->params->{'docs_urlbase'}; my $docs_urlbase = Bugzilla->params->{'docs_urlbase'};
$docs_urlbase =~ s/\%lang\%/$language/; $docs_urlbase =~ s/\%lang\%/$language/;
return $docs_urlbase; return $docs_urlbase;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment