X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=po%2Fpocheck.pl;h=68dd83f23c4978d80f43d402d8d96b7c43f6fff0;hb=bc31bfb418dd2fbb070256dfa5d07585d2b3709a;hp=9e58cdcbf55e45978d3aa94cc358a4d57ee1fabd;hpb=4ca1b1b86c24ead429eb2fbcc569c298af337d59;p=lyx.git diff --git a/po/pocheck.pl b/po/pocheck.pl index 9e58cdcbf5..68dd83f23c 100755 --- a/po/pocheck.pl +++ b/po/pocheck.pl @@ -15,41 +15,55 @@ use Getopt::Std; my $usage = < $n; } if ($n <= 0) { - print "Problem finding arguments in:\n $msgid!\non line $linenum.\n"; + print "$pofilename, line $linenum: Problem finding arguments in:\n $msgid!\n" + unless $only_total; + ++$bad{"Missing arguments"}; $warn++; } else { foreach my $i (1..$n) { my $arg = "%$i\\\$s"; if ( $msgstr !~ m/$arg/ ) { - print "Line $linenum: Missing argument `$arg'\n '$msgid' ==> '$msgstr'\n"; + print "$pofilename, line $linenum: Missing argument `$arg'\n '$msgid' ==> '$msgstr'\n" + unless $only_total; + ++$bad{"Missing arguments"}; $warn++; } } @@ -116,8 +141,9 @@ foreach my $pofilename ( @ARGV ) if ($check_colons) { # Check colon at the end of a message if ( ( $msgid =~ m/: *(\|.*)?$/ ) != ( $msgstr =~ m/: *(\|.*)?$/ ) ) { - print( "Line $linenum: Missing or unexpected colon:\n" ); - print( " '$msgid' => '$msgstr'\n" ); + print "Line $linenum: Missing or unexpected colon:\n '$msgid' => '$msgstr'\n" + unless $only_total; + ++$bad{"Bad colons"}; $warn++; } } @@ -125,8 +151,9 @@ foreach my $pofilename ( @ARGV ) if ($check_periods) { # Check period at the end of a message; uncomment code if you are paranoid if ( ( $msgid =~ m/\. *(\|.*)?$/ ) != ( $msgstr =~ m/\. *(\|.*)?$/ ) ) { - print( "Line $linenum: Missing or unexpected period:\n" ); - print( " '$msgid' => '$msgstr'\n" ); + print "Line $linenum: Missing or unexpected period:\n '$msgid' => '$msgstr'\n" + unless $only_total; + ++$bad{"Bad periods"}; $warn++; } } @@ -134,8 +161,9 @@ foreach my $pofilename ( @ARGV ) if ($check_spaces) { # Check space at the end of a message if ( ( $msgid =~ m/ *?(\|.*)?$/ ) != ( $msgstr =~ m/ *?(\|.*)?$/ ) ) { - print( "Line $linenum: Missing or unexpected space:\n" ); - print( " '$msgid' => '$msgstr'\n" ); + print "Line $linenum: Missing or unexpected space:\n '$msgid' => '$msgstr'\n" + unless $only_total; + ++$bad{"Bad spaces"}; $warn++; } } @@ -143,8 +171,9 @@ foreach my $pofilename ( @ARGV ) if ($check_qt) { # Check for "&" shortcuts if ( ( $msgid =~ m/&[^ ]/ ) != ( $msgstr =~ m/&[^ ]/ ) ) { - print( "Line $linenum: Missing or unexpected Qt shortcut:\n" ); - print( " '$msgid' => '$msgstr'\n" ); + print "Line $linenum: Missing or unexpected Qt shortcut:\n '$msgid' => '$msgstr'\n" + unless $only_total; + ++$bad{"Bad Qt shortcuts"}; $warn++; } } @@ -152,8 +181,9 @@ foreach my $pofilename ( @ARGV ) if ($check_menu) { # Check for "|..." shortcuts if ( ( $msgid =~ m/\|[^ ]/ ) != ( $msgstr =~ m/\|[^ ]/ ) ) { - print( "Line $linenum: Missing or unexpected menu shortcut:\n" ); - print( " '$msgid' => '$msgstr'\n" ); + print "Line $linenum: Missing or unexpected menu shortcut:\n '$msgid' => '$msgstr'\n" + unless $only_total; + ++$bad{"Bad menu shortcuts"}; $warn++; } } @@ -187,16 +217,32 @@ foreach my $pofilename ( @ARGV ) # do we have more than one such key? if ( $#msgstrkeys > 0 ) { - print( "Different translations for '$msgid':\n" ); - foreach $msgstr ( @msgstrkeys ) { - print( "Line $ref->{$msgstr}[2]: '" . - $ref->{$msgstr}[0] . "' => '" . - $ref->{$msgstr}[1] . "'\n" ); + if (!$only_total) { + print "Different translations for '$msgid':\n"; + foreach $msgstr ( @msgstrkeys ) { + print "Line $ref->{$msgstr}[2]: '" . + $ref->{$msgstr}[0] . "' => '" . + $ref->{$msgstr}[1] . "'\n"; + } } + ++$bad{"Inconsistent translations"}; $warn++; } } } - - print( "\nTotal number of warnings: $warn\n\n" ); + if (!$silent_mode) { + if ($warn) { + while (my ($k, $v) = each %bad) { print "$k: $v\n"; } + if (scalar(keys %bad) > 1) { + print "Total warnings: $warn\n"; + } + } else { + print "No warnings!\n"; + } + print "\n"; + } + $total_warn += $warn; } + +exit ($total_warn > 0); +