# Portions Copyright 2009 Chris Cormack and the Koha Dev Team
# This file is part of Koha.
#
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
#
-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU General Public License along
-# with Koha; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
use strict;
$language_subtag_registry->{language_description} = $language_descriptions->{description};
}
}
- if ( !$language_list || index ( $language_list, $language_subtag_registry->{ iso639_2_code } ) >= 0) {
+ # Do not push unless valid iso639-2 code
+ if ( $language_subtag_registry->{ iso639_2_code } and ( !$language_list || index ( $language_list, $language_subtag_registry->{ iso639_2_code } ) >= 0) ) {
push @languages_loop, $language_subtag_registry;
}
}
$cgi //= new CGI;
my $interface = C4::Context->interface;
+ my $theme = C4::Context->preference( ( $interface eq 'opac' ) ? 'opacthemes' : 'template' );
my $language;
my $preference_to_check =
$interface eq 'intranet' ? 'language' : 'opaclanguages';
# Get the available/valid languages list
- my @languages = split /,/, C4::Context->preference($preference_to_check);
+ my @languages;
+ my $preference_value = C4::Context->preference($preference_to_check);
+ if ($preference_value) {
+ @languages = split /,/, $preference_value;
+ }
# Chose language from the URL
$language = $cgi->param( 'language' );
# HTTP_ACCEPT_LANGUAGE
if ( !$language && $ENV{HTTP_ACCEPT_LANGUAGE} ) {
$language = accept_language( $ENV{HTTP_ACCEPT_LANGUAGE},
- getTranslatedLanguages( $interface, 'prog' ) );
+ getTranslatedLanguages( $interface, $theme ) );
}
# Ignore a lang not selected in sysprefs