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:
Frédéric Demians 2009-04-30 17:23:17 +02:00 committed by Henri-Damien LAURENT
parent 5d2ad73e98
commit 93c9bd7bb1
2 changed files with 9 additions and 12 deletions

View File

@ -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;
}
}

View File

@ -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