Bugfix 3176 - Browser selected languages are not use by OPAC
This patch uses HTTP_ACCEPT_LANGUAGE web browser variable to select OPAC available language. Signed-off-by: Galen Charlton <galen.charlton@liblime.com> Signed-off-by: Henri-Damien LAURENT <henridamien.laurent@biblibre.com>
This commit is contained in:
parent
5d2ad73e98
commit
93c9bd7bb1
|
|
@ -443,7 +443,6 @@ sub accept_language {
|
|||
if ($clientPreferences) {
|
||||
# There should be no whitespace anways, but a cleanliness/sanity check
|
||||
$clientPreferences =~ s/\s//g;
|
||||
|
||||
# Prepare the list of client-acceptable languages
|
||||
foreach my $tag (split(/,/, $clientPreferences)) {
|
||||
my ($language, $quality) = split(/\;/, $tag);
|
||||
|
|
@ -464,10 +463,11 @@ sub accept_language {
|
|||
my %supportedLanguages = ();
|
||||
my %secondaryLanguages = ();
|
||||
foreach my $language (@$supportedLanguages) {
|
||||
# warn "Language supported: " . $language->{language_code};
|
||||
$supportedLanguages{lc($language->{language_code})} = $language->{language_code};
|
||||
if ($language->{language_code} =~ /^([^-]+)-?/) {
|
||||
$secondaryLanguages{lc($1)} = $language->{language_code};
|
||||
# warn "Language supported: " . $language->{language};
|
||||
my $subtag = $language->{rfc4646_subtag};
|
||||
$supportedLanguages{lc($subtag)} = $subtag;
|
||||
if ( $subtag =~ /^([^-]+)-?/ ) {
|
||||
$secondaryLanguages{lc($1)} = $subtag;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
11
C4/Output.pm
11
C4/Output.pm
|
|
@ -139,13 +139,10 @@ sub themelanguage {
|
|||
# Set some defaults for language and theme
|
||||
# First, check the user's preferences
|
||||
my $lang;
|
||||
my $http_env = $ENV{HTTP_ACCEPT_LANGUAGE};
|
||||
$http_env =~ m/(\w+-*\w*),/;
|
||||
my $language_preference = $1;
|
||||
my $http_accept_language = regex_lang_subtags($language_preference)->{language};
|
||||
if ($http_accept_language) {
|
||||
$lang = accept_language($http_accept_language,getTranslatedLanguages($interface,'prog'));
|
||||
}
|
||||
my $http_accept_language = $ENV{ HTTP_ACCEPT_LANGUAGE };
|
||||
$lang = accept_language( $http_accept_language,
|
||||
getTranslatedLanguages($interface,'prog') )
|
||||
if $http_accept_language;
|
||||
# But, if there's a cookie set, obey it
|
||||
$lang = $query->cookie('KohaOpacLanguage') if $query->cookie('KohaOpacLanguage');
|
||||
# Fall back to English
|
||||
|
|
|
|||
Loading…
Reference in New Issue