$YAML::Syck::ImplicitTyping = 1;
+# Default file header for .po syspref files
+my $default_pref_po_header = Locale::PO->new(-msgid => '', -msgstr =>
+ "Project-Id-Version: PACKAGE VERSION\\n" .
+ "PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\\n" .
+ "Last-Translator: FULL NAME <EMAIL\@ADDRESS>\\n" .
+ "Language-Team: Koha Translate List <koha-translate\@lists.koha-community.org>\\n" .
+ "MIME-Version: 1.0\\n" .
+ "Content-Type: text/plain; charset=UTF-8\\n" .
+ "Content-Transfer-Encoding: 8bit\\n" .
+ "Plural-Forms: nplurals=2; plural=(n > 1);\\n"
+);
+
+
sub set_lang {
my ($self, $lang) = @_;
$self->{verbose} = $verbose;
$self->{process} = "$Bin/tmpl_process3.pl " . ($verbose ? '' : '-q');
$self->{path_po} = "$Bin/po";
- $self->{po} = {};
+ $self->{po} = { '' => $default_pref_po_header };
# Get all .pref file names
opendir my $fh, $self->{path_pref_en};
sub save_po {
my $self = shift;
+
+ # Create file header if it doesn't already exist
+ my $po = $self->{po};
+ $po->{''} ||= $default_pref_po_header;
+
# Write .po entries into a file put in Koha standard po directory
- Locale::PO->save_file_fromhash( $self->po_filename, $self->{po} );
+ Locale::PO->save_file_fromhash( $self->po_filename, $po );
say "Saved in file: ", $self->po_filename if $self->{verbose};
}
sub install_tmpl {
- my $self = shift;
+ my ($self, $files) = @_;
say "Install templates" if $self->{verbose};
for my $trans ( @{$self->{interface}} ) {
print
"$self->{process} install " .
"-i $trans->{dir}/en/ " .
"-o $trans->{dir}/$self->{lang} ".
- "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r"
+ "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r " .
+ (
+ @$files
+ ? '-f ' . join ' -f ', @$files
+ : ''
+ )
}
}
sub update_tmpl {
- my $self = shift;
+ my ($self, $files) = @_;
say "Update templates" if $self->{verbose};
for my $trans ( @{$self->{interface}} ) {
system
"$self->{process} update " .
"-i $trans->{dir}/en/ " .
- "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r"
+ "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r " .
+ (
+ @$files
+ ? '-f ' . join ' -f ', @$files
+ : ''
+ )
}
}
sub create_tmpl {
- my $self = shift;
+ my ($self, $files) = @_;
say "Create templates\n" if $self->{verbose};
for my $trans ( @{$self->{interface}} ) {
system
"$self->{process} create " .
"-i $trans->{dir}/en/ " .
- "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r"
+ "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r " .
+ (
+ @$files
+ ? '-f ' . join ' -f ', @$files
+ : ''
+ )
}
}
sub install {
- my $self = shift;
+ my ($self, $files) = @_;
return unless $self->{lang};
- $self->install_tmpl() unless $self->{pref_only};
+ $self->install_tmpl($files) unless $self->{pref_only};
$self->install_prefs();
}
sub update {
- my $self = shift;
+ my ($self, $files) = @_;
my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
for my $lang ( @langs ) {
$self->set_lang( $lang );
- $self->update_tmpl() unless $self->{pref_only};
+ $self->update_tmpl($files) unless $self->{pref_only};
$self->update_prefs();
}
}
sub create {
- my $self = shift;
+ my ($self, $files) = @_;
return unless $self->{lang};
- $self->create_tmpl() unless $self->{pref_only};
+ $self->create_tmpl($files) unless $self->{pref_only};
$self->create_prefs();
}