[Koha-patches] [PATCH] Bugfix 3176 - Browser selected languages are not use by OPAC
Frédéric Demians
f.demians at tamil.fr
Thu Apr 30 17:23:17 CEST 2009
This patch uses HTTP_ACCEPT_LANGUAGE web browser variable
to select OPAC available language.
---
C4/Languages.pm | 10 +++++-----
C4/Output.pm | 11 ++++-------
2 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/C4/Languages.pm b/C4/Languages.pm
index 5795202..a082b1f 100644
--- a/C4/Languages.pm
+++ b/C4/Languages.pm
@@ -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;
}
}
diff --git a/C4/Output.pm b/C4/Output.pm
index c8404dc..36b83a2 100644
--- a/C4/Output.pm
+++ b/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
--
1.5.6.5
More information about the Koha-patches
mailing list