Bug 24973: Load custom localization file
authorBernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Fri, 15 May 2020 21:11:16 +0000 (18:11 -0300)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 24 Aug 2020 10:10:53 +0000 (12:10 +0200)
It adds a new localization directory that could
host a custom SQL file for each language,
xx-YY/custom.sql

This will be the last file to be loaded at
install time, it can be used to set any difference
from default values.

It can't be deselected at install time.

Moved corresponding files for de-DE, it-IT,
nb-NO and completed es-ES

To test:
1) Apply the patch
2) Install es-ES/de-DE/it-IT/nb-NO translation (any lang)
   ( cd misc/translation; ./translate install es-ES )
3) Do a clean install using es-ES
4) After all files have been loaded check:
    * A new section labeled "Localization data added"
      with one file, custom.sql
    * Inspect the value of FrameworksLoaded syspref,
      last entry must be custom.sql
5) Remove/rename the file or localization dir and
   repeat 3/4, install must proceed normally

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

C4/Installer.pm
installer/data/mysql/localization/de-DE/custom.sql [moved from installer/data/mysql/de-DE/mandatory/system_preferences.sql with 98% similarity]
installer/data/mysql/localization/de-DE/custom.txt [moved from installer/data/mysql/de-DE/mandatory/system_preferences.txt with 100% similarity]
installer/data/mysql/localization/es-ES/custom.sql [new file with mode: 0644]
installer/data/mysql/localization/it-IT/custom.sql [moved from installer/data/mysql/it-IT/necessari/system_preferences.sql with 99% similarity]
installer/data/mysql/localization/nb-NO/custom.sql [moved from installer/data/mysql/nb-NO/1-Obligatorisk/system_preferences.sql with 100% similarity]
installer/data/mysql/localization/nb-NO/custom.txt [new file with mode: 0644]
installer/data/mysql/nb-NO/1-Obligatorisk/system_preferences.txt [deleted file]
installer/install.pl
koha-tmpl/intranet-tmpl/prog/en/modules/installer/step3.tt

