|
Line 0
Link Here
|
| 0 |
- |
1 |
#!/usr/bin/perl |
|
|
2 |
|
| 3 |
use Modern::Perl; |
| 4 |
use Locale::PO; |
| 5 |
|
| 6 |
foreach my $filename (@ARGV) { |
| 7 |
my $pos = Locale::PO->load_file_asarray($filename); |
| 8 |
|
| 9 |
foreach my $po (@$pos) { |
| 10 |
my $msgid = $po->dequote($po->msgid); |
| 11 |
|
| 12 |
if ($msgid =~ /^([^#]+)#([^#]*)# (.*)$/) { |
| 13 |
my ($file, $pref, $message) = ($1, $2, $3); |
| 14 |
my @comments = split /\n/, $po->comment; |
| 15 |
my $comment = $comments[0]; |
| 16 |
my $context = $pref ? sprintf('%s > %s', $comment, $pref) : $comment; |
| 17 |
$po->msgctxt($context); |
| 18 |
$po->comment($context); |
| 19 |
$po->msgid($message); |
| 20 |
$po->reference(sprintf('koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/%s', $file)); |
| 21 |
} elsif ($msgid =~ /^(\w+\.pref)$/) { |
| 22 |
my $file = $1; |
| 23 |
$po->msgid($po->comment); |
| 24 |
$po->comment(undef); |
| 25 |
$po->reference(sprintf('koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/%s', $file)); |
| 26 |
} elsif ($msgid =~ /^(\w+\.pref) (.*)$/) { |
| 27 |
my ($file, $message) = ($1, $2); |
| 28 |
my $context = $po->comment =~ s/^([^>]+) >.*/$1/r; |
| 29 |
$po->msgctxt($context); |
| 30 |
$po->comment($context); |
| 31 |
$po->msgid($message); |
| 32 |
$po->reference(sprintf('koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/%s', $file)); |
| 33 |
} elsif ($msgid eq '') { |
| 34 |
# This is the PO header, nothing to do here |
| 35 |
} else { |
| 36 |
warn sprintf("WARN: The PO entry at %s:%d has not been updated\n", $filename, $po->loaded_line_number); |
| 37 |
} |
| 38 |
} |
| 39 |
|
| 40 |
Locale::PO->save_file_fromarray($filename, $pos); |
| 41 |
} |