|
Lines 66-71
sub new {
Link Here
|
| 66 |
$self->{process} = "$Bin/tmpl_process3.pl " . ($verbose ? '' : '-q'); |
66 |
$self->{process} = "$Bin/tmpl_process3.pl " . ($verbose ? '' : '-q'); |
| 67 |
$self->{path_po} = "$Bin/po"; |
67 |
$self->{path_po} = "$Bin/po"; |
| 68 |
$self->{po} = { '' => $default_pref_po_header }; |
68 |
$self->{po} = { '' => $default_pref_po_header }; |
|
|
69 |
$self->{domain} = 'messages'; |
| 70 |
$self->{cp} = `which cp`; |
| 71 |
$self->{msgmerge} = `which msgmerge`; |
| 72 |
$self->{xgettext} = `which xgettext`; |
| 73 |
chomp $self->{cp}; |
| 74 |
chomp $self->{msgmerge}; |
| 75 |
chomp $self->{xgettext}; |
| 69 |
|
76 |
|
| 70 |
# Get all .pref file names |
77 |
# Get all .pref file names |
| 71 |
opendir my $fh, $self->{path_pref_en}; |
78 |
opendir my $fh, $self->{path_pref_en}; |
|
Lines 423-428
sub create_tmpl {
Link Here
|
| 423 |
} |
430 |
} |
| 424 |
} |
431 |
} |
| 425 |
|
432 |
|
|
|
433 |
sub create_messages { |
| 434 |
my $self = shift; |
| 435 |
|
| 436 |
system |
| 437 |
"$self->{cp} $self->{domain}.pot " . |
| 438 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po"; |
| 439 |
} |
| 440 |
|
| 441 |
sub update_messages { |
| 442 |
my $self = shift; |
| 443 |
|
| 444 |
system |
| 445 |
"$self->{msgmerge} -U " . |
| 446 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po " . |
| 447 |
"$self->{domain}.pot"; |
| 448 |
} |
| 449 |
|
| 450 |
sub extract_messages { |
| 451 |
my $self = shift; |
| 452 |
|
| 453 |
my $intranetdir = $self->{context}->config('intranetdir'); |
| 454 |
my @files_to_scan; |
| 455 |
my @directories_to_scan = ('.'); |
| 456 |
my @blacklist = qw(blib koha-tmpl skel tmp t); |
| 457 |
while (@directories_to_scan) { |
| 458 |
my $dir = shift @directories_to_scan; |
| 459 |
opendir DIR, "$intranetdir/$dir" or die "Unable to open $dir: $!"; |
| 460 |
foreach my $entry (readdir DIR) { |
| 461 |
next if $entry =~ /^\./; |
| 462 |
my $relentry = "$dir/$entry"; |
| 463 |
$relentry =~ s|^\./||; |
| 464 |
if (-d "$intranetdir/$relentry" and not grep /^$relentry$/, @blacklist) { |
| 465 |
push @directories_to_scan, "$relentry"; |
| 466 |
} elsif (-f "$intranetdir/$relentry" and $relentry =~ /(pl|pm)$/) { |
| 467 |
push @files_to_scan, "$relentry"; |
| 468 |
} |
| 469 |
} |
| 470 |
} |
| 471 |
|
| 472 |
my $xgettext_cmd = "$self->{xgettext} -L Perl --from-code=UTF-8 " . |
| 473 |
"-kmaketext -o $Bin/$self->{domain}.pot -D $intranetdir"; |
| 474 |
$xgettext_cmd .= " $_" foreach (@files_to_scan); |
| 475 |
|
| 476 |
if (system($xgettext_cmd) != 0) { |
| 477 |
die "system call failed: $xgettext_cmd"; |
| 478 |
} |
| 479 |
} |
| 480 |
|
| 481 |
sub remove_pot { |
| 482 |
my $self = shift; |
| 483 |
|
| 484 |
unlink "$Bin/$self->{domain}.pot"; |
| 485 |
} |
| 426 |
|
486 |
|
| 427 |
sub install { |
487 |
sub install { |
| 428 |
my ($self, $files) = @_; |
488 |
my ($self, $files) = @_; |
|
Lines 444-454
sub get_all_langs {
Link Here
|
| 444 |
sub update { |
504 |
sub update { |
| 445 |
my ($self, $files) = @_; |
505 |
my ($self, $files) = @_; |
| 446 |
my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs(); |
506 |
my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs(); |
|
|
507 |
$self->extract_messages(); |
| 447 |
for my $lang ( @langs ) { |
508 |
for my $lang ( @langs ) { |
| 448 |
$self->set_lang( $lang ); |
509 |
$self->set_lang( $lang ); |
| 449 |
$self->update_tmpl($files) unless $self->{pref_only}; |
510 |
$self->update_tmpl($files) unless $self->{pref_only}; |
| 450 |
$self->update_prefs(); |
511 |
$self->update_prefs(); |
|
|
512 |
$self->update_messages(); |
| 451 |
} |
513 |
} |
|
|
514 |
$self->remove_pot(); |
| 452 |
} |
515 |
} |
| 453 |
|
516 |
|
| 454 |
|
517 |
|
|
Lines 457-462
sub create {
Link Here
|
| 457 |
return unless $self->{lang}; |
520 |
return unless $self->{lang}; |
| 458 |
$self->create_tmpl($files) unless $self->{pref_only}; |
521 |
$self->create_tmpl($files) unless $self->{pref_only}; |
| 459 |
$self->create_prefs(); |
522 |
$self->create_prefs(); |
|
|
523 |
$self->extract_messages(); |
| 524 |
$self->create_messages(); |
| 525 |
$self->remove_pot(); |
| 460 |
} |
526 |
} |
| 461 |
|
527 |
|
| 462 |
|
528 |
|
| 463 |
- |
|
|