diff --git a/extras/po/generate_translatable_strings.pl b/extras/po/generate_translatable_strings.pl index be80f68..a66a791 100644 --- a/extras/po/generate_translatable_strings.pl +++ b/extras/po/generate_translatable_strings.pl @@ -26,18 +26,25 @@ msgstr "" my @blacklist = ('"--"', '"\\\\000"', '`.*`', '$\(.*\)'); +# Translatable strings that can't be automatically detected yet +my %undetectable = ( + 124 => '[sudo] Enter password for user ::1 user:: to gain superuser privileges' +); + open my $handle, $FILE or die "Failed to open $FILE"; my @lines = <$handle>; close $handle; my %seen; -my @ignored; my $index = 0; my $fold; my $func; +my $force; +my $str; foreach (@lines) { $index++; + $force = 0; # It's a fold title if (m/^# +{{{ +(.*)$/) { @@ -51,44 +58,28 @@ foreach (@lines) { next; } + # Force if it's undetectable + $force = 1 if exists($undetectable{$index}); + # Next if there is no print function - next unless m/$FUNCPATTERN +$STRINGPATTERN/; + next unless $force or m/$FUNCPATTERN +$STRINGPATTERN/; + + # Get string from the $undetectable hash or via regex + if ($force) { + $str = "\"$undetectable{$index}\""; + } + else { + $str = $2; + } # Next if it was seen before - $seen{$2}++; - next if $seen{$2} > 1; + $seen{$str}++; + next if $seen{$str} > 1; # Next if it's blacklisted - if (grep {$2 =~ m/$_/} @blacklist) { - push @ignored, $2; - next; - } + next if grep {$str =~ m/$_/} @blacklist; - print "#. Fold: $fold\n"; - print "#. Function: $func\n"; - print "#.\n"; - print "#. Code sample:\n"; - - my $sign = ' '; - for (-7..3) { - if($_ == -1) { - $sign = '>'; - } - else { - $sign = ' '; - } - - my $n = $index + $_; - print "#. $sign $lines[$n]"; - } - - print "#: tomb:$index\n"; - print "msgid $2\n"; + print "#: tomb:$fold:$func:$index\n"; + print "msgid $str\n"; print "msgstr \"\"\n\n"; } - -print STDERR "-- IGNORED\n"; -foreach (@ignored) { - print STDERR "$_\n"; -} -