|
Lines 57-65
sub new {
Link Here
|
| 57 |
$self->{cp} = `which cp`; |
57 |
$self->{cp} = `which cp`; |
| 58 |
$self->{msgmerge} = `which msgmerge`; |
58 |
$self->{msgmerge} = `which msgmerge`; |
| 59 |
$self->{xgettext} = `which xgettext`; |
59 |
$self->{xgettext} = `which xgettext`; |
|
|
60 |
$self->{sed} = `which sed`; |
| 60 |
chomp $self->{cp}; |
61 |
chomp $self->{cp}; |
| 61 |
chomp $self->{msgmerge}; |
62 |
chomp $self->{msgmerge}; |
| 62 |
chomp $self->{xgettext}; |
63 |
chomp $self->{xgettext}; |
|
|
64 |
chomp $self->{sed}; |
| 63 |
|
65 |
|
| 64 |
# Get all .pref file names |
66 |
# Get all .pref file names |
| 65 |
opendir my $fh, $self->{path_pref_en}; |
67 |
opendir my $fh, $self->{path_pref_en}; |
|
Lines 382-387
sub create_tmpl {
Link Here
|
| 382 |
sub create_messages { |
384 |
sub create_messages { |
| 383 |
my $self = shift; |
385 |
my $self = shift; |
| 384 |
|
386 |
|
|
|
387 |
print "Create messages ($self->{lang})\n" if $self->{verbose}; |
| 385 |
system |
388 |
system |
| 386 |
"$self->{cp} $self->{domain}.pot " . |
389 |
"$self->{cp} $self->{domain}.pot " . |
| 387 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po"; |
390 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po"; |
|
Lines 390-399
sub create_messages {
Link Here
|
| 390 |
sub update_messages { |
393 |
sub update_messages { |
| 391 |
my $self = shift; |
394 |
my $self = shift; |
| 392 |
|
395 |
|
| 393 |
system |
396 |
my $pofile = "$self->{path_po}/$self->{lang}-$self->{domain}.po"; |
| 394 |
"$self->{msgmerge} -U " . |
397 |
print "Update messages ($self->{lang})\n" if $self->{verbose}; |
| 395 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po " . |
398 |
if ( not -f $pofile ) { |
| 396 |
"$self->{domain}.pot"; |
399 |
print "File $pofile does not exist\n" if $self->{verbose}; |
|
|
400 |
$self->create_messages(); |
| 401 |
} |
| 402 |
system "$self->{msgmerge} -U $pofile $self->{domain}.pot"; |
| 403 |
|
| 397 |
} |
404 |
} |
| 398 |
|
405 |
|
| 399 |
sub extract_messages { |
406 |
sub extract_messages { |
|
Lines 425-430
sub extract_messages {
Link Here
|
| 425 |
if (system($xgettext_cmd) != 0) { |
432 |
if (system($xgettext_cmd) != 0) { |
| 426 |
die "system call failed: $xgettext_cmd"; |
433 |
die "system call failed: $xgettext_cmd"; |
| 427 |
} |
434 |
} |
|
|
435 |
|
| 436 |
if ( -f "$Bin/$self->{domain}.pot" ) { |
| 437 |
my $replace_charset_cmd = "$self->{sed} --in-place " . |
| 438 |
"$Bin/$self->{domain}.pot " . |
| 439 |
"--expression='s/charset=CHARSET/charset=UTF-8/'"; |
| 440 |
if (system($replace_charset_cmd) != 0) { |
| 441 |
die "system call failed: $replace_charset_cmd"; |
| 442 |
} |
| 443 |
} else { |
| 444 |
print "No messages found\n" if $self->{verbose}; |
| 445 |
return; |
| 446 |
} |
| 447 |
return 1; |
| 428 |
} |
448 |
} |
| 429 |
|
449 |
|
| 430 |
sub remove_pot { |
450 |
sub remove_pot { |
|
Lines 453-466
sub get_all_langs {
Link Here
|
| 453 |
sub update { |
473 |
sub update { |
| 454 |
my $self = shift; |
474 |
my $self = shift; |
| 455 |
my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs(); |
475 |
my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs(); |
| 456 |
$self->extract_messages(); |
476 |
my $extract_ok = $self->extract_messages(); |
| 457 |
for my $lang ( @langs ) { |
477 |
for my $lang ( @langs ) { |
| 458 |
$self->set_lang( $lang ); |
478 |
$self->set_lang( $lang ); |
| 459 |
$self->update_tmpl() unless $self->{pref_only}; |
479 |
$self->update_tmpl() unless $self->{pref_only}; |
| 460 |
$self->update_prefs(); |
480 |
$self->update_prefs(); |
| 461 |
$self->update_messages(); |
481 |
$self->update_messages() if $extract_ok; |
| 462 |
} |
482 |
} |
| 463 |
$self->remove_pot(); |
483 |
$self->remove_pot() if $extract_ok; |
| 464 |
} |
484 |
} |
| 465 |
|
485 |
|
| 466 |
|
486 |
|
|
Lines 469-477
sub create {
Link Here
|
| 469 |
return unless $self->{lang}; |
489 |
return unless $self->{lang}; |
| 470 |
$self->create_tmpl() unless $self->{pref_only}; |
490 |
$self->create_tmpl() unless $self->{pref_only}; |
| 471 |
$self->create_prefs(); |
491 |
$self->create_prefs(); |
| 472 |
$self->extract_messages(); |
492 |
if ($self->extract_messages()) { |
| 473 |
$self->create_messages(); |
493 |
$self->create_messages(); |
| 474 |
$self->remove_pot(); |
494 |
$self->remove_pot(); |
|
|
495 |
} |
| 475 |
} |
496 |
} |
| 476 |
|
497 |
|
| 477 |
|
498 |
|
| 478 |
- |
|
|