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 365-370
sub create_tmpl {
Link Here
|
365 |
sub create_messages { |
367 |
sub create_messages { |
366 |
my $self = shift; |
368 |
my $self = shift; |
367 |
|
369 |
|
|
|
370 |
print "Create messages ($self->{lang})\n" if $self->{verbose}; |
368 |
system |
371 |
system |
369 |
"$self->{cp} $self->{domain}.pot " . |
372 |
"$self->{cp} $self->{domain}.pot " . |
370 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po"; |
373 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po"; |
Lines 373-382
sub create_messages {
Link Here
|
373 |
sub update_messages { |
376 |
sub update_messages { |
374 |
my $self = shift; |
377 |
my $self = shift; |
375 |
|
378 |
|
376 |
system |
379 |
my $pofile = "$self->{path_po}/$self->{lang}-$self->{domain}.po"; |
377 |
"$self->{msgmerge} -U " . |
380 |
print "Update messages ($self->{lang})\n" if $self->{verbose}; |
378 |
"$self->{path_po}/$self->{lang}-$self->{domain}.po " . |
381 |
if ( not -f $pofile ) { |
379 |
"$self->{domain}.pot"; |
382 |
print "File $pofile does not exist\n" if $self->{verbose}; |
|
|
383 |
$self->create_messages(); |
384 |
} |
385 |
system "$self->{msgmerge} -U $pofile $self->{domain}.pot"; |
386 |
|
380 |
} |
387 |
} |
381 |
|
388 |
|
382 |
sub extract_messages { |
389 |
sub extract_messages { |
Lines 408-413
sub extract_messages {
Link Here
|
408 |
if (system($xgettext_cmd) != 0) { |
415 |
if (system($xgettext_cmd) != 0) { |
409 |
die "system call failed: $xgettext_cmd"; |
416 |
die "system call failed: $xgettext_cmd"; |
410 |
} |
417 |
} |
|
|
418 |
|
419 |
if ( -f "$Bin/$self->{domain}.pot" ) { |
420 |
my $replace_charset_cmd = "$self->{sed} --in-place " . |
421 |
"$Bin/$self->{domain}.pot " . |
422 |
"--expression='s/charset=CHARSET/charset=UTF-8/'"; |
423 |
if (system($replace_charset_cmd) != 0) { |
424 |
die "system call failed: $replace_charset_cmd"; |
425 |
} |
426 |
} else { |
427 |
print "No messages found\n" if $self->{verbose}; |
428 |
return; |
429 |
} |
430 |
return 1; |
411 |
} |
431 |
} |
412 |
|
432 |
|
413 |
sub remove_pot { |
433 |
sub remove_pot { |
Lines 436-449
sub get_all_langs {
Link Here
|
436 |
sub update { |
456 |
sub update { |
437 |
my $self = shift; |
457 |
my $self = shift; |
438 |
my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs(); |
458 |
my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs(); |
439 |
$self->extract_messages(); |
459 |
my $extract_ok = $self->extract_messages(); |
440 |
for my $lang ( @langs ) { |
460 |
for my $lang ( @langs ) { |
441 |
$self->set_lang( $lang ); |
461 |
$self->set_lang( $lang ); |
442 |
$self->update_tmpl() unless $self->{pref_only}; |
462 |
$self->update_tmpl() unless $self->{pref_only}; |
443 |
$self->update_prefs(); |
463 |
$self->update_prefs(); |
444 |
$self->update_messages(); |
464 |
$self->update_messages() if $extract_ok; |
445 |
} |
465 |
} |
446 |
$self->remove_pot(); |
466 |
$self->remove_pot() if $extract_ok; |
447 |
} |
467 |
} |
448 |
|
468 |
|
449 |
|
469 |
|
Lines 452-460
sub create {
Link Here
|
452 |
return unless $self->{lang}; |
472 |
return unless $self->{lang}; |
453 |
$self->create_tmpl() unless $self->{pref_only}; |
473 |
$self->create_tmpl() unless $self->{pref_only}; |
454 |
$self->create_prefs(); |
474 |
$self->create_prefs(); |
455 |
$self->extract_messages(); |
475 |
if ($self->extract_messages()) { |
456 |
$self->create_messages(); |
476 |
$self->create_messages(); |
457 |
$self->remove_pot(); |
477 |
$self->remove_pot(); |
|
|
478 |
} |
458 |
} |
479 |
} |
459 |
|
480 |
|
460 |
|
481 |
|
461 |
- |
|
|