index db247e5..3624d13 100644 (file)
@@ -312,6 +312,7 @@ moved to a different method.
 
 sub load_sql_in_order {
     my $self = shift;
+    my $langchoice = shift;
     my $all_languages = shift;
     my @sql_list = @_;
 
@@ -346,13 +347,18 @@ sub load_sql_in_order {
     push @fnames, C4::Context->config('intranetdir') . "/installer/data/mysql/account_offset_types.sql";
     push @fnames, C4::Context->config('intranetdir') . "/installer/data/mysql/account_credit_types.sql";
     push @fnames, C4::Context->config('intranetdir') . "/installer/data/mysql/account_debit_types.sql";
+    my $localization_file = C4::Context->config('intranetdir') .
+                            "/installer/data/$self->{dbms}/localization/$langchoice/custom.sql";
+    if ( $langchoice ne 'en' and -f $localization_file ) {
+        push @fnames, $localization_file;
+    }
     foreach my $file (@fnames) {
         #      warn $file;
         undef $/;
         my $error = $self->load_sql($file);
         my @file = split qr(\/|\\), $file;
         $lang = $file[ scalar(@file) - 3 ] unless ($lang);
-        my $level = $file[ scalar(@file) - 2 ];
+        my $level = ( $file =~ /(localization)/ ) ? $1 : $file[ scalar(@file) - 2 ];
         unless ($error) {
             $systempreference .= "$file[scalar(@file)-1]|"
               unless ( index( $systempreference, $file[ scalar(@file) - 1 ] ) >= 0 );
@@ -26,7 +26,7 @@ UPDATE systempreferences SET value = 'z' WHERE variable = 'DefaultClassification
 UPDATE systempreferences SET value = 'Willkommen im Koha-Katalog!' WHERE variable = 'OpacMainUserBlock';
 UPDATE systempreferences SET value = '' WHERE variable = 'OpacNav';
 UPDATE systempreferences SET value = '' WHERE variable = 'OpacNavBottom';
-UPDATE systempreferences SET value = 
+UPDATE systempreferences SET value =
     '<li><a href="https://worldcat.org/search?q={TITLE}" target="_blank">Andere Bibliotheken (WorldCat)</a></li>
     <li><a href="https://scholar.google.com/scholar?q={TITLE}" target="_blank">Google Scholar</a></li>
     <li><a href="https://www.bookfinder.com/search/?author={AUTHOR}&amp;title={TITLE}&amp;st=xl&amp;ac=qr" target="_blank">Online-Buchhandel (Bookfinder.com)</a></li>'
diff --git a/installer/data/mysql/localization/es-ES/custom.sql b/installer/data/mysql/localization/es-ES/custom.sql
new file mode 100644 (file)
index 0000000..d925567
--- /dev/null
@@ -0,0 +1,29 @@
+--
+-- System preferences that differ from the global defaults
+--
+-- This file is part of Koha.
+--
+-- Koha is free software; you can redistribute it and/or modify it
+-- under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- Koha is distributed in the hope that it will be useful, but
+-- WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with Koha; if not, see <http://www.gnu.org/licenses>.
+
+UPDATE systempreferences SET value = 'padre|madre' WHERE variable = 'borrowerRelationship';
+UPDATE systempreferences SET value = 'Sr.|Sra.' WHERE variable = 'BorrowersTitles';
+UPDATE systempreferences SET value = 'FR' WHERE variable = 'CurencyFormat';
+UPDATE systempreferences SET value = 'US' WHERE variable = 'AddressFormat';
+UPDATE systempreferences SET value = 'metric' WHERE variable = 'dateformat';
+UPDATE systempreferences SET value = 'ddc' WHERE variable = 'DefaultClassificationSource';
+UPDATE systempreferences SET value = 'Bienvenido al catálogo!' WHERE variable = 'OpacMainUserBlock';
+UPDATE systempreferences SET value = '' WHERE variable = 'OpacNav';
+UPDATE systempreferences SET value = '' WHERE variable = 'OpacNavBottom';
+UPDATE systempreferences SET value = '1' WHERE variable = 'CalendarFirstDayOfWeek';
+UPDATE systempreferences SET value = '1' WHERE variable = 'opaclanguagesdisplay';
@@ -62,4 +62,3 @@ UPDATE systempreferences SET value = '1' WHERE variable = 'UseICU';
 UPDATE systempreferences SET value = 'URLLinkText' WHERE variable = 'URLLinkText';
 
 UPDATE systempreferences SET value = '#200|<span style=\"font-weight:bold\">|{200a}{. 200c}{ : 200e}{200d}{ / 200f}{ ; 200g}{. 200h}{. 200i}|</span>\r\n#210|. &ndash; |{210a}{ : 210c}{, 210d}|\r\n#215|. &ndash; |{215a}{ ; 215d}|\r\n#225|. &ndash; |{(225a}{ ; 225v)}|\r\n#010|. &ndash; |{ISBN 010a}|' WHERE variable = 'ISBD';
-
diff --git a/installer/data/mysql/localization/nb-NO/custom.txt b/installer/data/mysql/localization/nb-NO/custom.txt
new file mode 100644 (file)
index 0000000..66c4837
--- /dev/null
@@ -0,0 +1 @@
+Standard systempreferanser.
diff --git a/installer/data/mysql/nb-NO/1-Obligatorisk/system_preferences.txt b/installer/data/mysql/nb-NO/1-Obligatorisk/system_preferences.txt
deleted file mode 100644 (file)
index 20f07c8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Standard systempreferanser. 
index 0414381..350562d 100755 (executable)
@@ -245,9 +245,12 @@ elsif ( $step && $step == 3 ) {
     elsif ( $op && $op eq 'addframeworks' ) {
 
         # 1ST install, 3rd sub-step : insert the SQL files the user has selected
+        my $langchoice = $query->param('fwklanguage');
+        $langchoice = $query->cookie('KohaOpacLanguage') unless ($langchoice);
+        $langchoice =~ s/[^a-zA-Z_-]*//g;
 
         my ( $fwk_language, $list ) =
-          $installer->load_sql_in_order( $all_languages,
+          $installer->load_sql_in_order( $langchoice, $all_languages,
             $query->multi_param('framework') );
         $template->param(
             "fwklanguage" => $fwk_language,
index b89d236..685fd7f 100644 (file)
                             <h3>Optional data added</h3>
                         [% ELSIF lis.level == 'mysql' %]
                             <h3>MySQL data added</h3>
+                        [% ELSIF lis.level == 'localization' %]
+                            <h3>Localization data added</h3>
                         [% ELSE %]
                             <h3>[% lis.level FILTER ucfirst | html %] data added</h3>
                         [% END %]