# using Text::Levenshtein or Algorithm::Diff
use strict;
+use Term::ANSIColor;
my ($status, $foundline, $msgid, $msgstr, $fuzzy);
my %Untranslated = (); # inside new po-file
my %Fuzzy = (); # inside new po-file
my $result = 0; # exit value
+my @names = ();
+
+#
+while(defined($ARGV[0])) {
+ last if ($ARGV[0] !~ /^\-/);
+ my $param = shift(@ARGV);
+ if ($param eq "-L") {
+ my $name = shift(@ARGV);
+ push(@names, $name);
+ }
+}
+if (! defined($names[0])) {
+ push(@names, "original");
+}
+if (! defined($names[1])) {
+ push(@names, "new");
+}
if (@ARGV != 2) {
- die("Expected exactly 2 parameters");
+ die('"', join('" "', @names, @ARGV) . "\" Expected exactly 2 parameters");
}
-&check("original", $ARGV[0]);
-&check("new", $ARGV[1]);
+&check($names[0], $ARGV[0]);
+&check($names[1], $ARGV[1]);
&parse_po_file($ARGV[0], \%Messages);
&parse_po_file($ARGV[1], \%newMessages);
my @MsgKeys = &getLineSortedKeys(\%newMessages);
+print "<<< \"$names[0]\"\n";
+print ">>> \"$names[1]\"\n";
for my $k (@MsgKeys) {
if ($newMessages{$k}->{msgstr} eq "") {
# this is still untranslated string
$result |= 8;
print "deleted message\n";
print "< line = " . $Messages{$k}->{line} . "\n";
+ print color 'red';
print "< fuzzy = " . $Messages{$k}->{fuzzy} . "\n";
print "< msgid = \"$k\"\n";
print "< msgstr = \"" . $Messages{$k}->{msgstr} . "\"\n";
+ print color 'reset';
}
@MsgKeys = &getLineSortedKeys(\%newMessages);
$result |= 16;
print "new message\n";
print "> line = " . $newMessages{$k}->{line} . "\n";
+ print color 'green';
print "> fuzzy = " . $newMessages{$k}->{fuzzy} . "\n";
print "> msgid = \"$k\"\n";
print "> msgstr = \"" . $newMessages{$k}->{msgstr} . "\"\n";
+ print color 'reset';
}
&printExtraMessages("fuzzy", \%Fuzzy);
print " fuzzy = " . $rM->{fuzzy} . "\n";
}
else {
+ print color 'red';
print "< fuzzy = " . $rM->{fuzzy} . "\n";
+ print color 'reset';
}
+ print color 'red';
print "< msgstr = " . $rM->{msgstr} . "\n";
+ print color 'green';
if ($k ne $nk) {
print "> msgid = \"$nk\"\n";
}
}
print "> msgstr = " . $rnM->{msgstr} . "\n";
print "\n";
+ print color 'reset';
}
sub printIfDiff($$$)