|
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 415-420
sub create_tmpl {
Link Here
|
| 415 |
sub create_messages { |
417 |
sub create_messages { |
| 416 |
my $self = shift; |
418 |
my $self = shift; |
| 417 |
|
419 |
|
|
|
420 |
print "Create messages ($self->{lang})\n" if $self->{verbose}; |
| 418 |
system |
421 |
system |
| 419 |
"$self->{cp} $self->{domain}.pot " . |
422 |
"$self->{cp} $self->{domain}.pot " . |
| 420 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po"; |
423 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po"; |
|
Lines 423-432
sub create_messages {
Link Here
|
| 423 |
sub update_messages { |
426 |
sub update_messages { |
| 424 |
my $self = shift; |
427 |
my $self = shift; |
| 425 |
|
428 |
|
| 426 |
system |
429 |
my $pofile = "$self->{path_po}/$self->{lang}-$self->{domain}.po"; |
| 427 |
"$self->{msgmerge} -U " . |
430 |
print "Update messages ($self->{lang})\n" if $self->{verbose}; |
| 428 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po " . |
431 |
if ( not -f $pofile ) { |
| 429 |
"$self->{domain}.pot"; |
432 |
print "File $pofile does not exist\n" if $self->{verbose}; |
|
|
433 |
$self->create_messages(); |
| 434 |
} |
| 435 |
system "$self->{msgmerge} -U $pofile $self->{domain}.pot"; |
| 436 |
|
| 430 |
} |
437 |
} |
| 431 |
|
438 |
|
| 432 |
sub extract_messages { |
439 |
sub extract_messages { |
|
Lines 458-463
sub extract_messages {
Link Here
|
| 458 |
if (system($xgettext_cmd) != 0) { |
465 |
if (system($xgettext_cmd) != 0) { |
| 459 |
die "system call failed: $xgettext_cmd"; |
466 |
die "system call failed: $xgettext_cmd"; |
| 460 |
} |
467 |
} |
|
|
468 |
|
| 469 |
if ( -f "$Bin/$self->{domain}.pot" ) { |
| 470 |
my $replace_charset_cmd = "$self->{sed} --in-place " . |
| 471 |
"$Bin/$self->{domain}.pot " . |
| 472 |
"--expression='s/charset=CHARSET/charset=UTF-8/'"; |
| 473 |
if (system($replace_charset_cmd) != 0) { |
| 474 |
die "system call failed: $replace_charset_cmd"; |
| 475 |
} |
| 476 |
} else { |
| 477 |
print "No messages found\n" if $self->{verbose}; |
| 478 |
return; |
| 479 |
} |
| 480 |
return 1; |
| 461 |
} |
481 |
} |
| 462 |
|
482 |
|
| 463 |
sub remove_pot { |
483 |
sub remove_pot { |
|
Lines 486-499
sub get_all_langs {
Link Here
|
| 486 |
sub update { |
506 |
sub update { |
| 487 |
my ($self, $files) = @_; |
507 |
my ($self, $files) = @_; |
| 488 |
my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs(); |
508 |
my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs(); |
| 489 |
$self->extract_messages(); |
509 |
my $extract_ok = $self->extract_messages(); |
| 490 |
for my $lang ( @langs ) { |
510 |
for my $lang ( @langs ) { |
| 491 |
$self->set_lang( $lang ); |
511 |
$self->set_lang( $lang ); |
| 492 |
$self->update_tmpl($files) unless $self->{pref_only}; |
512 |
$self->update_tmpl($files) unless $self->{pref_only}; |
| 493 |
$self->update_prefs(); |
513 |
$self->update_prefs(); |
| 494 |
$self->update_messages(); |
514 |
$self->update_messages() if $extract_ok; |
| 495 |
} |
515 |
} |
| 496 |
$self->remove_pot(); |
516 |
$self->remove_pot() if $extract_ok; |
| 497 |
} |
517 |
} |
| 498 |
|
518 |
|
| 499 |
|
519 |
|
|
Lines 502-510
sub create {
Link Here
|
| 502 |
return unless $self->{lang}; |
522 |
return unless $self->{lang}; |
| 503 |
$self->create_tmpl($files) unless $self->{pref_only}; |
523 |
$self->create_tmpl($files) unless $self->{pref_only}; |
| 504 |
$self->create_prefs(); |
524 |
$self->create_prefs(); |
| 505 |
$self->extract_messages(); |
525 |
if ($self->extract_messages()) { |
| 506 |
$self->create_messages(); |
526 |
$self->create_messages(); |
| 507 |
$self->remove_pot(); |
527 |
$self->remove_pot(); |
|
|
528 |
} |
| 508 |
} |
529 |
} |
| 509 |
|
530 |
|
| 510 |
|
531 |
|
| 511 |
- |
|
|