From fba905f02e9d7296a4dc6226d9745d6907e1cec4 Mon Sep 17 00:00:00 2001
From: Tomas Cohen Arazi <tomascohen@theke.io>
Date: Tue, 11 Feb 2025 18:45:04 +0000
Subject: [PATCH] Bug 38340: Make Standard ILL backend templates translatable

This patchset moves the `Standard` backend templates into the right
places so they are picked up for translation.

To test:
1. Apply this patches
2. Notice the `Standard` ILL backend works as expected
3. Run:
   $ ktd --shell
  k$ cd misc/translator/po
  k$ git fetch ; git reset --hard origin/main
  k$ cd ..
  k$ perl translate update es-ES
  k$ cd po
  k$ git diff
4. Inside the diff pager, make a search for 'backends/Standard'
=> SUCCESS: There are strings that come from the Standard backend!
5. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Nind <david@davidnind.com>
---
 Koha/ILL/Request.pm | 54 ++++++++++++++++++++++++++-------------------
 1 file changed, 31 insertions(+), 23 deletions(-)

diff --git a/Koha/ILL/Request.pm b/Koha/ILL/Request.pm
index 90035032e4..cf6dc31d99 100644
--- a/Koha/ILL/Request.pm
+++ b/Koha/ILL/Request.pm
@@ -1156,36 +1156,44 @@ sub expand_template {
     my ( $self, $params ) = @_;
     my $backend = $self->_backend->name;
 
-    # Generate path to file to load
-    my $backend_dir;
-    my $backend_tmpl;
+    if ( $backend eq 'Standard' ) {
 
-    my $backend_plugin = $self->get_backend_plugin( $self->_backend->name );
-    if ($backend_plugin) {
+        my $template_name = 'ill/backends/Standard/' . ( $params->{method} // q{} ) . '.inc';
 
-        # New way of loading backends: Through plugins
-        $backend_dir  = $backend_plugin->bundle_path;
-        $backend_tmpl = $backend_dir;
+        # Set files to load
+        $params->{template}      = $template_name;
+        $params->{opac_template} = $template_name;
 
-    } elsif ( $backend eq 'Standard' ) {
-
-        # Check for core Standard backend
-        $backend_tmpl = dirname(__FILE__) . '/Backend';
     } else {
+        my $backend_plugin = $self->get_backend_plugin( $self->_backend->name );
 
-        # Old way of loading backends: Through backend_dir config
-        $backend_dir  = $self->_config->backend_dir;
-        $backend_tmpl = join "/", $backend_dir, $backend;
-    }
+        # Generate path to file to load
+        my $backend_dir;
+        my $backend_tmpl;
+
+        if ($backend_plugin) {
+
+            # New way of loading backends: Through plugins
+            $backend_dir  = $backend_plugin->bundle_path;
+            $backend_tmpl = $backend_dir;
+
+        } else {
+
+            # Old way of loading backends: Through backend_dir config
+            $backend_dir  = $self->_config->backend_dir;
+            $backend_tmpl = join "/", $backend_dir, $backend;
+        }
 
-    my $intra_tmpl = join "/", $backend_tmpl, "intra-includes",
-        ( $params->{method} // q{} ) . ".inc";
-    my $opac_tmpl = join "/", $backend_tmpl, "opac-includes",
-        ( $params->{method} // q{} ) . ".inc";
+        my $intra_tmpl = join "/", $backend_tmpl, "intra-includes",
+            ( $params->{method} // q{} ) . ".inc";
+        my $opac_tmpl = join "/", $backend_tmpl, "opac-includes",
+            ( $params->{method} // q{} ) . ".inc";
+
+        # Set files to load
+        $params->{template}      = $intra_tmpl;
+        $params->{opac_template} = $opac_tmpl;
+    }
 
-    # Set files to load
-    $params->{template}      = $intra_tmpl;
-    $params->{opac_template} = $opac_tmpl;
     return $params;
 }
 
-- 
2.39.5