From 086878238ed099e7f2415bab91351a13f7a27d02 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Wed, 24 Apr 2024 16:39:52 +0100 Subject: [PATCH] Bug 33237: Move and simplify langauge 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 --- C4/Letters.pm | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/C4/Letters.pm b/C4/Letters.pm index f099686bb0d..dc1db2190b0 100644 --- a/C4/Letters.pm +++ b/C4/Letters.pm @@ -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'); -- 2.44.0