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 372-377
sub create_tmpl {
Link Here
|
372 |
} |
379 |
} |
373 |
} |
380 |
} |
374 |
|
381 |
|
|
|
382 |
sub create_messages { |
383 |
my $self = shift; |
384 |
|
385 |
system |
386 |
"$self->{cp} $self->{domain}.pot " . |
387 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po"; |
388 |
} |
389 |
|
390 |
sub update_messages { |
391 |
my $self = shift; |
392 |
|
393 |
system |
394 |
"$self->{msgmerge} -U " . |
395 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po " . |
396 |
"$self->{domain}.pot"; |
397 |
} |
398 |
|
399 |
sub extract_messages { |
400 |
my $self = shift; |
401 |
|
402 |
my $intranetdir = $self->{context}->config('intranetdir'); |
403 |
my @files_to_scan; |
404 |
my @directories_to_scan = ('.'); |
405 |
my @blacklist = qw(blib koha-tmpl skel tmp t); |
406 |
while (@directories_to_scan) { |
407 |
my $dir = shift @directories_to_scan; |
408 |
opendir DIR, "$intranetdir/$dir" or die "Unable to open $dir: $!"; |
409 |
foreach my $entry (readdir DIR) { |
410 |
next if $entry =~ /^\./; |
411 |
my $relentry = "$dir/$entry"; |
412 |
$relentry =~ s|^\./||; |
413 |
if (-d "$intranetdir/$relentry" and not grep /^$relentry$/, @blacklist) { |
414 |
push @directories_to_scan, "$relentry"; |
415 |
} elsif (-f "$intranetdir/$relentry" and $relentry =~ /(pl|pm)$/) { |
416 |
push @files_to_scan, "$relentry"; |
417 |
} |
418 |
} |
419 |
} |
420 |
|
421 |
my $xgettext_cmd = "$self->{xgettext} -L Perl --from-code=UTF-8 " . |
422 |
"-kmaketext -o $Bin/$self->{domain}.pot -D $intranetdir"; |
423 |
$xgettext_cmd .= " $_" foreach (@files_to_scan); |
424 |
|
425 |
if (system($xgettext_cmd) != 0) { |
426 |
die "system call failed: $xgettext_cmd"; |
427 |
} |
428 |
} |
429 |
|
430 |
sub remove_pot { |
431 |
my $self = shift; |
432 |
|
433 |
unlink "$Bin/$self->{domain}.pot"; |
434 |
} |
375 |
|
435 |
|
376 |
sub install { |
436 |
sub install { |
377 |
my $self = shift; |
437 |
my $self = shift; |
Lines 393-403
sub get_all_langs {
Link Here
|
393 |
sub update { |
453 |
sub update { |
394 |
my $self = shift; |
454 |
my $self = shift; |
395 |
my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs(); |
455 |
my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs(); |
|
|
456 |
$self->extract_messages(); |
396 |
for my $lang ( @langs ) { |
457 |
for my $lang ( @langs ) { |
397 |
$self->set_lang( $lang ); |
458 |
$self->set_lang( $lang ); |
398 |
$self->update_tmpl() unless $self->{pref_only}; |
459 |
$self->update_tmpl() unless $self->{pref_only}; |
399 |
$self->update_prefs(); |
460 |
$self->update_prefs(); |
|
|
461 |
$self->update_messages(); |
400 |
} |
462 |
} |
|
|
463 |
$self->remove_pot(); |
401 |
} |
464 |
} |
402 |
|
465 |
|
403 |
|
466 |
|
Lines 406-411
sub create {
Link Here
|
406 |
return unless $self->{lang}; |
469 |
return unless $self->{lang}; |
407 |
$self->create_tmpl() unless $self->{pref_only}; |
470 |
$self->create_tmpl() unless $self->{pref_only}; |
408 |
$self->create_prefs(); |
471 |
$self->create_prefs(); |
|
|
472 |
$self->extract_messages(); |
473 |
$self->create_messages(); |
474 |
$self->remove_pot(); |
409 |
} |
475 |
} |
410 |
|
476 |
|
411 |
|
477 |
|
412 |
- |
|
|