|
Lines 53-58
sub new {
Link Here
|
| 53 |
$self->{process} = "$Bin/tmpl_process3.pl " . ($verbose ? '' : '-q'); |
53 |
$self->{process} = "$Bin/tmpl_process3.pl " . ($verbose ? '' : '-q'); |
| 54 |
$self->{path_po} = "$Bin/po"; |
54 |
$self->{path_po} = "$Bin/po"; |
| 55 |
$self->{po} = {}; |
55 |
$self->{po} = {}; |
|
|
56 |
$self->{domain} = 'messages'; |
| 57 |
$self->{cp} = `which cp`; |
| 58 |
$self->{msgmerge} = `which msgmerge`; |
| 59 |
$self->{xgettext} = `which xgettext`; |
| 60 |
chomp $self->{cp}; |
| 61 |
chomp $self->{msgmerge}; |
| 62 |
chomp $self->{xgettext}; |
| 56 |
|
63 |
|
| 57 |
# Get all .pref file names |
64 |
# Get all .pref file names |
| 58 |
opendir my $fh, $self->{path_pref_en}; |
65 |
opendir my $fh, $self->{path_pref_en}; |
|
Lines 355-360
sub create_tmpl {
Link Here
|
| 355 |
} |
362 |
} |
| 356 |
} |
363 |
} |
| 357 |
|
364 |
|
|
|
365 |
sub create_messages { |
| 366 |
my $self = shift; |
| 367 |
|
| 368 |
system |
| 369 |
"$self->{cp} $self->{domain}.pot " . |
| 370 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po"; |
| 371 |
} |
| 372 |
|
| 373 |
sub update_messages { |
| 374 |
my $self = shift; |
| 375 |
|
| 376 |
system |
| 377 |
"$self->{msgmerge} -U " . |
| 378 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po " . |
| 379 |
"$self->{domain}.pot"; |
| 380 |
} |
| 381 |
|
| 382 |
sub extract_messages { |
| 383 |
my $self = shift; |
| 384 |
|
| 385 |
my $intranetdir = $self->{context}->config('intranetdir'); |
| 386 |
my @files_to_scan; |
| 387 |
my @directories_to_scan = ('.'); |
| 388 |
my @blacklist = qw(blib koha-tmpl skel tmp t); |
| 389 |
while (@directories_to_scan) { |
| 390 |
my $dir = shift @directories_to_scan; |
| 391 |
opendir DIR, "$intranetdir/$dir" or die "Unable to open $dir: $!"; |
| 392 |
foreach my $entry (readdir DIR) { |
| 393 |
next if $entry =~ /^\./; |
| 394 |
my $relentry = "$dir/$entry"; |
| 395 |
$relentry =~ s|^\./||; |
| 396 |
if (-d "$intranetdir/$relentry" and not grep /^$relentry$/, @blacklist) { |
| 397 |
push @directories_to_scan, "$relentry"; |
| 398 |
} elsif (-f "$intranetdir/$relentry" and $relentry =~ /(pl|pm)$/) { |
| 399 |
push @files_to_scan, "$relentry"; |
| 400 |
} |
| 401 |
} |
| 402 |
} |
| 403 |
|
| 404 |
my $xgettext_cmd = "$self->{xgettext} -L Perl --from-code=UTF-8 " . |
| 405 |
"-kmaketext -o $Bin/$self->{domain}.pot -D $intranetdir"; |
| 406 |
$xgettext_cmd .= " $_" foreach (@files_to_scan); |
| 407 |
|
| 408 |
if (system($xgettext_cmd) != 0) { |
| 409 |
die "system call failed: $xgettext_cmd"; |
| 410 |
} |
| 411 |
} |
| 412 |
|
| 413 |
sub remove_pot { |
| 414 |
my $self = shift; |
| 415 |
|
| 416 |
unlink "$Bin/$self->{domain}.pot"; |
| 417 |
} |
| 358 |
|
418 |
|
| 359 |
sub install { |
419 |
sub install { |
| 360 |
my $self = shift; |
420 |
my $self = shift; |
|
Lines 376-386
sub get_all_langs {
Link Here
|
| 376 |
sub update { |
436 |
sub update { |
| 377 |
my $self = shift; |
437 |
my $self = shift; |
| 378 |
my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs(); |
438 |
my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs(); |
|
|
439 |
$self->extract_messages(); |
| 379 |
for my $lang ( @langs ) { |
440 |
for my $lang ( @langs ) { |
| 380 |
$self->set_lang( $lang ); |
441 |
$self->set_lang( $lang ); |
| 381 |
$self->update_tmpl() unless $self->{pref_only}; |
442 |
$self->update_tmpl() unless $self->{pref_only}; |
| 382 |
$self->update_prefs(); |
443 |
$self->update_prefs(); |
|
|
444 |
$self->update_messages(); |
| 383 |
} |
445 |
} |
|
|
446 |
$self->remove_pot(); |
| 384 |
} |
447 |
} |
| 385 |
|
448 |
|
| 386 |
|
449 |
|
|
Lines 389-394
sub create {
Link Here
|
| 389 |
return unless $self->{lang}; |
452 |
return unless $self->{lang}; |
| 390 |
$self->create_tmpl() unless $self->{pref_only}; |
453 |
$self->create_tmpl() unless $self->{pref_only}; |
| 391 |
$self->create_prefs(); |
454 |
$self->create_prefs(); |
|
|
455 |
$self->extract_messages(); |
| 456 |
$self->create_messages(); |
| 457 |
$self->remove_pot(); |
| 392 |
} |
458 |
} |
| 393 |
|
459 |
|
| 394 |
|
460 |
|
| 395 |
- |
|
|