Lines 70-78
sub new {
Link Here
|
70 |
$self->{cp} = `which cp`; |
70 |
$self->{cp} = `which cp`; |
71 |
$self->{msgmerge} = `which msgmerge`; |
71 |
$self->{msgmerge} = `which msgmerge`; |
72 |
$self->{xgettext} = `which xgettext`; |
72 |
$self->{xgettext} = `which xgettext`; |
|
|
73 |
$self->{sed} = `which sed`; |
73 |
chomp $self->{cp}; |
74 |
chomp $self->{cp}; |
74 |
chomp $self->{msgmerge}; |
75 |
chomp $self->{msgmerge}; |
75 |
chomp $self->{xgettext}; |
76 |
chomp $self->{xgettext}; |
|
|
77 |
chomp $self->{sed}; |
76 |
|
78 |
|
77 |
# Get all .pref file names |
79 |
# Get all .pref file names |
78 |
opendir my $fh, $self->{path_pref_en}; |
80 |
opendir my $fh, $self->{path_pref_en}; |
Lines 433-438
sub create_tmpl {
Link Here
|
433 |
sub create_messages { |
435 |
sub create_messages { |
434 |
my $self = shift; |
436 |
my $self = shift; |
435 |
|
437 |
|
|
|
438 |
print "Create messages ($self->{lang})\n" if $self->{verbose}; |
436 |
system |
439 |
system |
437 |
"$self->{cp} $self->{domain}.pot " . |
440 |
"$self->{cp} $self->{domain}.pot " . |
438 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po"; |
441 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po"; |
Lines 441-450
sub create_messages {
Link Here
|
441 |
sub update_messages { |
444 |
sub update_messages { |
442 |
my $self = shift; |
445 |
my $self = shift; |
443 |
|
446 |
|
444 |
system |
447 |
my $pofile = "$self->{path_po}/$self->{lang}-$self->{domain}.po"; |
445 |
"$self->{msgmerge} -U " . |
448 |
print "Update messages ($self->{lang})\n" if $self->{verbose}; |
446 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po " . |
449 |
if ( not -f $pofile ) { |
447 |
"$self->{domain}.pot"; |
450 |
print "File $pofile does not exist\n" if $self->{verbose}; |
|
|
451 |
$self->create_messages(); |
452 |
} |
453 |
system "$self->{msgmerge} -U $pofile $self->{domain}.pot"; |
448 |
} |
454 |
} |
449 |
|
455 |
|
450 |
sub extract_messages { |
456 |
sub extract_messages { |
Lines 476-481
sub extract_messages {
Link Here
|
476 |
if (system($xgettext_cmd) != 0) { |
482 |
if (system($xgettext_cmd) != 0) { |
477 |
die "system call failed: $xgettext_cmd"; |
483 |
die "system call failed: $xgettext_cmd"; |
478 |
} |
484 |
} |
|
|
485 |
|
486 |
if ( -f "$Bin/$self->{domain}.pot" ) { |
487 |
my $replace_charset_cmd = "$self->{sed} --in-place " . |
488 |
"$Bin/$self->{domain}.pot " . |
489 |
"--expression='s/charset=CHARSET/charset=UTF-8/'"; |
490 |
if (system($replace_charset_cmd) != 0) { |
491 |
die "system call failed: $replace_charset_cmd"; |
492 |
} |
493 |
} else { |
494 |
print "No messages found\n" if $self->{verbose}; |
495 |
return; |
496 |
} |
497 |
return 1; |
479 |
} |
498 |
} |
480 |
|
499 |
|
481 |
sub remove_pot { |
500 |
sub remove_pot { |
Lines 504-517
sub get_all_langs {
Link Here
|
504 |
sub update { |
523 |
sub update { |
505 |
my ($self, $files) = @_; |
524 |
my ($self, $files) = @_; |
506 |
my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs(); |
525 |
my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs(); |
507 |
$self->extract_messages(); |
526 |
my $extract_ok = $self->extract_messages(); |
508 |
for my $lang ( @langs ) { |
527 |
for my $lang ( @langs ) { |
509 |
$self->set_lang( $lang ); |
528 |
$self->set_lang( $lang ); |
510 |
$self->update_tmpl($files) unless $self->{pref_only}; |
529 |
$self->update_tmpl($files) unless $self->{pref_only}; |
511 |
$self->update_prefs(); |
530 |
$self->update_prefs(); |
512 |
$self->update_messages(); |
531 |
$self->update_messages() if $extract_ok; |
513 |
} |
532 |
} |
514 |
$self->remove_pot(); |
533 |
$self->remove_pot() if $extract_ok; |
515 |
} |
534 |
} |
516 |
|
535 |
|
517 |
|
536 |
|
Lines 520-528
sub create {
Link Here
|
520 |
return unless $self->{lang}; |
539 |
return unless $self->{lang}; |
521 |
$self->create_tmpl($files) unless $self->{pref_only}; |
540 |
$self->create_tmpl($files) unless $self->{pref_only}; |
522 |
$self->create_prefs(); |
541 |
$self->create_prefs(); |
523 |
$self->extract_messages(); |
542 |
if ($self->extract_messages()) { |
524 |
$self->create_messages(); |
543 |
$self->create_messages(); |
525 |
$self->remove_pot(); |
544 |
$self->remove_pot(); |
|
|
545 |
} |
526 |
} |
546 |
} |
527 |
|
547 |
|
528 |
|
548 |
|
529 |
- |
|
|