View | Details | Raw Unified | Return to bug 7874
Collapse All | Expand All

(-)a/C4/Templates.pm (-14 / +11 lines)
Lines 4-10 use strict; Link Here
4
use warnings;
4
use warnings;
5
use Carp;
5
use Carp;
6
use CGI;
6
use CGI;
7
use List::Util qw/first/;
7
use List::MoreUtils qw/any/;
8
8
9
# Copyright 2009 Chris Cormack and The Koha Dev Team
9
# Copyright 2009 Chris Cormack and The Koha Dev Team
10
#
10
#
Lines 313-321 sub getlanguage { Link Here
313
    my ($query, $interface) = @_;
313
    my ($query, $interface) = @_;
314
314
315
    # Select a language based on cookie, syspref available languages & browser
315
    # Select a language based on cookie, syspref available languages & browser
316
    my $is_intranet = $interface eq 'intranet';
316
    my $preference_to_check =
317
    my @languages = split(",", C4::Context->preference(
317
      $interface eq 'intranet' ? 'language' : 'opaclanguages';
318
        $is_intranet ? 'language' : 'opaclanguages'));
318
    my @languages = split /,/, C4::Context->preference($preference_to_check);
319
319
320
    my $lang;
320
    my $lang;
321
321
Lines 326-345 sub getlanguage { Link Here
326
    }
326
    }
327
327
328
    # HTTP_ACCEPT_LANGUAGE
328
    # HTTP_ACCEPT_LANGUAGE
329
    unless ($lang) {
329
    if ( !$lang && $ENV{HTTP_ACCEPT_LANGUAGE} ) {
330
        my $http_accept_language = $ENV{ HTTP_ACCEPT_LANGUAGE };
330
        $lang = accept_language( $ENV{HTTP_ACCEPT_LANGUAGE},
331
        $lang = accept_language( $http_accept_language,
331
            getTranslatedLanguages( $interface, 'prog' ) );
332
            getTranslatedLanguages($interface,'prog') );
333
    }
332
    }
334
333
335
    # Ignore a lang not selected in sysprefs
334
    # Ignore a lang not selected in sysprefs
336
    $lang = undef  unless first { $_ eq $lang } @languages;
335
    if ( $lang && any { $_ eq $lang } @languages ) {
336
        return $lang;
337
    }
337
338
338
    # Fall back to English if necessary
339
    # Fall back to English if necessary
339
    $lang = 'en' unless $lang;
340
    return 'en';
340
341
    return $lang;
342
}
341
}
343
342
344
1;
343
1;
345
346
- 

Return to bug 7874