Bug 33237: Move and simplify language selection logic
This patch moves the language selection into GetPreparedLetter, drops the interface check step and ensures the default template always uses the default include language as per the OPACLanguages settings. Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
parent
25d64cc6b2
commit
c50bb140a8
1 changed files with 10 additions and 15 deletions
|
@ -607,6 +607,7 @@ sub GetPreparedLetter {
|
|||
$letter = $template->unblessed;
|
||||
$letter->{'content-type'} = 'text/html; charset="UTF-8"' if $letter->{is_html};
|
||||
}
|
||||
$lang = $letter->{'lang'};
|
||||
|
||||
my $objects = $params{objects} || {};
|
||||
my $tables = $params{tables} || {};
|
||||
|
@ -618,6 +619,14 @@ sub GetPreparedLetter {
|
|||
return;
|
||||
my $want_librarian = $params{want_librarian};
|
||||
|
||||
# Best guess at language 'default' notice is written for include handling
|
||||
if ( $lang eq 'default' ) {
|
||||
|
||||
# Pick the first selected syspref language
|
||||
my @languages = split /,/, C4::Context->preference('OPACLanguages');
|
||||
$lang = shift @languages;
|
||||
}
|
||||
|
||||
$letter->{content} = _process_tt(
|
||||
{
|
||||
content => $letter->{content},
|
||||
|
@ -1671,21 +1680,7 @@ sub _process_tt {
|
|||
my $loops = $params->{loops};
|
||||
my $objects = $params->{objects} || {};
|
||||
my $substitute = $params->{substitute} || {};
|
||||
my $interface = C4::Context->interface;
|
||||
my $lang;
|
||||
if ( defined( $params->{lang} ) && $params->{lang} ne 'default' ) {
|
||||
$lang = $params->{lang};
|
||||
} elsif ( $interface eq 'intranet' || $interface eq 'opac' ) {
|
||||
|
||||
#use interface language
|
||||
$lang = C4::Languages::getlanguage();
|
||||
} else {
|
||||
|
||||
# Pick the first selected syspref language
|
||||
my @languages = split /,/, C4::Context->preference('language');
|
||||
$lang = shift @languages;
|
||||
}
|
||||
$lang //= 'en';
|
||||
my $lang = $params->{lang} // 'en';
|
||||
my ($theme, $availablethemes);
|
||||
|
||||
my $htdocs = C4::Context->config('intrahtdocs');
|
||||
|
|
Loading…
Reference in a new issue