mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
40 lines
899 B
Perl
Executable File
40 lines
899 B
Perl
Executable File
#!/usr/bin/env perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
use Tie::IxHash;
|
|
use open qw(:std :utf8);
|
|
|
|
sub readPOT {
|
|
my ($fn) = @_;
|
|
open my $fh, "<", $fn or die "Could not open $fn: $!";
|
|
local $/ = "";
|
|
|
|
my %ids;
|
|
tie %ids, 'Tie::IxHash';
|
|
my $ret = { ids => \%ids, header => scalar <$fh> };
|
|
|
|
while (defined (my $block = <$fh>)) {
|
|
my ($context) = $block =~ /msgctxt "(.+)"/ || "(none)";
|
|
my ($msgid) = $block =~ /msgid "(.*)"/;
|
|
if (! length $msgid) {
|
|
($msgid) = $block =~ /msgid ""(.*?)^msgstr/sm;
|
|
$msgid =~ s/"\n"//;
|
|
}
|
|
$ids{"$context/$msgid"} = $block;
|
|
}
|
|
|
|
return $ret;
|
|
}
|
|
|
|
my ($derivedfn, $mainfn) = @ARGV;
|
|
|
|
my $main = readPOT $mainfn;
|
|
my $derived = readPOT $derivedfn;
|
|
|
|
open my $out, ">", $derivedfn or die "Cannot open $derivedfn for writing: $!";
|
|
print $out $derived->{header};
|
|
for my $key (keys %{$derived->{ids}}) {
|
|
print $out $derived->{ids}{$key} unless exists $main->{ids}{$key};
|
|
}
|