+function build() {
+ var stream = src(css_base + "/src/**/*.scss")
+ .pipe(sass(sassOptions).on('error', sass.logError))
+ .pipe(autoprefixer())
+ .pipe(cssnano({
+ zindex: false
+ }))
+ .pipe(dest(css_base));
+
+ if( args.view == "opac" ){
+ stream = stream.pipe(rtlcss())
+ .pipe(rename({
+ suffix: '-rtl'
+ })) // Append "-rtl" to the filename.
+ .pipe(dest(css_base));
+ }
+
+ return stream;
+}
+
+const poTasks = {
+ 'marc-MARC21': {
+ extract: po_extract_marc_marc21,
+ create: po_create_marc_marc21,
+ update: po_update_marc_marc21,
+ },
+ 'marc-UNIMARC': {
+ extract: po_extract_marc_unimarc,
+ create: po_create_marc_unimarc,
+ update: po_update_marc_unimarc,
+ },
+ 'staff-prog': {
+ extract: po_extract_staff,
+ create: po_create_staff,
+ update: po_update_staff,
+ },
+ 'opac-bootstrap': {
+ extract: po_extract_opac,
+ create: po_create_opac,
+ update: po_update_opac,
+ },
+ 'pref': {
+ extract: po_extract_pref,
+ create: po_create_pref,
+ update: po_update_pref,
+ },
+ 'messages': {
+ extract: po_extract_messages,
+ create: po_create_messages,
+ update: po_update_messages,
+ },
+ 'messages-js': {
+ extract: po_extract_messages_js,
+ create: po_create_messages_js,
+ update: po_update_messages_js,
+ },
+ 'installer': {
+ extract: po_extract_installer,
+ create: po_create_installer,
+ update: po_update_installer,
+ },
+ 'installer-MARC21': {
+ extract: po_extract_installer_marc21,
+ create: po_create_installer_marc21,
+ update: po_update_installer_marc21,
+ },
+};
+
+const poTypes = Object.keys(poTasks);
+
+function po_extract_marc (type) {
+ return src(`koha-tmpl/*-tmpl/*/en/**/*${type}*`, { read: false, nocase: true })
+ .pipe(xgettext('misc/translator/xgettext.pl --charset=UTF-8 -s', `Koha-marc-${type}.pot`))
+ .pipe(dest('misc/translator'))
+}
+
+function po_extract_marc_marc21 () { return po_extract_marc('MARC21') }
+function po_extract_marc_unimarc () { return po_extract_marc('UNIMARC') }
+
+function po_extract_staff () {
+ const globs = [
+ 'koha-tmpl/intranet-tmpl/prog/en/**/*.tt',
+ 'koha-tmpl/intranet-tmpl/prog/en/**/*.inc',
+ 'koha-tmpl/intranet-tmpl/prog/en/xslt/*.xsl',
+ 'koha-tmpl/intranet-tmpl/prog/en/columns.def',
+ '!koha-tmpl/intranet-tmpl/prog/en/**/*MARC21*',
+ '!koha-tmpl/intranet-tmpl/prog/en/**/*UNIMARC*',
+ '!koha-tmpl/intranet-tmpl/prog/en/**/*marc21*',
+ '!koha-tmpl/intranet-tmpl/prog/en/**/*unimarc*',
+ ];
+
+ return src(globs, { read: false, nocase: true })
+ .pipe(xgettext('misc/translator/xgettext.pl --charset=UTF-8 -s', 'Koha-staff-prog.pot'))
+ .pipe(dest('misc/translator'))
+}
+
+function po_extract_opac () {
+ const globs = [
+ 'koha-tmpl/opac-tmpl/bootstrap/en/**/*.tt',
+ 'koha-tmpl/opac-tmpl/bootstrap/en/**/*.inc',
+ 'koha-tmpl/opac-tmpl/bootstrap/en/xslt/*.xsl',
+ '!koha-tmpl/opac-tmpl/bootstrap/en/**/*MARC21*',
+ '!koha-tmpl/opac-tmpl/bootstrap/en/**/*UNIMARC*',
+ '!koha-tmpl/opac-tmpl/bootstrap/en/**/*marc21*',
+ '!koha-tmpl/opac-tmpl/bootstrap/en/**/*unimarc*',
+ ];
+
+ return src(globs, { read: false, nocase: true })
+ .pipe(xgettext('misc/translator/xgettext.pl --charset=UTF-8 -s', 'Koha-opac-bootstrap.pot'))
+ .pipe(dest('misc/translator'))
+}
+
+const xgettext_options = '--from-code=UTF-8 --package-name Koha '
+ + '--package-version= -k -k__ -k__x -k__n:1,2 -k__nx:1,2 -k__xn:1,2 '
+ + '-k__p:1c,2 -k__px:1c,2 -k__np:1c,2,3 -k__npx:1c,2,3 -kN__ '
+ + '-kN__n:1,2 -kN__p:1c,2 -kN__np:1c,2,3 --force-po';
+
+function po_extract_messages_js () {
+ const globs = [
+ 'koha-tmpl/intranet-tmpl/prog/js/**/*.js',
+ 'koha-tmpl/opac-tmpl/bootstrap/js/**/*.js',
+ ];
+
+ return src(globs, { read: false, nocase: true })
+ .pipe(xgettext(`xgettext -L JavaScript ${xgettext_options}`, 'Koha-messages-js.pot'))
+ .pipe(dest('misc/translator'))
+}
+
+function po_extract_messages () {
+ const perlStream = src(['**/*.pl', '**/*.pm'], { read: false, nocase: true })
+ .pipe(xgettext(`xgettext -L Perl ${xgettext_options}`, 'Koha-perl.pot'))
+
+ const ttStream = src([
+ 'koha-tmpl/intranet-tmpl/prog/en/**/*.tt',
+ 'koha-tmpl/intranet-tmpl/prog/en/**/*.inc',
+ 'koha-tmpl/opac-tmpl/bootstrap/en/**/*.tt',
+ 'koha-tmpl/opac-tmpl/bootstrap/en/**/*.inc',
+ ], { read: false, nocase: true })
+ .pipe(xgettext('misc/translator/xgettext-tt2 --from-code=UTF-8', 'Koha-tt.pot'))
+
+ const headers = {
+ 'Project-Id-Version': 'Koha',
+ 'Content-Type': 'text/plain; charset=UTF-8',
+ };
+
+ return merge(perlStream, ttStream)
+ .pipe(concatPo('Koha-messages.pot', { headers }))
+ .pipe(dest('misc/translator'))
+}
+
+function po_extract_pref () {
+ return src('koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/*.pref', { read: false })
+ .pipe(xgettext('misc/translator/xgettext-pref', 'Koha-pref.pot'))
+ .pipe(dest('misc/translator'))
+}