From 3d2707617bb6db6fe3188af185664a7e6f48c126 Mon Sep 17 00:00:00 2001 From: Hammat Wele Date: Fri, 13 Feb 2026 12:22:10 +0000 Subject: [PATCH] Bug 24172: (follow-up) Add translation of seasons in catalogue_detail.inc and opac-details.tt --- .../tables/items/catalogue_detail.inc | 31 ++++++++++++++++--- .../bootstrap/en/modules/opac-detail.tt | 8 ++--- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers/tables/items/catalogue_detail.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers/tables/items/catalogue_detail.inc index 9a1a3eaf65c..3c9554292b8 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers/tables/items/catalogue_detail.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers/tables/items/catalogue_detail.inc @@ -489,15 +489,15 @@ [%# FIXME Previously we displayed the column if at least one item of the biblio had an enumchron/serial_issue_number. Now it's only if one item of the ones displayed on the current page, how is that bad? How can it be fixed in an elegant way? Should we display the column only if biblio.serial? %] let serial = row.serial_item ? row.serial_item.serial : null; if ( row.serial_issue_number && serial && serial.serialseq ) { - nodes += '%s'.format(escape_str(row.serial_issue_number)); + nodes += '%s'.format( localizeNumberingPatternSeason(escape_str(row.serial_issue_number))); if ( serial.serialseq && row.serial_issue_number != serial.serialseq ) { nodes += ' -- ' - nodes += ' %s'.format(escape_str(serial.serialseq)); + nodes += ' %s'.format(localizeNumberingPatternSeason(escape_str(serial.serialseq))); } } else if ( row.serial_issue_number ) { - nodes += ' %s'.format(escape_str(row.serial_issue_number)); + nodes += ' %s'.format(localizeNumberingPatternSeason(escape_str(row.serial_issue_number))); } else if ( serial && serial.serialseq ) { - nodes += '%s'.format(escape_str(serial.serialseq)); + nodes += '%s'.format(localizeNumberingPatternSeason(escape_str(serial.serialseq))); } [% IF Koha.Preference('DisplayPublishedDate') %] if ( serial && serial.publisheddate ) { @@ -933,5 +933,28 @@ node.textContent = link_text; return node; } + function localizeNumberingPatternSeason(season) { + if (!season) return ""; + + const patterns = [ + { regex: /(.*)Spring(.*)/, label: _("Spring") }, + { regex: /(.*)Summer(.*)/, label: _("Summer") }, + { regex: /(.*)Fall(.*)/, label: _("Fall") }, + { regex: /(.*)Winter(.*)/, label: _("Winter") }, + { regex: /(.*)Spr(.*)/, label: _("Spr") }, + { regex: /(.*)Sum(.*)/, label: _("Sum") }, + { regex: /(.*)Fal(.*)/, label: _("Fal") }, + { regex: /(.*)Win(.*)/, label: _("Win") } + ]; + + for (const p of patterns) { + const matches = season.match(p.regex); + if (matches) { + return matches[1] + p.label + matches[2]; + } + } + + return season; + } [% END %] diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt index 31ebf3f77a0..4678a3b8a86 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt @@ -1459,15 +1459,15 @@ [% SET serial = ITEM_RESULT.serial %] [% IF ITEM_RESULT.enumchron && serial.serialseq %] - [% ITEM_RESULT.enumchron | html %] + [% PROCESS localize_numbering_pattern_season season => ITEM_RESULT.enumchron %] [% IF ( serial.serialseq && ITEM_RESULT.enumchron!=serial.serialseq ) %] -- - [% serial.serialseq | html %] + [% PROCESS localize_numbering_pattern_season season => serial.serialseq %] [% END %] [% ELSIF ITEM_RESULT.enumchron %] - [% ITEM_RESULT.enumchron | html %] + [% PROCESS localize_numbering_pattern_season season => ITEM_RESULT.enumchron %] [% ELSIF serial.serialseq %] - [% serial.serialseq | html %] + [% PROCESS localize_numbering_pattern_season season => serial.serialseq %] [% END %] [% IF ( Koha.Preference('DisplayPublishedDate') && serial.publisheddate ) %] ([% serial.publisheddate | $KohaDates %]) -- 2.34.1