{
name => 'Intranet prog UI',
dir => $context->config('intrahtdocs') . '/prog',
- suffix => '-i-staff-t-prog-v-3006000.po',
+ suffix => '-staff-prog.po',
},
{
name => 'Intranet prog help',
};
}
+ # MARC flavours (hardcoded list)
+ for ( "MARC21", "UNIMARC", "NORMARC" ) {
+ # search for strings on staff & opac marc files
+ my $dirs = $context->config('intrahtdocs') . '/prog';
+ opendir $fh, $context->config('opachtdocs');
+ for ( grep { not /^\.|\.\.|lib$/ } readdir($fh) ) {
+ $dirs .= ' ' . "$opachtdocs/$_";
+ }
+ push @{$self->{interface}}, {
+ name => "$_",
+ dir => $dirs,
+ suffix => "-marc-$_.po",
+ };
+ }
+
bless $self, $class;
}
my ($self, $files) = @_;
say "Install templates" if $self->{verbose};
for my $trans ( @{$self->{interface}} ) {
- print
- " Install templates '$trans->{name}'\n",
- " From: $trans->{dir}/en/\n",
- " To : $trans->{dir}/$self->{lang}\n",
- " With: $self->{path_po}/$self->{lang}$trans->{suffix}\n"
+ my @t_dirs = split(" ", $trans->{dir});
+ for my $t_dir ( @t_dirs ) {
+ my @files = @$files;
+ my @nomarc = ();
+ print
+ " Install templates '$trans->{name}'\n",
+ " From: $t_dir/en/\n",
+ " To : $t_dir/$self->{lang}\n",
+ " With: $self->{path_po}/$self->{lang}$trans->{suffix}\n"
if $self->{verbose};
- my $trans_dir = ( $trans->{name} =~ /help/ )?"$trans->{dir}":"$trans->{dir}/en/";
- my $lang_dir = ( $trans->{name} =~ /help/ )?"$trans->{dir}":"$trans->{dir}/$self->{lang}";
- $lang_dir =~ s|/en/|/$self->{lang}/|;
- mkdir $lang_dir unless -d $lang_dir;
- my $excludes = ( $trans->{name} =~ /UI/ )?"-x 'help'":"";
-
- system
- "$self->{process} install " .
- "-i $trans_dir " .
- "-o $lang_dir ".
- "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r $excludes" .
- (
- @$files
- ? ' -f ' . join ' -f ', @$files
- : ''
- )
+ my $trans_dir = ( $trans->{name} =~ /help/ )?"$t_dir":"$t_dir/en/";
+ my $lang_dir = ( $trans->{name} =~ /help/ )?"$t_dir":"$t_dir/$self->{lang}";
+ $lang_dir =~ s|/en/|/$self->{lang}/|;
+ mkdir $lang_dir unless -d $lang_dir;
+ my $excludes = ( $trans->{name} !~ /help/ )?"":"-x 'help'";
+ # if installing MARC po file, only touch corresponding files
+ my $marc = ( $trans->{name} =~ /MARC/ )?"-m \"$trans->{name}\"":""; # for MARC translations
+ # if not installing MARC po file, ignore all MARC files
+ @nomarc = ( 'marc21', 'unimarc', 'normarc' ) if ( $trans->{name} !~ /MARC/ ); # hardcoded MARC variants
+
+ system
+ "$self->{process} install " .
+ "-i $trans_dir " .
+ "-o $lang_dir ".
+ "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r " .
+ "$excludes " .
+ "$marc " .
+ ( @files ? ' -f ' . join ' -f ', @files : '') .
+ ( @nomarc ? ' -n ' . join ' -n ', @nomarc : '');
+ }
}
}
say "Update templates" if $self->{verbose};
for my $trans ( @{$self->{interface}} ) {
+ my @files = @$files;
+ my @nomarc = ();
print
" Update templates '$trans->{name}'\n",
" From: $trans->{dir}/en/\n",
" To : $self->{path_po}/$self->{lang}$trans->{suffix}\n"
if $self->{verbose};
- my $lang_dir = "$trans->{dir}/$self->{lang}";
- my $trans_dir = ( $trans->{name} =~ /help/ )?"$trans->{dir}":"$trans->{dir}/en/";
- my $excludes = ( $trans->{name} =~ /UI/ )?"-x 'help'":"";
+ my $trans_dir = ( $trans->{name} =~ /help/ )?"$trans->{dir}":join("/en/ -i ",split(" ",$trans->{dir}))."/en/"; # multiple source dirs
+ # do no process 'help' dirs unless needed
+ my $excludes = ( $trans->{name} !~ /help/ )?"-x help":"";
+ # if processing MARC po file, only use corresponding files
+ my $marc = ( $trans->{name} =~ /MARC/ )?"-m \"$trans->{name}\"":""; # for MARC translations
+ # if not processing MARC po file, ignore all MARC files
+ @nomarc = ( 'marc21', 'unimarc', 'normarc' ) if ( $trans->{name} !~ /MARC/ ); # hardcoded MARC variants
system
"$self->{process} update " .
"-i $trans_dir " .
- "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r $excludes" .
- (
- @$files
- ? ' -f ' . join ' -f ', @$files
- : ''
- )
+ "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r " .
+ "$excludes " .
+ "$marc " .
+ ( @files ? ' -f ' . join ' -f ', @files : '') .
+ ( @nomarc ? ' -n ' . join ' -n ', @nomarc : '');
}
}
say "Create templates\n" if $self->{verbose};
for my $trans ( @{$self->{interface}} ) {
+ my @files = @$files;
+ my @nomarc = ();
print
" Create templates .po files for '$trans->{name}'\n",
" From: $trans->{dir}/en/\n",
" To : $self->{path_po}/$self->{lang}$trans->{suffix}\n"
if $self->{verbose};
- my $trans_dir = ( $trans->{name} =~ /help/ )?"$trans->{dir}":"$trans->{dir}/en/";
- my $excludes = ( $trans->{name} =~ /UI/ )?"-x 'help'":"";
+ my $trans_dir = ( $trans->{name} =~ /help/ )?"$trans->{dir}":join("/en/ -i ",split(" ",$trans->{dir}))."/en/"; # multiple source dirs
+ my $excludes = ( $trans->{name} !~ /help/ )?"-x help":"";
+ # if processing MARC po file, only use corresponding files
+ my $marc = ( $trans->{name} =~ /MARC/ )?"-m \"$trans->{name}\"":""; # for MARC translations
+ # if not processing MARC po file, ignore all MARC files
+ @nomarc = ( 'marc21', 'unimarc', 'normarc' ) if ( $trans->{name} !~ /MARC/ ); # hardcoded MARC variants
system
"$self->{process} create " .
"-i $trans_dir " .
- "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r $excludes" .
- (
- @$files
- ? ' -f ' . join ' -f ', @$files
- : ''
- )
+ "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r " .
+ "$excludes " .
+ "$marc " .
+ ( @files ? ' -f ' . join ' -f ', @files : '') .
+ ( @nomarc ? ' -n ' . join ' -n ', @nomarc : '');
}
}
=item translate create F<lang>
-Create 3 .po files in F<po> subdirectory: (1) from opac pages templates, (2)
-intranet templates, and (3) from preferences.
+Create 4 kinds of .po files in F<po> subdirectory:
+(1) one from each theme on opac pages templates,
+(2) intranet templates and help,
+(3) preferences, and
+(4) one for each MARC dialect.
+
=over
Contains extracted text from english (en) OPAC templates found in
<KOHA_ROOT>/koha-tmpl/opac-tmpl/{theme}/en/ directory.
-=item F<lang>-intranet.po
+=item F<lang>-staff-prog.po and F<lang>-staff-help.po
Contains extracted text from english (en) intranet templates found in
<KOHA_ROOT>/koha-tmpl/intranet-tmpl/prog/en/ directory.
located in <KOHA_ROOT>/koha-tmpl/intranet-tmpl/prog/en/admin/preferences
directory.
+=item F<lang>-marc-{MARC}.po
+
+Contains extracted text from english (en) files from opac and intranet,
+related with MARC dialects.
+
=back
=item pref-trans update F<lang>