X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=po%2Fpocheck.pl;h=9dd416026af21ff708e7b845e32e50a5e2fa02e1;hb=909963fd5a542c60ccf2632c9a777a08f122a065;hp=fb9b73f8ae1a4d3287514df7c7ad74c79c17054c;hpb=ff6680a99d8f3ca3befba22d494e5d08365d99e3;p=lyx.git diff --git a/po/pocheck.pl b/po/pocheck.pl index fb9b73f8ae..9dd416026a 100755 --- a/po/pocheck.pl +++ b/po/pocheck.pl @@ -15,41 +15,53 @@ 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 +139,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 +149,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 +159,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 +169,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 +179,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++; } } @@ -175,7 +203,7 @@ foreach my $pofilename ( @ARGV ) # cleaned versions of ORIGINAL strings. the keys of the inner hash # are the cleaned versions of their TRANSLATIONS. The value for the # inner hash is an array of the orignal string and translation. - $trans{$msgid_clean}{$msgstr_clean} = [ $msgid, $msgstr ]; + $trans{$msgid_clean}{$msgstr_clean} = [ $msgid, $msgstr, $linenum ]; } if ($check_trans) { @@ -187,14 +215,28 @@ 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( " '" . $trans{$msgid}{$msgstr}[0] . "' => '" . $trans{$msgid}{$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"; + } }